Bridge under load throws IllegalStateException
mclu Sep 6, 2007 8:43 AMHi again!
I have my bridge up and running.
2 servers (A and B) and a middleware server (M).
on both servers there are 3 queues. The middlewareserver bridges them to its local queues. I am using QOS 2 (Transacted)
Messageflow is like
-A send to lokal.
-Bridged from A to M
-M processing and send processed to lokalQueue(M)
-Message bridged from M to B
-B processing message and send result to localQueue(B)
-Bridged to M
-result stored.
When I send a lot of messages I receive a stack traces is like:
14:41:44,250 ERROR [ClientConsumer] Failed to deliver message java.lang.IllegalStateException: There is already a delivery set for auto ack at org.jboss.jms.client.state.SessionState.setAutoAckInfo(SessionState.java:371) at org.jboss.jms.client.container.SessionAspect.handlePreDeliver(SessionAspect.java:258) at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect18.invoke(SessionAspect18.java) at org.jboss.jms.client.delegate.ClientSessionDelegate$preDeliver_5548846795541436298.invokeNext(ClientSessionDelegate$preDeliver_5548846795541436298.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.ClientSessionDelegate$preDeliver_5548846795541436298.invokeNext(ClientSessionDelegate$preDeliver_5548846795541436298.java) at org.jboss.jms.client.delegate.ClientSessionDelegate.preDeliver(ClientSessionDelegate.java) at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:150) at org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:941) at EDU.oswego.cs.dl.util.concurrent.QueuedExecutor$RunLoop.run(QueuedExecutor.java:89) at java.lang.Thread.run(Thread.java:619)
Its caused by the Bridge. My breakpoint stops on 3 threads related
my 3 queues. One example is listed below:
Variables of ClientConsumer.callOnMessage(SessionDelegate, MessageListener, String, String, boolean, MessageProxy, int, int, SessionDelegate, boolean):
sess ClientSessionDelegate (id=315) listener Bridge$SourceListener (id=508) consumerID "a1-tcoi696f-1-l3lf696f-nkdb51-q4z24a" queueName "local_incomingSyncRequests" isConnectionConsumer false m TextMessageProxy (id=507) ackMode 0 maxDeliveries 10 connectionConsumerSession null shouldAck true deliveryInfo DeliveryInfo (id=367)
And SessionState Vars:
this SessionState (id=310) acknowledgeMode 0 asfMessages LinkedList<E> (id=395) autoAckInfo DeliveryInfo (id=399) callbackHandlers HashMap<K,V> (id=403) children HashSet<E> (id=408) clientAckList ArrayList<E> (id=396) currentTxId MessagingXid (id=419) delegate ClientSessionDelegate (id=315) dupsOKBatchSize 1000 executor ClearableQueuedExecutor (id=423) parent ConnectionState (id=425) recoverCalled false sessionID "91-3hmi696f-1-l3lf696f-nkdb51-q4z24a" sessionListener null transacted true xa true xaResource MessagingXAResource (id=445) info DeliveryInfo (id=367) connectionConsumerSession null consumerId "a1-tcoi696f-1-l3lf696f-nkdb51-q4z24a" msg TextMessageProxy (id=507) queueName "local_incomingSyncRequests" shouldAck true
I have seen some references in the Design forum and version 1.2.
Do you have an Idea?
Oh forgot: I am using 1.4 cr2 and jboss 4.2.1GA..
Greets
Markus Lutum