JP7059859B2 - 制御方法、制御装置および制御プログラム - Google Patents

制御方法、制御装置および制御プログラム Download PDF

Info

Publication number
JP7059859B2
JP7059859B2 JP2018147205A JP2018147205A JP7059859B2 JP 7059859 B2 JP7059859 B2 JP 7059859B2 JP 2018147205 A JP2018147205 A JP 2018147205A JP 2018147205 A JP2018147205 A JP 2018147205A JP 7059859 B2 JP7059859 B2 JP 7059859B2
Authority
JP
Japan
Prior art keywords
access
control device
communication
retries
failure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018147205A
Other languages
English (en)
Other versions
JP2020021432A (ja
Inventor
惇 中嶋
剛 吉富
翼 山本
健男 飯塚
大輝 澤村
雅史 橋口
憲治 数村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018147205A priority Critical patent/JP7059859B2/ja
Publication of JP2020021432A publication Critical patent/JP2020021432A/ja
Application granted granted Critical
Publication of JP7059859B2 publication Critical patent/JP7059859B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Description

本発明は、制御方法、制御装置および制御プログラムに関する。
従来、アプリケーションサーバと連携しているデータベース等が生存状態、すなわち正常に動作している状態にあるかを監視するための技術が知られている。また、生存状態の監視においては、アプリケーションサーバとデータベースとの間の通信路の一部が故障している場合、データベースが生存状態にあったとしても、正確な生存状態の判断が困難な場合がある。
従来の生存状態の監視技術として、データベースへの接続検証が知られている。データベースへの接続検証とは、アプリケーションサーバが、データベースへの接続要求を受けた際に、接続プールに保持されている接続の利用可否を確認した上で、接続要求に対し接続を返す手法である。なお、接続プールとは、アプリケーションサーバが、接続要求があるたびに接続を作成せずに済むように、作成した接続を保持して再利用する機能である。
また、アプリケーションが連携機能に接続できない等の連携機能に関する異常を検出した場合に、アプリケーション側で連携機能への接続を一定時間遮断する手法(サーキットブレーカー)が知られている。
特開2016-133867号公報 特開2015-225539号公報 特開2014-81897号公報
しかしながら、従来の手法では、アプリケーションサーバから連携先への接続要求の処理を効率化することが困難な場合がある。
例えば、データベースへの接続検証では、利用可能であることが確認された接続がアプリケーションサーバに返されたとしても、その後、アプリケーションサーバからの接続が成功しないことがあり得る。これは、接続可否の確認を行った際の通信路と、その後アプリケーションからの接続が試みられた通信路とが異なる場合があるためである。
例えば、アプリケーションサーバとデータベースとの間の通信路の振り分けがDNS(Domain Name System)サーバによって行われている場合、アプリケーションサーバは、通信先としてデータベースのFQDN(Fully Qualified Domain Name)を指定する。このとき、DNSサーバによって、FQDNに対する通信は複数の接続先に振り分けられる。この場合、アプリケーションサーバは、DNSにより振り分けられる接続先の識別および制御ができない。
そのため、データベースへの接続検証においてFQDNが利用可能であることが確認されたとしても、DNSサーバによる振り分けによっては、実際の接続時には検証時と異なる通信路が選択される場合がある。このため、データベースへの接続検証により利用可能であることが確認された接続であっても、アプリケーションからデータベースへの接続に失敗する場合がある。
なお、サーキットブレーカーについては、アプリケーションに機能を追加する必要があり、アプリケーション開発者への負担の増加等により、容易に実現することが困難な場合がある。
一つの側面では、アプリケーションサーバから連携先への接続要求の処理を効率化することができる制御方法、制御装置および制御プログラムを提供することにある。
一つの態様では、制御方法は、複数の通信路のうち、アクセスに応じて所定のアルゴリズムで順次切り替え選択された通信路を介して他の装置にアクセスする装置が実行する。装置は、他の装置へのアクセスの成否の履歴に基づいて、他の装置へのアクセスの失敗を検出した際のリトライ回数を制御する処理を実行する。
アプリケーションサーバから連携先への接続要求の処理を効率化することができる。
図1は、実施例の制御装置の構成の一例を示すブロック図である。 図2は、設定テーブルの一例を示す図である。 図3は、履歴テーブルの一例を示す図である。 図4は、応答状況テーブルの一例を示す図である。 図5は、生存状態テーブルの一例を示す図である。 図6は、接続不可の場合の処理を説明するための図である。 図7は、一部接続不可の場合の処理を説明するための図である。 図8は、高負荷の場合の処理を説明するための図である。 図9は、実施例の制御装置の処理の一例を示すフローチャートである。 図10は、実施例の制御装置の生存状態設定処理の一例を示すフローチャートである。 図11は、実施例の通信制御処理の一例を示すフローチャートである。 図12は、実施例の制御装置の通信前処理の一例を示すフローチャートである。 図13は、実施例の制御装置の通信後処理の一例を示すフローチャートである。 図14は、制御プログラムを実行するコンピュータの一例を示す図である。
以下、図面に基づいて、本願の開示する制御方法、制御装置および制御プログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1を用いて、制御装置10の構成について説明する。図1は、実施例の制御装置の構成の一例を示すブロック図である。制御システム1は、制御装置10、連携機能21、連携機能22および連携機能23を有する。なお、以降の説明では、連携機能21、連携機能22および連携機能23を区別せずに連携機能20と称する場合がある。また、連携機能20の数は図示のものに限定されず、任意の数であってよい。
例えば、制御装置10は、アプリケーションサーバである。制御装置10は、内部または外部のアプリケーションからの要求に応じて、通信路30を介して連携機能20と連携し、所定の情報を当該アプリケーションに提供する。
また、例えば、連携機能20は、データベースサーバである。連携機能20は、制御装置10に情報を提供する。また、例えば、通信路30は、インターネットを介した通信経路である。また、制御装置10と連携機能20のそれぞれとの間には、複数の通信路30が存在する。なお、連携機能20は、他の装置の一例である。
ここで、アプリケーションは、当該アプリケーションの機能を発揮するため、制御装置10に対し連携機能20へのアクセスを要求することがある。また、制御装置10は、アプリケーションからの要求にかかわらず、連携機能20の生存状態の確認のため、連携機能20にアクセス要求を行う場合がある。このとき、制御装置10からのアクセスに利用される通信路30は、所定のアルゴリズムで順次切り替わる。つまり、制御装置10は、複数の通信路30のうち、アクセスに応じて所定のアルゴリズムで順次切り替え選択された通信路30を介して連携機能20にアクセスする。
ここで、制御装置10から連携機能20へのアクセスは、通信路30の故障等により失敗する場合がある。その場合、制御装置10は、アクセスのリトライを試みる。このとき、リトライにおけるアクセスは、さらに失敗する場合がある。本実施例の制御装置10は、アクセスの成否の履歴に基づいてリトライの回数を制御する。
図1に示すように、制御装置10は、通信部11と、記憶部12と、制御部13とを有する。なお、制御装置10は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
通信部11は、例えば、NIC(Network Interface Card)等によって実現される。通信部11は、ネットワークを介して有線または無線で接続された連携機能20との間で情報の通信を司る通信インタフェースである。例えば、通信部11は、通信路30を介して連携機能20との間でデータの送受信を行う。また、通信部11は、複数の通信路30のうち、アクセスに応じて、ラウンドロビンで順次切り替え選択された通信路30を介して連携機能20にアクセスすることができる。
記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部12は、設定テーブル121、履歴テーブル122、応答状況テーブル123および生存状態テーブル124を有する。また、記憶部12は、制御部13での処理に用いる情報を記憶する。
設定テーブル121は、制御装置10による制御に用いられる既定の設定値を記憶する。図2は、設定テーブルの一例を示す図である。例えば、図2に示すように、設定テーブル121は、設定項目として、生存状態測定サイクル、高負荷状態閾値、遮断解除時間、負荷状況測定サイクル、および通信失敗時リトライ回数を記憶する。
また、設定テーブル121は、生存状態測定サイクルとして、例えば「300s」を記憶する。また、設定テーブル121は、高負荷状態閾値として、例えば「1s」を記憶する。また、設定テーブル121は、遮断解除時間として、例えば「60s」を記憶する。また、設定テーブル121は、負荷状況測定サイクルとして、例えば「60s」を記憶する。また、設定テーブル121は、通信失敗時リトライ回数として、例えば「10回」を記憶する。
履歴テーブル122は、制御装置10による連携機能20へのアクセスの成否の履歴を記憶する。また、履歴テーブル122は、アクセスの成否の履歴を、連携機能20のそれぞれに対応付けて記憶する。図3は、履歴テーブルの一例を示す図である。例えば、図3に示すように、履歴テーブル122は、連携機能、接続成否、応答時間および接続日時を記憶する。
履歴テーブル122の連携機能は、連携機能20を識別するための情報である。また、接続成否は、アクセスが成功したか失敗したかを示す情報である。また、応答時間は、アクセスの要求後、応答が返ってくるまでに要した時間である。また、接続日時は、アクセス要求があった日時である。例えば、履歴テーブル122の1行目は、「17/12/20 13:44:05.238」に行われた連携機能21へのアクセスが成功し、応答時間が「0.5s」であったことを示している。
応答状況テーブル123は、連携機能20のそれぞれに対応するアクセスの成否の履歴に基づいて生成される、制御装置10からのアクセス要求に対する応答状況を記憶する。図4は、応答状況テーブルの一例を示す図である。例えば、図4に示すように、応答状況テーブル123は、連携機能、接続成功率および平均応答時間を記憶する。
応答状況テーブル123の連携機能は、連携機能20を識別するための情報である。また、接続成功率は、アクセスの総数に対する成功したアクセスの数の割合である。また、平均応答時間は、応答時間の平均である。例えば、応答状況テーブル123の1行目は、連携機能21へのアクセスの接続成功率が「50%」であり、平均応答時間が「0.3s」であることを示している。
生存状態テーブル124は、連携機能20のそれぞれに対応する応答状況に基づいて生成される情報であって、制御装置10による制御に用いられる情報を記憶する。図5は、生存状態テーブルの一例を示す図である。例えば、図5に示すように、生存状態テーブル124は、連携機能および生存状態を記憶する。
生存状態テーブル124の連携機能は、連携機能20を識別するための情報である。また、生存状態は、制御装置10による制御方法を区別するための情報である。なお、生存状態には、「一部接続不可」、「正常」、「接続不可」、「高負荷」がある。例えば、生存状態テーブル124の1行目は、連携機能21の生存状態が「一部接続不可」であることを示している。
図1の説明に戻って、制御部13は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部13は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部13は、アプリケーション131、リトライ制御部132および特定部133を有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部13の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
アプリケーション131は、連携機能20と連携して動作する所定のプログラムである。例えば、アプリケーション131は、データベースサーバから取得した情報を基に生成したWebサイトをユーザに提供するWebアプリケーションである。
ここで、アプリケーション131は、連携機能20へのアクセスにおいて例外が発生した場合、当該例外に関する情報を受け取り、受け取った情報をユーザに通知する機能を有する。ここで、例外とは、連携機能20へのアクセス時に発生するタイムアウト等のエラーである。また、アプリケーション131は、処理の実行中に連携機能20へのアクセスが失敗した場合、無応答状態に陥ることもあり得る。
アプリケーション131でエラーが発生すること、および、アプリケーション131が無応答状態に陥ることは、ユーザにとっては好ましくないことである。このため、本実施例は、アプリケーション131と連携機能20との連携時に、アクセスの失敗等の好ましくない状態をなるべく発生させないようにすることを一つの目的としている。
リトライ制御部132は、連携機能20へのアクセスの成否の履歴に基づいて、連携機能20へのアクセスの失敗を検出した際のリトライ回数を制御する処理を実行する。また、リトライ制御部132は、特定部133によって特定された応答状況に基づき、連携機能20へのアクセス要求の送信を制御する。
特定部133は、連携機能20へのアクセス要求を受け付けると、記憶部12の履歴テーブル122を参照して、連携機能20のそれぞれについて、アクセス要求に対する応答状況を特定する。ここで、記憶部12の履歴テーブル122は、過去の特定期間に連携機能20に送信されたアクセス要求に対するアクセスの成否の履歴を連携機能20に対応付けて記憶する。
また、特定部133は、連携機能20に送信されたアクセス要求に対するアクセスの成功率、および連携機能20に送信されたアクセス要求に対する応答時間の少なくともいずれかに基づいて応答状況を特定する。
特定部133は、連携機能20のそれぞれについて応答状況を特定し、特定した応答状況に基づいて、生存状態を「一部接続不可」、「正常」、「接続不可」、「高負荷」のいずれかに分類する。また、特定部133は、分類した生存状態を生存状態テーブル124に格納する。
次に、リトライ制御部132が、アクセス先の連携機能20の生存状態に応じて通信部11を制御する処理について説明する。図6、図7および図8を用いて、生存状態が「接続不可」、「一部接続不可」または「高負荷」である場合のリトライ制御部132による処理について説明する。また、ここでは、一例として、制御装置10が連携機能21にアクセスを試みる場合について説明する。
図6は、接続不可の場合の処理を説明するための図である。図6に示すように、連携機能21の生存状態が「接続不可」であることは、制御装置10が、いずれの通信路を使っても連携機能21にアクセスできないと推定されたことを意味している。この場合、リトライ制御部132は、連携機能21へのアクセスが失敗した場合、リトライを行わないように通信部11を制御する。つまり、リトライ制御部132は、特定部133によって成功率が0%であることが特定された場合、リトライ回数を0回に制御する。
図7は、一部接続不可の場合の処理を説明するための図である。図7に示すように、連携機能21の生存状態が「一部接続不可」であることは、制御装置10が、一部の通信路を使う場合に、連携機能21にアクセスできないと推定されたことを意味している。この場合、リトライ制御部132は、連携機能21へのアクセスが失敗した場合、最大N回のリトライを行うように通信部11を制御する。
ここで、リトライ制御部132は、応答状況テーブル123の接続成功率、平均応答時間、および履歴テーブル122における成功回数と失敗回数の偏りを基にNを計算する。また、Nは、設定テーブル121の通信失敗時リトライ回数の設定値以下の値である。つまり、リトライ制御部132は、特定部133によって成功率が0%より大きく、かつ100%未満であることが特定された場合、成功率、アクセスの成否の履歴における成功回数と失敗回数の偏り、および応答時間に基づいてリトライ回数を制御する。
例えば、リトライ制御部132は、接続成功率が大きいほど、また、平均応答時間が短いほどNが大きくなるように計算を行う。また、例えば、リトライ制御部132は、成否の履歴において、成功または失敗が連続している箇所が多いほど偏りが大きいとみなし、Nが小さくなるように計算を行う。
図8は、高負荷の場合の処理を説明するための図である。図8に示すように、連携機能21の生存状態が「高負荷」であることは、制御装置10が、少なくとも一部の通信路を使えば連携機能21にアクセスできるが、応答時間が長くなると推定されたことを意味している。この場合、リトライ制御部132は、連携機能21への接続要求を遮断し、一定時間待機する。つまり、リトライ制御部132は、特定部133によって応答時間が閾値以上であることが特定された場合、所定の時間の間、連携機能21へのアクセスを遮断する。
さらに、リトライ制御部132は、連携機能21への接続要求を遮断し、一定時間が経過した後、連携機能21の単位時間当たりの平均応答時間を負荷状況として測定する。ここで、リトライ制御部132は、測定した平均応答時間が閾値未満であれば、連携機能21の生存状態を「正常」に変更する。一方、リトライ制御部132は、測定した平均応答時間が閾値以上である場合、連携機能21の生存状態を「高負荷」のままとし、さらに一定時間が経過するまで待機する。なお、ここでの一定時間、単位時間、および閾値は、それぞれ設定テーブル121の遮断解除時間、負荷状況測定サイクルおよび高負荷状態閾値の設定値であってよい。
なお、生存状態が「正常」である場合、リトライ制御部132は、設定テーブル121の通信失敗時リトライ回数の設定値だけアクセスのリトライを行うように通信部11を制御する。つまり、リトライ制御部132は、特定部133によって成功率が100%であることが特定された場合、リトライ回数を、あらかじめ設定された既定の回数にする。
次に、実施例の制御装置10の処理について説明する。図9は、実施例の制御装置の処理の一例を示すフローチャートである。図9に示すように、まず、制御装置10は、管理者の操作等に応じてシステムを起動する(ステップS1)。このとき、設定テーブル121の各設定項目の設定値は、管理者等により設定済みであるものとする。
制御装置10は、システムが起動した後、生存状態設定処理および通信制御処理を非同期で実行する(ステップS2)。その後、制御装置10は、生存状態設定処理および通信制御処理を、システムが終了するまで実行する(ステップS3)。
図10を用いて、実施例の生存状態設定処理について説明する。図10は、実施例の制御装置の生存状態設定処理の一例を示すフローチャートである。図10に示すように、まず、制御装置10は、待機しつつ、生存状態測定サイクルが経過したか否かを判定する(ステップS11)。なお、制御装置10は、生存状態測定サイクルを設定テーブル121から取得することができる。
ここで、制御装置10は、生存状態設定サイクルが経過していない場合(ステップS11:否定)、さらに待機する。一方、制御装置10は、生存状態設定サイクルが経過した場合(ステップS11:肯定)、履歴テーブル122を参照し、平均応答時間および接続成功率を算出する(ステップS12)。また、制御装置10は、算出した平均応答時間および接続成功率を応答状況テーブル123に格納する。なお、生存状態設定処理の実行中であっても、通信制御処理の実行に伴い履歴テーブル122は随時更新される。
次に、制御装置10は、平均応答時間が高負荷状態閾値未満であるか否かを判定する(ステップS13)。なお、制御装置10は、高負荷状態閾値を設定テーブル121から取得することができる。
制御装置10は、平均応答時間が閾値未満である場合(ステップS13:肯定)、生存状態テーブル124の生存状態を「高負荷」に設定する(ステップS14)。また、制御装置10は、遮断時間の計測を開始する(ステップS15)。なお、制御装置10は、後述する通信制御処理において実際にアクセスを遮断する。
一方、制御装置10は、平均応答時間が閾値未満でない場合(ステップS13:否定)、接続成功率が100%、0%、および、0%より大きい、かつ100%未満のいずれであるかを判定する(ステップS16)。
ここで、制御装置10は、接続成功率が100%である場合、生存状態テーブル124の生存状態を「正常」に設定する(ステップS17)。また、制御装置10は、接続成功率が0%である場合、生存状態テーブル124の生存状態を「接続不可」に設定する(ステップS18)。また、制御装置10は、接続成功率が0%より大きい、かつ100%未満である場合、生存状態テーブル124の生存状態を「一部接続不可」に設定する(ステップS19)。
このように、制御装置10は、生存状態設定処理において、生存状態測定サイクルが経過するごとに生存状態テーブル124を更新する。このため、制御装置10は、通信制御処理において、生存状態テーブル124を参照し、生存状態に関する最新の情報を取得することができる。
図11を用いて、実施例の通信制御処理について説明する。図11は、実施例の通信制御処理の一例を示すフローチャートである。図11に示すように、まず、制御装置10は、待機しつつ、連携機能20との通信が発生したか否かを判定する(ステップS21)。
ここで、制御装置10は、連携機能20との通信が発生していない場合(ステップS21:否定)、さらに待機する。一方、制御装置10は、連携機能20との通信が発生した場合(ステップS21:肯定)、通信前処理を実行する(ステップS22)。制御装置10は、通信前処理において、生存状況テーブル124等の情報を基に、必要に応じて連携機能20への通信の遮断を行う。なお、通信制御処理の実行中であっても、生存状態設定処理の実行に伴い生存状態テーブル124は随時更新される。
制御装置10は、連携機能20への通信が遮断されているか否かを判定する(ステップS23)。制御装置10は、連携機能20への通信が遮断されている場合(ステップS23:肯定)、ステップS21へ戻り、連携機能20との間で次の通信が発生するまで待機する。
一方、制御装置10は、連携機能20への通信が遮断されていない場合(ステップS23:否定)、連携機能20との通信処理を実行する(ステップS24)。ここで、制御装置10は、通信処理の完了後、通信後処理を実行する(ステップS25)。制御装置10は、通信後処理において、生存状況テーブル124等の情報を基に、通信処理のリトライ回数を決定する。
制御装置10は、リトライ回数が0より大きいか否かを判定する(ステップS26)。制御装置10は、リトライ回数が0より大きい場合(ステップS26:肯定)、ステップS24へ戻り、通信処理をさらに実行する。このように、制御装置10は、通信の遮断およびリトライ回数の制御により、無駄なアクセスの発生を抑制している。
以降、通信制御処理の各処理について説明する。まず、図12を用いて、通信前処理について説明する。図12は、実施例の制御装置の通信前処理の一例を示すフローチャートである。図12に示すように、制御装置10は、生存状態テーブル124を参照し、生存状態が「高負荷」、「負荷状況測定中」、もしくは「高負荷」および「負荷状況測定中」のいずれでもないかを判定する(ステップS101)。
ここで、制御装置10は、生存状態が「高負荷」および「負荷状況測定中」のいずれでもない場合(ステップS101:高負荷および負荷状況測定中のいずれでもない)、通信前処理を終了する。
制御装置10は、生存状態が「高負荷」である場合(ステップS101:高負荷)、遮断時間が遮断時間解除時間以上であるか否かを判定する(ステップS102)。なお、制御装置10は、遮断時間解除時間を設定テーブル121から取得することができる。
ここで、制御装置10は、遮断時間が遮断時間解除時間以上でない場合(ステップS102:否定)、連携機能20との通信を遮断し(ステップS113)、通信前処理を終了する。なお、制御装置10は、ステップS113において既に通信が遮断されている場合、引き続き通信を遮断する。
一方、制御装置10は、遮断時間が遮断時間解除時間以上である場合(ステップS102:肯定)、生存状態テーブル124の生存状態を「負荷状況測定中」に設定する(ステップS103)。このとき、制御装置10は、負荷状況測定時間の計測を開始する(ステップS104)。
ここで、制御装置10は、通信が遮断されているか否かを判定する(ステップS105)。制御装置10は、通信が遮断されている場合(ステップS105:肯定)、通信の遮断を解除することで通信を再開し(ステップS106)、ステップS107に進む。また、制御装置10は、通信が遮断されていない場合(ステップS105:否定)、そのままステップS107に進む。
制御装置10は、生存状態が「負荷状況測定中」である場合(ステップS101:負荷状況測定中)、負荷状況測定時間の計測が開始されてから、負荷状況測定サイクルが経過したか否かを判定する(ステップS107)。なお、制御装置10は、負荷状況測定サイクルを設定テーブル121から取得することができる。
制御装置10は、負荷状況測定サイクルが経過していない場合(ステップS107:否定)、通信前処理を終了する。一方、制御装置10は、負荷状況測定サイクルが経過している場合(ステップS107:肯定)、平均応答時間を算出する(ステップS108)。
ここで、制御装置10は、算出した平均応答時間が高負荷状態閾値未満であるか否かを判定する(ステップS109)。制御装置10は、平均応答時間が高負荷状態閾値未満である場合(ステップS109:肯定)、生存状態テーブル124の生存状態を「正常」に設定し(ステップS110)、通信前処理を終了する。
一方、制御装置10は、平均応答時間が高負荷状態閾値未満でない場合(ステップS109:否定)、生存状態テーブル124の生存状態を「高負荷」に設定する(ステップS111)。このとき、制御装置10は、遮断時間の計測を開始する(ステップS112)。さらに、制御装置10は、連携機能20との通信を遮断し(ステップS113)、通信前処理を終了する。このように、制御装置10は、通信処理の前に負荷状況への対処を行うことができる。
次に、図13を用いて、通信後処理について説明する。図13は、実施例の制御装置の通信後処理の一例を示すフローチャートである。図13に示すように、まず、制御装置10は、通信処理の履歴を履歴テーブル122に記録する(ステップS201)。
ここで、制御装置10は、生存状態テーブル124を参照し、生存状態が「負荷状況測定中」であるか否かを判定する(ステップS202)。制御装置10は、生存状態が「負荷状況測定中」である場合(ステップS202:肯定)、リトライ回数を0に設定し(ステップS206)、通信後処理を終了する。
一方、制御装置10は、生存状態が「負荷状況測定中」でない場合(ステップS202:否定)、通信処理において接続が成功したか否かを判定する(ステップS203)。制御装置10は、接続が成功している場合(ステップS203:肯定)、生存状態テーブル124の生存状態が「接続不可」であるか否かを判定する(ステップS204)。
制御装置10は、生存状態が「接続不可」である場合(ステップS204:肯定)、生存状態テーブル124の生存状態を「正常」に設定し(ステップS205)、ステップS206に進む。また、制御装置10は、生存状態が「接続不可」でない場合(ステップS204:否定)、そのままステップS206に進む。つまり、制御装置10は、リトライ回数を0に設定し(ステップS206)、通信後処理を終了する。
制御装置10は、ステップS203において、接続が成功していない場合(ステップS203:否定)、リトライ回数が設定済みであるか否かを判定する(ステップS207)。制御装置10は、リトライ回数が設定済みである場合(ステップS207:肯定)、リトライ回数を減算し(ステップS211)、通信後処理を終了する。ここでは、制御装置10は、リトライ回数を、例えば「1」だけ減算する。一方、制御装置10は、リトライ回数が設定済みでない場合(ステップS207:否定)、生存状態が「一部接続不可」、「正常」および「接続不可」のいずれであるかを判定する(ステップS208)。
制御装置10は、生存状態が「一部接続不可」である場合(ステップS208:一部接続不可)、算出値に基づいてリトライ回数を設定し(ステップS209)、通信後処理を終了する。このとき、制御装置10は、成功率、アクセスの成否の履歴における成功回数と失敗回数の偏り、および応答時間に基づく算出値をリトライ回数として算出する。
制御装置10は、生存状態が「正常」である場合(ステップS208:正常)、リトライ回数を既定値に設定し(ステップS210)、通信後処理を終了する。このとき、制御装置10は、設定テーブル121の通信失敗時リトライ回数を、リトライ回数の既定値として取得することができる。
制御装置10は、生存状態が「接続不可」である場合(ステップS208:接続不可)、リトライ回数を0に設定し(ステップS206)、通信後処理を終了する。このとき、制御装置10は、接続に失敗したことを例外に関する情報としてアプリケーション131に返すようにしてもよい。このように、制御装置10は、通信処理の結果に応じたリトライ回数の決定を行うことができる。
このように、制御装置10は、連携機能20へのアクセスの成否の履歴に基づいて、連携機能20へのアクセスの失敗を検出した際のリトライ回数を制御する処理を実行する。このため、制御装置10によって行われるリトライの回数は一定ではなく、アクセス成否の履歴に基づいて決定される。その結果、制御装置10は、無駄なリトライを抑制し、アプリケーションサーバから連携先への接続要求の処理を効率化することができる。
また、制御装置10は、連携機能20へのアクセス要求を受け付けると、過去の特定期間に連携機能20に送信されたアクセス要求に対するアクセスの成否の履歴を参照し、連携機能20のそれぞれについて、アクセス要求に対する応答状況を特定する。また、制御装置10は、特定した応答状況に基づき、連携機能20へのアクセス要求の送信を制御する。このように、制御装置10は、連携機能20の応答状況を基にして、リトライ回数を容易に決定することができる。
また、制御装置10は、連携機能20に送信されたアクセス要求に対するアクセスの成功率、および連携機能20に送信されたアクセス要求に対する応答時間の少なくともいずれかに基づいて応答状況を特定する。その結果、制御装置10は、接続の可否だけでなく、応答にかかる時間を考慮した制御を行うことができる。
また、制御装置10は、成功率が0%であることが特定された場合、リトライ回数を0回に制御する。このように、制御装置10は、アクセスの成功率が非常に低いと考えられる場合、リトライを行わない。その結果、制御装置10は、無駄なリトライを抑制することができる。
また、制御装置10は、成功率が0%より大きく、かつ100%未満であることが特定された場合、成功率、アクセスの成否の履歴における成功回数と失敗回数の偏り、および応答時間に基づいてリトライ回数を制御する。このように、制御装置10は、アクセスの状況に合わせてリトライの回数を増減させることができる。その結果、制御装置10は、無駄なリトライを抑制することができる。
また、制御装置10は、成功率が100%であることが特定された場合、リトライ回数を、あらかじめ設定された既定の回数にする。このように、制御装置10は、アクセスの成功率が非常に高いと考えられる場合、リトライの回数の算出等の制御に関する処理を行わないため、計算量が削減される。
また、制御装置10は、応答時間が閾値以上であることが特定された場合、所定の時間の間、連携機能20へのアクセスを遮断する。その結果、制御装置10は、アクセスの成功率だけでなく、連携機能20の負荷状況を考慮した制御を行うことができる。
また、制御装置10の通信部11は、複数の通信路30のうち、アクセスに応じて、ラウンドロビンで順次切り替え選択された通信路30を介して連携機能20にアクセスする。制御装置10がリトライ回数の制御を行っている結果、ラウンドロビンのような単純な経路の選択手法を採用しても、効率的な通信制御が可能になる。
なお、上記の実施例では、アプリケーション131が制御装置10に含まれている構成について説明したが、アプリケーション131は制御装置10と異なる装置で実行されるものであってもよい。その場合、制御装置10は、アプリケーション131が実行される装置と連携機能20との間に備えられる負荷分散装置であってもよい。
また、上記の本実施例では、制御装置10は、生存状態が「負荷状況測定」の場合に、リトライ回数を0に設定するものとした。一方で、負荷状況を測定する機会を増やすために、制御装置10は、生存状態が「負荷状況測定」の場合に、リトライ回数を既定値等に設定するようにしてもよい。
図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、制御装置10のリトライ制御部132と特定部133とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図14は、制御プログラムを実行するコンピュータの一例を示す図である。
図14に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の情報処理装置等と有線または無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、ハードディスク装置208とを有する。また、各装置201~208は、バス209に接続される。
ハードディスク装置208には、図1に示したアプリケーション131、リトライ制御部132および特定部133の各処理部と同様の機能を有する制御プログラムが記憶される。また、ハードディスク装置208には、設定テーブル121、履歴テーブル122、応答状況テーブル123、生存状態テーブル124および記憶部12を実現するための各種データが記憶される。
入力装置202は、例えば、コンピュータ200の管理者から操作情報等の各種情報の入力を受け付ける。モニタ203は、例えば、コンピュータ200の管理者に対して出力画面等の各種画面を表示する。インタフェース装置205は、例えば印刷装置等が接続される。通信装置206は、例えば図11に示す通信路30を介して連携機能20と接続され、各種情報をやりとりする。
CPU201は、ハードディスク装置208に記憶された各プログラムを読み出して、RAM207に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ200を図1に示したアプリケーション131、リトライ制御部132および特定部133として機能させることができる。
なお、上記の制御プログラムは、必ずしもハードディスク装置208に記憶されている必要はない。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの制御プログラムを記憶させておき、コンピュータ200がこれらから制御プログラムを読み出して実行するようにしてもよい。
1 制御システム
10 制御装置
11 通信部
12 記憶部
13 制御部
20、21、22、23 連携機能
30 通信路
121 設定テーブル
122 履歴テーブル
123 応答状況テーブル
124 生存状態テーブル
131 アプリケーション
132 リトライ制御部
133 特定部

Claims (10)

  1. 複数の通信路のうち、アクセスに応じて所定のアルゴリズムで順次切り替え選択された通信路を介して他の装置にアクセスする装置が、
    前記他の装置へのアクセスの成否の履歴に基づいて、前記他の装置へのアクセスの失敗を検出した際のリトライ回数を制御する処理を実行することを特徴とする制御方法。
  2. 前記他の装置へのアクセス要求を受け付けると、過去の特定期間に前記他の装置に送信されたアクセス要求に対するアクセスの成否の履歴を前記他の装置に対応付けて記憶する記憶部を参照して、前記他の装置のそれぞれについて、アクセス要求に対する応答状況を特定する処理をさらに実行し、
    前記制御する処理は、特定した前記応答状況に基づき、前記他の装置へのアクセス要求の送信を制御する、
    ことを特徴とする請求項1に記載の制御方法。
  3. 前記特定する処理は、前記他の装置に送信されたアクセス要求に対するアクセスの成功率、および前記他の装置に送信されたアクセス要求に対する応答時間の少なくともいずれかに基づいて前記応答状況を特定することを特徴とする請求項2に記載の制御方法。
  4. 前記制御する処理は、前記特定する処理によって前記成功率が0%であることが特定された場合、前記リトライ回数を0回に制御することを特徴とする請求項3に記載の制御方法。
  5. 前記制御する処理は、前記特定する処理によって前記成功率が0%より大きく、かつ100%未満であることが特定された場合、前記成功率、前記アクセスの成否の履歴における成功回数と失敗回数の偏り、および前記応答時間に基づいて前記リトライ回数を制御することを特徴とする請求項3に記載の制御方法。
  6. 前記制御する処理は、前記特定する処理によって前記成功率が100%であることが特定された場合、前記リトライ回数を、あらかじめ設定された既定の回数にすることを特徴とする請求項3に記載の制御方法。
  7. 前記制御する処理は、前記特定する処理によって前記応答時間が閾値以上であることが特定された場合、所定の時間の間、前記他の装置へのアクセスを遮断することを特徴とする請求項3に記載の制御方法。
  8. 複数の通信路のうち、アクセスに応じて、ラウンドロビンで順次切り替え選択された通信路を介して他の装置にアクセスする装置が実行することを特徴とする請求項1に記載の制御方法。
  9. 複数の通信路のうち、アクセスに応じて所定のアルゴリズムで順次切り替え選択された通信路を介して他の装置にアクセスする制御装置において、
    前記他の装置へのアクセスの成否の履歴に基づいて、前記他の装置へのアクセスの失敗を検出した際のリトライ回数を制御する制御部、
    を備えたことを特徴とする制御装置。
  10. 複数の通信路のうち、アクセスに応じて所定のアルゴリズムで順次切り替え選択された通信路を介して他の装置にアクセスする装置に、
    前記他の装置へのアクセスの成否の履歴に基づいて、前記他の装置へのアクセスの失敗を検出した際のリトライ回数を制御する処理を実行させることを特徴とする制御プログラム。
JP2018147205A 2018-08-03 2018-08-03 制御方法、制御装置および制御プログラム Active JP7059859B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018147205A JP7059859B2 (ja) 2018-08-03 2018-08-03 制御方法、制御装置および制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018147205A JP7059859B2 (ja) 2018-08-03 2018-08-03 制御方法、制御装置および制御プログラム

Publications (2)

Publication Number Publication Date
JP2020021432A JP2020021432A (ja) 2020-02-06
JP7059859B2 true JP7059859B2 (ja) 2022-04-26

Family

ID=69588632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018147205A Active JP7059859B2 (ja) 2018-08-03 2018-08-03 制御方法、制御装置および制御プログラム

Country Status (1)

Country Link
JP (1) JP7059859B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101556005B1 (ko) * 2014-07-01 2015-09-30 주식회사 에이치투케이솔루션 공간차연시스템
KR101556377B1 (ko) * 2014-06-11 2015-10-02 한국철도기술연구원 슬라이드식 간이형 계단부속공간 확보 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008142798A1 (ja) 2007-05-24 2008-11-27 Panasonic Corporation 通信装置及びデータ再送方法
JP2010530189A (ja) 2007-06-13 2010-09-02 クゥアルコム・インコーポレイテッド プロトコル・データ・ユニット復元
JP2016076095A (ja) 2014-10-07 2016-05-12 セイコーエプソン株式会社 ステータス監視装置の設定方法、ステータス監視装置およびプログラム
JP2016146090A (ja) 2015-02-09 2016-08-12 富士ゼロックス株式会社 画像形成装置及びプログラム
JP2017537498A (ja) 2014-10-06 2017-12-14 ヴィド スケール インコーポレイテッド リンク条件、トラフィックタイプ、および/または優先順位に対する通信パラメータの適応

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3577579B2 (ja) * 1998-02-20 2004-10-13 富士通株式会社 ゲートウェイシステム及びコンピュータネットワーク

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008142798A1 (ja) 2007-05-24 2008-11-27 Panasonic Corporation 通信装置及びデータ再送方法
JP2010530189A (ja) 2007-06-13 2010-09-02 クゥアルコム・インコーポレイテッド プロトコル・データ・ユニット復元
JP2017537498A (ja) 2014-10-06 2017-12-14 ヴィド スケール インコーポレイテッド リンク条件、トラフィックタイプ、および/または優先順位に対する通信パラメータの適応
JP2016076095A (ja) 2014-10-07 2016-05-12 セイコーエプソン株式会社 ステータス監視装置の設定方法、ステータス監視装置およびプログラム
JP2016146090A (ja) 2015-02-09 2016-08-12 富士ゼロックス株式会社 画像形成装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
福原 毅郎 Takerou FUKUHARA,センサネットワークにおける冗長ACK受信削減による低消費電力フラッディングアルゴリズム Flooding Algorithm with Energy Consumption Reduction by Reducing Redundant Reception of ACK in Sensor Networks,電子情報通信学会論文誌 (J92-B) 第5号 THE IEICE TRANSACTIONS ON COMMUNICATIONS (JAPANESE EDITION),日本,社団法人電子情報通信学会 THE INSTITUTE OF ELECTRONICS,INFORMATION AND COMMUNICATION ENGINEERS,第J92-B巻

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101556377B1 (ko) * 2014-06-11 2015-10-02 한국철도기술연구원 슬라이드식 간이형 계단부속공간 확보 장치
KR101556005B1 (ko) * 2014-07-01 2015-09-30 주식회사 에이치투케이솔루션 공간차연시스템

Also Published As

Publication number Publication date
JP2020021432A (ja) 2020-02-06

Similar Documents

Publication Publication Date Title
US11223690B2 (en) Service management modes of operation in distributed node service management
JP6818014B2 (ja) ジョブ用の動作リトライ方法及び機器
JP6091724B2 (ja) リンクのヘルスチェック方法および装置
JP7059859B2 (ja) 制御方法、制御装置および制御プログラム
JP5614133B2 (ja) アクセス制御装置、アクセス制御方法およびストレージシステム
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
CN112948128A (zh) Target端的选择方法、系统及计算机可读介质
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
US11163630B2 (en) Using real-time analytics to manage application features
CN109302445A (zh) 主机节点状态确定方法、装置、主机节点及存储介质
JP4449929B2 (ja) トランザクション装置、遅延障害検出装置及び方法、並びにプログラム
JP2015069384A (ja) 情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラム
US8650281B1 (en) Intelligent arbitration servers for network partition arbitration
US10055315B2 (en) Failure monitoring in distributed computing systems
US20220086037A1 (en) Technique for Connection Handling in a Distributed System
US9430338B2 (en) Method and computing device for recording log entries
JP6816511B2 (ja) セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム
CN113778763B (zh) 一种三方接口服务故障智能切换方法及系统
US10114712B2 (en) Failure detection via implicit leases in distributed computing systems
US10896076B2 (en) Information processing system and control method for executing a process based on a message acquired from a queue
JP2005056347A (ja) サーバ機能引継方法およびサーバ機能引継プログラム
CN110752939B (zh) 一种业务进程故障处理方法、通知方法和装置
US8891515B2 (en) Method for node communication
JP6786835B2 (ja) 管理装置、サーバ、シンクライアントシステム、管理方法及びプログラム
JP6112205B2 (ja) 情報処理システム、装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220328

R150 Certificate of patent or registration of utility model

Ref document number: 7059859

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150