2015-06-29 8 views

risposta

3

Sì, utilizzando runmqsc console.

Prima su un prompt di comando di marcia

runmqsc <qmgr>.

Una volta che la console si apre eseguito

dis qr<remote q> XMITQ 

per visualizzare la coda di trasmissione utilizzata dalla definizione di coda remota.

UPDATE

Un altro metodo è quello di utilizzare classi PCF.

 PCFMessageAgent pcfma = new PCFMessageAgent("QM"); 
     PCFMessage pcfCmd = new PCFMessage(MQConstants.MQCMD_INQUIRE_Q); 
     pcfCmd.addParameter(MQConstants.MQCA_Q_NAME, "Q.REMOTE"); 
     PCFMessage[] pcfResponse = pcfma.send(pcfCmd); 
     String xmitQName = (String) pcfResponse[0].getParameterValue(MQConstants.MQCA_XMIT_Q_NAME); 
     System.out.println("XmitQ name " + xmitQName); 
+0

La mia domanda riguarda modo programmatico per ottenere da dentro il mio programma Java. Il programma conosce il nome del gestore code e il nome della coda. Chiamando getQueueType() può scoprire se la coda è locale o remota. Ora, se la coda è remota, in che modo il programma trova la sua coda di trasmissione locale corrispondente? Ci sono delle chiamate API che posso usare? –

1

Quando MQ apre una coda, esegue una procedura di risoluzione dei nomi per risolvere la coda locale da aprire. Se l'app apre un QRemote, generalmente si risolve in una coda di trasmissione.

Trovare il nome della coda risolta è facile. Basta chiedere MQ per esso dopo la coda si apre correttamente:

public java.lang.String getResolvedQName()

+0

Grazie, ma purtroppo non ha funzionato. Ecco il mio codice: –

+0

Grazie, ma purtroppo non ha funzionato. Quando chiamo getResolvedType() restituisce me 1 (locale), ma getResolvedName() restituisce ancora nome della coda remota –

+0

ero in grado di ottenere il nome da getAttributeString (CMQC.MQCA_XMIT_Q_NAME, CMQC.MQ_Q_NAME_LENGTH); –