付録B.2 退避ファイルの生成と削除
ここでは,退避ファイルが生成される条件,および退避ファイルが削除されるタイミングについて説明します。
- 〈この項の構成〉
(1) 退避ファイルが生成される条件
受信したメッセージの添付ファイルのサイズが16KBより大きい場合,退避ファイルが生成されます。一つのSOAPメッセージに複数の添付ファイルがある場合は,サイズが16KBより大きい添付ファイルに対してだけ退避ファイルが生成されます。添付ファイルのサイズが16KB以下の場合は,退避ファイルは生成されません。
(2) 退避ファイルの削除
退避ファイルは,次の場合にSOAP通信基盤によって自動的に削除されます。
-
添付ファイルへの参照がすべて破棄された場合
JavaVMのファイナライズ処理の実行時に,添付ファイルへの参照がなければ,退避ファイルは自動的に削除されます。添付ファイルへの参照が残っている場合,退避ファイルは削除されません。
退避ファイルの占有期間を短くするためにも,JAFのjavax.activation.DataHandlerオブジェクトへの参照や,javax.activation.DataHandlerオブジェクトから取得できるjava.io.InputStreamオブジェクトへの参照などは,不要になった時点ですぐに破棄することをお勧めします。
-
SOAPサービスの呼び出しが終了する場合
受信した添付ファイルに対応する退避ファイルは自動的に削除されます。
-
JavaVMが終了する場合
J2EEサーバの停止や,コマンドラインから実行したSOAPクライアントの終了など,JavaVMが終了するタイミングで退避ファイルは自動的に削除されます。
また,APIを使用して退避ファイルを削除することもできます。
ManagementクラスのdisconnectClientIDtoCurrentThreadメソッドが呼び出された時に,退避ファイルが削除されます。このとき,connectClientIDtoCurrentThreadメソッドの呼び出しからdisconnectClientIDtoCurrentThreadメソッドの呼び出しまでに,現在のスレッドで受信した添付ファイルに対応する退避ファイルが削除されます。
なお,connectClientIDtoCurrentThreadメソッドの呼び出しからdisconnectClientIDtoCurrentThreadメソッドの呼び出しまでに,SOAPサービスを複数回呼び出した場合は,対応するすべての退避ファイルが削除されます。
Managementクラスの詳細については,「3.7.2 ManagementクラスとClientIDクラスの使用」を参照してください。
- 注意事項
-
J2EEサーバのプロセスを強制停止した場合など,ユーザが意図しないでSOAP通信基盤が停止されたときは,退避ファイルが削除されないことがあります。この場合は退避ファイルの格納先を確認し,必要に応じて手動で退避ファイルを削除してください。