PQ70286: REMOTEEXCEPTION WHEN ATTEMPTING TO CONNECT TO AN EJB OR WHEN TRYING TO LOAD A DELEGATE FOR AN UNCONNECTED STUB. | |||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description webapp is attempting to connect to an EJB and gets the following exception: 4a6d31b4 SystemErr R java.rmi.RemoteException: com.edocs.ser at com.ibm.rmi.javax.rmi.CORBA.StubDelegateImpl.connect(StubDe at javax.rmi.CORBA.Stub.connect(Stub.java(Inlined Compiled Cod at com.ibm.ejs.csi.HandleDelegateImpl.getConnected(HandleDeleg at com.ibm.ejs.csi.HandleDelegateImpl.readEJBObject(HandleDele at com.ibm.ws.ejb.portable.HandleImpl.readObject(HandleImpl.ja at java.lang.reflect.Method.invoke(Native Method) Basically, the problem finally traced to the fact that the Stub that was deserialized in readObject from HandleDelegateImpl was never connected to the ORB (to get a delegate set) before a narrow occured which reloaded the stub (further investigation needs to take place on why the stub reload is required).Local fix One workaround is to cause the original stub to connect to the ORB before issuing the narrow in the HandleDelegateImpl. Here is this bit of code. // copy the delegate from the original to the copy. try { ((ObjectImpl)newStub)._set_delegate( ((ObjectImpl)oldStub)._get_delegate()); } catch (BAD_OPERATION ex) { . The fix was made in the base ORB, under SOV defect 58027. ORB builds 0129b-efix1 and later contains that fix. The botp defect that brought in 0129b-efix1 is 158037.5Problem summary **************************************************************** * USERS AFFECTED: Websphere Application Server Developers * * trying to connect to a EJB or to load a * * delegate for an unconnected Stub. * * * **************************************************************** * PROBLEM DESCRIPTION: RemoteException when trying to connect * * to a EJB or to load a delegate for an * * unconnected Stub. * **************************************************************** * RECOMMENDATION: * **************************************************************** This can be reproduced by a testcase where the server gets a stub, serializes it and then deserializes it and sends it to the client. The client tries to connect to the stub and gets a REMOTEEXCEPTION.Problem conclusion The problem was happening because we were not copying instance data from old StubDelegateImpl to new StubDelegateImpl in the case when stub is not connected. The fix involves copying instance data from one StubDelegateImpl to another if we have to reload an unconnected stub using a new classloader.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros
Publications Referenced
|
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > General
Operating system(s):
Software version: 00A
Software edition:
Reference #: PQ70286
IBM Group: Software Group
Modified date: Nov 2, 2004
(C) Copyright IBM Corporation 2000, 2008. All Rights Reserved.