[jboss-jira] [JBoss JIRA] Commented: (JBMESSAGING-1515) Message bridge fails with QualityOfServiceMode set to "2"

Tim Fox (JIRA) jira-events at lists.jboss.org
Wed Feb 25 03:06:44 EST 2009


    [ https://jira.jboss.org/jira/browse/JBMESSAGING-1515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12454152#action_12454152 ] 

Tim Fox commented on JBMESSAGING-1515:
--------------------------------------

It's a requirement in JBM that *all nodes* must have unique ids, even in the case of bridges.

This is explicit in the docs, section 4.1.1:

"Ensure the ServerPeerID MBean attribute value in messaging-service.xml is unique for each node. The ServerPeerID value must be a valid integer. Every node MUST have a unique id, including those just connected by message bridges.

Warning
Each node must have a unique ServerPeerID irrespective of whether you are using clustering."


> Message bridge fails with QualityOfServiceMode set to "2"
> ---------------------------------------------------------
>
>                 Key: JBMESSAGING-1515
>                 URL: https://jira.jboss.org/jira/browse/JBMESSAGING-1515
>             Project: JBoss Messaging
>          Issue Type: Bug
>    Affects Versions:  1.4.0.SP3.CP04
>            Reporter: Justin Bertram
>            Assignee: Howard Gao
>         Attachments: bridge-service.xml, MessageSender.java, server.log
>
>
> The JBoss Messaging bridge fails when the "QualityOfServiceMode" attribute is set to 2 (QOS_ONCE_AND_ONLY_ONCE).
> I unzipped 2 fresh copies of JBoss EAP 4.3 CP03 (which use JBM 1.4.0.SP3.CP04).  I'll call these copies "Node A" and "Node B."  I deployed the attached bridge-service.xml to Node A and started Node B with:
>   ./run.sh -c default -b 127.0.0.2
> I then started Node A with:
>   ./run.sh -c default -b 127.0.0.1
> Then I sent 1000 messages using the attached MessageSender.java to Node A.  These messages should have been bridged to Node B, but instead I received:
> 16:46:09,120 ERROR [ExceptionUtil] ConnectionEndpoint[c-nxnz5lrf-1-h67z5lrf-b24scy-100j3] sendTransaction [v-0gi26lrf-1-h67z5lrf-b24scy-100j3]
> javax.jms.IllegalStateException: Cannot find session with id 7-9xoz5lrf-1-z12z5lrf-tb5p9r-100j3
> 	at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.processTransaction(ServerConnectionEndpoint.java:835)
> 	at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendTransaction(ServerConnectionEndpoint.java:489)
> 	at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.org$jboss$jms$server$endpoint$advised$ConnectionAdvised$sendTransaction$aop(ConnectionAdvised.java:101)
> 	at org.jboss.jms.server.endpoint.advised.ConnectionAdvised$sendTransaction_N3268650789275322226.invokeNext(ConnectionAdvised$sendTransaction_N3268650789275322226.java)
> 	at org.jboss.jms.server.container.SecurityAspect.handleSendTransaction(SecurityAspect.java:195)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:121)
> 	at org.jboss.jms.server.endpoint.advised.ConnectionAdvised$sendTransaction_N3268650789275322226.invokeNext(ConnectionAdvised$sendTransaction_N3268650789275322226.java)
> 	at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
> 	at org.jboss.jms.server.endpoint.advised.ConnectionAdvised$sendTransaction_N3268650789275322226.invokeNext(ConnectionAdvised$sendTransaction_N3268650789275322226.java)
> 	at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.sendTransaction(ConnectionAdvised.java)
> 	at org.jboss.jms.wireformat.ConnectionSendTransactionRequest.serverInvoke(ConnectionSendTransactionRequest.java:82)
> 	at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:143)
> 	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:866)
> 	at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:101)
> 	at org.jboss.remoting.Client.invoke(Client.java:1634)
> 	at org.jboss.remoting.Client.invoke(Client.java:548)
> 	at org.jboss.remoting.Client.invoke(Client.java:536)
> 	at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:189)
> 	at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
> 	at org.jboss.jms.client.delegate.ClientConnectionDelegate.org$jboss$jms$client$delegate$ClientConnectionDelegate$sendTransaction$aop(ClientConnectionDelegate.java:221)
> 	at org.jboss.jms.client.delegate.ClientConnectionDelegate$sendTransaction_N3268650789275322226.invokeNext(ClientConnectionDelegate$sendTransaction_N3268650789275322226.java)
> 	at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:92)
> 	at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> 	at org.jboss.jms.client.delegate.ClientConnectionDelegate$sendTransaction_N3268650789275322226.invokeNext(ClientConnectionDelegate$sendTransaction_N3268650789275322226.java)
> 	at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
> 	at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> 	at org.jboss.jms.client.delegate.ClientConnectionDelegate$sendTransaction_N3268650789275322226.invokeNext(ClientConnectionDelegate$sendTransaction_N3268650789275322226.java)
> 	at org.jboss.jms.client.delegate.ClientConnectionDelegate.sendTransaction(ClientConnectionDelegate.java)
> 	at org.jboss.jms.tx.ResourceManager.sendTransactionXA(ResourceManager.java:662)
> 	at org.jboss.jms.tx.ResourceManager.commit(ResourceManager.java:367)
> 	at org.jboss.jms.tx.MessagingXAResource.commit(MessagingXAResource.java:254)
> 	at com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelOnePhaseCommit(XAResourceRecord.java:651)
> 	at com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2619)
> 	at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1779)
> 	at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:88)
> 	at com.arjuna.ats.arjuna.AtomicAction.end(AtomicAction.java:216)
> 	at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:238)
> 	at org.jboss.jms.server.bridge.Bridge.sendBatchXA(Bridge.java:1254)
> 	at org.jboss.jms.server.bridge.Bridge.sendBatch(Bridge.java:1314)
> 	at org.jboss.jms.server.bridge.Bridge.access$1900(Bridge.java:66)
> 	at org.jboss.jms.server.bridge.Bridge$SourceListener.onMessage(Bridge.java:1637)
> 	at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:229)
> 	at org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:1043)
> 	at org.jboss.messaging.util.OrderedExecutorFactory$ChildExecutor.run(OrderedExecutorFactory.java:134)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> 16:46:09,129 WARN  [Bridge] jboss.jms:name=TestBridge,service=Bridge Failed to send + acknowledge batch, closing JMS objects
> javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
> 	at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:253)
> 	at org.jboss.jms.server.bridge.Bridge.sendBatchXA(Bridge.java:1254)
> 	at org.jboss.jms.server.bridge.Bridge.sendBatch(Bridge.java:1314)
> 	at org.jboss.jms.server.bridge.Bridge.access$1900(Bridge.java:66)
> 	at org.jboss.jms.server.bridge.Bridge$SourceListener.onMessage(Bridge.java:1637)
> 	at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:229)
> 	at org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:1043)
> 	at org.jboss.messaging.util.OrderedExecutorFactory$ChildExecutor.run(OrderedExecutorFactory.java:134)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> 16:46:09,417 ERROR [ClosedInterceptor] ClosedInterceptor.ClientSessionDelegate[l-vhoz5lrf-1-h67z5lrf-b24scy-100j3]: method getXAResource() did not go through, the interceptor is CLOSED
> 16:46:09,417 WARN  [Bridge] jboss.jms:name=TestBridge,service=Bridge Will retry after a pause of 5000 ms
> I have attached the full server.log.
> Using  "QualityOfServiceMode" 0 or 1 makes the exceptions go away, but of course reduces the quality of service.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list