geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gianny Damour <gianny.dam...@optusnet.com.au>
Subject SFSB clustering - how to try it?
Date Sun, 24 Feb 2008 10:51:51 GMT
Hi,

We have now some basic support for SFSB clustering. If you would like  
to give it a try then here are some instructions.

1. Create a clustered EJB module.

* SFSBs must implement Serializable even if they are EJB3 SFSBs.
* In the geronimo-openejb DD, include the 'openejb-clustering-wadi'  
element.

I have done some testing with an OpenEJB example, namely CounterImpl,  
that you can co from https://svn.apache.org/repos/asf/openejb/trunk/ 
openejb3/examples/simple-stateful. Note that you need to update  
CounterImpl so that it implements Serializable.
And here is the geronimo-opejnejb.xml plan I am using:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://geronimo.apache.org/xml/ns/j2ee/ejb/openejb-2.0"
     xmlns:wadi="http://geronimo.apache.org/xml/ns/openejb-clustering- 
wadi-1.2">
     <environment>
         <moduleId>
             <groupId>org.codehaus.wadi</groupId>
             <artifactId>wadi-openejb</artifactId>
             <version>2.0-SNAPSHOT</version>
             <type>jar</type>
         </moduleId>
     </environment>
    <wadi:openejb-clustering-wadi>
        <wadi:deltaReplication>false</wadi:deltaReplication>
    </wadi:openejb-clustering-wadi>
</ejb-jar>


2. Deploy clustering EJB Module


3. Create and start an additional Geronimo Server

* To create another instance, say NODE2, you can execute the  
following commands from the Geronimo install dir:
mkdir NODE2
cp -r var NODE2
perl -pi -e 's/PortOffset=0/PortOffset=1/' NODE2/var/config/config- 
substitutions.properties
perl -pi -e 's/clusterNodeName=NODE/clusterNodeName=NODE2/' NODE2/var/ 
config/config-substitutions.properties

* To start this instance, within gshell type:
geronimo/start-server -G server.name=NODE2 -b


4. Test the clustered SFSBs

If you are also using  CounterImpl, then you can use this snippet:

         Properties properties = new Properties();
         properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,  
"org.apache.openejb.client.RemoteInitialContextFactory");
         properties.setProperty(Context.PROVIDER_URL, "ejbd:// 
0.0.0.0:4201");
         InitialContext remoteContext = new InitialContext(properties);

         CounterRemote counterRemote = (CounterRemote)  
remoteContext.lookup("CounterImplRemote");
         int cpt = counterRemote.increment();
         System.out.println(cpt);
         cpt = counterRemote.increment();
         System.out.println(cpt);
         cpt = counterRemote.increment();
         System.out.println(cpt);

To actually trial the clustering:
1. put a breakpoint on the last increment;
2.  kill -9 the 'default' Geronimo Server
3. continue your debug session. 3 should be printed.

This is a test demonstrating replication.

Thanks,
Gianny


Mime
View raw message