1 2 Previous Next 16 Replies Latest reply on Sep 21, 2007 3:57 AM by Markus Lutum

    Bridge under load throws IllegalStateException

    Markus Lutum Novice

      Hi 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


        1 2 Previous Next