1 Reply Latest reply on Feb 15, 2008 10:09 AM by adrian.brock

    DLQConfig isn't considered while Deployment

    hlins

      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.

        • 1. Re: DLQConfig isn't considered while Deployment

           

          "hlins" wrote:

          I've used nearly the same config with EJB 2.1 and no errors.


          Like it says at the top of the forum. EJB3 questions are NOT answered here.
          The config you show is for EJB2, EJB3 has a totally different mechanism
          (activation config properties) which is why we direct to that forum.