我如何设置 MQ 以便收到的每条消息都立即写入文件系统?
我有“红皮书”,但至少需要有人至少指出书中的章节或标题来弄清楚。
我们是一家.NET 商店。我已经通过 API 编写了 C# 来读取队列,目前我们使用 BizTalk MQ 适配器。我们的最终目标是将相同的消息写入文件系统中的多个目录,以“克隆”我们各种测试环境(DEV、STAGE、TRAINING 等)的提要。 BizTalk 的问题在于,当我们使用该消息时,我们同时将其映射到一条新消息,因此该消息已经更改,并且我们希望克隆原始消息,而不是变形后的消息。我们的供应商不提供 feed 的多个副本,例如,他们提供 DEV 和 PROD,但我们内部有 4 个系统。
我想我可以做一个 C# Windows 服务来做到这一点,但如果可能的话,我宁愿使用 MQ 的内置功能。
无需配置。如果消息是持久的,WMQ 会将其写入磁盘。但是,我认为这不会对您有帮助,因为它们不是作为离散消息编写的。没有要复制的磁盘文件,并且仅当复制的 QMgr 与主 QMgr 相同并且在复制期间处于脱机状态时,复制才有效。
此问题有多种解决方案,但从 WMQ V7 开始,最简单的解决方案是使用内置的 Pub/Sub 功能。这假设消息通过 QMgr 到 QMgr 通道到达并落在队列上,然后您可以在其中使用它们。
在这种情况下,可以删除队列并在主题上创建同名的别名。然后,您创建一个新队列并定义一个管理订阅,将有关该主题的消息传送到新队列中。您的应用程序从新队列中消费。
当您需要将 feed 发送到另一个 QMgr 或应用程序时,定义一个新的订阅并将其指向新的目标队列。由于这是 Pub/Sub,MQ 会根据订阅的数量复制原始消息,并且第一个应用程序及其消息不受影响。如果您需要发送的目的地无法通过 MQ 通道访问(例如,DEV 和 QA 可能未连接),您可以将消息传递到新队列,使用 QLoad from支持包 MO03 http://ibm.co/SupptPacMO03将它们写入文件,然后使用 QLoad 的另一个实例将它们加载到不同的 QMgr 上。如果你想实时移动它们,你可以设置 Q 程序支持包 MA01 http://ibm.co/SupptPacMA01将它们直接从 QMgr1 上的新订阅队列移动到 QMgr2 上的目标队列。您可以根据需要跨多个系统进行复制。
SupportPacs 主页是here http://ibm.co/SupptPacs.
如果您只使用红皮书,您可能想看看信息中心。请务必使用与您正在使用的 WMQ 版本相匹配的信息中心。
- WMQ V7.0 信息中心 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp
- WMQ V7.1 信息中心 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r1/index.jsp
- WMQ V7.5 信息中心 http://pic.dhe.ibm.com/infocenter/wmqv7/v7r5/index.jsp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)