Использование JMS для подключения к IBM MQ - PullRequest
10 голосов
/ 24 февраля 2010

Я хочу использовать JMS для подключения к IBM MQ. Как указать администратор очередей, канал и другие свойства?

Ответы [ 5 ]

6 голосов
/ 14 июля 2010

Используя JNDI для поиска соединения фабрики / мест назначения, предоставьте InitialContext следующие свойства:

java.naming.provider.url=<ip>:<port, default is 1414>/<channel name, default channel is SYSTEM.DEF.SVRCONN>
java.naming.factory.initial=com.ibm.mq.jms.context.WMQInitialContextFactory
java.naming.security.authentication=none
java.naming.security.credentials=
java.naming.security.principal=

с использованием очередей WAS (Websphere Application Server) свойства будут следующими:

java.naming.provider.url=iiop://<ip>:<port, the defualt is 2809>
java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory
java.naming.security.authentication=none
java.naming.security.credentials=
java.naming.security.principal=

Остальное будет выглядеть следующим образом:

Properties config = new Properties();
config.load(new FileInputStream("connectionConfig.properties"));// this file would contain the properties above
InitialContext context = new InitialContext(config);
ConnectionFactory factory = (ConnectionFactory) context.lookup("ConnectionFactory");// connection factory name
Destination destination = (Destination) context.lookup("destination");// queue/topic name
3 голосов
/ 23 июля 2016

Вам необходимо создать bean-компонент MQQueueConnectionFactory и установить в нем необходимые свойства.

<bean id="queueConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    <property name="transportType" ref="transport" />
    <property name="queueManager" value="queueManagerName" />
    <property name="hostName" value="hostName" />
    <property name="port" value="portNumber" />
    <property name="channel" value="channelName" />
</bean>
<bean id="transport"
    class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
    <property name="staticField">
        <value>
            com.ibm.mq.jms.JMSC.MQJMS_TP_CLIENT_MQ_TCPIP
        </value>
    </property>
</bean>
2 голосов
/ 19 марта 2015

Использование клиентского API IBM

            import com.ibm.mq.MQEnvironment;
            import com.ibm.mq.MQQueue;
            import com.ibm.mq.MQQueueManager;
            import com.ibm.mq.constants.CMQC;

            public class QueueMonitoring {

                public static void main(String[] args) {
                    int openOptions = CMQC.MQOO_INQUIRE | CMQC.MQOO_INPUT_AS_Q_DEF;
                    MQEnvironment.hostname = "192.168.59.103";
                    MQEnvironment.port = 1414;
                    MQEnvironment.channel = "SYSTEM.DEF.SVRCONN";
                    MQEnvironment.properties.put(CMQC.TRANSPORT_PROPERTY,CMQC.TRANSPORT_MQSERIES);

                    MQQueueManager qMgr;
                    try {
                        qMgr = new MQQueueManager("QM1");
                        MQQueue destQueue = qMgr.accessQueue("DOCKERQ", openOptions);
                        System.out.println("Queue size:" + destQueue.getCurrentDepth());
                        destQueue.close();
                        qMgr.disconnect();

                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                }
                }
2 голосов
/ 03 июля 2010

Вот учебник , который может помочь:

Кроме того, обязательно используйте документы для правильной версии WMQ. V7.0 является текущей версией, а v6.0 поддерживается до сентября 2011 года. Независимо от того, что вы используете, посмотрите правильную версию руководства по использованию Java:

v6.0, руководство
v7.0 manual

0 голосов
/ 24 февраля 2010

лучший способ - использовать командную строку. Это очень весело. Вы можете скачать справочник команд с http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/csqzaj05.pdf

Если ваш сервер MQ работает на компьютере с Windows, вы можете при желании использовать MQExplorer и настроить его графически.

...