2 Replies Latest reply on May 17, 2006 5:02 AM by Lance Drake

    Problem in DLQ

    yogendra g Newbie

      Hi,
      I have an MDB which uses one topic and one queue.

      Following is my jboss.xml

      <jboss>
       <enterprise-beans>
       <message-driven>
       <ejb-name>notificationTopic</ejb-name>
       <destination-jndi-name>queue/RainbowJMSTopic</destination-jndi-name>
       <invoker-bindings>
       <invoker>
       <invoker-proxy-binding-name>default-message-driven-bean</invoker-proxy-binding-name>
       </invoker>
       </invoker-bindings>
       <resource-ref>
       <res-ref-name>RainbowConnectionFactory</res-ref-name >
       <jndi-name>TopicConnectionFactory</jndi-name >
       </resource-ref>
       </message-driven>
       <message-driven>
       <ejb-name>notificationQueue</ejb-name>
       <destination-jndi-name>topic/RainbowJMSQueue</destination-jndi-name>
       <invoker-bindings>
       <invoker>
       <invoker-proxy-binding-name>default-message-driven-bean</invoker-proxy-binding-name>
       </invoker>
       </invoker-bindings>
       <resource-ref>
       <res-ref-name>RainbowConnectionFactory</res-ref-name >
       <jndi-name>QueueConnectionFactory</jndi-name >
       </resource-ref>
       </message-driven>
       </enterprise-beans>
      
       <invoker-proxy-bindings>
       <invoker-proxy-binding>
       <name>default-message-driven-bean</name>
       <invoker-mbean>default</invoker-mbean>
       <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
       <proxy-factory-config>
       <JMSProviderAdapterJNDI>DefaultJMSProvider</JMSProviderAdapterJNDI>
       <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
       <CreateJBossMQDestination>true</CreateJBossMQDestination>
       <MaximumSize>15</MaximumSize>
       <MaxMessages>1</MaxMessages>
       <MDBConfig>
       <ReconnectIntervalSec>10</ReconnectIntervalSec>
       <DLQConfig>
       <DestinationQueue>queue/DLQ</DestinationQueue>
       <MaxTimesRedelivered>10</MaxTimesRedelivered>
       <TimeToLive>0</TimeToLive>
       </DLQConfig>
       </MDBConfig>
       </proxy-factory-config>
       </invoker-proxy-binding>
       </invoker-proxy-bindings>
      </jboss>
      


      Following is my ejb-jar.xml
      ejb-jar>
      
       <enterprise-beans>
      
       <message-driven>
       <ejb-name>notificationTopic</ejb-name>
       <ejb-class>com.mphasis.rainbow.sa.notification.core.ejb.RainbowMessagingListener</ejb-class>
       <message-selector></message-selector>
       <transaction-type>Container</transaction-type>
       <message-driven-destination>
       <destination-type>javax.jms.Topic</destination-type>
       </message-driven-destination>
       <resource-ref>
       <res-ref-name>RainbowConnectionFactory</res-ref-name >
       <res-type>javax.jms.QueueConnectionFactory</res-type >
       <res-auth>Container</res-auth >
       </resource-ref>
       <resource-env-ref>
       <resource-env-ref-name>RainbowJMSTopic</resource-env-ref-name >
       <resource-env-ref-type>javax.jms.Topic</resource-env-ref-type >
       </resource-env-ref>
       </message-driven>
      
      
       <message-driven>
       <ejb-name>notificationQueue</ejb-name>
       <ejb-class>com.mphasis.rainbow.sa.notification.core.ejb.RainbowMessagingListener</ejb-class>
       <message-selector></message-selector>
       <transaction-type>Container</transaction-type>
       <message-driven-destination>
       <destination-type>javax.jms.Queue</destination-type>
       </message-driven-destination>
       <resource-ref>
       <res-ref-name>RainbowConnectionFactory</res-ref-name >
       <res-type>javax.jms.QueueConnectionFactory</res-type >
       <res-auth>Container</res-auth >
       </resource-ref>
       <resource-env-ref>
       <resource-env-ref-name>RainbowJMSQueue</resource-env-ref-name >
       <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type >
       </resource-env-ref>
       </message-driven>
      
      
      </enterprise-beans>
      
      
       <assembly-descriptor>
       <container-transaction>
       <method>
       <ejb-name>notificationTopic</ejb-name>
       <method-name>*</method-name>
       </method>
       <trans-attribute>Required</trans-attribute>
       </container-transaction>
       <container-transaction>
       <method>
       <ejb-name>notificationQueue</ejb-name>
       <method-name>*</method-name>
       </method>
       <trans-attribute>Required</trans-attribute>
       </container-transaction>
       </assembly-descriptor>
      </ejb-jar>
      

      In my jbossmq-destinations-service.xml is have declared topic and queue as follows :
      <mbean code="org.jboss.mq.server.jmx.Topic"
       name="jboss.mq.destination:service=Topic,name=RainbowJMSTopic">
       <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
       <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
       <attribute name="SecurityConf">
       <security>
       <role name="guest" read="true" write="true"/>
       <role name="publisher" read="true" write="true" create="false"/>
       <role name="durpublisher" read="true" write="true" create="true"/>
       </security>
       </attribute>
       </mbean>
      
      <mbean code="org.jboss.mq.server.jmx.Queue"
       name="jboss.mq.destination:service=Queue,name=RainbowJMSQueue">
       <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
       </mbean>
      
      


      Follwing is my jsm-ds.xml

      <connection-factories>
      
       <!-- ==================================================================== -->
       <!-- JMS Stuff -->
       <!-- ==================================================================== -->
      
       <!-- The JMS provider loader -->
       <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
       name="jboss.mq:service=JMSProviderLoader,name=JMSProvider">
       <attribute name="ProviderName">DefaultJMSProvider</attribute>
       <attribute name="ProviderAdapterClass">
       org.jboss.jms.jndi.JNDIProviderAdapter
       </attribute>
       <!-- The combined connection factory -->
       <attribute name="FactoryRef">java:/JmsXA</attribute>
       <!-- The queue connection factory -->
       <attribute name="QueueFactoryRef">java:/JmsXA</attribute>
       <!-- The topic factory -->
       <attribute name="TopicFactoryRef">java:/JmsXA</attribute>
       <!-- Uncomment to use HAJNDI to access JMS-->
       <!--<attribute name="Properties">
       java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
       java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
       jnp.partitionName=DefaultPartition
       java.naming.provider.url=localhost:1100
       </attribute>
       -->
       </mbean>
      
       <!-- The server session pool for Message Driven Beans -->
       <mbean code="org.jboss.jms.asf.ServerSessionPoolLoader"
       name="jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool">
       <depends optional-attribute-name="XidFactory">jboss:service=XidFactory</depends>
       <attribute name="PoolName">StdJMSPool</attribute>
       <attribute name="PoolFactoryClass">
       org.jboss.jms.asf.StdServerSessionPoolFactory
       </attribute>
       </mbean>
      
       <!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
       <tx-connection-factory>
       <jndi-name>JmsXA</jndi-name>
       <xa-transaction/>
       <rar-name>jms-ra.rar</rar-name>
       <connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
       <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property>
       <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
       <max-pool-size>20</max-pool-size>
       <security-domain-and-application>JmsXARealm</security-domain-and-application>
       </tx-connection-factory>
      
      </connection-factories>
      


      The jbossmq-service.xml is as follows

      <!-- Dead Letter Queue -->
       <mbean code="org.jboss.mq.server.jmx.Queue"
       name="jboss.mq.destination:service=Queue,name=DLQ">
       <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
       <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
       </mbean>
      

      I am using postgres-jdbc3-service.xml
      I am getting following excetpion when my server is on :
      2006-05-08 09:39:34,469 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@a5f99b, cl=org.jboss.mx.loading.UnifiedClassLoader3@1310e0a{ url=null ,addedOrder=0}
      2006-05-08 09:39:34,484 DEBUG [org.jboss.ejb.plugins.jms.DLQHandler] Initialization failed DLQHandler
      javax.naming.NameNotFoundException: queue not bound
       at org.jnp.server.NamingServer.getBinding(NamingServer.java:514)
       at org.jnp.server.NamingServer.getBinding(NamingServer.java:522)
       at org.jnp.server.NamingServer.getObject(NamingServer.java:528)
       at org.jnp.server.NamingServer.lookup(NamingServer.java:252)
       at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:324)
       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
       at sun.rmi.transport.Transport$1.run(Transport.java:148)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
       at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
       at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
       at java.lang.Thread.run(Thread.java:534)
       at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
       at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
       at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
       at javax.naming.InitialContext.lookup(InitialContext.java:347)
       at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:161)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:245)
       at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:173)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:605)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl.run(JMSContainerInvoker.java:1471)
       at java.lang.Thread.run(Thread.java:534)
      2006-05-08 09:39:34,484 ERROR [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Reconnect failed: JMS provider failure detected:
      javax.naming.NameNotFoundException: queue not bound
       at org.jnp.server.NamingServer.getBinding(NamingServer.java:514)
       at org.jnp.server.NamingServer.getBinding(NamingServer.java:522)
       at org.jnp.server.NamingServer.getObject(NamingServer.java:528)
       at org.jnp.server.NamingServer.lookup(NamingServer.java:252)
       at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:324)
       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
       at sun.rmi.transport.Transport$1.run(Transport.java:148)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
       at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
       at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
       at java.lang.Thread.run(Thread.java:534)
       at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
       at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
       at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
       at javax.naming.InitialContext.lookup(InitialContext.java:347)
       at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:161)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:245)
       at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:173)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:605)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl.run(JMSContainerInvoker.java:1471)
       at java.lang.Thread.run(Thread.java:534)
      2006-05-08 09:39:34,484 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] innerStop
      


      Following are the startup messages :

      2006-05-08 09:39:30,049 DEBUG [org.jboss.deployment.scanner.URLDeploymentScanner] Watch URL for: file:/D:/yogendraBackup/d/jboss-4.0.3SP1/server/vpm/deploy/ejb3-interceptors-aop.xml -> file:/D:/yogendraBackup/d/jboss-4.0.3SP1/server/vpm/deploy/ejb3-interceptors-aop.xml
      2006-05-08 09:39:30,049 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] Incomplete Deployment listing:
      
      --- Packages waiting for a deployer ---
      org.jboss.deployment.DeploymentInfo@d45e17f3 { url=file:/D:/yogendraBackup/d/jboss-4.0.3SP1/server/vpm/deploy/ejb3-interceptors-aop.xml }
       deployer: null
       status: null
       state: INIT_WAITING_DEPLOYER
       watch: file:/D:/yogendraBackup/d/jboss-4.0.3SP1/server/vpm/deploy/ejb3-interceptors-aop.xml
       altDD: null
       lastDeployed: 1147061370049
       lastModified: 1147061370034
       mbeans:
      
      --- Incompletely deployed packages ---
      org.jboss.deployment.DeploymentInfo@d45e17f3 { url=file:/D:/yogendraBackup/d/jboss-4.0.3SP1/server/vpm/deploy/ejb3-interceptors-aop.xml }
       deployer: null
       status: null
       state: INIT_WAITING_DEPLOYER
       watch: file:/D:/yogendraBackup/d/jboss-4.0.3SP1/server/vpm/deploy/ejb3-interceptors-aop.xml
       altDD: null
       lastDeployed: 1147061370049
       lastModified: 1147061370034
       mbeans:
      
      --- MBeans waiting for other MBeans ---
      ObjectName: jboss.mq:service=InvocationLayer,type=HTTP
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=Invoker
       jboss.web:service=WebServer
      
      ObjectName: jboss.mq.destination:name=testTopic,service=Topic
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
       jboss.mq:service=SecurityManager
      
      ObjectName: jboss.mq.destination:name=securedTopic,service=Topic
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
       jboss.mq:service=SecurityManager
      
      ObjectName: jboss.mq.destination:name=testDurableTopic,service=Topic
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
       jboss.mq:service=SecurityManager
      
      ObjectName: jboss.mq.destination:name=RainbowJMSTopic,service=Topic
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
       jboss.mq:service=SecurityManager
      
      ObjectName: jboss.mq.destination:name=testQueue,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
       jboss.mq:service=SecurityManager
      
      ObjectName: jboss.mq.destination:name=A,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
      
      ObjectName: jboss.mq.destination:name=B,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
      
      ObjectName: jboss.mq.destination:name=C,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
      
      ObjectName: jboss.mq.destination:name=D,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
      
      ObjectName: jboss.mq.destination:name=ex,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
      
      ObjectName: jboss.mq.destination:name=RainbowJMSQueue,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
      
      ObjectName: jboss.mq:service=Invoker
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=TracingInterceptor
       jboss:service=Naming
       Depends On Me:
       jboss.mq:service=InvocationLayer,type=HTTP
       jboss.mq:service=InvocationLayer,type=JVM
       jboss.mq:service=InvocationLayer,type=UIL2
      
      ObjectName: jboss.mq:service=TracingInterceptor
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=SecurityManager
       Depends On Me:
       jboss.mq:service=Invoker
      
      ObjectName: jboss.mq:service=SecurityManager
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
       Depends On Me:
       jboss.mq.destination:name=testTopic,service=Topic
       jboss.mq.destination:name=securedTopic,service=Topic
       jboss.mq.destination:name=testDurableTopic,service=Topic
       jboss.mq.destination:name=RainbowJMSTopic,service=Topic
       jboss.mq.destination:name=testQueue,service=Queue
       jboss.mq:service=TracingInterceptor
       jboss.mq.destination:name=DLQ,service=Queue
      
      ObjectName: jboss.mq.destination:name=DLQ,service=Queue
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=DestinationManager
       jboss.mq:service=SecurityManager
      
      ObjectName: jboss.mq:service=InvocationLayer,type=JVM
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=Invoker
      
      ObjectName: jboss.mq:service=DestinationManager
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=MessageCache
       jboss.mq:service=PersistenceManager
       jboss.mq:service=StateManager
       Depends On Me:
       jboss.mq.destination:name=testTopic,service=Topic
       jboss.mq.destination:name=securedTopic,service=Topic
       jboss.mq.destination:name=testDurableTopic,service=Topic
       jboss.mq.destination:name=RainbowJMSTopic,service=Topic
       jboss.mq.destination:name=testQueue,service=Queue
       jboss.mq.destination:name=A,service=Queue
       jboss.mq.destination:name=B,service=Queue
       jboss.mq.destination:name=C,service=Queue
       jboss.mq.destination:name=D,service=Queue
       jboss.mq.destination:name=ex,service=Queue
       jboss.mq.destination:name=RainbowJMSQueue,service=Queue
       jboss.mq:service=SecurityManager
       jboss.mq.destination:name=DLQ,service=Queue
      
      ObjectName: jboss.mq:service=InvocationLayer,type=UIL2
       State: CONFIGURED
       I Depend On:
       jboss.mq:service=Invoker
      
      --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
      ObjectName: jboss.mq:service=StateManager
       State: NOTYETINSTALLED
       Depends On Me:
       jboss.mq:service=DestinationManager
      
      
      2006-05-08 09:39:30,065 DEBUG [org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread] Notified that enabled: true
      


      Can you please tell me what is going wrong?
      Is there any setting that is missing?
      I am tring to resolve this problem since last 2 weeks.
      I am new to the jboss and this is my first post to the forum, if i have violated any forum etiquettes then pls pardon.
      And if get the solution to the problem ASAP then i will be gr8ful to you.
      Thanks.


        • 1. Re: Problem in DLQ
          Lance Drake Newbie

          Dear yogendra_g, I am also dealing with this problem. Can you suggest what you may have found to alleviate the "ObjectName: jboss.mq:service=StateManager
          State: NOTYETINSTALLED" discrepancy?

          Thanks,

          lance@drake.org

          • 2. Re: Problem in DLQ
            Lance Drake Newbie

            By way of another post to this forum with the focus on a different database, I was able to determine that there was some code needed to be included in the file .../server/xxx/deploy/jms/mysql-jdbc2-service.xml file. That code is included in a post to this forum entitled "Using PostgreSQL 8.0 in place of HypersonicSQL". Look at the bottom of the code listings and you'll see the reference to 'service=StateManager'.

            Obviously - there's more to be refined with regards USERS and ROLES - and you'll want to make sure the DS name (DefaultDS or whatever...) fits your situation. Including that code got rid of the 'NOTYETINSTALLED' error and let me move onto other configuration issues.

            HTH,

            Lance