Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
GSOC 2017 - Native inbound and connector for IBM MQ 8.0

Native inbound and connector for IBM WebSphere MQ 8.0

IBM WebSphere MQ

IBM WebSphere MQ is messaging for applications. It sends messages across networks of diverse components.Your application connects to IBM WebSphere MQ to send or receive a message. IBM WebSphere MQ handles the different processors, operating systems, subsystems, and communication protocols it encounters in transferring the message. If a connection or a processor is temporarily unavailable, IBM WebSphere MQ queues the message and forwards it when the connection is back online. What can IBM WebSphere MQ do for users?

  • IBM WebSphere MQ sends and receives data between your applications, and over networks.
  • Message delivery is assured and decoupled from the application. Assured, because IBM WebSphere MQ exchanges messages transactionally, and decoupled, because applications do not have to check that messages they sent are delivered safely.
  • You can secure message delivery between queue managers with SSL/TLS.
  • With Advanced Message Security (AMS), you can encrypt and sign messages between being put by one application and retrieved by another.
  • Application programmers do not need to have communications programming knowledge

IBM WebSphere MQ connector and inbound endpoint

The main purpose of this project is to implement a connector and an inbound endpoint using IBM WebSphere MQ java classes.

  1. IBM WebSphere MQ connector - A connector allows you to interact with a third-party product's functionality and data from your ESB message flow, enabling you to connect to and interact with the APIs of services.In IBM MQ connector you can publish messages to queues and topics either using ssl or without ssl connection through a channel.

  2. IBM WebSphere MQ inbound endpoint - An inbound endpoint is a message entry point that can inject messages directly from the transport layer to the mediation layer, without going through the Axis engine.You can use IBM MQ inbound endpoint as a consumer to the messages arrived at topics and queues in IBM MQ queue managers.

Mentors

  1. Malaka Silva
  2. Kevin Rathnasekara

Commits

  1. 89a067432e73bca7aaca2ac534594c89fa851314
  2. bd617deabb444d77c7be026cd7962ac5255661b1
  3. bc12539b06425799749d96021bf3e91e899cd711
  4. a9c6e047c9f9578dadd1e5b1278d4b5652c7df98
  5. fadfdaf7710a72a1762420af9a5030872184eadc
  6. 05e1c59850a1165d814da9c876eb1ef87456a36f
  7. 0244da5a8332d2eae4080f9c4e061372c55818ba
  8. 272d3b37b1ac38bd8cd754c0915bb704e696079c
  9. e31b6968c17fbb63971a22f4245ec317c9e1693d
  10. 702a79a50346b32a864f84fd80105217c2a79e09
  11. 6af888ee9a33dc9683377065f0bccf379ac90a89
  12. 95b71208b956e9cde0b145cc5266b8067c92955f

Pull Requests

  1. IBM-MQ polling inbound #1
  2. Ibmmqconnector #1

IBM WebSphere MQ connector

IBM WebSphere MQ connector allows you to connect to a queue manager and publish messages to topic or queues within it. To test the connector you can go through the following steps.

  1. Build the connector using mvn clean install -Dmaven.test.skip=true
  2. Copy the following three jars to $CARBON_HOME/repository/components/lib
  • com.ibm.mq.allclient.jar
  • providerutil.jar
  • fscontext.jar
  1. Upload the connector to wso2 esb through management console
  2. Enable the connector
  3. Write a proxy service to the connector
  4. For a ssl connection import your certificate to the wso2carbon.jks (wso2 keystore) using the following command.
keytool -importcert -file <certificate file> -keystore <ESB>/repository/resources/security/wso2carbon.jks -alias "ibmwebspheremqqmanager"

Here the name "ibmwebspheremqqmanager" is the label you provided when creating the key database file.Sometimes you may come up with the errors in channels due to CHLAUTH and CONNAUTH as IBM MQ product now takes a stance to have security features turned on by default.You can just turn off CHLAUTH and CONNAUTH completely issuing the following commands.

ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)

