2017-04-20 6 views
0

MQ를 처음 사용하고 컴퓨터에서 구성하려고합니다. 요구 사항은 MQ에서 C# .NET 코드를 사용하여 MQ에서 XML 파일을 메시지로 보내고받을 수 있도록 MQ를 설정하는 것입니다. 내 컴퓨터에 IBM WebSphere MQ 9.0 버전을 설치했습니다. 지금까지 알고 있듯이이를 달성하려면 큐 관리자, 큐 및 채널을 최소로 설정해야합니다. 그래서 나는 이것들을 내 MQ에 넣으려고했다. 그러나 내 코드를 실행하려고하면 "MQRC_NOT_AUTHORIZED"오류가 발생합니다..Net을 사용하여 IBM WebSphere MQ에 연결하면 MQRC_NOT_AUTHORIZED가 발생합니다.

아무도 .NET을 통한 파일 공유 시나리오가 작동하도록 이러한 설정을 안내해 줄 수 있습니까? 클라이언트와 서버 모두이 경우 내 컴퓨터에서 로컬 일 것 같습니까? 대기열, 채널 등을 만들 때 선택할 수있는 매개 변수가 많아 혼란스럽고 잘못된 설정을 선택했을 것입니다.

using IBM.WMQ; 
using System; 
using System.Collections; 

namespace MQTest 
{ 

class MQTest 
{ 
    public MQQueueManager ConnectMQ() 
    { 
     MQQueueManager queueManager; 

     // Setup connection information     
     Hashtable queueProperties = new Hashtable(); 
     queueProperties[MQC.HOST_NAME_PROPERTY] = "localhost"; 
     queueProperties[MQC.PORT_PROPERTY] = 1414; 
     queueProperties[MQC.CHANNEL_PROPERTY] = "QM._TEST.SVRCONN"; 

     try 
     { 
      // Attempt the connection 
      queueManager = new MQQueueManager("QM_TEST", queueProperties); 
      Console.WriteLine("Connected Successfully"); 
     } 
     catch (MQException mexc) 
     { 
      // TODO: Setup other exception handling 
      throw new Exception(mexc.Message 
         + " ReasonCode: " + mexc.ReasonCode 
         + mexc.StackTrace, mexc); 
     } 

     // For now, return the queueManager to use in reading/writing messages next 
     return queueManager; 
    } 
} 
} 

그리고 여기 내 MQ 설정의 스냅 샷은 다음과 같습니다 :

대기열 관리자 Queue Manager

enter image description here

,691을 여기

내 닷넷 코드

채널 enter image description here

리스너 enter image description here

+0

오류 발생시 AMQERR01.LOG에있는 내용은 무엇입니까? – JoshMc

답변

1

AladdinMQ.LOCAL.ONE

첫째로, 혼합의 경우 MQ 오브젝트를 사용하는 것은 좋지 않다. 당신은 단지 문제를 요구하고 있습니다. 따옴표를 사용하지 않으면 MQ는 대문자 MQ 객체를 선호합니다. 따라서 대문자 MQ 객체 이름을 사용하는 것이 가장 좋습니다.

사용자 ID가 mqm 그룹에 없으면 (1) 큐 관리자에 액세스하고 (2) 큐에 액세스하려면 사용자 ID에 권한을 부여해야합니다.

그것은 '그룹'이 아닌 '사용자 아이디'로 MQ 권한을 수행하는 내기이다. 그룹이 "AladdinMQ"로 시작하는 대기열에 액세스해야한다고 가정 해 봅시다. 다음은 설정에 setmqaut 권한 명령 OAM이 권한은 다음과 같습니다 {그룹}는 사용자 아이디가 속한 그룹의 이름입니다

setmqaut -m QM_TEST -t qmgr -g {GROUP} +connect +inq +dsp 
setmqaut -m QM_TEST -n AladdinMQ.** -t queue -g {GROUP} +allmqi +dsp 

.

+0

Roger의 답변을 보완하기 위해 MQ의 거의 모든 요소 (특히 채널)에 보안 권한을 설정할 수 있습니다. 권한 부여 권한보다 우선하는 거부를 설정할 수 있습니다. 예를 들어 대기열에 대한 권한이 있지만 채널에 대한 액세스가 거부 된 경우 아무 것도 액세스 할 수 없습니다. 또한 채널에 크기 제한이있는 대용량 파일을 보내는 경우에도 유의하십시오. – Spence

+0

C# 코드를 사용하여 연결할 때 MQ에 연결하는 데 사용되는 사용자는 무엇입니까? 내 컴퓨터 로그인 사용자입니까? –

+0

이벤트 로그를보고 어떤 사용자가 사용되고 있는지 알았고 그 사용자를 mqm 그룹에 추가했습니다. 그런 다음 작업을 시작했습니다! –