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

Reply via email to