1 Reply Latest reply on Feb 15, 2008 10:09 AM by Adrian Brock

    DLQConfig isn't considered while Deployment

    Holger Lins Newbie

      Hi @all.
      I want to use a special dlq for my application. Therefor according to the JBoss wiki I used the

      jboss.xml

      <jboss>
       <enterprise-beans>
       <message-driven>
       <ejb-name<OrderQueueMDB</ejb-name>
       <destination-jndi-name>queue/OrderQueue</destination-jndi-name>
       <mdb-user>order</mdb-user>
       <mdb-passwd>nerdy</mdb-passwd>
       <configuration-name>OrderQueueMDBConfig</configuration-name </message-driven>
      </enterprise-beans>
      
       <invoker-proxy-bindings>
       <invoker-proxy-binding>
       <name>order-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>
       <MaximumSize>1</MaximumSize>
       <MaxMessages>1</MaxMessages>
       <MDBConfig>
       <ReconnectIntervalSec>10</ReconnectIntervalSec>
       <DLQConfig>
       <DestinationQueue>queue/OrderDLQ</DestinationQueue>
       <MaxTimesRedelivered>10</MaxTimesRedelivered>
       <TimeToLive>0</TimeToLive>
       <DLQUser>order</DLQUser>
       <DLQPassword>nerdy</DLQPassword>
       </DLQConfig>
       </MDBConfig>
       </proxy-factory-config>
       </invoker-proxy-binding>
       </invoker-proxy-bindings>
      
       <container-configurations>
       <container-configuration extends="Standard Message Driven Bean">
       <container-name>OrderQueueMDBConfig</container-name>
       <invoker-proxy-binding-name>order-message-driven-bean</invoker-proxy-binding-name>
       <container-interceptors>
       <interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</interceptor>
       <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
       <interceptor>org.jboss.ejb.plugins.RunAsSecurityInterceptor</interceptor>
       <!-- CMT -->
       <interceptor transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
       <interceptor transaction="Container">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
       <interceptor transaction="Container">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
       <!-- BMT -->
       <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
       <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT</interceptor>
       <interceptor transaction="Bean">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
       <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
       </container-interceptors>
       <instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</instance-pool>
       <instance-cache></instance-cache>
       <persistence-manager></persistence-manager>
       </container-configuration>
       </container-configurations>
       </jboss>
      


      and the ejb-jar.xml

      <message-driven>
      
       <description>Receiver for DslOrder Queue messages</description>
      
       <ejb-name>DslOrderQueueMDB</ejb-name>
      
       <ejb-class>de.schlund.j2ee.tools.genericmdb.GenericMDB</ejb-class>
       <messaging-type>javax.jms.MessageListener</messaging-type>
       <transaction-type>Container</transaction-type>
      
       <message-destination-type>javax.jms.Queue</message-destination-type>
       <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>
      </message-driven>
      


      But during deployment the following error occurs:

      ERROR [org.jboss.resource.adapter.jms.inflow.JmsActivation] Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@60c384(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@136b8d7 destination=queue/OrderQueue isTopic=false tx=true durable=false reconnect=10 provider=java:/DefaultJMSProvider user=order pass=<not shown> maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=true DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler
      DLQJndiName=queue/DLQ DLQUser=null DLQMaxResent=5)
      javax.jms.JMSSecurityException: User: null is NOT authenticated
      at org.jboss.mq.security.SecurityManager.authenticate(SecurityManager.java:230)
      at org.jboss.mq.security.ServerSecurityInterceptor.authenticate(ServerSecurityInterceptor.java:66)
      at org.jboss.mq.server.TracingInterceptor.authenticate(TracingInterceptor.java:613)
      at org.jboss.mq.server.JMSServerInvoker.authenticate(JMSServerInvoker.java:172)
      at org.jboss.mq.il.jvm.JVMServerIL.authenticate(JVMServerIL.java:165)
      at org.jboss.mq.Connection.authenticate(Connection.java:1067)
      at org.jboss.mq.Connection.(Connection.java:252)
      at org.jboss.mq.Connection.(Connection.java:323)
      at org.jboss.mq.SpyConnection.(SpyConnection.java:116)
      at org.jboss.mq.SpyConnectionFactory.internalCreateConnection(SpyConnectionFactory.java:137)
      at org.jboss.mq.SpyConnectionFactory.createQueueConnection(SpyConnectionFactory.java:108)
      at org.jboss.resource.adapter.jms.inflow.dlq.AbstractDLQHandler.setupDLQConnection(AbstractDLQHandler.java:137)
      at org.jboss.resource.adapter.jms.inflow.dlq.AbstractDLQHandler.setup(AbstractDLQHandler.java:83)
      at org.jboss.resource.adapter.jms.inflow.dlq.JBossMQDLQHandler.setup(JBossMQDLQHandler.java:48)
      at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupDLQ(JmsActivation.java:369)
      at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:315)
      at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:259)
      at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:639)
      at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
      at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
      at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:756)
      at java.lang.Thread.run(Thread.java:619)

      As far as i see, the dlq config wasn't used. (see the highlighted text in the error message!)

      I've any idea, where to search the error. Maybe it's an issue of the EJB Deployer.
      I've used nearly the same config with EJB 2.1 and no errors.