User: patriot1burke Date: 01/11/19 15:16:57 Modified: src/main/org/jboss/ha/jndi HANamingServiceMBean.java HANamingService.java Log: implemented 2-phase initialization under new mbean code (removal of init()) also added stop method to AutomaticDiscovery so that sockets would be cleaned up Revision Changes Path 1.4 +3 -3 jbossmx/src/main/org/jboss/ha/jndi/HANamingServiceMBean.java Index: HANamingServiceMBean.java =================================================================== RCS file: /cvsroot/jboss/jbossmx/src/main/org/jboss/ha/jndi/HANamingServiceMBean.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- HANamingServiceMBean.java 2001/10/10 20:02:05 1.3 +++ HANamingServiceMBean.java 2001/11/19 23:16:57 1.4 @@ -1,17 +1,17 @@ package org.jboss.ha.jndi; import java.net.UnknownHostException; - +import org.jboss.ha.framework.server.PartitionServiceMBean; /** * * @author [EMAIL PROTECTED] * @author [EMAIL PROTECTED] - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ * * <p><b>Revisions:</b><br> */ public interface HANamingServiceMBean - extends org.jboss.system.ServiceMBean + extends PartitionServiceMBean { // Constants ----------------------------------------------------- public static final String OBJECT_NAME = ":service=HANaming"; 1.14 +50 -16 jbossmx/src/main/org/jboss/ha/jndi/HANamingService.java Index: HANamingService.java =================================================================== RCS file: /cvsroot/jboss/jbossmx/src/main/org/jboss/ha/jndi/HANamingService.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- HANamingService.java 2001/11/18 12:40:42 1.13 +++ HANamingService.java 2001/11/19 23:16:57 1.14 @@ -61,9 +61,14 @@ * Management Bean for HA-JNDI service. * * @author [EMAIL PROTECTED] - * @version $Revision: 1.13 $ + * @version $Revision: 1.14 $ * * <p><b>Revisions:</b><br> + * <p><b>2001/11/19 bill burke:</b> + * <ul> + * <li> implemented PartitionServiceMBean interface for new 2-phase initilization + * <li> added stop method to AutomaticDiscovery so that it could be cleaned up. + * </ul> */ public class HANamingService extends ServiceMBeanSupport implements Runnable, HANamingServiceMBean { @@ -202,19 +207,11 @@ } - protected void startService() + public void startPartitionService(HAPartition haPartition) throws Exception { - log.info("Initializing HAJNDI server"); - partition = (HAPartition)new InitialContext().lookup("/HAPartition/" + partitionName); - replicantManager = partition.getDistributedReplicantManager(); - log.info("Create remote object"); - theServer = new HAJNDI(partition); - log.info("initialize HAJNDI"); - theServer.init(); log.info("Starting HAJNDI server"); - - log.info("Register with replicantManager as listener for HAJNDI replicants"); + log.info("Create HARMIServer proxy"); this.rmiserver = new HARMIServerImpl(partition, "HAJNDI", Naming.class, theServer); this.stub = (Naming)rmiserver.createHAStub(new RoundRobin()); @@ -240,19 +237,41 @@ autoDiscovery.listen (); } - protected void stopService() + protected void startService() + throws Exception { + } + + public void partitionInitializationPhase(HAPartition haPartition) + throws Exception + { + log.info("Initializing HAJNDI server"); + log.info("jndi lookup of " + "/HAPartition/" + partitionName); + partition = (HAPartition)new InitialContext().lookup("/HAPartition/" + partitionName); + replicantManager = partition.getDistributedReplicantManager(); + log.info("Create remote object"); + theServer = new HAJNDI(partition); + log.info("initialize HAJNDI"); + theServer.init(); + } + + public void stopPartitionService() throws Exception + { try { - log.info("Stopping"); + log.info("HA-JNDI is stopping"); // Unexport server + log.info("destroy ha rmiserver"); this.rmiserver.destroy (); // Stop listener ServerSocket s = serverSocket; serverSocket = null; + log.info("closing socket"); s.close(); + log.info("Stopping AutomaticDiscovery"); + autoDiscovery.stop(); log.info("Stopped"); } catch (Exception e) { @@ -327,12 +346,13 @@ { protected MulticastSocket socket = null; protected byte[] ipAddress = null; + protected InetAddress group = null; + protected boolean stopping = false; - public AutomaticDiscovery () throws Exception { socket = new MulticastSocket (adGroupPort); - InetAddress group = InetAddress.getByName (adGroupAddress); + group = InetAddress.getByName (adGroupAddress); socket.joinGroup (group); String address = getBindAddress(); @@ -342,6 +362,20 @@ ipAddress = (address + ":" + port).getBytes(); } + public void stop() + { + try + { + stopping = true; + socket.leaveGroup(group); + socket.close(); + } + catch (Exception ex) + { + log.error("Stopping AutomaticDiscovery failed", ex); + } + } + public void run () { @@ -357,7 +391,7 @@ } catch (IOException e) { - log.error ("HA-JNDI AutomaticDiscovery stopped", e); + if (!stopping) log.error ("HA-JNDI AutomaticDiscovery stopped", e); return; }
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development