クライアントから送信されたメッセージをデータベースに永続化するためにSpring Integration 2.1を使用しています。
カスタム アダプタによって埋められるキューがあります。構成されたサービスアクティベーターは、このキューをポーリングし、Spring 管理の @Repository Bean にメッセージをリリースします。すべてのエラーはエラー チャネルにキャプチャされ、サービスによって処理されます。構成はこれまでのところ正常に機能します。
私の懸念は、データベースが利用できない場合、サービスアクティベーターがキューからのすべての着信メッセージをポーリングし、それらをエラーチャネルに入れることです。たとえばテストクエリを送信するなどして、データベースが明らかに利用できない場合に、サービスアクティベーターがメッセージをポーリングするのを防ぐ方法はありますか?
私の構成:
<int:channel id="inChannel">
<int:queue />
</int:channel>
<bean id="service" class="some.service.Service" />
<int:service-activator ref="service"
method="write" input-channel="inChannel">
<int:poller fixed-rate="100" task-executor="srvTaskExecutor"
receive-timeout="90" error-channel="errChannel" />
</int:service-activator>
<task:executor id="srvTaskExecutor" pool-size="2-10"
queue-capacity="0" rejection-policy="DISCARD" />
<int:channel id="errChannel" />
<int:service-activator input-channel="errChannel"
ref="errorService" method="write"/>
よろしく。