or you can continue without turning off the security issuing the following set of commands.

DEFINE CHANNEL(CHANNEL_NAME) CHLTYPE(SVRCONN)
SET CHLAUTH(CHANNEL_NAME) TYPE(BLOCKUSER) USERLIST('nobody') DESCR('Allow privileged users on this channel')
SET CHLAUTH('*') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS) DESCR('BackStop rule')
SET CHLAUTH(CHANNEL_NAME) TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL) CHCKCLNT(REQUIRED)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) ADOPTCTX(YES)
REFRESH SECURITY TYPE(CONNAUTH)

SSL CipherSpecs and CipherSuites

Following cipher suites tested with the given fips configuration.(Some weak cipher suites are no longer supported in IBM websphere version 8.0.0.x)

CipherSpec Equivalent CipherSuite (Oracle JRE) FipsRequired
TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA False
TLS_RSA_WITH_3DES_EDE_CBC_SHA SSL_RSA_WITH_3DES_EDE_CBC_SHA False
TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 False
TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA False
TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA False
TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 False

Description of the parameters

  • username - Username of the IBM MQ user group.
  • password - Password of the IBM MQ user group.
  • port - Port allowing IBM MQ for TCP/IP connections.
  • queueManager - Name of the IBM MQ queue manager.
  • channel - Name of the IBM MQ remote channel.
  • queue - Name of the queue.
  • messageType
    • MQMT_REPLY-(2) Use a reply message when you reply to another message.
    • MQMT_DATAGRAM-(8) Use a datagram when you do not require a reply from the application that receives the message (that is, gets the message from the queue).
    • MQMT_REQUEST-(1)-Use a request message when you want a reply from the application that receives the message.
    • MQMT_REPORT-(4)-Report messages inform applications about events such as the occurrence of an error when processing a message.
  • persistent - If a queue manager is restarted after a failure, it recovers these persistent messages as necessary from the logged data. Messages that are not persistent are discarded if a queue manager stops, whether the stoppage is as a result of an operator command or because of the failure of some part of your system.
  • priority - You can set a numeric value for the priority, or you can let the message take the default priority of the queue.The MsgDeliverySequence attribute of the queue determines whether messages on the queue are stored in FIFO (first in, first out) sequence, or in FIFO within priority sequence. If this attribute is set to MQMDS_PRIORITY, messages are enqueued with the priority specified in the Priority field of their message descriptors; but if it is set to MQMDS_FIFO, messages are enqueued with the default priority of the queue. Messages of equal priority are stored on the queue in order of arrival.
  • producerType - Whether the connector publish messages to a queue or a topic.
  • maxConnections - number of maximum connections managed by the customized connection pool for ibm mq connections.
  • maxUnusedConnections - Number of maximum unused connections managed by the customized connection pool.
  • timeout - Ends connections that are not used for this time in customized connection pool for ibm mq connections.
  • sslEnable - whether or not the ssl connection is needed (true/false).
  • cipherSuite - cipher suit specification for ibm mq connections.For further understanding refer hereNote that IBM MQ versions below 8.0.0.3 does not support many cipher specs.Update the IBM MQ using fix packs as mentioned in this tutorial.
  • trustStore - wso2carbon.jks
  • trustPassword - wso2carbon
  • keyStore - wso2carbon.jks
  • keyPassword - wso2carbon
  • correlationID-The CorrelationId to be included in the MQMD of a message when put on a queue. Also the ID to be matched against when getting a message from a queue.
  • messageID-The MessageId to be included in the MQMD of a message when put on a queue. Also the ID to be matched against when getting a message from a queue.Its initial value is all nulls.
  • connectionNameList - Reconnection parameters in case of connection failure.Add the list of hosts and ports here to connector to retry for the connections.
  • reconnectionTimeout - Reconnection parameters in case of connection failure .Add reconnection timeout for the reconnection.
  • topicName - Name of the topic as initialized in the queue manager.
  • topicString topicString attribute as initialized in the queue manager.

