Members | Sign In
Weblogic Wonders > JMS
avatar

JMS UDQ Forward Delay not working

posted Aug 19, 2011 06:57:32 by Chintan
Hi,
I have a weblogic 10.3.3 cluster of 4 managed OSB servers.
I have created 4 JMS Servers, each targeted to a different migratable target(Migration Policy - Auto-Migrate Exactly Once)
I have created a UDQ targeted to all the 4 JMS Servers.

On the UDQ, I have set the Forward Delay value to 3.

The test case is as follows:

Currently there are no current consumers on the 4 destinations of the UDQ.
Messages are being sent to the UDQ. Since there is no current consumer on any of the 4 destinations, weblogic sends the messages to all the 4 destinations in a round robin fashion.
So there are few current messages present in each of the 4 distributed destinations of the UDQ.
Now there are 2 listener connections created, hence the consumers current count goes to 1 for two of the distributed destinations. Hence the mesasages present in these 2 destinations start to get consumed by the 2 listener services.

However, the messages already lyng in the other two destinations with zero consumers are not getting consumed. Since the Forward Delay is set, weblogic should try to forward the messages to the other 2 destinations which do have consumers.

However, these messages are not getting forwarded to the 2 destinations with consumers. There is an error coming up continuously in the logs. Also the JMSXDeliveryCount parameter of the messages lying in the no-consumer destination, keeps on increasing indicating that it is trying to forward the message, but is not able to.

####<Aug 18, 2011 3:44:23 PM IST> <Warning> <JMS> <soprdap1.rapdrpgj.com> <osb_server2> <[ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-3123A8E4672343A59B74> <588eb5cc5c98d2ed:36a55a9f:131d8513442:-8000-000000000004081a> <1313662463310> <BEA-040498> <An error occurred while forwarding a message for distributed destination member <1708413684739542792.6764>: java.lang.ClassCastException: weblogic.rjvm.MsgAbbrevOutputStream$NestedObjectOutputStream
java.lang.ClassCastException: weblogic.rjvm.MsgAbbrevOutputStream$NestedObjectOutputStream
at weblogic.jms.backend.BEForwardRequest.writeExternal(BEForwardRequest.java:165)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1429)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObject(MsgAbbrevOutputStream.java:618)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObjectWL(MsgAbbrevOutputStream.java:609)
at weblogic.rmi.internal.ObjectIO.writeObject(ObjectIO.java:38)
at weblogic.rmi.internal.BasicRemoteRef.handleAsyncMarshalArgs(BasicRemoteRef.java:300)
at weblogic.rmi.internal.BasicRemoteRef.sendAsync(BasicRemoteRef.java:278)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:219)
at weblogic.messaging.dispatcher.DispatcherImpl_1033_WLStub.dispatchAsyncTranFuture(Unknown Source)
at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchAsync(DispatcherWrapperState.java:135)
at weblogic.jms.dispatcher.DispatcherAdapter.dispatchAsync(DispatcherAdapter.java:85)
at weblogic.jms.backend.BEForwardingConsumer$1.run(BEForwardingConsumer.java:507)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.jms.backend.BEForwardingConsumer.processMessages(BEForwardingConsumer.java:502)
at weblogic.jms.backend.BEForwardingConsumer.pushMessages(BEForwardingConsumer.java:317)
at weblogic.messaging.util.DeliveryList.run(DeliveryList.java:263)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)



Login below to reply: