users@glassfish.java.net

wmq.jmsra.rar IBM MQ resource adaptor glassfish MDB deploy problem

From: <glassfish_at_javadesktop.org>
Date: Thu, 11 Feb 2010 15:47:14 PST

I failed to deploy a MDB using the IBM JCA Resource Adaptor to a remote MQv6 queue, when using EJB5 MDB annotations then repeated with hand crafted ejb-jar.xml and sun-ejb-jar.xml files while commenting out annotations and have a least got application started and both logs and traces in resource adaptor shows no errors.

I think there are still problems and would like to fix deployment with annotations anyway.

I am guessing there may be some solution in adding other xml elements to ejb-jar.xml and sun-ejb-jar such as some of the following:-
<message-destination> or <message-destination-ref>
<resource-ref>
<resource-env-ref>
<mdb-connection-factory>
<mdb-resource-adaptor>

I added the following to sun-ejb-jar.xml to get it started without errors:-
<mdb-resource-adaptor> .. with a <activation-config-property>...
<mdb-connection-factory>...

Do I need to add following to ejb-jar.xml ?
<resource-ref>
<res-ref-name>jms/raaQueueconnectionFactory</res-ref-name>
<res-type>javax.jms.QueueConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>


I believe my core challenge may be the absence of standard way of representing physical destinations and am suspicious glassfish defaults back to creating a native iMQ physical destination using default jmsra when it cannot find physical destination and fails to process activationSpec that is proprietary to IBM wmq.jmsra resource adaptor.

I am trying to do this with IBM option useJNDI=false in the proprietary activationSpec. The property useJNDI=false tells the IBM resource adaptor to expect a physical destination name in the "destination=<name>" property of the activationSpec instead of an external JNDI entry to some JNDI provider populated by IBM MQ.

IBM MQ could be reconfigured to populate a shared file-based JNDI provider when it creates physical destinations and resources and if I made such a JNDI provider visible to GlassFish it may be easier to designate the physical destination in a standard way.

In the absence of this JNDI provider I am unsure how to designate the physical destination so the annotated MDB can be deployed. Do I need to fool GlashFish or tell GlassFish that there is a physical destination and not to default? (extra ref elements in DD?)

My failing annotated configuration is described below, then I describe hand crafted configuration that starts error free. How can I get annotated version working?

=============== failing annotated configuration ===================

I have set up following resources as shown from resource element extract from domain.xml

----------Glassfish domain.xml extract ---------------------------------------
  <resources>
    ...
    <admin-object-resource enabled="true" jndi-name="jms/raaRequestQueue" object-type="user" res-adapter="wmqjmsra" res-type="javax.jms.Queue">
      <property name="DestinationProperties" value="Name=RAA.QUEUE"/>
      <property name="Name" value="RAA.QUEUE"/>
    </admin-object-resource>
    <connector-resource enabled="true" jndi-name="jms/raaQueueConnectionFactory" object-type="user" pool-name="listenerworkerpool"/>
    <resource-adapter-config object-type="user" resource-adapter-name="wmqjmsra">
      <property name="connectionConcurrency" value="1"/>
      <property name="traceDestination" value="/var/opt/SUNWam/logs/raalistener_wmqtrace.log"/>
      <property name="maxConnections" value="1"/>
      <property name="traceEnabled" value="true"/>
      <property name="traceLevel" value="9"/>
    </resource-adapter-config>
    <connector-connection-pool associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-definition-name="javax.jms.QueueConnectionFactory" connection-leak-reclaim"false" connection-leak-timeout-in-seconds="0" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="true" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="listenerworkerpool" pool-resize-quantity="2" resource-adapter-name="wmqjmsra" steady-pool-size="8" transaction-support="LocalTransaction" validate-atmost-once-period-in-seconds="0"/>
  </resources>

I have already deployed IBM's wmq.jsmra.rar obtained from IBM Websphere MQ6 Client distribution where the resource-adapter-config properties above are defined (see WebSphereMQ->Using Java->appendix->The WebSphere MQ resource adapter at http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp). I have configured it to trace everything and get traces.

