1 Reply Latest reply on Feb 2, 2017 5:19 AM by sivaraya

    WMQ 7.5 with WildFly 8.1

    erikdr2015

      Hi friends,

       

      Sorry for a slighly vague question but it's early days of our attempt to PoC WildFly to replace WebSphere. We try the MQ side (sorry for now sticking to WMQ as we don't want extensive application changes for other JMS providers, and the landscape for the near future will need to integrate with lots of non-JBoss MQ servers.)

       

      1] Exerpt from standalone-full.xml:

       

       

              <subsystem xmlns="urn:jboss:domain:resource-adapters:2.0">

                  <resource-adapters> 

                      <resource-adapter id="wmq.jmsra.rar"> 

                          <archive> 

                              wmq.jmsra.rar 

                          </archive>

        <transaction-support>NoTransaction</transaction-support>

        <connection-definitions>

        <connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:jboss/jms/SendCF" enabled="true" use-java-context="false" pool-name="SendCF">

                                    <config-property name="port">

                                        10423

        </config-property>

                                    <config-property name="hostName">

                                    rs94aso7.ourdomain

      </config-property>

        <config-property name="channel">

                                        WILDFLY.POC.SVRCONN

        </config-property>

        <config-property name="transportType">

                                        CLIENT

        </config-property>

        <config-property name="queueManager">

                                        MQMMI05

        </config-property>

        </connection-definition>

        </connection-definitions>

        <admin-objects>

                                <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/jms/destQ" enabled="true" use-java-context="false" pool-name="destQ">

        <config-property name="baseQueueManagerName">

                                        MQMMI05

        </config-property>

        <config-property name="baseQueueName">

                                        FROMWASQ

         </config-property>

        </admin-object>

        </admin-objects>

        </resource-adapter>

        </resource-adapters>

        </subsystem>

       

      (WMQ 7.5 instructions, probably for an older JBosss version, assume a separate -ds.xml file but fields are roughly same as here; I copied the xml fields from another thread on JBoss 8 with WMQ, hopefully the direction chosen is proper.)


      2] Then the error Wildfly gives when activating the deployment:

       

      "failure-description" => {"JBAS014771: Services with missing/unavailable dependencies" => [

       

      "jboss.naming.context.java.comp.JmsTestEAR.JmsTestEJB.MessageSender.env.jms.destQ is missing [jboss.naming.context.java.jboss.resources.jms.destQ]",

       

      "jboss.naming.context.java.module.JmsTestEAR.JmsTestWeb.env.jms.destQRef is missing [jboss.naming.context.java.jboss.resources.jms.destQRef]"

       

          ]},

       

      3] Finally some more background about the JMSTestEAR (we browsed through it from WebSphere, haven't seen a way for similar from JBoss yet) :

       


      Select Module EJB URI Resource Reference Target Resource JNDI Name Login configuration
        JmsTestEJB          MessageSender      JmsTestEJB.jar,META-INF/ejb-jar.xml jms/DestQ
      Resource authorization: Container
      Authentication method: None
        JmsTestWeb JmsTestWeb.war,WEB-INF/web.xml jms/DestQRef
      Resource authorization: Container
      Authentication method: None

      So the 'DestQRef' and 'DestQ' apparently are logical names in the EAR, interesting enough we did not see them in the WAS-WMQ property file which I copy below. Hence I did not use a DestqRef name in the standalone-full.xml, if we first resolve the issue with DestQ itself then of course we can also add some entry (JNDI again?) for DestQRef.

      4] Exerpt from a WebSphere property file used by this EAR and currently working well

       

      xmlns:resources.jms.mqseries="http://www.ibm.com/websphere/appserver/schemas/5.0/resources.jms.mqseries.xmi" xmlns:resources.jms="http://www.ibm.com/websphere/appserver/schemas/5.0/resources.jms.xmi" xmi:version="2.0"><resources.jms:JMSProvider externalProviderURL="" externalInitialContextFactory="" description="V5

       

       

       

      Default Messaging Provider" name="WebSphere JMS Provider" xmi:id="builtin_jmsprovider"/><resources.jms:JMSProvider externalProviderURL="" externalInitialContextFactory="" description="WebSphere MQ Messaging Provider" name="WebSphere MQ JMS Provider" xmi:id="builtin_mqprovider"><factories name="FROMWASQ2" xmi:id="MQQueue_1334218231985" replyToStyle="DEFAULT" messageBody="UNSPECIFIED" mqmdMessageContext="DEFAULT" mqmdWriteEnabled="false" mqmdReadEnabled="false" readAhead="QUEUE_DEFINED" sendAsync="QUEUE_DEFINED" queueManagerPort="1414" targetClient="JMS" floatingPointEncoding="IEEENormal" decimalEncoding="Normal" integerEncoding="Normal" useNativeEncoding="true" CCSID="1208" baseQueueName="FROMWASQ2" specifiedExpiry="0" expiry="APPLICATION_DEFINED" specifiedPriority="0" priority="APPLICATION_DEFINED" persistence="APPLICATION_DEFINED" jndiName="jms/harmonizer/queue/harmonize-berichten" xmi:type="resources.jms.mqseries:MQQueue"/><factories description="QCF tbv JmsTestEar applicatie" name="SendCF" xmi:id="MQQueueConnectionFactory_1349355518193" CCSID="819" jndiName="jms/SendCF" xmi:type="resources.jms.mqseries:MQQueueConnectionFactory" clientReconnectTimeout="1800" clientReconnectOptions="RECONNECT" sslResetCount="0" rescanInterval="5000" pollingInterval="5000" failIfQuiesce="true" tempModel="SYSTEM.DEFAULT.MODEL.QUEUE" transportType="CLIENT" channel="SYSTEM.DEF.SVRCONN" port="1414" host="*" queueManager="*" XAEnabled="true" xaRecoveryAuthAlias="n-rs94atb7-sbx01-01/testUser"><propertySet xmi:id="J2EEResourcePropertySet_1405862465747"><resourceProperties name="CDTURL" xmi:id="J2EEResourceProperty_1405862465747" type="java.lang.String" required="false" value="file:///tmp/MQMCL.TAB"/><resourceProperties name="QMANAGER" xmi:id="J2EEResourceProperty_1405862512186" type="java.lang.String" required="false" value="*MQMCL"/></propertySet><connectionPool xmi:id="ConnectionPool_1349355518492" purgePolicy="EntirePool"/><mapping xmi:id="MappingModule_1349355518612" authDataAlias="n-rs94atb7-sbx01-01/testUser" mappingConfigAlias="DefaultPrincipalMapping"/><sessionPool xmi:id="ConnectionPool_1349355518551"/></factories><factories name="FROMWASQ" xmi:id="MQQueue_1349356219114" replyToStyle="DEFAULT" messageBody="UNSPECIFIED" mqmdMessageContext="DEFAULT" mqmdWriteEnabled="false" mqmdReadEnabled="false" readAhead="QUEUE_DEFINED" sendAsync="QUEUE_DEFINED" queueManagerPort="1414" targetClient="JMS" floatingPointEncoding="IEEENormal" decimalEncoding="Normal" integerEncoding="Normal" useNativeEncoding="true" CCSID="1208" baseQueueName="FROMWASQ" specifiedExpiry="0" expiry="APPLICATION_DEFINED" specifiedPriority="0" priority="APPLICATION_DEFINED" persistence="APPLICATION_DEFINED" jndiName="jms/destQ" xmi:type="resources.jms.mqseries:MQQueue"/></resources.jms:JMSProvider>

       

       

       

      So the question is simply: what am I doing wrong, how to resolve the error (hopefully without needing to modify the Java code)?
      Tnx a LOT...