gpt4 book ai didi

multithreading - MQ 是否仍然有每线程连接的限制?

转载 作者:行者123 更新时间:2023-12-03 13:19:41 30 4
gpt4 key购买 nike

上次我在愤怒中使用 MQ(v6,从内存,在 HPUX 平台上)时,存在一个限制,即无法在进程内的线程之间共享连接。

如果您尝试再做一次 MQCONN从已经连接到队列管理器的线程中,它很快就返回了先前的句柄和警告说它正在重新使用它,因此,如果您正确管理共享连接,单个线程可以与队列管理器建立许多连接同一个队列管理器有效。

但是,如果您尝试从进程中的不同线程进行连接,则会为您提供不同的连接句柄,并且会带来所有的缓慢,因为它必须经过 IPC、安全检查、运行另一个代理线程的所有繁琐程序或过程,等等。

我问这个问题的原因是,客户端已经展示了一种按需创建线程的体系结构(Windows 下的 C#),并且它们都将尝试连接到同一个队列管理器。如果相关,他们提议运行 MQ 7.5。

所有线程都将使用 XMSFactoryFactory 连接据说它提供了 MQ 连接池以提高效率,但是,如果仍然存在每线程连接的要求并且线程本身没有被池化,我担心 MQ 连接池可能没用,因为每个新线程都需要一个无论如何都是新的连接。

最佳答案

现在可以跨线程共享连接。通读这篇 link想要查询更多的信息。

XMS .NET 是 C# 语言中的 JMS 规范实现,用于与 IBM MQ 队列管理器进行通信。 XMSFactoryFactory不提供连接池。

您还应该注意,根据 JMS v1.1 规范,不应跨线程共享 JMS Session 对象及其子对象(生产者、消费者等)。

关于multithreading - MQ 是否仍然有每线程连接的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210809/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com