Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [glassfish-dev] What are the possible causes of remote JNDI lookup failures like https://github.com/eclipse-ee4j/glassfish/issues/25190?


On 10/25/24 3:12 PM, Scott Marlow wrote:


On 10/23/24 9:12 AM, Steve Millidge (Payara) wrote:
Not sure if a cnfe could cause that while traversing the JNDI reference.

There is something slightly different in the JNDI names 

#com.sun.ts.tests.common.vehicle.stateless3.Stateless3VehicleIF

Between Failed lookup above and the deployment name below

com_sun_ts_tests_common_vehicle_Stateless3VehicleBean#com.sun.ts.tests.common.vehicle.stateless3.Stateless3VehicleIF
It's missing the bean prefix. I'm not sure if this is normal from memory. At this point I would be debugging the JNDI code on the server to list the jndi references  :-(

I can debug the server side now, which class is best to set a breakpoint in for debugging the JNDI code on the server to list the jndi references? 


After deployment completes and lots of jndi lookups to deal with derby, I see the following jndi calls:

1. jndi list "" returns:

"com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__" -> {javax.naming.Reference@13703} "Reference Class Name: reference\nType: url\nContent: com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__\n"
"com_sun_ts_tests_common_vehicle_AppManagedVehicleBean#com.sun.ts.tests.common.vehicle.appmanaged.AppManagedVehicleIF" -> {javax.naming.Reference@13653} "Reference Class Name: com.sun.ts.tests.common.vehicle.appmanaged.AppManagedVehicleIF\nType: url\nContent: com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__\n"
"com_sun_ts_tests_common_vehicle_AppManagedVehicleBean" -> {javax.naming.Reference@13696} "Reference Class Name: com.sun.ts.tests.common.vehicle.appmanaged.AppManagedVehicleIF\nType: url\nContent: com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__\n"

2. jndi lookup of com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__
   finds Reference Class Name: reference
Type: url
Content: com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__
and returns IORImpl[type=RMI:com.sun.ejb.codegen.GenericEJBHome_Generated:0000000000000000 iorTemplates=[IORTemplate[oktemp=ObjectKeyTemplate[magic=afabcb00 scid=38 serverid=100 orbid=S1AS-ORB oaid=ObjectAdapterID[RootPOA/#RFMBase#/113482914926166016_RBusiness_com.sun.ts.tests.common.vehicle.appmanaged._AppManagedVehicleIF_Remote-EJBHome] profile templates:[IIOPProfileTemplateImpl[giopVersion=1.2 primary=192.168.122.1:3700]]]]

3.  jndi look up name com_sun_ts_tests_common_vehicle_AppManagedVehicleBean finds Reference Class Name: com.sun.ts.tests.common.vehicle.appmanaged.AppManagedVehicleIF
Type: url
Content: com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__
and returns Reference Class Name: com.sun.ts.tests.common.vehicle.appmanaged.AppManagedVehicleIF
Type: url
Content: com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__

4. jndi look up of com_sun_ts_tests_common_vehicle_AppManagedVehicleBean__3_x_Internal_RemoteBusinessHome__ returns IORImpl[type=RMI:com.sun.ejb.codegen.GenericEJBHome_Generated:0000000000000000 iorTemplates=[IORTemplate[oktemp=ObjectKeyTemplate[magic=afabcb00 scid=38 serverid=100 orbid=S1AS-ORB oaid=ObjectAdapterID[RootPOA/#RFMBase#/113482914926166016_RBusiness_com.sun.ts.tests.common.vehicle.appmanaged._AppManagedVehicleIF_Remote-EJBHome] profile templates:[IIOPProfileTemplateImpl[giopVersion=1.2 primary=192.168.122.1:3700]]]]

So it seems like the appclient process is not seeing the session bean returned but the server side does create the (looked up) session bean I think.

Scott

I did reach (by luck):

intercept:310, InterceptorManager (com.sun.ejb.containers.interceptors) 1 hidden frame aroundConstruct:60, CDIAroundConstructCallback (org.glassfish.weld.services) 7 hidden frames _createCDIInjectionContext:249, CDIServiceImpl (org.glassfish.weld.services) createCDIInjectionContext:179, CDIServiceImpl (org.glassfish.weld.services) 23 hidden frames
for ##########################################################
InterceptorManager<com.sun.ts.tests.common.vehicle.appmanaged.AppManagedVehicleBean> has 1 interceptors
beanClassName: com.sun.ts.tests.common.vehicle.appmanaged.AppManagedVehicleBean
Interceptors:
org.jboss.weld.module.ejb.SessionBeanInterceptor
Callback Interceptors:
0: interface jakarta.interceptor.AroundConstruct
CallbackInterceptorChainImpl
1: interface jakarta.annotation.PostConstruct
CallbackInterceptorChainImpl
callback[0]: public java.lang.Object org.jboss.weld.module.ejb.SessionBeanInterceptor.aroundInvoke(jakarta.interceptor.InvocationContext) throws java.lang.Exception
2: interface jakarta.annotation.PreDestroy
CallbackInterceptorChainImpl
3: interface jakarta.ejb.PrePassivate
CallbackInterceptorChainImpl
4: interface jakarta.ejb.PostActivate
CallbackInterceptorChainImpl


But soon after GlassFish Server seemed to be out of sync with the Application Client as per:


Next is failure:
this = {com.sun.corba.ee.impl.transport.ConnectionImpl@16843} "SocketOrChannelConnectionImpl[ java.nio.channels.SocketChannel[connected local=/192.168.0.35:3700 remote=/192.168.0.35:39580] ESTABLISHED true true]"
this = {com.sun.corba.ee.impl.transport.ConnectionImpl@16843} "SocketOrChannelConnectionImpl[ java.nio.channels.SocketChannel[connected local=/192.168.0.35:3700 remote=/192.168.0.35:39580] ESTABLISHED true true]"
Exception = {java.io.IOException@16841}
 backtrace = {java.lang.Object[6]@16848}
 detailMessage = "End-of-stream"
 cause = {java.io.IOException@16841} "java.io.IOException: End-of-stream"
 stackTrace = {java.lang.StackTraceElement[5]@16851}
 depth = 5
 suppressedExceptions = {java.util.Collections$EmptyList@16684}  size = 0
3:01
FINE: 00410011: IOException received when reading from connection SocketOrChannelConnectionImpl[ java.nio.channels.SocketChannel[connected local=/192.168.0.35:3700 remote=/192.168.0.35:39580] ESTABLISHED true true]

Scott


Back to the top