Websphere Application Server system Log reports EJB errors along with "java.rmi.NoSuchObjectException."


Article ID: 37713


Updated On:


APP PERF MANAGEMENT CA Application Performance Management Agent (APM / Wily / Introscope) CUSTOMER EXPERIENCE MANAGER INTROSCOPE



 The Websphere Application System Log shows EJB errors with the following exception messages:

 EJB container caught java.rmi.NoSuchObjectException: object (class  com.lombardisoftware.server.ejb.workflow.EJSRemoteStatefulEJBWorkflowManagerHome_####a##b#c) not exported

 And followed by the stack trace ...

 at com.ibm.rmi.javax.rmi.PortableRemoteObject.toStub(PortableRemoteObject.java:189)
 at javax.rmi.PortableRemoteObject.toStub(PortableRemoteObject.java:127)
 at com.ibm.ejs.container.BeanO.getEJBHome(BeanO.java:861)
 at com.wily.introscope.agent.servlethelper.EJBHelper.getEJBHomeFromSessionContext(EJBHelper.java:83)
 at com.wily.introscope.agent.trace.ejb.hc2.EjbDeferredContextTracer.findInterfaceName(EjbDeferredContextTracer.java:90)
 at com.wily.introscope.agent.trace.ejb.AEjbNameFormatter.INameFormatter_format(AEjbNameFormatter.java:97)
 at com.wily.introscope.agent.trace.ATracerFactory.customFormat(ATracerFactory.java:287)
 at com.wily.introscope.agent.trace.ATracerFactory.runtimeFormat(ATracerFactory.java:461)
 at com.wily.introscope.agent.trace.ATracerFactory.formatParameterizedName(ATracerFactory.java:480)
 at com.wily.introscope.appmap.agent.trace.hc2.AppMapMarkerTracer.getMapComponent(AppMapMarkerTracer.java:373)



 APM 10.0, 10.1



 This problem is related to ManagedSocket Tracer. During the Application startup, the "Managed Socket" code saw a connection to a database that was related to an EJB. When the 'nameformatter' tried to get the EJB home to determine the name for the "AppMap", the EJB resource was not available and throws an exception.



1)  One recommendation is to switch from SocketTracing to ManagedSocketTracing in the toggles-typical.pbd (or toggles-full.pbd if using a full.pbl)

 So that it would look like this:

 #TurnOn: SocketTracing
 # NOTE: Only SocketTracing or ManagedSocketTracing should be 'on'. Not both at the same time.
 ManagedSocketTracing is provided to # enable pre 9.0 socket tracing.
 TurnOn: ManagedSocketTracing
 TurnOn: UDPTracing

 Important: The application would have to be restarted for this to take effect.

 In some cases completely disabling the SocketTracing works.

2) Where disabling Socket tracing completely has not helped, to prevent the exception from happening, as suggested previously we are trying to determine the EJB name for the AppMap. Since APM 10.1, the use of tracers is deprecated to determine application triage / Team Center information. So the feature can be disabled in the agent with no loss of data:








Release: CEMUGD00200-9.7-Introscope to CA Application-Performance Management-Upgrade Main