use of com.sun.messaging.jmq.jmsserver.service.ConnectionManager in project openmq by eclipse-ee4j.
the class DestroyConnectionsHandler 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() + ": " + "DestroyConnections: " + cmd_props);
}
ConnectionManager cm = Globals.getConnectionManager();
// String serviceName = (String)cmd_props.get(MessageType.JMQ_SERVICE_NAME);
Long cxnId = (Long) cmd_props.get(MessageType.JMQ_CONNECTION_ID);
int status = Status.OK;
String errMsg = null;
HAMonitorService hamonitor = Globals.getHAMonitorService();
if (hamonitor != null && hamonitor.inTakeover()) {
status = Status.ERROR;
errMsg = rb.getString(rb.E_CANNOT_PROCEED_TAKEOVER_IN_PROCESS);
logger.log(Logger.ERROR, this.getClass().getName() + ": " + errMsg);
}
if (status == Status.OK) {
IMQConnection cxn = null;
if (cxnId != null) {
logger.log(Logger.INFO, BrokerResources.I_DESTROY_CXN, String.valueOf(cxnId.longValue()));
// Get info for one connection
cxn = (IMQConnection) cm.getConnection(new ConnectionUID(cxnId.longValue()));
if (cxn != null) {
if (DEBUG) {
cxn.dump();
}
cxn.destroyConnection(true, GoodbyeReason.ADMIN_KILLED_CON, Globals.getBrokerResources().getKString(BrokerResources.M_ADMIN_REQ_CLOSE));
} else {
status = Status.NOT_FOUND;
errMsg = rb.getString(rb.E_NO_SUCH_CONNECTION, String.valueOf(cxnId.longValue()));
}
}
}
// Send reply
Packet reply = new Packet(con.useDirectBuffers());
reply.setPacketType(PacketType.OBJECT_MESSAGE);
setProperties(reply, MessageType.DESTROY_CONNECTION_REPLY, status, errMsg);
parent.sendReply(con, cmd_msg, reply);
return true;
}
use of com.sun.messaging.jmq.jmsserver.service.ConnectionManager in project openmq by eclipse-ee4j.
the class GetConnectionsHandler 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() + ": " + "GetConnections: " + cmd_props);
}
ConnectionManager cm = Globals.getConnectionManager();
String serviceName = (String) cmd_props.get(MessageType.JMQ_SERVICE_NAME);
Long cxnId = (Long) cmd_props.get(MessageType.JMQ_CONNECTION_ID);
int status = Status.OK;
String errMsg = null;
Vector v = new Vector();
Service s = null;
if (serviceName != null) {
s = Globals.getServiceManager().getService(serviceName);
if (s == null) {
status = Status.NOT_FOUND;
errMsg = rb.getString(rb.X_NO_SUCH_SERVICE, serviceName);
}
}
if (status == Status.OK) {
ConnectionInfo cxnInfo = null;
IMQConnection cxn = null;
if (cxnId != null) {
// Get info for one connection
cxn = (IMQConnection) cm.getConnection(new ConnectionUID(cxnId.longValue()));
if (cxn != null) {
if (DEBUG) {
cxn.dump();
}
cxnInfo = cxn.getConnectionInfo();
v.add(getConnectionInfoHashtable(cxnInfo));
} else {
status = Status.NOT_FOUND;
errMsg = rb.getString(rb.E_NO_SUCH_CONNECTION, String.valueOf(cxnId.longValue()));
}
} else {
// Get info for all connections on a service
List connections = cm.getConnectionList(s);
Iterator itr = connections.iterator();
while (itr.hasNext()) {
cxn = (IMQConnection) itr.next();
cxnInfo = cxn.getConnectionInfo();
v.add(getConnectionInfoHashtable(cxnInfo));
}
}
}
// Send reply
Packet reply = new Packet(con.useDirectBuffers());
reply.setPacketType(PacketType.OBJECT_MESSAGE);
setProperties(reply, MessageType.GET_CONNECTIONS_REPLY, status, errMsg);
setBodyObject(reply, v);
parent.sendReply(con, cmd_msg, reply);
return true;
}
Aggregations