[
https://jira.jboss.org/jira/browse/JBMESSAGING-1515?page=com.atlassian.ji...
]
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