Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PeerGoneException in WLS6.1 JMS application

29 views
Skip to first unread message

Jon Wynett

unread,
Jan 8, 2002, 12:01:26 PM1/8/02
to

Our system is WebLogic 6.1sp2 running on Windows 2000. We have a large amount of
JMS messaging using message driven beans and a lot of stateless session beans
for business logic.

Last night I ran a test putting roughly 10,000 orders through our system in around
12 hours. We have two WL servers communicating via JMS. One sends orders and the
other responds to them.

At one point during the evening, both servers got the PeerGoneException. I'm not
positive if they were at the exact same time since one log wasn't reporting a
time stamp. After the error, both servers continued functioning normally.

Thanks for the help.

Below is the stack trace:
============================
[ExecuteThread: '38' for queue: 'default'] 01/07/02 19:36:18,250 ERROR {LogEvent.JavaException.blackdiamond}
JmsDelegate.startSender - Caught start() Exception
weblogic.rjvm.PeerGoneException: ; nested exception is:
java.io.EOFException
java.io.EOFException
at weblogic.rjvm.t3.T3JVMConnection.endOfStream(T3JVMConnection.java:599)
at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:586)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
--------------- nested within: ------------------
weblogic.rmi.extensions.RemoteRuntimeException - with nested exception:
[weblogic.rjvm.PeerGoneException: ; nested exception is:
java.io.EOFException]
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:60)
at $Proxy263.dispatchSyncFuture(Unknown Source)
at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:262)
at weblogic.jms.client.JMSConnection.sessionCreate(JMSConnection.java:268)
at weblogic.jms.client.JMSConnection.createQueueSession(JMSConnection.java:235)
at com.ghx.util.jms.JmsQueueFactoryBase.createSession(JmsQueueFactoryBase.java:106)
at com.ghx.util.jms.JmsQueueSender.startSender(JmsQueueSender.java:90)
at com.ghx.util.jms.JmsDelegate.startSender(JmsDelegate.java:161)
at com.ghx.util.jms.simserver.SimServerDelegate.<init>(Unknown Source)
at com.ghx.util.jms.simserver.SimServerDelegate.<init>(Unknown Source)
at com.ghx.bea.sessionbeans.routingservicetest.RoutingServiceTestBean.route(Unknown
Source)
at com.ghx.bea.sessionbeans.routingservicetest.RoutingServiceTestBean_6gwe5b_EOImpl.route(RoutingServiceTestBean_6gwe5b_EOImpl.java:37)
at com.ghx.bea.sessionbeans.routingservicetest.RoutingServiceTestBean_6gwe5b_EOImpl_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:166)
at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:92)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:112)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:262)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:229)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy203.route(Unknown Source)
at com.ghx.bea.msgbeans.routingqueuemdb.RoutingQueueMDBBean.onMessage(RoutingQueueMDBBean.java:132)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:254)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:206)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:1864)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:1819)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)


Jim Brown

unread,
Jan 10, 2002, 9:37:55 PM1/10/02
to Jon Wynett
Jon:

A PeerGoneException can be thrown whenever an RJVM connection appears
"broken". Usually, this means the other listener was too busy to respond
in time, but could also occur for reasons beyond its control. The
ability for non-clustered MDB listeners to automatically recover from
this situation is a new behavior that has been added to WebLogic Server
6.1. The recovery time is determined by a new parameter added to the
weblogic-ejb-jar.xml file. Although this information has not yet been
added to our on-line docs, the definition for this parameter can be
found in the DTD file at
<http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd>:

<!-- Each Message-Driven EJB listens on an associated JMS destination.
If the JMS destination is located on another
WebLogic Server instance or a foreign JMS provider, it is possible
that the JMS destination will become unreachable.
In this case, the EJB container automatically attempts to reconnect to
the JMS Server. Once the JMS Server is up
again, the Message-Driven EJB can again receive JMS messages.

The jms-polling-interval-seconds determines the number of seconds
between each attempt to reconnect to the JMS
destination. The default value is 10 seconds.

Example:
<jms-polling-interval-seconds>5</jms-polling-interval-seconds>

Since: WebLogic Server 6.1 -->

Regards,
Jim Brown

--
Jim Brown
Developer Relations Engineer
BEA Support

Sanjit Bose

unread,
Jan 30, 2002, 9:01:47 AM1/30/02
to
Hi Jim,

In our case the applet is the message consumer and a StatefullSessionBean is a Message producer. The applet is establishing the listener with the
Queue and then sending some command to the StatefullSessionBean for processing and after processing the results are added to the Queue by the
StatefullSessionBean.
Initially the results are received by my client applet but after some time it is getting a PeerGoneException.

What is the way around to fix the problem. Any suggestion will be of immense help.

Thanks

Sanjit

0 new messages