AxisでのTCP Connection Timeout(2)

前回からの続き。

結局Axisの実装の問題だった。結局タイムアウトを利用しているSocketの生成、HTTP通信の場合は

org.apache.axis.components.net.DefaultSocketFactory#create

でやっているが、ここの呼び出している、

org.apache.axis.components.net.SocketFactoryFactory

がクラス名の通りで、シングルトンなので、複数の通信先と通信を行う場合に、一番最初に通信を行った先のタイムアウト設定が、ほかの通信でも効いてしまう、というオチ。

通信先によってタイムアウトを変える、なんて消極的な考え方ではく、自分が動くためには一律のタイムアウトで良い!という考え方なんだろう。

当面は使うことも無くなってしまったので調査は見切り。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です