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 コネクタの動作は、具合が悪い。