[jboss-user] [JBoss Messaging] - Bridge - Cannot get once and only once working

rnicholson10 do-not-reply at jboss.com
Mon Apr 27 00:46:47 EDT 2009


I am using the latest beta release 5.1.0.Beta of AS5. On the previous stable release there was a bug with bridges where a bridge would not correctly deploy on startup of JBoss. This issue no longer exists on the beta.

I have a bridge setup between two different physical machines. Everything works fine once the QualityOfServiceMode in the bridge configuration is set to QOS_AT_MOST_ONCE or QOS_DUPLICATES_OK. If I set QualityOfServiceMode to QOS_ONCE_AND_ONLY_ONCE then I get the following error:


  | 2009-04-21 12:59:49,157 ERROR [org.jboss.resource.adapter.jms.inflow.JmsActivation] (WorkManager(2)-2) Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec at 12324c2(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter at a5061b destination=queue/speQueueDownstreamIn destinationType=javax.jms.Queue tx=true durable=false reconnect=10 provider=java:/DefaultJMSProvider user=null 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.jms.server.jbosssx.JBossASSecurityMetadataStore.authenticate(JBossASSecurityMetadataStore.java:223)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  |         at java.lang.reflect.Method.invoke(Unknown Source)
  |         at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(Unknown Source)
  |         at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(Unknown Source)
  |         at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(Unknown Source)
  |         at com.sun.jmx.mbeanserver.PerInterface.invoke(Unknown Source)
  |         at com.sun.jmx.mbeanserver.MBeanSupport.invoke(Unknown Source)
  |         at javax.management.StandardMBean.invoke(Unknown Source)
  |         at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy109.authenticate(Unknown Source)
  |         at org.jboss.jms.server.endpoint.ServerConnectionFactoryEndpoint.createConnectionDelegateInternal(ServerConnectionFactoryEndpoint.java:233)
  |         at org.jboss.jms.server.endpoint.ServerConnectionFactoryEndpoint.createConnectionDelegate(ServerConnectionFactoryEndpoint.java:171)
  |         at org.jboss.jms.server.endpoint.advised.ConnectionFactoryAdvised.org$jboss$jms$server$endpoint$advised$ConnectionFactoryAdvised$createConnectionDelegate$aop(ConnectionFactoryAdvised.java:108)
  |         at org.jboss.jms.server.endpoint.advised.ConnectionFactoryAdvised.createConnectionDelegate(ConnectionFactoryAdvised.java)
  |         at org.jboss.jms.wireformat.ConnectionFactoryCreateConnectionDelegateRequest.serverInvoke(ConnectionFactoryCreateConnectionDelegateRequest.java:91)
  |         at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:143)
  |         at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908)
  |         at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:106)
  |         at org.jboss.remoting.Client.invoke(Client.java:1708)
  |         at org.jboss.remoting.Client.invoke(Client.java:612)
  |         at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$createConnectionDelegate$aop(ClientConnectionFactoryDelegate.java:171)
  |         at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.invokeTarget(ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.java)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
  |         at org.jboss.jms.client.container.StateCreationAspect.handleCreateConnectionDelegate(StateCreationAspect.java:81)
  |         at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect_z_handleCreateConnectionDelegate_8584105.invoke(StateCreationAspect_z_handleCreateConnectionDelegate_8584105.java)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createConnectionDelegate(ClientConnectionFactoryDelegate.java)
  |         at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:205)
  |         at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:101)
  |         at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:95)
  |         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:413)
  |         at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:351)
  |         at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:292)
  |         at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:733)
  |         at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
  |         at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
  |         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
  |         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  |         at java.lang.Thread.run(Unknown Source)
  | 
  | 

This mode worked on the previous release I used 5.0.1.GA.

I have added the following to the "jta" properties in "conf/jbossts-properties.xml":



  |         <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1"
  |                 value="com.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/>
  |         <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING2"
  |                 value="com.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/RemoteJMSProvider"/>
  | 

I thought that this was the only configuration change required for QOS_ONCE_AND_ONLY_ONCE bridging.

Here is one of my bridge configurations:


  | <mbean code="org.jboss.jms.server.bridge.BridgeService" name="jboss.messaging:service=Bridge,name=EngineToHandlerBridge" xmbean-dd="xmdesc/Bridge-xmbean.xml">
  | 
  |         <depends optional-attribute-name="SourceProviderLoader">jboss.messaging:service=JMSProviderLoader,name=JMSProvider</depends>
  |         <depends optional-attribute-name="TargetProviderLoader">jboss.messaging:service=JMSProviderLoader,name=RemoteJMSProvider</depends>
  | 
  |         <attribute name="SourceDestinationLookup">/queue/speQueueToHandler</attribute>
  | <!--        <attribute name="SourceUsername">guest</attribute>
  |         <attribute name="SourcePassword">guest</attribute> -->
  |         <attribute name="TargetDestinationLookup">/queue/speQueueFromEngine</attribute>
  | <!--        <attribute name="TargetUsername">guest</attribute>
  |         <attribute name="TargetPassword">guest</attribute> -->
  |         <attribute name="QualityOfServiceMode">2</attribute>
  |         <attribute name="MaxBatchSize">1</attribute>
  |         <attribute name="MaxBatchTime">-1</attribute>
  |         <attribute name="FailureRetryInterval">5000</attribute>
  |         <attribute name="MaxRetries">-1</attribute>
  |         <attribute name="AddMessageIDInHeader">false</attribute>
  | </mbean>
  | 
  | 

Is there anything else required for a bridge of this type in the new release? I'm stumped as to how to get this to work.

Thanks,

Ross.

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226840#4226840

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226840



More information about the jboss-user mailing list