Important Notes

  • The username and the password parameters must be provided in order to obtain the necessary permissions to access the queue manager.
  • The channel and the queueManager parameters should be provided with the correct configuration of sslEnable parameter to establish a successful connection.
  • If the host and the port parameters not provided the connector will attempt to establish a connnection through the host "localhost" and port "1414".
  • If the messageType parameter not provided the connector will use the default message type MQMT_DATAGRAM when publishing messages.
  • If the timeout,the maxConnections and the maxUnusedConnections parameters not specified the default values of 3600,75 and 50 will be used.(3600s - 1Hr).
  • The two timeout parameters(timeout and reconnectionTimeout) should be provided in seconds.
  • If the producerType is "topic" topicString and topicName parameters should be provided.
  • If the producerType is "queue" queue parameter should be provided.

Sample proxy service without ssl

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ibmmqtest"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
    <target>
        <inSequence>
            <ibmmq.init>
                <username>mqm</username>
                <password>upgs5423</password>
                <port>1414</port>
                <host>127.0.0.1</host>
                <qmanager>qmanager</qmanager>
                <channel>PASSWORD.SVRCONN</channel>
                <queue>myqueue</queue>
                <producerType>queue</producerType>
                <connectionNamelist>12.0.0.1/1414,127.0.0.1/1414</connectionNamelist>
                <reconnectTimeout>10000</reconnectTimeout>
                <messageType>8(MQMT_DATAGRAM see the parameter description)</messageType>
                <persistent>true</persistent>
                <priority>3</priority>>
                <maxconnections>75</maxconnections>
                <timeout>3600</timeout>
                <sslEnable>false</sslEnable>
            </ibmmq.init>
            <ibmmq.producer/>
        </inSequence>
    </target>
    <description/>
</proxy>

Sample proxy service with ssl

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ibmmqtest"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
    <target>
        <inSequence>
            <ibmmq.init>
                <username>mqm</username>
                <password>upgs5423</password>
                <port>1414</port>
                <host>127.0.0.1</host>
                <qmanager>qmanager</qmanager>
                <channel>PASSWORD.SVRCONN</channel>
                <queue>myqueue</queue>
                <producerType>queue</producerType>
                <connectionNamelist>12.0.0.1/1414,127.0.0.1/1414</connectionNamelist>
                <reconnectTimeout>10000</reconnectTimeout>
                <messageType>8(MQMT_DATAGRAM see the parameter description)</messageType>
                <persistent>true</persistent>
                <priority>3</priority>>
                <maxconnections>75</maxconnections>
                <timeout>3600</timeout>
                <sslEnable>true</sslEnable>
                <ciphersuit>SSL_RSA_WITH_3DES_EDE_CBC_SHA</ciphersuit>
                <flipsRequired>false</flipsRequired>
                <trustStore>wso2carbon.jks</trustStore>
                <trustPassword>wso2carbon</trustPassword>
                <keyStore>wso2carbon.jks</keyStore>
                <keyPassword>wso2carbon</keyPassword>
            </ibmmq.init>
            <ibmmq.producer/>
        </inSequence>
    </target>
    <description/>
</proxy>

Sample proxy service without ssl for topic

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ibmmqtest"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <ibmmq.init>
            <username>mqm</username>
            <password>upgs5423</password>
            <port>1414</port>
            <host>12.0.0.1</host>
            <qmanager>qmanager</qmanager>
            <connectionNamelist>12.0.0.1/1414,127.0.0.1/1414</connectionNamelist>
            <reconnectTimeout>1000</reconnectTimeout>
            <messageType>8</messageType>
            <channel>PASSWORD.SVRCONN</channel>
            <producerType>topic</producerType>
            <topicName>mytopic</topicname>
            <topicString>topic</topicstring>
            <transportType>1</transportType>
            <timeout>3600</timeout>
         </ibmmq.init>
         <ibmmq.producer/>
      </inSequence>
   </target>
   <description/>
