Jestem nowy MQSeries i zacząłem z przekleństwami IBM WebSphere MQ. Istnieją przykłady z menedżerami kolejek MQ_APPLE
i MQ_ORANGE
. Nie mam problemu z wysyłaniem wiadomości do lokalnej lub zdalnej kolejki za pomocą MQ Explorer, ale chciałem wysłać taką wiadomość z kodu: Python lub Java. Próbowałem Pythona pymqi bibliotekę z kodem jak poniżej:Jak połączyć się z lokalną kolejką MQseries za pomocą języka Python?
import pymqi
qmgr = pymqi.QueueManager(None)
qmgr.connect('QM_APPLE')
putq = pymqi.Queue(qmgr, 'Q1')
putq.put('Hello from Python!')
ale otrzymuję błąd:
Traceback (most recent call last):
File "mq_put.py", line 4, in <module>
qmgr.connect('QM_APPLE')
File "c:\Python26\lib\site-packages\pymqi.py", line 758, in connect
raise MQMIError(rv[1], rv[2])
pymqi.MQMIError: MQI Error. Comp: 2, Reason 2540: FAILED: MQRC_UNKNOWN_CHANNEL_NAME
Istnieje QM_APPLE
menedżer kolejek z Q1
kolejki lokalnej.
Co jest nie tak z moim kodu?
chcę użyć kolejki lokalnej. AFAIK nie ma kanału. Kanał pojawia się na lekcji o wysyłaniu wiadomości w konfiguracji klient-serwer (mam też problemy z tą lekcją). Ukończyłem lekcję dotyczącą wysyłania wiadomości za pomocą lokalnych i zdalnych kolejek i chciałem zrobić to z kodu. –
Jak powiedział T.Rob, wygląda na to, że używasz modułu pymqi, który jest zbudowany w trybie klienta. Jeśli chcesz użyć powiązania (lokalny menedżer kolejek, bez kanału), musisz użyć modułu pymqi wbudowanego w tryb serwera. Sprawdź ten link: http://packages.python.org/pymqi/index.html#download-build-install W przeciwnym razie możesz po prostu utworzyć kanał w lokalnym menedżerze kolejek i użyć metody connectTCPClient, np. powyżej. – gregwhitaker
Stworzyłem kanał typu 'receiver', ale nie mogę go aktywować. Jakiego rodzaju kanał powinienem utworzyć? –