をCOMMIT DBへの更新も失敗します。 DBへの更新が失敗すると、メッセージは複数回送信されます。Spring統合、JDBCを読んでAMQPメッセージを送信し、私がしようとしている
<int:channel id="output-channel" />
<int-jdbc:inbound-channel-adapter query="SELECT MAX(d) AS d FROM a" update="UPDATE a SET d=1 WHERE d=367"
channel="output-channel" data-source="dataSource">
<int:poller fixed-rate="50000" max-messages-per-poll="1">
<int:transactional transaction-manager="dataSourceTransactionManager2" />
</int:poller>
</int-jdbc:inbound-channel-adapter>
<int-amqp:outbound-channel-adapter channel="output-channel" exchange-name="nameex" amqp-template="rabbitTemplate" />
この設定でわかるのは、UPDATEの失敗時にメッセージがまったく送信されないことです。 outbound-channel-adapterの呼び出しは更新後です。
もう1つの質問 - 私はDBに何かがあることを知るたびにインバウンドチャネルアダプターをプログラムでトリガーする可能性がありますが、ポーラーを長時間待たないでください。
ありがとうございます!
jdbcインバウンドアダプタの障害に関する例外情報を貼り付けてください。 – walsh
このテストでは、テスト用に作成された更新クエリで、重複した主キーのみがスローされます。私はこれがスローされることを期待しますが、私はまた、メッセージがamqpに送られることを期待します。 –