【问题标题】:Failed to allocate a JMS connection Payara and Websphere MQ未能分配 JMS 连接 Payara 和 Websphere MQ
【发布时间】:2020-03-13 20:54:11
【问题描述】:

[WebSphere MQ 安装子目录]

1我使用 IBM 网站以下页面上的说明将 IBM 资源适配器安装到 Payara (Glassfish) 服务器: https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q121520_.htm

但是,当我尝试使用 ping 选项测试连接器连接池时,出现以下错误: '对于 jms/ivt/IVTCF-Connection-Pool 的 Ping 连接池失败。 MQJCA1011:分配 JMS 连接失败。,错误代码:MQJCA1011 请查看 server.log 了解更多详细信息。'

我正在运行 Payara Server 4.1.2.181 并尝试连接到 IBM WebSphere MQ Explorer 版本:8.0.0.5。以下是我正在使用的 domain.xml 文件中的相关连接详细信息:

<connector-connection-pool resource-adapter-name="wmq.jmsra" max-pool-size="250" ping="true" steady-pool-size="1" name="jms/ivt/IVTCF-Connection-Pool" connection-definition-name="javax.jms.ConnectionFactory">
      <property name="transportType" value="CLIENT"></property>
      <property name="queueManager" value="QM"></property>
      <property name="channel" value="SYSTEM.DEF.SVRCONN"></property>
      <property name="port" value="1418"></property>
      <property name="hostName" value="localhost"></property>
    </connector-connection-pool>
    <connector-resource pool-name="jms/ivt/IVTCF-Connection-Pool" jndi-name="IVTCF"></connector-resource>
    <admin-object-resource res-adapter="wmq.jmsra" res-type="javax.jms.Queue" jndi-name="IVTQueue" class-name="com.ibm.mq.connector.outbound.MQQueueProxy">
      <property name="baseQueueManagerName" value="QM"></property>
      <property name="name" value="IVTQueue"></property>
      <property name="CCSID" value="1208"></property>
      <property name="failIfQuiesce" value="true"></property>
      <property name="messageBodyStyle" value="UNSPECIFIED"></property>
      <property name="readAheadClosePolicy" value="ALL"></property>
      <property name="encoding" value="NATIVE"></property>
      <property name="priority" value="APP"></property>
      <property name="putAsyncAllowed" value="DESTINATION"></property>
      <property name="readAheadAllowed" value="DESTINATION"></property>
      <property name="persistence" value="APP"></property>
      <property name="targetClient" value="JMS"></property>
      <property name="expiry" value="APP"></property>
    </admin-object-resource>

【问题讨论】:

  • Please check the server.log for more details. 好的,有详细信息吗?您的队列管理器与 Payara 在同一主机上运行,​​使用端口 1418?
  • 您确定您正确地遵循了该教程吗?例如。您已指定属性hostName,但在链接教程中我只能看到host
  • 是的,我故意将端口设置为 1418,因为在端口 1414 上运行了另一个队列管理器。是的,该属性应该是 hostName 而不是 host。
  • server.log 文件中记录的唯一内容是:[2019-11-18T12:47:26.599+0200] [Payara 4.1] [SEVERE] [] [org.glassfish.admingui] [ tid: _ThreadID=273 _ThreadName=admin-thread-pool::admin-listener(18)] [timeMillis: 1574074046599] [levelValue: 1000] [[ RestResponse.getResponse() 失败。端点 = 'localhost:4848/management/domain/resources/…'; attrs = '{id=jms%2Fivt%2FIVTCF-Connection-Pool}']]
  • 队列管理器的错误日志文件AMQERR01.LOG是什么?

标签: glassfish ibm-mq payara


【解决方案1】:
<property name="queueManager" value="QM"></property>
<property name="channel" value="SYSTEM.DEF.SVRCONN"></property>
<property name="port" value="1418"></property>
<property name="hostName" value="localhost"></property>

您是否有一个名为“QM”的本地队列?您正在使用“localhost”,那么它是否在您的本地 PC 上运行?您是否将 MQ 侦听器配置为使用端口 #1418?

最后,不要使用“SYSTEM.DEF.SVRCONN”。创建一个频道供您自己使用。即“TEST.CHL”。此外,您可能会被 CHLAUTH 规则阻止使用 SYSTEM.* 频道。

【讨论】:

  • 我有一个名为 QM 的 queueManager,我在我的 PC 上本地运行所有内容。我什至尝试将主机名从“localhost”更改为“127.0.0.1”。我正在根据 IBM 网页的说明使用该特定频道。将检查 CHLAUTH 规则。
  • @user5822870:由于您有一个本地队列管理器,因此必须有队列管理器错误文件。既然你说的是PC,我假设是Windows,所以请看C:\ProgramData\IBM\MQ\qmgrs\QM\errors\AMQERR01.LOG
  • @DanielSteinmann 我正在尝试添加图像以显示 WebSphere MQ 子文件夹中的子目录,但无法在评论中显示。它不包含 qmgrs 子文件夹。
【解决方案2】:

正如@Roger 所强调的那样,我的问题是频道被 CHLAUTH 规则阻止了。我通过在 IBM 集成控制台上使用以下命令禁用通道授权来解决此问题:

更改 QMGR CHLAUTH(已禁用) 更改 AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(无) 刷新安全类型(CONNAUTH)

【讨论】:

  • 不建议禁用安全性,您可以按照 Roger 的建议定义一个新通道来使用而不是 SYSTEM 通道(也不推荐),然后您就不需要禁用 CHLAUTH 和传递用户名和密码进行身份验证,这样您就不需要禁用 CONNAUTH。
猜你喜欢
  • 2015-07-08
  • 2014-09-19
  • 2017-02-03
  • 1970-01-01
  • 2013-05-03
  • 2013-01-09
  • 1970-01-01
  • 2010-11-24
  • 2014-07-22
相关资源
最近更新 更多