2016-07-14 5 views
0

上で実行している私は手動で行う「Webサービス」org.apache.axis.client.Callで構築されており、ドミノ

経由でSAPバックエンドに接続するantedeluvian Notesアプリケーションを維持しています

サーバーでDominoリリース7.0.4FP2 HF97が実行されています。

ウェブサービスは、最近Webサービスコンシューマーではなく、Apache soap.jar(org.apache.soap)を使用している大規模なJavaエージェントです。以下に、呼び出しコードの例を示します。

private Call setupSOAPCall() { 
    Call call = new Call(); 

SOAPHTTPConnection conn = new SOAPHTTPConnection(); 
call.setSOAPTransport(conn); 

call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); 

SAPシステムの変更により、完了までに8分掛かりました(SAPチームによって確認されました)。

次のように私は、エラーメッセージが出てい:

[SOAPException: faultCode=SOAP-ENV:Client; msg=For input string: "906 "; targetException=java.lang.NumberFormatException: For input string: "906 "] 

私はかなり密接にエラーメッセージ記述するブログの記事が見つかりました:

https://thejavablog.wordpress.com/category/jmeter/

を、私は仮説に来ています私のCallオブジェクトに戻っているタイムアウトメッセージであり、このタイムアウトメッセージが正しく解析されていないため、NumberFormat例外が発生します。

私のログを見ると、私の呼び出しと応答の間に62秒の時間差があることがわかります。

は、私は、サーバーは、サーバー文書に設定することをお勧めし、タブのインターネットプロトコルは、/ HTTP /タイムアウト/リクエストのタイムアウトは600秒に60秒から変更すると、HTTPタスクは

tell http restart 

で再起動私がしましたテストを再実行しても同じエラーが発生しています。時間差はまだ60秒を少し超えています。これは私が期待していたものではありません。

私はこの4月

http://www-01.ibm.com/support/docview.wss?uid=swg1LO48272

を指すマイケルRulnauのブログエントリを

http://www.mruhnau.net/2014/06/how-to-overcome-domino-webservice.html

読みますがありますので、私は、これは、この場合に適用されるであろうことを確信していません私のJavaエージェントが実際にSoapコールを行っていることをIBMが知る方法はありません。

私の現在の仮説は、私が

org.apache.axis.client.Call

https://axis.apache.org/axis/java/apiDocs/org/apache/axis/client/Call.html

またはorg.apache.soap上のいずれかのsetTimeout()メソッドを使用しなければならないことです

https://docs.oracle.com/cd/B13789_01/appdev.101/b12024/org/apache/soap/transport/http/SOAPHTTPConnection.html

.transport.http.SOAPHTTPConnectionおよびタイムアウト値であることをApacheのデDominoサーバーによって制御されるものではありません。

ご協力いただき、ありがとうございます。

答えて

2

私はあなたのアプローチを理解しており、これがあなたの問題を解決するのに正しいことを願っています。

デフォルトのタイムアウトを表示するデバッグ(コンソール書き込みは問題ありません)を追加して、それを10分に増やそうとします。さて、Domminoも最大のLotusScript/Javaの実行時間を持って覚えておいて、この値をチェックし、それを変更する(少なくとも試し用)

SOAPHTTPConnection conn = new SOAPHTTPConnection(); 
System.out.println("time out is :" + conn.getTimeout()); 
conn.setTimeout(600000);//10 min in ms 
System.out.println("after setting it, time out is :" + conn.getTimeout()); 
call.setSOAPTransport(conn); 

http://www.ibm.com/support/knowledgecenter/SSKTMJ_9.0.1/admin/othr_servertasksagentmanagertab_r.htmlを(それはバージョン9ヘルプがありますが、この部分は同一である必要があります)

+0

こんにちはEmmanuel、私はLotusScript/Javaの実行時間が最大であるとは思っていませんでしたが、1日に10分、夜間に15分に設定されています。 –

+0

こんにちは!タイムアウトが更新されたことをコンソールに入れましたか? –

+1

こんにちはエマニュエル、私の前提は間違っていた - 私は長い遅延で動作するコードの以前のインスタンスを発見した。デフォルトのタイムアウトは0です(つまり、まったくなし)。私はパズルの間違った部分を見ていた。 –

1

私はエラーが発生したコードではないことを発見しました。 Apacheの軸SOAPHTTPConnectionのデフォルトのタイムアウトは0です。タイムアウトはありません。

関連する問題