Good question. I haven't configured a cluster. I have one instance of Geronimo 2.2 running, and didn't make any changes to the default config. The client side code is a very simple test app. At this point, I'm only doing some research and testing, nothing fancy. Is clustering somehow enabled by default?
Quintin Beukes-2 wrote: > > Are you using clustering? > > Quintin Beukes > > > > On Thu, Oct 29, 2009 at 1:05 AM, bitz <[email protected]> wrote: >> >> I'm using Geronimo 2.2 which uses OpenEJB 3.1.2. I have a client >> application >> which retrieves a remote EJB reference and makes a remote EJB method >> call. >> I'm seeing the following message being logged by the OpenEJB client on >> the >> client side... >> >> Oct 28, 2009 3:36:03 PM >> org.apache.openejb.client.StickyConnectionStrategy >> connect >> WARNING: Failover: Cannot connect to server(s): ejbd://0.0.0.0:4201 >> Exception: Cannot connect to server 'ejbd://0.0.0.0:4201'. Check that >> the >> server is started and that the specified serverURL is correct.. Trying >> next. >> >> Well, the serverURL is not correct, and it's also not the one I provided. >> Here's a snippet of the client code... >> >> final URI serverURI = new URI( "ejbd", null, "192.168.0.1", 4201, null, >> null, null ); >> final Properties contextProperties = new Properties( ); >> contextProperties.put( Context.INITIAL_CONTEXT_FACTORY, >> "org.apache.openejb.client.RemoteInitialContextFactory" ); >> contextProperties.put( Context.PROVIDER_URL, serverURI.toString( ) ); >> >> final InitialContext ctx = new InitialContext( contextProperties ); >> final MyEjbService remote = (MyEjbService)ctx.lookup("MyEjbRemote"); >> final String serverTime = remote.getServerTime(); >> >> In >> org.apache.openejb.client.StickyConnectionStrategy.connect(ClusterMetaData >> cluster, ServerMetaData server), the ctx.lookup("MyEjbRemote") call is >> successful, but the next call to remote.getServerTime() produces the >> error >> message indicated above, yet still succeeds. Further calls to >> remote.getServerTime() work fine and do not produce any error messages. >> >> I debugged enough to find the cause. I'll try to explain... The first >> client-server communication involves a handshake where ClusterRequest and >> ClusterResponse objects are exchanged. During this handshake the server >> returns a URI of "ejbd://0.0.0.0:4201". On the next communication to the >> server, for the remote.getServerTime() method call, the >> org.apache.openejb.client.StickyConnectionStrategy.connect(ClusterMetaData >> cluster, ServerMetaData server) code attempts to use the URI returned by >> the >> server, which obviously fails, resulting in the message, then it falls >> back >> to the original, correct URI, which is successful. >> >> My question: What is the reason for the ClusterRequest/ClusterResponse >> handshake, and why does the OpenEJB client try to connect using an >> invalid >> URI provided by server? >> >> >> -- >> View this message in context: >> http://www.nabble.com/OpenEJB-3.1.2---%22Cannot-connect-to-server%22-WARNING-message-tp26103713p26103713.html >> Sent from the OpenEJB User mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://www.nabble.com/OpenEJB-3.1.2---%22Cannot-connect-to-server%22-WARNING-message-tp26103713p26117261.html Sent from the OpenEJB User mailing list archive at Nabble.com.
