User: peter_f
Date: 01/10/19 08:36:15
Modified: src/main/org/jboss/system Shutdown.java
Log:
Added debug messages trying to understand the (un)dependencys
Revision Changes Path
1.4 +119 -27 jboss/src/main/org/jboss/system/Shutdown.java
Index: Shutdown.java
===================================================================
RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/system/Shutdown.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Shutdown.java 2001/10/16 00:45:28 1.3
+++ Shutdown.java 2001/10/19 15:36:15 1.4
@@ -7,9 +7,11 @@
package org.jboss.system;
import java.util.List;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.Set;
+import java.util.List;
+import java.util.ListIterator;
import javax.management.ObjectName;
import javax.management.MBeanServer;
@@ -25,7 +27,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Rickard �berg</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Jason Dillon</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class Shutdown
implements MBeanRegistration, ShutdownMBean
@@ -39,7 +41,7 @@
/** The MBean server we are attached to. */
private MBeanServer server;
-
+
// Public -------------------------------------------------------
/**
@@ -126,35 +128,125 @@
{
try
{
- // Stop services
- server.invoke(new ObjectName("JBOSS-SYSTEM:spine=ServiceController"),
- "stop", new Object[0] , new String[0]);
-
- // Destroy services
- server.invoke(new ObjectName("JBOSS-SYSTEM:spine=ServiceController"),
- "destroy", new Object[0] , new String[0]);
-
- // unload all MBeans except one called
JMImplementation:type=MBeanServerDelegate
- ObjectName delegateName = null;
- Set allMBeans = server.queryNames(null,null);
- for(Iterator i = allMBeans.iterator();i.hasNext();) {
- ObjectName name = (ObjectName) i.next();
-
if(name.getCanonicalName().equals("JMImplementation:type=MBeanServerDelegate") ==
false ) {
- log.info("Unloading MBean : " +
name.getCanonicalName());
- server.unregisterMBean(name);
- } else {
- delegateName = name;
+ // get the deployed objects from ServiceController
+ ObjectName[] deployed = (ObjectName[]) server.invoke(
+ new ObjectName("JBOSS-SYSTEM:spine=ServiceController"),
+ "getDeployed", new Object[0] , new String[0] );
+
+ List servicesCopy = Arrays.asList(deployed);
+ ListIterator enum = servicesCopy.listIterator();
+ ListIterator beanEnum = servicesCopy.listIterator();
+ ObjectName name = null;
+ String[] sig = { "javax.management.ObjectName" };
+
+ // filo ( first in last out )
+/*
+ while (enum.hasNext())
+ {
+ enum.next();
+
+ // filter out some services here ?
+
+ }
+
+*/
+ // Stop / Destroy / Unload all MBeans from ServiceController
+
+ // Stop
+ while (enum.hasNext())
+ //while (enum.hasPrevious())
+ {
+ name = (ObjectName)enum.next();
+ //name = (ObjectName)enum.previous();
+ Object[] args = { name };
+ log.info("**********************Looking at MBean : " +
name.getCanonicalName());
+ // Stop services
+ if(! name.getCanonicalName().equals("JMX:name=Connector,type=RMI")
+ && ! name.getCanonicalName().equals("Adaptor:name=html")
+ && ! name.getCanonicalName().equals("JBOSS-SYSTEM:service=Naming")
+ )
+ {
+ log.info("**********************Stopping MBean : " +
name.getCanonicalName());
+ server.invoke(new
ObjectName("JBOSS-SYSTEM:spine=ServiceController"), "stop", args , sig);
+
+ // Destroy services
+
+ // Unload services
+
}
+ }
+
+ // Destroy
+ while (enum.hasPrevious())
+ //while (enum.hasNext())
+ {
+ name = (ObjectName)enum.previous();
+ //name = (ObjectName)enum.next();
+ Object[] args = { name };
+ log.info("**********************Looking at MBean : " +
name.getCanonicalName());
+ // Destroy services
+ if(! name.getCanonicalName().equals("JMX:name=Connector,type=RMI")
+ && ! name.getCanonicalName().equals("Adaptor:name=html")
+ && ! name.getCanonicalName().equals("JBOSS-SYSTEM:service=Naming")
+ )
+ {
+ log.info("**********************Destroying MBean : " +
name.getCanonicalName());
+ server.invoke(new ObjectName("JBOSS-SYSTEM:spine=ServiceController"),
"destroy", args , sig);
+ }
+
+ }
+
+
+ // Unload
+
+ /* There are inconsistence in names returned from ServiceController
+ * [Shutdown,INFO] Undeploying MBean :
:name=JBossMQProvider,service=JMSProviderLoader
+ * that prevents Us from using Service Controller for unload right now
!!! ...
+ */
+ /*
+ // Unload MBeans from ServiceController
+ while (enum.hasNext())
+ {
+ name = (ObjectName)enum.next();
+ if( !
name.getCanonicalName().equals("JMImplementation:type=MBeanServerDelegate
+ {
+ Object[] args = { name };
+ log.info("Undeploying MBean : " + name.getCanonicalName());
+ // Unload services
+ server.invoke(new
ObjectName("JBOSS-SYSTEM:spine=ServiceController"),
+ "undeploy", args , sig);
+ }
+ }
+ */
+
+ // Unload all MBeans from MBean Server
+ Set allMBeans = server.queryNames(null,null);
+ Iterator i = allMBeans.iterator();
+ // write the Mbeans Out
+ /*
+ while(i.hasNext()) {
+ name = (ObjectName) i.next();
+ log.info("**********************Looking at MBean : " +
name.getCanonicalName());
}
- // this will throw an RuntimeOperationsException
- //log.info("Unloading MBean : " + delegateName.getCanonicalName());
- //server.unregisterMBean(delegateName);
+ */
+ ///*
+ while(i.hasNext()) {
+ name = (ObjectName) i.next();
+ log.info("**********************Looking at MBean : " +
name.getCanonicalName());
+ if(!
name.getCanonicalName().equals("JMImplementation:type=MBeanServerDelegate")
+ && ! name.getCanonicalName().equals("JMX:name=Connector,type=RMI")
+ && ! name.getCanonicalName().equals("Adaptor:name=html")
+ && ! name.getCanonicalName().equals("JBOSS-SYSTEM:service=Naming")
+ )
+ {
+ log.info("**********************Unloading MBean : " +
name.getCanonicalName());
+ server.unregisterMBean(name);
+ }
+ }
+ //*/
}
catch (RuntimeMBeanException rmbe) {
rmbe.getTargetException().printStackTrace();
- }
- catch (RuntimeOperationsException roe) {
- roe.getTargetException().printStackTrace();
}
catch (Exception e) {
log.error("failed to destroy services", e);
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development