</proxy>

Sample proxy service with ssl for topic

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ibmmqtest"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <ibmmq.init>
            <username>mqm</username>
            <password>upgs5423</password>
            <port>1414</port>
            <host>12.0.0.1</host>
            <qmanager>qmanager</qmanager>
            <connectionNamelist>12.0.0.1/1414,127.0.0.1/1414</connectionNamelist>
            <reconnectTimeout>1000</reconnectTimeout>
            <messageType>8</messageType>
            <channel>PASSWORD.SVRCONN</channel>
            <producerType>topic</producerType>
            <topicName>mytopic</topicname>
            <topicString>topic</topicstring>
            <transportType>1</transportType>
            <timeout>3600</timeout>
            <sslEnable>true</sslEnable>
            <ciphersuit>SSL_RSA_WITH_3DES_EDE_CBC_SHA</ciphersuit>
            <flipsRequired>false</flipsRequired>
            <trustStore>wso2carbon.jks</trustStore>
            <trustPassword>wso2carbon</trustPassword>
            <keyStore>wso2carbon.jks</keyStore>
            <keyPassword>wso2carbon</keyPassword>
         </ibmmq.init>
         <ibmmq.producer/>
      </inSequence>
   </target>
   <description/>
</proxy>

IBM WebSphere MQ inbound endpoint

IBM WebSphere MQ inbound endpoint allows you to get the messages in the queues or topics and use them in different integration scenarios. To test the inbound endpoint you can go through the following steps.

  1. Build the project using mvn clean install -Dmaven.test.skip=true
  2. You will get the .Jar file copy file and paste it into lib folder $CARBON_HOME/repository/components/lib
  3. Copy the following three jars to $CARBON_HOME/repository/components/lib
  • com.ibm.mq.allclient.jar
  • providerutil.jar
  • fscontext.jar
  1. Test using following sample configuration through proxy
  2. For a ssl connection import your certificate to the wso2carbon.jks using following command.
keytool -importcert -file <certificate file> -keystore <ESB>/repository/resources/security/wso2carbon.jks -alias "ibmwebspheremqqmanager"

Here the name "ibmwebspheremqqmanager" is the label you provided when creating the key database file.Sometimes you may come up with the errors in channels due to CHLAUTH and CONNAUTH as IBM MQ product now takes a stance to have security features turned on by default.You can just turn off CHLAUTH and CONNAUTH completely issuing the following commands.

ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)

or you can continue without turning off the security issuing the following set of commands.

DEFINE CHANNEL(CHANNEL_NAME) CHLTYPE(SVRCONN)
SET CHLAUTH(CHANNEL_NAME) TYPE(BLOCKUSER) USERLIST('nobody') DESCR('Allow privileged users on this channel')
SET CHLAUTH('*') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS) DESCR('BackStop rule')
SET CHLAUTH(CHANNEL_NAME) TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL) CHCKCLNT(REQUIRED)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) ADOPTCTX(YES)
REFRESH SECURITY TYPE(CONNAUTH)

SSL CipherSpecs and CipherSuites

Following cipher suites tested with the given fips configuration.(Some weak cipher suites are no longer supported in IBM websphere version 8.0.0.x)

CipherSpec Equivalent CipherSuite (Oracle JRE) FipsRequired
TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA False
TLS_RSA_WITH_3DES_EDE_CBC_SHA SSL_RSA_WITH_3DES_EDE_CBC_SHA False
TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 False
TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA False
TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA False
TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 False

