SSIS-RabbitMQ源缺少消息(金山软件)

SSIS-RabbitMQ源缺少消息(金山软件),ssis,rabbitmq,kingswaysoft,Ssis,Rabbitmq,Kingswaysoft,我将SSIS包与Kingsway的RabbitMQ组件一起使用,从队列加载消息时遇到一些奇怪的行为。我平均每天处理2500条消息,在一些罕见的情况下,单个消息似乎“丢失”(我的客户告诉我,他们已将特定消息插入队列,但它没有显示在我的一端) 我对从队列接收到的所有内容以及最终插入数据库的所有内容进行行计数-这些计数匹配,因此我相当确定在处理过程中不会丢失任何内容 我还将处理过程中的任何错误重新路由到错误表,这样就不会因为错误内容而丢失任何消息。 唯一不提供重新路由错误可能性的组件是RabbitMQ

我将SSIS包与Kingsway的RabbitMQ组件一起使用,从队列加载消息时遇到一些奇怪的行为。我平均每天处理2500条消息,在一些罕见的情况下,单个消息似乎“丢失”(我的客户告诉我,他们已将特定消息插入队列,但它没有显示在我的一端)

我对从队列接收到的所有内容以及最终插入数据库的所有内容进行行计数-这些计数匹配,因此我相当确定在处理过程中不会丢失任何内容

我还将处理过程中的任何错误重新路由到错误表,这样就不会因为错误内容而丢失任何消息。 唯一不提供重新路由错误可能性的组件是RabbitMQ源(RabbitMQ目的地提供),因此我无法检查消息是否由于某些原因在极少数情况下被丢弃

这种行为似乎在所有消息中的0.005%是随机发生的

是否有人遇到过类似的问题,或者可以向我指出任何方向以查找可能的错误

组件的相关设置包括:

RMQ连接管理器:

RMQ来源:

编辑:

加载成功后,将接收所有消息。消息丢失时,不会为该批传输任何消息。例如:没有三分之二的消息被传输的情况。发生错误时,传输了3封邮件中的0封。队列中的消息仍会得到确认,不会在下一批中传输

更新:
Kingsway提供了一个更新版本,我将试用。

我从Kingsway支持团队那里收到了一个新版本。经过一周的测试,问题似乎已经解决。

我从Kingsway支持团队那里收到了一个新版本。经过一周的测试,问题似乎已经解决。

下游管道组件是否没有处理消息?如果您使用我们的任何目标组件,我们通常支持将错误行重定向到错误输出的选项,以用于日志记录或任何目的。通过这种方式,您可以跟踪在处理目标组件中的行时是否发生错误。我在包中的每个下游组件上使用错误重定向-没有消息被重定向到相应的错误表。我还在包中使用了一些SQL任务,但是这些任务上的任何错误都会导致包失败。行/消息计数的差异不会出现在包本身中(我从队列中获得并最终插入到表中的所有数据的计数->我处理并插入我收到的所有数据)。消息生成器在队列中插入的内容与我从队列中接收到的内容之间存在差异。在消息发送到队列与我们的软件能够拾取消息之间可能会有一点延迟。你考虑过了吗?是的,我考虑过。如果存在延迟,则应在下一次运行包时发送消息。我现在已经能够验证昨晚的一个实例,当一个单独的c#使用者在队列中检测到2条消息,但RMQ源组件接收到0条消息时。编辑:我已经缩小了问题的范围:从队列加载消息的作业每5分钟运行一次。似乎在加载消息时,所有消息都已加载。在缺少消息的情况下,将加载0条消息,但正在确认队列中的任何现有消息。嗨,Stephan,我们已经确定这可能与RabbitMQ接收方法的设计有关。我们希望提供一个不同的选择,你可以试一试。根据RabbitMQ文档,我们的新选项应该可以正常工作,没有任何差异。再说一次,这是一种API行为,它不是我们的编码问题或其他性质的问题。请通过电子邮件联系我们,了解我们希望在未来几天内提供的即将到来的临时构建。是否下游管道组件未处理该消息?如果您使用我们的任何目标组件,我们通常支持将错误行重定向到错误输出的选项,以用于日志记录或任何目的。通过这种方式,您可以跟踪在处理目标组件中的行时是否发生错误。我在包中的每个下游组件上使用错误重定向-没有消息被重定向到相应的错误表。我还在包中使用了一些SQL任务,但是这些任务上的任何错误都会导致包失败。行/消息计数的差异不会出现在包本身中(我从队列中获得并最终插入到表中的所有数据的计数->我处理并插入我收到的所有数据)。消息生成器在队列中插入的内容与我从队列中接收到的内容之间存在差异。在消息发送到队列与我们的软件能够拾取消息之间可能会有一点延迟。你考虑过了吗?是的,我考虑过。如果存在延迟,则应在下一次运行包时发送消息。我现在已经能够验证昨晚的一个实例,当一个单独的c#使用者在队列中检测到2条消息,但RMQ源组件接收到0条消息时。编辑:我已经缩小了问题的范围:从队列加载消息的作业每5分钟运行一次。似乎在加载消息时,所有消息都已加载。在缺少消息的情况下,将加载0条消息,但正在确认队列中的任何现有消息。嗨,Stephan,我们已经确定这可能与RabbitMQ接收方法的设计有关。我们希望提供一个不同的选择,你可以试一试。根据RabbitMQ文档,我们的新选项