2010-03-29 4 views
5

저는 mqseries에 익숙하지 않고 IBM WebSphere MQ curses로 시작했습니다. MQ_APPLE W MQ_ORANGE 큐 관리자의 예가 있습니다. MQ Explorer를 사용하여 로컬 또는 원격 대기열에 메시지를 보내는 데 아무런 문제가 없지만 Python 또는 Java와 같은 메시지를 보내려했습니다. 이 같은 코드를 파이썬 pymqi 라이브러리 시도 :Python을 사용하여 로컬 MQSeries 대기열에 연결하는 방법은 무엇입니까?

import pymqi 

qmgr = pymqi.QueueManager(None) 
qmgr.connect('QM_APPLE') 

putq = pymqi.Queue(qmgr, 'Q1') 
putq.put('Hello from Python!') 

을하지만 오류가 나타납니다

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 

Q1 로컬 큐와 QM_APPLE 큐 관리자가입니다.

내 코드가 잘못되었습니다.

답변

3

오류에 따라 사용자가 리모트 큐 관리자에 연결하려고 시도했지만 로컬 큐 관리자 바인딩 메소드를 사용하여 연결중인 것 같습니다. mqi 클라이언트가 연결할 채널을 알 수 없다는 오류가 표시되기 때문에이 말을합니다. 로컬 큐 관리자 또는 리모트 큐 관리자를 사용 중인지 명확하게 설명 할 수 있습니까? 채널을 사용하여 원격 큐 관리자에 연결하기 위해 아래 코드를 붙여 넣었습니다.

import pymqi 

queue_manager = "QUEUE_MANAGER_NAME" 
channel = "SVRCONN.1" 
host = "host.domain.com" 
port = "1434" 
conn_info = "%s(%s)" % (host, port) 

qmgr = pymqi.QueueManager(None) 
qmgr.connectTCPClient(queue_manager, pymqi.cd(), channel, conn_info) 
+0

. AFAIK 채널이 없습니다. 채널은 클라이언트 - 서버 구성에서 메시지를 보내는 것에 대한 학습에서 나타납니다 (이 수업에도 문제가 있음). 로컬 큐와 원격 큐를 사용하여 메시지를 보내는 것에 대한 강의를 완료했으며 코드에서이를 수행하려고했습니다. –

+0

T.Rob이 말했듯이, 클라이언트 모드로 구축 된 pymqi 모듈을 사용하고있는 것으로 보입니다. 바인딩 연결 (로컬 큐 관리자, 채널 없음)을 사용하려면 pymqi 모듈을 서버 모드로 빌드해야합니다. 다음 링크를 확인하십시오 : http://packages.python.org/pymqi/index.html#download-build-install 그렇지 않으면 항상 로컬 대기열 관리자에 채널을 작성하고 다음과 같은 connectTCPClient 메소드를 사용하십시오. 위. – gregwhitaker

+0

'receiver'유형의 채널을 만들었지 만 활성화 할 수 없습니다. 어떤 유형의 채널을 만들어야합니까? –

2

귀하의 게시물에 파이썬 또는 자바로 실행하고 싶다고 언급되어 있습니다. 파이썬 나는 도울 수 없지만 이전 응답자는 그렇게했습니다. 자바까지, 나는 올바른 방향으로 당신을 가리킬 수 있습니다. IBM은 Java와 JMS를 모두 지원하며 각각에 대한 많은 샘플 프로그램을 제공합니다.

C : 기본적으로 이러한이 설치되어 \ 프로그램 파일 \ IBM \는 WebSphere MQ \ 도구 \ wmqjava

C : \ 프로그램 파일 \ IBM \는 WebSphere MQ \ 도구 \ 또한

I JMS 여기에 내 자신의 샘플 코드를 제공합니다 이 http://www.ibm.com/developerworks/websphere/techjournal/0610_woolf/0610_woolf.html

자바와 JMS WMQ API의 IBM의 구현에 대한 문서가 여기에 있습니다 : 내가 찾은 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaw.doc/uj10120_.htm

워드 프로세서 는 파이썬 모듈에서 클라이언트 또는 서버 WMQ 라이브러리에 링크되어야 함을 나타내며 클라이언트 연결이 연결되었음을 나타내는 것 같습니다. 이 경우 이전에 게시 된 게시글과 마찬가지로 연결 정보를 제공해야합니다. Java 및 JMS 코드는 연결 유형을 지원하므로 연결을 수행 할 필요가 없지만 적절한 연결 세부 정보를 제공해야합니다. 특히, 연결의 차이점에 장을 읽어보십시오 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaw.doc/ja11010_.htm

- T.Rob

내가 로컬 큐를 사용하려면
+0

당신 말이 맞아요. 이러한 유형의 모듈 만 미리 컴파일 된 형식으로 사용할 수 있지만 클라이언트 바인딩을 사용했습니다. 샘플에서 나는'MQSample.java'를 찾았습니다. 고맙습니다. –

관련 문제