MSMQ Transport
The msmq: component is a transport for working with Microsoft Message Queuing
This component natively sends and receives direct allocated ByteBuffer instances. This allows to access the JNI layer without expensive memory copying.Â
In fact using ByteBuffer created with the method allocateDirect can be passed to the JNI layer and the native code is able to directly access the memory.
URI format
msmq:msmqQueueName
Examples
msmq:DIRECT=OS:localhost\\private$\\test?concurrentConsumers=1 msmq:DIRECT=OS:localhost\\private$\\test?deliveryPersistent=true&priority=5&timeToLive=10
Configuring a Local Transport with WSO2 ESB
- In the axis2.xml file at location <PRODUCT_HOME>/repository/conf/axis2, please define msmq sender/listner pair as follows,
<transportSender name="msmq" class="org.apache.axis2.transport.msmq.MSMQSender"/> <transportReceiver name="msmq" class="org.apache.axis2.transport.msmq.MSMQListener"> <parameter name="msmq.receiver.host" locked="false">localhost</parameter> </transportReceiver>
Download axis2-transport-msmq-1.1.0-wso2v6.jar (click here for 64x , 32x) and place that in ESB_HOME/repository/components/dropins.
- MSMQ bridging requires JNI invocation and we are shipping two dlls as required for 64bit and 32bit O/S, so make sure that you are downloading the correct one.
Please make sure MQ installed and running for more information please refer http://msdn.microsoft.com/en-us/library/aa967729.aspx.
Make sure that you have installed Visual C++ 2008 (VC9), it works with Microsoft Visual Studio 2008 Express.
Â
Given MSMQ samples is ONLY working on windows environment, since it invokes Microsoft C++ API for MSMQ via JNI invocation.
Â
Â
Â