broker.sendGetDestinationsMessage(destName, destTypeMask);
Vector dest = broker.receiveGetDestinationsReplyMessage();
if ((dest != null) && (dest.size() == 1)) {
Enumeration thisEnum = dest.elements();
DestinationInfo dInfo = (DestinationInfo)thisEnum.nextElement();
BrokerCmdPrinter bcp = new BrokerCmdPrinter(2, 4);
String[] row = new String[2];
bcp.setSortNeeded(false);
/*
* Basic info - name/type/state etc.
*/
row[0] = ar.getString(ar.I_JMQCMD_DST_NAME);
row[1] = dInfo.name;
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_TYPE);
row[1] = BrokerAdminUtil.getDestinationType(dInfo.type);
// If the destination is temporary, indicate so.
if (DestType.isTemporary(dInfo.type))
row[1] = row[1] + " ("
+ ar.getString(ar.I_TEMPORARY)
+ ")";
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_STATE);
//row[1] = DestState.toString(dInfo.destState);
row[1] = BrokerAdminUtil.getDestinationState(dInfo.destState);
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_CREATED_ADMIN);
if (dInfo.autocreated) {
row[1] = Boolean.FALSE.toString();
} else {
row[1] = Boolean.TRUE.toString();
}
bcp.add(row);
row[0] = "";
row[1] = "";
bcp.add(row);
/*
* 'Current' numbers
*/
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_MSG);
row[1] = "";
bcp.add(row);
String indent = " ";
row[0] = indent + ar.getString(ar.I_JMQCMD_DST_ACTUAL);
row[1] = new Integer(dInfo.nMessages - dInfo.nTxnMessages).toString();
bcp.add(row);
row[0] = indent + ar.getString(ar.I_JMQCMD_DST_REMOTE);
row[1] = new Integer(dInfo.nRemoteMessages).toString();
bcp.add(row);
row[0] = indent + ar.getString(ar.I_JMQCMD_DST_HELD_IN_TXN);
row[1] = new Integer(dInfo.nTxnMessages).toString();
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_MSG_BYTES);
row[1] = "";
bcp.add(row);
row[0] = indent + ar.getString(ar.I_JMQCMD_DST_ACTUAL);
row[1] = new Long(dInfo.nMessageBytes - dInfo.nTxnMessageBytes).toString();
bcp.add(row);
row[0] = indent + ar.getString(ar.I_JMQCMD_DST_REMOTE);
row[1] = new Long(dInfo.nRemoteMessageBytes).toString();
bcp.add(row);
row[0] = indent + ar.getString(ar.I_JMQCMD_DST_HELD_IN_TXN);
row[1] = new Long(dInfo.nTxnMessageBytes).toString();
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_PRODUCERS);
row[1] = new Integer(dInfo.nProducers).toString();
bcp.add(row);
if (DestType.isQueue(destTypeMask)) {
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_ACTIVE_CONS);
row[1] = new Integer(dInfo.naConsumers).toString();
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_FAILOVER_CONS);
row[1] = new Integer(dInfo.nfConsumers).toString();
bcp.add(row);
} else {
Hashtable h = dInfo.producerWildcards;
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_NUM_PRODUCERS_WILDCARD);
row[1] = Integer.toString(getWildcardCount(h));
bcp.add(row);
/*
* The code below will print something like:
*
* foo.bar.* (2)
* bar.* (1)
*/
Enumeration keys;
if (h != null) {
keys = h.keys();
while (keys.hasMoreElements()) {
String wildcard = (String)keys.nextElement();
Integer val = (Integer)h.get(wildcard);
row[0] = indent + wildcard + " (" + val + ")";
row[1] = "";
bcp.add(row);
}
}
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_CONS);
row[1] = new Integer(dInfo.nConsumers).toString();
bcp.add(row);
h = dInfo.consumerWildcards;
row[0] = ar.getString(ar.I_JMQCMD_DST_CUR_NUM_CONSUMERS_WILDCARD);
row[1] = Integer.toString(getWildcardCount(h));
bcp.add(row);
if (h != null) {
keys = h.keys();
while (keys.hasMoreElements()) {
String wildcard = (String)keys.nextElement();
Integer val = (Integer)h.get(wildcard);
row[0] = indent + wildcard + " (" + val + ")";
row[1] = "";
bcp.add(row);
}
}
}
row[0] = "";
row[1] = "";
bcp.add(row);
/*
* 'Current' numbers
*/
row[0] = ar.getString(ar.I_JMQCMD_DST_MAX_MSG_ALLOW);
row[1] = checkAndPrintUnlimitedInt(dInfo.maxMessages, zeroNegOneInt);
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_MAX_MSG_BYTES_ALLOW);
row[1] = checkAndPrintUnlimitedLong(dInfo.maxMessageBytes,
zeroNegOneLong);
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_MAX_BYTES_PER_MSG_ALLOW);
row[1] = new Long(dInfo.maxMessageSize).toString();
row[1] = checkAndPrintUnlimitedLong(dInfo.maxMessageSize,
zeroNegOneLong);
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_MAX_PRODUCERS);
row[1] = checkAndPrintUnlimitedInt(dInfo.maxProducers, -1);
bcp.add(row);
if (DestType.isQueue(destTypeMask)) {
row[0] = ar.getString(ar.I_JMQCMD_DST_MAX_ACTIVE_CONSUMER_COUNT);
row[1] = checkAndPrintUnlimitedInt(dInfo.maxActiveConsumers, -1);
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_MAX_FAILOVER_CONSUMER_COUNT);
row[1] = checkAndPrintUnlimitedInt(dInfo.maxFailoverConsumers, -1);
bcp.add(row);
}
row[0] = "";
row[1] = "";
bcp.add(row);
/*
* Other misc props
*/
row[0] = ar.getString(ar.I_JMQCMD_DST_LIMIT_BEHAVIOUR);
row[1] = DestLimitBehavior.getString(dInfo.destLimitBehavior);
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_CONS_FLOW_LIMIT);
row[1] = checkAndPrintUnlimitedInt(dInfo.maxPrefetch, -1);
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_IS_LOCAL_DEST);
if (dInfo.isDestinationLocal()) {
row[1] = Boolean.TRUE.toString();
} else {
row[1] = Boolean.FALSE.toString();
}
bcp.add(row);
if (DestType.isQueue(destTypeMask)) {
row[0] = ar.getString(ar.I_JMQCMD_DST_LOCAL_DELIVERY_PREF);
if (dInfo.destCDP == ClusterDeliveryPolicy.LOCAL_PREFERRED) {
row[1] = Boolean.TRUE.toString();
} else {
row[1] = Boolean.FALSE.toString();
}
bcp.add(row);
}
row[0] = ar.getString(ar.I_JMQCMD_DST_USE_DMQ);
if (dInfo.useDMQ()) {
row[1] = Boolean.TRUE.toString();
} else {
row[1] = Boolean.FALSE.toString();
}
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_VALIDATE_XML_SCHEMA_ENABLED);
if (dInfo.validateXMLSchemaEnabled()) {
row[1] = Boolean.TRUE.toString();
} else {
row[1] = Boolean.FALSE.toString();
}
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_XML_SCHEMA_URI_LIST);
row[1] = dInfo.XMLSchemaUriList;
bcp.add(row);
row[0] = ar.getString(ar.I_JMQCMD_DST_RELOAD_XML_SCHEMA_ON_FAILURE);
if (dInfo.reloadXMLSchemaOnFailure()) {
row[1] = Boolean.TRUE.toString();
} else {
row[1] = Boolean.FALSE.toString();
}
bcp.add(row);