用户标识
服务集成消息包含两个用户标识 - 一个系统用户标识和一个应用程序用户标识。IBM MQ 可根据服务集成消息中使用的系统用户标识来设置 IBM MQ 消息描述符 (MQMD) 的用户标识字段。使用 IBM MQ 服务器来与 IBM MQ 进行互操作时,需要进行额外处理以保留服务集成应用程序用户标识。
服务集成消息包含两个用户标识:
- 系统用户标识:通常,系统用户标识设置为生成消息的用户的标识,此标识在用户连接至总线时指定。应用程序代码不能修改消息中存储的系统用户标识。
- 应用程序用户标识:此标识与 JMSXUserID 消息属性相对应,应用程序代码可以设置此标识。
IBM MQ 可配置为根据服务集成消息中使用的系统用户标识来设置 IBM MQ 消息描述符 (MQMD) 的“用户标识”字段。但是,在 MQMD 中只有一个用于用户标识的字段。如果目标允许使用 MQRFH2 头,那么将使用 jsApiUserId 关键字把消息中包含的应用程序用户标识放到 RFH2 头的 <sib> 文件夹中。
当从 IBM MQ 服务器总线成员上的队列点或调解点接收消息时,根据相关联的 IBM MQ 服务器定义是否允许信任用户标识,将完成下列操作:
- 如果已将 IBM MQ 服务器配置为信任用户标识,那么将复制 MQMD 中的用户标识,以将其用作服务集成消息中的系统用户标识。
- 如果未将 IBM MQ 服务器配置为信任用户标识,那么会将服务集成消息中的系统用户标识设置为从其中接收该消息的 IBM MQ 服务器的名称。
请考虑配置了下列对象的示例:
- IBM MQ 服务器,QM1
- trustUserIds 属性设置为 FALSE 的 IBM MQ 服务器总线成员。
- 指定给 IBM MQ 服务器总线成员的队列类型目标 Q1。
无论如何设置服务集成消息的系统用户标识,应用程序用户标识都始终是根据 jsApiUserId RFH2 值设置的。如果由于 RFH2 头的 <sib> 文件夹未包含值对或者由于消息未包含 RFH2 头而没有“jsApiUserId”值,那么不会设置应用程序用户标识字段。
在 MQMD 消息描述符中传输安全用户标识时,用户标识的长度不能超过 12 个字符。长度超出此限制的用户标识将被截断。