(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025002263
(43)【公開日】2025-01-09
(54)【発明の名称】接続確認制御システム
(51)【国際特許分類】
G06F 11/30 20060101AFI20241226BHJP
G06F 11/34 20060101ALI20241226BHJP
G06F 11/07 20060101ALI20241226BHJP
【FI】
G06F11/30
G06F11/34 133
G06F11/07 157
G06F11/07 166
G06F11/07 193
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023102316
(22)【出願日】2023-06-22
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】石崎 隆
(72)【発明者】
【氏名】中里 千佳
(72)【発明者】
【氏名】森下 薫
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA12
5B042JJ15
5B042JJ19
5B042KK13
5B042KK20
5B042MA05
5B042MA08
5B042MA14
5B042MC23
(57)【要約】
【課題】より適切な設定で接続確認を実施できる接続確認制御システムを提供する。
【解決手段】実施形態の接続確認制御システム1は、端末装置10と、管理装置20とを含む。端末装置10は、外部のサーバ40にアクセスしたときの処理待ち時間において接続確認処理を実行するように構成される。管理装置20は、端末装置10と情報をやりとりできるように構成され、システム管理者への情報通知手段25を有する。端末装置10は、接続確認処理において、第1の間隔でサーバとの接続確認を実施し、接続確認の実施結果を含む通知メッセージM1を管理装置に送信する。管理装置20は、端末装置10から受信した通知メッセージM1に含まれた情報を、情報通知手段25に出力する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
外部のサーバにアクセスしたときの処理待ち時間において接続確認処理を実行するように構成された端末装置と、
前記端末装置と情報をやりとりできるように構成され、システム管理者への情報通知手段を有する管理装置と、を備え、
前記端末装置は、前記接続確認処理において、第1の間隔で前記サーバとの接続確認を実施し、前記接続確認の実施結果を含む通知メッセージを前記管理装置に送信し、
前記管理装置は、前記端末装置から受信した前記通知メッセージに含まれた情報を、前記情報通知手段に出力する、
接続確認制御システム。
【請求項2】
前記情報通知手段は、表示装置に前記情報を表示させることと、前記情報をログとして出力することと、前記情報を電子メールに添付又は記載して送信することとの少なくとも一つを含む、
請求項1に記載の接続確認制御システム。
【請求項3】
前記端末装置は、前記接続確認処理の設定情報を記憶する記憶装置を備え、
前記管理装置は、外部からの指示に基づいて、前記接続確認処理の開始、停止、タイムアウトや前記接続確認処理の設定を含む制御メッセージを前記端末装置に送信し、
前記端末装置は、前記管理装置から受信した前記制御メッセージに基づいて、前記接続確認処理を制御する、及び/又は前記設定情報を更新する、
請求項1に記載の接続確認制御システム。
【請求項4】
前記設定情報は、前記接続確認処理において実施される接続確認の最大回数と、警告が通知される接続確認の回数と、前記接続確認が実施される間隔とのそれぞれの情報を含む、
請求項3に記載の接続確認制御システム。
【請求項5】
前記端末装置は、前記接続確認処理において、接続確認を実施する前に、前記設定情報を取得する、
請求項3に記載の接続確認制御システム。
【請求項6】
前記管理装置は、前記接続確認処理の履歴として接続確認履歴を記憶する記憶装置を備え、前記通知メッセージに基づいて前記接続確認履歴を更新し、前記接続確認履歴に基づいて前記接続確認処理の制御指示を作成し、前記制御指示を前記情報通知手段に出力する、
請求項3に記載の接続確認制御システム。
【請求項7】
前記記憶装置は、前記サーバの障害履歴をさらに記憶し、前記管理装置は、前記接続確認履歴と前記障害履歴との両方に基づいて前記制御指示を作成する、
請求項6に記載の接続確認制御システム。
【請求項8】
前記管理装置は、前記制御指示を含む制御メッセージを前記端末装置に送信し、
前記端末装置は、前記管理装置から受信した前記制御メッセージに基づいて、前記接続確認処理を制御する、及び/又は前記設定情報を更新する、
請求項6又は請求項7に記載の接続確認制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、接続確認制御システムに関する。
【背景技術】
【0002】
クライアント装置とデータベースとの間で情報をやりとりするためのAPI(Application Programming Interface)の一種として、JDBCが知られている。JDBCは、Java(登録商標)プログラムからデータベースにアクセスするためのAPIである。JDBC処理では、クライアント装置がデータベースに対してクエリを発行してから、データベースからクライアント装置に対して処理結果が返るまでの処理待ち時間において、接続確認(キープアライブ)が実施される場合がある。接続確認は、データベースの障害発生を検知するためにクライアントアプリケーションとデータベースとの間の接続が有効であるか否かを確認する仕組みである。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、接続確認を実施しているJDBC処理を把握するために、システム管理者は、全てのクライアントアプリケーションのJDBC処理の状態を手動で確認しなければならず、その確認作業に時間を要してしまう。
【0005】
また、処理待ち時間は、JDBC処理毎に異なるため、全てのJDBC処理に対して最適な接続確認の設定を行うことが困難である。不適切な設定の接続確認では、データベースが正常処理中であるにもかかわらず接続確認がタイムアウトしてしまい、JDBC処理が異常に終了するおそれがある。
【0006】
また、システム管理者又は管理システムは、接続確認を設定する際に、クライアントアプリケーションを停止することなく、接続確認の開始、停止、タイムアウト等や接続確認の設定を動的に制御することができない。
【0007】
本発明は、上記の問題を解決するためになされたものであり、より適切な設定で接続確認を実施できる接続確認制御システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
実施形態の接続確認制御システムは、端末装置と、管理装置とを含む。端末装置は、外部のサーバにアクセスしたときの処理待ち時間において接続確認処理を実行するように構成される。管理装置は、端末装置と情報をやりとりできるように構成され、システム管理者への情報通知手段を有する。端末装置は、接続確認処理において、第1の間隔でサーバとの接続確認を実施し、接続確認の実施結果を含む通知メッセージを管理装置に送信する。管理装置は、端末装置から受信した通知メッセージに含まれた情報を、前記情報通知手段に出力する。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係る接続確認制御システムの構成の一例を示すブロック図。
【
図2】実施形態に係る接続確認制御システムが備える端末装置のハードウェア構成の一例を示すブロック図。
【
図3】実施形態に係る接続確認制御システムの機能構成の一例を示すブロック図。
【
図4】実施形態に係る接続確認制御システムにおける接続確認設定の一例を示すテーブル。
【
図5】実施形態に係る接続確認制御システムにおける通知メッセージの一例を示すテーブル。
【
図6】実施形態に係る接続確認制御システムにおける制御メッセージの一例を示すテーブル。
【
図7】実施形態に係る接続確認制御システムにおける接続確認履歴の一例を示すテーブル。
【
図8】実施形態に係る接続確認制御システムにおける障害履歴の一例を示すテーブル。
【
図9】実施形態に係る接続確認制御システムが備える端末装置の接続確認処理の流れの一例を示すフローチャート。
【
図10】実施形態に係る接続確認制御システムが備える端末装置の設定変更処理の流れの一例を示すフローチャート。
【
図11】実施形態に係る接続確認制御システムにおいてクエリが正常に処理される場合の接続確認処理の流れの一例を示すシーケンス図。
【
図12】実施形態に係る接続確認制御システムにおいて接続確認設定に基づくタイムアウトが発生する場合の接続確認処理の流れの一例を示すシーケンス図。
【
図13】実施形態に係る接続確認制御システムにおいて管理装置の指示に基づくタイムアウトが発生する場合の接続確認処理の流れ一例を示すシーケンス図。
【
図14】実施形態に係る接続確認制御システムが備える管理装置の通知メッセージ受信処理の流れの一例を示すフローチャート。
【
図15】実施形態に係る接続確認制御システムが備える管理装置の設定変更処理の流れの一例を示すフローチャート。
【
図16】実施形態に係る接続確認制御システムが備える管理装置の設定変更処理における設定変更条件及び制御メッセージの第1の例を示すテーブル。
【
図17】第1の例における接続確認処理の変化の具体例を示すシーケンス図。
【
図18】実施形態に係る接続確認制御システムが備える管理装置の設定変更処理における設定変更条件及び制御メッセージの第2の例を示すテーブル。
【
図19】第2の例における接続確認処理の変化の具体例を示すシーケンス図。
【
図20】実施形態に係る接続確認制御システムが備える管理装置の設定変更処理における設定変更条件及び制御メッセージの第3の例を示すテーブル。
【
図21】第3の例における接続確認処理の変化の具体例を示すシーケンス図。
【
図22】実施形態に係る接続確認制御システムが備える管理装置の設定変更処理における設定変更条件及び制御メッセージの第4の例を示すテーブル。
【
図23】実施形態に係る接続確認制御システムが備える管理装置の設定変更処理における設定変更条件及び制御メッセージの第5の例を示すテーブル。
【発明を実施するための形態】
【0010】
以下に、実施形態に係る接続確認制御システム1について、図面を参照して説明する。実施形態は、発明の技術的思想を具体化するための装置や方法を例示している。以下で参照される図面は、模式的又は概念的なものである。略同一の機能及び構成を有する構成要素には、同一の符号が付加されている。
【0011】
<1>構成
まず、実施形態に係る接続確認制御システム1の構成について説明する。
【0012】
<1-1>接続確認制御システム1の全体構成
図1は、実施形態に係る接続確認制御システム1の構成の一例を示すブロック図である。
図1に示すように、接続確認制御システム1は、例えば、端末装置10、管理装置20、メッセージング装置30、及びサーバ40を含む。
【0013】
端末装置10は、JDBC処理を実行することが可能なクライアント装置に対応する。端末装置10は、例えば、PC(Personal Computer)等の電子機器である。端末装置10は、例えば、クライアントによるデータベースへのアクセスに用いられる。端末装置10は、JDBC処理において接続確認を実施可能に構成される。
【0014】
管理装置20は、端末装置10のJDBC処理に関する情報を管理する装置である。管理装置20は、例えば、PC(Personal Computer)等の電子機器である。管理装置20は、例えば、システム管理者による端末装置10の管理に用いられる。管理装置20は、接続確認に関する制御指示を生成することが可能に構成される。
【0015】
メッセージング装置30は、端末装置10と管理装置20との間のメッセージの転送を司る。メッセージング装置30は、例えば、JMS(Java Message Service)や、MQTT(Message Queueing Telemetry Transport)や、AMQP(Advanced Message Queuing Protocol)といったメッセージング基盤製品である。メッセージング装置30は、複数の端末装置10に対して同時に情報を送信することができるように構成される。
【0016】
サーバ40は、様々な情報を保持することが可能なデータベースである。サーバ40は、例えば、端末装置10を対象としたコンテンツのデータを保持する。サーバ40は、端末装置10と管理装置20とのそれぞれと通信可能に構成される。サーバ40は、端末装置10及び管理装置20のそれぞれと有線で通信してもよいし、無線で通信してもよい。
【0017】
なお、接続確認制御システム1は、複数の端末装置10を備えていてもよい。メッセージング装置30は、端末装置10毎に設けられてもよいし、複数の端末装置10に1つのメッセージング装置30が割り当てられてもよい。接続確認制御システム1では、端末装置10から管理装置20への通知用のメッセージの転送に割り当てられた第1のメッセージング装置30と、端末装置10から管理装置20への制御用のメッセージの転送に割り当てられた第2のメッセージング装置30とが個別に設けられてもよい。接続確認制御システム1において、端末装置10と管理装置20との間で直接メッセージがやりとりされる場合に、メッセージング装置30が省略されてもよい。
【0018】
<1-2>接続確認制御システム1のハードウェア構成
図2は、実施形態に係る接続確認制御システム1が備える端末装置10のハードウェア構成の一例を示すブロック図である。
図2に示すように、端末装置10は、例えば、プロセッサ101、メモリ装置102、ストレージ装置103、表示装置104、入力インターフェース105、及び通信モジュール106を含む。
【0019】
プロセッサ101は、様々なプログラムを実行することが可能な集積回路であり、端末装置10の全体の動作を制御する。プロセッサ101としては、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(field-programmable gate array)等が使用される。
【0020】
メモリ装置102は、端末装置10を制御するためのプログラムや制御データ等を記憶する記憶装置である。メモリ装置102は、プロセッサ101の作業領域として使用される。なお、端末装置10は、プログラムや制御データを記憶するメモリ装置と、プロセッサ101の作業領域として使用されるメモリ装置とを個別に備えていてもよい。
【0021】
ストレージ装置103は、不揮発性の記憶装置である。ストレージ装置103は、例えば端末装置10のアプリケーションソフトウェアや、システムソフトウェア等を記憶する。ストレージ装置103として、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)等が使用される。
【0022】
表示装置104は、文字や画像などを表示することが可能に構成された装置である。表示装置104は、プロセッサ101の指示に基づいて、例えば、アプリケーションソフトウェアに対応するGUI(Graphical User Interface)等を表示する。表示装置104としては、例えば、LCD(Liquid Crystal Display)や、有機EL(Electro Luminescence)ディスプレイ等が使用される。
【0023】
入力インターフェース105は、端末装置10の操作に使用されるインターフェースである。クライアントは、入力インターフェース105を用いて、端末装置10を操作することができる。なお、端末装置10において、入力インターフェース105としての機能が表示装置104に内蔵されてもよい。
【0024】
通信モジュール106は、外部の機器とのデータ等の送受信に使用される回路である。端末装置10は、通信モジュール106は、例えば、ネットワークを介して、メッセージング装置30とサーバ40とのそれぞれに接続される。
【0025】
なお、端末装置10は、その他のハードウェア構成であってもよい。例えば、端末装置10がIoT(Internet of Things)端末等である場合に、表示装置104が端末装置10から省略されてもよい。表示装置104は、端末装置10に外部接続されてもよい。入力インターフェース105は、端末装置10に外部接続されてもよい。管理装置20、メッセージング装置30、及びサーバ40のそれぞれは、例えば、端末装置10と同様のハードウェア構成を有している。管理装置20、メッセージング装置30、及びサーバ40のそれぞれのハードウェア構成は、接続確認制御システム1において割り当てられる機能に応じて適宜変更され得る。
【0026】
<1-3>接続確認制御システム1の機能構成
図3は、実施形態に係る接続確認制御システム1の機能構成の一例を示すブロック図である。
図3に示すように、端末装置10は、例えば、記憶部11、アクセス実行部12、接続確認実行部13、履歴通知部14、及び接続確認制御部15を備えるコンピュータとして機能する。管理装置20は、例えば、記憶部21、履歴管理部22、障害管理部23、制御指示部24、及び情報通知部25を備えるコンピュータとして機能する。
【0027】
記憶部11は、接続確認設定D1を記憶する機能ブロックである。接続確認設定D1は、端末装置10により実行されるJDBC処理毎の接続確認に関する設定の情報を含む。
【0028】
アクセス実行部12は、サーバ40へのアクセスに使用されるJDBC処理を実行する機能ブロックである。アクセス実行部12は、端末装置10(クライアント装置)とサーバ40(データベース)との間で情報をやりとりできるように構成される。アクセス実行部12は、例えば、クライアントの操作や、アプリケーションに基づいてクエリを発行する。そして、アクセス実行部12は、発行したクエリをサーバ40に送信する。それから、アクセス実行部12は、サーバ40からクエリの処理結果を受信する。
【0029】
接続確認実行部13は、JDBC処理における接続確認に関する処理(以下、接続確認処理と呼ぶ)を実施する機能ブロックである。接続確認実行部13は、アクセス実行部12又は接続確認制御部15の指示に基づいて、サーバ40との接続確認処理を開始する。接続確認実行部13は、接続確認処理において、記憶部11から取得した接続確認設定D1に基づいて、サーバ40との接続確認を実施する。
【0030】
履歴通知部14は、JDBC処理における接続確認の実施履歴を管理装置20に通知する機能ブロックである。履歴通知部14は、接続確認実行部13が接続確認を実施した後に、接続確認実行部13による接続確認の実施結果に基づいて、通知メッセージM1を作成する。そして、履歴通知部14は、通知メッセージM1を、メッセージング装置30を介して管理装置20に送信する。
【0031】
接続確認制御部15は、JDBC処理における接続確認の設定及びステータスを管理する機能ブロックである。接続確認制御部15は、メッセージング装置30を介して管理装置20から受信した制御メッセージM2に基づいて、記憶部11に記憶された接続確認設定D1を変更(更新)し得る。また、接続確認制御部15は、受信した制御メッセージM2に基づいて、接続確認実行部13による接続確認処理を制御し得る。接続確認制御部15による接続確認の制御指示は、例えば、開始、停止、タイムアウトを含む。
【0032】
記憶部21は、接続確認履歴D2及び障害履歴D3を記憶する機能ブロックである。接続確認履歴D2は、端末装置10で実施された接続確認の履歴に関する情報を含む。障害履歴D3は、サーバ40で発生した障害の履歴に関する情報を含む。
【0033】
履歴管理部22は、JDBC処理における接続確認の履歴を管理する機能ブロックである。履歴管理部22は、メッセージング装置30を介して端末装置10から受信した通知メッセージM1に基づいて、記憶部21に記憶された接続確認履歴D2を変更(更新)し得る。また、履歴管理部22は、受信した通知メッセージM1に基づいて、情報通知部25の通知処理を制御し得る。
【0034】
障害管理部23は、サーバ40の障害履歴を管理する機能ブロックである。障害管理部23は、サーバ40から受信した通知メッセージM3に基づいて、記憶部21に記憶された障害履歴D3を変更(更新)し得る。
【0035】
制御指示部24は、記憶部21に記憶された情報に基づいて、接続確認の設定(以下、“制御指示”とも呼ぶ)を作成する機能ブロックである。例えば、制御指示部24は、記憶部21から取得した接続確認履歴D2と障害履歴D3とに基づいて、制御指示を作成する。そして、制御指示部24は、作成した制御指示を情報通知部25に転送する。また、制御指示部24は、作成した制御指示を用いて制御メッセージM2を作成し、メッセージング装置30を介して端末装置10に送信する。
【0036】
情報通知部25は、システム管理者による接続確認の設定の支援のための情報の通知に関する処理を実行する機能ブロックである。情報通知部25は、例えば、履歴管理部22の指示に基づいて、記憶部21から接続確認履歴D2を取得し、システム管理者に接続確認に関する情報を提供する。例えば、情報通知部25は、通知メッセージM1の内容を表示装置104の管理画面に表示し得る。また、情報通知部25は、例えば、通知メッセージM1の内容をログとしてファイル出力し得る。また、情報通知部25は、通知メッセージM1の内容を電子メールに添付又は記載して所定の宛先に送信し得る。情報通知部25は、このいずれかの方法によって、システム管理者に接続確認の履歴に関する情報を提供することができ、接続確認の設定を支援することができる。さらに、情報通知部25は、制御指示部24により作成された制御指示に関する情報を、システム管理者に提供してもよい。
【0037】
なお、情報通知部25は、“情報通知手段”と呼ばれてもよい。情報通知部25は、通知メッセージM1の内容を、メッセージング装置30から直接受信してもよいし、履歴管理部22を介して受信してもよいし、記憶部21の接続確認履歴D2から取得してもよい。情報通知部25は、通知メッセージM1を受信したことに基づいて、システム管理者に情報を提供する処理を開始してもよい。情報通知部25は、通知メッセージM1の内容を管理画面に表示することと、ログとしてファイル出力することと、電子メールに添付又は記載して所定の宛先に送信することのうち、複数の処理を実行してもよい。
【0038】
(1:接続確認設定D1)
図4は、実施形態に係る接続確認制御システム1における接続確認設定D1の一例を示すテーブルである。
図4に示すように、接続確認設定D1は、例えば、“処理名”、“実施有無”、“間隔”、“最大回数”、及び“警告”に関する情報を格納する。
【0039】
接続確認設定D1の“処理名”のカラムは、JDBC処理の名称(以下では、“JDBC処理名”と呼ぶ)を格納する。本例における接続確認設定D1では、“処理名”として“処理A”が格納されている。
【0040】
接続確認設定D1の“実施有無”のカラムは、接続確認を実施するか否かを示す情報を格納する。本例では、“実施有無”として、“有効”が格納されている。接続確認実行部13は、“実施有無”が“有効”である場合に、関連付けられたJDBC処理において接続確認を実施可能であり、“実施有無”が“無効”である場合に、関連付けられたJDBC処理において接続確認を実施しない。
【0041】
接続確認設定D1の“間隔”のカラムは、接続確認が実施される間隔の情報を格納する。本例では、“間隔”として“60秒”が格納されている。この場合、接続確認実行部13は、処理Aに関連付けられた接続確認を、60秒おきに実施する。
【0042】
接続確認設定D1の“最大回数”のカラムは、接続確認が実施される最大の回数の情報を格納する。接続確認の最大回数は、接続確認が異常終了(タイムアウト)するまでの回数に対応する。本例では、“最大回数”として“5回”が格納されている。この場合、接続確認実行部13は、処理Aに関連付けられた接続確認を、最大で5回実施する。接続確認実行部13は、最大回数と同数の接続確認を実施した場合に、関連付けられたJDBC処理における接続確認を異常終了(タイムアウト)とみなす。
【0043】
接続確認設定D1の“警告”のカラムは、警告が通知される接続確認の回数の情報を格納する。本例では、“警告”として“3回目”が格納されている。この場合、接続確認実行部13は、3回目以上且つ最大回数未満の範囲内の接続確認を実施した場合に、履歴通知部14に警告を通知する。
【0044】
(2:通知メッセージM1)
図5は、実施形態に係る接続確認制御システム1における通知メッセージM1の一例を示すテーブルである。
図5に示されたテーブルのロウ(1)~(5)は、
図4に示された接続確認設定D1に基づいて実施された5回の接続確認に対応する情報をそれぞれ示している。
図5に示すように、通知メッセージM1は、例えば、“処理名”、“処理ID”、“実施時間”、“実施回数”、及び“実施結果”に関する情報を格納する。
【0045】
通知メッセージM1の“処理名”のカラムは、接続確認が実施されたJDBC処理の名称(JDBC処理名)を格納する。本例では、ロウ(1)~(5)のそれぞれに対応付けられた“処理名”として、“処理A”が格納されている。
【0046】
通知メッセージM1の“処理ID”のカラムは、接続確認が実施されたJDBC処理を一意に示す識別子を格納する。処理IDは、例えば、クライアントのホスト名、プロセスID、スレッドID、処理開始時刻などに基づいて算出される。本例では、ロウ(1)~(5)のそれぞれの“処理ID”として、“ID-001”が格納されている。
【0047】
通知メッセージM1の“実施時間”のカラムは、接続確認が実施された時刻に関する情報を格納する。本例では、ロウ(1)に対応付けられて、1回目の接続確認の実施時間として“2023/12/01 09:01:00”が格納されている。ロウ(2)に対応付けられて、2回目の接続確認の実施時間として“2023/12/01 09:02:00”が格納されている。以下同様に、“実施時間”のカラムには、5回目の接続確認まで、実施回数が増える度に60秒が加算された時間が格納されている。
【0048】
通知メッセージM1の“実施回数”のカラムは、接続確認が実施された回数の情報を格納する。本例では、ロウ(1)~(5)のそれぞれに対応付けられた“実施回数”として、“1回目”~“5回目”がそれぞれ格納されている。つまり、本例では、ID-001に関連付けられた5回の接続確認が実施されている。
【0049】
通知メッセージM1の“実施結果”のカラムは、接続確認が実施された結果の情報を格納する。接続確認が実施された結果としては、例えば、正常、警告、異常(タイムアウト)、異常(通信エラー)などが挙げられる。実施回数が接続確認設定D1の“警告”に示された回数未満である場合、実施結果が“正常”とされる。実施回数が接続確認設定D1の“警告”に示された回数以上、且つ“最大回数”未満の範囲内である場合、実施結果が“警告”とされる。実施回数が接続確認設定D1の“実施回数”に示された回数と一致する場合、実施結果が“異常(タイムアウト)”とされる。本例では、接続確認設定D1に基づいて、ロウ(1)及び(2)のそれぞれに対応付けられて、“正常”が格納されている。ロウ(3)及び(4)のそれぞれに対応付けられて、“警告”が格納されている。ロウ(5)に対応付けられて、“異常(タイムアウト)”が格納されている。また、接続確認が異常終了した場合、“実施結果”として異常(通信エラー)が格納される。
【0050】
(3:制御メッセージM2)
図6は、実施形態に係る接続確認制御システム1における制御メッセージM2の一例を示すテーブルである。
図6に示すように、制御メッセージM2は、制御対象を特定するための情報と、設定変更後の接続確認設定D1の情報を格納する。具体的には、制御メッセージM2は、例えば、“処理名”、“処理ID”、“制御内容”、“実施有無”、“間隔”、“最大回数”、及び“警告”に関する情報を格納する。
【0051】
制御メッセージM2の“処理名”のカラムは、制御対象のJDBC処理名を格納する。本例では、“処理名”として、“処理A”が格納されている。
【0052】
制御メッセージM2の“処理ID”のカラムは、制御対象のJDBC処理を一意に示す識別子を格納する。本例では、“処理ID”として、“ID-001”が格納されている。
【0053】
制御メッセージM2の“制御内容”のカラムは、制御対象のJDBC処理に適用する制御内容に関する情報を格納する。“制御内容”としては、例えば、開始、停止、タイムアウト、設定変更のみ、などが挙げられる。本例では、“制御内容”として、“停止”が格納されている。
【0054】
制御メッセージM2の“実施有無”のカラムは、制御対象のJDBC処理において接続確認を実施するか否かを示す情報を格納する。本例では、“実施有無”として、“有効”が格納されている。
【0055】
制御メッセージM2の“間隔”のカラムは、制御対象のJDBC処理において接続確認が実施される間隔の情報を格納する。本例では、“間隔”として“120秒”が格納されている。
【0056】
制御メッセージM2の“最大回数”のカラムは、制御対象のJDBC処理において接続確認が実施される最大回数の情報を格納する。本例では、“最大回数”として“5回”が格納されている。
【0057】
制御メッセージM2の“警告”のカラムは、制御対象のJDBC処理において警告が通知される接続確認の回数の情報を格納する。本例では、“警告”として“3回目”が格納されている。
【0058】
(4:接続確認履歴D2)
図7は、実施形態に係る接続確認制御システム1における接続確認履歴D2の一例を示すテーブルである。
図7に示すように、接続確認履歴D2は、接続確認が実施された対象を特定するための情報と、実施された接続確認に関する情報を格納する。具体的には、接続確認履歴D2は、例えば、“処理名”、“処理ID”、“開始時刻”、“警告時刻”、“異常時刻”、“実施回数”、及び“最終結果”に関する情報を含む。
【0059】
接続確認履歴D2の“処理名”のカラムは、接続確認が実施されたJDBC処理名を格納する。本例では、“処理名”として、“処理A”が格納されている。
【0060】
接続確認履歴D2の“処理ID”のカラムは、接続確認が実施されたJDBC処理の識別子を格納する。本例では、“処理ID”として、“ID-001”が格納されている。
【0061】
接続確認履歴D2の“開始時刻”のカラムは、1回目の接続確認が開始された時刻を格納する。本例では、“開始時刻”として、“2023/12/01 09:01:00”が格納されている。なお、開始時刻は、1回目の接続確認に基づいた時刻であればよく、1回目の接続確認の終了時刻を格納してもよい。
【0062】
接続確認履歴D2の“警告時刻”のカラムは、警告に対応付けられた接続確認が開始された時刻を格納する。本例では、“警告時刻”として、“2023/12/01 09:03:00”が格納されている。なお、警告時刻は、警告に対応付けられた接続確認に基づいた時刻であればよく、警告に対応付けられた接続確認の終了時刻を格納してもよい。また、警告時刻は、最初に警告が通知される接続確認に関連した時刻であってもよいし、最後に警告が通知される接続確認に関連した時刻であってもよい。
【0063】
接続確認履歴D2の“異常時刻”のカラムは、異常に対応付けられた接続確認が開始された時刻を格納する。本例では、“開始時刻”として、“2023/12/01 09:05:00”が格納されている。なお、異常時刻は、異常に対応付けられた接続確認に基づいた時刻であればよく、異常に対応付けられた接続確認の終了時刻を格納してもよい。
【0064】
接続確認履歴D2の“実施回数”のカラムは、接続確認が実施された合計の回数を格納する。本例では、“実施回数”として、“5回”が格納されている。
【0065】
接続確認履歴D2の“最終結果”のカラムは、接続確認が実施されたJDBC処理において、最後に実施された接続確認の実施結果を格納する。本例では、“最終結果”として、“異常(タイムアウト)”が格納されている。
【0066】
以下の説明では、接続確認履歴D2のうち1つのロウに記録された情報のことを、“通知履歴”とも呼ぶ。通知履歴は、特定の処理名及び処理IDに関連付けられた接続確認処理が実行された履歴情報に対応する。
【0067】
(5:障害履歴D3)
図8は、実施形態に係る接続確認制御システム1における障害履歴D3の一例を示すテーブルである。
図8に示すように、障害履歴D3は、例えば、サーバ40において発生した障害毎に、“障害開始時刻”、“障害復旧時刻”、及び“障害内容”に関する情報を格納する。
【0068】
障害履歴D3の“障害開始時刻”のカラムは、サーバ40において発生した障害の開始時刻を格納する。本例では、“障害開始時刻”として、“2023/12/01 08:00:00”が格納されている。
【0069】
障害履歴D3の“障害復旧時刻”のカラムは、サーバ40が障害から復旧した時刻を格納する。本例では、“障害復旧時刻”として、“2023/12/01 10:00:00”が格納されている。
【0070】
障害履歴D3の“障害内容”のカラムは、サーバ40において発生した障害の内容を格納する。本例では、“障害内容”として、“サーバ高負荷”が格納されている。
【0071】
本例では、障害履歴D3に基づいて、2023/12/01 08:00から2023/12/01 10:00までの期間において、サーバ40にサーバ高負荷の障害が発生していたことが特定される。なお、障害履歴D3に格納された障害の情報のうち、障害開始時刻が記録され且つ障害復旧時刻が記録されていない障害の情報は、サーバ40がその障害から復旧していないことを示している。
【0072】
<2>動作
次に、実施形態に係る接続確認制御システム1の動作について説明する。
【0073】
<2-1>端末装置10の動作
以下に、端末装置10の動作について説明する。
【0074】
<2-1-1>接続確認処理の流れ
図9は、実施形態に係る接続確認制御システム1が備える端末装置10の接続確認処理の流れの一例を示すフローチャートである。以下に、
図9を参照して、サーバ40の障害発生時における、端末装置10の接続確認実行部13による接続確認設定D1に基づいた接続確認の方法について説明する。
【0075】
接続確認実行部13は、サーバ40へのアクセス時に接続確認が必要な状態になった場合に、
図9の一連の処理を開始する(開始)。言い換えると、接続確認実行部13は、サーバ40へアクセスした際の処理待ち時間において、所定の条件に基づいて
図9の一連の処理を開始する。
【0076】
まず、接続確認実行部13は、接続確認の設定情報として、記憶部11から接続確認設定D1に含まれた“実施有無”の情報を取得する(S101)。なお、S101の処理において、接続確認実行部13により取得される情報は、接続確認設定D1のうち、現在実施しているJDBC処理名に関連付けられた情報である。
【0077】
次に、接続確認実行部13は、実施有無が“有効”であるか否かを確認する(S102)。実施有無が“有効”でない、すなわち実施有無が“無効”である場合(S102:NO)、接続確認実行部13は、接続確認を実施せずに、
図9の一連の処理を終了する(終了)。実施有無が“有効”である場合(S102:YES)、接続確認実行部13は、S103の処理に進む。
【0078】
S103の処理において、接続確認実行部13は、“k=1”の処理を実行する。“k”は、接続確認処理において使用される変数である。“k”の数値は、接続確認処理の対象である処理IDにおいて接続確認が実施された回数に対応する。
【0079】
次に、接続確認実行部13は、記憶部11から接続確認設定D1に含まれた“間隔”、“最大回数”、及び“警告”の情報を取得する(S104)。そして、接続確認実行部13は、これらの情報に変更点がある場合に、新しい情報に更新する。
【0080】
次に、接続確認実行部13は、k回目(kは1以上最大回数以下の整数)の接続確認を実施する(S105)。S105の処理において実施される接続確認は、S104の処理により取得された接続確認設定D1に基づいている。例えば、接続確認実行部13は、kが1である場合に、直ちに1回目の接続確認を開始する。また、接続確認実行部13は、kが2以上である場合に、k-1回目の接続確認から、接続確認設定D1の“間隔”に基づいた時間が経過した後に、k回目の接続確認を開始する。
【0081】
次に、接続確認実行部13は、接続確認の結果を履歴通知部14に転送する(S106)。S106の処理において履歴通知部14に転送される情報は、通知メッセージM1の作成に必要な情報を含む。履歴通知部14は、接続確認の結果を受信すると、接続確認の結果に基づいて通知メッセージM1を作成する。そして、履歴通知部14は、作成した通知メッセージM1をメッセージング装置30を介して管理装置20へ送信する。
【0082】
次に、接続確認実行部13は、接続確認が正常に終了したか否かを確認する(S107)。ここで、“接続確認が正常に終了した”とは、接続確認実行部13がサーバ40から接続確認に対する確認応答を受信した場合に対応する。“接続確認が異常に終了した”とは、接続確認実行部13がサーバ40から接続確認に対する確認応答を受信できなかった場合に対応する。接続確認が正常に終了していない場合(S107:NO)、接続確認実行部13は、接続確認の結果を異常(通信エラー)として、
図9の一連の処理を終了する(終了)。接続確認が正常に終了している場合(S107:YES)、接続確認実行部13は、S108の処理に進む。
【0083】
S108の処理において、接続確認実行部13は、“k=最大回数”であるか否かを確認する。この最大回数の数値は、現在の接続確認設定D1に含まれた“最大回数”の情報に基づいている。“k=最大回数”でない場合(S108:YES)、接続確認実行部13は、S104の処理に進む。すなわち、接続確認実行部13は、次の接続確認に関する処理を開始する。“k=最大回数”である場合(S108:YES)、接続確認実行部13は、接続確認の結果を異常(タイムアウト)として、
図9の一連の処理を終了する(終了)。
【0084】
なお、S104の処理は、S101の処理において“間隔”、“最大回数”、及び“警告”の情報がさらに取得され、且つ1回目の接続確認である場合において、省略されてもよい。接続確認実行部13は、S104の処理によって、接続確認の繰り返しの間に接続確認設定D1が変更された場合に、変更された接続確認設定D1に基づいた接続確認を実施することができる。
【0085】
<2-1-2>設定変更処理の流れ
図10は、実施形態に係る接続確認制御システム1が備える端末装置10の設定変更処理の流れの一例を示すフローチャートである。以下に、
図10を参照して、端末装置10の接続確認制御部15による制御メッセージM2に基づいた接続確認設定D1の更新に関する処理の一例について説明する。
【0086】
接続確認制御部15は、メッセージング装置30から制御メッセージM2を受信すると、
図10の一連の処理を開始する(開始)。
【0087】
まず、接続確認制御部15は、制御メッセージM2の制御内容を参照して、“設定変更のみ”が指示されているか否かを確認する(S201)。“設定変更のみ”が指示されていない場合(S201:NO)、接続確認制御部15は、S202の処理に進む。設定変更のみが指示されている場合(S201:YES)、接続確認制御部15は、接続確認の制御を実施せずに、S241の処理に進む。
【0088】
S202の処理において、接続確認制御部15は、制御メッセージM2の処理名及び処理IDと一致するJDBC処理を対象として、現在接続確認が必要な状態であるか否かを判断する。なお、接続確認制御部15は、処理名が指定され、且つ処理IDが指定されていない場合に、同じ処理名の全ての処理を対象として、現在接続確認が必要な状態であるか否かを判断する。接続確認が必要でない場合(S202:NO)、接続確認制御部15は、S241の処理に進む。接続確認が必要である場合(S202:YES)、接続確認制御部15は、S203の処理に進む。
【0089】
S203の処理において、接続確認制御部15は、制御メッセージM2に含まれた“制御内容”の情報を確認する。制御内容が“開始”である場合(S203:“開始”)、接続確認制御部15は、S211の処理に進む。制御内容が“停止”である場合(S203:“停止”)、接続確認制御部15は、S221の処理に進む。制御内容が“タイムアウト”である場合(S203:“タイムアウト”)、接続確認制御部15は、S231の処理に進む。
【0090】
S211の処理において、接続確認制御部15は、接続確認が停止中であるか否かを確認する。接続確認が停止中でない、すなわち接続確認が実施中である場合(S211:NO)、接続確認制御部15は、S241の処理に進む。接続確認が停止中である場合(S211:YES)、接続確認制御部15は、接続確認の開始指示を接続確認実行部13に転送する(S212)。接続確認の開始指示を受け取った接続確認実行部13は、接続確認処理を開始する。接続確認制御部15は、S212の処理が完了すると、S241の処理に進む。
【0091】
S221の処理において、接続確認制御部15は、接続確認が実施中であるか否かを確認する。接続確認が実施中でない、すなわち接続確認が停止中である場合(S221:NO)、接続確認制御部15は、S241の処理に進む。接続確認が実施中である場合(S221:YES)、接続確認制御部15は、接続確認の停止指示を接続確認実行部13に転送する(S222)。接続確認の開始指示を受け取った接続確認実行部13は、接続確認処理を停止する。接続確認制御部15は、S222の処理が完了すると、S241の処理に進む。
【0092】
S231の処理において、接続確認制御部15は、接続確認が実施中であるか否かを確認する。接続確認が実施中でない、すなわち接続確認が停止中である場合(S231:NO)、接続確認制御部15は、S241の処理に進む。接続確認が実施中である場合(S231:YES)、接続確認制御部15は、接続確認のタイムアウト指示を接続確認実行部13に転送する(S232)。接続確認のタイムアウト指示を受け取った接続確認実行部13は、接続確認処理をタイムアウトさせる。接続確認制御部15は、S232の処理が完了すると、S241の処理に進む。
【0093】
S241の処理において、接続確認制御部15は、制御メッセージM2に基づいて、接続確認設定D1を更新する。なお、接続確認制御部15は、制御メッセージM2により処理名のみが指定された場合、その処理名に関連付けられた接続確認の設定を、制御メッセージM2に含まれた設定に変更する。また、接続確認制御部15は、制御メッセージM2により処理名及び処理IDの両方が指定された場合、その処理名及び処理IDに関連付けられた接続確認の設定を、制御メッセージM2に含まれた設定に変更する。接続確認制御部15は、S241の処理が完了すると、
図10の一連の処理を終了する(終了)。
【0094】
<2-1-3>接続確認処理の具体例
以下に、接続確認処理の具体例について説明する。
【0095】
(1:クエリが正常に処理される場合)
図11は、実施形態に係る接続確認制御システム1においてクエリが正常に処理される場合の接続確認処理の流れの一例を示すシーケンス図である。以下に、
図11を参照して、
図4に示された接続確認設定D1が適用された場合に、端末装置10がクエリを作成してから、複数回の疎通確認を経てサーバ40からのレスポンスを受信するまでの一連の処理の一例について説明する。
【0096】
まず、端末装置10は、クエリをサーバ40に送信する(S11)。サーバ40は、クエリを受信すると、クエリに対する肯定応答を端末装置10に送信する(S12)。その後、サーバ40は、クエリに対する処理を開始する。
図11には、クエリに対するサーバ40の処理時間が示されている。処理時間は、端末装置10にとっては、処理待ち時間に対応する。処理時間は、クエリの処理内容や、サーバ40の状況に応じて変化し得る。例えば、処理時間は、サーバ40において障害が発生している場合に長くなる。そして、端末装置10は、例えば、肯定応答を受信してから所定の時間が経過したことに基づいて、接続確認処理を開始する。
【0097】
接続確認処理において、まず端末装置10は、1回目の接続確認をサーバ40に送信する(S13)。すると、サーバ40は、1回目の接続確認に対する確認応答を端末装置10に送信する(S14)。確認応答を受信した端末装置10は、1回目の接続確認に関する通知メッセージM1を作成し、管理装置20に送信する(S15)。
【0098】
次に、端末装置10は、接続確認設定D1の“間隔”に基づいた時間が経過した後に、2回目の接続確認をサーバ40に送信する(S16)。すると、サーバ40は、2回目の接続確認に対する確認応答を端末装置10に送信する(S17)。確認応答を受信した端末装置10は、2回目の接続確認に関する通知メッセージM1を作成し、管理装置20に送信する(S18)。
【0099】
同様に、端末装置10は、接続確認設定D1の“間隔”に基づいた時間が経過した後に、3回目の接続確認をサーバ40に送信する(S19)。すると、サーバ40は、3回目の接続確認に対する確認応答を端末装置10に送信する(S20)。確認応答を受信した端末装置10は、3回目の接続確認に関する通知メッセージM1を作成し、管理装置20に送信する(S21)。
【0100】
その後、サーバ40のクエリに対する処理が完了し、クエリに対するレスポンスを端末装置10に送信する(S22)。端末装置10は、例えば、レスポンスを受信したことに基づいて、実行中のJDBC処理を終了する。
【0101】
(2:接続確認設定D1に基づくタイムアウトが発生する場合)
図12は、実施形態に係る接続確認制御システム1において接続確認設定D1に基づくタイムアウトが発生する場合の接続確認処理の流れの一例を示すシーケンス図である。以下に、
図12を参照して、
図4に示された接続確認設定D1が適用された場合に、端末装置10がクエリを生成してから、接続確認設定D1に基づくタイムアウトが発生するまでの一連の処理の一例について説明する。
図12に示されたS11~S21の処理は、
図11に示されたS11~S21の処理と同様である。すなわち、まず、端末装置10がサーバ40にクエリを送信した後に、3回の接続確認が実施される。
【0102】
そして、本例では、さらに2回の接続確認が実施され、合計5回の接続確認が実施される。具体的には、S21の処理の後に、端末装置10は、接続確認設定D1の“間隔”に基づいた時間が経過した後に、4回目の接続確認をサーバ40に送信する(S31)。すると、サーバ40は、4回目の接続確認に対する確認応答を端末装置10に送信する(S32)。確認応答を受信した端末装置10は、4回目の接続確認に関する通知メッセージM1を作成し、管理装置20に送信する(S33)。同様に、端末装置10は、接続確認設定D1の“間隔”に基づいた時間が経過した後に、5回目の接続確認をサーバ40に送信する(S34)。すると、サーバ40は、5回目の接続確認に対する確認応答を端末装置10に送信する(S35)。確認応答を受信した端末装置10は、5回目の接続確認に関する通知メッセージM1を作成し、管理装置20に送信する(S36)。
【0103】
その後、端末装置10は、接続確認設定D1により示された最大回数が5回であることに基づいて接続確認処理を終了し、応答待ちタイムアウトとする(S37)。
【0104】
(3:管理装置20の指示に基づくタイムアウトが発生する場合)
図13は、実施形態に係る接続確認制御システム1において管理装置20の指示に基づくタイムアウトが発生する場合の接続確認処理の流れ一例を示すシーケンス図である。以下に、
図13を参照して、
図4に示された接続確認設定D1が適用された場合に、端末装置10がクエリを生成してから、管理装置20の指示に基づくタイムアウトが発生するまでの一連の処理の一例について説明する。すなわち、まず、端末装置10がサーバ40にクエリを送信した後に、3回の接続確認が実施される。
【0105】
そして、本例では、S21の処理の後に、管理装置20から端末装置10に制御メッセージM2が送信される(S41)。この制御メッセージM2は、制御内容として“タイムアウト”を格納している。この場合、端末装置10は、制御メッセージM2に基づいて接続確認処理を終了し、応答待ちタイムアウトとする(S42)。このように、制御メッセージM2に基づいて接続確認処理が終了される場合、接続確認処理は、接続確認設定D1における最大回数の接続確認を実行する前に終了され得る。
【0106】
<2-2>管理装置20の動作
以下に、管理装置20の動作について説明する。
【0107】
<2-2-1>通知メッセージ受信処理の流れ
図14は、実施形態に係る接続確認制御システム1が備える管理装置20の通知メッセージ受信処理の流れの一例を示すフローチャートである。以下に、
図14を参照して、管理装置20の履歴管理部22による接続確認履歴D2の更新に関する処理の一例について説明する。
【0108】
履歴管理部22は、メッセージング装置30から通知メッセージM1を受信すると、
図14の一連の処理を開始する(開始)。
【0109】
まず、履歴管理部22は、通知メッセージM1から、処理名及び処理IDを取得する(S301)。
【0110】
次に、履歴管理部22は、接続確認履歴D2に、同じ処理IDの通知履歴が存在しているか否かを確認する(S302)。同じ処理IDの通知履歴が存在している場合(S302:YES)、履歴管理部22は、S303の処理に進む。同じ処理IDの通知履歴が存在していない場合(S302:NO)、履歴管理部22は、S304の処理に進む。
【0111】
S303の処理において、履歴管理部22は、接続確認履歴D2内で同じ処理IDの通知履歴に、通知メッセージM1の内容を追記する。履歴管理部22は、通知メッセージM1の内容を、通知履歴で対応付けられたフィールドに上書きしてもよい。そして、履歴管理部22は、S303の処理が完了すると、
図14の一連の処理を終了する(終了)。
【0112】
S304の処理において、履歴管理部22は、接続確認履歴D2内でその処理IDに対応付けられた通知履歴を新規作成する。そして、履歴管理部22は、新規作成した通知履歴に、通知メッセージM1の内容を記録する(S305)。それから、履歴管理部22は、S305の処理が完了すると、
図14の一連の処理を終了する(終了)。
【0113】
<2-2-2>設定変更処理の流れ
図15は、実施形態に係る接続確認制御システム1が備える管理装置20の設定変更処理の流れの一例を示すフローチャートである。以下に、
図15を参照して、管理装置20の制御指示部24による制御指示の生成に関する処理の一例について説明する。
【0114】
制御指示部24は、例えば、システム管理者からの要求に基づいて、
図15の一連の処理を開始する(開始)。なお、制御指示部24は、
図15の一連の処理を、所定の条件に基づいて自発的に開始してもよいし、接続確認履歴D2に基づいて接続確認処理のタイムアウトが推測できる場合に開始してもよい。
【0115】
まず、制御指示部24は、システム管理者による制御指示があるか否かを確認する(S401)。システム管理者による制御指示がない場合(S401:NO)、制御指示部24は、S402の処理に進む。システム管理者による制御指示がある場合(S401:YES)、制御指示部24は、S410の処理に進む。
【0116】
S402の処理において、制御指示部24は、記憶部21から接続確認履歴D2を取得する。なお、S402の処理において、制御指示部24により取得される情報は、接続確認履歴D2のうち、制御指示の対象である処理名に関連付けられた情報である。
【0117】
次に、制御指示部24は、記憶部21から障害履歴D3を取得する(S403)。制御指示部24は、障害履歴D3に基づいて、現在のサーバ40に障害が発生しているか否か等を把握することができる。
【0118】
次に、制御指示部24は、接続確認履歴D2と障害履歴D3とに基づいて制御指示を作成する(S404)。制御指示部24は、例えば、過去の接続確認処理における接続確認の実施回数や、過去の障害の傾向及び統計や、サーバ40の障害状況に基づいて、制御指示を作成する。
【0119】
次に、制御指示部24は、作成した制御指示を情報通知部25に転送する(S405)。情報通知部25は、所定の方法を用いて、制御指示の内容をシステム管理者に提供する。この所定の方法としては、例えば、管理装置20の表示装置104に情報を表示させることや、制御指示の内容をログとして出力することや、制御指示の内容を電子メールに添付又は記載して所定のアドレスに送信すること等が挙げられる。情報通知部25は、複数の方法を用いて制御指示の内容をシステム管理者に提供してもよい。
【0120】
次に、制御指示部24は、自動制御に設定されているか否かを確認する(S406)。自動制御は、管理装置20により作成された制御指示を自動的に適用する設定であり、システム管理者により設定される。自動制御に設定されている場合(S406:YES)、制御指示部24は、S410の処理に進む。自動制御に設定されていない場合(S406:NO)、制御指示部24は、
図15の一連の処理を終了する(終了)。
【0121】
S410の処理において、制御指示部24は、制御指示に基づいて制御メッセージM2を作成し、制御メッセージM2を、メッセージング装置30を介して端末装置10に送信する。そして、端末装置10の接続確認制御部15は、制御メッセージM2に基づいて、接続確認実行部13を制御し、及び/又は接続確認設定D1を更新する。制御指示部24は、S410の処理が完了すると、
図15の一連の処理を終了する(終了)。
【0122】
<2-2-3>設定変更処理の具体例
以下に、実施形態に係る接続確認制御システム1における設定変更処理の具体例について説明する。なお、接続確認制御システム1において適用される制御指示の作成方法は、以下で示される第1の例~第5の例のそれぞれに限定されない。接続確認制御システム1は、少なくとも接続確認履歴D2に基づいて制御指示を作成していればよい。そして、接続確認制御システム1は、接続確認履歴D2と障害履歴D3との両方を参照することによって、より好ましい条件で制御指示を作成することができる。
【0123】
(1:第1の例)
図16は、実施形態に係る接続確認制御システム1が備える管理装置20の設定変更処理における設定変更条件及び制御メッセージM2の第1の例を示すテーブルである。
図16の(A)は、第1の例において制御指示が作成される前の接続確認設定D1を示している。
図16の(B)は、第1の例における制御指示が適用される接続確認履歴D2の一例を示している。
図16の(C)は、第1の例において作成された制御指示を含む制御メッセージM2の一例を示している。
【0124】
図16の(A)に示された接続確認設定D1の内容は、
図4に示された接続確認設定D1と同様である。
図16の(B)に示された接続確認履歴D2には、処理Aに関して3回の接続確認処理(ID-001、ID-002、及びID-003)が実施されていることが記録されている。そして、3回の接続確認処理のそれぞれで、最大回数(5回)の接続確認が実施され、最終結果が“異常(タイムアウト)”となっている。
【0125】
このように、接続確認履歴D2において、特定の処理名に関連付けられて異常(タイムアウト)を示す複数の履歴が含まれている場合に、制御指示部24は、異常(タイムアウト)となる頻度が減るような制御指示を作成する。具体的には、
図16の(C)に示すように、制御指示部24は、接続確認履歴D2に基づいて、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれを増やすような制御メッセージM2を作成する。本例では、最大回数が5回から6回に増やされ、警告を通知する接続確認の回数が3回目から4回目に増やされている。なお、制御指示部24は、異常(タイムアウト)の履歴が続く場合に、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれをさらに増やしてもよい。
【0126】
図17は、第1の例における接続確認処理の変化の具体例を示すシーケンス図である。
図17の(A)は、第1の例においてサーバ40によるクエリの処理時間の一例を示している。
図17の(B)は、
図16の(A)に示された条件における接続確認の実施状況を示している。
図17の(C)は、
図16の(C)に示された制御指示が適用された後の接続確認の実施状況を示している。
【0127】
図17の(B)に示すように、
図16の(A)に示された条件では、5回の接続確認が実施される時間が処理時間よりも短く、接続確認処理が異常に終了(タイムアウト)してしまう。一方で、
図16の(C)に示された条件では、異常終了が発生し辛いように、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれが増やされている。これにより、設定変更後の接続確認処理では、タイムアウトが回避され得る。
【0128】
(2:第2の例)
図18は、実施形態に係る接続確認制御システム1が備える管理装置20の設定変更処理における設定変更条件及び制御メッセージM2の第2の例を示すテーブルである。
図18の(A)は、第2の例において制御指示が作成される前の接続確認設定D1を示している。
図18の(B)は、第2の例における制御指示が適用される接続確認履歴D2の一例を示している。
図18の(C)は、第2の例において作成された制御指示を含む制御メッセージM2の一例を示している。
【0129】
図18の(A)に示された接続確認設定D1の内容は、
図4に示された接続確認設定D1と同様である。
図18の(B)に示された接続確認履歴D2には、処理Aに関して3回の接続確認処理(ID-001、ID-002、及びID-003)が実施されていることが記録されている。そして、ID-001の接続確認処理で、3回の接続確認が実施され、ID-002及びID-003のそれぞれの接続確認処理で、4回の接続確認が実施され、それから、3回の接続確認処理のそれぞれで、最終結果が“警告”となっている。
【0130】
このように、接続確認履歴D2において、特定の処理名に関連付けられて警告を示す複数の履歴が含まれている場合に、制御指示部24は、警告となる頻度が減るような制御指示を作成する。具体的には、
図18の(C)に示すように、制御指示部24は、接続確認履歴D2に基づいて、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれを増やすような制御メッセージM2を作成する。例えば、制御指示部24は、最大回数(5回)から警告の回数(3回)を引いた回数(2回)だけ、最大回数と、警告を通知する接続確認の回数とのそれぞれ増やす。具体的には、最大回数が5回から7回に増やされ、警告を通知する接続確認の回数が3回目から5回目に増やされている。なお、制御指示部24は、警告の履歴が続く場合に、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれをさらに増やしてもよい。
【0131】
図19は、第2の例における接続確認処理の変化の具体例を示すシーケンス図である。
図19の(A)は、第2の例においてサーバ40によるクエリの処理時間を示している。
図19の(B)は、
図18の(A)に示された条件における接続確認の実施状況を示している。
図19の(C)は、
図18の(C)に示された制御指示が適用された後の接続確認の実施状況を示している。
【0132】
図19の(B)に示すように、
図18の(A)に示された条件では、警告の通知が割り当てられた接続確認が処理時間の終了時点よりも前に実施され、接続確認処理の最終結果が警告となる可能性が高い。一方で、
図18の(C)に示された条件では、警告が発生し辛いように、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれが増やされている。これにより、設定変更後の接続確認処理では、警告の通知が回避され得る。
【0133】
(3:第3の例)
図20は、実施形態に係る接続確認制御システム1が備える管理装置20の設定変更処理における設定変更条件及び制御メッセージM2の第3の例を示すテーブルである。
図20の(A)は、第3の例において制御指示が作成される前の接続確認設定D1を示している。
図20の(B)は、第3の例における制御指示が適用される接続確認履歴D2の一例を示している。
図20の(C)は、第3の例において作成された制御指示を含む制御メッセージM2の一例を示している。
【0134】
図20の(A)に示された接続確認設定D1の内容は、
図4に示された接続確認設定D1と同様である。
図20の(B)に示された接続確認履歴D2には、処理Aに関して3回の接続確認処理(ID-001、ID-002、及びID-003)が実施されていることが記録されている。そして、3回の接続確認処理のそれぞれで、1回の接続確認が実施され、最終結果が“正常”となっている。
【0135】
このように、接続確認履歴D2において、特定の処理名に関連付けられて正常を示し、且つ実施回数が1回以下の複数の履歴が含まれている場合、又は、通知履歴が存在しない(1回目の接続確認の前に終了する処理)場合に、制御指示部24は、実施回数が増えるような制御指示を作成する。具体的には、
図20の(C)に示すように、制御指示部24は、接続確認履歴D2に基づいて、間隔を短くするような制御メッセージM2を作成する。制御指示部24は、例えば、間隔を1/2にする。具体的には、間隔が60秒から30秒に変更されている。なお、制御指示部24は、実施回数が1回である履歴が続く場合に、間隔をさらに短くしてもよい。
【0136】
図21は、第3の例における接続確認処理の変化の具体例を示すシーケンス図である。
図21の(A)は、第3の例においてサーバ40によるクエリの処理時間を示している。
図21の(B)は、
図20の(A)に示された条件における接続確認の実施状況を示している。
図21の(C)は、
図20の(C)に示された制御指示が適用された後の接続確認の実施状況を示している。
【0137】
図21の(B)に示すように、
図20の(A)に示された条件では、処理時間が短く、接続確認の実施回数が1回以下となる可能性が高い。一方で、
図20の(C)に示された条件では、接続確認の実施回数が増えるように、接続確認の間隔が短く設定されている。これにより、設定変更後の接続確認処理では、接続確認の実施回数が複数回になり得る。
【0138】
(4:第4の例)
図22は、実施形態に係る接続確認制御システム1が備える管理装置20の設定変更処理における設定変更条件及び制御メッセージM2の第4の例を示すテーブルである。
図22の(A)は、第4の例において制御指示が作成される前の接続確認設定D1を示している。
図22の(B)は、第4の例における制御指示が適用される接続確認履歴D2の一例を示している。
図22の(C)は、第4の例における制御指示が適用される障害履歴D3の一例を示している。
図22の(D)は、第4の例において作成された制御指示を含む制御メッセージM2の一例を示している。
【0139】
図22の(A)に示された接続確認設定D1の内容は、
図4に示された接続確認設定D1と同様である。
図22の(B)に示された接続確認履歴D2には、処理Aに関して1回の接続確認処理(ID-001)が実施されていることが記録されている。そして、ID-001の接続確認処理で、5回の接続確認が実施され、最終結果が“異常(タイムアウト)”となっている。また、ID-001の接続確認処理で、開始時刻が2023/12/01 09:01:00であり、警告時刻が2023/12/01 09:04:00であり、異常時刻が2023/12/01 09:05:00である。
図22の(C)に示された障害履歴D3には、障害開始時刻が2023/12/01 08:00:00であり、障害復旧時刻が2023/12/01 08:30:00であることが示されている。制御指示部24は、接続確認履歴D2と障害履歴D3とに基づいて、サーバ40の障害が発生していない時間帯において、ID-001の接続確認処理が実行されていることを認識する。
【0140】
このように、本例では、サーバ40の障害が発生していないにも関わらず、処理Aにおいて最終結果が異常(タイムアウト)である通知履歴が1件発生している。この場合、制御指示部24は、異常(タイムアウト)となる頻度が減るような制御指示を作成する。具体的には、
図22の(C)に示すように、制御指示部24は、接続確認履歴D2と障害履歴D3とに基づいて、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれを増やすような制御メッセージM2を作成する。具体的には、最大回数が5回から6回に増やされ、警告を通知する接続確認の回数が3回目から6回目に増やされている。なお、制御指示部24は、異常(タイムアウト)の履歴が続く場合に、接続確認の最大回数と、警告を通知する接続確認の回数とのそれぞれをさらに増やしてもよい。第4の例における接続確認処理の変化の具体例を示すシーケンス図は、
図19と同様である。
【0141】
(5:第5の例)
図23は、実施形態に係る接続確認制御システム1が備える管理装置20の設定変更処理における設定変更条件及び制御メッセージM2の第5の例を示すテーブルである。
図23の(A)は、第5の例において制御指示が作成される前の接続確認設定D1を示している。
図23の(B)は、第5の例における制御指示が適用される接続確認履歴D2の一例を示している。
図23の(C)は、第5の例における制御指示が適用される障害履歴D3の一例を示している。
図23の(D)は、第5の例において作成された制御指示を含む制御メッセージM2の一例を示している。
【0142】
図23の(A)に示された接続確認設定D1の内容は、
図4に示された接続確認設定D1と同様である。
図23の(B)に示された接続確認履歴D2には、処理Aに関して1回の接続確認処理(ID-001)が実施されていることが記録されている。そして、ID-001の接続確認処理で、5回の接続確認が実施され、最終結果が“異常(タイムアウト)”となっている。また、ID-001の接続確認処理で、開始時刻が2023/12/01 09:01:00であり、警告時刻が2023/12/01 09:04:00であり、異常時刻が2023/12/01 09:05:00である。
図23の(C)に示された障害履歴D3には、障害開始時刻が2023/12/01 09:01:30であり、障害復旧時刻が記録されていないこと(すなわち、障害発生中であること)が示されている。
【0143】
制御指示部24は、接続確認履歴D2と障害履歴D3とに基づいて、サーバ40の障害が発生している時間帯において、ID-001の接続確認処理が実施途中であることを認識する。具体的には、制御指示部24は、2回目の接続確認が2023/12/01 09:02:00であり、且つ2023/12/01 09:02:00から発生しているサーバ40の障害が復旧されていないことに基づいて、ID-001の接続確認処理が実施途中であることを認識する。
【0144】
このように、サーバ40の障害が発生している最中に、処理Aにおいて接続確認処理が実施されている場合、制御指示部24は、実施途中の接続確認処理をタイムアウトさせるような制御指示を作成する。具体的には、
図23の(D)に示すように、制御指示部24は、接続確認履歴D2と障害履歴D3とに基づいて、制御内容を“タイムアウト”に設定した制御メッセージM2を作成する。つまり、制御指示部24は、接続確認設定D1に設定された処理Aにおいて、障害履歴D3に現在障害が発生していることを示す障害履歴が存在し、且つ、接続確認履歴D2に接続確認を実施中の通知履歴が存在する場合に、処理IDを指定して、特定の処理をタイムアウトさせる制御メッセージM2を作成する。なお、制御指示部24は、処理IDの指定を省略して、同じ処理名の全ての処理をタイムアウトさせるような制御メッセージM2を作成してもよい。
【0145】
<3>実施形態の効果
JDBC処理における接続確認処理の好ましい設定は、処理されるクエリの内容や、サーバ40(データベース)の状況によっても異なる。例えば、接続確認処理の設定が不適切である場合、JDBC処理において異常な終了が頻発するおそれがある。異常な終了を抑制するためには、過去の接続確認の状況を把握し、JDBC処理毎に、随時接続確認の設定を行うことが好ましい。
【0146】
そこで、実施形態に係る接続確認制御システム1では、JDBC処理を実行する端末装置10が、接続確認の実施結果を、接続確認を実施する度に管理装置20に通知する。そして、管理装置20が、通知された接続確認の実施結果を、システム管理者に所定の方法で通知する。これにより、システム管理者は、現在実行されているJDBC処理において実行された接続確認の状況を確認することができる。その結果、システム管理者は、より適切な接続確認の設定を、早期に端末装置10に適用することができる。
【0147】
また、実施形態に係る接続確認制御システム1では、管理装置20が、接続確認の通知履歴(接続確認履歴D2)や、データベース(サーバ40)の障害履歴D3を管理する。そして、管理装置20は、接続確認履歴D2や障害履歴D3に基づいて、過去の障害の傾向や統計と現在の障害状況から制御指示を算出し、システム管理者に提供する。このように、管理装置20は、システム管理者により好ましい接続確認処理の設定を通知することができ、システム管理者が接続確認を設定する際の支援をすることができる。
【0148】
以上のように、実施形態に係る接続確認制御システム1では、システム管理者が、より好ましい接続確認処理の設定を決定し、制御指示をすることができる。そして、管理装置20は、システム管理者による制御指示に基づいて、より好ましい接続確認の設定をJDBC処理に適用することができる。従って、実施形態に係る接続確認制御システム1では、JDBC処理毎により適切な設定で接続確認を実施することができる。
【0149】
また、実施形態に係る接続確認制御システム1では、システム管理者または管理装置20が、任意のJDBC処理の接続確認処理の開始、停止、タイムアウトや、接続確認処理の設定を動的に制御することができる。管理装置20は、自動制御に設定されることによって、接続確認履歴D2と障害履歴D3とに基づいて算出されたより好ましい接続確認処理の設定を、システム管理者を介することなく、端末装置10が実行するJDBC処理毎に適用することができる。これにより、実施形態に係る接続確認制御システム1は、システム管理者の負荷を軽減し、且つJDBC処理における接続確認処理を動的により適切な設定が適用された状態で実施することができる。
【0150】
<その他>
実施形態において、動作の説明に用いたフローチャートは、あくまで一例である。フローチャートを用いて説明された動作は、処理の順番が可能な範囲で入れ替えられてもよいし、その他の処理が追加されてもよいし、一部の処理が省略されてもよい。実施形態において説明された処理のそれぞれは、専用のハードウェアによって実現されてもよい。上記実施形態で説明された処理は、ソフトウェアにより実行される処理と、ハードウェアによって実行される処理とが混在していてもよいし、どちらか一方のみであってもよい。
【0151】
実施形態では、JavaのデータベースアクセスAPIを利用したJDBC処理において接続確認処理が実施される場合について例示したが、これに限定されない。実施形態で説明された接続確認処理は、Java以外のプログラミング言語を用いたデータベースアクセスAPIに適用されてもよい。つまり、Java以外のプログラミング言語を用いたデータベースアクセスAPIにおいて、実施形態で説明されたような接続確認の設定の支援が実施されてもよいし、接続確認の動的な設定変更が適用されてもよい。
【0152】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0153】
1…接続確認制御システム、10…端末装置、11…記憶部、12…アクセス実行部、13…接続確認実行部、14…履歴通知部、15…接続確認制御部、20…管理装置、21…記憶部、22…履歴管理部、23…障害管理部、24…制御指示部、25…情報通知部、30…メッセージング装置、40…サーバ、101…プロセッサ、102…メモリ装置、103…ストレージ装置、104…表示装置、105…入力インターフェース、106…通信モジュール、D1…接続確認設定、D2…接続確認履歴、D3…障害履歴、M1…通知メッセージ、M2…制御メッセージ、M3…通知メッセージ