从Java使用IBM MQ
我从java连接IBM MQ时遇到问题从Java使用IBM MQ,java,kotlin,websphere,ibm-mq,Java,Kotlin,Websphere,Ibm Mq,我从java连接IBM MQ时遇到问题 此代码 val cf: MQQueueConnectionFactory? var mqConnection: QueueConnection? = null var session: QueueSession? = null var sender: QueueSender? = null var value = "" try { cf = MQQueueConnectionFactory()
此代码
val cf: MQQueueConnectionFactory?
var mqConnection: QueueConnection? = null
var session: QueueSession? = null
var sender: QueueSender? = null
var value = ""
try {
cf = MQQueueConnectionFactory()
cf.hostName = host
cf.port = port
cf.queueManager = queueManager
cf.transportType = transport
cf.channel = channelName
cf.clientReconnectOptions = WMQConstants.WMQ_CLIENT_RECONNECT_Q_MGR
cf.clientReconnectTimeout = 3600
mqConnection = cf.createQueueConnection()
删除异常“JMSCMQ0001:WebSphere MQ调用失败,代码为
“2”(“MQCC_失败”)原因“2035”(“MQRC_未授权”)”
当我尝试创建连接时cf.createQueueConnection()
我不明白什么是问题。我使用ibmmq lib9.0.2.0版本,但此代码也不适用于7.5.0.1版本MQRC 2035意味着用户没有连接到队列管理器的适当权限。原因可在队列管理器
errors
目录中的AMQERR*.log
中找到<默认情况下启用代码>CHLAUTH。您需要添加CHLAUTH
规则。以下链接提供了有关创建/修改CHLAUTH
如果您想了解有关CHLAUTH的更多详细信息,请访问以下链接:
mqConnection=cf.createQueueConnection()
您应该/需要传递连接的用户ID和密码
i、 e
您的意思是这些操作需要在服务器端完成吗?如果这应该由我在Java代码或IBM MQ客户端中完成,那么我不知道该怎么做这些必须在队列管理器端完成,而不是在客户端完成谢谢您的建议。我会设法弄明白的!没关系,但服务所有者(IBM MQ)表示,对队列的访问不需要密码和登录。您应该让MQ管理员查看队列管理器的
AMQERR01.LOG
,以确定您收到2035
错误的原因。有几个不同的原因,解决方法取决于原因是什么。这两个答案都为两个常见原因提供了可能的解决方案。如果您可以使用队列管理器日志中的内容更新您的问题,则有人可以为您提供更具体的答案。
mqConnection = cf.createQueueConnection("myUserId", "mypwd");