[jboss-user] [JBoss Messaging] - Bridge under load throws IllegalStateException

mclu do-not-reply at jboss.com
Thu Sep 6 08:43:38 EDT 2007


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


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

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



More information about the jboss-user mailing list