(57)【要約】【課題】ＳＩＰサーブレットによる通信サービスにおいて発生した障害の障害解析情報を、処理性能への影響を低減させて収集し出力する。【解決手段】障害解析情報収集部３１は、ＳＩＰサーブレットコンテナ１０による、ＳＩＰサーブレット２０の生成およびＳＩＰサーブレット２０による所持データの複製処理に伴い、ＳＩＰサーブレット２０によるサービス提供時等の障害解析に必要となる情報の参照情報を収集し、メモリに記憶しておく。そして、障害解析情報収集部３１は、ＳＩＰサーブレットコンテナ１０がＳＩＰサーブレット２０の障害（例外）が発生した場合の例外処理の実行に伴い、その例外に関する情報の参照情報を収集し、メモリに記憶しておいた当該ＳＩＰサーブレットの障害解析に必要となる情報と共に、障害解析情報として出力する。【選択図】図１
2014021612.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＰサーブレットコンテナがＳＩＰサーブレットを生成することにより通信サービスを提供する際に発生する障害の障害解析のための情報を収集する障害解析情報収集プログラムであって、
前記ＳＩＰサーブレットコンテナが備わるコンピュータを、
前記ＳＩＰサーブレットコンテナがＳＩＰメッセージを受信し前記ＳＩＰメッセージに対応した前記ＳＩＰサーブレットを生成する際に、前記ＳＩＰサーブレットコンテナが当該ＳＩＰサーブレットによる前記通信サービスを処理するためにメモリに記憶したＳＩＰサーブレットコンテナ管理情報への参照情報を収集し、
前記生成されたＳＩＰサーブレットが前記通信サービスを提供するときの所持データを複製する際に呼び出すＡＰＩ（Application Program Interface）のＡＰＩ呼び出しパラメータへの参照情報を収集し、
前記ＳＩＰサーブレットコンテナが前記生成されたＳＩＰサーブレットが提供する前記通信サービスに例外が発生した際に生成する例外情報への参照情報を収集する障害解析情報収集手段、
前記障害解析情報収集手段から通知された、前記ＳＩＰサーブレットコンテナ管理情報への参照情報、前記ＡＰＩ呼び出しパラメータへの参照情報および前記例外情報への参照情報を、障害解析情報として前記メモリに記憶させる障害解析情報管理手段、および、
前記障害解析情報管理手段が前記例外情報への参照情報を前記メモリに記憶させたときに、前記例外情報に示される前記生成されたＳＩＰサーブレットについての前記障害解析情報を前記メモリから抽出して出力する障害解析情報出力手段、
として機能させるための障害解析情報収集プログラム。
【請求項２】
前記障害解析情報収集手段は、
前記ＳＩＰサーブレットコンテナが、前記通信サービスの終了により前記生成したＳＩＰサーブレットを削除した旨を示す削除情報を収集し、前記収集した削除情報を前記障害解析情報管理手段に通知し、
前記障害解析情報管理手段は、
前記削除情報に示される当該生成したＳＩＰサーブレットについての前記障害解析情報を、前記メモリから削除すること
を特徴とする請求項１に記載の障害解析情報収集プログラム。
【請求項３】
前記障害解析情報収集手段は、
前記ＳＩＰサーブレットコンテナが、前記通信サービスの終了により前記生成したＳＩＰサーブレットを削除した旨を示す削除情報を収集し、前記収集した削除情報を前記障害解析情報管理手段に通知し、
前記障害解析情報管理手段は、
前記削除情報に示される当該生成したＳＩＰサーブレットの前記障害解析情報を、前記メモリに記憶された各ＳＩＰサーブレットの障害解析情報の数が所定値に達した場合に削除すること
を特徴とする請求項１に記載の障害解析情報収集プログラム。
【請求項４】
前記障害解析情報収集手段は、
前記ＳＩＰサーブレットコンテナが、前記通信サービスの終了により前記生成したＳＩＰサーブレットを削除した旨を示す削除情報を収集し、前記収集した削除情報を前記障害解析情報管理手段に通知し、
前記障害解析情報管理手段は、
前記削除情報に示される当該生成したＳＩＰサーブレットの前記障害解析情報として記憶された、前記ＳＩＰサーブレットコンテナ管理情報への参照情報、前記ＡＰＩ呼び出しパラメータへの参照情報および前記例外情報への参照情報、の基となる前記ＳＩＰサーブレットコンテナ管理情報、前記ＡＰＩ呼び出しパラメータおよび前記例外情報のいずれかに、所定の例外発生条件に合致する情報が含まれているか否かを判定し、前記所定の例外発生条件に合致する情報が含まれていない前記障害解析情報を削除し、前記所定の例外発生条件に合致する情報が含まれている前記障害解析情報を削除せずに前記メモリに記憶し続け、
前記障害解析情報出力手段は、
前記所定の例外発生条件と合致する情報が含まれる前記障害解析情報の取得要求を取得した場合に前記メモリから抽出して出力すること
を特徴とする請求項１に記載の障害解析情報収集プログラム。
【請求項５】
ＨＴＴＰサーブレットコンテナがＨＴＴＰサーブレットを生成することにより通信サービスを提供する際に発生する障害の障害解析のための情報を収集する障害解析情報収集プログラムであって、
前記ＨＴＴＰサーブレットコンテナが備わるコンピュータを、
前記ＨＴＴＰサーブレットコンテナがＨＴＴＰメッセージを受信し前記ＨＴＴＰメッセージに対応した前記ＨＴＴＰサーブレットを生成する際に、前記ＨＴＴＰサーブレットコンテナが当該ＨＴＴＰサーブレットによる前記通信サービスを処理するためにメモリに記憶したＨＴＴＰサーブレットコンテナ管理情報への参照情報を収集し、
前記生成されたＨＴＴＰサーブレットが前記通信サービスを提供するときの所持データを複製する際に呼び出すＡＰＩ（Application Program Interface）のＡＰＩ呼び出しパラメータへの参照情報を収集し、
前記ＨＴＴＰサーブレットコンテナが前記生成されたＨＴＴＰサーブレットが提供する前記通信サービスに例外が発生した際に生成する例外情報への参照情報を収集する障害解析情報収集手段、
前記障害解析情報収集手段から通知された、前記ＨＴＴＰサーブレットコンテナ管理情報への参照情報、前記ＡＰＩ呼び出しパラメータへの参照情報および前記例外情報への参照情報を、障害解析情報として前記メモリに記憶させる障害解析情報管理手段、および、
前記障害解析情報管理手段が前記例外情報への参照情報を前記メモリに記憶させたときに、前記例外情報に示される前記生成されたＨＴＴＰサーブレットについての前記障害解析情報を前記メモリから抽出して出力する障害解析情報出力手段、
として機能させるための障害解析情報収集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＰ（Session Initiation Protocol）サーブレットコンテナを用いて提供される通信サービスにおいて、障害解析のための情報を収集する障害解析情報収集プログラムに関する。
【背景技術】
【０００２】
ＳＩＰプロトコルのサーバ側での実装形態の１つとして、Ｊａｖａ（登録商標）にＳＩＰプロトコルを制御するＡＰＩ（Application Program Interface）であるＳＩＰサーブレットが標準化されている（非特許文献１，２参照）。ＳＩＰサーブレットは、実行環境の仕様として、シグナリングの実装、アプリケーションのライフサイクル、トランザクション、セッション管理、セキュリティ等が定義されるＳＩＰサーブレットコンテナ（ＳＩＰアプリケーションサーバ）上で動作する。
【０００３】
このＳＩＰサーブレットにより実行される通信サービスにおいて障害が発生した場合には、通信プログラムのバックトレース情報や、通信サービスに関連して送受信されるパケット情報（以下、「通信電文」ということがある）、ログファイル等から原因究明を行うことが想定される。
【０００４】
ただし、バックトレース情報は、通信プログラムが異常終了しないと生成されないため、利用できる場合が限られている。また、通信電文は、例えば、障害が発生したサーバやサービス等の情報を得ることにより障害発生の原因の絞り込みには利用できるが、元々の障害発生原因であるプログラムの問題点（バク等）の解析には不十分な情報しか得られない。よって、従来は、主にログファイルを利用して障害解析が行われている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】鈴木 信吾、“通信系・情報系サービスを融合する「SIP Servlet」”、［online］、2006年4月22日、［2012年6月27日検索］、インターネット<URL:http://www.atmarkit.co.jp/fjava/kaisetsu/j2eewatch09/j2eewatch09.html>
【非特許文献２】宮下 知起、“ＮＧＮ時代の有力な基盤技術？ＳＩＰサーブレット入門”、［online］、2007年7月30日、［2012年6月27日検索］、インターネット<URL:http://www.atmarkit.co.jp/fjava/special/sipservlet/sipservlet_1.html>
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ログファイルを利用した障害解析には以下のような問題がある。
まず、ログを収集するためには、通信プログラムにログ収集の処理を予め記述しておく必要がある。
また、詳細なログを取得するとファイル出力の負荷によって処理性能が低下する。これを防ぐために、利用する通信プログラムにおいて、設定ファイルでログの詳細さの程度を設定可能なものとしている。それでも、タイミングに関連する試験や商用提供時（サービス提供時）には、処理性能への影響が大きいため、設定ファイルの変更による詳細なログ取得を行うことは困難だった。そのため、障害発生時には、被疑箇所のみ詳細なログを出力するように改変した通信プログラムに入れ替えて、障害解析のためのログ収集を行う必要があった。
なお、ここでタイミングに関連する試験とは、例えば、キャッチホンや三者通話のサービス等において、発側端末のフッキング動作と着側端末のオンフック動作のように、発側の端末と着側の端末とで別々の動作をタイミングをずらして操作し、仕様通りの動作を実行しているかを確認するような試験である。また、以下において、タイミングに関連する試験や商用提供時（サービス提供時）をまとめてサービス提供時等として記述する。
【０００７】
このような背景に鑑みて本発明がなされたのであり、本発明は、ＳＩＰサーブレットによる通信サービスにおいて発生した障害の障害解析情報を、処理性能への影響を低減させて収集し出力することができる、障害解析情報収集プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、請求項１に記載の発明は、ＳＩＰサーブレットコンテナがＳＩＰサーブレットを生成することにより通信サービスを提供する際に発生する障害の障害解析のための情報を収集する障害解析情報収集プログラムであって、前記ＳＩＰサーブレットコンテナが備わるコンピュータを、前記ＳＩＰサーブレットコンテナがＳＩＰメッセージを受信し前記ＳＩＰメッセージに対応した前記ＳＩＰサーブレットを生成する際に、前記ＳＩＰサーブレットコンテナが当該ＳＩＰサーブレットによる前記通信サービスを処理するためにメモリに記憶したＳＩＰサーブレットコンテナ管理情報への参照情報を収集し、前記生成されたＳＩＰサーブレットが前記通信サービスを提供するときの所持データを複製する際に呼び出すＡＰＩ（Application Program Interface）のＡＰＩ呼び出しパラメータへの参照情報を収集し、前記ＳＩＰサーブレットコンテナが前記生成されたＳＩＰサーブレットが提供する前記通信サービスに例外が発生した際に生成する例外情報への参照情報を収集する障害解析情報収集手段、前記障害解析情報収集手段から通知された、前記ＳＩＰサーブレットコンテナ管理情報への参照情報、前記ＡＰＩ呼び出しパラメータへの参照情報および前記例外情報への参照情報を、障害解析情報として前記メモリに記憶させる障害解析情報管理手段、および、前記障害解析情報管理手段が前記例外情報への参照情報を前記メモリに記憶させたときに、前記例外情報に示される前記生成されたＳＩＰサーブレットについての前記障害解析情報を前記メモリから抽出して出力する障害解析情報出力手段、として機能させるための障害解析情報収集プログラムとした。
【０００９】
このように、既存のＳＩＰサーブレットコンテナで管理される情報（ＳＩＰサーブレットコンテナ管理情報、ＡＰＩ呼び出しパラメータおよび例外情報）への参照情報を障害解析情報としてメモリに収集することにより、サービス提供時等においても、障害解析に必要な情報（障害解析情報）を、処理性能への影響を低減させて出力することができる。よって、障害発生時に、被疑箇所の詳細なログを出力するように通信プログラムを入れ替える必要がなく、通信サービス開発時のデバックおよび通信サービス提供時の障害解析にかかる時間を短縮することができる。
【００１０】
請求項２に記載の発明は、前記障害解析情報収集手段が、前記ＳＩＰサーブレットコンテナが、前記通信サービスの終了により前記生成したＳＩＰサーブレットを削除した旨を示す削除情報を収集し、前記収集した削除情報を前記障害解析情報管理手段に通知し、前記障害解析情報管理手段が、前記削除情報に示される当該生成したＳＩＰサーブレットについての前記障害解析情報を、前記メモリから削除することを特徴とする請求項１に記載の障害解析情報収集プログラムとした。
【００１１】
このようにすることで、通信サービスが終了したＳＩＰサーブレットの障害解析情報をメモリから削除することができるため、メモリ使用量の増加を防ぐことができる。
【００１２】
請求項３に記載の発明は、前記障害解析情報収集手段が、前記ＳＩＰサーブレットコンテナが、前記通信サービスの終了により前記生成したＳＩＰサーブレットを削除した旨を示す削除情報を収集し、前記収集した削除情報を前記障害解析情報管理手段に通知し、前記障害解析情報管理手段が、前記削除情報に示される当該生成したＳＩＰサーブレットの前記障害解析情報を、前記メモリに記憶された各ＳＩＰサーブレットの障害解析情報の数が所定値に達した場合に削除することを特徴とする請求項１に記載の障害解析情報収集プログラムとした。
【００１３】
このようにすることで、通信サービスが終了したＳＩＰサーブレットの障害解析情報についても、障害解析に利用することができる。また、メモリ内の障害解析情報の数が所定値に達した場合には、通信サービスが終了したＳＩＰサーブレットの障害解析情報が削除されるため、障害解析情報の記憶に関するメモリ使用量を適正に維持することができる。
【００１４】
請求項４に記載の発明は、前記障害解析情報収集手段が、前記ＳＩＰサーブレットコンテナが、前記通信サービスの終了により前記生成したＳＩＰサーブレットを削除した旨を示す削除情報を収集し、前記収集した削除情報を前記障害解析情報管理手段に通知し、前記障害解析情報管理手段が、前記削除情報に示される当該生成したＳＩＰサーブレットの前記障害解析情報として記憶された、前記ＳＩＰサーブレットコンテナ管理情報への参照情報、前記ＡＰＩ呼び出しパラメータへの参照情報および前記例外情報への参照情報、の基となる前記ＳＩＰサーブレットコンテナ管理情報、前記ＡＰＩ呼び出しパラメータおよび前記例外情報のいずれかに、所定の例外発生条件に合致する情報が含まれているか否かを判定し、前記所定の例外発生条件に合致する情報が含まれていない前記障害解析情報を削除し、前記所定の例外発生条件に合致する情報が含まれている前記障害解析情報を削除せずに前記メモリに記憶し続け、前記障害解析情報出力手段が、前記所定の例外発生条件と合致する情報が含まれる前記障害解析情報の取得要求を取得した場合に前記メモリから抽出して出力することを特徴とする請求項１に記載の障害解析情報収集プログラムとした。
【００１５】
このようにすることで、所定の例外発生条件（例えば、特定の着信先の電話番号や、特定のサービスに関する通信サービスを利用する際に例外の発生率が高いことが予め分かっている場合の、その着信先の電話番号やサービス）に合致する情報を含む障害解析情報については、通信サービスが終了しても削除せずにメモリに記憶し続けることができる。そして、取得要求を受けてその障害解析情報を障害解析情報出力手段が出力することで、障害解析を効率化することができる。
【００１６】
請求項５に記載の発明は、ＨＴＴＰサーブレットコンテナがＨＴＴＰサーブレットを生成することにより通信サービスを提供する際に発生する障害の障害解析のための情報を収集する障害解析情報収集プログラムであって、前記ＨＴＴＰサーブレットコンテナが備わるコンピュータを、前記ＨＴＴＰサーブレットコンテナがＨＴＴＰメッセージを受信し前記ＨＴＴＰメッセージに対応した前記ＨＴＴＰサーブレットを生成する際に、前記ＨＴＴＰサーブレットコンテナが当該ＨＴＴＰサーブレットによる前記通信サービスを処理するためにメモリに記憶したＨＴＴＰサーブレットコンテナ管理情報への参照情報を収集し、前記生成されたＨＴＴＰサーブレットが前記通信サービスを提供するときの所持データを複製する際に呼び出すＡＰＩ（Application Program Interface）のＡＰＩ呼び出しパラメータへの参照情報を収集し、前記ＨＴＴＰサーブレットコンテナが前記生成されたＨＴＴＰサーブレットが提供する前記通信サービスに例外が発生した際に生成する例外情報への参照情報を収集する障害解析情報収集手段、前記障害解析情報収集手段から通知された、前記ＨＴＴＰサーブレットコンテナ管理情報への参照情報、前記ＡＰＩ呼び出しパラメータへの参照情報および前記例外情報への参照情報を、障害解析情報として前記メモリに記憶させる障害解析情報管理手段、および、前記障害解析情報管理手段が前記例外情報への参照情報を前記メモリに記憶させたときに、前記例外情報に示される前記生成されたＨＴＴＰサーブレットについての前記障害解析情報を前記メモリから抽出して出力する障害解析情報出力手段、として機能させるための障害解析情報収集プログラムとした。
【００１７】
このようにすることで、ＨＴＴＰサーブレットコンテナが生成するＨＴＴＰサーブレットにより提供される通信サービスにおいても、障害解析情報を処理性能への影響を低減させて収集し出力することができる。
【発明の効果】
【００１８】
本発明によれば、ＳＩＰサーブレットによる通信サービスにおいて発生した障害の障害解析情報を、処理性能への影響を低減させて収集し出力することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係る障害解析情報収集プログラムにより実現される障害解析情報収集機能を備えるＳＩＰサーバの構成例を示す機能ブロック図である。
【図２】本実施形態に係るＳＩＰサーブレットコンテナ管理情報に記憶されるＳＩＰサーブレットに関する情報のデータ構成を示す図である。
【図３】本実施形態に係る障害解析管理テーブルに記憶される障害解析情報のデータ構成を説明するための図である。
【図４】本実施形態に係る障害解析情報収集機能を備えるＳＩＰサーバの正常時の処理の流れを示すシーケンス図である。
【図５】本実施形態に係る障害解析情報収集機能を備えるＳＩＰサーバの障害発生時の処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００２０】
次に、本発明を実施するための形態（以下、「本実施形態」という）における障害解析情報収集プログラム等について説明する。なお、ＳＩＰサーブレット２０は、Ｊａｖａの規格であるため、本実施形態は、プログラム言語としてＪａｖａが用いられていることを前提とする。
【００２１】
＜概要＞
まず、本実施形態に係る障害解析情報収集プログラムにより実現される障害解析情報収集機能３０の概要について説明する。
図１は、本実施形態に係る障害解析情報収集プログラムにより実現される障害解析情報収集機能３０を備えるＳＩＰサーバ１の構成例を示す機能ブロック図である。
本実施形態に係るＳＩＰサーバ１では、ＳＩＰサーブレットコンテナ１０がＳＩＰメッセージを受信すると、そのＳＩＰメッセージに対応したＳＩＰサーブレット２０を生成し、アプリケーションを起動して処理を実行する。また、ＳＩＰサーブレットコンテナ１０は、そのアプリケーションによるサービスが終了すると、生成したＳＩＰサーブレット２０を削除する。
そして、本実施形態に係るＳＩＰサーバ１は、ＳＩＰサーブレットコンテナ１０により生成されたＳＩＰサーブレット２０のサービス提供時等において、障害解析のために必要となる情報（障害解析情報）を収集しておき、障害発生時に、その障害解析情報を出力する障害解析情報収集機能３０を備えることを特徴とする。
【００２２】
この障害解析情報収集機能３０を備えるＳＩＰサーバ１では、本来ＳＩＰサーブレットコンテナ１０が実行する、（１）ＳＩＰサーブレット２０の生成、（２）ＳＩＰサーブレット２０が管理する情報を他のＳＩＰサーバに複製するためのsetAttribute ＡＰＩ呼び出し、（３）ＳＩＰサーブレット２０の削除、（４）障害（例外）が発生した場合の例外処理、に伴って、ＳＩＰサーブレットコンテナ１０内に設けられた障害解析情報収集部（障害解析情報収集手段）３１が、障害解析に必要となる情報を収集する。このとき、障害解析情報収集部３１は、ＳＩＰサーブレットコンテナ１０で管理するＳＩＰサーブレット２０により提供されるサービスに関連する情報への参照情報や、setAttribute ＡＰＩを呼び出す際のパラメータへの参照情報、例外処理で生成された情報（後記する例外情報３３０）への参照情報を収集する。なお、本実施形態において、「参照情報」とは、情報の実体（データ）そのものではなく、その情報が記憶されたＲＡＭ（Random Access Memory）等のメモリ空間内のアドレス情報等を意味する。本障害解析情報収集機能３０では、障害解析情報収集部３１が収集した障害解析に必要となる情報（障害解析情報）を参照情報として障害解析管理テーブル３００に記憶し、障害発生時（例外発生時）に、その参照情報を障害解析情報として出力する。
【００２３】
このようにすることで、本実施形態に係る障害解析情報収集プログラムによれば、サービス提供時等においても、障害解析に必要な情報（障害解析情報）を、処理性能への影響を低減させて収集し出力することができる。
【００２４】
以下、この障害解析情報収集機能３０を備えるＳＩＰサーバ１について、具体的に説明する。
【００２５】
＜ＳＩＰサーバの構成＞
ＳＩＰサーバ１は、ＳＩＰメッセージを受信して通信サービスを実現する装置であり、例えば、不図示の入出力部、制御部（演算部）、メモリ部、記憶部等から構成されるコンピュータとして実現される。入出力部は、入出力インタフェースや通信インタフェースにより構成される。制御部（演算部）は、ＣＰＵ（Central Processing Unit）等の演算処理装置により構成される。メモリ部は、ＲＡＭ等の一次記憶装置からなり、制御部によりデータ処理に必要な情報が一時的に記憶される。記憶部は、ハードディスクやフラッシュメモリ等の記憶装置により構成される。
また、ＳＩＰサーバ１は、その機能として、図１に示すように、ＳＩＰサーブレットコンテナ１０と、そのＳＩＰサーブレットコンテナ１０により生成されるＳＩＰサーブレット２０と、障害解析情報収集機能３０と、を含んで構成される。
【００２６】
≪ＳＩＰサーブレットコンテナ≫
ＳＩＰサーブレットコンテナ１０は、ライフサイクルに沿ったアプリケーションの管理やセッション等のＳＩＰに関する管理を実行する。また、ＳＩＰサーブレットコンテナ１０は、ＳＩＰメッセージ（ＩＮＶＩＴＥ等）を受信すると、起動するアプリケーションに対応したＳＩＰサーブレット２０を生成する。
【００２７】
このＳＩＰサーブレットコンテナ１０は、ＳＩＰサーブレット生成部１１と、通信管理部１２と、ＳＩＰサーブレット削除部１３と、例外処理部１４と、不図示のメモリ部内にＳＩＰサーブレットコンテナ管理情報１００とを備える。また、このＳＩＰサーブレットコンテナ１０は、各処理部が行う処理を監視し、障害解析のために利用する情報を収集する障害解析情報収集部（障害解析情報収集手段）３１を備えている。なお、この障害解析情報収集部３１は、障害解析情報収集機能３０としての処理を、ＳＩＰサーブレットコンテナ１０内において実行するため処理部であり、後記する障害解析情報収集機能３０において詳細に説明する。
【００２８】
ＳＩＰサーブレット生成部１１は、受信したＳＩＰメッセージに基づき、どのアプリケーションを起動するか決定し、そのアプリケーションに対応したＳＩＰサーブレット２０を生成する。
【００２９】
通信管理部１２は、ＳＩＰサーブレット２０と、他のＳＩＰサーバやクライアント（ＳＩＰ端末）等の外部装置との間で、情報の送受信を行うと共に、トランザクションやセッション制御を行う。そして、通信管理部１２は、ＳＩＰサーブレット生成部１１が生成したＳＩＰサーブレット２０に関して、そのサービスの提供に必要な管理情報をオブジェクト（管理情報オブジェクト）としてメモリ部（不図示）に記憶する。また、通信管理部１２は、ＳＩＰサーブレットコンテナ管理情報１００（図２参照）において、その管理情報オブジェクトへの参照情報等をＳＩＰサーブレット２０毎に記憶し管理している。
【００３０】
ＳＩＰサーブレット削除部１３は、サービスの終了に関するＳＩＰメッセージ（doByeメッセージ）への応答を受信した場合に、対応するＳＩＰサーブレット２０を削除する。
【００３１】
例外処理部１４は、例外（プログラム実行中における予期せぬ事象（エラー：障害））が発生すると例外オブジェクトを生成し、例外ハンドラ（例外発生時の処理）を実行する。この例外処理部１４が生成する例外オブジェクトには、例外クラスのクラス名のインスタンス、例外ハンドラに基づき実行された例外のメッセージのインスタンス、プログラムの実行過程を記録したスタックトレースのインスタンスが含まれる。
【００３２】
ＳＩＰサーブレットコンテナ管理情報１００には、通信管理部１２の制御により、ＳＩＰサーブレットコンテナ１０が生成した各ＳＩＰサーブレット２０に関する情報が記憶される。
【００３３】
図２は、ＳＩＰサーブレットコンテナ管理情報１００に記憶される各ＳＩＰサーブレット２０に関する情報のデータ構成を示す図である。
図２に示すように、このＳＩＰサーブレットコンテナ管理情報１００には、ＳＩＰサーブレットインスタンス識別子１０１、提供サービス情報１０２、加入者種別（発／着）１０３、加入サービス情報１０４および通信電文情報１０５が含まれる。また、このＳＩＰサーブレットコンテナ管理情報１００は、不図示のメモリ部に記憶される。
【００３４】
ＳＩＰサーブレットインスタンス識別子１０１には、ＳＩＰサーブレット生成部１１が生成したＳＩＰサーブレット２０毎に固有な識別子が記憶される。なお、ＳＩＰサーブレット生成部１１が生成するＳＩＰサーブレット２０は、例えば、同じ発信元から同じアプリケーションのサービス提供を要求するＳＩＰメッセージを別時刻に受信した場合であれば、それぞれ別のサービス要求として別々のＳＩＰサーブレット２０が生成され、別のＳＩＰサーブレットインスタンス識別子１０１が付される。
【００３５】
提供サービス情報１０２には、当該ＳＩＰサーブレット２０で提供するサービスの識別情報や、そのサービスを利用する発信側や着信側の端末等の電話番号、ＩＰアドレス等の情報が格納される提供サービス情報インスタンスへの参照情報（以下、参照情報を、図２および図３において「参照」と記載する）が記憶される。なお、この提供サービス情報インスタンスは、ＳＩＰサーブレット２０がＳＩＰサーブレット生成部１１により生成される毎に、通信管理部１２により管理情報オブジェクトのインスタンスとして生成されるものである。
【００３６】
加入者種別（発／着）１０３には、当該ＳＩＰサーブレット２０が発信側または着信側のどちらからの要求により生成されたかが記憶される。
例えば、起動されるサービスが「短縮ダイヤル」であれば、この加入者種別（発／着）１０３に、発信側からの要求によるサービスとして「発」が記憶される。また、起動されるサービスが「キャッチホン」であれば、加入者種別（発／着）１０３に、着信側からの要求によるサービスとして「着」が記憶される。
【００３７】
加入サービス情報１０４には、当該ＳＩＰサーブレット２０を起動している加入者が加入しているサービス等の情報が格納される加入サービス情報インスタンスへの参照情報が記憶される。
なお、ＳＩＰサーバ１は、不図示の記憶部等に、各加入者が加入するサービスの情報を格納した加入者情報ＤＢ（DataBase）を備えている。そして、通信管理部１２は、当該加入者のＳＩＰ端末等からのＳＩＰメッセージに基づき、ＳＩＰサーブレット生成部１１がＳＩＰサーブレット２０を生成したことを契機として、加入者情報ＤＢから当該ＳＩＰサーブレット２０を起動している加入者が加入しているサービス等の情報を取得して、加入サービス情報インスタンスを生成しメモリ部（不図示）に記憶している。
【００３８】
通信電文情報１０５には、当該ＳＩＰサーブレット２０で処理している通信電文（パケット）に関するヘッダ情報、本文（ボディ）等が格納される通信電文インスタンスへの参照情報が記憶される。
なお、この通信電文インスタンスは、通信管理部１２が、当該ＳＩＰサーブレット２０と、他のＳＩＰサーバやクライアント（ＳＩＰ端末）等の外部装置との間で、パケット等の通信電文が送受信される毎に、通信管理部１２により生成され、メモリ部（不図示）に記憶される。
【００３９】
なお、提供サービス情報１０２、加入サービス情報１０４および通信電文情報１０５には、通信管理部１２が生成した各インスタンスの参照情報として記憶されるものとしたが、各インスタンスの実体（データ）が格納されるようにしてもよい。
【００４０】
≪ＳＩＰサーブレット≫
図１に戻り、ＳＩＰサーブレット２０は、ＳＩＰサーブレットコンテナ１０により、１つのサービスの提供を要求するＳＩＰメッセージをＳＩＰサーブレットコンテナ１０が受信する毎に作成されるＡＰＩである。
このＳＩＰサーブレット２０は、ＡＰＩとして機能するためのサービス処理部２１と、情報複製部２２とを備える。
【００４１】
サービス処理部２１は、起動したアプリケーションに基づき、サービスを提供するための処理を実行する。
【００４２】
情報複製部２２は、通信サービス提供中にＳＩＰサーバ１に障害が発生した場合に備えて、ＳＩＰサーブレット２０で管理するデータを自身以外の他のＳＩＰサーバに所持データを複製する処理を実行する。具体的には、情報複製部２２は、提供中の通信サービスに関する情報（所持データ）を複製するためのＡＰＩ（setAttribute）を呼び出し、ＳＩＰサーブレットコンテナ１０を介して、他のＳＩＰサーバに、その提供中の通信サービスに関する情報（所持データ）を送信する。なお、情報複製部２２は、このsetAttibute ＡＰＩの呼び出し処理を、例えば、所定の時間間隔で実行する。
【００４３】
なお、このsetAttribute ＡＰＩは、例えば、以下に示すＡＰＩである。
・void SipApplicationSession.setAttribute(java.lang.String name, java.lang.Object attribute)
・void SipServletMessage.setAttribute(java.lang.String name, java.lang.Object attribute)
・void SipSession. setAttribute(java.lang.String name, java.lang.Object attribute)
【００４４】
情報複製部２２は、setAttribute ＡＰＩのパラメータである「name」と「attribute」についてのインスタンスを、「nameインスタンス」および「attributeインスタンス」として生成し、不図示のメモリ部内に記憶する。
【００４５】
また、情報複製部２２は、setAttribute ＡＰＩを呼び出す処理に関して、他のＳＩＰサーバとの間で、「Response」クラスのsendメソッドを実行し情報の送信を行った場合には、そのsendメソッドのパラメータについてのインスタンスを生成し、不図示のメモリ部内に記憶する。なお、このsendメソッドは、setAttribute ＡＰＩにおいてＳＩＰサーブレット２０が管理する情報を送信するために必要な中間処理に関する情報の送信に用いられる。
【００４６】
≪障害解析情報収集機能≫
障害解析情報収集機能３０は、ＳＩＰサーバ１内で障害が発生した場合に、その障害解析のために必要となる情報（障害解析情報）を収集して出力する。この障害解析情報収集機能３０は、図１に示すように、障害解析情報収集部（障害解析情報収集手段）３１と、障害解析情報管理部（障害解析情報管理手段）３２と、障害解析情報出力部（障害解析情報出力手段）３３と、不図示のメモリ部内に記憶される障害解析管理テーブル３００とを含んで構成される。
【００４７】
障害解析情報収集部３１は、ＳＩＰサーブレットコンテナ１０内に備えられ、ＳＩＰサーバ１において発生した障害を解析するために必要となる情報（障害解析情報）をＳＩＰサーブレットコンテナ１０から収集する。
具体的には、障害解析情報収集部３１は、ＳＩＰサーブレットコンテナ１０内のＳＩＰサーブレット生成部１１によるＳＩＰサーブレット生成時（他サーバ、クライアント等からのＩＮＶＩＴＥメッセージ受信時）、ＳＩＰサーブレット２０からのsetAttribute ＡＰＩの呼び出し時、例外処理部１４により処理される例外発生時、ＳＩＰサーブレット削除部１３によるＳＩＰサーブレット削除時（doByeメッセージへの応答受信時）に、障害解析に必要な情報を収集し、障害解析情報管理部３２に通知する。
【００４８】
以下、さらに詳細に説明する。
障害解析情報収集部（障害解析情報収集手段）３１は、ＳＩＰサーブレットコンテナ１０の通信管理部１２が、生成されたＳＩＰサーブレット２０に関するＳＩＰサーブレットコンテナ管理情報１００（図２参照）の各データ項目の情報を記憶すると、そのＳＩＰサーブレットコンテナ管理情報１００に記憶された１つのＳＩＰサーブレット２０に関する情報（つまり、１行（１レコード）分のＳＩＰサーブレット２０の管理情報）への参照情報を収集し、障害解析情報管理部３２に通知する。なお、ここで出力されるＳＩＰサーブレットコンテナ管理情報１００の１行（１レコード）分への参照情報を、「ＳＩＰサーブレット生成情報３１０」とする。
【００４９】
また、障害解析情報収集部３１は、ＳＩＰサーブレット２０からのsetAttribute ＡＰＩ呼び出しに関する情報（後記するsetAttribute ＡＰＩ呼び出し情報３２０）を収集する。具体的には、障害解析情報収集部３１は、（１）setAttributeＡＰＩが発行された時刻と、そのsetAttribute ＡＰＩ呼び出しパラメータ（name, attribute）のインスタンスへの参照情報、および、（２）ＳＩＰサーブレット２０と他サーバやクライアント等との間で送受信される情報に関するResponseクラスにおけるsendメソッドのパラメータのインスタンスへの参照情報と、そのsendメソッドによる通信電文が発行された時刻、を収集し、setAttribute ＡＰＩ呼び出し情報３２０として、障害解析情報管理部３２に通知する。
【００５０】
さらに、障害解析情報収集部３１は、ＳＩＰサーバ１内で障害（例外）が発生した場合に、例外処理部１４が生成した例外オブジェクトにおいて、例外クラスのクラス名のインスタンスへの参照情報、例外のメッセージのインスタンスへの参照情報、および、スタックトレースのインスタンスへの参照情報を収集し、例外情報３３０として、障害解析情報管理部３２に通知する。
【００５１】
また、障害解析情報収集部３１は、ＳＩＰサーブレット削除部１３が、ＳＩＰサーブレット２０を削除した旨の情報を収集する。そして、障害解析情報収集部３１は、ＳＩＰサーブレットコンテナ管理情報１００に記憶された、その削除されたＳＩＰサーブレット２０に関する情報（１行（１レコード）分のＳＩＰサーブレット２０の管理情報）への参照情報（ＳＩＰサーブレット生成情報３１０）を含むＳＩＰサーブレット削除情報を生成して障害解析情報管理部３２に通知する。
【００５２】
障害解析情報管理部（障害解析情報管理手段）３２は、障害解析情報収集部３１が収集した障害解析のために必要な各情報を取得し、生成されたＳＩＰサーブレット２０毎に障害解析管理テーブル３００（後記する図３（ｂ）参照）に記憶する。
具体的には、障害解析情報管理部３２は、ＳＩＰサーブレット２０の生成時に、障害解析情報収集部３１からＳＩＰサーブレット生成情報３１０を取得し障害解析管理テーブル３００に記憶する。障害解析情報管理部３２は、setAttribute ＡＰＩ呼び出し時に、障害解析情報収集部３１からsetAttribute ＡＰＩ呼び出し情報３２０を取得し障害解析管理テーブル３００に記憶する。また、障害解析情報管理部３２は、障害（例外）発生時に、障害解析情報収集部３１から例外情報３３０を取得し、障害解析管理テーブル３００に記憶した上で、例外情報３３０を記憶した旨を障害解析情報出力部３３に通知する。さらに、障害解析情報管理部３２は、ＳＩＰサーブレット２０の削除時に、障害解析情報収集部３１からＳＩＰサーブレット削除情報を取得し、障害解析管理テーブル３００の該当するＳＩＰサーブレット２０に関する情報を削除する。
【００５３】
図３は、本実施形態に係る障害解析管理テーブル３００に記憶される障害解析情報のデータ構成を説明するための図である。図３においては、障害解析管理テーブル３００が記憶する情報の内容を説明するため、図３（ａ）において、図２に示したＳＩＰサーブレットコンテナ管理情報１００を示し、図３（ｂ）において、障害解析管理テーブル３００を示している。なお、この障害解析管理テーブル３００は、不図示のメモリ部に記憶される。
【００５４】
図３（ｂ）に示すように、障害解析管理テーブル３００には、大きく分けて、ＳＩＰサーブレット生成情報３１０と、setAttribute ＡＰＩ呼び出し情報３２０と、例外情報３３０とが記憶される。ＳＩＰサーブレット生成情報３１０は、前記したように、ＳＩＰサーブレットコンテナ１０が管理するＳＩＰサーブレットコンテナ管理情報１００（図２，図３（ａ））に記憶された１つのＳＩＰサーブレット２０に関する情報（１行（１レコード）分のＳＩＰサーブレット２０の管理情報）への参照情報である。そして、障害解析管理テーブル３００には、ＳＩＰサーブレット２０毎に生成されたこのＳＩＰサーブレット生成情報３１０に対応付けて、setAttribute ＡＰＩ呼び出し情報３２０と、例外情報３３０とが記憶される。
【００５５】
setAttibute ＡＰＩ呼び出し情報３２０には、setAttribute関連情報３２１およびsend関連情報３２２が記憶される。そして、このsetAttribute関連情報３２１には、setAttribute ＡＰＩが発行される度にその時刻と、setAttribute ＡＰＩ呼び出しパラメータ（name, attribute）のインスタンスへの参照情報とが記憶される。また、send関連情報３２２には、sendメソッドによる通信電文が発行される度にその時刻と、sendメソッドのパラメータ（図３（ｂ）において、「Response（パラメータ）」と表記）のインスタンスへの参照情報とが記憶される。
【００５６】
例外情報３３０には、ＳＩＰサーブレットコンテナ１０の例外処理部１４が生成した例外オブジェクトにおける、例外クラスのクラス名のインスタンスへの参照情報、例外のメッセージのインスタンスへの参照情報、および、スタックトレースのインスタンスへの参照情報が記憶される。
【００５７】
図１に戻り、障害解析情報出力部（障害解析情報出力手段）３３は、障害解析情報管理部３２から、障害解析管理テーブル３００に例外情報３３０を記憶した旨の通知を受信すると、障害解析管理テーブル３００（図３（ｂ））を参照し、当該ＳＩＰサーブレット２０に関する障害解析情報を抽出して出力する。なお、ここで、障害解析情報とは、障害解析管理テーブル３００において１つのＳＩＰサーブレット２０に関する情報として記憶されている、ＳＩＰサーブレット生成情報３１０、setAttibute ＡＰＩ呼び出し情報３２０および例外情報３３０を含む情報である。
【００５８】
なお、このＳＩＰサーバ１をプログラム実行処理により実現するため、記憶部（不図示）には、ＳＩＰサーバ１の各処理部（ＳＩＰサーブレットコンテナ１０のＳＩＰサーブレット生成部１１〜例外処理部１４、ＳＩＰサーブレット２０のサービス処理部２１および情報複製部２２、障害解析情報収集機能３０の障害解析情報収集部３１〜障害解析情報出力部３３）により構成される制御部（不図示）の機能を実現するためのプログラム（障害解析情報収集プログラムを含む）が格納される。そして、制御部は、記憶部に記憶されたそのプログラムを、ＣＰＵ（不図示）がＲＡＭ等で実現されるメモリ部（不図示）に展開し実行することで実現される。
【００５９】
＜処理の流れ＞
次に、図４および図５を参照して、本実施形態に係る障害解析情報収集機能３０を備えるＳＩＰサーバ１の処理の流れを説明する。
図４において、ＳＩＰサーバ１が正常時に行う障害解析情報収集処理を説明する。また、図５において、ＳＩＰサーバ１に障害（例外）が発生した場合の障害解析情報収集処理を説明する。
【００６０】
≪正常時の処理≫
図４は、本実施形態に係る障害解析情報収集機能３０を備えるＳＩＰサーバ１の正常時の処理の流れを示すシーケンス図である。
【００６１】
（ＳＩＰサーブレット生成）
まず、ＳＩＰサーバ１のＳＩＰサーブレットコンテナ１０は、ＳＩＰ端末５等からＳＩＰメッセージ（ＩＮＶＩＴＥ等）を受け付ける（ステップＳ１０）。
【００６２】
そして、ＳＩＰサーブレットコンテナ１０のＳＩＰサーブレット生成部１１が、受け付けたＳＩＰメッセージ（ＩＮＶＩＴＥ等）に対応したＳＩＰサーブレット２０を生成する（ステップＳ１１）。そして、通信管理部１２が、生成したＳＩＰサーブレット２０に関する管理情報オブジェクトを生成しメモリ部に記憶した上で、ＳＩＰサーブレットコンテナ管理情報１００（図２参照）の各データ項目に、当該ＳＩＰサーブレット２０の各情報を記憶する。
【００６３】
続いて、障害解析情報収集部３１は、新たに生成されたＳＩＰサーブレット２０について、ＳＩＰサーブレットコンテナ管理情報１００に記憶された１つのＳＩＰサーブレット２０に関する情報（１行（１レコード）分のＳＩＰサーブレット２０の管理情報）への参照情報をＳＩＰサーブレット生成情報３１０として収集する（ステップＳ１２）。
そして、障害解析情報収集部３１は、収集したＳＩＰサーブレット生成情報３１０を障害解析情報管理部３２に通知する（ステップＳ１３）。
【００６４】
次に、障害解析情報管理部３２は、障害解析管理テーブル３００（図３（ｂ）参照）に、新たなレコードを作成し、受信したＳＩＰサーブレット生成情報３１０を記憶する（ステップＳ１４）。
【００６５】
続いて、ＳＩＰサーブレットコンテナ１０が、生成したＳＩＰサーブレット２０の「doInvite」を呼び出し（ステップＳ１５）、アプリケーションを起動して処理を実行する。なお、以降のアプリケーション毎に固有の処理については、説明を省略する。
【００６６】
（setAttribute ＡＰＩ呼び出し）
次に、ＳＩＰサーブレット２０の情報複製部２２は、ＳＩＰサーブレット２０が保持する情報を他のＳＩＰサーバ１に複製するため、setAttribute ＡＰＩを呼び出す（ステップＳ２０）。
【００６７】
続いて、障害解析情報収集部３１は、setAttribute ＡＰＩの呼び出しに関連する情報（図３（ｂ）のsetAttribute関連情報３２１およびsend関連情報３２２）を、setAttribute ＡＰＩ呼び出し情報３２０として収集する（ステップＳ２１）。そして、障害解析情報収集部３１は、その収集したsetAttribute ＡＰＩ呼び出し情報３２０を、ＳＩＰサーブレットコンテナ１０に出力する（ステップＳ２２）。
【００６８】
また、障害解析情報収集部３１は、その収集したsetAttribute ＡＰＩ呼び出し情報３２０を、障害解析情報管理部３２に通知する（ステップＳ２３）。
【００６９】
次に、障害解析情報管理部３２は、該当するＳＩＰサーブレット２０（ＳＩＰサーブレット生成情報３１０）に対応付けた情報として、障害解析管理テーブル３００（図３（ｂ）参照）にsetAttribute ＡＰＩ呼び出し情報３２０を記憶する（ステップＳ２４）。
なお、このsetAttribute ＡＰＩ呼び出し情報３２０を記憶する処理は、ＳＩＰサーブレット２０によって、例えば、所定の時間間隔でsetAttribute ＡＰＩが呼び出される毎に実行される。
【００７０】
（ＳＩＰサーブレット削除）
次に、ＳＩＰサーブレットコンテナ１０は、ＳＩＰサーブレット２０から「doBye」の応答を受信する（ステップＳ３０）。
【００７１】
そして、ＳＩＰサーブレットコンテナ１０のＳＩＰサーブレット削除部１３が、受信した「doBye」メッセージの応答に示されるＳＩＰサーブレット２０を削除する（ステップＳ３１）。次に、通信管理部１２は、ＳＩＰサーブレットコンテナ管理情報１００（図２参照）から、削除したＳＩＰサーブレット２０に関する各情報を、削除する。なお、管理情報オブジェクトの実体は、通信管理部１２が、例えば、Ｊａｖａで規定されるＧＣ（Garbage Collection：ガーベジ・コレクション）の処理により削除する。
【００７２】
続いて、障害解析情報収集部３１は、ＳＩＰサーブレット削除部１３が、ＳＩＰサーブレット２０を削除した旨の情報を収集する（ステップＳ３２）。そして、障害解析情報収集部３１は、ＳＩＰサーブレットコンテナ管理情報１００に記憶された、その削除されたＳＩＰサーブレット２０に関する情報（１行分のＳＩＰサーブレット２０の管理情報）への参照情報（ＳＩＰサーブレット生成情報３１０）を含むＳＩＰサーブレット削除情報を生成して障害解析情報管理部３２に通知する（ステップＳ３３）。
【００７３】
次に、障害解析情報管理部３２は、障害解析管理テーブル３００（図３（ｂ））に記憶されたＳＩＰサーブレット２０毎の障害解析情報のうち、ＳＩＰサーブレット削除情報に示されるＳＩＰサーブレット生成情報３１０に対応するＳＩＰサーブレット２０の情報（障害解析情報）を削除する（ステップＳ３４）。
【００７４】
≪障害発生時の処理≫
図５は、本実施形態に係る障害解析情報収集機能３０を備えるＳＩＰサーバ１の障害発生時の処理の流れを示すシーケンス図である。
図５においては、図４に示したステップＳ１０〜Ｓ１５およびステップＳ２０〜Ｓ２４の処理により、障害解析管理テーブル３００（図３（ｂ）参照）に、ＳＩＰサーブレット生成情報３１０およびsetAttribute ＡＰＩ呼び出し情報３２０が既に記憶されているものとする。
【００７５】
まず、ＳＩＰサーブレットコンテナ１０の例外処理部１４は、障害（例外）が発生すると、例外オブジェクトを生成し（ステップＳ４０）、例外ハンドラ（例外発生時の処理）を実行する。その際に、例外処理部１４は、例外オブジェクトとして、例外クラスのクラス名のインスタンス、例外ハンドラに基づき実行された例外のメッセージのインスタンス、スタックトレースのインスタンスを生成する。
【００７６】
次に、障害解析情報収集部３１は、例外処理部１４が例外オブジェクトを生成するか否かを監視しており、例外処理部１４が例外オブジェクトを生成すると、例外クラスのクラス名のインスタンスへの参照情報、例外のメッセージのインスタンスへの参照情報、および、スタックトレースのインスタンスへの参照情報を、例外情報３３０として収集する（ステップＳ４１）。そして、障害解析情報収集部３１は、その収集した例外情報３３０を、障害解析情報管理部３２に通知する（ステップＳ４２）。
【００７７】
次に、障害解析情報管理部３２は、該当するＳＩＰサーブレット２０（ＳＩＰサーブレット生成情報３１０）に対応付けた情報として、障害解析管理テーブル３００（図３（ｂ）参照）に例外情報３３０を記憶する（ステップＳ４３）。そして、障害解析情報管理部３２は、障害解析管理テーブル３００に例外情報３３０を記憶した旨を障害解析情報出力部３３に通知する（ステップＳ４４）。
【００７８】
続いて、障害解析情報出力部３３は、当該例外情報３３０が通知されたＳＩＰサーブレット２０に関する障害解析情報を、障害解析管理テーブル３００から抽出して出力する（ステップＳ４５）。
【００７９】
なお、障害解析情報出力部３３による障害解析情報の出力が終了するまで、当該ＳＩＰサーブレット２０に関する各情報（管理情報オブジェクトやＳＩＰサーブレットコンテナ管理情報１００、障害解析管理テーブル３００等）が削除されないように関連する各処理部が排他制御を行う。
また、障害解析情報出力部３３による障害解析情報の出力が終了した後に、ＳＩＰサーブレットコンテナ１０が、障害（例外）が発生したＳＩＰサーブレット２０を削除するようにしてもよい。その場合、図４に示したステップＳ３１〜Ｓ３４の処理と同様の処理を行うことにより、ＳＩＰサーブレットコンテナ管理情報１００（図２参照）および障害解析管理テーブル３００（図３（ｂ）参照）から、当該ＳＩＰサーブレット２０に関する情報を削除することができる。
【００８０】
以上説明したように、本実施形態に係る障害解析情報収集プログラムにより実現される障害解析情報収集機能３０を備えるＳＩＰサーバ１によれば、既存のＳＩＰサーブレットコンテナ１０で管理される情報への参照情報を障害解析情報としてメモリに収集することにより、サービス提供時等においても、障害解析に必要な情報（障害解析情報）を、処理性能への影響を低減させて出力することができる。よって、障害発生時に、被疑箇所の詳細なログを出力するように通信プログラムを入れ替える必要がなく、通信サービス開発時のデバックおよび通信サービス提供時の障害解析にかかる時間を短縮することができる。
【００８１】
＜変形例１＞
本実施形態に係る障害解析情報収集機能３０を備えるＳＩＰサーバ１による処理では、サービス提供中（ＳＩＰサーブレット２０の起動中）のＳＩＰサーブレット２０に関する情報のみを、障害解析情報の対象とした。これに対し、サービス提供のための通信が終了した、つまり、生成したＳＩＰサーブレット２０を削除した後においても、障害解析管理テーブル３００（図３（ｂ）参照）に記憶した各ＳＩＰサーブレット２０の障害解析情報を削除せずに保存しておき、外部装置等からの要求に応じて、保存した障害解析情報を出力するようにしてもよい。この場合、例えば、障害解析管理テーブル３００に格納するＳＩＰサーブレット２０の障害解析情報の件数に上限を設け、当該件数が上限（所定数）に達した場合に、障害解析情報管理部３２が、ＳＩＰサーブレット２０が削除された障害解析情報を削除するようにする。このＳＩＰサーブレット２０が削除された障害解析情報の削除順は、例えば、障害解析情報管理部３２が、当該障害解析情報の障害解析管理テーブル３００への記憶日時を記録しておき、古い順に削除してもよいし、ランダムに削除してもよい。
このようにすることで、通信サービスが終了したＳＩＰサーブレットの障害解析情報についても、障害解析情報の記憶に関するメモリ使用量を適正に維持した上で、障害解析に利用することができる。
【００８２】
＜変形例２＞
また、本実施形態に係る障害解析情報管理部３２は、ＳＩＰサーブレット２０が削除された後においても、障害解析管理テーブル３００（図３（ｂ）参照）に記憶された特定のＳＩＰサーブレット２０の障害解析情報を選択的に削除せずに保存するようにしてもよい。
例えば、障害解析情報管理部３２は、障害解析情報として記憶された参照情報の基となる情報のいずれかに、所定の例外発生条件に合致する情報が含まれるか否かを判定する。そして、障害解析情報管理部３２は、所定の例外発生条件（例えば、特定の着信先の電話番号や、特定のサービスに関する通信サービスを利用する際に例外の発生率が高いことが予め分かっている場合の、その着信先の電話番号やサービス）に合致する情報が含まれていない障害解析情報を削除し、所定の例外発生条件に合致する情報が含まれている障害解析情報を削除せずに障害解析管理テーブル３００に記憶し続ける。そして、外部装置等からの要求に応じて、障害解析情報出力部３３が、その障害解析情報を出力するようにする。
このようにすることで、障害発生の条件が分かっているものに関する障害解析を効率化することができる。
【００８３】
＜変形例３＞
本実施形態においては、ＳＩＰサーブレットコンテナ１０が生成するＳＩＰサーブレット２０により提供される通信サービスにおいて、障害解析情報を収集するための障害解析情報収集プログラムについて説明した。一方、Ｊａｖａの規格でありＳＩＰサーブレットに類似した仕様としてＨＴＴＰ（HyperText Transfer Protocol）サーブレットが規定されている。Ｗｅｂサーバ等がＨＴＴＰリクエスト（例えば、ＧＥＴリクエスト）を受信するとＨＴＴＰサーブレットコンテナがＨＴＴＰサーブレットを生成する。そして、生成されたＨＴＴＰサーブレットがＷｅｂページを作成する等の通信サービスを実行する。なお、このＨＴＴＰサーブレットとＳＩＰサーブレット２０とは、その構成や処理において共通点が多いため、１つのサーバに両方のサーブレットを実装し、ＨＴＴＰとＳＩＰとを連携させたサービスも提供可能である。
【００８４】
このＨＴＴＰサーブレットコンテナが生成するＨＴＴＰサーブレットにより提供される通信サービスにおいても、サービス提供時等に障害が発生しその障害解析情報を収集するためには、処理性能への影響を考慮して、被疑箇所の詳細なログを出力するように通信プログラムを入れ替える必要があった。つまり、ＳＩＰサーブレット２０により提供される通信サービスにおいて障害解析情報を提供する場合と同様の課題があった。
よって、本実施形態において説明した障害解析情報収集機能３０（障害解析情報収集プログラム）を、ＨＴＴＰサーブレットコンテナの機能をもつＷｅｂサーバに適応して備えさせることにより、ＨＴＴＰサーブレットによるサービス提供時等において、障害解析のために必要となる情報（障害解析情報）を参照情報としてメモリに収集しておき、障害発生時に、処理性能への影響を低減させて出力することが可能となる。
【符号の説明】
【００８５】
１      ＳＩＰサーバ
１０    ＳＩＰサーブレットコンテナ
１１    ＳＩＰサーブレット生成部
１２    通信管理部
１３    ＳＩＰサーブレット削除部
１４    例外処理部
２０    ＳＩＰサーブレット
２１    サービス処理部
２２    情報複製部
３０    障害解析情報収集機能
３１    障害解析情報収集部（障害解析情報収集手段）
３２    障害解析情報管理部（障害解析情報管理手段）
３３    障害解析情報出力部（障害解析情報出力手段）
１００  ＳＩＰサーブレットコンテナ管理情報
３００  障害解析管理テーブル
【図１】
2014021612.tif 000003
【図２】
2014021612.tif 000004
【図３】
2014021612.tif 000005
【図４】
2014021612.tif 000006
【図５】
2014021612.tif 000007