I believe the DestinationProperties and Name in the jms/raaRequestQueue are included by mistake as these are sun adaptor not wmq adaptor conventions.




The following MDB fails to deploy with the annotations commented back in.

It is shown below in the final "commented out" form but you could deploy my oringinal annotated form be restoring commented out annotations.

----------------------- MDB (deploy by commenting in annotations) --------------------------------

  @MessageDriven(mappedName = "jms/raaRequestQueue",
activationConfig = {
// @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), // [sun doc:D]
// @ActivationConfigProperty(propertyName = "maxPoolSize", propertyValue = "1"), // [sun doc:M]
// @ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "false"),
// @ActivationConfigProperty(propertyName = "destination", propertyValue = "RAA.QUEUE"),
// also tried
// @ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "true"),
// @ActivationConfigProperty(propertyName = "destination", propertyValue = "jms/raaRequestQueue"),
// @ActivationConfigProperty(propertyName = "channel", propertyValue = "NONSSL.CLIENTS"),
// @ActivationConfigProperty(propertyName = "hostName", propertyValue = "192.55.555.55"),
// @ActivationConfigProperty(propertyName = "port", propertyValue = "1414"),
// @ActivationConfigProperty(propertyName = "queueManager", propertyValue = "RAASSLQM"),
/ @ActivationConfigProperty(propertyName = "transportType", propertyValue = "CLIENT"),
// @ActivationConfigProperty(propertyName = "username", propertyValue = "hiddenUser"),
// @ActivationConfigProperty(propertyName = "password", propertyValue = "hiddenPw")
  })
public class RaaRequestMDB implements MessageListener {

… onMessage etc.
}
------------------------------------------------------------------------------------------------------