Description of the parameters

  • username - Username of the IBM MQ user group.
  • password - Password of the IBM MQ user group.
  • port - Port allowing IBM MQ for TCP/IP connections.
  • queueManager - Name of the IBM MQ queue manager.
  • channel - Name of the IBM MQ remote channel.
  • queue - Name of the queue.
  • maxConnections - number of maximum connections managed by the customized connection pool for ibm mq connections.
  • maxUnusedConnections - Number of maximum unused connections managed by the customized connection pool.
  • timeout - Ends connections that are not used for this time in customized connection pool for ibm mq connections.
  • sslEnable - whether or not the ssl connection is needed (true/false).
  • cipherSuite - cipher suit specification for ibm mq connections.For further understanding refer hereNote that IBM MQ versions below 8.0.0.3 does not support many cipher specs.Update the IBM MQ using fix packs as mentioned in this tutorial.
  • trustStore - wso2carbon.jks
  • trustPassword - wso2carbon
  • keyStore - wso2carbon.jks
  • keyPassword - wso2carbon
  • correlationID-The CorrelationId to be included in the MQMD of a message when put on a queue. Also the ID to be matched against when getting a message from a queue.
  • messageID-The MessageId to be included in the MQMD of a message when put on a queue. Also the ID to be matched against when getting a message from a queue.Its initial value is all nulls.
  • connectionNameList - Reconnection parameters in case of connection failure.Add the list of hosts and ports here to connector to retry for the connections.
  • reconnectionTimeout - Reconnection parameters in case of connection failure .Add reconnection timeout for the reconnection.
  • topicName - Name of the topic as initialized in the queue manager.
  • topicString topicString attribute as initialized in the queue manager.
  • durability - Whether the subscription for topic is durable or not
  • subscriptionName - Subscription name for durable subscriptions
  • contentType - the type that the message needs to build before injecting to synapse engine

Important Notes

  • The username and the password parameters must be provided in order to obtain the necessary permissions to access the queue manager.
  • The channel and the queueManager parameters should be provided with the correct configuration of sslEnable parameter to establish a successful connection.
  • If the host and the port parameters not provided the connector will attempt to establish a connnection through the host "localhost" and port "1414".
  • If the messageType parameter not provided the connector will use the default message type MQMT_DATAGRAM when publishing messages.
  • If the timeout,the maxConnections and the maxUnusedConnections parameters not specified the default values of 3600,75 and 50 will be used.(3600s - 1Hr).
  • The two timeout parameters(timeout and reconnectionTimeout) should be provided in seconds.
  • If you are using a durable subscription subscriptionName parameter should be specified.

Sample inbound configuration for get the messages from queue

<inboundEndpoint name="class" sequence="{inject handler sequence}" onError="fault"
                            class="org.wso2.carbon.inbound.custom.poll.MQPollingInbound" suspend="false">
   <parameters>
      <parameter name="sequential">true</parameter>
      <parameter name="interval">2000</parameter>
      <parameter name="coordination">true</parameter>
      <parameter name="username">mqm</parameter>
      <parameter name="password">upgs5423</parameter>
      <parameter name="host">localhost</parameter>
      <parameter name="port">1414</parameter>
      <parameter name="queueManager">queueManager</parameter>
      <parameter name="queue">myqueue</parameter>
      <parameter name="channel">PASSWORD.SVRCONN</parameter>
      <parameter name="connectionNamelist">12.0.0.1/1414,127.0.0.1/1414</parameter>
      <parameter name="reconnectTimeout">10000</parameter>
      <parameter name="maxConnections">75</parameter>
      <parameter name="maxUnusedConnections">50</parameter>
      <parameter name=timeout">3600</parameter>
   </parameters>
</inboundEndpoint>

Sample inbound configuration for non durable subscription

<inboundEndpoint name="class" sequence="{inject handler sequence}" onError="fault"
                            class="org.wso2.carbon.inbound.custom.poll.MQPollingInbound" suspend="false">
   <parameters>
      <parameter name="sequential">true</parameter>
      <parameter name="interval">2000</parameter>
      <parameter name="coordination">true</parameter>
      <parameter name="username">mqm</parameter>
      <parameter name="password">upgs5423</parameter>
      <parameter name="host">localhost</parameter>
      <parameter name="port">1414</parameter>
      <parameter name="queueManager">queueManager</parameter>
      <parameter name="channel">PASSWORD.SVRCONN</parameter>
      <parameter name="topicString">mytopic</parameter>
      <parameter name="topicName">topic</parameter>
      <parameter name="connectionNamelist">12.0.0.1/1414,127.0.0.1/1414</parameter>
      <parameter name="reconnectTimeout">10</parameter>
      <parameter name="maxConnections">75</parameter>
      <parameter name="maxUnusedConnections">50</parameter>
      <parameter name=timeout">3600</parameter>
   </parameters>
