2015-06-29 10 views

Odpowiedz

3

Tak, używając runmqsc konsolę.

pierwszy na metę wiersza polecenia

runmqsc <qmgr>.

Gdy konsola otwiera uruchomić

dis qr<remote q> XMITQ 

aby wyświetlić kolejkę nadawczą używany przez zdalny definicji kolejki.

UPDATE

Inną metodą jest użycie klasy 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

Moje pytanie jest o programowym sposób, aby uzyskać ją od wewnątrz mojego programu Java. Program zna nazwę menedżera kolejek i nazwę kolejki. Przez wywołanie metody getQueueType() można sprawdzić, czy kolejka jest lokalna czy zdalna. Teraz, jeśli kolejka jest zdalna, w jaki sposób program znajduje odpowiadającą mu lokalną kolejkę transmisji? Czy można używać wywołań interfejsu API? –

1

Kiedy MQ otwiera kolejkę to uruchamia proces rozpoznawania nazw do rozwiązania których lokalna kolejka otworzyć. Jeśli aplikacja otwiera QRemote, zwykle odpowiada kolejce transmisji.

Znajdowanie nazwy rozwiązanej kolejki jest łatwe. Wystarczy zapytać MQ dla niego po kolejka zostanie pomyślnie otwarty:

public java.lang.String getResolvedQName()

+0

Dzięki, ale niestety to nie zadziałało. Oto mój kod: –

+0

Dzięki, ale niestety to nie zadziałało. Kiedy wołam getResolvedType() zwraca mi 1 (lokalny), ale getResolvedName() nadal zwraca nazwę zdalnej kolejki –

+0

Udało mi się uzyskać nazwę przez getAttributeString (CMQC.MQCA_XMIT_Q_NAME, CMQC.MQ_Q_NAME_LENGTH); –

Powiązane problemy