DLQConfig isn't considered while Deployment
hlins Feb 14, 2008 10:38 AMHi @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.