2017-10-29 5 views
1

최근 websphere 애플리케이션 서버 v8.0.0.3이 8.5.5.8으로 마이그레이션되었습니다. IBM MQ Java API를 사용하여 하나의 타사 시스템을 MQ 서버 연결 채널을 통해 연결하는 하나의 응용 프로그램이 실행 중이었습니다.Websphere Application Server 8.5.5.8 - MQRC 2035

동일한 응용 프로그램이 v8.0.0.3에서 작동하지만 동일한 응용 프로그램이 v8.5.5.8에서 MQ와 연결되지 않습니다. 우리는 "MQRC 2035"(승인되지 않음)를 받고 있습니다.

정확한 오류 :

Could be configuarion, network or service availability issue. Root Cause: MQJE001: Completion Code '2', Reason '2035' 

"SYSTEM"사용자 (Windows 서비스)로 실행되는 응용 프로그램 서버의 모두 이전 및 최신 버전.

제 3 자 측에서 setmqauth를 추가하여 해결할 수 있습니다. 그러나 동일한 애플리케이션이 v8.5.5.8에서 작동하지 않는 이유에 대한 설명이 필요합니다.

답변

1

WAS v8.0.0.3은 IBM MQ RA v7.0.1.7과 함께 제공됩니다. WAS v8.5.5.8 은 IBM MQ RA v7.1.0.6과 함께 제공됩니다.

빈 MCAUSER가 흐르지 않도록 IBM MQ MQ의 동작이 v7.1에서 변경되었습니다. 이 내용은 IBM 기술 노트 "Changes in the default user identifier between WebSphere MQ V7.0.1 classes for JMS and WebSphere MQ V7.1 classes for JMS"에 설명되어 있습니다.

Answer

WebSphere MQ access control is based on user identifiers. There is a deliberate change in the default behaviour between the WebSphere MQ V7.0.1 classes for JMS and the WebSphere MQ V7.1 (and later) classes for JMS regarding the default user identifier flowed to the queue manager. From the WebSphere MQ V7.1 classes for JMS onwards, a non-blank user identifier is always flowed to the queue manager when creating a connection to WebSphere MQ.

타사 측는 WAS v8.0.0.3 빈 MCAUSER을 허용하는 경우, 타사 측이 통과 악화 가능성이 당신이 MQ로 연결시키는 어떤 검증되지 않은 것을 나타냅니다 관리자는 큐 관리자의 SYSTEM 큐를 포함하여 모든 큐에 대한 액세스를 제공합니다.

0

MQEnvironment에 명시 적으로 사용자 ID를 추가 한 후 문제가 해결되었습니다.

Hashtable mqht = new Hashtable(); mqht.put (CMQC.USER_ID_PROPERTY, userID);

http://www-01.ibm.com/support/docview.wss?uid=swg21138961

+0

이 여전히 당신이 그것이 MQ 관리자 사용자가되는 빈을 포함 보내는 값을 허용한다는 점에서 큐 관리자에 대한 보안 구멍을 열어 둡니다. – JoshMc