0 Replies Latest reply on Mar 5, 2013 5:02 AM by zainab.madawala

    JBOSS EAP6.0.1 with IBM MQ problem

    zainab.madawala

      Hello,
       
      We are trying to integrate JBOSS EAP6.0.1 with IBM MQ. We have an application working on Websphere 7 with IBM MQ for JMS.
       
      We are in process of migration to JBOSS EAP6.0.1.
       
      With regards to setup and information available on various JBOSS forums, we managed to perform a few setup for the Queue Connection factories and Queues.
       
      With JBOSS EAP6.0.1, We have copied the "wmq.jmsra.rar" from the IBM MQ to JBOSS Standlalone deployment folder.
      We modified the standalone-full.xml to include the resource-adapter pertaining to IBM MQ.
       
      Snippet of configuration from standalone-full.xml:
       
      <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">
      <resource-adapters>
      <resource-adapter>
      <archive>
      wmq.jmsra.rar
      </archive>
      <transaction-support>NoTransaction</transaction-support>
      <connection-definitions>
      <connection-definition class-name="com.ibm.mq.connector.outbound.ManagedQueueConnectionFactoryImpl" jndi-name="java:jboss/jms/myQCF" pool-name="jms/myQCF">
      <config-property name="hostName">
      XXXXXX (Server Name)
      </config-property>
      <config-property name="channel">
      YYYYYY (Channel Name)
      </config-property>
      <config-property name="transportType">
      CLIENT
      </config-property>
      <config-property name="queueManager">
      ZZZZZ (Queue Manager Name)
      </config-property>
      </connection-definition>
      </connection-definitions>
      <admin-objects>
      <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/jms/myOutPostQueue" pool-name="OUT_POST">
      <config-property name="baseQueueName">
      OUT_POST
      </config-property>
      </admin-object>
      <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/jms/myOutAckQueue" pool-name="OUTPUT_REPLY_QUEUE">
      <config-property name="baseQueueName">
      OUTPUT_REPLY_QUEUE
      </config-property>
      </admin-object>
      <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/jms/myOutRespQueue" pool-name="OUTPUT_PDF_RESP">
      <config-property name="baseQueueName">
      IVN_ADV_QUEUE
      </config-property>
      </admin-object>
      </admin-objects>
      </resource-adapter>
      </resource-adapters>
      </subsystem>
       
      The connection-definition class-name are as per the ra.xml available under wmq.jmsra.rar\META-INF.
       
      With the above setup We are able to see the JNDI created for the Queues and Queue Connection factory.
       
      We have used Spring based JMS setup (JMSTemplate102) for getting the QCF and sending message.
       
      However, at the time of calling send method on jmsTemplate102, we get below error:
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5) Caused by: javax.resource.ResourceException: IJ000658: Unexpected throwable while trying to create a connection: null
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:378)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:397)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:365)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:329)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:302)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.outbound.ConnectionFactoryImpl.createManagedJMSConnection(ConnectionFactoryImpl.java:189)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      ... 135 more
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5) Caused by: com.ibm.mq.connector.DetailedResourceException: MQJCA1012: Failed to create a JMS connection factory., error code: MQJCA1012 A JCA ManagedConnectionFactory object was not able to create a WebSphere MQ classes for JMS ConnectionFactory object. Check the properties of the ConnectionFactory object.
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:124)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:100)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.outbound.ManagedQueueConnectionFactoryImpl.createConnection(ManagedQueueConnectionFactoryImpl.java:161)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.outbound.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:131)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.outbound.ManagedQueueConnectionImpl.<init>(ManagedQueueConnectionImpl.java:66)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.outbound.ManagedQueueConnectionFactoryImpl.createManagedConnection(ManagedQueueConnectionFactoryImpl.java:138)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.createConnectionEventListener(SemaphoreArrayListManagedConnectionPool.java:775)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:345)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      ... 141 more
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5) Caused by: javax.jms.JMSException: com.ibm.msg.client.jms.internal.JmsFactoryFactoryImpl cannot be cast to com.ibm.msg.client.jms.JmsFactoryFactory
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.msg.client.jms.JmsFactoryFactory.getInstance(JmsFactoryFactory.java:199)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.ConnectionFactoryBuilder.constructJmsConnectionFactory(ConnectionFactoryBuilder.java:230)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.ConnectionFactoryBuilder.createConnectionFactory(ConnectionFactoryBuilder.java:124)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl.createConnectionFactory(ManagedConnectionFactoryImpl.java:431)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      at com.ibm.mq.connector.outbound.ManagedQueueConnectionFactoryImpl.createConnection(ManagedQueueConnectionFactoryImpl.java:157)
       
      17:15:22,852 ERROR [stderr] (http-localhost/127.0.0.1:8080-5)      ... 146 more
       
       
       
      Any help would be appreciated.
      Also, if someone have configured IBM MQ with EAP6.0.1 (Without MDBs), pls guide us.
       
      Thanks.