2010-02-24 65 views

Respuesta

6

Usando JNDI para ConnectionFactory/destinos búsquedas , proporcionar la InitialContext con las siguientes propiedades:

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= 

usando era colas (Websphere Application Server), las propiedades sería como sigue:

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= 

El resto sería la siguiente:

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 
+0

No encuentro com.ibm.websphere.naming.WsnInitialContextFactory en cualquier lugar, ayuda –

2

Aquí es a tutorial que pueden ayudar:

Además, asegúrese de usar los documentos para la versión correcta de WMQ. V7.0 es actual y v6.0 es compatible hasta septiembre de 2011. Cualquiera que esté utilizando, mira el manual de Java usando la versión correcta:

v6.0 manual
v7.0 manual

2

El uso de la API cliente de 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

Es necesario crear un bean MQQueueConnectionFactory y establecer las propiedades requeridas en ella.

<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> 
Cuestiones relacionadas