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.

Reply via email to