我的需求是读取csv并向IBM mq发送多个xml消息。
从csv创建的xml将在单个批处理或事务中发送。原因是读取这些消息的系统不是幂等的,以防发送了一些xml消息而其余的消息失败。我需要持久化失败的xml消息,以便手动重新处理。
将是伟大的,如果有人能指出我一个功能,其中多个xml消息可以作为单个批排队。
您似乎有相互冲突的需求。
批量发送消息很容易。你把它们都放在同步点下,然后发出COMMIT
。只要消息数量不超过队列深度或事务UOW限制,就可以。
批量接收则完全是另一回事。IBM MQ具有消息分组和BIND_ON_OPEN
参数,以确保所有附属消息都到达相同的位置,并且可以对其进行解释。
另一个潜在问题来自"我需要持久化失败的xml消息以进行手动重新处理"。不确定这里的"手动再处理"是什么意思。IBM MQ将持久化消息,只要在队列上PUT
时将其标记为这样即可。当QMgr恢复后,消息将被传递。然而,这句话似乎暗示了高可用性或灾难恢复需求,以便复制消息。
所以简短的答案是在放置消息时选择持久性作为消息属性,并在两阶段提交下这样做。
更长的答案取决于对幂等性和恢复的引用实际上指的是什么。如果这里有需求,你需要在问题中添加细节。