The error logs show
[#|2010-02-11T09:16:17.498+1000|INFO|sun-appserver2.1|javax.enterprise.system.tools.deployment|_ThreadID=32;_ThreadName=Thread-11756;|deployed with moduleid = RaaRneLdapListner|#]
[#|2010-02-11T09:16:18.146+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setQueueManager;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setQueueManager is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.148+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;queueManager;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR7097: No setter method present for the property queueManager in the class com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.151+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setUseJNDI;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setUseJNDI is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.152+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;useJNDI;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR7097: No setter method present for the property useJNDI in the class com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.156+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setPort;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setPort is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.158+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;port;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR7097: No setter method present for the property port in the class com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.159+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setHostName;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setHostName is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.161+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;hostName;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR7097: No setter method present for the property hostName in the class com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.162+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setTransportType;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setTransportType is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.164+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;transportType;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR7097: No setter method present for the property transportType in the class com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.166+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setChannel;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setChannel is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.168+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;channel;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR7097: No setter method present for the property channel in the class com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.170+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setQueueManager;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setQueueManager is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.172+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;queueManager;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR7097: No setter method present for the property queueManager in the class com.sun.messaging.jms.ra.ActivationSpec|#]
[#|2010-02-11T09:16:18.174+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;setUseJNDI;com.sun.messaging.jms.ra.ActivationSpec;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|RAR8000 : The method setUseJNDI is not present in the class : com.sun.messaging.jms.ra.ActivationSpec|#]

[#|2010-02-11T09:16:18.213+1000|WARNING|sun-appserver2.1|javax.enterprise.system.stream.err|_ThreadID=33;_ThreadName=httpSSLWorkerThread-4848-46;_RequestID=fae187d2-96fb-4e87-ac38-0be8c364e6da;|
com.sun.messaging.jmq.auth.api.FailedLoginException: [B4051]: Forbidden hiddenUser
        at com.sun.messaging.jmq.jmsserver.auth.JMQDigestAuthenticationHandler.handleResponse(JMQDigestAuthenticationHandler.java:134)
        at com.sun.messaging.jmq.jmsserver.auth.AccessController.handleResponse(AccessController.java:423)
        at com.sun.messaging.jmq.jmsserver.auth.MQAuthenticator.authenticate(MQAuthenticator.java:108)
        at com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectConnection.authenticate(IMQDirectConnection.java:128)
        at com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectService.createDirectConnection(IMQDirectService.java:325)
        at com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectService.createConnection(IMQDirectService.java:419)
        at com.sun.messaging.jms.ra.DirectConnectionFactory._createConnectionId(DirectConnectionFactory.java:424)
        at com.sun.messaging.jms.ra.DirectConnectionFactory._createConnection(DirectConnectionFactory.java:547)
        at com.sun.messaging.jms.ra.EndpointConsumer.createDirectMessageConsumer(EndpointConsumer.java:935)
        at com.sun.messaging.jms.ra.EndpointConsumer._init(EndpointConsumer.java:305)
        at com.sun.messaging.jms.ra.EndpointConsumer.<init>(EndpointConsumer.java:215)


I also get following when try variants of the configuration
[#|2010-02-09T21:57:39.413+1100|SEVERE|sun-appserver2.1|javax.enterprise.system.container.ejb.mdb|_ThreadID=14;_ThreadName=httpWorkerThread-4848-1;
RaaRequestMDB;com.sun.enterprise.connectors.ConnectorRuntimeException: Could not find physical destination : null;_RequestID=4d9d6e0b-bba7-4cfc-a885-104012c2efec;|
MDB00017: [RaaRequestMDB]: Exception in creating message-driven bean container: [com.sun.enterprise.connectors.ConnectorRuntimeException:
Could not find physical destination : null]|#]

I still get other logged warnings that have not been removed in handcrafted version listed below

GlassFish fails to generate complete ejb-jar.xml and sun-ejb-jar.xml as follows

------ failing ejb-jar.xml (from annotated MDB) -------------------------------------------------------
 
<enterprise-beans>
<message-driven>
<display-name>RaaRequestMDB</display-name>
<ejb-name>RaaRequestMDB</ejb-name>
<mapped-name>jms/raaRequestQueue</mapped-name>
<ejb-class>com.bigpond.raa.connector.message.RaaRequestMDB</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Container</transaction-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>password</activation-config-property-name>
<activation-config-property-value>hiddenPw</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>queueManager</activation-config-property-name>
<activation-config-property-value>RAASSLQM</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>RAA.QUEUE</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>useJNDI</activation-config-property-name>
<activation-config-property-value>false</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>hostName</activation-config-property-name>
<activation-config-property-value>192.55.555.55</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>transportType</activation-config-property-name>
<activation-config-property-value>CLIENT</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>username</activation-config-property-name>
<activation-config-property-value>hiddenUser</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>port</activation-config-property-name>
<activation-config-property-value>1414</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>channel</activation-config-property-name>
<activation-config-property-value>NONSSL.CLIENTS</activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
</enterprise-beans>
</ejb-jar>
 
---- failing sun-ejb-jar.xml (from annotated MDB - missing md-resource-adaptor) ----------------------------------

<sun-ejb-jar>
<enterprise-beans>
<unique-id>82958194004262912</unique-id>
<ejb>
<ejb-name>RaaRequestMDB</ejb-name>
<jndi-name>jms/raaRequestQueue</jndi-name>
<pass-by-reference>false</pass-by-reference>
<jms-max-messages-load>1</jms-max-messages-load>
<is-read-only-bean>false</is-read-only-bean>
<refresh-period-in-seconds>-1</refresh-period-in-seconds>
<cmt-timeout-in-seconds>0</cmt-timeout-in-seconds>
<gen-classes/>
</ejb>
</enterprise-beans>
</sun-ejb-jar>

!!!! This generated file is missing mdb-resource-adaptor !!!!!
 

================== Hand Crafted Config ===========================

On failing to deploy I hand crafted following sun-ejb-jar.xml and redeployed successfully (with problems)

------ deployable hand crafted sun-ejb-jar.xml ( no annotation) -----------------------------------
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.1.1 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-1.dtd">
<sun-ejb-jar>
<enterprise-beans>
<unique-id>82959139294347264</unique-id>
<ejb>
<ejb-name>RaaRequestMDB</ejb-name>
<jndi-name>jms/raaRequestQueue</jndi-name>
 
<mdb-connection-factory>
<jndi-name>jms/raaQueueConnectionFactory</jndi-name>
</mdb-connection-factory>
 
<mdb-resource-adapter>
<resource-adapter-mid>wmqjmsra</resource-adapter-mid>
<activation-config>
<activation-config-property>
<activation-config-property-name>useJNDI</activation-config-property-name>
<activation-config-property-value>false</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>DestinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>Destination</activation-config-property-name>
<activation-config-property-value>RAA.QUEUE</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>channel</activation-config-property-name>
<activation-config-property-value>NONSSL.CLIENTS</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>hostName</activation-config-property-name>
<activation-config-property-value>172.55.555.55</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>port</activation-config-property-name>
<activation-config-property-value>1414</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>queueManager</activation-config-property-name>
<activation-config-property-value>RAASSLQM</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>transportType</activation-config-property-name>
<activation-config-property-value>CLIENT</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>username</activation-config-property-name>
<activation-config-property-value>hiddenUser</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>password</activation-config-property-name>
<activation-config-property-value>hiddenPw</activation-config-property-value>
</activation-config-property>
</activation-config>
</mdb-resource-adaptor>
 
<pass-by-reference>false</pass-by-reference>
<jms-max-messages-load>1</jms-max-messages-load>
<is-read-only-bean>false</is-read-only-bean>
<refresh-period-in-seconds>-1</refresh-period-in-seconds>
<cmt-timeout-in-seconds>0</cmt-timeout-in-seconds>
<gen-classes/>
</ejb>
</enterprise-beans>
</sun-ejb-jar>
------ deployable hand crafted sun-ejb-jar.xml ( no annotation) -----------------------------------
 
 
You might expect Sun software to read sun-ejb-jar.xml so now deploys OK.

You might expect IBM resource adaptor to load activationSpec from standard (ejb-jar.xml) instead of proprietary (sun-ejb-jar.xml).

Unfortunately I changed inline in generated folder and overwrote my ejb-jar from unannotated MDB, so I lost activationSpec.

My dev server was relocated in the last few hours so I can retry with proprietary activationSpec in ebj-jar.xml so IBM resource adaptor can read config.

The above sun-ejb-jar.xml does support server restart without errors.

The restart shows following relevant logs:-

------------- server.log restart logs with handcrafted sun-ejb-jar.xml -----------------------------

[#|2010-02-11T12:39:32.178+1000|WARNING|sun-appserver2.1|javax.enterprise.system.stream.err|_ThreadID=25;_ThreadName=httpSSLWorkerThread-4848-45;_RequestID=bc8cef99-9adc-435b-874d-acb55a1faab7;| WMQ Resource Adapter warning: MQJCA4005:Distributed transactions are not available in client mode.|#]
[#|2010-02-11T12:46:07.063+1000|INFO|sun-appserver2.1|javax.resourceadapter.mqjmsra.lifecycle|_ThreadID=10;_ThreadName=main;|MQJMSRA_RA1101: SJSMQ JMS Resource Adapter starting...|#]
[#|2010-02-11T12:46:14.224+1000|INFO|sun-appserver2.1|javax.resourceadapter.mqjmsra.lifecycle|_ThreadID=10;_ThreadName=main;|MQJMSRA_RA1101: SJSMQ JMSRA Started:DIRECT|#]
[#|2010-02-11T12:46:26.078+1000|WARNING|sun-appserver2.1|javax.enterprise.resource.resourceadapter|_ThreadID=10;_ThreadName=main;_RequestID=9f45a26f-c8ce-40e6-9b2f-fbe3bdb83a16;|Please add the following permissions to the server.policy file and restart the appserver.null grant { permission java.security.AllPermission; };|#]
[#|2010-02-11T12:46:27.929+1000|INFO|sun-appserver2.1|javax.enterprise.system.core.classloading|_ThreadID=10;_ThreadName=main;RaaRneLdapListner;|LDR5010: All ejb(s) of [RaaRneLdapListner] loaded successfully!|#]
[#|2010-02-11T12:46:50.126+1000|INFO|sun-appserver2.1|javax.enterprise.system.core|_ThreadID=10;_ThreadName=main;|Application server startup complete.|#]

The wqmq trace shows
dev07:/var/opt/SUNWappserver/domains/domain1# cat /var/opt/SUNWam/logs/raalistener_wmqtrace.log
[11/02/10 12:46:23:892 EST.0] main Version: Unable to retrieve ImplementationVersion data
[11/02/10 12:46:23:893 EST.0] main CMVC Level: Unable to retrieve ImplementationVersion data
[11/02/10 12:46:23:893 EST.1] main Build Type: Unable to retrieve ImplementationVersion data
[11/02/10 12:46:23:894 EST.0] main os.arch: sparc
[11/02/10 12:46:23:894 EST.1] main os.name: SunOS
[11/02/10 12:46:23:894 EST.2] main java.version: 1.5.0_14
[11/02/10 12:46:23:895 EST.0] main java.vendor: Sun Microsystems Inc.
[11/02/10 12:46:23:895 EST.1] main user.name: webservd
[11/02/10 12:46:23:896 EST.0] main Extended transactional client not found
[11/02/10 12:46:23:909 EST.0] main Getting resource bundle, current Locale is: en
[11/02/10 12:46:23:922 EST.0] main MQJCA4005:Distributed transactions are not available in client mode.
[11/02/10 12:46:23:923 EST.0] main --->ResourceAdapterImpl.start(...)
[11/02/10 12:46:23:923 EST.1] main --->ResourceAdapterImpl.verifyJCAClasses()
[11/02/10 12:46:23:924 EST.0] main JCA v1.5 classes found
[11/02/10 12:46:23:925 EST.0] main <---ResourceAdapterImpl.verifyJCAClasses()
[11/02/10 12:46:23:925 EST.1] main --->ResourceAdapterImpl.verifyJMSClasses()
[11/02/10 12:46:24:717 EST.0] main implementation version not set, version check skipped
[11/02/10 12:46:24:717 EST.1] main <---ResourceAdapterImpl.verifyJMSClasses()
[11/02/10 12:46:24:718 EST.0] main Acquired WorkManager: com.sun.enterprise.connectors.work.WorkManagerProxy
[11/02/10 12:46:24:718 EST.1] main ResourceAdapter deployment successful
[11/02/10 12:46:24:719 EST.0] main <---ResourceAdapterImpl.start(...)
[11/02/10 12:46:24:866 EST.0] main --->ManagedConnectionFactoryImpl()
[11/02/10 12:46:24:867 EST.0] main <---ManagedConnectionFactoryImpl()
[11/02/10 12:46:24:867 EST.1] main --->ManagedConnectionFactoryImpl.setLogWriter()
[11/02/10 12:46:24:868 EST.0] main PrintWriter: com.sun.enterprise.connectors.util.PrintWriterAdapter_at_f6fb59


I changed the IP address to MQ and get the same logs so the absence of an activationConfig in ejb-jar.xml probably makes this errorless startup misleading. There is locally installed default MQ running.

I will retry with handcrafted ejb-jar.xml including IBM activationSpec but seek any ejb-jar.xml and sun-ejb-jar.xml samples of working configs and configs that deploy annotated MDBs to non-default resource adaptors without errors.

I expect I need some extra elements such as following but am unsure how to designate in GlassFish my physical destination RAA.QUEUE on remote IBM MQ and am trying to avoid external JNDI provider populated by IBM MQ.
<message-destination> or <message-destination-ref>
<resource-ref>
<resource-env-ref>
<mdb-connection-factory>
<mdb-resource-adaptor>
[Message sent by forum member 'kennwoods' (ken.woods_at_digitalidols.com)]

http://forums.java.net/jive/thread.jspa?messageID=386262