前回からの続き。
結局Axisの実装の問題だった。結局タイムアウトを利用しているSocketの生成、HTTP通信の場合は
org.apache.axis.components.net.DefaultSocketFactory#create
でやっているが、ここの呼び出している、
org.apache.axis.components.net.SocketFactoryFactory
がクラス名の通りで、シングルトンなので、複数の通信先と通信を行う場合に、一番最初に通信を行った先のタイムアウト設定が、ほかの通信でも効いてしまう、というオチ。
通信先によってタイムアウトを変える、なんて消極的な考え方ではく、自分が動くためには一律のタイムアウトで良い!という考え方なんだろう。
当面は使うことも無くなってしまったので調査は見切り。