In further testing, we installed the Topic producer on a remote JBoss5 server 
and verified that the client (in a different JBoss5) would receive the message 
payloads correctly.  This works as expected.

We then put a copy of the Topic producer on the same JBoss5 as the client, but 
continued to have the client subscribe to the producer on the remote JBoss5 
instance.  The results of this seem deeply strange to me...  The initial 
connection works (as before) and the client proceeds to receive 1 or 2 messages 
(messages are produced by 2 separate threads within the application system 
roughly every 60 seconds a piece) with payloads that work (this seems pretty 
consistent across runs), before the classloader pollution seems to take effect 
and all further messages received fail.  This is different than the behavior 
that occurs when the client connects to the local Topic, as in that case all of 
the messages are polluted.

During one call we received an error on the client:

  | 2009-05-08 15:13:28,484 ERROR 
[org.jboss.jms.client.container.ClientConsumer] (Thread-24) Failed to deliver 
message
  | org.jboss.jms.exception.MessagingJMSException: Failed to invoke
  |     at 
org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:271)
  |     at 
org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205)
  |     at 
org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
  |     at 
org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$acknowledgeDelivery$aop(ClientSessionDelegate.java:186)
  |     at 
org.jboss.jms.client.delegate.ClientSessionDelegate$acknowledgeDelivery_N5825751487881460811.invokeTarget(ClientSessionDelegate$acknowledgeDelivery_N5825751487881460811.java)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
  |     at 
org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:92)
  |     at 
org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |     at 
org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
  |     at 
org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |     at 
org.jboss.jms.client.delegate.ClientSessionDelegate.acknowledgeDelivery(ClientSessionDelegate.java)
  |     at 
org.jboss.jms.client.container.SessionAspect.ackDelivery(SessionAspect.java:873)
  |     at 
org.jboss.jms.client.container.SessionAspect.handlePostDeliver(SessionAspect.java:352)
  |     at 
org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect_z_handlePostDeliver_9861267.invoke(SessionAspect_z_handlePostDeliver_9861267.java)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |     at 
org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
  |     at 
org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |     at 
org.jboss.jms.client.delegate.ClientSessionDelegate.postDeliver(ClientSessionDelegate.java)
  |     at 
org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:253)
  |     at 
org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:1043)
  |     at 
org.jboss.messaging.util.OrderedExecutorFactory$ChildExecutor.run(OrderedExecutorFactory.java:120)
  |     at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
  |     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
  |     at java.lang.Thread.run(Thread.java:619)
  | Caused by: java.lang.IllegalStateException: Cannot find object in 
dispatcher with id xe-3vnwfhuf-1-8fprehuf-g8atyv-j133o4c5
  |     at 
org.jboss.jms.wireformat.SessionAcknowledgeDeliveryRequest.serverInvoke(SessionAcknowledgeDeliveryRequest.java:75)
  |     at 
org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:143)
  |     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232)
  |     at 
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:211)
  |     at org.jboss.remoting.Client.invoke(Client.java:1724)
  |     at org.jboss.remoting.Client.invoke(Client.java:629)
  |     at org.jboss.remoting.Client.invoke(Client.java:617)
  |     at 
org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:189)
  |     ... 25 more
  | 
After the error the client re-subscribed to the topic and received three 
messages that were apparently waiting for it (all of which worked -- they 
loaded the TypedData class with the local copy), and then all subsequent 
messages failed.

I am rather confused how it would use the right classloader initially (and also 
in one case after a failure), but then proceed to use a different one after 
that...

Any ideas would be helpful.
Thanks,
--Zack

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

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4229833
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to