Mule smtp outbound で、サーバーとの接続障害
Mule ESB で、qmail サーバーに、メール送信 outbound で、接続エラーが発生。
qmail サーバー側で、アイドルコネクションを切断しているのを、smtp コネクタがうまく対応できない。
接続があると思って送信するので、SMTPSendFailedException 例外発生。(そのメッセージはロスト)
ほんとうは、ちゃんと、Retry ポリシーを組み込むべきだろうけど、とりあえず、例外処理用のルーターを使って、お手軽リトライを設定。
... <outbound> <exception-based-router> <smtp:outbound-endpoint host="localhost" port="25" /> <smtp:outbound-endpoint host="localhost" port="25" /> </exception-based-router> </outbound> ...
これで、例外発生→再接続→送信OK になる。
後で、ちゃんとリトライポリシー組み込むこと。
Mule ESB は、大量のメッセージ処理を想定しているから、コネクションは、はりっぱなし、という思想なんだろうなあ。
たしかに、常時、大量のメッセージが流れている場合は、それでいいんだけど、一時間に数件あるかないか、というイベントもあるわけで、その場合、この smtp コネクタの動作は、具合が悪い。