@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

axisでのSOAP接続に時間がかかる

1
投稿者投稿内容
ちーぼー
会議室デビュー日: 2009/01/16
投稿数: 1
投稿日時: 2009-01-16 20:59
ちーぼー

axisでのSOAP接続に時間がかかる

お世話になります。

以下のようなSOAP通信を行うプログラムをaxisで作ったのですが、パフォーマンスが出なくて困っています。

public void execute() throws Exception {

String url = "http//hogehoge.com/aaa.asmx";
String action = ""; // アクションURI
String msg = ""; // XML形式のメッセージ

log.info("開始.....");

InputStream input = new BufferedInputStream(new ByteArrayInputStream(msg.getBytes()));
Service service = new Service();
Call call = (Call) service.createCall();
SOAPEnvelope env = new SOAPEnvelope(input);

call.setTargetEndpointAddress(new URL(url));
if (action != null) {
call.setUseSOAPAction(true);
call.setSOAPActionURI(action);
}
call.setProperty(
MessageContext.HTTP_TRANSPORT_VERSION,
HTTPConstants.HEADER_PROTOCOL_V11);

log.info("呼び出し前");
env = call.invoke(env);
log.info("呼出し後");

// envを加工して出力
...
//

log.info("終了");
}

デバッグログを出力(下記参照)してみたところ、以下の2箇所:
・(なぜか2回呼び出されている)AxisEngineのinit処理の1回目
  2009-01-16 13:29:23,684 [main] DEBUG org.apache.axis.AxisEngine - Enter: AxisEngine::init
...
2009-01-16 13:29:35,617 [main] DEBUG org.apache.axis.AxisEngine - Exit: AxisEngine::init
  2009-01-16 13:29:35,854 [main] DEBUG org.apache.axis.AxisEngine - Enter: AxisEngine::init
  2009-01-16 13:29:35,855 [main] DEBUG org.apache.axis.AxisEngine - Exit: AxisEngine::init

・Callのinvoke内の以下の間
  2009-01-16 13:29:37,557 [main] DEBUG org.apache.axis.Message - Attachmentサポートは可能ですか? / [en]-(Attachment support is enabled?) true
  2009-01-16 13:29:51,817 [main] DEBUG org.apache.axis.SOAPPart - Enter: SOAPPart ctor(FORM_SOAPENVELOPE)

でやたらと時間がかかっていて、これを回避したいのですが、
いい策が思い浮かびません。

将来的にこのプログラムはスレッド化して常駐プロセスとして動作させる予定です。

以上、よろしくお願いいたします。

[環境]
・AIX 5.2(or5.3)
・IBM JDK 1.3.1
・Axis 1.4
・(サーバー側)IIS 6.0

[ メッセージ編集済み 編集者: ちーぼー 編集日時 2009-01-16 21:04 ]
1

スキルアップ/キャリアアップ(JOB@IT)