</inboundEndpoint>

Sample inbound configuration for durable subscription

<inboundEndpoint name="class" sequence="{inject handler sequence}" onError="fault"
                            class="org.wso2.carbon.inbound.custom.poll.MQPollingInbound" suspend="false">
   <parameters>
      <parameter name="username">mqm</parameter>
      <parameter name="password">upgs5423</parameter>
      <parameter name="host">localhost</parameter>
      <parameter name="port">1414</parameter>
      <parameter name="queueManager">queueManager</parameter>
      <parameter name="channel">PASSWORD.SVRCONN</parameter>
      <parameter name="topicString">mytopic</parameter>
      <parameter name="topicName">topic</parameter>
      <parameter name="durability">CMQC.MQSO_DURABLE</parameter>
      <parameter name="subscriptionName">mySubscription</parameter>
      <parameter name="connectionNamelist">12.0.0.1/1414,127.0.0.1/1414</parameter>
      <parameter name="reconnectTimeout">10</parameter>
      <parameter name="maxConnections">75</parameter>
      <parameter name="maxUnusedConnections">50</parameter>
      <parameter name=timeout">3600</parameter>
   </parameters>
</inboundEndpoint>

Sample inbound configuration with ssl

<inboundEndpoint name="class" sequence="{inject handler sequence}" onError="fault"
                            class="org.wso2.carbon.inbound.custom.poll.MQPollingInbound" suspend="false">
   <parameters>
      <parameter name="sequential">true</parameter>
      <parameter name="interval">2000</parameter>
      <parameter name="coordination">true</parameter>
      <parameter name="username">mqm</parameter>
      <parameter name="password">upgs5423</parameter>
      <parameter name="host">localhost</parameter>
      <parameter name="port">1414</parameter>
      <parameter name="queueManager">queueManager</parameter>
      <parameter name="queue">myqueue</parameter>
      <parameter name="channel">PASSWORD.SVRCONN</parameter>
      <parameter name="connectionNamelist">12.0.0.1/1414,127.0.0.1/1414</parameter>
      <parameter name sslEnable>true</parameter>
      <parameter name="cipherSuite">SSL_RSA_WITH_3DES_EDE_CBC_SHA</parameter>
      <parameter name="flipsRequired">false</parameter>
      <parameter name="trustStore">wso2carbon.jks</parameter>
      <parameter name="trustPassword">wso2carbon</parameter>
      <parameter name="keyStore">wso2carbon.jks</parameter>
      <parameter name="keyPassword">wso2carbon</parameter>
      <parameter name="reconnectTimeout">10000</parameter>
      <parameter name="maxConnections">75</parameter>
      <parameter name="maxUnusedConnections">50</parameter>
      <parameter name=timeout">3600</parameter>
   </parameters>
</inboundEndpoint>

For further reading

  1. http://learnjavawithisla.blogspot.com/2017/08/writing-3rd-part-connector-for-wso2-esb.html
  2. https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/com.ibm.mq.helphome.v80.doc/WelcomePagev8r0.htm
  3. https://docs.wso2.com/display/ESBCONNECTORS/Creating+and+Publishing+a+Third+Party+Connector
  4. https://docs.wso2.com/display/ESB490/Working+with+Inbound+Endpoints
  5. http://learnjavawithisla.blogspot.com/2017/08/using-ssl-support-for-ibm-websphere-mq.html
  6. https://learnjavawithisla.blogspot.com/2017/08/writing-java-classes-to-perform-queue.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment