(57)【特許請求の範囲】
【請求項１】
メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部及び紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部を有し且つ関連するメッセージを紐付けする処理を行う紐付処理部を有するコンピュータに、
受信した担当メッセージ又は他の紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行うステップと、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される紐付処理部に送信するステップと、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信するステップと、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された紐付処理部又は前記メッセージ収集コマンドの送信元に送信するステップと、
を実行させるデータ収集処理プログラム。
【請求項２】
前記メッセージ収集コマンドを処理する際に、前記トランザクション管理テーブル格納部から予め定められた紐付けルールに従って紐付け完了したメッセージを読み出して出力する処理を停止させるステップ
を前記コンピュータにさらに実行させる請求項１記載のデータ収集処理プログラム。
【請求項３】
前記第２のルールに従って、前記トランザクション管理テーブル格納部に格納されており且つ前記キー文字列及び値の組み合わせにて関連付けられている特定のメッセージ群を他の紐付処理部を有する第２のコンピュータに出力するか又は紐付結果格納部に格納し、前記紐付結果格納部に前記特定のメッセージ群を格納した場合には、当該特定のメッセージ群に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む紐付完了通知を足跡情報管理部を有する第３のコンピュータに送信するステップ
をさらに前記コンピュータに実行させ、
前記足跡データ格納部に格納されている前記足跡レコードは、当該足跡レコードに含まれる前記キー文字列及び値の組み合わせを含む前記足跡情報を送信した通知回数と当該足跡情報を受信して処理した処理回数とを含み、
前記足跡情報管理部を有する第３のコンピュータに、
複数の前記紐付処理部のうち特定の紐付処理部を有する第４のコンピュータから前記紐付完了通知を受信した場合、当該紐付完了通知に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む削除コマンドを、前記第３の複数の組み合わせ及び前記第２のルールに従って特定された紐付処理部を有する第５のコンピュータに送信するステップ
を実行させ、
前記紐付処理部を有するコンピュータに、
前記削除コマンドを受信すると、前記削除コマンドに含まれる前記第３の複数の組み合わせで前記足跡データ格納部を検索して該当足跡レコードを特定すると共に削除し、前記該当足跡レコードに含まれる前記通知回数と前記処理回数との差を含む削除完了通知を前記足跡情報管理部を有する第３のコンピュータに送信するステップ
を実行させ、
前記足跡情報管理部を有する第３のコンピュータに、
前記削除コマンドに対応する前記削除完了通知が全て受信された場合には、前記削除完了通知に含まれる前記差の合計値が０になっているか確認し、０になっていない場合には、再度前記削除コマンドを送信するステップ
を実行させるための請求項１又は２記載のデータ収集処理プログラム。
【請求項４】
前記新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行うステップにおいて、
受信した担当メッセージに含まれるキー文字列及び値の複数の組み合わせのいずれもが前記足跡データ格納部に格納されている足跡レコードに含まれていなければ前記複数の組み合わせを含む足跡レコードを前記足跡データ格納部に新規登録し、前記複数の組み合わせのうち一部が前記足跡データ格納部に格納されているいずれかの足跡レコードに含まれていれば前記複数の組み合わせのうち不一致の組み合わせを当該足跡レコードに追加し、
他の前記紐付処理部からキー文字列及び値の第５の複数の組み合わせを含む足跡情報を受信した場合、当該足跡情報に含まれる前記第５の複数の組み合わせのいずれもが前記足跡データ格納部に格納されている足跡レコードに含まれていなければ前記第５の複数の組み合わせを含む足跡レコードを前記足跡データ格納部に新規登録し、前記第５の複数の組み合わせのうち一部が前記足跡データ格納部に格納されているいずれかの足跡レコードに含まれていれば前記第５の複数の組み合わせのうち不一致の組み合わせを当該足跡レコードに追加する、
請求項１乃至３のいずれか１項記載のデータ収集処理プログラム。
【請求項５】
関連するメッセージを紐付けする処理を行う紐付処理装置であって、
前記メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部と、
足跡処理部と、
紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部と、
メッセージ処理部と、
を有し、
前記足跡処理部は、
受信した担当メッセージ又は他の紐付処理装置から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行う足跡データ格納部更新処理を実施し、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される紐付処理装置に送信し、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信し、
前記メッセージ処理部は、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された紐付処理装置又は前記メッセージ収集コマンドの送信元に送信する
紐付処理装置。
【請求項６】
関連するメッセージを紐付けする処理を行う複数の紐付処理部と、
足跡情報管理部と、
紐付結果格納部と、
を有し、
各前記紐付処理部は、
前記メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部と、
足跡処理部と、
紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部と、
メッセージ処理部と、
を含み、
前記足跡処理部は、
受信した担当メッセージ又は他の前記紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行う足跡データ格納部更新処理を実施し、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される前記紐付処理部に送信し、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信し、
前記メッセージ処理部は、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された前記紐付処理部又は前記メッセージ収集コマンドの送信元に送信し、
各前記紐付処理部は、
前記第２のルールに従って、前記トランザクション管理テーブル格納部に格納されており且つ前記キー文字列及び値の組み合わせにて関連付けられている特定のメッセージ群を他の前記紐付処理部に出力するか又は前記紐付結果格納部に格納し、前記紐付結果格納部に前記特定のメッセージ群を格納した場合には、当該特定のメッセージ群に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む紐付完了通知を前記足跡情報管理部に送信する出力制御部
をさらに有し、
前記足跡データ格納部に格納されている前記足跡レコードは、当該足跡レコードに含まれる前記キー文字列及び値の組み合わせを含む前記足跡情報を送信した通知回数と当該足跡情報を受信して処理した処理回数とを含み、
前記足跡情報管理部は、
前記複数の紐付処理部のうち特定の紐付処理部の前記出力制御部から前記紐付完了通知を受信した場合、当該紐付完了通知に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む削除コマンドを、前記第３の複数の組み合わせ及び前記第２のルールに従って特定された前記紐付処理部に送信し、
前記紐付処理部の前記足跡処理部は、
前記削除コマンドを受信すると、前記削除コマンドに含まれる前記第３の複数の組み合わせで前記足跡データ格納部を検索して該当足跡レコードを特定すると共に削除し、前記該当足跡レコードに含まれる前記通知回数と前記処理回数との差を含む削除完了通知を前記足跡情報管理部に送信し、
前記足跡情報管理部は、
前記削除コマンドに対応する前記削除完了通知が全て受信された場合には、前記削除完了通知に含まれる前記差の合計値が０になっているか確認し、０になっていない場合には、再度前記削除コマンドを送信する
並列紐付処理システム。
【請求項７】
メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部及び紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部を有し且つ関連するメッセージを紐付けする処理を行う紐付処理部を有するコンピュータにより実行されるデータ収集処理方法であって、
受信した担当メッセージ又は他の前記紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行うステップと、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される前記紐付処理部に送信するステップと、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信するステップと、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された前記紐付処理部又は前記メッセージ収集コマンドの送信元に送信するステップと、
を含むデータ収集処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、関連するメッセージの紐付けを行う紐付処理技術に関する。
【背景技術】
【０００２】
電子商取引など複数レイヤのサーバ間にわたってメッセージが交換され処理が進行するシステムでは、要求ＩＤのようなメッセージを関連付ける文字列をキーにしてメッセージ交換がなされるケースが多い。さらにＷｅｂサーバ、アプリケーションサーバなど各レイヤ間で異なるキー文字列が使われることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−１２８３４２号公報
【特許文献２】特開平１１−５３３２３号公報
【特許文献３】特開平５−６１６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
システムの挙動監視やリクエスト遅延問題を解析する場合、これらの複数のキー文字列を手がかりに、関連したメッセージを纏め上げる処理（すなわち紐付処理）を高速に行い、特定の要求に対応するメッセージが流れた経路やタイミングを解析する必要がある。
【０００５】
しかしながら、システム内を流れるメッセージは膨大であり、１つの紐付処理部（例えば１台のコンピュータ）だけで処理するのでは時間がかかりすぎる場合がある。従って、例えば複数の紐付処理部によりキー文字列などに応じて並列して紐付処理を実施するような方策が考えられる。
【０００６】
１つの紐付処理部で紐付処理を行っている場合には、例えば、クライアント端末からのリクエストに対する応答が返ってこないといった状態において紐付け未完了のメッセージを抽出することは、１つの紐付処理部のバッファに保持されている紐付け未完了のメッセージを読み出せばよいので比較的容易である。しかしながら、上で述べたような方策を採用する場合においては、いずれの紐付処理部に分散して保持されているのかが不明であり、簡単には該当メッセージを抽出することができない。
【０００７】
従って、本技術の目的は、複数の紐付処理部により並列に紐付処理を実施する場合において、リクエストに対する応答が返ってこないといった状態に係る紐付け未完了のメッセージを自動的に抽出する技術を提供することである。
【課題を解決するための手段】
【０００８】
本データ収集処理方法は、メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部及び紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部を有し且つ関連するメッセージを紐付けする処理を行う紐付処理部を有するコンピュータにより実行される。そして、（Ａ）受信した担当メッセージ又は他の紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行うステップと、（Ｂ）新規登録又は更新された足跡レコードに含まれるキー文字列及び値の組み合わせを足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される紐付処理部に送信するステップと、キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、足跡データ格納部を第１の組み合わせで検索し、該当足跡レコードのデータを検索コマンドの送信元に返信するステップと、（Ｃ）キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、トランザクション管理テーブル格納部を第２の組み合わせで検索し、該当するメッセージを含むメッセージ収集コマンドを予め定められた第２のルールに基づき特定された紐付処理部又はメッセージ収集コマンドの送信元に送信するステップとを含む。
【発明の効果】
【０００９】
複数の紐付処理部で並列で紐付処理を実施する場合において、紐付け未完了のメッセージを自動的に抽出できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、解析対象システムを示す図である。
【図２】図２は、解析対象システムで交換されるメッセージの例を示す図である。
【図３】図３は、並列紐付処理を説明するための図である。
【図４】図４は、並列紐付処理を説明するための図である。
【図５】図５は、並列紐付処理を説明するための図である。
【図６】図６は、並列紐付処理システムのシステム概要図である。
【図７】図７は、紐付処理部の機能ブロック図である。
【図８Ａ】図８Ａは、トランザクション管理テーブルの第１の例を示す図である。
【図８Ｂ】図８Ｂは、トランザクション管理テーブルの第２の例を示す図である。
【図９】図９は、足跡テーブルの一例を示す図である。
【図１０】図１０は、足跡情報通知処理の処理フローを示す図である。
【図１１】図１１は、特定データ格納部に格納されるデータの一例を示す図である。
【図１２】図１２は、特定データ格納部に格納されるデータの一例を示す図である。
【図１３】図１３は、足跡情報受信処理の処理フローを示す図である。
【図１４】図１４は、足跡情報通知処理の具体例を示す図である。
【図１５】図１５は、足跡情報通知処理の具体例を示す図である。
【図１６】図１６は、足跡情報通知処理の具体例を示す図である。
【図１７】図１７は、足跡情報通知処理の具体例を示す図である。
【図１８】図１８は、検索処理の処理フローを示す図である。
【図１９】図１９は、メッセージ収集処理の処理フローを示す図である。
【図２０】図２０は、メッセージ収集処理の処理フローを示す図である。
【図２１】図２１は、メッセージ収集処理の処理フローを示す図である。
【図２２】図２２は、足跡消去処理の処理フローを示す図である。
【図２３】図２３は、足跡消去処理の処理フローを示す図である。
【図２４】図２４は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
最初に、紐付処理を複数の紐付処理部で分担して実施する際の処理について説明する。
【００１２】
図１に、解析対象システムの一例を示す。この解析対象システムは、サーバ１乃至３を有しており、サーバ１は、クライアント端末とメッセージのやりとりを行うと共に、サーバ２ともメッセージのやりとりを行う。また、サーバ２は、サーバ１とメッセージのやりとりを行うと共に、サーバ３ともメッセージのやりとりを行う。サーバ３は、サーバ２とメッセージのやりとりを行う。このように複数のコンピュータ間でメッセージのやりとりを行うことにより、クライアント端末からのリクエストに対してレスポンスを返すようになっている。
【００１３】
図２にこのようなシステムにおいてやりとりされるメッセージの一例を示す。クライアント端末は、例えばＩＤ＝１００（ＩＤはキー文字列（セッション番号やリクエスト番号）であり１００はその値）というデータを含むメッセージＭ１をサーバ１に送信する。サーバ１は、メッセージＭ１を受信すると、ＩＤ＝１００及びＳＥＳ＝１０（ＳＥＳはキー文字列であり１０はその値）というデータを含むメッセージＭ３をサーバ２に送信する。その後、サーバ２は、ＳＥＳ＝１０というデータを含むメッセージＭ５をサーバ３に送信する。サーバ３は、メッセージＭ５を受信した後処理を行って、ＳＥＳ＝１０というデータを含むメッセージＭ７をサーバ２に送信する。サーバ２は、メッセージＭ７を受信すると、ＩＤ＝１００というデータを含むメッセージＭ９をサーバ１に送信する。サーバ１は、メッセージＭ９を受信すると、ＩＤ＝１００というデータを含むメッセージＭ１１をクライアント端末に送信する。
【００１４】
同様に、クライアント端末は、例えばＩＤ＝２００というデータを含むメッセージＭ２をサーバ１に送信する。サーバ１は、メッセージＭ２を受信すると、ＩＤ＝２００及びＳＥＳ＝２０というデータを含むメッセージＭ４をサーバ２に送信する。その後、サーバ２は、ＳＥＳ＝２０というデータを含むメッセージＭ６をサーバ３に送信する。サーバ３は、メッセージＭ６を受信した後処理を行って、ＳＥＳ＝２０というデータを含むメッセージＭ８をサーバ２に送信する。サーバ２は、メッセージＭ８を受信すると、ＩＤ＝２００というデータを含むメッセージＭ１０をサーバ１に送信する。サーバ１は、メッセージＭ１０を受信すると、ＩＤ＝２００というデータを含むメッセージＭ１２をクライアント端末に送信する。
【００１５】
このように解析対象システム内及び解析対象システムとクライアント端末との間に流れるメッセージをルータやスイッチなどでキャプチャーして、並列紐付処理システムで以下に説明するような紐付処理を実施する。
【００１６】
具体的には、図３に示すように、メッセージ受信部が、キャプチャーされたメッセージを受信し、当該メッセージをメッセージ振分部に出力する。ここでは、６つの紐付処理部が、キー文字列ＳＥＳによる紐付けを行うグループＡと、キー文字列ＩＤによる紐付けを行うグループＢとに分けられており、さらにグループＡ内の紐付処理部ａ１乃至ａ３は、キー文字列ＳＥＳの値に応じてメッセージを分担して紐付けする。同様に、グループＢ内の紐付処理部ｂ１乃至ｂ３は、キー文字列ＩＤの値に応じてメッセージを分担して紐付けする。メッセージ振分部は、このような振り分けルールを保持しておき、キー文字列及び値によって担当の紐付処理部を特定して、当該紐付処理部にメッセージを送信する。
【００１７】
例えば、紐付処理部ａ１は、ＳＥＳ＝２０を含むメッセージを担当し、紐付処理部ａ２は、ＳＥＳ＝１０を含むメッセージを担当し、紐付処理部ａ３は、ＳＥＳ＝３０を含むメッセージを担当する。また、紐付処理部ｂ１は、ＩＤ＝１００を含むメッセージを担当し、紐付処理部ｂ２は、ＩＤ＝２００を含むメッセージを担当し、紐付処理部ｂ３は、ＩＤ＝３００を含むメッセージを担当する。なお、キー文字列には優先度が付与されており、ＳＥＳとＩＤであればＳＥＳを優先するものとする。
【００１８】
そうすると、ＩＤ＝１００のみを含むメッセージＭ１は、メッセージ振分部から紐付処理部ｂ１に振り分けられ、ＩＤ＝２００のみを含むメッセージＭ２は、メッセージ振分部から紐付処理部ｂ２に振り分けられる。また、ＳＥＳ＝２０のみを含むメッセージＭ６は、メッセージ振分部から紐付処理部ａ１に振り分けられ、ＳＥＳ＝１０のみを含むメッセージＭ５は、メッセージ振分部から紐付処理部ａ２に振り分けられる。さらに、ＩＤ＝２００及びＳＥＳ＝２０を含むメッセージＭ４については、メッセージ振分部から紐付処理部ａ１に振り分けられ、ＩＤ＝１００及びＳＥＳ＝１０を含むメッセージＭ３については、メッセージ振分部から紐付処理部ａ２に振り分けられる。
【００１９】
その後、図４に示すように、メッセージ受信部が、ＳＥＳ＝１０を含むメッセージＭ５及びＭ７を受信し、メッセージ振分部に出力すると、上で述べたようなルールに従って、当該メッセージＭ５及びＭ７を一旦紐付処理部ａ２に振り分ける。ここで、グループＡ内の紐付処理部ａ１乃至ａ３に、キー文字列及び値の同一の組み合わせ（ここではＳＥＳ＝１０）を含むメッセージが３つ貯まると、当該メッセージに含まれるキー文字列及び値の他の組み合わせ（ここではＩＤ＝１００）に従って特定される紐付処理部ｂ１に、これら３つのメッセージを転送するものとする。具体的には、メッセージＭ３、Ｍ５及びＭ７を、紐付処理部ａ２から紐付処理部ｂ１に転送する。
【００２０】
さらに、図５に示すように、メッセージ受信部が、ＩＤ＝１００を含むメッセージＭ９及びＭ１１を受信し、メッセージ振分部に出力すると、上で述べたようなルールに従って、当該メッセージＭ９及びＭ１１を紐付処理部ｂ１に振り分ける。ここで、グループＢ内の紐付処理部ｂ１乃至ｂ３に、担当するキー文字列及び値（ここではＩＤ＝１００）又はそれに関連するキー文字列及び値（ここではＳＥＳ＝１０）を含むメッセージが６つそろうと、紐付け完了ということで当該メッセージ群を紐付結果格納部に格納するものとする。具体的には、メッセージＭ１、Ｍ３、Ｍ５、Ｍ７、Ｍ９及びＭ１１を、紐付結果格納部に格納する。
【００２１】
このようにして、図２に示したようなクライアント端末からの１つのリクエストに応じて発生するメッセージ群が紐付けされて、紐付結果格納部に蓄積されるようになる。
【００２２】
一方、上でも述べたが、処理が未完了状態にある特定のリクエストの進捗状況を正確に把握したいという要求が発生するケースがある。例えば、Ｗｅｂページにおいて商品の購入ボタンを押したが、反応が返ってこない時など、どのような問題が発生したのかを検証したいというものである。しかしながら、処理が未完了状態では、紐付処理も未完了であるため、メッセージが複数の紐付処理部に分散して保持されており、全紐付処理部への問い合わせを行う必要がある。これは無駄に紐付処理部に負荷をかける。
【００２３】
また、問い合わせをする以前に、一部のキー文字列だけを知っていても、紐付けされるべきメッセージの全てを収集することはできない。上で述べた例でも、ＩＤ＝１００だけでは必要なメッセージを抽出できず、ＳＥＳ＝１０を知っていなければならない。よって、単に問い合わせるだけでは、漏れなくメッセージを収集することが難しい。
【００２４】
さらに、各紐付処理部は非同期的に動作しているため、特定の紐付処理部に問い合わせを行ってメッセージを収集しようとしている間に、メッセージが別の紐付処理部へ移動する可能性がある。これを防止するために、並列紐付処理システム全体を一時停止するようであれば、システム全体のパフォーマンスが低下することになる。
【００２５】
そこで、本実施の形態では、以下のような構成を採用することによって、紐付け未完了のメッセージを、パフォーマンスの低下を最小限に抑えつつ正確に収集できるようにする。
【００２６】
図６に、本実施の形態に係るシステム概要図を示す。本実施の形態における並列紐付処理システム１００は、解析対象システム３００に接続されている。ここでは、解析対象システム３００は、図１に示したものと同じであるものとする。並列紐付処理システム１００は、上でも述べたメッセージ受信部１１０及びメッセージ振分部１２０と、複数の紐付処理部１３１乃至１３６と、紐付結果格納部１５０と、新たに導入された足跡情報管理部１４０とを含む。メッセージ受信部１１０とメッセージ振分部１２０と紐付処理部１３１乃至１３６と足跡情報管理部１４０とは、１又は複数のコンピュータ上に実装されており、複数のコンピュータで実装される場合には、ネットワークにて接続されている。紐付処理部１３１乃至１３６は紐付処理を並列に実施するため、各々別のコンピュータ上に実装することが好ましいが、必ずしも全てを異なるコンピュータ上に実装する必要はない。
【００２７】
なお、管理者コンソール２００は、並列紐付処理システム１００に接続されており、足跡情報管理部１４０に対して指示を出力し、処理結果を受信する。
【００２８】
上でも説明したが、解析対象システム３００でやりとりされるメッセージは全てキャプチャーされてメッセージ受信部１１０に出力される。メッセージ受信部１１０は、受信したメッセージをメッセージ振分部１２０に出力する。メッセージ振分部１２０は、予め定められている振り分けルール及びメッセージに含まれるキー文字列及び値の組み合わせに従って振り分け先の紐付処理部を特定し、当該振り分け先の紐付処理部にメッセージを出力する。紐付処理部１３１乃至１３６は、上で述べた例と同じくキー文字列ＳＥＳについての紐付処理を実施するグループＡと、キー文字列ＩＤについての紐付処理を実施するグループＢに分けられているものとする。但し、このようなグループ分けは、キー文字列の種類数などに応じて任意に設定される。紐付処理部１３１乃至１３６は、メッセージを転送しあったり、後に述べる足跡情報を交換したり、足跡情報管理部１４０から送られてきたメッセージ収集コマンド（Collectコマンド）を転送し合ったり、といったように通信を行う。なお、紐付けが完了したメッセージについては、紐付結果格納部１５０に格納される。
【００２９】
足跡情報管理部１４０は、以下でも述べるように、管理者コンソール２００からの指示に応じて、キー文字列及び値の特定の組み合わせに関連する他の組み合わせを検索するための検索コマンド（Searchコマンド）を、該当する紐付処理部に送信して、その結果を該当紐付処理部から受信する。足跡情報管理部１４０は、さらに管理者コンソール２００に検索結果を出力する。足跡情報管理部１４０は、キー文字列及び値の組み合わせから該当する紐付処理部を特定するためのデータが格納されている特定データ格納部１４１にアクセスできるようになっている。特定データ格納部１４１を、各紐付処理部１３１乃至１３６にも配置する場合もある。
【００３０】
各紐付処理部１３１乃至１３６は、図７に示すような構成を有する。紐付処理部１３１は、足跡処理部１３１１と、足跡テーブル１３１５と、メッセージ処理部１３１２と、転送判断部１３１３と、出力制御部１３１４と、トランザクション管理テーブル１３１６と、紐付処理ルール格納部１３１７とを有する。メッセージ処理部１３１２は、他の紐付処理部又はメッセージ振分部１２０からメッセージを受信し、トランザクション管理テーブル１３１６に登録する。すなわち、トランザクション管理テーブル１３１６は、メッセージ格納部として機能する。また、受信メッセージについてのキー文字列及び値の組み合わせを足跡処理部１３１１に出力する。さらに、メッセージ処理部１３１２は、足跡情報管理部１４０からのコマンドに応じて以下で述べるような処理を実施する。この際、転送判断部１３１３及び出力制御部１３１４に対する制御も行う。転送判断部１３１３は、トランザクション管理テーブル１３１６に登録されているメッセージが、紐付処理ルール格納部１３１７に格納されている紐付けルールを満たしているか判断して、満たしている場合には、それらのメッセージを読み出すと共に、同じく紐付けルールに従って特定される紐付処理部に出力する又は紐付結果格納部１５０に格納するように、出力制御部１３１４に指示する。出力制御部１３１４は、転送判断部１３１３からの指示に従ってメッセージを、指示された出力先に出力する。
【００３１】
足跡処理部１３１１は、メッセージ処理部１３１２から受け取ったキー文字列及び値の組み合わせ又は他の紐付処理部から受信した足跡情報について処理を実施し、必要な場合には足跡テーブル１３１５を更新する。さらに、足跡テーブル１３１５を更新した場合には、更新に係る足跡レコードについての足跡情報を他の紐付処理部に送信する。また、足跡処理部１３１１は、足跡情報管理部１４０から検索コマンド（Searchコマンド）や足跡消去コマンド（Deleteコマンド）を受信した場合には、当該コマンドに応じた処理を実施し、足跡情報管理部１４０に処理結果を返信する。
【００３２】
図８Ａに、トランザクション管理テーブル１３１６に格納されるデータの一例を示す。図８Ａでは、ＳＥＳ＝１０及びＳＥＳ＝２０を担当している場合の例を示しており、キー文字列の列と、値の列と、該当するメッセージの列とが含まれている。キー文字列の列及び値の列には、担当するキー文字列及び値が登録され、メッセージの列には該当するメッセージのデータが登録される。図８Ａの第１レコードには、メッセージＭ４（ＩＤ＝２００，ＳＥＳ＝２０）及びメッセージＭ６（ＳＥＳ＝２０）が登録されており、第２レコードには、メッセージＭ３（ＩＤ＝１００，ＳＥＳ＝１０）及びメッセージＭ５（ＳＥＳ＝１０）が登録されている。
【００３３】
なお、図８Ｂに、トランザクション管理テーブル１３１６に格納されるデータの他の例を示す。図８Ｂでは、ＩＤ＝１００及びＩＤ＝２００を担当している場合の例を示しており、キー文字列の列と、値の列と、該当するメッセージの列とが含まれている。キー文字列の列及び値の列には、担当するキー文字列及び値が登録され、メッセージには該当するメッセージのデータが登録される。図８Ｂの第１レコードには、メッセージＭ２（ＩＤ＝２００）が登録されており、第２レコードには、メッセージＭ１（ＩＤ＝１００）が登録されている。
【００３４】
また、図９に、足跡テーブル１３１５に格納されるデータの一例を示す。図９の例では、キー文字列１の列と、値１の列と、キー文字列２の列と、値２の列と、通知数Ｎの列と、処理数Ｐの列とが設けられている。足跡テーブル１３１５には、紐付け未完了で紐付けされるべきメッセージについてのキー文字列及び値の複数の組み合わせが登録される。組み合わせの数は２以上の整数となる。図９の第１の足跡レコードの例では、ＳＥＳ＝２０とＩＤ＝２００とのうち少なくともいずれかは、紐付けられるべきメッセージに含まれる、ということを示している。第２の足跡レコードの例では、ＳＥＳ＝１０とＩＤ＝１００とのうち少なくともいずれかは、紐付けられるべきメッセージに含まれる、ということを示している。通知数は、この足跡レコードに関連して足跡情報を送信した回数（又は通知先数）を表し、処理数は、この足跡レコードに関連して足跡情報を受信した回数を表す。
【００３５】
次に、図１０乃至図２３を用いて、並列紐付処理システム１００の処理内容について説明する。メッセージ処理部１３１２は、他の紐付処理部又はメッセージ振分部１２０からキー文字列及び値の複数の組み合わせを含むメッセージを受信すると（ステップＳ１）、受信メッセージをトランザクション管理テーブル１３１６に登録する（ステップＳ３）。メッセージ処理部１３１２は、キー文字列及び値の組み合わせが１つしかないメッセージを受信した場合においてもステップＳ３を実施するが、ステップＳ７を除くステップＳ５以降の処理は行わない。
【００３６】
次に、メッセージ処理部１３１２は、受信メッセージについての通知を足跡処理部１３１１に出力する（ステップＳ５）。受信メッセージについての通知には、当該受信メッセージに含まれている、キー文字列及び値の全ての組み合わせが含まれる。なお、ステップＳ３の後に転送判断部１３１３により行われる処理については通常の紐付処理と同じである。簡単に述べると、メッセージ処理部１３１２は、転送判断部１３１３にメッセージの受信を通知し、転送判断部１３１３は通知に応じてトランザクション管理テーブル１３１６の更新レコードを確認する。そして、紐付処理ルール格納部１３１７に登録されているルールに規定されている条件を満たしているか判断する。このルールは、例えばキー文字列及び値の１つの担当組み合わせについて３つのメッセージが揃ったというような条件と、その際の転送先特定ルールとを含むルールである。ルールに規定されている条件を満たしていない場合には特に何もしない。ルールに規定されている条件を満たしている場合には、転送判断部１３１３は、トランザクション管理テーブル１３１６から更新レコードのメッセージを読み出し、当該更新レコードを削除し、読み出したメッセージを転送先特定ルールに従って特定される転送先（又は格納先）へ出力制御部１３１４に出力させる。例えば、ＳＥＳ＝２０についてのメッセージが揃った場合には、読み出したメッセージに含まれる、キー文字列及び値の他の組み合わせＩＤ＝２００から担当紐付処理部を特定して、当該紐付処理部にメッセージを転送する。
【００３７】
ＩＤ＝２００を担当する紐付処理部の紐付処理ルールの場合には、トランザクション管理テーブル１３１６において、ＩＤ＝２００についてのレコードにメッセージが６つ揃ったという条件と、転送先が紐付結果格納部１５０という転送先特定ルールが規定されている。
【００３８】
一方、足跡処理部１３１１は、メッセージ処理部１３１２から、受信メッセージについての通知を受信し、例えばメインメモリなどの記憶装置に格納する（ステップＳ９）。そして、足跡処理部１３１１は、通知に含まれるキー文字列及び値の複数の組み合わせが完全に一致する足跡レコードが既に足跡テーブル１３１５に登録されているか判断する（ステップＳ１１）。既に完全に一致するデータが足跡テーブル１３１５に登録されていれば、これ以上の処理を行う必要はないので、そのまま処理を終了する（ステップＳ１３）。
【００３９】
一方、完全に一致するデータが足跡テーブル１３１５に登録されているわけではない場合には、足跡処理部１３１１は、足跡テーブル更新処理を実施する（ステップＳ１５）。具体的には、通知に含まれるキー文字列及び値のいずれの組み合わせも、足跡テーブル１３１５に格納されている足跡レコードに含まれるキー文字列及び値のいずれの組み合わせとも一致しない場合には、通知に含まれるキー文字列及び値の複数の組み合わせについて足跡レコードを生成し、足跡テーブル１３１５に新規登録する。一方、通知に含まれるキー文字列及び値のいずれかの組み合わせが一致する足跡レコードが既に足跡テーブル１３１５に登録されているのであれば、当該足跡レコードに含まれないキー文字列及び値の組み合わせを当該足跡レコードに追加する形で足跡テーブル１３１５を更新する。例えば、ＳＥＳ＝１０及びＩＤ＝１００についての足跡レコードが既にあるところに、ＩＤ２＝５０、ＳＥＳ＝１０及びＩＤ＝１００を含む通知を受信した場合には、ＩＤ２＝５０というデータを追加してＳＥＳ＝１０、ＩＤ＝１００及びＩＤ２＝５０という足跡レコードを更新登録する。
【００４０】
そして、足跡処理部１３１１は、更新に係る足跡レコードに含まれるキー文字列及び値の組み合わせを含む足跡情報を生成すると共に、当該足跡情報の送信先を、自らが保持する又は足跡情報管理部１４０の特定データ格納部１４１に格納されているデータに従って特定する（ステップＳ１７）。
【００４１】
自らが保持する又は足跡情報管理部１４０の特定データ格納部１４１には、例えば図１１又は図１２に示すようなデータが格納されている。図１１の例では、キー文字列及び値との組み合わせに対応付けて、送信先の紐付処理部のＩＤ（サーバ名）が登録されている。このように１つ１つ送信先を登録するようにしても良い。一方、図１２の例では、送信先決定のための条件と、送信先の紐付処理部名（サーバ名）が登録されている。送信先決定のための条件は、図１２に示すように、ＩＤの値の法１０が０の場合といったように、その都度計算により決定するような方法で規定しても良い。
【００４２】
例えば、図９の第１の足跡レコードが初めて登録された場合には、ＳＥＳ＝２０とＩＤ＝２００とにより足跡情報が生成され、この足跡情報に含まれるＳＥＳ＝２０とＩＤ＝２００とのうち自紐付処理部の担当外のキー文字列及び値により送信先を決定する。ここでは自紐付処理部がＳＥＳ＝２０の担当であるとすると、ＩＤ＝２００により、例えば図１１の例に従うと紐付処理部１３５が送信先として特定される。
【００４３】
さらに、ＳＥＳ＝２０とＩＤ＝２００とＩＤ２＝５０という足跡レコードが新規登録又は更新登録される場合には、ＳＥＳ＝２０とＩＤ＝２００とＩＤ２＝５０という足跡情報が生成される。そして、ＩＤ＝２００から送信先を決定すると共にＩＤ２＝５０を自紐付処理部が担当していなければＩＤ２＝５０から送信先を決定する。そして、生成された足跡情報を、２つの送信先に送信する。
【００４４】
そして、足跡処理部１３１１は、足跡情報を、特定された送信先の紐付処理部に送信する（ステップＳ１９）。この足跡情報を交換することによって、受信したメッセージに関連する紐付処理部でキー文字列及び値の組み合わせを共有する。
【００４５】
さらに、足跡処理部１３１１は、足跡テーブル１３１５の該当足跡レコードにおいて、送信先数だけ通知数Ｎをインクリメントする（ステップＳ２１）。上で述べた第１の例では送信先は１つだけなので、通知数Ｎは１だけインクリメントされる。新規登録の場合には初期値は「０」であるので、インクリメントされると「１」となる。一方、第２の例では送信先が２なので、通知数Ｎは２だけインクリメントされる。更新登録の場合には既に値Ｎが登録されているので、その値Ｎが２だけインクリメントされる。
【００４６】
このような処理を行うことによって受信メッセージにより自紐付処理部の足跡テーブル１３１５を更新すると共に、その影響を共有するため関係する紐付処理部にも足跡情報として通知する。
【００４７】
上で述べたように足跡情報が紐付処理部間で交換されるが、他の紐付処理部から足跡情報を受信した場合に、図１３に示すような処理が実施される。まず、紐付処理部１３１乃至１３６の足跡処理部１３１１は、他の足跡処理部から足跡情報を受信すると（ステップＳ３１）、送信元の紐付処理部のＩＤと共に例えばメインメモリなどの記憶装置に格納する。そして、足跡処理部１３１１は、足跡情報に含まれるキー文字列及び値の複数の組み合わせが完全に一致する足跡レコードが既に足跡テーブル１３１５に登録されているか判断する（ステップＳ３３）。既に完全に一致するデータが足跡テーブル１３１５に登録されていれば、これ以上の処理を行う必要はないので、そのまま処理を終了する。
【００４８】
一方、完全に一致するデータが足跡テーブル１３１５に登録されていない場合には、足跡処理部１３１１は、受信した足跡情報で足跡テーブル１３１５を更新する（ステップＳ３５）。この更新処理は基本的にはステップＳ１５の足跡テーブル更新処理と同じである。すなわち、足跡情報に含まれるキー文字列及び値のいずれの組み合わせも、足跡テーブル１３１５に格納されている足跡レコードに含まれるキー文字列及び値のいずれの組み合わせとも一致しない場合には、足跡情報に含まれるキー文字列及び値の複数の組み合わせについて足跡レコードを生成し、足跡テーブル１３１５に新規登録する。一方、足跡情報に含まれるキー文字列及び値のいずれかの組み合わせが一致する足跡レコードが既に足跡テーブル１３１５に登録されているのであれば、当該足跡レコードに含まれないキー文字列及び値の組み合わせを当該足跡レコードに追加する形で足跡テーブル１３１５を更新する。
【００４９】
また、足跡処理部１３１１は、足跡テーブル１３１５の該当足跡レコードの処理数Ｐの値を１インクリメントする（ステップＳ３７）。このようにして、足跡情報による更新が行われたことを処理数Ｐに反映させる。
【００５０】
そして、足跡処理部１３１１は、更新に係る足跡レコードに含まれるキー文字列及び値の組み合わせを含む足跡情報を生成すると共に、当該足跡情報の送信先を、自らが保持する又は足跡情報管理部１４０の特定データ格納部１４１に格納されているデータに従って特定する（ステップＳ３９）。基本的にはこの処理はステップＳ１７と同じである。すなわち、足跡情報に含まれるキー文字列及び値の組み合わせのうち、自紐付処理部の担当外のキー文字列及び値により、図１１又は図１２に示したようなデータに従って送信先を特定する。
【００５１】
例えば、ＳＥＳ＝２０とＩＤ＝２００とを含む足跡情報の場合には、この足跡情報に含まれるＳＥＳ＝２０とＩＤ＝２００とのうち自紐付処理部の担当外のキー文字列及び値により送信先を特定する。ここでは自紐付処理部がＩＤ＝２００の担当であるとすると、ＳＥＳ＝２０により、例えば図１１の例に従うと紐付処理部１３４を送信先として特定する。但し、受信した足跡情報と送信する足跡情報が同一である場合には、受信した足跡情報の送信元を、送信先として特定された紐付処理部から除去する。従って、この例では、紐付処理部１３４は、受信した足跡情報の送信元なので紐付処理部１３４は除外される。
【００５２】
そして、足跡処理部１３１１は、ステップＳ３９で特定された、足跡情報の送信先の紐付処理部が残っているか判断する（ステップＳ４１）。送信先の紐付処理部が残っていない場合には処理を終了する。一方、送信先の紐付処理部が残っている場合には、足跡処理部１３１１は、足跡情報を送信先の紐付処理部に送信する（ステップＳ４３）。さらに、足跡処理部１３１１は、足跡テーブル１３１５の該当足跡レコードにおいて送信先の紐付処理部の数だけ通知数Ｎをインクリメントする（ステップＳ４５）。
【００５３】
このようにして、他の紐付処理部における足跡テーブルの更新に応じて生成される足跡情報を、自紐付処理部における足跡テーブルに反映させることができる。さらに、キー文字列及び値の新たな複数の組み合わせが出現した場合には、これを関連する紐付処理部で共有するために足跡情報を送信する。
【００５４】
以上の処理を分かりやすくするため、図１４乃至図１７の具体例を用いて説明する。前提として、ＳＥＳ＝１を担当する紐付処理部ｅと、ＩＤ＝１を担当する紐付処理部ｆと、ＩＤ２＝１を担当する紐付処理部ｇとが存在しており、まだメッセージが振り分けられていない状態を想定する。そして、図１４に示すように、ＳＥＳ＝１及びＩＤ＝１を含むメッセージＭ１０が紐付処理部ｅに振り分けられると、足跡テーブル１３１５には、ＳＥＳ＝１、ＩＤ＝１、通知数Ｎ＝１及び処理数Ｐ＝０の足跡レコードが登録される。そして、ＳＥＳ＝１及びＩＤ＝１を含む足跡情報を生成して、ＩＤ＝１に基づき紐付処理部ｆを足跡情報の送信先として特定し、足跡情報を送信する。
【００５５】
紐付処理部ｆは、ＳＥＳ＝１及びＩＤ＝１を含む足跡情報を受信すると、足跡テーブル１３１５に、新規にＳＥＳ＝１、ＩＤ＝１、通知数Ｎ＝０及び処理数Ｐ＝１の足跡レコードを新規登録する。この新規登録された足跡レコードについての足跡情報については、受信した足跡情報と同じ足跡情報であり、その送信元に送信することになるので、足跡情報を送信することはない。
【００５６】
次に、図１５に示すように、紐付処理部ｆに、ＩＤ＝１及びＩＤ２＝１を含むメッセージＭ１１が振り分けられた場合を説明する。このような場合、メッセージＭ１１には、足跡テーブル１３１５に既に登録されている足跡レコードに含まれるキー文字列及び値の組み合わせＩＤ＝１と一致するキー文字列及び値の組み合わせが含まれるので、この足跡レコードを、ＳＥＳ＝１、ＩＤ＝１、ＩＤ２＝１、Ｎ＝０及びＰ＝１に一旦更新する。そして、ＳＥＳ＝１、ＩＤ＝１及びＩＤ２＝１を含む足跡情報を生成して、ＳＥＳ＝１及びＩＤ２＝１から当該足跡情報の送信先を紐付処理部ｅ及びｇと特定する。従って、ＳＥＳ＝１、ＩＤ＝１及びＩＤ２＝１を含む足跡情報を、紐付処理部ｅ及びｇに送信し、紐付処理部ｆの足跡テーブル１３１５の該当足跡レコードにおいて通知先数Ｎを２インクリメントして、Ｎ＝２に更新する。
【００５７】
その後、図１６に示すように、紐付処理部ｅは、受信した足跡情報に含まれるＳＥＳ＝１及びＩＤ＝１を含む足跡レコードが足跡テーブル１３１５に既に登録されていると判断して、受信した足跡情報に含まれる残りのＩＤ２＝１を加えるように当該足跡レコードを更新する。さらに、足跡情報に応じて足跡レコードが更新されているので、処理数Ｐを１インクリメントして、Ｐ＝１に更新する。一方、紐付処理部ｇは、受信した足跡情報に含まれるＳＥＳ＝１、ＩＤ＝１及びＩＤ２＝１を含む新規な足跡レコードを、足跡テーブル１３１５に登録する。なお、通知数Ｎは０であり、足跡情報により足跡レコードが登録されたので処理数Ｐは１となる。
【００５８】
そして、図１７に示すように、紐付処理部ｅは、更新された足跡レコードに含まれるＳＥＳ＝１、ＩＤ＝１及びＩＤ２＝１を含む足跡情報を生成するが、これは受信した足跡情報と同じなので、ＩＤ＝１を担当する送信元の紐付処理部ｆについては足跡情報の送信先から除外する。従って、生成した足跡情報は、紐付処理部ｅから紐付処理部ｇへ送信される。同様に、紐付処理部ｇは、新規登録された足跡レコードに含まれるＳＥＳ＝１、ＩＤ＝１及びＩＤ２＝１を含む足跡情報を生成するが、これは受信した足跡情報と同じなので、ＩＤ＝１を担当する送信元の紐付処理部ｆについては足跡情報の送信先から除外される。従って、ＳＥＳ＝１、ＩＤ＝１及びＩＤ２＝１を含む足跡情報が、紐付処理部ｅと紐付処理部ｇとで交換される。但し、キー文字列及び値の完全に同一の組み合わせが足跡テーブル１３１５に既に登録されているので、紐付処理部ｅ及びｇ共に足跡テーブル１３１５の更新は行われない。すなわち、足跡情報の交換が完了する。また、紐付処理部ｅ及びｇの足跡テーブル１３１５における該当足跡レコードの通知数Ｎは、共に「１」インクリメントされる。
【００５９】
通知数Ｎ及び処理数Ｐの値は、足跡レコードの削除において用いられる。
【００６０】
次に、図１８を用いて検索コマンド（キー値収集コマンドとも呼ぶ）を出力する際の処理について説明する。
【００６１】
例えば、リクエストに対する応答が返ってこないといった状況において、紐付け未完了だが関連するメッセージを抽出する前の処理として、既に分かっているキー文字列及び値の組み合わせを指定して、関連する他の組み合わせを特定する必要がある。
【００６２】
そこで解析者は、管理者コンソール２００を操作して、キー文字列及び値の１又は複数の組み合わせを指定して検索を、足跡情報管理部１４０に対して指示する。足跡情報管理部１４０は、管理者コンソール２００から、キー文字列及び値の１又は複数の組み合わせの指定及び検索指示の入力を受け付ける（ステップＳ３３１）。そして、足跡情報管理部１４０は、キー文字列及び値の指定組み合わせから、特定データ格納部１４１に格納されているデータ（例えば図１１又は図１２）に従ってコマンド出力先の紐付処理部を特定する（ステップＳ３３３）。紐付けられるべきメッセージをトランザクション管理テーブル１３１６に格納している紐付処理部では、足跡テーブル１３１５に同じ足跡レコードを保持しているので、キー文字列及び値の指定組み合わせについて１つ紐付処理部を特定する。具体的には、ＳＥＳ＝１０とＩＤ＝１００とが指定された場合には、ＳＥＳ＝１０とＩＤ＝１００とのいずれかによって特定される紐付処理部に送信する。
【００６３】
そして、足跡情報管理部１４０は、解析者の指示に従ったキー文字列及び値の組み合わせを含む検索コマンドを生成し、ステップＳ３３３で特定された送信先の紐付処理部に送信する（ステップＳ３３５）。例えば、Search  SES=10 ID=100といったフォーマットのコマンドを出力する。ここで検索コマンドは、SES=10又はID=100を含む足跡レコードを抽出するためのコマンドである。
【００６４】
紐付処理部の足跡処理部１３１１は、検索コマンドを、足跡情報管理部１４０から受信し（ステップＳ３３７）、検索コマンドに含まれるキー文字列及び値毎に足跡テーブル１３１５を検索する（ステップＳ３３９）。そして、足跡処理部１３１１は、検索結果を足跡情報管理部１４０に返信する（ステップＳ３４１）。検索結果では、検索キーとなったキー文字列及び値の後に検索結果として得られたキー文字列及び値が列挙される。
【００６５】
足跡情報管理部１４０は、検索結果を、紐付処理部の足跡処理部１３１１から受信すると（ステップＳ３４３）、当該検索結果を管理者コンソール２００に出力する（ステップＳ３４５）。これによって、解析者は、抽出すべきメッセージが含んでいるキー文字列及び値の組み合わせを得ることができるようになる。
【００６６】
なお、Search SES=10というコマンドを、送信先として特定された紐付処理部に出力すると、例えば図９の足跡テーブル１３１５からすると、SES=10 ID=100を検索結果として得る。
【００６７】
次に、図１９乃至図２１を用いて、メッセージ収集を行う際の処理について説明する。
【００６８】
解析者は、管理者コンソール２００を操作して、収集すべきメッセージに含まれるキー文字列及び値の組み合わせを指定して、メッセージ収集指示を足跡情報管理部１４０に出力させる。足跡情報管理部１４０は、キー文字列及び値の組み合わせの指定及びメッセージ収集指示を受け付け（ステップＳ５１）、キー文字列及び値の指定組み合わせについて、特定データ格納部１４１に格納されたデータ（図１１又は図１２）に従って送信先を全て特定する（ステップＳ５３）。例えばＳＥＳ＝１０及びＩＤ＝１００が指定された場合には、ＳＥＳ＝１０を担当する紐付処理部を特定すると共に、ＩＤ＝１００を担当する紐付処理部を特定する。
【００６９】
そして、足跡情報管理部１４０は、キー文字列及び値の指定組み合わせに従ってメッセージ収集コマンドを生成して、ステップＳ５３で特定された１又は複数の紐付処理部に送信する（ステップＳ５５）。例えば、Collect ID=100 SES=10といったフォーマットのコマンドを生成する。
【００７０】
紐付処理部のメッセージ処理部１３１２は、足跡情報管理部１４０から、メッセージ収集コマンドを受信する（ステップＳ５７）。なお、以下でも述べるが、メッセージ収集コマンドは他の紐付処理部に転送されるので、他の紐付処理部の出力制御部１３１４が、収集されたメッセージを含むメッセージ収集コマンドを送信し（ステップＳ５６）、送信先の紐付処理部のメッセージ処理部１３１２が、当該メッセージ収集コマンドを受信する場合もある（ステップＳ５７）。
【００７１】
その後、メッセージ処理部１３１２は、トランザクション管理テーブル１３１６において、メッセージ収集コマンドに含まれ且つ本紐付処理部が担当するキー文字列及び値の組み合わせに対応する足跡レコードを特定して、ロックをかける（ステップＳ５９）。ロックをかけないと、メッセージ収集のための処理を実施している途中で、新たに受信したメッセージが登録されて紐付処理ルールの条件を満たすことになって他の紐付処理部などに出力されてしまうことがある。従って、ロックをかけて、まずメッセージの収集を優先して実施するものである。
【００７２】
さらに、メッセージ処理部１３１２は、出力制御部１３１４の通常処理を停止させる（ステップＳ６１）。ロックと同様に、トランザクション管理テーブル１３１６からメッセージを抽出して送信してしまわないようにするためである。そして、メッセージ処理部１３１２は、トランザクション管理テーブル１３１６における該当足跡レコードにおけるメッセージをコピーする（ステップＳ６３）。Collect ID=100 SES=10というメッセージ収集コマンドを受信した場合、ＳＥＳ＝１０を担当する紐付処理部であれば、図８Ａのトランザクション管理テーブル１３１６から第２レコードに登録されているメッセージＭ３及びＭ５をコピーする。
【００７３】
そして、メッセージ処理部１３１２は、コピーされたメッセージを含むメッセージ収集コマンドを、転送判断部１３１３に出力する（ステップＳ６５）。転送判断部１３１３は、メッセージ処理部１３１２から、コピーされたメッセージを含むメッセージ収集コマンドを受信する（ステップＳ６７）。処理は端子Ａ及びＢを介して図２０の処理に移行する。
【００７４】
図２０の処理の説明に移行して、転送判断部１３１３は、ステップＳ６３でコピーしたメッセージに含まれるキー文字列及び値の組み合わせ及び紐付処理ルール格納部１３１７に格納されている紐付処理ルールに従って、転送先を決定する（ステップＳ６９）。
【００７５】
例えば、上で述べた例で、ＳＥＳ＝１０を担当する紐付処理部で最初にメッセージ収集コマンドを受信した場合には、その紐付処理部でコピーされたメッセージＭ３に含まれるＩＤ＝１００を担当する紐付処理部を転送先の紐付処理部と決定する。一方、ＩＤ＝１００を担当する紐付処理部でメッセージ収集コマンドを受信した場合、メッセージ収集コマンドにメッセージが含まれていない場合には、トランザクション管理テーブル１３１６から抽出されたメッセージに含まれるキー文字列及び値の組み合わせのうち担当外のもの（すなわちＳＥＳ＝１０）を担当する紐付処理部を転送先に決定するようにしてもよい。但し、ＳＥＳ＝１０を担当する紐付処理部から同一のメッセージ収集コマンドが転送されてくるので、通常の紐付処理ルールの条件が満たされた場合には他の紐付処理部に転送しないのと同様に、足跡情報管理部１４０を転送先に決定しても良い。
【００７６】
なお、Collect SES=10 ID=100 ID2=50 のようにキー文字列及び値の多くの組み合わせを含む場合には、キー文字列及び値のいずれの組み合わせを担当した紐付処理部を経由したかは単純には分からないので、メッセージ収集コマンドに、通過した紐付処理部の識別子を含むようにして、同じ紐付処理部に転送されないようにする。例えば、収集したメッセージに対応付けて紐付処理部の識別子を含めるようにしても良い。
【００７７】
そして、転送判断部１３１３は、転送先が他の紐付処理部であるか判断し（ステップＳ７１）、足跡情報管理部１４０であれば端子Ｃを介して図２１の処理に移行する。一方、他の紐付処理部であれば、転送判断部１３１３は、コピーされたメッセージを含むメッセージ収集コマンド及び転送先を出力制御部１３１４に出力する（ステップＳ７３）。
【００７８】
出力制御部１３１４は、転送判断部１３１３からメッセージ収集コマンド及び転送先のデータを受信すると、転送先の紐付処理部へ、コピーされたメッセージを含むメッセージ収集コマンドを送信する（ステップＳ７５）。また、出力制御部１３１４は、メッセージ処理部１３１２に、通常処理開始を通知する（ステップＳ７７）。
【００７９】
メッセージ処理部１３１２は、出力制御部１３１４から通常処理開始通知を受信すると（ステップＳ７９）、トランザクション管理テーブル１３１６の該当レコードに対するロックを解除する（ステップＳ８１）。このようにして、通常の紐付処理を実施するような状態に戻る。
【００８０】
次に、端子Ｃ以降の処理を図２１を用いて説明する。転送判断部１３１３は、コピーされたメッセージを含むメッセージ収集コマンドを足跡情報管理部１４０に返信するように、出力制御部１３１４に指示する（ステップＳ８２）。出力制御部１３１４は、転送判断部１３１３から、コピーされたメッセージを含むメッセージ収集コマンドを受け取り、足跡情報管理部１４０に返信する（ステップＳ８３）。足跡情報管理部１４０は、紐付処理部から、コピーされたメッセージを含むメッセージ収集コマンドを受信すると、例えばメインメモリなどの記憶装置に格納する（ステップＳ８５）。メッセージ収集コマンドは、送信した個数と同じ個数だけ返信されてくるので、全てが揃って収集完了となる。そして、足跡情報管理部１４０は、収集完了後、同一メッセージを受信した場合（Collect SES=10 ID=100で、ＳＥＳ＝１０を担当する紐付処理部及びＩＤ＝１００を担当する紐付処理部に別々にメッセージ収集コマンドを出力した場合には、上で述べた転送を実施する場合には共に同じ紐付処理部を経由して足跡情報管理部１４０に戻ってくるので重複する場合がある）にはマージした上で、要求元の管理者コンソール２００に対して受信メッセージを出力する（ステップＳ８７）。
【００８１】
以上のような処理を実施すれば、各紐付処理部に分散保持されているメッセージを残らず収集することができる。
【００８２】
なお、Collect SES=10 ID=100のように、紐付けされるべきメッセージに含まれているキー文字列及び値が指定されていることが分かっている場合には、ＳＥＳ＝１０を担当する紐付処理部又はＩＤ＝１００を担当する紐付処理部にメッセージ収集コマンドを送信して、上で述べたアルゴリズムで転送することにより雪だるま式にメッセージを１度で収集することができる。しかしながら、ＳＥＳ＝１０とＩＤ＝２００といったように関連のないキー文字列及び値が指定されることもあるので、上で述べたように足跡情報管理部１４０は、メッセージ収集コマンドに含まれるキー文字列及び値の組み合わせの各々について特定される送信先紐付処理部に送信する。
【００８３】
次に、足跡テーブル１３１５の足跡レコードを削除する処理について説明する。足跡テーブル１３１５には、紐付け未完了のメッセージについてキー文字列及び値の組み合わせを登録することになっているので、紐付けが完了してしまえば、そのメッセージについての足跡レコードは不要となる。従って図２２及び図２３の処理を実施して、足跡テーブル１３１５のメンテナンスを実施する
【００８４】
まず、ある紐付処理部の出力制御部１３１４は、紐付処理ルールに従ってメッセージ群を紐付結果格納部１５０に格納する場合には、紐付結果に含まれるメッセージから、キー文字列及び値の組み合わせを全て抽出する（ステップＳ９１）。そして、出力制御部１３１４は、抽出されたデータを含む紐付完了通知を足跡情報管理部１４０に送信する（ステップＳ９３）。当然ながら、出力制御部１３１４は、紐付結果を紐付結果格納部１５０に格納する（ステップＳ９５）。足跡情報管理部１４０は、紐付結果に含まれるメッセージについてのキー文字列及び値の組み合わせを含む紐付完了通知を、ある紐付処理部から受信する（ステップＳ９７）。
【００８５】
そうすると、足跡情報管理部１４０は、キー文字列及び値の抽出された組み合わせ及び特定データ格納部１４１に格納されているデータ（例えば図１１又は図１２）により、足跡消去コマンドの出力先を特定する（ステップＳ９９）。ＳＥＳ＝１０及びＩＤ＝１００であれば、ＳＥＳ＝１０を担当する紐付処理部とＩＤ＝１００を担当する紐付処理部とを特定する。
【００８６】
そして、足跡情報管理部１４０は、キー文字列及び値の抽出された組み合わせを含む足跡消去コマンド（Deleteコマンド）を生成し、ステップＳ９９で特定された出力先に送信する（ステップＳ１０１）。例えば、Delete ID=100 SES=10 といった形式のコマンドを出力する。なお、足跡情報管理部１４０は、出力先数を、例えばメインメモリなどの記憶装置に保持しておく（ステップＳ１０３）。
【００８７】
出力先として特定された紐付処理部の足跡処理部１３１１は、キー文字列及び値の組み合わせを含む足跡消去コマンドを受信すると（ステップＳ１０５）、当該足跡消去コマンドに含まれるキー文字列及び値の組み合わせで足跡テーブル１３１５を検索する（ステップＳ１０７）。キー文字列及び値のいずれかの組み合わせを含む足跡レコードを探索する。
【００８８】
そして、足跡処理部１３１１は、該当する足跡レコードが存在するか判断し（ステップＳ１０９）、存在しない場合には端子Ｅを介して図２３の処理に移行する。一方、存在する場合に端子Ｄを介して図２３の処理に移行する。なお、足跡情報管理部１４０の処理については端子Ｆを介して図２３の処理に移行する。
【００８９】
図２３の処理の説明に移行して、端子Ｄを経由した場合、足跡処理部１３１１は、検索結果として得られた足跡レコードの通知数Ｎと処理数Ｐの差Ｔを算出し（ステップＳ１１１）、足跡テーブル１３１５から該当足跡レコードを削除する（ステップＳ１１３）。そして、足跡処理部１３１１は、差Ｔを含む削除完了通知を足跡情報管理部１４０に送信する（ステップＳ１１５）。
【００９０】
足跡情報管理部１４０は、紐付処理部から削除完了通知を受信すると（ステップＳ１１７）、削除完了通知の受信数を１インクリメントし、ステップＳ１０３で保持した出力先数と削除完了通知の受信数とが一致したか判断する（ステップＳ１１９）。出力先数の方が削除完了通知の受信数より多い場合にはステップＳ１１７に戻る。なお、同時に複数の紐付完了通知を処理する場合もあるので、例えば足跡消去コマンドにＩＤを付与して、当該ＩＤを削除完了通知にも含めることによって、同一の紐付完了通知についてステップＳ１１９の条件を判断する。
【００９１】
一方、出力先数と削除完了通知の受信数が一致した場合には、足跡情報管理部１４０は、同一の紐付完了通知について２度目の足跡消去コマンドの送信に対する処理であるか判断し（ステップＳ１２１）、１度目であれば、全ての削除完了通知に含まれるＴ値を合計する（ステップＳ１２３）。２度目であれば、処理を終了する（ステップＳ１２７）。
【００９２】
例えば図１４乃至図１７で説明した例では、図１７に示すように、紐付処理部ｅについては、Ｎ＝２且つＰ＝２、紐付処理部ｆについてはＮ＝２且つＰ＝１、紐付処理部ｇについてはＮ＝１及びＰ＝２となっている。システム全体では足跡情報の送信回数と処理回数は同じになるので、上で述べたようにＴの合計は０となるはずである。図１７の例では、紐付処理部ｅのＴ＝２−２＝０、紐付処理部ｆのＴ＝１−２＝−１、紐付処理部ｇのＴ＝２−１＝１であり、Ｔの合計値は０となっている。このように、通常であればＴの合計値は０となる。しかしながら、足跡情報の処理において何らかの問題が発生していたり、足跡消去処理の中で問題が生じているとＴの合計値が０にならない場合がある。
【００９３】
そこで、足跡情報管理部１４０は、Ｔの合計値＝０であるか判断し（ステップＳ１２５）、Ｔの合計値＝０でなければ端子Ｇを介して図２２のステップＳ１０１に戻る。すなわち、もう一度足跡消去コマンドを送信する。この２度目の足跡消去コマンドについては２度目の送信であることを示すようなデータを含めておく。Ｔの合計値＝０であれば、処理を終了する（ステップＳ１２７）。
【００９４】
なお、該当足跡レコードが存在しない場合（すなわち端子Ｅを経由した場合）には、足跡処理部１３１１は、Ｔ＝０を含む削除完了通知を足跡情報管理部１４０に送信する（ステップＳ１１６）。このような場合は、通常２回目の足跡消去コマンドを送信した場合に発生する。以下、上で述べたようにステップＳ１１７以降の処理が実施されるが、通常であればステップＳ１２１で２度目の足跡消去コマンドの送信として処理を完了することになる。
【００９５】
以上のような処理を実施することによって、不要となった足跡レコードを足跡テーブル１３１５から削除することができ、各紐付処理部における足跡テーブル１３１５の容量を適正なものに維持できるようになる。
【００９６】
以上のような処理を実施することによって、紐付け未完了のメッセージについても効率的に収集することができ、例えばリクエストに応答が返ってこないといった状況において処理の進捗などから問題を把握できるようになる。
【００９７】
なお、足跡情報管理部１４０で足跡テーブルを集中管理する方策も考えられるが、足跡テーブルの更新は頻繁に行われるため、この処理がボトルネックになって、十分なスループットが得られないという問題がある。上で述べたような分散管理を行えば、このような問題は発生せず、足跡テーブルの更新処理を効率的に実施することができる。また、各足跡テーブルのサイズはそれほど大きくならないので、足跡テーブルを分散管理する方が、コストも小さくなる。
【００９８】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図７に示した紐付処理部の機能ブロック図は一例であって、必ずしも実際のプログラムモジュールに一致するわけではない。
【００９９】
また、処理フローについても処理結果が変わらない限り、並列実施したりステップの順番を入れ替えたりすることも可能である。
【０１００】
なお、上で述べた並列紐付処理システム１００の各紐付処理部１３１乃至１３６、メッセージ受信部１１０、メッセージ振分部１２０、足跡情報管理部１４０などは、コンピュータ装置であって、図２４に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１０１】
以上述べた本実施の形態をまとめると、以下のようになる。  
【０１０２】
本並列紐付処理システムは、関連するメッセージを紐付けする処理を行う複数の紐付処理部を有する。そして、各紐付処理部は、メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部と、足跡処理部と、紐付け未完了のメッセージのデータを格納するメッセージ格納部（例えばトランザクション管理テーブルのような形でメッセージを保持するようにしても良い）と、メッセージ処理部とを含む。さらに、上で述べた足跡処理部は、受信した担当メッセージ又は他の紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行う足跡データ格納部更新処理を実施する。また、足跡処理部は、新規登録又は更新された足跡レコードに含まれるキー文字列及び値の組み合わせを足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される紐付処理部に送信する。さらに、足跡処理部は、キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを検索コマンドの送信元に返信する。一方、上で述べたメッセージ処理部は、キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、メッセージ格納部を第２の組み合わせで検索し、該当するメッセージを含むメッセージ収集コマンドを予め定められた第２のルールに基づき特定された紐付処理部又はメッセージ収集コマンドの送信元に送信する。
【０１０３】
このように担当受信メッセージからだけではなく紐付処理部間で足跡情報を交換することによって、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれるキー文字列及び値の複数の組み合わせが足跡データ格納部に収集される。従って、リクエストに対する応答が返ってこないといった状態における紐付け未完了のメッセージについても、足跡データ格納部からどのようなキー文字列及び値の組み合わせでメッセージを検索すればよいのか特定できる。すなわち、該当する紐付処理部から、該当メッセージを効率的に収集することができるようになる。
【０１０４】
なお、上で述べたメッセージ処理部は、メッセージ収集コマンドを処理する際に、メッセージ格納部から予め定められた紐付けルールに従って紐付け完了したメッセージを読み出して出力する処理を停止させるようにしてもよい。これによって、メッセージの紐付処理が並行して行われて他の紐付処理部などに転送されてしまうことを防止することができる。
【０１０５】
さらに、本並列紐付処理システムは、足跡情報管理部と、紐付結果格納部とをさらに有するようにしてもよい。その場合、各紐付処理部は、第２のルールに従って、メッセージ格納部に格納されており且つキー文字列及び値の組み合わせにて関連付けられている特定のメッセージ群を他の紐付処理部に出力するか又は紐付結果格納部に格納し、紐付結果格納部に特定のメッセージを格納した場合には、当該特定のメッセージ群に含まれるキー文字列及び値の第３の複数の組み合わせを含む紐付完了通知を足跡情報管理部に送信する出力制御部をさらに有するようにしてもよい。そして、足跡データ格納部に格納されている足跡レコードは、当該足跡レコードに含まれるキー文字列及び値の組み合わせを含む足跡情報を送信した通知回数と当該足跡情報を受信して処理した処理回数とをさらに含むようにしても良い。このような場合、足跡情報管理部は、複数の紐付処理部のうち特定の紐付処理部の出力制御部から紐付完了通知を受信した場合、当該紐付完了通知に含まれるキー文字列及び値の第３の複数の組み合わせを含む削除コマンドを、第３の複数の組み合わせ及び第２のルールに従って特定された紐付処理部に送信するようにしてもよい。また、紐付処理部の足跡処理部は、削除コマンドを受信すると、削除コマンドに含まれる第３の複数の組み合わせで足跡データ格納部を検索して該当足跡レコードを特定すると共に削除し、該当足跡レコードに含まれる通知回数と処理回数との差を含む削除完了通知を足跡情報管理部に送信するようにしてもよい。さらに、上で述べた足跡情報管理部は、削除コマンドに対応する削除完了通知が全て受信された場合には、削除完了通知に含まれる上記差の合計値が０になっているか確認し、０になっていない場合には、再度削除コマンドを送信するようにしてもよい。
【０１０６】
このようにすれば、紐付け完了時には足跡データ格納部から不要となったレコードを各紐付処理部から除去できるようになる。
【０１０７】
なお、上で述べた足跡データ格納部更新処理において、受信した担当メッセージに含まれるキー文字列及び値の複数の組み合わせのいずれもが足跡データ格納部に格納されている足跡レコードに含まれていなければ複数の組み合わせを含む足跡レコードを足跡データ格納部に新規登録し、複数の組み合わせのうち一部が足跡データ格納部に格納されているいずれかの足跡レコードに含まれていれば複数の組み合わせのうち不一致の組み合わせを当該足跡レコードに追加するようにしてもよい。さらに、他の紐付処理部からキー文字列及び値の第４の複数の組み合わせを含む足跡情報を受信した場合、当該足跡情報に含まれる第４の複数の組み合わせのいずれもが足跡データ格納部に格納されている足跡レコードに含まれていなければ第４の複数の組み合わせを含む足跡レコードを足跡データ格納部に新規登録し、第４の複数の組み合わせのうち一部が足跡データ格納部に格納されているいずれかの足跡レコードに含まれていれば第４の複数の組み合わせのうち不一致の組み合わせを当該足跡レコードに追加するようにしてもよい。
【０１０８】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【０１０９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１０】
（付記１）
メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部及び紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部を有し且つ関連するメッセージを紐付けする処理を行う紐付処理部を有するコンピュータに、
受信した担当メッセージ又は他の紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行うステップと、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される紐付処理部に送信するステップと、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信するステップと、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された紐付処理部又は前記メッセージ収集コマンドの送信元に送信するステップと、
を実行させるデータ収集処理プログラム。
【０１１１】
（付記２）
前記メッセージ収集コマンドを処理する際に、前記トランザクション管理テーブル格納部から予め定められた紐付けルールに従って紐付け完了したメッセージを読み出して出力する処理を停止させるステップ
を前記コンピュータにさらに実行させる付記１記載のデータ収集処理プログラム。
【０１１２】
（付記３）
前記第２のルールに従って、前記トランザクション管理テーブル格納部に格納されており且つ前記キー文字列及び値の組み合わせにて関連付けられている特定のメッセージ群を他の紐付処理部を有する第２のコンピュータに出力するか又は紐付結果格納部に格納し、前記紐付結果格納部に前記特定のメッセージ群を格納した場合には、当該特定のメッセージ群に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む紐付完了通知を足跡情報管理部を有する第３のコンピュータに送信するステップ
をさらに前記コンピュータに実行させ、
前記足跡データ格納部に格納されている前記足跡レコードは、当該足跡レコードに含まれる前記キー文字列及び値の組み合わせを含む前記足跡情報を送信した通知回数と当該足跡情報を受信して処理した処理回数とを含み、
前記足跡情報管理部を有する第３のコンピュータに、
複数の前記紐付処理部のうち特定の紐付処理部を有する第４のコンピュータから前記紐付完了通知を受信した場合、当該紐付完了通知に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む削除コマンドを、前記第３の複数の組み合わせ及び前記第２のルールに従って特定された紐付処理部を有する第５のコンピュータに送信するステップ
を実行させ、
前記紐付処理部を有するコンピュータに、
前記削除コマンドを受信すると、前記削除コマンドに含まれる前記第３の複数の組み合わせで前記足跡データ格納部を検索して該当足跡レコードを特定すると共に削除し、前記該当足跡レコードに含まれる前記通知回数と前記処理回数との差を含む削除完了通知を前記足跡情報管理部を有する第３のコンピュータに送信するステップ
を実行させ、
前記足跡情報管理部を有する第３のコンピュータに、
前記削除コマンドに対応する前記削除完了通知が全て受信された場合には、前記削除完了通知に含まれる前記差の合計値が０になっているか確認し、０になっていない場合には、再度前記削除コマンドを送信するステップ
を実行させるための付記１又は２記載のデータ収集処理プログラム。
【０１１３】
（付記４）
前記新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行うステップにおいて、
受信した担当メッセージに含まれるキー文字列及び値の複数の組み合わせのいずれもが前記足跡データ格納部に格納されている足跡レコードに含まれていなければ前記複数の組み合わせを含む足跡レコードを前記足跡データ格納部に新規登録し、前記複数の組み合わせのうち一部が前記足跡データ格納部に格納されているいずれかの足跡レコードに含まれていれば前記複数の組み合わせのうち不一致の組み合わせを当該足跡レコードに追加し、
他の前記紐付処理部からキー文字列及び値の第５の複数の組み合わせを含む足跡情報を受信した場合、当該足跡情報に含まれる前記第５の複数の組み合わせのいずれもが前記足跡データ格納部に格納されている足跡レコードに含まれていなければ前記第５の複数の組み合わせを含む足跡レコードを前記足跡データ格納部に新規登録し、前記第５の複数の組み合わせのうち一部が前記足跡データ格納部に格納されているいずれかの足跡レコードに含まれていれば前記第５の複数の組み合わせのうち不一致の組み合わせを当該足跡レコードに追加する、
付記１乃至３のいずれか１項記載のデータ収集処理プログラム。
【０１１４】
（付記５）
関連するメッセージを紐付けする処理を行う紐付処理装置であって、
前記メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部と、
足跡処理部と、
紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部と、
メッセージ処理部と、
を有し、
前記足跡処理部は、
受信した担当メッセージ又は他の紐付処理装置から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行う足跡データ格納部更新処理を実施し、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される紐付処理装置に送信し、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信し、
前記メッセージ処理部は、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された紐付処理装置又は前記メッセージ収集コマンドの送信元に送信する
紐付処理装置。
【０１１５】
（付記６）
関連するメッセージを紐付けする処理を行う複数の紐付処理部と、
足跡情報管理部と、
紐付結果格納部と、
を有し、
各前記紐付処理部は、
前記メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部と、
足跡処理部と、
紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部と、
メッセージ処理部と、
を含み、
前記足跡処理部は、
受信した担当メッセージ又は他の前記紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行う足跡データ格納部更新処理を実施し、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される前記紐付処理部に送信し、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信し、
前記メッセージ処理部は、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された前記紐付処理部又は前記メッセージ収集コマンドの送信元に送信し、
各前記紐付処理部は、
前記第２のルールに従って、前記トランザクション管理テーブル格納部に格納されており且つ前記キー文字列及び値の組み合わせにて関連付けられている特定のメッセージ群を他の前記紐付処理部に出力するか又は前記紐付結果格納部に格納し、前記紐付結果格納部に前記特定のメッセージ群を格納した場合には、当該特定のメッセージ群に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む紐付完了通知を前記足跡情報管理部に送信する出力制御部
をさらに有し、
前記足跡データ格納部に格納されている前記足跡レコードは、当該足跡レコードに含まれる前記キー文字列及び値の組み合わせを含む前記足跡情報を送信した通知回数と当該足跡情報を受信して処理した処理回数とを含み、
前記足跡情報管理部は、
前記複数の紐付処理部のうち特定の紐付処理部の前記出力制御部から前記紐付完了通知を受信した場合、当該紐付完了通知に含まれる前記キー文字列及び値の第３の複数の組み合わせを含む削除コマンドを、前記第３の複数の組み合わせ及び前記第２のルールに従って特定された前記紐付処理部に送信し、
前記紐付処理部の前記足跡処理部は、
前記削除コマンドを受信すると、前記削除コマンドに含まれる前記第３の複数の組み合わせで前記足跡データ格納部を検索して該当足跡レコードを特定すると共に削除し、前記該当足跡レコードに含まれる前記通知回数と前記処理回数との差を含む削除完了通知を前記足跡情報管理部に送信し、
前記足跡情報管理部は、
前記削除コマンドに対応する前記削除完了通知が全て受信された場合には、前記削除完了通知に含まれる前記差の合計値が０になっているか確認し、０になっていない場合には、再度前記削除コマンドを送信する
並列紐付処理システム。
【０１１６】
（付記７）
メッセージに含まれるキー文字列及び値の複数の組み合わせを含む足跡レコードを格納する足跡データ格納部及び紐付け未完了のメッセージのデータを格納するトランザクション管理テーブル格納部を有し且つ関連するメッセージを紐付けする処理を行う紐付処理部を有するコンピュータにより実行されるデータ収集処理方法であって、
受信した担当メッセージ又は他の前記紐付処理部から受信し且つキー文字列及び値の複数の組み合わせを含む足跡情報から、紐付け未完了であって且つ紐付けされるべき複数のメッセージに含まれる、キー文字列及び値の複数の組み合わせを特定し、新規な足跡レコードとして前記足跡データ格納部に新規登録又は一部の組み合わせが含まれる既存の足跡レコードの更新を行うステップと、
新規登録又は更新された前記足跡レコードに含まれるキー文字列及び値の組み合わせを前記足跡情報として、当該足跡情報及び予め定められた第１のルールに従って特定される前記紐付処理部に送信するステップと、
キー文字列及び値の第１の組み合わせを指定した検索コマンドを受信した場合には、前記足跡データ格納部を前記第１の組み合わせで検索し、該当足跡レコードのデータを前記検索コマンドの送信元に返信するステップと、
キー文字列及び値の第２の組み合わせを指定したメッセージ収集コマンドを受信した場合には、前記トランザクション管理テーブル格納部を前記第２の組み合わせで検索し、該当するメッセージを含む前記メッセージ収集コマンドを予め定められた第２のルールに基づき特定された前記紐付処理部又は前記メッセージ収集コマンドの送信元に送信するステップと、
を含むデータ収集処理方法。
【符号の説明】
【０１１７】
１００  並列紐付処理システム
１１０  メッセージ受信部    １２０  メッセージ振分部
１３１−１３６  紐付処理部
１４０  足跡情報管理部    １５０  紐付結果格納部
１４１  特定データ格納部
２００  管理者コンソール
３００  解析対象システム
１３１１  足跡処理部    １３１２  メッセージ処理部
１３１３  転送判断部    １３１４  出力制御部
１３１５  足跡テーブル    １３１６  トランザクション管理テーブル
１３１７  紐付処理ルール格納部
【図１】
0005526662.tif 000002
【図２】
0005526662.tif 000003
【図３】
0005526662.tif 000004
【図４】
0005526662.tif 000005
【図５】
0005526662.tif 000006
【図６】
0005526662.tif 000007
【図７】
0005526662.tif 000008
【図８Ａ】
0005526662.tif 000009
【図８Ｂ】
0005526662.tif 000010
【図９】
0005526662.tif 000011
【図１０】
0005526662.tif 000012
【図１１】
0005526662.tif 000013
【図１２】
0005526662.tif 000014
【図１３】
0005526662.tif 000015
【図１４】
0005526662.tif 000016
【図１５】
0005526662.tif 000017
【図１６】
0005526662.tif 000018
【図１７】
0005526662.tif 000019
【図１８】
0005526662.tif 000020
【図１９】
0005526662.tif 000021
【図２０】
0005526662.tif 000022
【図２１】
0005526662.tif 000023
【図２２】
0005526662.tif 000024
【図２３】
0005526662.tif 000025
【図２４】
0005526662.tif 000026