【问题标题】:Spring Integration Aggregation ErrorSpring集成聚合错误
【发布时间】:2016-09-12 04:31:02
【问题描述】:

我有一个 spring 集成实现,我有两个客户端订阅者在听同一个 JMS 主题。我在两个实现中都使用 JDBC 消息存储(不同的地区)来保存传入的消息。处理数据时出现异常:

  org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0

我知道这是 Jira 问题:https://jira.spring.io/browse/INT-2912

现在我无法升级 Spring 版本。我无法理解解决方法“解决方法是始终使用不同的 groupKey 或为每个消息存储使用单独的表。我们还需要向 INT_GROUP_TO_MESSAGE 添加一个 REGION 列。”

如何创建不同的 groupKey?

我的实现如下:

<bean
  id="jdbcMessageStore"
  class="org.springframework.integration.jdbc.JdbcMessageStore"
  p:dataSource-ref="datasource"
  p:region="REPORTS"/>  

<si:aggregator 
        send-partial-result-on-expiry="false" 
        message-store="jdbcMessageStore" 
        discard-channel="discardedLogger"/>

【问题讨论】:

    标签: spring jms spring-integration spring-jdbc


    【解决方案1】:

    这里提到的“groupKey”是关联策略结果;默认情况下,它只使用correlationId 标头。

    您可以使用correlation-strategy-expression="'foo' + headers['correlationId']"correlation-strategy-expression="'bar' + headers['correlationId']" 为每个应用使用不同的组密钥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多