User: user57
Date: 02/02/12 22:38:33
Modified: src/main/org/jboss/mq/server JBossMQService.java
JBossMQServiceMBean.java
Log:
o Added some warning logs when trying to stop/remove/whatever a service
when the ObjectName given has no service context (before we silently
ignored).
o Fixed bug [ #511024 ] Exception when destroying Topic or Queue
Simplified the bits that needed to talk to the SC by using a proxy
o Updated the location where destinations are bound (jboss.mq.destination)
Revision Changes Path
1.12 +78 -165 jbossmq/src/main/org/jboss/mq/server/JBossMQService.java
Index: JBossMQService.java
===================================================================
RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/server/JBossMQService.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- JBossMQService.java 3 Jan 2002 04:00:54 -0000 1.11
+++ JBossMQService.java 13 Feb 2002 06:38:33 -0000 1.12
@@ -13,10 +13,15 @@
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.naming.InitialContext;
+
import org.jboss.mq.SpyQueue;
import org.jboss.mq.SpyTopic;
import org.jboss.mq.pm.PersistenceManager;
+
import org.jboss.system.ServiceMBeanSupport;
+import org.jboss.system.ServiceControllerMBean;
+
+import org.jboss.util.MBeanProxy;
/**
* JMX MBean implementation for JBossMQ.
@@ -25,18 +30,18 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>
* @author <a href="[EMAIL PROTECTED]">Hiram Chirino</a>
* @see JBossMQ subproject
- * @version $Revision: 1.11 $
+ * @version $Revision: 1.12 $
*/
public class JBossMQService
extends ServiceMBeanSupport
implements JBossMQServiceMBean
{
- private static final String SERVICE_CONTROLLER_NAME =
- "jboss.system:service=ServiceController";
-
public String jndiBindLocation = "java:/JBossMQServer";
// Attributes ----------------------------------------------------
+
+ /** A proxy to the service controller. */
+ private ServiceControllerMBean serviceController;
private ObjectName mqService;
@@ -49,24 +54,7 @@
public JBossMQService()
{
- }
-
- public ObjectName preRegister(MBeanServer server, ObjectName name)
- throws Exception
- {
- mqService = super.preRegister(server, name);
- return mqService;
- }
-
-
- /**
- * Gets the Name attribute of the JBossMQService object
- *
- * @return The Name value
- */
- public String getName()
- {
- return "JBossMQ";
+ // empty
}
/**
@@ -79,9 +67,9 @@
return jmsServer;
}
-
/**
* Get the value of PersistenceManager.
+ *
* @return value of PersistenceManager.
*/
public ObjectName getPersistenceManager()
@@ -91,6 +79,7 @@
/**
* Set the value of PersistenceManager.
+ *
* @param v Value to assign to PersistenceManager.
*/
public void setPersistenceManager(ObjectName objectName)
@@ -100,6 +89,7 @@
/**
* Get the value of StateManager.
+ *
* @return value of StateManager.
*/
public ObjectName getStateManager()
@@ -109,167 +99,95 @@
/**
* Set the value of StateManager.
+ *
* @param v Value to assign to StateManager.
*/
public void setStateManager(ObjectName objectName)
{
this.stateManager = objectName;
}
-
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
+
public void createQueue(String name) throws Exception
{
- try
- {
- ObjectName queue = getQueueObjectName(name);
- getServer().createMBean("org.jboss.mq.server.QueueManager", queue);
- getServer().setAttribute(queue, new Attribute("JBossMQService",
mqService));
- //getServer().invoke(queue, "start", new Object[]{}, new String[]{});
-
- // create the service
- getServer().invoke(getServiceControllerName(),
- "create",
- new Object[] {queue},
- new String[] {"javax.management.ObjectName"});
-
- // start the service
- getServer().invoke(getServiceControllerName(),
- "start",
- new Object[] {queue},
- new String[] {"javax.management.ObjectName"});
-
- }
- catch (Exception e)
- {
- log.warn("Could not create the destination: ", e);
- throw e;
- }
+ createDestination("org.jboss.mq.server.QueueManager",
+ getTopicObjectName(name));
}
- // Administration calls
-
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
public void createTopic(String name) throws Exception
{
- try
- {
-
- ObjectName topic= getTopicObjectName(name);
- getServer().createMBean("org.jboss.mq.server.TopicManager", topic);
- getServer().setAttribute(topic, new Attribute("JBossMQService",
mqService));
- //getServer().invoke(topic, "start", new Object[]{}, new String[]{});
-
- // create the topic
- getServer().invoke(getServiceControllerName(),
- "create",
- new Object[] {topic},
- new String[] {"javax.management.ObjectName"});
-
-
- // create the topic
- getServer().invoke(getServiceControllerName(),
- "start",
- new Object[] {topic},
- new String[] {"javax.management.ObjectName"});
- }
- catch (Exception e)
- {
- log.warn("Could not create the destination: ", e);
- throw e;
+ createDestination("org.jboss.mq.server.TopicManager",
+ getTopicObjectName(name));
+ }
+
+ protected void createDestination(String type, ObjectName name) throws Exception {
+ if (log.isDebugEnabled()) {
+ log.debug("Attempting to create destination: " + name + "; type=" + type);
}
+
+ server.createMBean(type, name);
+ server.setAttribute(name, new Attribute("JBossMQService", mqService));
+
+ serviceController.create(name);
+ serviceController.start(name);
}
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
public void destroyQueue(String name) throws Exception
{
- try
- {
-
- ObjectName queue = getQueueObjectName(name);
- getServer().invoke(getServiceControllerName(),
- "undeploy",
- new Object[] {queue},
- new String[] {"javax.management.ObjectName"});
-
- //getServer().invoke(queue, "stop", new Object[]{}, new String[]{});
- //getServer().unregisterMBean(queue);
-
- }
- catch (Exception e)
- {
- log.warn("Could not destroy the destination: ", e);
- throw e;
- }
-
-
+ destroyDestination(getQueueObjectName(name));
}
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
public void destroyTopic(String name) throws Exception
{
- try
- {
- ObjectName topic = getTopicObjectName(name);
- //getServer().invoke(topic, "stop", new Object[]{}, new String[]{});
- //getServer().unregisterMBean(topic);
- getServer().invoke(getServiceControllerName(),
- "undeploy",
- new Object[] {topic},
- new String[] {"javax.management.ObjectName"});
- }
- catch (Exception e)
- {
- log.warn("Could not destroy the destination: ", e);
- throw e;
+ destroyDestination(getTopicObjectName(name));
+ }
+
+ protected void destroyDestination(ObjectName name) throws Exception
+ {
+ if (log.isDebugEnabled()) {
+ log.debug("Attempting to destroy destination: " + name);
}
+
+ serviceController.stop(name);
+ serviceController.destroy(name);
+ serviceController.remove(name);
+ }
+
+ protected ObjectName getObjectName(MBeanServer server, ObjectName name)
+ throws MalformedObjectNameException
+ {
+ // Save our object name to create destination names based on it
+ mqService = name == null ? OBJECT_NAME : name;
+
+ return mqService;
}
protected void startService() throws Exception
{
- try
- {
- PersistenceManager pm = (PersistenceManager)
- getServer().invoke(persistenceManager, "getInstance",
- new Object[] {},
- new String[] {});
- JMSServer.initServer();//yucky kludge!
- jmsServer = JMSServer.getInstance();
- jmsServer.setPersistenceManager(pm);
- } catch (Exception e)
- {
- log.error("couldn't set persistence manager on jmsserver", e);
- } // end of try-catch
- try
- {
- StateManager sm = (StateManager)
- getServer().invoke(stateManager, "getInstance",
- new Object[] {},
- new String[] {});
- jmsServer.setStateManager(sm);
- } catch (Exception e)
- {
- log.error("couldn't set state manager on jmsserver", e);
- } // end of try-catch
+ // Get a proxy to the service controller
+ serviceController = (ServiceControllerMBean)
+ MBeanProxy.create(ServiceControllerMBean.class,
+ ServiceControllerMBean.OBJECT_NAME,
+ server);
+
+ PersistenceManager pm = (PersistenceManager)
+ server.invoke(persistenceManager,
+ "getInstance",
+ new Object[0],
+ new String[0]);
+
+ JMSServer.initServer(); // yucky kludge!
+
+ jmsServer = JMSServer.getInstance();
+ jmsServer.setPersistenceManager(pm);
+
+ StateManager sm = (StateManager)
+ server.invoke(stateManager,
+ "getInstance",
+ new Object[0],
+ new String[0]);
+
+ jmsServer.setStateManager(sm);
+
jmsServer.startServer();
}
@@ -280,16 +198,11 @@
private ObjectName getTopicObjectName(String name) throws
MalformedObjectNameException
{
- return new ObjectName(mqService.getDomain() + ":service=Topic,name=" + name);
+ return new ObjectName(mqService.getDomain() +
".destination:service=Topic,name=" + name);
}
private ObjectName getQueueObjectName(String name) throws
MalformedObjectNameException
{
- return new ObjectName(mqService.getDomain() + ":service=Queue,name=" + name);
- }
-
- private ObjectName getServiceControllerName() throws Exception
- {
- return new ObjectName(SERVICE_CONTROLLER_NAME);
+ return new ObjectName(mqService.getDomain() +
":destination:service=Queue,name=" + name);
}
}
1.7 +6 -28 jbossmq/src/main/org/jboss/mq/server/JBossMQServiceMBean.java
Index: JBossMQServiceMBean.java
===================================================================
RCS file:
/cvsroot/jboss/jbossmq/src/main/org/jboss/mq/server/JBossMQServiceMBean.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- JBossMQServiceMBean.java 3 Jan 2002 04:00:54 -0000 1.6
+++ JBossMQServiceMBean.java 13 Feb 2002 06:38:33 -0000 1.7
@@ -7,19 +7,21 @@
package org.jboss.mq.server;
import javax.management.ObjectName;
+
+import org.jboss.util.ObjectNameFactory;
import org.jboss.system.ServiceMBean;
/**
* MBean interface for the JBossMQ JMX service.
*
* @author <a href="[EMAIL PROTECTED]">Hiram Chirino</a>
- * @see <related>
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
*/
public interface JBossMQServiceMBean
- extends ServiceMBean
+ extends ServiceMBean
{
- String OBJECT_NAME = "jboss.mq:service=Server";
+ ObjectName OBJECT_NAME =
+ ObjectNameFactory.create("jboss.mq:service=Server");
JMSServer getJMSServer();
@@ -37,35 +39,11 @@
ObjectName getStateManager();
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
void createQueue(String name) throws Exception;
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
void createTopic(String name) throws Exception;
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
void destroyQueue(String name) throws Exception;
- /**
- * #Description of the Method
- *
- * @param name Description of Parameter
- * @exception Exception Description of Exception
- */
void destroyTopic(String name) throws Exception;
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development