users@glassfish.java.net

Generic RA, two different queues - MDB does not receive messages

From: <glassfish_at_javadesktop.org>
Date: Wed, 21 Oct 2009 05:02:35 PDT

Hi there,

I'm using Glassfish v2.1 with genericra to connect to IBM MQ Series Queues.
There are 2 queues on 2 different hosts.

I have a stateless EJB which sends messages to queue A. This is working.
At the other end, someone receives my message and sends back another one, using [b]a different queue B[/b]

Now I have a MDB which should consume the messages from queue B, but it doesn't.

Here are the questions:
1. Do I have to deploy a second genericra for the other queue?

2. Is this configuration correct?
the ejb-jar.xml:
===============================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>

<ejb-jar>
  <description><![CDATA[SowuMessageReceiver]]></description>
  <display-name>SowuMessageReceiver</display-name>
  <enterprise-beans>
    <message-driven>
      <description><![CDATA[Message Receiver for MQSeries Sowu Queue]]></description>
      <display-name>SowuMessageReceiver</display-name>
      <ejb-name>SowuMessageReceiver</ejb-name>
      <ejb-class>com.bmw.connector.sowu.messagereceiver.SowuMessageReceiver</ejb-class>
      <transaction-type>Container</transaction-type>
      <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
      <message-driven-destination>
        <destination-type>javax.jms.Queue</destination-type>
      </message-driven-destination>
    </message-driven>
  </enterprise-beans>

  <assembly-descriptor>
    <container-transaction>
      <method>
        <ejb-name>SowuMessageReceiver</ejb-name>
        <method-name>*</method-name>
      </method>
      <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
  </assembly-descriptor>

</ejb-jar>
===============================================================

the sun-ejb-jar.xml

<?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>
                <ejb>
                        <ejb-name>SowuMessageReceiver</ejb-name>
                        <jndi-name>sowu_queue_out_mn1p</jndi-name>
                        <mdb-connection-factory>
                                <jndi-name>sowu_connection_factory_mn1p</jndi-name>
                                <default-resource-principal>
                                        <name>xxx</name>
                                        <password>xxx</password>
                                </default-resource-principal>
                        </mdb-connection-factory>
                        <!-- Activation related RA specific configuration for this MDB -->
                        <mdb-resource-adapter>
                                <!--
                                        resource-adapter-mid points to the Generic Resource Adapter for JMS
                                -->
                                <resource-adapter-mid>genericraReceive</resource-adapter-mid>
                                <activation-config>
                                        <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>ConnectionFactoryJndiName</activation-config-property-name>
                                                <activation-config-property-value>sowu_connection_factory_mn1p</activation-config-property-value>
                                        </activation-config-property>
                                        <activation-config-property>
                                                <activation-config-property-name>DestinationJndiName</activation-config-property-name>
                                                <activation-config-property-value>sowu_queue_out_mn1p</activation-config-property-value>
                                        </activation-config-property>
                                        <activation-config-property>
                                                <activation-config-property-name>MaxPoolSize</activation-config-property-name>
                                                <activation-config-property-value>32</activation-config-property-value>
                                        </activation-config-property>
                                        <activation-config-property>
                                                <activation-config-property-name>RedeliveryAttempts</activation-config-property-name>
                                                <activation-config-property-value>0</activation-config-property-value>
                                        </activation-config-property>
                                        <activation-config-property>
                                                <activation-config-property-name>ReconnectAttempts</activation-config-property-name>
                                                <activation-config-property-value>4</activation-config-property-value>
                                        </activation-config-property>
                                        <activation-config-property>
                                                <activation-config-property-name>ReconnectInterval</activation-config-property-name>
                                                <activation-config-property-value>10</activation-config-property-value>
                                        </activation-config-property>
                                        <activation-config-property>
                                                <activation-config-property-name>RedeliveryInterval</activation-config-property-name>
                                                <activation-config-property-value>1</activation-config-property-value>
                                        </activation-config-property>
                                        <activation-config-property>
                                                <activation-config-property-name>SendBadMessagesToDMD</activation-config-property-name>
                                                <activation-config-property-value>false</activation-config-property-value>
                                        </activation-config-property>
                                </activation-config>
                        </mdb-resource-adapter>
                </ejb>
        </enterprise-beans>
</sun-ejb-jar>
                        
====================================================

and here's the RA-config:
    <resource-adapter-config object-type="user" resource-adapter-name="genericraReceive">
      <property name="SupportsXA" value="false"/>
      <property name="Password" value="xxx"/>
      <property name="RMPolicy" value="OnePerPhysicalConnection"/>
      <property name="LogLevel" value="finest"/>
      <property name="ProviderIntegrationMode" value="jndi"/>
      <property name="JndiProperties" value="java.naming.factory.url.pkgs=com.ibm.mq.jms.naming,java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory,java.naming.provider.url=file:/C:/www/fkd/MQSeries/JNDI-Directory"/>
      <property name="UserName" value="xxx"/>
    </resource-adapter-config>
===============================================================
The logmessages do not show any error during the deployment:

Created the object based on class :com.ibm.mq.jms.MQQueue|#]

About to set properties on queue://MN1P/BMW.NP.SOWUPREIS.FKDFKM?targetClient=1|#]

parseToProperties:null delimited:, seperator:=|#]

ProviderIntegrationMode jndi|#]

GenericJMSRA - getInstance() orig com.sun.genericra.GenericJMSRA_at_6aacffd9{ConnectionFactoryClassName = null},{QueueConnectionFactoryClassName = null},{TopicConnectionFactoryClassName = null},{XAConnectionFactoryClassName = null},{XAQueueConnectionFactoryClassName = null},{XATopicConnectionFactoryClassName = null},{QueueClassName = null},{TopicClassName = null},{UnifiedDestinationClassName = null},{ConnectionFactoryProperties = null},{JndiProperties = java.naming.factory.url.pkgs=com.ibm.mq.jms.naming,java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory,java.naming.provider.url=file:/C:/www/fkd/MQSeries/JNDI-Directory},{ProviderIntegrationMode = jndi},{CommonSetterMethodName = null},{SupportsXA = false},{DeliveryType = null},{UseFirstXAForRedelivery = false},|#]

Registering a endpoint consumer, transaction support :false|#]

Starting the message consumption|#]

Created non durable connection consumerqueue://QueueB/BMW.NP.SOWUPREIS.FKDFKM?targetClient=1|#]


Does anyone have an idea? It would be great to hear from you soon because I'm out of ideas and also out of time :-(
[Message sent by forum member 'tesis_glassfish' (vbrem_at_tesis.de)]

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