사용자 ID
서비스 통합 메시지에는 두 개의 사용자 ID(시스템 사용자 ID와 애플리케이션 사용자 ID)가 들어 있습니다. IBM MQ는 서비스 통합 메시지에 사용된 시스템 사용자 ID에서 IBM MQ 메시지 디스크립터(MQMD)의 사용자 ID 필드를 설정할 수 있습니다. IBM MQ 서버를 사용하여 IBM MQ와 상호 운용할 때 서비스 통합 애플리케이션 사용자 ID를 보존하기 위해 추가 처리가 필요합니다.
서비스 통합 메시지에는 다음 두 사용자 ID가 들어 있습니다.
- 시스템 사용자 ID: 일반적으로, 시스템 사용자 ID는 메시지를 생성한 사용자의 ID로 설정되며 사용자가 버스에 연결할 때 지정됩니다. 메시지에 저장된 시스템 사용자 ID는 애플리케이션 코드로 수정할 수 없습니다.
- 애플리케이션 사용자 ID: 이 ID는 JMSXUserID 메시지 특성에 해당하며 애플리케이션 코드가 설정할 수 있습니다.
IBM MQ는 서비스 통합 메시지에 사용된 시스템 사용자 ID에서 IBM MQ 메시지 디스크립터(MQMD)의 사용자 ID 필드를 설정하도록 구성할 수 있습니다. 그러나 MQMD에는 하나의 사용자 ID 필드만 있습니다. 대상이 MQRFH2 헤더의 사용을 허용하면, 메시지에 제공된 애플리케이션 사용자 ID가 jsApiUserId 키를 사용하여 RFH2 헤더의 <sib> 폴더에 놓입니다.
메시지가 IBM MQ 서버 버스 멤버에서 로컬화된 중개 위치 또는 큐 위치에서 수신되면 연관된 IBM MQ 서버 정의가 사용자 ID가 신뢰되도록 허용하는지 여부에 따라 다음 조치가 완료됩니다.
- IBM MQ 서버가 사용자 ID를 신뢰하도록 구성되는 경우 서비스 통합 메시지의 시스템 사용자 ID는 MQMD에 있는 사용자 ID에서 복사됩니다.
- IBM MQ 서버가 사용자 ID를 신뢰하도록 구성되지 않은 경우 서비스 통합 메시지의 시스템 사용자 ID는 메시지 발신 위치인 IBM MQ 서버의 이름으로 설정됩니다.
다음 오브젝트가 구성된 예제를 검토하십시오.
- IBM MQ 서버, QM1
- trustUserIds 속성이 FALSE로 설정된 IBM MQ 서버 버스 멤버
- IBM MQ 서버 버스 멤버에 지정된 큐 유형 대상 Q1
서비스 통합 메시지의 시스템 사용자 ID가 설정된 방식에 상관없이 애플리케이션 사용자 ID는 항상 jsApiUserId RFH2 값에서 설정됩니다. 값 쌍이 RFH2 헤더의 <sib> 폴더에 없거나 메시지에 RFH2 헤더가 없어서 사용자 ID가 제공되지 않은 경우, 이 필드는 설정되지 않습니다.
보안 사용자 ID가 MQMD 메시지 디스크립터에 전송되므로 해당 길이는 12자로 제한됩니다. 사용자 ID가 길면 여분은 잘립니다.