Search in sources :

Example 26 with ServiceInfo

use of com.sun.messaging.jmq.util.admin.ServiceInfo in project openmq by eclipse-ee4j.

the class GetServicesHandler method handle.

/**
 * Handle the incomming administration message.
 *
 * @param con The Connection the message came in on.
 * @param cmd_msg The administration message
 * @param cmd_props The properties from the administration message
 */
@Override
public boolean handle(IMQConnection con, Packet cmd_msg, Hashtable cmd_props) {
    if (DEBUG) {
        logger.log(Logger.DEBUG, this.getClass().getName() + ": " + "Getting services " + cmd_props);
    }
    int status = Status.OK;
    String errMsg = null;
    String service = (String) cmd_props.get(MessageType.JMQ_SERVICE_NAME);
    // Get the list of service names from the ServiceManager
    List serviceNames = ServiceManager.getAllServiceNames();
    // Iterate through services
    Vector v = new Vector();
    Iterator iter = serviceNames.iterator();
    while (iter.hasNext()) {
        String name = (String) iter.next();
        if (service == null) {
            ServiceInfo si = getServiceInfo(name);
            v.add(si);
        } else if (service.equals(name)) {
            ServiceInfo si = getServiceInfo(name);
            v.add(si);
            break;
        }
    }
    if (service != null && v.size() == 0) {
        // Specified service did not exist
        status = Status.NOT_FOUND;
        errMsg = rb.getString(rb.X_NO_SUCH_SERVICE, service);
    }
    // Write reply
    Packet reply = new Packet(con.useDirectBuffers());
    reply.setPacketType(PacketType.OBJECT_MESSAGE);
    setProperties(reply, MessageType.GET_SERVICES_REPLY, status, errMsg);
    setBodyObject(reply, v);
    parent.sendReply(con, cmd_msg, reply);
    return true;
}
Also used : ServiceInfo(com.sun.messaging.jmq.util.admin.ServiceInfo) Iterator(java.util.Iterator) List(java.util.List) Vector(java.util.Vector)

Example 27 with ServiceInfo

use of com.sun.messaging.jmq.util.admin.ServiceInfo in project openmq by eclipse-ee4j.

the class GetServicesHandler method getServiceInfo.

public static ServiceInfo getServiceInfo(String name) {
    ServiceManager sm = Globals.getServiceManager();
    ConnectionManager cm = Globals.getConnectionManager();
    MetricManager mm = Globals.getMetricManager();
    /*
         * XXX REVISIT dipol 10/17/00 we should probably put this logic into the ServiceManager so knowledge of property names
         * is encapsulated there.
         */
    String proto = props.getProperty(SERVICE_PREFIX + name + ".protocoltype");
    // Fill in admin service info object
    ServiceInfo si = new com.sun.messaging.jmq.util.admin.ServiceInfo();
    si.name = name;
    si.protocol = proto;
    // strange kludge here ...
    // if protocol is tcp or tls, it defaults to 0
    int default_value = -1;
    if (si.protocol != null) {
        if (si.protocol.equals("tcp") || si.protocol.equals("tls")) {
            default_value = 0;
        }
    }
    si.port = props.getIntProperty(SERVICE_PREFIX + name + "." + proto + ".port", default_value);
    if (si.port == 0) {
        si.dynamicPort = true;
    } else {
        si.dynamicPort = false;
    }
    si.minThreads = props.getIntProperty(SERVICE_PREFIX + name + ".min_threads");
    si.maxThreads = props.getIntProperty(SERVICE_PREFIX + name + ".max_threads");
    si.type = sm.getServiceType(name);
    Service service = sm.getService(name);
    if (service != null) {
        si.nConnections = cm.getNumConnections(service);
        si.state = service.getState();
        if (service instanceof IMQService) {
            IMQService ss = (IMQService) service;
            si.currentThreads = ss.getActiveThreadpool();
            si.minThreads = ss.getMinThreadpool();
            si.maxThreads = ss.getMaxThreadpool();
            // port number that is acutally being used
            if (si.port == 0 && ss.getProtocol() != null) {
                si.port = ss.getProtocol().getLocalPort();
            }
        }
        if (mm != null) {
            si.metrics = mm.getMetricCounters(name);
        } else {
            si.metrics = null;
        }
    } else {
        // Service is not intitialized
        si.state = ServiceState.UNKNOWN;
    }
    return si;
}
Also used : ServiceInfo(com.sun.messaging.jmq.util.admin.ServiceInfo) MetricManager(com.sun.messaging.jmq.jmsserver.service.MetricManager) ConnectionManager(com.sun.messaging.jmq.jmsserver.service.ConnectionManager) ServiceManager(com.sun.messaging.jmq.jmsserver.service.ServiceManager) IMQService(com.sun.messaging.jmq.jmsserver.service.imq.IMQService) Service(com.sun.messaging.jmq.jmsserver.service.Service) IMQService(com.sun.messaging.jmq.jmsserver.service.imq.IMQService)

Aggregations

ServiceInfo (com.sun.messaging.jmq.util.admin.ServiceInfo)27 BrokerAdmin (com.sun.messaging.jmq.admin.bkrutil.BrokerAdmin)9 BrokerAdminException (com.sun.messaging.jmq.admin.bkrutil.BrokerAdminException)9 MetricCounters (com.sun.messaging.jmq.util.MetricCounters)9 Enumeration (java.util.Enumeration)9 Vector (java.util.Vector)9 SizeString (com.sun.messaging.jmq.util.SizeString)5 DestinationInfo (com.sun.messaging.jmq.util.admin.DestinationInfo)4 Properties (java.util.Properties)4 Service (com.sun.messaging.jmq.jmsserver.service.Service)2 ServiceManager (com.sun.messaging.jmq.jmsserver.service.ServiceManager)2 IMQService (com.sun.messaging.jmq.jmsserver.service.imq.IMQService)2 DurableInfo (com.sun.messaging.jmq.util.admin.DurableInfo)2 HashMap (java.util.HashMap)2 Hashtable (java.util.Hashtable)2 Iterator (java.util.Iterator)2 List (java.util.List)2 HAMonitorService (com.sun.messaging.jmq.jmsserver.cluster.api.ha.HAMonitorService)1 ConnectionManager (com.sun.messaging.jmq.jmsserver.service.ConnectionManager)1 MetricManager (com.sun.messaging.jmq.jmsserver.service.MetricManager)1