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