【发布时间】:2019-07-04 06:37:31
【问题描述】:
我正在使用 MQSeries 9 客户端上的 Perl MQClient::MQSeries 模块连接到 IBM MQSeries 服务器,并在 CentOS 7 系统上安装服务器。
我使用两个线程连接到队列管理器
sub connectToQueuemanager
{
my ($host, $queuemanager, $channel) = @_;
my $coption = {
'ChannelName' => $channel,
'TransportType' => 'TCP',
'ConnectionName' => $host
};
my $compcode = 0;
my $compres = 0;
my $hconn = MQCONNX ($queuemanager, {'ClientConn' => $coption}, $compcode, $compres);
}
这在第一个线程中可以正常工作,但在第二个线程中不行 - 结果我得到代码 2002(“应用程序已连接。”)。 MQSeries 版本 6 未出现此问题。
截至https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q025940_.htm,这可以通过在连接选项中设置 MQCNO_HANDLE_SHARE_NO_BLOCK 来解决。 Perl 模块 MQSeries.pm 将此列为已知常量之一,但我发现无法在 MQCONNX 连接调用中设置它。
如何在 MQCONNX 调用中设置此选项?
【问题讨论】: