IIB 收集器节点和交易
IIB Collector Node and transactions
我在消息流中使用收集器节点。它被配置为收集 50 条消息或等待 30 秒。在负载测试下,Websphere MQ 有时会说检测到一个 long-运行 事务,并且 pid 与应用程序执行组的 pid 相对应。问题是:收集器节点是否有可能在等待消息或超时到期时不提交其内部事务?
每当您将任何节点(根据 IBM 文档符合条件的节点)配置为在事务下工作时,它们在工作单元完成之前不会提交。在您的情况下,由于在一个工作单元中请求了 50 条消息(如果在 30 秒内到达),一旦成功处理了所有 50 条消息,具有收集器节点和该流中所有其他节点的消息流就会提交。在此期间,队列管理器必须在其日志中维护这种飞行中状态,我之前已经说过,这必须增加。因此,无论使用哪个节点,任何大型工作单元都会导致此问题
由于您的问题涉及 MQ 长 运行 事务,请确保您有足够的 MQ 日志 space 供队列管理器处理事务。
增加MQ日志space到下面路径增加主从号
==> IBM\WebSphere MQ\qmgrs\QMNAME\qm.ini
以下是您要增加的内容。默认情况下它是 3 和 2。确保您的光盘上有 space 到您要增加到的任何数字。 qm.ini 文件更新后重新启动队列管理器。
Log:
LogPrimaryFiles=3
LogSecondaryFiles=2
Link 到 MQ 配置:
https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.con.doc/q018710_.htm
希望这对您有所帮助。
MQInput 节点是指定事务性的地方。这在 IIB v10 KC 页面 Developing integration solutions > Developing message flows > Message flow behavior > Changing message flow behavior > Configuring transactionality for message flows > Configuring MQ nodes for transactions
中有描述
- If you set the property to Yes (the default option): if a transaction is not already inflight, the node starts a transaction.
收集器节点在超时或达到计数之前不会提交。请参阅 IIB v10 KC 页面 Reference > Message flow development > Built-in nodes > Collector node
All input messages that are received under sync point from a transaction or thread by the Collector node are stored in internal queues. Storing the input messages under sync point ensures that the messages remain in a consistent state for the outgoing thread to process; such messages are available only at the end of the transaction or thread that propagates the input messages.
A new transaction is created when a message collection is complete, and is propagated to the next node.
我在消息流中使用收集器节点。它被配置为收集 50 条消息或等待 30 秒。在负载测试下,Websphere MQ 有时会说检测到一个 long-运行 事务,并且 pid 与应用程序执行组的 pid 相对应。问题是:收集器节点是否有可能在等待消息或超时到期时不提交其内部事务?
每当您将任何节点(根据 IBM 文档符合条件的节点)配置为在事务下工作时,它们在工作单元完成之前不会提交。在您的情况下,由于在一个工作单元中请求了 50 条消息(如果在 30 秒内到达),一旦成功处理了所有 50 条消息,具有收集器节点和该流中所有其他节点的消息流就会提交。在此期间,队列管理器必须在其日志中维护这种飞行中状态,我之前已经说过,这必须增加。因此,无论使用哪个节点,任何大型工作单元都会导致此问题
由于您的问题涉及 MQ 长 运行 事务,请确保您有足够的 MQ 日志 space 供队列管理器处理事务。
增加MQ日志space到下面路径增加主从号
==> IBM\WebSphere MQ\qmgrs\QMNAME\qm.ini
以下是您要增加的内容。默认情况下它是 3 和 2。确保您的光盘上有 space 到您要增加到的任何数字。 qm.ini 文件更新后重新启动队列管理器。
Log:
LogPrimaryFiles=3
LogSecondaryFiles=2
Link 到 MQ 配置: https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.con.doc/q018710_.htm
希望这对您有所帮助。
MQInput 节点是指定事务性的地方。这在 IIB v10 KC 页面 Developing integration solutions > Developing message flows > Message flow behavior > Changing message flow behavior > Configuring transactionality for message flows > Configuring MQ nodes for transactions
中有描述
- If you set the property to Yes (the default option): if a transaction is not already inflight, the node starts a transaction.
收集器节点在超时或达到计数之前不会提交。请参阅 IIB v10 KC 页面 Reference > Message flow development > Built-in nodes > Collector node
All input messages that are received under sync point from a transaction or thread by the Collector node are stored in internal queues. Storing the input messages under sync point ensures that the messages remain in a consistent state for the outgoing thread to process; such messages are available only at the end of the transaction or thread that propagates the input messages.
A new transaction is created when a message collection is complete, and is propagated to the next node.