2013-09-23 5 views
1

WebSphere Application Server 7에서 JMS 연결을 작성하려고하지만 JMSWMQ2013을 계속 가져 오려고합니다 (MQ 이유 코드 2035 포함). 분명히 이것은 인증 문제이며, 나는 일반적인 문제에 대한 대략적인 생각을 가지고 있으므로 seemanyothersimilarreports입니다.WAS에서 MQ로 연결할 때

채널의 정확한 구성에 대한 운영 팀의 의견을 기다리고 있습니다. 그러나 그 동안 나는 당황한 한 가지 견해를 가지고 있습니다. WebSphere의 JAAS 인증을 사용하여 사용자 ID를 제공하면 항상 JMSWMQ2013 오류가 발생합니다. 그러나 명시 적으로 userid를 createQueueConnection()에 대한 JMS 대기열 연결 팩토리 호출에 전달하면 인증 오류가 발생하지 않습니다.

솔직히 말해서, 두 기술이 일관되게 동작 할 것으로 기대했을 것입니다. JMS 큐 연결 팩토리에 대한 자격 증명을 제공하기 위해 JAAS를 사용하여 누락 된 일부 미묘한 점이 있습니까?

편집 :*=info: JMSApi=all: JMSServer=all: Messaging=all: JMS_WASTraceAdapter=all: com.ibm.mq.*=all: jmsApi=all을 사용하여 WAS에서 JMS 추적을 작동시키고 출력을 한 줄씩 비교했습니다.

JAAS를 사용하는 경우 확실히 하지 채널의 MCAUSER에 정의 된 사용자입니다 내 WAS 인스턴스가 실행중인 사용자 ID를 (반환 깊은 실제로 WMQConnection.getProcessUserId()를 호출 JmsXAQueueConnectionImpl의 창자에있는 것을 볼 수 있습니다).

매우 이상합니다 ... JAAS 인증 항목을 전혀 선택하지 않는 것 같습니다. 내 QCF는 DefaultPrincipalMapping의 매핑 구성 별칭과 함께 CLIENT 전송을 사용하고 있지만 어떤 이유로 JAAS 사용자 ID 대신 프로세스의 사용자 ID를 사용하고 있습니다.

감사합니다. 크레이그

답변

0

2035 확실히 인증 문제입니다. 연결하려는 사용자 ID가 MQ 자원에 액세스 할 수 없습니다.

과 관련하여 아래의 코멘트 :

나는 사용자 ID를 제공하기는 WebSphere의 JAAS 인증을 사용하는 경우, 난 항상 JMSWMQ2013 오류가 . 그러나 동일한 사용자 ID를 명시 적으로 JMS 큐 연결 팩토리의 호출을 createQueueConnection()로 전달하면 인증 오류가 발생하지 않습니다.

예상하신 내용이 정확합니다. 두 기법 모두 동일한 방식으로 동작해야합니다. 사용자 ID에 액세스 권한이 있으면 둘 다 연결해야하며 그렇지 않은 경우 두 가지 모두 오류가 발생해야합니다.

당신이 알지 못하는 사이에이 앱에 다른 사용자 ID를 보내고 있다는 설명 만있을 수 있습니다.

마찬가지로 사용자 ID는 "User123"이며 MQ 리소스에 대한 액세스 권한이 있습니다.

그러나 WebSphere의 JAAS 인증이 사용자 ID와 함께 도메인을 전송할 수 있습니다. 사용자 ID가 "개발자"도메인에 있다고 가정하면 보내질 사용자 ID는 "Developer \ User123"이며 리소스에 대한 액세스 권한이 없을 수 있습니다.

+0

내 이해를 확인해 주셔서 감사합니다. 사용자 ID 검사에 대한 생각을 바탕으로 원래 질문을 업데이트하여 좀 더 자세한 정보를 제공했습니다. JAAS 자격 증명이 무시되고있는 것처럼 보입니다. –

0

OS의 관리자로 IBM WebSphere MQ Explorer를 실행하십시오. 큐 관리자 등록 정보 (메뉴 링크/연결 또는 그와 같은 smth)에서 채널의 식별 레코드를 비활성화합니다.

관련 문제