10 Replies Latest reply on Jun 24, 2008 3:44 PM by Brian Stansberry

    Remote cluster ejb access

    Stefano Mancini Newbie

      Hi,

      I've a ear application deployed in a jboss cluster with two nodes, the application contains some stateless session beans.

      I wish to call this ejbs from another ear application deployed in another jboss cluster and from an application deployed
      in a standalone jboss instance (using the 'all' configuration).
      My problem is how to configure the remote references in the jboss.xml files.
      Usually (without any cluster involved) I use a configuration like this
      ....

      <ejb-name>ABean</ejb-name>
      <jndi-name>ejb/ABean</jndi-name>
      <ejb-ref>
      <ejb-ref-name>ejb/LucyServicesBeanRemote</ejb-ref-name>
      <jndi-name>jnp://remotehost1:1099/ejb/LucyServicesBean</jndi-name>
      </ejb-ref>

      ....

      With this configuration all works fine but I wish to use HAJNDI to benefit of the cluster features.
      I've tried something like following:

      ....

      <ejb-name>ABean</ejb-name>
      <jndi-name>ejb/ABean</jndi-name>
      <ejb-ref>
      <ejb-ref-name>ejb/LucyServicesBeanRemote</ejb-ref-name>
      <jndi-name>jnp://remotehost1:1100/ejb/LucyServicesBean</jndi-name>
      </ejb-ref>

      ....

      and
      ...

      <ejb-name>ABean</ejb-name>
      <jndi-name>ejb/ABean</jndi-name>
      <ejb-ref>
      <ejb-ref-name>ejb/LucyServicesBeanRemote</ejb-ref-name>
      <jndi-name>ejb/LucyServicesBean</jndi-name>
      </ejb-ref>

      ...
      modifying the jndi.properties to include

      java.naming.provider.url=remotehost1:1100,remotehost2:1100

      but with no success, I always have the exception NameNotBound, any ideas ?

      Thanks

      Stefano Mancini
      mancinis@computer.org

        • 1. Re: Remote cluster ejb access
          Brian Stansberry Master

          Ca you post the full stack trace of the exception?

          • 2. Re: Remote cluster ejb access
            Stefano Mancini Newbie

            hi,

            when I use the remote reference

            <ejb-ref>
            <ejb-ref-name>ejb/LucyConfBeanRemote</ejb-ref-name>
            <jndi-name>jnp://RLLSIRFPAS01A:1100/ejb/LucyConfBean</jndi-name>
            </ejb-ref>

            I obtain the following exception:

            2008-06-03 17:26:28,969 ERROR [ServiceFinder] exception caught
            javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: ejb/LucyConfBean]
            at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1215)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:758)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:774)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
            at javax.naming.InitialContext.lookup(InitialContext.java:392)
            at it.idoq.farma.consost.ejb.util.CachingServiceLocator.lookup(CachingServiceLocator.java:56)
            at it.idoq.farma.consost.ejb.util.CachingServiceLocator.getRemoteHome(CachingServiceLocator.java:80)
            at it.idoq.farma.consost.ejb.util.ServiceFinder.lookupLucyConfBean(ServiceFinder.java:86)
            at it.idoq.farma.consost.ejb.util.CfgParamsFinder.initCfgParams(CfgParamsFinder.java:41)
            at it.idoq.farma.consost.ws.ConSostImpl.init(ConSostImpl.java:54)
            at org.jboss.wsf.container.jboss42.DefaultInvocationHandlerJAXRPC.invoke(DefaultInvocationHandlerJAXRPC.java:52)
            at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:408)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:272)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122)
            at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
            at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
            at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
            at java.lang.Thread.run(Thread.java:619)
            Caused by: javax.naming.NameNotFoundException: ejb/LucyConfBean
            at org.jboss.ha.jndi.TreeHead.lookup(TreeHead.java:242)
            at org.jboss.ha.jndi.HAJNDI.lookup(HAJNDI.java:155)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.ha.framework.interfaces.HARMIClient.invoke(HARMIClient.java:312)
            at $Proxy84.lookup(Unknown Source)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
            at javax.naming.InitialContext.lookup(InitialContext.java:392)
            at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1209)
            ... 35 more

            while when I use the reference

            <ejb-ref>
            <ejb-ref-name>ejb/LucyConfBeanRemote</ejb-ref-name>
            <jndi-name>ejb/LucyConfBean</jndi-name>
            </ejb-ref>

            and I modify the jndi.properties file adding

            java.naming.provider.url=RLLSIRFPAS01A:1100,RLLSIRFPAS01B:1100

            I obtain the following exc:

            2008-06-03 16:41:32,093 ERROR [ServiceFinder] exception caught
            javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: ejb/LucyConfBean]
            at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1215)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:758)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:774)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
            at javax.naming.InitialContext.lookup(InitialContext.java:392)
            at it.idoq.farma.consost.ejb.util.CachingServiceLocator.lookup(CachingServiceLocator.java:56)
            at it.idoq.farma.consost.ejb.util.CachingServiceLocator.getRemoteHome(CachingServiceLocator.java:80)
            at it.idoq.farma.consost.ejb.util.ServiceFinder.lookupLucyConfBean(ServiceFinder.java:86)
            at it.idoq.farma.consost.ejb.util.CfgParamsFinder.initCfgParams(CfgParamsFinder.java:41)
            at it.idoq.farma.consost.ws.ConSostImpl.init(ConSostImpl.java:54)
            at org.jboss.wsf.container.jboss42.DefaultInvocationHandlerJAXRPC.invoke(DefaultInvocationHandlerJAXRPC.java:52)
            at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:408)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:272)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189)
            at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122)
            at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
            at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
            at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
            at java.lang.Thread.run(Thread.java:619)
            Caused by: javax.naming.NameNotFoundException: ejb/LucyConfBean
            at org.jboss.ha.jndi.TreeHead.lookup(TreeHead.java:242)
            at org.jboss.ha.jndi.HAJNDI.lookup(HAJNDI.java:155)
            at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.ha.framework.interfaces.HARMIClient.invoke(HARMIClient.java:312)
            at $Proxy89.lookup(Unknown Source)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
            at javax.naming.InitialContext.lookup(InitialContext.java:392)
            at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1209)
            ... 35 more

            In this second case I've also seen this exception during the jboss startup:

            2008-06-03 16:39:48,565 DEBUG [org.jboss.system.ServiceController] starting service jboss:service=HASessionState
            2008-06-03 16:39:48,565 DEBUG [org.jboss.ha.hasessionstate.server.HASessionStateService] Starting jboss:service=HASessionState
            2008-06-03 16:39:48,565 DEBUG [org.jboss.ha.hasessionstate.server.HASessionStateImpl./HASessionState/Default] HASessionState node name : 10.145.11.6:1099
            2008-06-03 16:39:48,596 DEBUG [org.jboss.ha.hasessionstate.server.HASessionStateService] Starting failed jboss:service=HASessionState
            javax.naming.NameAlreadyBoundException
            at org.jnp.server.NamingServer.bind(NamingServer.java:144)
            at org.jnp.server.NamingServer.bind(NamingServer.java:109)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
            at sun.rmi.transport.Transport$1.run(Transport.java:159)
            at java.security.AccessController.doPrivileged(Native Method)
            at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
            at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
            at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
            at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
            at java.lang.Thread.run(Thread.java:619)
            at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
            at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
            at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
            at org.jnp.server.NamingServer_Stub.bind(Unknown Source)
            at org.jnp.interfaces.NamingContext.bind(NamingContext.java:591)
            at org.jnp.interfaces.NamingContext.bind(NamingContext.java:552)
            at org.jboss.ha.hasessionstate.server.HASessionStateImpl.bind(HASessionStateImpl.java:188)
            at org.jboss.ha.hasessionstate.server.HASessionStateImpl.start(HASessionStateImpl.java:159)
            at org.jboss.ha.hasessionstate.server.HASessionStateService.startService(HASessionStateService.java:131)
            at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
            at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
            at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
            at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
            at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
            at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
            at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
            at $Proxy0.start(Unknown Source)
            at org.jboss.system.ServiceController.start(ServiceController.java:417)
            at org.jboss.system.ServiceController.start(ServiceController.java:435)
            at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
            at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
            at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
            at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
            at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
            at $Proxy4.start(Unknown Source)
            at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
            at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
            at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
            at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
            at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
            at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
            at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
            at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
            at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
            at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
            at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
            at $Proxy9.deploy(Unknown Source)
            at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
            at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
            at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
            at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
            at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
            at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
            at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
            at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
            at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
            at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
            at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
            at $Proxy0.start(Unknown Source)
            at org.jboss.system.ServiceController.start(ServiceController.java:417)
            at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
            at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
            at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
            at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
            at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
            at $Proxy4.start(Unknown Source)
            at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
            at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
            at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
            at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
            at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
            at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
            at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
            at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
            at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
            at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
            at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
            at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
            at $Proxy5.deploy(Unknown Source)
            at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
            at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
            at org.jboss.Main.boot(Main.java:200)
            at org.jboss.Main$1.run(Main.java:508)
            at java.lang.Thread.run(Thread.java:619)
            2008-06-03 16:39:48,596 WARN [org.jboss.system.ServiceController] Problem starting service jboss:service=HASessionState
            javax.naming.NameAlreadyBoundException
            at org.jnp.server.NamingServer.bind(NamingServer.java:144)
            at org.jnp.server.NamingServer.bind(NamingServer.java:109)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at
            ...

            Thanks

            Stefano Mancini

            • 3. Re: Remote cluster ejb access
              Brian Stansberry Master

              Don't try the second way; you shouldn't edit the conf/jndi.properties file.

              Can you enable TRACE logging for org.jnp and post what happens before the exception?

              • 4. Re: Remote cluster ejb access
                Stefano Mancini Newbie

                Hi,

                with trace enabled there are only two rows before the exception:

                2008-06-04 08:55:38,476 TRACE [org.jnp.server.NamingServer] No binding for: ejb in context , bindings:

                2008-06-04 08:55:38,476 TRACE [org.jnp.server.NamingServer] No binding for: LucyConfBean in context ejb, bindings:
                ConSostBean=org.jnp.interfaces.MarshalledValuePair@75ad44f6

                2008-06-04 08:55:38,476 ERROR [ServiceFinder] exception caught
                javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: ejb/LucyConfBean]

                I've sent you the complete log by mail (it's 1Mb).
                Here is a summary of the trace info contained in the log:


                2008-06-04 08:55:02,196 TRACE [org.jnp.server.NamingServer] No binding for: rlwsirfpaos01a in context invokers, bindings:
                2008-06-04 08:55:02,274 TRACE [org.jnp.server.NamingServer] No binding for: JBossCorbaNaming in context , bindings:
                SecurityProxyFactory=org.jnp.interfaces.MarshalledValuePair@34c92507
                JBossCorbaORB=Reference Class Name: org.omg.CORBA.ORB

                comp=Reference Class Name: javax.naming.Context
                Type: nns
                Content: ENC-MULTIPLEXER

                JBossCorbaPOA=Reference Class Name: org.omg.PortableServer.POA

                jaas=Reference Class Name: javax.naming.Context
                Type: nns
                Content: JSM

                comp.original=Reference Class Name: javax.namingMain.Context
                Type: nns
                Content: ENC

                timedCacheFactory=Reference Class Name: javax.naming.Context
                Type: nns
                Content: JSMCachePolicy

                TransactionPropagationContextExporter=Reference Class Name: com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager

                comp.ejb3=Reference Class Name: javax.naming.Context
                Type: nns
                Content: ENC-EJB3

                TransactionPropagationContextImporter=Reference Class Name: com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager

                TransactionManager=Reference Class Name: com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate

                JBossCorbaInterfaceRepositoryPOA=Reference Class Name: org.omg.PortableServer.POA
                2008-06-04 08:55:03,571 TRACE [org.jnp.server.NamingServer] No binding for: UserTransaction in context , bindings:
                ORB=Reference Class Name: org.jacorb.orb.ORB
                Type: nns
                Content: ORB
                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: ejb in context env, bindings:

                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: LucyServicesBean in context env/ejb, bindings:

                2008-06-04 08:55:09,852 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyDocumentsBean to JNDI name: ejb/LucyDocumentsBean
                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: LucyDocumentsBean in context env/ejb, bindings:
                LucyServicesBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyServicesBean


                2008-06-04 08:55:09,852 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/ConSostBean to JNDI name: ejb/ConSostBean
                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: ConSostBean in context env/ejb, bindings:
                LucyServicesBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyServicesBean

                LucyDocumentsBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyDocumentsBean


                2008-06-04 08:55:09,852 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/DcrBean to JNDI name: ejb/DcrBean
                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: DcrBean in context env/ejb, bindings:
                ConSostBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/ConSostBean

                LucyServicesBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyServicesBean

                LucyDocumentsBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyDocumentsBean


                2008-06-04 08:55:09,852 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyConfBean to JNDI name: ejb/LucyConfBean
                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: LucyConfBean in context env/ejb, bindings:
                ConSostBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/ConSostBean

                LucyServicesBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyServicesBean

                DcrBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/DcrBean

                LucyDocumentsBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyDocumentsBean


                2008-06-04 08:55:09,852 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyArkBean to JNDI name: ejb/LucyArkBean
                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: LucyArkBean in context env/ejb, bindings:
                ConSostBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/ConSostBean

                LucyServicesBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyServicesBean

                LucyConfBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyConfBean

                DcrBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/DcrBean

                LucyDocumentsBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyDocumentsBean


                2008-06-04 08:55:09,852 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyUserBean to JNDI name: ejb/LucyUserBean
                2008-06-04 08:55:09,852 TRACE [org.jnp.server.NamingServer] No binding for: LucyUserBean in context env/ejb, bindings:
                LucyArkBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyArkBean

                ConSostBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/ConSostBean

                LucyServicesBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyServicesBean

                LucyConfBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyConfBean

                DcrBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/DcrBean

                LucyDocumentsBean=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyDocumentsBean
                .....
                2008-06-04 08:55:13,102 TRACE [org.jnp.server.NamingServer] No binding for: ejb in context env, bindings:

                2008-06-04 08:55:13,102 TRACE [org.jnp.server.NamingServer] No binding for: LucyArkBeanRemote in context env/ejb, bindings:

                2008-06-04 08:55:13,102 DEBUG [org.jboss.ejb.StatelessSessionContainer] Binding an EJBReference ejb/LucyConfBeanRemote
                2008-06-04 08:55:13,102 DEBUG [org.jboss.ejb.StatelessSessionContainer] adding stateless-unified-invoker:jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean to Reference
                2008-06-04 08:55:13,118 TRACE [org.jnp.server.NamingServer] No binding for: LucyConfBeanRemote in context env/ejb, bindings:
                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean


                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] Binding an EJBReference ejb/LucyUserBeanRemote
                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] adding stateless-unified-invoker:jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyUserBean to Reference
                2008-06-04 08:55:13,118 TRACE [org.jnp.server.NamingServer] No binding for: LucyUserBeanRemote in context env/ejb, bindings:
                LucyConfBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean

                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean


                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] Binding an EJBReference ejb/DcrBeanRemote
                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] adding stateless-unified-invoker:jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/DcrBean to Reference
                2008-06-04 08:55:13,118 TRACE [org.jnp.server.NamingServer] No binding for: DcrBeanRemote in context env/ejb, bindings:
                LucyUserBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyUserBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyUserBean

                LucyConfBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean

                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean


                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] Binding an EJBReference ejb/LucyServicesBeanRemote
                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] adding stateless-unified-invoker:jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyServicesBean to Reference
                2008-06-04 08:55:13,118 TRACE [org.jnp.server.NamingServer] No binding for: LucyServicesBeanRemote in context env/ejb, bindings:
                DcrBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/DcrBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/DcrBean

                LucyUserBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyUserBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyUserBean

                LucyConfBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean

                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: stateless-unified-invoker
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean
                Type: default
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean


                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] Binding env resource: jdbc/FarmaDb to JDNI ENC as: jdbc/FarmaSvil
                2008-06-04 08:55:13,118 TRACE [org.jnp.server.NamingServer] No binding for: jdbc in context env, bindings:
                ejb=org.jnp.server.NamingServer@14a1ee92

                2008-06-04 08:55:13,118 TRACE [org.jnp.server.NamingServer] No binding for: FarmaDb in context env/jdbc, bindings:

                2008-06-04 08:55:13,118 DEBUG [org.jboss.ejb.StatelessSessionContainer] End java:comp/env for EJB: ConSostBean
                2008-06-04 08:55:13,118 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@2857a293, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@2382600f{ url=null ,addedOrder=0}

                2008-06-04 08:55:13,571 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] linkEjbRefs
                2008-06-04 08:55:13,571 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyArkBeanRemote to JNDI name: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean
                2008-06-04 08:55:13,571 TRACE [org.jnp.server.NamingServer] No binding for: ejb in context env, bindings:
                ConSostArchiverQueue=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: queue/ConSostArchiverQueue

                ConSostVolumizerQueue=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: queue/ConSostVolumizerQueue

                ConnectionFactory=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ConnectionFactory


                2008-06-04 08:55:13,571 TRACE [org.jnp.server.NamingServer] No binding for: LucyArkBeanRemote in context env/ejb, bindings:

                2008-06-04 08:55:13,571 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyConfBeanRemote to JNDI name: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean
                2008-06-04 08:55:13,571 TRACE [org.jnp.server.NamingServer] No binding for: LucyConfBeanRemote in context env/ejb, bindings:
                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean


                2008-06-04 08:55:13,571 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] linkEjbLocalRefs
                2008-06-04 08:55:13,586 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-local-ref: ejb/ConSostBean to JNDI name: local/ConSostBean@1537375563
                2008-06-04 08:55:13,586 TRACE [org.jnp.server.NamingServer] No binding for: ConSostBean in context env/ejb, bindings:
                LucyConfBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyConfBean

                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyArkBean

                2008-06-04 08:55:13,805 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyArkBeanRemote to JNDI name: ejb/LucyArkBean
                2008-06-04 08:55:13,805 TRACE [org.jnp.server.NamingServer] No binding for: ejb in context env, bindings:

                2008-06-04 08:55:13,805 TRACE [org.jnp.server.NamingServer] No binding for: LucyArkBeanRemote in context env/ejb, bindings:

                2008-06-04 08:55:13,805 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-ref: ejb/LucyConfBeanRemote to JNDI name: ejb/LucyConfBean
                2008-06-04 08:55:13,805 TRACE [org.jnp.server.NamingServer] No binding for: LucyConfBeanRemote in context env/ejb, bindings:
                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyArkBean


                2008-06-04 08:55:13,805 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] linkEjbLocalRefs
                2008-06-04 08:55:13,805 DEBUG [org.jboss.web.tomcat.service.TomcatDeployer] Linking ejb-local-ref: ejb/ConSostBean to JNDI name: local/ConSostBean@1537375563
                2008-06-04 08:55:13,805 TRACE [org.jnp.server.NamingServer] No binding for: ConSostBean in context env/ejb, bindings:
                LucyConfBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyConfBean

                LucyArkBeanRemote=Reference Class Name: javax.naming.LinkRef
                Type: LinkAddress
                Content: ejb/LucyArkBean
                ....
                2008-06-04 08:55:38,476 TRACE [org.jnp.server.NamingServer] No binding for: ejb in context , bindings:

                2008-06-04 08:55:38,476 TRACE [org.jnp.server.NamingServer] No binding for: LucyConfBean in context ejb, bindings:
                ConSostBean=org.jnp.interfaces.MarshalledValuePair@75ad44f6

                2008-06-04 08:55:38,476 ERROR [ServiceFinder] exception caught
                javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: ejb/LucyConfBean]


                Stefano Mancini





                • 5. Re: Remote cluster ejb access
                  Stefano Mancini Newbie

                  Hi,

                  I wish to add some details, I've written a simple standalone application to call the ejb deloyed in the remote cluster.

                  I initialized the InitialContext in the following way

                  Properties jndiProps = new Properties();
                  jndiProps.setPropertyContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
                  jndiProps.setPropertyContext.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
                  jndiProps.setProperty(Context.PROVIDER_URL, "jnp://node1:1100, jnp://node2:1100");
                  InitialContext ic = new InitialContext(jndiProps);

                  and it works fine, the ejbs are found and called correctly.


                  Stefano Mancini

                  • 6. Re: Remote cluster ejb access
                    Brian Stansberry Master

                    A few questions:

                    1) In different posts, you've used "remotehost1", "RLLSIRFPAS01A" and "node1". I'm assuming these are all referring to the same thing; please correct me if I'm wrong. :-)

                    2) Is the partition name for "remotehost1" different from the partition name for the server making the call; e.g. the aren't both "DefaultPartition" or something?

                    3) In your example where you build up the naming properties yourself and do the call directly, does it work if you only include one server in the provider url:

                    jndiProps.setProperty(Context.PROVIDER_URL, "jnp://node1:1100");

                    I certainly expect it to work if you build up the naming environment yourself rather than using bean's ENC. But I'm not seeing why it would fail when you use the ENC. When you use the ENC, it first looks up a javax.naming.LinkRef in the local environment; that link ref provides the jnp://RLLSIRFPAS01A.local.sirfarma.it:1100/ejb/LucyUserBean name. That name should result in a remote call to RLLSIRFPAS01A.local.sirfarma to resolve the link and look up the bean, but it's clear from your stack trace that the call is staying local. It's not clear to me why.

                    • 7. Re: Remote cluster ejb access
                      Stefano Mancini Newbie

                      Hi,

                      >1) In different posts, you've used "remotehost1", "RLLSIRFPAS01A" and >"node1". I'm assuming these are all referring to the same thing; please >correct me if I'm wrong. :-)

                      Yes they refer to the same thing, sorry I've mixed some examples with some real code extracted from the application

                      >2) Is the partition name for "remotehost1" different from the partition name >for the server making the call; e.g. the aren't both "DefaultPartition" or >something?

                      The partition names are the same and they are both "DefaultPartition", maybe this is the problem ?

                      >3) In your example where you build up the naming properties yourself and >do the call directly, does it work if you only include one server in the >provider url:
                      >jndiProps.setProperty(Context.PROVIDER_URL, "jnp://node1:1100");

                      yes it works fine with one server in the provider url

                      Stefano

                      • 8. Re: Remote cluster ejb access
                        Brian Stansberry Master

                         


                        >2) Is the partition name for "remotehost1" different from the partition name >for the server making the call; e.g. the aren't both "DefaultPartition" or >something?

                        The partition names are the same and they are both "DefaultPartition", maybe this is the problem ?


                        It's possible; worth changing one of them and seeing if that fixes it (and having different names is a good practice in general.)

                        Just start jboss including "-g SomePartitionName" in the startup command to change the name.

                        The HA-JNDI proxy has an optimization to try to route the call to a local server if it finds an HA-JNDI server associated with the same partition name in VM. That *might * be what's tripping you up.

                        • 9. Re: Remote cluster ejb access
                          Stefano Mancini Newbie

                          Hi,

                          I've changed the partitions names and now it's working fine, thanks for your help.
                          Sorry for the delay in my feedback but I tested the solution only yesterday.

                          I've only another doubt, as I told before in my configuration I've a jboss cluster composed by two nodes (node1 and node2) and
                          a remote jboss client.
                          In the jboss.xml of the ejbs deployed on the client node I've the following reference:

                          <ejb-name>ABean</ejb-name>
                          <jndi-name>ejb/ABean</jndi-name>
                          <ejb-ref>
                          <ejb-ref-name>ejb/LucyServicesBeanRemote</ejb-ref-name>
                          <jndi-name>jnp://node1:1100/ejb/LucyServicesBean</jndi-name>
                          </ejb-ref>

                          I've verified that the load balancing is working and that failover is working if node1 or node2 stops.
                          But if 'node1' is stopped when the client is doing the first lookup (for example the jboss client starts with node1 stopped), obviously
                          I receive an exception.
                          Is there a way to list all the remote cluster nodes in the jboss.xml of the client ?
                          for example something like
                          <jndi-name>jnp://node1:1100/ejb/LucyServicesBean, jnp://node2:1100/ejb/LucyServicesBean</jndi-name>

                          (as I can do when I write a standalone client jndiProps.setProperty(Context.PROVIDER_URL, "jnp://node1:1100, jnp://node2:1100") )


                          Regards

                          Stefano Mancini

                          • 10. Re: Remote cluster ejb access
                            Brian Stansberry Master

                            Sorry, no. The jndi-name isn't parsed; doing that in jboss.xml would result in JBoss internally essentially doing this:

                            new InitialContext().lookup("jnp://node1:1100/ejb/LucyServicesBean, jnp://node2:1100/ejb/LucyServicesBean")