Bom dia, galera!
Estou desenvolvendo aqui para a empresa um coletor em Java para obter status da Fila MQ, contudo algumas informações não estou conseguindo obter. Mesmo vindo na requisição que faço na fila MQ, as informações estão vindo vazias!
QueueManager queueManager;
MQQueue mqQueue;
String queue = "queue";
try {
queueManager = new QueueManager("localhost", 1415, "channel", "manager");
mqQueue = queueManager.getMQQueue(queue);
System.out.println("############# RESPONSE MQ #############");
System.out.println("IsOpen = " + queueManager.getQmgr().isOpen());
System.out.println("Current Depth = "+mqQueue.getCurrentDepth());
PCFMessage inquireQueueStatus = new PCFMessage(CMQCFC.MQCMD_INQUIRE_Q_STATUS);
PCFMessageAgent agent = new PCFMessageAgent(queueManager.getQmgr());
inquireQueueStatus.addParameter(CMQC.MQCA_Q_NAME, queue);
inquireQueueStatus.addParameter(CMQCFC.MQIACF_Q_STATUS_TYPE, CMQCFC.MQIACF_Q_STATUS);
// TODO: Caso de exemplo com mais dados que podem ser obtidos
inquireQueueStatus.addParameter(CMQCFC.MQIACF_Q_STATUS_ATTRS, new int[] {
CMQC.MQCA_Q_NAME, CMQC.MQIA_CURRENT_Q_DEPTH,
CMQCFC.MQCACF_LAST_GET_DATE, CMQCFC.MQCACF_LAST_GET_TIME,
CMQCFC.MQCACF_LAST_PUT_DATE, CMQCFC.MQCACF_LAST_PUT_TIME,
CMQCFC.MQIACF_OLDEST_MSG_AGE, CMQC.MQIA_OPEN_INPUT_COUNT,
CMQC.MQIA_OPEN_OUTPUT_COUNT, CMQCFC.MQIACF_UNCOMMITTED_MSGS,
CMQCFC.MQCACH_CHANNEL_NAME});
// inquireQueueStatus.addParameter(CMQCFC.MQIACF_Q_ATTRS, new int[] {CMQCFC.MQIACF_ALL});
PCFMessage[] resp = agent.send(inquireQueueStatus);
System.out.println(resp[0]);
// System.out.println(resp[0].getStringParameterValue(CMQCFC.MQCACH_CHANNEL_NAME));
System.out.println("############# END MQ #############");
System.out.println("############# ANOTHER TEST #############");
PCFMessage request = null ;
request = new PCFMessage (CMQCFC.MQCMD_INQUIRE_Q_STATUS);
request.addParameter (com.ibm.mq.constants.CMQC.MQCA_Q_NAME, queue);
request.addParameter (CMQCFC.MQIACF_Q_STATUS_ATTRS, CMQCFC.MQIACF_ALL);
PCFMessage [] responses = agent.send (request);
for (int i = 0; i < responses.length; i++){
String name = responses [i].getStringParameterValue (com.ibm.mq.constants.CMQC.MQCA_Q_NAME);
String pdate = (responses [i].getStringParameterValue(CMQCFC.MQCACF_LAST_PUT_DATE));
String time = (responses [i].getStringParameterValue(CMQCFC.MQCACF_LAST_GET_TIME));
int[] qtime =(responses [i].getIntListParameterValue(CMQCFC.MQIACF_Q_TIME_INDICATOR));
System.out.println (name + " time:"+qtime[0]+" date:" +pdate+" PRINTED");
System.out.println ("time 2:"+timae);
}
System.out.println("############# END ANOTHER TEST #############");
} catch (MQException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Como retorno tenho.
############# RESPONSE MQ #############
IsOpen = true
Current Depth = 3
PCFMessage:
MQCFH (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000001, ccsid: 1208, size: 36] @176392439)
MQLONG Type: 2 (0x00000002)
MQLONG StrucLength: 36 (0x00000024)
MQLONG Version: 2 (0x00000002)
MQLONG Command: 41 (0x00000029)
MQLONG MsgSeqNumber: 1 (0x00000001)
MQLONG Control: 1 (0x00000001)
MQLONG CompCode: 0 (0x00000000)
MQLONG Reason: 0 (0x00000000)
MQLONG ParameterCount: 11 (0x0000000b)
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 2016 (MQCA_Q_NAME)
MQLONG CodedCharSetId: 1208 (0x000004b8)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "QUEU "
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1103 (MQIACF_Q_STATUS_TYPE)
MQLONG Value: 1105 (0x00000451)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 3 (MQIA_CURRENT_Q_DEPTH)
MQLONG Value: 3 (0x00000003)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 17 (MQIA_OPEN_INPUT_COUNT)
MQLONG Value: 1 (0x00000001)
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 24 (0x00000018)
MQLONG Parameter: 3130 (MQCACF_LAST_GET_DATE)
MQLONG CodedCharSetId: 1208 (0x000004b8)
MQLONG StringLength: 1 (0x00000001)
MQCHAR[] String: " "
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 24 (0x00000018)
MQLONG Parameter: 3131 (MQCACF_LAST_GET_TIME)
MQLONG CodedCharSetId: 1208 (0x000004b8)
MQLONG StringLength: 1 (0x00000001)
MQCHAR[] String: " "
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 24 (0x00000018)
MQLONG Parameter: 3128 (MQCACF_LAST_PUT_DATE)
MQLONG CodedCharSetId: 1208 (0x000004b8)
MQLONG StringLength: 1 (0x00000001)
MQCHAR[] String: " "
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 24 (0x00000018)
MQLONG Parameter: 3129 (MQCACF_LAST_PUT_TIME)
MQLONG CodedCharSetId: 1208 (0x000004b8)
MQLONG StringLength: 1 (0x00000001)
MQCHAR[] String: " "
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1227 (MQIACF_OLDEST_MSG_AGE)
MQLONG Value: -1 (0xffffffff)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 18 (MQIA_OPEN_OUTPUT_COUNT)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1027 (MQIACF_UNCOMMITTED_MSGS)
MQLONG Value: 0 (0x00000000)
############# END MQ #############
############# ANOTHER TEST #############
QUEUE time:-1 date: PRINTED
time 2:
############# END ANOTHER TEST #############
Os status MQCACF_LAST_PUT_TIME, MQCACF_LAST_PUT_DATE, MQCACF_LAST_GET_TIME e MQCACF_LAST_GET_DATE estão vindo todos vazios e necessito monitorar essas informações. Há algo que precisa ser feito para obtenção desses dados?
Obrigado!