在我的应用程序中,我将消息发送到Websphere MQ队列。在应用程序中,用户可以灵活地在消息中设置用户ID。但是我的问题是,因为参数在我的应用程序中是可配置的,如果用户没有设置它,那么将从哪里获取值?
我已经浏览了以下链接,但是如果未在应用程序级别设置,则无法确定将为用户ID设置的值。
答案 0 :(得分:9)
队列管理器将MQMD.UserIdentifier字段设置为与放置消息的连接(hConn)关联的用户ID。您可以通过查看DISPLAY CONN或MQ Explorer中的Applications ...显示来查看此用户ID。
如果您的应用程序使用本地绑定运行,也就是说,它与队列管理器位于同一台计算机上,并且选择不来使用套接字,那么队列管理器将使用该用户ID discover是运行应用程序进程的用户标识。
如果您的应用程序使用客户端绑定运行,也就是说,它正在使用队列管理器的网络连接,那么队列管理器将使用的用户ID是分配给通道连接的MCAUSER的用户ID,可以是由CHLAUTH规则或安全出口设置,或从客户端等流出。
如果您的应用程序要在消息的MQMD中设置用户ID,那么应用程序必须告诉队列管理器它将执行此操作,或者MQMD.UserIdentifier字段中的任何内容将覆盖上述内容。要告诉队列管理器它要执行此操作,应用程序在打开队列MQOO_SET_IDENTITY_CONTEXT
时以及何时放入消息MQPMO_SET_IDENTITY_CONTEXT
时必须使用其他选项。开放选项还要求您在使用+setid
setmqaut
进一步阅读: