JP2011159014A - Information processing system, information processing device, communication control program, and communication control method - Google Patents
Information processing system, information processing device, communication control program, and communication control method Download PDFInfo
- Publication number
- JP2011159014A JP2011159014A JP2010018699A JP2010018699A JP2011159014A JP 2011159014 A JP2011159014 A JP 2011159014A JP 2010018699 A JP2010018699 A JP 2010018699A JP 2010018699 A JP2010018699 A JP 2010018699A JP 2011159014 A JP2011159014 A JP 2011159014A
- Authority
- JP
- Japan
- Prior art keywords
- server
- unit
- version number
- session
- information
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、サーバ間通信を制御するための接続情報を管理する情報処理システム、情報処理装置、通信制御プログラムおよび通信制御方法に関する。 The present invention relates to an information processing system, an information processing apparatus, a communication control program, and a communication control method for managing connection information for controlling communication between servers.
従来、ネットワークで接続された複数の情報処理装置間でデータ通信を行う情報処理システムが利用されている。この情報処理システムとして、例えば業務アプリケーションプログラムを実行するアプリケーション(AP:Application)サーバと各種データを格納するデータベース(DB:Database)サーバとを接続した業務処理システムがある。 Conventionally, an information processing system for performing data communication between a plurality of information processing apparatuses connected via a network has been used. As this information processing system, for example, there is a business processing system in which an application (AP) server that executes a business application program and a database (DB) server that stores various data are connected.
この業務処理システムでは、APサーバとDBサーバとの間の通信をセッション(Session)と呼ばれる接続情報単位で管理する。例えば、APサーバはDBサーバとの通信を行うためにDBサーバからセッションの払い出しを受ける。APサーバは払い出されたセッションをDBサーバに対応付けて接続情報として管理する。一方、DBサーバも払い出したセッションをAPサーバに対応付けて接続情報として管理する。APサーバは、確立したセッションを介してDBサーバに処理を要求する。DBサーバは、そのセッションを介してAPサーバに応答する。 In this business processing system, communication between the AP server and the DB server is managed in connection information units called sessions. For example, the AP server receives a session from the DB server in order to communicate with the DB server. The AP server manages the paid-out session as connection information in association with the DB server. On the other hand, the DB server also manages the delivered session in association with the AP server as connection information. The AP server requests processing from the DB server via the established session. The DB server responds to the AP server through the session.
しかし、通信を行う都度セッションの確立を行うとすると、高頻度で通信が発生した場合にセッション要求・払い出しが多発する。このため、各サーバで通信が輻輳したり、処理負荷が増大したりする可能性がある。 However, if a session is established every time communication is performed, session requests / payouts frequently occur when communication occurs frequently. For this reason, there is a possibility that communication will be congested in each server or the processing load will increase.
これに対し、例えばAPサーバは、利用すべき複数のセッションをDBサーバとの間で予め合意・確立して保持しておくことが考えられる。この場合、APサーバは割り当てられたセッションを再利用してDBサーバと通信する。このような技術は、セッションプール(Session Pool)と呼ばれる。セッションプールを用いることで、セッション確立を通信発生の都度行う必要がなくなる。そのため、上述のような輻輳等を抑止できる。 On the other hand, for example, the AP server may conceivably hold and establish a plurality of sessions to be used with the DB server in advance. In this case, the AP server communicates with the DB server by reusing the assigned session. Such a technique is called a session pool. By using a session pool, it is not necessary to establish a session each time communication occurs. For this reason, the congestion as described above can be suppressed.
ところで、上述の業務処理システムではセッションを管理する機能の障害によってサーバ間のデータ通信に支障がでる場合がある。業務処理システムでは、その運用にあたり、このような障害への対応を適切に行えることが望ましい。 By the way, in the above-described business processing system, there is a case where data communication between servers may be hindered by a failure of a function for managing a session. In the business processing system, it is desirable that such a failure can be appropriately dealt with in the operation.
そこで、セッションの確立から解放までを単位として、その間の通信情報を適切に取得する方法がある(例えば、特許文献1参照)。また、要求元装置から要求された処理につきセッションを介してデータベースへアクセスできない場合に、要求元装置に効率的にエラーを送信する方法がある(例えば、特許文献2参照)。 Therefore, there is a method of appropriately acquiring communication information between the establishment and release of a session as a unit (see, for example, Patent Document 1). In addition, there is a method for efficiently transmitting an error to a request source apparatus when the database requested by the request source apparatus cannot be accessed via a session (for example, see Patent Document 2).
更に、業務処理システムを負荷分散構成とすることが考えられる。例えば、複数のAPサーバと複数のDBサーバとを設ける。このようにすると、例えばAP層(APサーバの集合)およびDB層(DBサーバの集合)で負荷の均一化を図ることができる。また、例えばAPサーバやDBサーバの何れかでサービスの提供機能に障害が発生したとしても業務処理を継続できる。すなわち、業務処理システム全体の応答性や可用性を向上できる。 Furthermore, it can be considered that the business processing system has a load distribution configuration. For example, a plurality of AP servers and a plurality of DB servers are provided. In this way, for example, the load can be made uniform in the AP layer (a set of AP servers) and the DB layer (a set of DB servers). Further, for example, even if a failure occurs in the service providing function in either the AP server or the DB server, the business process can be continued. That is, the responsiveness and availability of the entire business processing system can be improved.
上述のように業務処理システムを負荷分散構成とすると、障害の発生したサーバは処理の振り分け先から除外される。そして、サービスの提供機能が復旧すると、そのサーバへの処理の振り分けが再開される。 As described above, when the business processing system has a load distribution configuration, a server in which a failure has occurred is excluded from the processing distribution destination. When the service providing function is restored, the distribution of processing to the server is resumed.
しかし、処理の要求元サーバ(例えば、APサーバ)では、復旧したサーバ(例えば、DBサーバ)との間で障害前に確立していたセッションの管理情報が残存する場合がある。一方、復旧したサーバ(例えば、DBサーバ)ではサービス提供機能のメンテナンス(例えば、再起動)が行われることで、障害前に保持されたセッションはクリアされる。 However, in the process request source server (for example, AP server), there may be a case where the management information of the session established before the failure with the recovered server (for example, DB server) remains. On the other hand, the restored server (for example, DB server) performs maintenance (for example, restart) of the service providing function, thereby clearing the session held before the failure.
この場合、要求元サーバでセッションの管理情報が残存しても、復旧したサーバ側には対応するセッションが存在しないことになる。このため、要求元サーバがそのセッションを用いて通信しようとしても、両サーバで管理するセッションの不整合から通信が行えずにエラーになるという問題があった。また、このエラーにより業務処理が遅延する、適正に処理を行えない等の問題が生じていた。 In this case, even if session management information remains in the request source server, there is no corresponding session on the restored server side. For this reason, even if the requesting server tries to communicate using the session, there is a problem that communication cannot be performed and an error occurs due to inconsistency of the sessions managed by both servers. In addition, problems such as delays in business processing and inability to perform proper processing have occurred due to this error.
本発明はこのような点に鑑みてなされたものであり、接続情報の不整合を抑止する情報処理システム、情報処理装置、通信制御プログラムおよび通信制御方法を提供することを目的とする。 The present invention has been made in view of these points, and an object thereof is to provide an information processing system, an information processing apparatus, a communication control program, and a communication control method that suppress inconsistencies in connection information.
本発明では上記課題を解決するために、情報処理システムが提供される。この情報処理システムは、第1の情報処理装置と第2の情報処理装置とを備える。第1の情報処理装置は、第1のサービス提供部、監視部および送信部を備える。第1のサービス提供部は、処理要求に応じた処理を実行する。監視部は、第1のサービス提供部の稼働状況を監視する。送信部は、監視部が第1のサービス提供部の起動完了を検知すると所定の制御情報を送信する。第2の情報処理装置は、第2のサービス提供部、接続情報記憶部および制御部を有する。第2のサービス提供部は、所定のリソースを介して第1のサービス提供部に処理要求を送信する。接続情報記憶部は、リソースを定義した接続情報を記憶する。制御部は、第1の情報処理装置から制御情報を受信すると、受信した制御情報に基づき接続情報記憶部に記憶された接続情報に含まれる前記リソースを無効とする。 In the present invention, an information processing system is provided to solve the above problems. The information processing system includes a first information processing device and a second information processing device. The first information processing apparatus includes a first service providing unit, a monitoring unit, and a transmission unit. The first service providing unit executes processing according to the processing request. The monitoring unit monitors the operating status of the first service providing unit. The transmission unit transmits predetermined control information when the monitoring unit detects completion of activation of the first service providing unit. The second information processing apparatus includes a second service providing unit, a connection information storage unit, and a control unit. The second service providing unit transmits a processing request to the first service providing unit via a predetermined resource. The connection information storage unit stores connection information defining resources. When receiving the control information from the first information processing apparatus, the control unit invalidates the resource included in the connection information stored in the connection information storage unit based on the received control information.
また、上記課題を解決するために情報処理装置が提供される。この情報処理装置は、監視部および送信部を有する。監視部は、第1のサービス提供部の稼働状況を監視する。送信部は、監視部が第1のサービス提供部の起動完了を検知すると、第2のサービス提供部を備える相手装置に、第2のサービス提供部が第1のサービス提供部に処理要求を送信するために用いるリソースを定義した接続情報を記憶する接続情報記憶部に記憶された接続情報に含まれるリソースの無効化を促す制御情報を送信する。 An information processing apparatus is provided to solve the above problems. This information processing apparatus includes a monitoring unit and a transmission unit. The monitoring unit monitors the operating status of the first service providing unit. When the monitoring unit detects the completion of activation of the first service providing unit, the transmitting unit transmits a processing request to the counterpart device including the second service providing unit, and the second service providing unit transmits the processing request to the first service providing unit. Control information that prompts invalidation of the resource included in the connection information stored in the connection information storage unit that stores the connection information that defines the resource to be used is transmitted.
また、上記課題を解決するために情報処理装置が提供される。この情報処理装置は、接続情報記憶部および制御部を有する。接続情報記憶部は、第1のサービス提供部により相手装置が備える第2のサービス提供部に処理要求を送信するために用いられるリソースを定義した接続情報を記憶する。制御部は、第2のサービス提供部の起動完了が相手装置側で検知された際に、相手装置から送信される所定の制御情報を受信すると、受信した制御情報に基づき接続情報記憶部に記憶された接続情報に含まれるリソースを無効とする。 An information processing apparatus is provided to solve the above problems. This information processing apparatus includes a connection information storage unit and a control unit. The connection information storage unit stores connection information defining resources used by the first service providing unit to transmit a processing request to the second service providing unit provided in the counterpart device. When the control unit receives the predetermined control information transmitted from the partner device when the completion of the activation of the second service providing unit is detected on the partner device side, the control unit stores the control information in the connection information storage unit based on the received control information The resources included in the connected information are invalidated.
また、上記課題を解決するために通信制御プログラムが提供される。この通信制御プログラムを実行するコンピュータは、監視手段および送信手段として機能する。監視手段は、第1のサービス提供手段の稼働状況を監視する。送信手段は、監視手段が第1のサービス提供手段の起動完了を検知すると、第2のサービス提供手段を備える情報処理装置に、第2のサービス提供手段が第1のサービス提供手段に処理要求を送信するために用いるリソースを定義した接続情報を記憶する接続情報記憶手段に記憶された接続情報に含まれるリソースの無効化を促す制御情報を送信する。 A communication control program is provided to solve the above problems. A computer that executes the communication control program functions as a monitoring unit and a transmission unit. The monitoring means monitors the operating status of the first service providing means. When the monitoring unit detects the completion of activation of the first service providing unit, the transmission unit sends a processing request to the information processing apparatus including the second service providing unit, and the second service providing unit sends a processing request to the first service providing unit. Control information that prompts invalidation of the resource included in the connection information stored in the connection information storage unit that stores the connection information defining the resource used for transmission is transmitted.
また、上記課題を解決するために通信制御プログラムが提供される。この通信制御プログラムを実行するコンピュータは、接続情報記憶手段および制御手段として機能する。接続情報記憶手段は、第1のサービス提供手段により情報処理装置が備える第2のサービス提供手段に処理要求を送信するために用いられるリソースを定義した接続情報を記憶する。制御手段は、第2のサービス提供手段の起動完了が情報処理装置側で検知された際に、情報処理装置から送信される所定の制御情報を受信すると、受信した制御情報に基づき接続情報記憶手段に記憶された接続情報に含まれるリソースを無効とする。 A communication control program is provided to solve the above problems. The computer that executes this communication control program functions as connection information storage means and control means. The connection information storage means stores connection information defining resources used for transmitting a processing request to the second service providing means provided in the information processing apparatus by the first service providing means. When the control unit receives the predetermined control information transmitted from the information processing device when the completion of the activation of the second service providing unit is detected on the information processing device side, the control unit stores the connection information storage unit based on the received control information. The resource included in the connection information stored in is invalidated.
また、上記課題を解決するために情報処理システムの通信制御方法が提供される。この通信制御方法では、第1の情報処理装置が、処理要求に応じた処理を実行する第1のサービス提供部の稼働情報を監視し、第1のサービス提供部の起動完了を検知すると所定の制御情報を送信する。そして、第2の情報処理装置が、第1の情報処理装置から制御情報を受信すると、第2のサービス提供部が第1のサービス提供部に処理要求を送信するために用いる所定のリソースを定義した接続情報を記憶する接続情報記憶部に記憶された接続情報に含まれるリソースを無効とする。 In addition, a communication control method for an information processing system is provided to solve the above problems. In this communication control method, when the first information processing apparatus monitors the operation information of the first service providing unit that executes the process according to the processing request and detects the completion of the activation of the first service providing unit, Send control information. Then, when the second information processing apparatus receives control information from the first information processing apparatus, the second service providing unit defines a predetermined resource used for transmitting a processing request to the first service providing unit. The resource included in the connection information stored in the connection information storage unit that stores the connection information is invalidated.
上記情報処理システム、情報処理装置、通信制御プログラムおよび通信制御方法によれば、接続情報の不整合を抑止できる。 According to the information processing system, information processing apparatus, communication control program, and communication control method, it is possible to suppress inconsistencies in connection information.
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る情報処理システムを示す図である。この情報処理システムは、情報処理装置1と情報処理装置2とがネットワークを介して接続される。
Hereinafter, the present embodiment will be described in detail with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating an information processing system according to the first embodiment. In this information processing system, the
情報処理装置1は、接続情報記憶部1a、サービス提供部1b、監視部1cおよび送信部1dを有する。
接続情報記憶部1aは、サービス提供部1bがサービス提供部2bとの通信に用いるリソースを定義した接続情報を記憶する。サービス提供部2bは、そのリソースを介してサービス提供部1bに処理要求を送信することができる。接続情報に定義されたリソースとは、例えばセッションである。
The
The connection
通信に用いるリソースは、情報処理装置1と情報処理装置2との間で、予め合意がなされる。例えば、情報処理装置1は、情報処理装置1にアクセスするためのリソースを情報処理装置2に予め割り当てる。情報処理装置1は、割り当てたリソースを接続情報として接続情報記憶部1aに格納して管理する。情報処理装置2では、割り当てられたリソースを接続情報として接続情報記憶部2aに格納して管理する。リソースの割り当ては、例えば情報処理装置1が情報処理装置2から割当要求を受信した際に実行される。
Resources used for communication are agreed in advance between the
サービス提供部1bは、情報処理装置1上で実行されるアプリケーションプログラムである。サービス提供部1bは、接続情報記憶部1aに記憶された接続情報に定義されたリソースを介してサービス提供部2bとデータ通信する。
The
サービス提供部1bは、サービス提供部2bから受信した処理要求に従った処理を実行する。サービス提供部1bは、その実行結果をサービス提供部2bに応答する。サービス提供部1bは、例えばDBアプリケーションのプロセスである。
The
監視部1cは、サービス提供部1bの稼働状況を監視する。監視部1cは、サービス提供部1bの起動完了を検知すると、その旨を送信部1dに通知する。
送信部1dは、監視部1cがサービス提供部1bの起動完了を検知すると、情報処理装置2に、接続情報記憶部2aに記憶された接続情報の無効化を促す制御情報を送信する。
The
When the
情報処理装置2は、接続情報記憶部2a、サービス提供部2bおよび制御部2cを有する。
接続情報記憶部2aは、サービス提供部2bがサービス提供部1bとの通信に用いるリソースを定義した接続情報を記憶する。
The
The connection
サービス提供部2bは、情報処理装置2上で実行されるアプリケーションプログラムである。サービス提供部2bは、接続情報記憶部2aに記憶された接続情報に定義されたリソースを介してサービス提供部1bとデータ通信する。サービス提供部2bは、サービス提供部1bに処理を要求し、サービス提供部1bからその応答を受け付ける。サービス提供部2bは、サービス提供部1bからの応答に基づいて、例えば業務処理を実行する。サービス提供部2bは、業務処理の実行結果に基づいて、例えばサービス提供部1bに処理要求を更に送信する。あるいは、サービス提供部2bは、例えば不図示のクライアント装置に業務処理の実行結果を更に送信する。サービス提供部2bは、例えば業務アプリケーションのプロセスである。
The
制御部2cは、送信部1dが送信した制御情報を受信すると、接続情報記憶部2aに記憶された接続情報を無効にする。
このような情報処理装置1によれば、監視部1cにより、サービス提供部1bの稼働状況が監視される。送信部1dにより、監視部1cがサービス提供部1bの起動完了を検知すると、接続情報記憶部2aに記憶された接続情報の無効化を促す制御情報が情報処理装置2に送信される。
When receiving the control information transmitted by the
According to such an
これにより、サービス提供部1bが起動した際に、接続情報記憶部2aに残存する接続情報(すなわち、接続情報に含まれるリソース)を無効とすることができる。したがって、サービス提供部2bがその接続情報を用いてサービス提供部1bに通信を試みることがなくなる。すなわち、接続情報の不整合を抑止できる。その結果、不整合によるエラーの発生を抑止できる。
Thereby, when the
なお、残存する接続情報を無効とした後に、情報処理装置2は、その接続情報に含まれるリソースを破棄することもできる。破棄するタイミングを、業務アプリケーションの処理の進捗に応じて変更することもできる。例えば、実行中の業務アプリケーションのトランザクションによって無効としたリソースがロックされている場合も考えられる。その場合、例えば該当のトランザクションが完了した後にリソースを破棄することもできる。このようにすると、リソースの破棄を確実に行える。
Note that after invalidating the remaining connection information, the
また、上述の説明ではサービス提供部1bとしてDBアプリケーションのプロセスを例示した。そして、サービス提供部2bとして業務アプリケーションのプロセスを例示した。これに対し、サービス提供部1bを業務アプリケーションのプロセスとし、サービス提供部2bをDBアプリケーションのプロセスとしてもよい。その場合、情報処理装置1は、情報処理装置2からリソースの割り当てを受ける。すなわち、制御部2cは、情報処理装置1でサービス提供部1bが起動すると送信部1dから受信した制御情報に基づいて、情報処理装置2が情報処理装置1に割り当てた接続情報を無効にする。情報処理装置2は、その後、無効とした接続情報に含まれるリソースを解放することができる。これにより、情報処理装置2は利用されなくなったリソースの再利用が可能となる。
In the above description, the DB application process is exemplified as the
以下の実施の形態では、複数のAPサーバと複数のDBサーバとを有するより具体的な情報処理システムを例に採り、詳細に説明する。
[第2の実施の形態]
以下、第2の実施の形態を図面を参照して詳細に説明する。
In the following embodiments, a more specific information processing system having a plurality of AP servers and a plurality of DB servers will be described as an example.
[Second Embodiment]
Hereinafter, a second embodiment will be described in detail with reference to the drawings.
図2は、第2の実施の形態に係る業務処理システムを示す図である。この業務処理システムは、DBクラスタ10,20,30、負荷分散装置40、端末装置61,62,63,・・・およびAPサーバ400,500,600を有する。DBクラスタ10,20,30、端末装置61,62,63,・・・およびAPサーバ400,500,600は、負荷分散装置40およびネットワーク50,60を介して接続される。ネットワーク50,60は、例えばイントラネット、あるいはこの業務処理システムのために設けられたその他の専用通信網である。以下では、ネットワーク50,60がTCP/IP(Transmission Control Protocol / Internet Protocol)により通信するネットワークである場合を例示する。
FIG. 2 is a diagram illustrating a business processing system according to the second embodiment. This business processing system includes
DBクラスタ10,20,30は、DBサーバをクラスタ化してデータアクセスの高信頼化を図るものである。DBクラスタ10は、ストレージ装置11およびDBサーバ100,100aを有する。DBクラスタ20は、ストレージ装置21およびDBサーバ200,200aを有する。DBクラスタ30は、ストレージ装置31およびDBサーバ300,300aを有する。
The
ストレージ装置11は、DBサーバ100,100aの共用ストレージである。ストレージ装置11は、業務処理システムに用いる各種業務データを記憶する。ストレージ装置11は、所定のインタフェース(例えば、ファイバーチャネル)によりDBサーバ100,100aと接続される。
The
DBサーバ100,100aは、ストレージ装置11に記憶された業務データを管理する。DBサーバ100,100aは、二重化によるフォールトトレラント(Fault tolerant)を実現する。具体的には、クラスタリングによる冗長構成となっている。そのため、DBサーバ100,100aはハートビート(Heart Beat)用のネットワークで接続される。例えば、DBサーバ100が現用系、DBサーバ100aが待機系となっている場合、DBサーバ100aはDBサーバ100からハートビートパケットを受信できなくなることで、DBサーバ100のサービスダウンを検知できる。そして、DBサーバ100aはDBサーバ100に代替してDBサービスの提供を開始する。
The
DBクラスタ10には、DBサーバ100,100aを束ねる単一の仮想的なIPアドレス(DB仮想アドレスという)が割り当てられる。DBサーバ100,100aは、個別の実IPアドレスに対応付けてDB仮想アドレスを共有する。DBサーバ100,100aは、DB仮想アドレスに対する外部装置からの処理要求が現用系サーバに到達するよう自サーバにおけるDB仮想アドレスの死活を制御する。すなわち、現用系サーバではDB仮想アドレスがアクティブとなる。待機系サーバではDB仮想アドレスが非アクティブとなる。
A single virtual IP address (referred to as a DB virtual address) that binds the
DBクラスタ20,30についてもDBクラスタ10と同様の構成により実現することができる。
負荷分散装置40は、端末装置61,62,63から受け付けた処理要求をAPサーバ400,500,600に振り分ける。
The
The
負荷分散装置40の負荷分散方法には、例えばラウンドロビン、最小コネクションおよび最小応答時間などがある。ラウンドロビンは、各サーバに順番に処理を割り当てる方法である。最小コネクションは、各サーバのうち、TCPコネクションやUDP(User Datagram Protocol)フローの数が最も少ないサーバに処理を割り当てる方法である。最小応答時間は、各サーバの応答時間を測定し、応答時間が短いサーバに処理を割り当てる方法である。
Examples of the load distribution method of the
負荷分散装置40はAPサーバ400,500,600のIPアドレスを単一の仮想アドレスに対応付けて管理する。端末装置61,62,63,・・・は、負荷分散装置40上の仮想アドレスに処理要求を送信する。すると、負荷分散装置40は、APサーバ400,500,600の何れかに処理を振り分ける。なお、負荷分散装置40は、APサーバ400,500,600の死活監視により利用不可と判断したサーバを処理の振り分け先から除外する。
The
端末装置61,62,63,・・・は、業務処理システムを利用するユーザが扱うコンピュータである。端末装置61,62,63,・・・は、業務処理システムに対する業務処理要求の入力が行えるようGUI(Graphical User Interface)をユーザに提供する。ユーザは、GUIに従って端末装置61,62,63,・・・に対する操作入力を行うことで業務処理システムに所望の処理を実行させることができる。
The
APサーバ400,500,600は、端末装置61,62,63,・・・から受け付けた業務処理要求に対して、業務処理を実行する。APサーバ400,500,600は、端末装置61,62,63,・・・に対して、ユーザ用のGUIを生成するための情報を送信するWebサーバとしても機能する。
The
また、APサーバ400,500,600は業務処理の必要に応じて、DBクラスタ10,20,30の何れかに処理要求を送信する。具体的には、APサーバ400,500,600は、ラウンドロビンによりDBクラスタ10,20,30に処理要求を順に振り分ける。なお、APサーバ400,500,600は、DBクラスタ10,20,30が現在運用中であるか否かを管理する。APサーバ400,500,600は、運用中でないDBクラスタを処理要求の送信先から除外する。
Further, the
図3は、第2の実施の形態のDBサーバのハードウェア構成を示す図である。DBサーバ100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、ディスクアレイインタフェース104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
FIG. 3 is a diagram illustrating a hardware configuration of the DB server according to the second embodiment. The
CPU101は、DBサーバ100全体を制御する。
ROM102は、DBサーバ100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
The
The
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションソフトウェア(以下、アプリケーションという)のプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
The
ディスクアレイインタフェース104は、ストレージ装置11と接続される。ディスクアレイインタフェース104は、ストレージ装置11に内蔵されたRAID(Redundant Arrays of Independent Disks)コントローラと通信し、ストレージ装置11に対するデータの入出力を行う。ストレージ装置11内のRAIDコントローラは、例えばRAID0〜6の何れかの機能を有し、複数のHDD(Hard Disk Drive)をまとめて冗長化された記憶装置として管理する。ストレージ装置11は、APサーバ400,500,600が扱うデータを記憶する。
The
また、ストレージ装置11は、OSのプログラム、アプリケーションのプログラム及びデータを記憶する。OSのプログラム、アプリケーションのプログラム及びデータは、例えばストレージ装置11とは別個に設けられた他の記憶装置に格納されてもよい。
The
なお、ストレージ装置11はHDDに代えて(または、HDDと併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
グラフィック処理装置105は、モニタ12と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ12の画面に表示させる。
The
The
入力インタフェース106は、キーボード13とマウス14と接続される。入力インタフェース106は、キーボード13やマウス14から送られてくる信号をCPU101に送信する。
The
記録媒体読取装置107は、記録媒体15に記憶されたデータを読み取る読取装置である。例えば、DBサーバ100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体15に記録して配布することができる。また、ネットワーク50に接続されたプログラム配信サーバ装置(図示せず)に記録媒体15からそのプログラムを格納してもよい。この場合、DBサーバ100は、ネットワーク50を介してプログラム配信サーバ装置からプログラムをダウンロードすることができる。
The recording
記録媒体15としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。 As the recording medium 15, for example, a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory can be used. Magnetic recording devices include HDDs, flexible disks (FD), magnetic tapes, and the like. Optical disks include CD (Compact Disc), CD-R (Recordable) / RW (ReWritable), DVD (Digital Versatile Disc), DVD-R / RW / RAM, and the like. Magneto-optical recording media include MO (Magneto-Optical disk). Semiconductor memory includes flash memory such as USB (Universal Serial Bus) memory.
通信インタフェース108は、ネットワーク50と接続される。通信インタフェース108は、ネットワーク50を介して他の情報処理装置とデータ通信する。
なお、DBサーバ100a,200,200a,300,300a、APサーバ400,500,600および端末装置61,62,63,・・・もDBサーバ100と同様のハードウェア構成により実現できる。ただし、APサーバ400,500,600および端末装置61,62,63,・・・は、ストレージ装置11やディスクアレイインタフェース104に代えてHDDやSSD等の記憶装置を内蔵することができる。
The
The
図4は、第2の実施の形態のDBサーバの機能構成を示す図である。DBサーバ100は、版数記憶部110、DB処理部120、クラスタ制御部130、サービス監視部140、版数送信部150およびAP通信部160を有する。これらの機能は、CPU101が所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアを用いて実現してもよい。
FIG. 4 is a diagram illustrating a functional configuration of the DB server according to the second embodiment. The
版数記憶部110は、DBクラスタ10の版数(以下、クラスタ版数という)を記憶する。クラスタ版数の詳細は後述する。
DB処理部120は、DBに対する処理要求を実行する。例えば、DB処理部120は、ストレージ装置11に記憶されたデータの読み出しや更新を行う。DB処理部120は、処理要求に対する応答をAP通信部160に出力する。
The version
The
クラスタ制御部130は、DB処理部120が稼働状態である間、DBサーバ100aにハートビートパケットを送信する。これにより、クラスタ制御部130は自サーバが現用系として動作していることをDBサーバ100aに通知する。また、クラスタ制御部130は、版数記憶部110、DB処理部120、サービス監視部140、版数送信部150およびAP通信部160の各機能の起動・停止を制御する。すなわち、クラスタ制御部130は、DBサーバ100aが待機系として動作する場合、自サーバを現用系として動作させるためにこれらの各機能を起動させる。
The
サービス監視部140は、DB処理部120の起動・停止を監視する。サービス監視部140は、DB処理部120が起動または停止した場合に、版数記憶部110に記憶されたクラスタ版数を更新する。
The
版数送信部150は、サービス監視部140により版数記憶部110に記憶されたクラスタ版数が更新されると、そのクラスタ版数をAPサーバ400,500,600に送信する。
When the cluster version number stored in the version
AP通信部160は、APサーバ400,500,600と通信する。AP通信部160は、APサーバ400,500,600から処理要求を受信し、DB処理部120に出力する。また、AP通信部160は、DB処理部120から取得した応答を処理要求の送信元であるAPサーバ400,500,600に送信する。
The
DBサーバ100aは、版数記憶部110a、DB処理部120a、クラスタ制御部130a、サービス監視部140a、版数送信部150aおよびAP通信部160aを有する。これらの機能は、DBサーバ100aが備えるCPUが所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアを用いて実現してもよい。
The
ここで、版数記憶部110aは版数記憶部110に対応する。DB処理部120aはDB処理部120に対応する。クラスタ制御部130aはクラスタ制御部130に対応する。サービス監視部140aはサービス監視部140に対応する。版数送信部150aは版数送信部150に対応する。AP通信部160aはAP通信部160に対応する。
Here, the version
版数記憶部110a、DB処理部120a、サービス監視部140a、版数送信部150aおよびAP通信部160aの各機能の起動・停止はクラスタ制御部130aによって制御される。
Activation / deactivation of each function of the version
なお、クラスタ制御部130aは、DBサーバ100が現用系として動作している場合には、これらの機能の停止状態を維持する。一方、DBサーバ100が利用不可となった場合には、自サーバを現用系として動作させるためにこれらの各機能を起動させる。
Note that the
すなわち、DBサーバ100aの各機能は、DBサーバ100の各機能の代替を可能とするための冗長機能である。
また、DBクラスタ20,30についてもDBクラスタ10と同様の機能構成により実現できる。
That is, each function of the
The
図5は、第2の実施の形態のAPサーバの機能構成を示す図である。APサーバ400は、セッション情報記憶部410、AP処理部420、クライアント通信部430、セッション制御部440、版数受信部450およびDB通信部460を有する。これらの機能は、APサーバ400が備えるCPUが所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアを用いて実現してもよい。
FIG. 5 is a diagram illustrating a functional configuration of the AP server according to the second embodiment. The
セッション情報記憶部410は、DBクラスタ10,20,30のクラスタ版数を記憶する。また、セッション情報記憶部410は、DBクラスタ10,20,30から割り当てられたセッションを定義したセッション情報を記憶する。
The session
AP処理部420は、端末装置61,62,63,・・・から取得した業務処理要求を実行する。AP処理部420は、業務処理の内容に応じて、DBクラスタ10,20,30に対する処理要求(例えば、SQLで記述されたクエリ)を生成する。AP処理部420は、生成した処理要求をDB通信部460に出力する。
The
また、AP処理部420は、DB通信部460から処理要求に対するDBクラスタ10,20,30からの応答を受け付ける。AP処理部420は、その応答に基づいて、処理要求を再生成してDB通信部460に出力する。あるいは、AP処理部420は端末装置61,62,63,・・・からの業務処理要求に対する処理を完了すると、業務応答を生成してクライアント通信部430に出力する。
In addition, the
クライアント通信部430は、端末装置61,62,63,・・・と通信する。クライアント通信部430は、端末装置61,62,63,・・・から受信した業務処理要求をAP処理部420に出力する。また、クライアント通信部430は、AP処理部420から取得した業務応答を端末装置61,62,63,・・・に送信する。
The
セッション制御部440は、セッション情報記憶部410に記憶されたDBクラスタ10,20,30のクラスタ版数およびセッション情報を管理する。セッション制御部440は、予めDBクラスタ10,20,30との間でデータ通信に利用するセッションの割り当てを受け、割り当てられたセッションをセッション情報としてセッション情報記憶部410に格納する。
The
セッション制御部440は、DBクラスタ10,20,30のクラスタ版数に基づいて、セッションの無効化を制御する。セッション制御部440は、セッション情報記憶部410に記憶されたセッション情報を参照して、処理要求を送信すべきDBクラスタとそのDBクラスタとの通信に利用可能なセッションとをDB通信部460に出力する。
The
版数受信部450は、DBクラスタ10,20,30から各クラスタのクラスタ版数を受信する。版数受信部450は、受信したクラスタ版数をセッション制御部440に出力する。
The version
DB通信部460は、セッション制御部440により指定されたDBクラスタに対し、指定されたセッションを用いてDBクラスタ10,20,30と通信する。DB通信部460は、AP処理部420から処理要求を取得すると、取得した処理要求をDBクラスタ10,20,30に送信する。DB通信部460は、DBクラスタ10,20,30から応答を受け付けると、AP処理部420に出力する。
The
なお、APサーバ500,600に関してもAPサーバ400と同様の機能構成により実現できる。
図6は、DBサーバが有するクラスタ版数テーブルのデータ構造例を示す図である。クラスタ版数テーブル111は、サービス監視部140により更新され、版数記憶部110に格納される。クラスタ版数テーブル111には、DBクラスタ10のクラスタ版数が設定される。
The
FIG. 6 is a diagram illustrating an example of the data structure of the cluster version number table included in the DB server. The cluster version number table 111 is updated by the
クラスタ版数テーブル111には、例えば“1257051200”という情報が設定される。これは、1970年1月1日0時0分0秒からの秒数である。サービス監視部140はクラスタ版数テーブル111を更新する際に、例えばOSからこのような時間情報をクラスタ版数として取得できる。
For example, information “1257051200” is set in the cluster version number table 111. This is the number of seconds since midnight, January 1, 1970. When updating the cluster version number table 111, the
なお、クラスタ版数はDBサービス起動中から起動直後の時点では所定の初期値(例えば“−1”)が設定されるものとする。そして、起動完了後の所定のタイミングで、サービス監視部140により、現在の時間情報がクラスタ版数として設定される。
The cluster version number is set to a predetermined initial value (for example, “−1”) at the time immediately after starting the DB service. Then, at a predetermined timing after completion of activation, the
図7は、APサーバが有する版数管理テーブルのデータ構造例を示す図である。版数管理テーブル411は、セッション制御部440により更新され、セッション情報記憶部410に格納される。版数管理テーブル411には、クラスタ名を示す項目、クラスタ版数を示す項目および運用状態を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのDBクラスタに関する情報を示す。
FIG. 7 is a diagram illustrating a data structure example of the version number management table of the AP server. The version number management table 411 is updated by the
クラスタ名を示す項目には、クラスタ名を示す情報が設定される。クラスタ版数を示す項目には、クラスタ版数を示す情報が設定される。運用状態を示す項目には、運用中であるか否かを示す情報が設定される。 In the item indicating the cluster name, information indicating the cluster name is set. In the item indicating the cluster version number, information indicating the cluster version number is set. In the item indicating the operation state, information indicating whether the operation is in progress is set.
版数管理テーブル411には、例えばクラスタ名が“DB0001”、クラスタ版数が“1257043210”、運用状態が“運用中”という情報が設定される。これは、クラスタ名“DB0001”で示されるDBクラスタ10のクラスタ版数が“1257043210”であることを示している。また、DBクラスタ10は現在“運用中”であるため、処理要求の送信対象とすることができる旨を示している。
In the version number management table 411, for example, information that the cluster name is “DB0001”, the cluster version number is “1257043210”, and the operation state is “in operation” is set. This indicates that the cluster version number of the
ここで、以下ではDBクラスタ20のクラスタ名を“DB0002”、DBクラスタ30のクラスタ名を“DB0003”とする。
図8は、APサーバが有するセッション管理テーブルのデータ構造例を示す図である。セッション管理テーブル412,413,414は、セッション制御部440により更新され、セッション情報記憶部410に格納される。セッション管理テーブル412はDBクラスタ10に対応する。セッション管理テーブル413はDBクラスタ20に対応する。セッション管理テーブル414はDBクラスタ30に対応する。以下では、セッション管理テーブル412に関してのみ説明するが、セッション管理テーブル413,414に関しても同様の構成である。
Hereinafter, the cluster name of the
FIG. 8 is a diagram illustrating a data structure example of a session management table included in the AP server. The session management tables 412, 413, and 414 are updated by the
セッション管理テーブル412には、エントリIDを示す項目、要求元識別情報を示す項目、セッション取得時版数を示す項目、セッション番号を示す項目及び無効フラグを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのセッションに関する情報を示す。 The session management table 412 includes an item indicating an entry ID, an item indicating request source identification information, an item indicating a version number at the time of session acquisition, an item indicating a session number, and an item indicating an invalid flag. Information arranged in the horizontal direction of each item is associated with each other to indicate information related to one session.
エントリIDを示す項目には、セッション管理テーブル412に含まれる1レコードを識別するためのエントリIDが設定される。要求元識別情報を示す項目には、業務処理要求の送信元である端末装置の識別情報が設定される。セッション取得時版数を示す項目には、該当のレコードに対応するセッションが確立された際のクラスタ版数が設定される。セッション番号を示す項目には、DBクラスタ10から割り当てられたセッションを識別するためのセッション番号が設定される。無効フラグを示す項目には、該当のセッションが無効であるか否かを示す情報が設定される。
In the item indicating the entry ID, an entry ID for identifying one record included in the session management table 412 is set. In the item indicating the request source identification information, the identification information of the terminal device that is the transmission source of the business process request is set. In the item indicating the version number at the time of session acquisition, the cluster version number when the session corresponding to the corresponding record is established is set. In the item indicating the session number, a session number for identifying a session allocated from the
セッション管理テーブル412には、例えばエントリIDが“1”、要求元識別情報が“CL0005”、セッション取得時版数が“1257045340”、セッション番号が“4”、無効フラグが“−”(設定なし)という情報が設定される。これは、“CL0005”で識別される端末装置から受け付けた業務処理要求につき、DBクラスタ10上のセッション番号“4”で識別されるセッションを利用してDBクラスタ10と通信していることを示している。また、このセッションを取得した際のDBクラスタ10のクラスタ版数が“1257045340”であることを示している。また、無効フラグが“−”であり、そのセッションは有効であることを示している。
In the session management table 412, for example, the entry ID is “1”, the requester identification information is “CL0005”, the session acquisition version number is “12570445340”, the session number is “4”, and the invalid flag is “−” (no setting) ) Is set. This indicates that the business process request received from the terminal device identified by “CL0005” is communicating with the
また、セッション管理テーブル412には、例えばエントリIDが“11”、要求元情報が“CL0003”、セッション取得時版数が“1257038229”、セッション番号が“11”、無効フラグが“無効”という情報が設定される。ここで、当レコードには無効フラグに“無効”が設定されている。これは、当レコードに対応するセッションが利用不可であることを示している。すなわち、DBクラスタ10には、APサーバ400と通信するためのセッションとして、セッション番号“11”のセッションが既に存在していないことを示す。
In the session management table 412, for example, information indicating that the entry ID is “11”, the request source information is “CL0003”, the session acquisition version number is “1257038229”, the session number is “11”, and the invalid flag is “invalid”. Is set. Here, the invalid flag is set to “invalid” in this record. This indicates that the session corresponding to this record cannot be used. That is, the
ここで、セッション管理テーブル412にはDBクラスタ10がAPサーバ400に対してプール可能なセッション数の上限(例えば、50)が予め設定される。以下では、この上限値をプール上限値という。セッション制御部440は、所定のタイミングでDBクラスタ10から払い出されたセッション数のプール上限値の超過の有無を監視する。そして、超過している場合にプールされたセッションの整理(例えば、不要なセッションの破棄要求をDBクラスタ10に送信する)を行う。このようにすると、DBクラスタ10がAPサーバ400に対して払い出すセッション数が他のAPサーバに比べて過大となることを防止できる。
Here, an upper limit (for example, 50) of the number of sessions that the
次に、以上のような構成を備える業務処理システムの処理手順を説明する。ここで、以下ではDBクラスタ10およびAPサーバ400に注目して処理手順を説明する。ただし、DBクラスタ10とAPサーバ500,600との間の処理も同様である。また、DBクラスタ20,30とAPサーバ400,500,600との間の処理も同様である。
Next, a processing procedure of a business processing system having the above configuration will be described. Here, the processing procedure will be described below focusing on the
図9は、第2の実施の形態のDBサーバ切替処理を示すシーケンス図である。以下、図9に示す処理をステップ番号に沿って説明する。なお、ステップS1の直前では、DBクラスタ10において、DBサーバ100が現用系、DBサーバ100aが待機系であるものとする。
FIG. 9 is a sequence diagram illustrating DB server switching processing according to the second embodiment. In the following, the process illustrated in FIG. 9 will be described in order of step number. Note that immediately before step S1, in the
[ステップS1]DBサーバ100は、DBサービス(DB処理部120)の停止指示を受け付ける。この停止指示を受け付ける場合としては、例えばシステム管理者がメンテナンスのためにサービス停止を指示する操作入力をDBサーバ100に対して行った場合等が考えられる。
[Step S1] The
[ステップS2]DBサーバ100は、DB処理部120の停止を開始する。
[ステップS3]DBサーバ100は、DB処理部120の停止が開始されると、版数記憶部110に記憶されたクラスタ版数を更新する。DBサーバ100は、更新したクラスタ版数およびクラスタ停止開始通知をAPサーバ400,500,600に送信する。
[Step S2] The
[Step S3] When the
[ステップS4]APサーバ400は、DBサーバ100からクラスタ版数およびクラスタ停止開始通知を受信する。APサーバ400は、受信したクラスタ版数に基づいて、APサーバ400がDBクラスタ10から割り当てられていたセッションの無効化処理を実行する。
[Step S4] The
[ステップS5]APサーバ400は、クラスタ停止開始通知を受信したことにより、セッション情報記憶部410に記憶された版数管理テーブル411のうち、DBクラスタ10(クラスタ名“DB0001”)の運用状態を“非運用中”に設定する。
[Step S5] Upon receiving the cluster stop start notification, the
[ステップS6]DBサーバ100は、DB処理部120の停止が完了する。
[ステップS7]DBサーバ100aは、DBサーバ100からハートビートパケットを受信しなくなったことを検知する。すると、DBサーバ100aは、DBサービス(DB処理部120a)の起動を開始する。
[Step S6] The
[Step S7] The
[ステップS8]DBサーバ100aは、DB処理部120aの起動を完了する。
[ステップS9]DBサーバ100aは、DB処理部120aの起動が完了すると、版数記憶部110aに記憶されたクラスタ版数を更新する。DBサーバ100aは、更新したクラスタ版数およびクラスタ起動完了通知をAPサーバ400,500,600に送信する。
[Step S8] The
[Step S9] The
[ステップS10]APサーバ400は、DBサーバ100aからクラスタ版数を受信する。APサーバ400は、受信したクラスタ版数に基づいて、APサーバ400がDBクラスタ10から割り当てられていたセッションの無効化処理を実行する。
[Step S10] The
[ステップS11]APサーバ400は、クラスタ起動完了通知を受信したことにより、セッション情報記憶部410に記憶された版数管理テーブル411のうち、DBクラスタ10(クラスタ名“DB0001”)の運用状態を“運用中”に設定する。
[Step S11] Upon receiving the cluster activation completion notification, the
このようにして、DBサーバ100はDB処理部120停止時にクラスタ版数をAPサーバ400に送信する。また、DBサーバ100aはDB処理部120a開始時にクラスタ版数をAPサーバ400に送信する。
In this way, the
APサーバ400は、DBクラスタ10(すなわち、DBサーバ100,100aの何れか)からクラスタ版数を受信すると、自装置で管理するDBクラスタ10のクラスタ版数とを比較し、比較結果に応じてDBクラスタ10との間で確立済みのセッションを無効とする。
When the
次に、図9のステップS3に示したDBクラスタ10のDBサービス停止時版数通知処理を詳細に説明する。
図10は、第2の実施の形態のDBサービス停止時版数通知処理を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
Next, the DB service stop version number notification process of the
FIG. 10 is a flowchart illustrating DB service stop version number notification processing according to the second embodiment. In the following, the process illustrated in FIG. 10 will be described in order of step number.
[ステップS21]クラスタ制御部130は、DB処理部120の停止処理を開始させる。サービス監視部140は、DB処理部120の停止開始を検知する。
[ステップS22]サービス監視部140は、OSから現在のタイムスタンプをクラスタ版数として取得する。
[Step S <b> 21] The
[Step S22] The
[ステップS23]サービス監視部140は、版数記憶部110に記憶されたクラスタ版数テーブル111のクラスタ版数を、新たに取得したクラスタ版数に更新する。
[ステップS24]版数送信部150は、クラスタ版数テーブル111を参照してクラスタ版数を取得し、APサーバ400,500,600に送信する。また、版数送信部150は、クラスタ版数と共に、DBクラスタ10のクラスタ停止開始通知をAPサーバ400,500,600に送信する。
[Step S23] The
[Step S24] The version
このようにして、DBサーバ100は、DB処理部120を停止する際にクラスタ版数を更新する。そして、DBサーバ100は、更新後のクラスタ版数をAPサーバ400,500,600に送信する。
In this way, the
次に、図9のステップS9に示したDBクラスタ10のDBサービス起動時版数通知処理を詳細に説明する。
図11は、第2の実施の形態のDBサービス起動時版数通知処理を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
Next, the DB service startup version number notification process of the
FIG. 11 is a flowchart illustrating DB service activation version number notification processing according to the second embodiment. In the following, the process illustrated in FIG. 11 will be described in order of step number.
[ステップS31]サービス監視部140aは、DB処理部120aの起動完了を検知する。
[ステップS32]サービス監視部140aは、OSから現在のタイムスタンプをクラスタ版数として取得する。
[Step S31] The
[Step S32] The
[ステップS33]サービス監視部140aは、版数記憶部110aに記憶されたクラスタ版数テーブルのクラスタ版数を、新たに取得したクラスタ版数に更新する。
[ステップS34]版数送信部150aは、版数記憶部110aに記憶されたクラスタ版数テーブルを参照してクラスタ版数を取得し、APサーバ400,500,600に送信する。また、版数送信部150aは、クラスタ版数と共に、DBクラスタ10のクラスタ起動完了通知をAPサーバ400,500,600に送信する。
[Step S33] The
[Step S34] The version
このようにして、DBサーバ100aは、DBサービスを開始する際にクラスタ版数を更新する。そして、DBサーバ100aは、更新後のクラスタ版数をAPサーバ400,500,600に送信する。
In this way, the
次に、図9のステップS4,10に示したAPサーバ400のセッション無効化処理を詳細に説明する。
図12は、第2の実施の形態のセッション無効化処理を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
Next, the session invalidation process of the
FIG. 12 is a flowchart illustrating session invalidation processing according to the second embodiment. In the following, the process illustrated in FIG. 12 will be described in order of step number.
[ステップS41]版数受信部450は、DBクラスタ10からクラスタ版数を受信する。版数受信部450は、受信したクラスタ版数をセッション制御部440に出力する。
[ステップS42]セッション制御部440は、セッション情報記憶部410に記憶されたセッション管理テーブル412を参照して、DBクラスタ10に対応するセッションを定義したレコードを取得する。
[Step S41] The version
[Step S42] The
[ステップS43]セッション制御部440は、取得したレコードのうち、ステップS41で受信したクラスタ版数とセッション取得時版数とが異なるレコードが存在するか否かを判定する。存在する場合、処理をステップS44に進める。存在しない場合、処理をステップS45に進める。
[Step S43] The
[ステップS44]セッション制御部440は、セッション取得時版数が新たに受信したクラスタ版数と異なるレコードの無効フラグに“無効”を設定する。
[ステップS45]セッション制御部440は、セッション情報記憶部410に記憶された版数管理テーブル411のDBクラスタ10のクラスタ版数として、ステップS41で受信したクラスタ版数を設定する。
[Step S44] The
[Step S45] The
このようにして、セッション制御部440は、DBクラスタ10から受信したクラスタ版数とセッション取得時版数とが異なる場合、該当のセッションを無効とする。
次に、業務処理システムで実行される業務処理の手順を説明する。
In this way, the
Next, a procedure for business processing executed in the business processing system will be described.
図13は、第2の実施の形態の業務処理を示すシーケンス図である。以下、図13に示す処理をステップ番号に沿って説明する。なお、ステップS51の直前では、DBクラスタ10において、DBサーバ100が現用系、DBサーバ100aが待機系であるものとする。
FIG. 13 is a sequence diagram illustrating business processing according to the second embodiment. In the following, the process illustrated in FIG. 13 will be described in order of step number. It is assumed that immediately before step S51, in the
[ステップS51]APサーバ400は、端末装置61から業務処理要求(以下、APリクエストという)を受信する。
[ステップS52]APサーバ400は、取得したAPリクエストに応じた業務処理を実行する。APサーバ400は、業務処理に応じてDBクラスタに依頼すべき処理が発生した場合、処理要求(以下、DBリクエストという)を生成する。APサーバ400は、生成したDBリクエストを送信すべきDBクラスタを選択する。例えば、APサーバ400はラウンドロビンによって、DBリクエストを送信すべきDBクラスタを順番に選択する。ここでは、APサーバ400はDBクラスタ10を選択するものとする。そして、DBクラスタ10にDBリクエストを送信する。
[Step S51] The
[Step S52] The
[ステップS53]DBサーバ100は、APサーバ400からDBリクエストを受信する。DBサーバ100は、受信したDBリクエストに基づいてDB処理を実行する。DBサーバ100は、DB処理の結果に基づいてDBレスポンスを生成し、クラスタ版数と共にAPサーバ400に送信する。ここで、DBサーバ100はAPサーバ400の指定したセッションが無効である場合、DBレスポンスとしてセッション無効通知をクラスタ版数と共に応答する。
[Step S53] The
[ステップS54]APサーバ400は、DBレスポンスを受信する。APサーバ400は、DBレスポンスが正常応答であるか否かを判定する。正常応答でない場合、処理をステップS55に進める。正常応答である場合、処理をステップS56に進める。
[Step S54] The
[ステップS55]APサーバ400は、セッション無効化処理を実行する。セッション無効化処理は、図12で説明した処理と同様である。そして、処理をステップS52に進める。
[Step S55] The
[ステップS56]APサーバ400は、DBレスポンス受信処理を実行する。
[ステップS57]APサーバ400は、必要に応じて、DBレスポンスに応じた業務処理を更に実行し、端末装置61に対するAPレスポンスを生成する。そして、APサーバ400は生成したAPレスポンスを端末装置61に送信する。
[Step S56] The
[Step S57] The
[ステップS58]APサーバ400は、端末装置61との一連の通信が完了したことを検知する。
[ステップS59]APサーバ400は、端末装置61から要求された業務処理を実行するために管理していた(APサーバ400とDBクラスタ10との間の)セッションを整理するための処理を実行する。
[Step S58] The
[Step S59] The
このようにして、APサーバ400とDBクラスタ10との間で業務処理に伴う通信が行われる。
次に、図13のステップS52に示したAPサーバ400のDBリクエスト送信処理を説明する。
In this way, communication associated with the business process is performed between the
Next, the DB request transmission process of the
図14は、第2の実施の形態のDBリクエスト送信処理を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS61]AP処理部420は、APリクエストに応じた業務処理の実行に伴って、DBクラスタに依頼すべき処理内容を記述したDBリクエストを生成する。AP処理部420は、生成したDBリクエストをDB通信部460に出力する。
FIG. 14 is a flowchart illustrating DB request transmission processing according to the second embodiment. In the following, the process illustrated in FIG. 14 will be described in order of step number.
[Step S61] The
[ステップS62]セッション制御部440は、セッション情報記憶部410に記憶されたセッション管理テーブル412を参照する。
[ステップS63]セッション制御部440は、運用状態が“運用中”のDBクラスタが存在するか否かを判定する。“運用中”のDBクラスタが存在する場合、処理をステップS64に進める。“運用中”のDBクラスタが存在しない場合、処理を完了させる。なお、“運用中”のDBクラスタが存在しない場合、その後、AP処理部420は、クライアント通信部430を介して端末装置61にエラーを応答し、業務処理を完了させる。
[Step S62] The
[Step S63] The
[ステップS64]セッション制御部440は、“運用中”のDBクラスタを選択する。セッション制御部440は、版数管理テーブル411に設定された“運用中”のDBクラスタをラウンドロビンによって選択する。例えば、前回の当ステップにおけるクラスタ選択処理においてDBクラスタ30(クラスタ名“DB0003”)を選択している場合、今回はDBクラスタ10(クラスタ名“DB0001”)を選択する。また、例えば、前回DBクラスタ10を選択している場合、今回はDBクラスタ20(クラスタ名“DB0002”)を選択する。
[Step S64] The
[ステップS65]セッション制御部440は、選択したDBクラスタにつきセッション割当処理を実行する。すなわち、DB通信部460が該当のDBクラスタにDBリクエストを送信するためのセッションを割り当てる。このとき、例えば該当のDBクラスタから予め取得したセッションに空きがなければ、該当のDBクラスタにセッションの開設を要求する。そして、DBクラスタから新規セッションの払い出しを受けられれば、そのセッションをDBリクエスト送信に割り当てることができる。また、セッションの払い出しを受けられなければ、セッションを割り当てることはできない。
[Step S65] The
[ステップS66]セッション制御部440は、DBリクエストを送信するためのセッションを割り当てることができたか否かを判定する。割り当てることができた場合、処理をステップS67に進める。割り当てることができなかった場合、処理をステップS63に進める。
[Step S66] The
[ステップS67]DB通信部460は、セッション制御部440により割り当てられたセッション番号(指定セッションの番号)をDBリクエストに含める。そして、DB通信部460はセッション制御部440が選択したDBクラスタに対し、DBリクエストを送信する。
[Step S67] The
このようにして、APサーバ400はDBリクエストを送信する際に、送信すべきDBクラスタを選択し、そのDBクラスタとの通信に用いるセッションを割り当てる。
次に、図14のステップS65に示したAPサーバ400のセッション割当処理を詳細に説明する。
In this way, when transmitting a DB request, the
Next, the session allocation process of the
図15は、第2の実施の形態のセッション割当処理を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。なお、図14のステップS64でDBクラスタ10が選択されているものとする。
FIG. 15 is a flowchart illustrating session allocation processing according to the second embodiment. In the following, the process illustrated in FIG. 15 will be described in order of step number. Note that the
[ステップS71]セッション制御部440は、セッション情報記憶部410に記憶されたセッション管理テーブル412を参照する。
[ステップS72]セッション制御部440は、セッション管理テーブル412にエントリされたセッションのうち、何れの端末装置にも割り当てられていない未割当セッションが存在するか否かを判定する。未割当セッションが存在する場合、処理をステップS73に進める。未割当セッションが存在しない場合、処理をステップS76に進める。
[Step S71] The
[Step S <b> 72] The
[ステップS73]セッション制御部440は、未割当セッションのうち、有効である(すなわち、無効でない)ものが存在するか否かを判定する。存在する場合、処理をステップS78に進める。存在しない場合、処理をステップS74に進める。
[Step S73] The
[ステップS74]セッション制御部440は、DBクラスタ10に対してセッション管理テーブル412に設定された無効なセッションの破棄を指示する無効セッション破棄要求を生成し、DB通信部460に出力する。DB通信部460は、無効セッション破棄要求をDBクラスタ10に送信する。
[Step S <b> 74] The
[ステップS75]DB通信部460は、DBクラスタ10からステップS74で指示したセッションを破棄した旨を示す無効セッション破棄応答を受信する。DB通信部460は、破棄応答をセッション制御部440に出力する。
[Step S75] The
[ステップS76]セッション制御部440は、新たなセッションの開設をDBクラスタ10に要求するためのセッション開設要求を生成し、DB通信部460に出力する。DB通信部460は、生成したセッション開設要求をDBクラスタ10に送信する。
[Step S76] The
[ステップS77]DB通信部460は、DBクラスタ10から新たに割り当てられたセッションを示す新規セッション情報とDBクラスタ10のクラスタ版数とを受信する。DB通信部460は、受信した新規セッション情報とクラスタ版数とをセッション制御部440に出力する。セッション制御部440は、セッション管理テーブル412に新規セッション情報(例えば、セッション番号)を設定する。また、セッション制御部440は、新規セッションと共に受信したクラスタ版数を新規セッションに対応するセッション取得時版数として設定する。セッション管理テーブル412に設定された新規セッションは未割当セッションとなる。また、新規セッションは有効なセッションとなる。
[Step S77] The
[ステップS78]セッション制御部440は、セッション管理テーブル412を参照して、DBリクエストの生成元となったAPリクエストの送信元端末装置の識別情報(要求元識別情報)を有効かつ未割当のセッションに設定する。このとき、例えばセッション管理テーブル412に含まれる有効かつ未割当のセッションのうち、エントリIDが最も小さいものを優先して選択し、要求元識別情報の設定を行う。これにより、当DBリクエストにつきセッションが割り当てられたことになる。
[Step S78] The
このように、APサーバ400は有効な未割当セッションが存在すれば、そのセッションを新たな業務処理用のデータ通信に割り当てる。
また、APサーバ400は無効な未割当セッションが存在すれば、そのセッションの破棄をDBクラスタ10に指示した後、DBクラスタ10に新規セッションの払い出しを要求する。そして、APサーバ400はDBクラスタ10から新たに取得したセッションを新たな業務処理用のデータ通信に割り当てる。
As described above, if there is a valid unallocated session, the
If there is an invalid unallocated session, the
また、APサーバ400は未割当セッションが存在しない場合、DBクラスタ10に新規セッションの払い出しを要求する。そして、APサーバ400はDBクラスタ10から新たに取得したセッションを新たな業務処理用のデータ通信に割り当てる。
If there is no unallocated session, the
なお、APサーバ400は要求元識別情報で指定される端末装置から受け付ける一連の処理に対して今回割り当てたセッションを継続して用いる。
更に、ステップS77において、DBクラスタ10から新規セッション情報を取得できない場合も考えられる。その要因として、例えばDBクラスタ10上でのメモリ等の資源不足でセッションの払い出しが行えない、通信経路で障害が発生した等が考えられる。この場合、セッション制御部440は、DBリクエストを送信するためのセッションの割り当てを行わずにセッション割当処理を完了する。そして、図14のステップS63〜66の処理により、他のDBクラスタに処理の割り当てを再度試みる。
The
Further, it may be considered that new session information cannot be acquired from the
次に、図13のステップS53に示したDBサーバ100のDBレスポンス送信処理を詳細に説明する。
図16は、第2の実施の形態のDBレスポンス送信処理を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
Next, the DB response transmission process of the
FIG. 16 is a flowchart illustrating DB response transmission processing according to the second embodiment. In the following, the process illustrated in FIG. 16 will be described in order of step number.
[ステップS81]AP通信部160は、APサーバ400からDBリクエストを受信する。AP通信部160は、受信したDBリクエストをDB処理部120に出力する。
[ステップS82]DB処理部120は、DBリクエストに含まれる指定セッションは適正であるか否かを判定する。適正である場合、処理をステップS83に進める。適正でない場合、処理をステップS87に進める。なお、DB処理部120は、例えば指定セッションのセッション番号とAPサーバ400のためにプールしたセッションのセッション番号とを照合することで、指定セッションが適正であるか否かを判定することができる。すなわち、APサーバ400の指定セッションとDBサーバ100でAPサーバ400用にプールしているセッションとのセッション番号が一致する場合、適正であると判定する。これらが一致しない場合、適正でないと判定する。プールしたセッションの情報は、例えばAPサーバの識別情報に対応付けて所定の記憶部に記憶されている。
[Step S81] The
[Step S82] The
[ステップS83]DB処理部120は、DBリクエストに応じたDB処理を実行する。
[ステップS84]DB処理部120は、版数記憶部110を参照してクラスタ版数を取得する。
[Step S83] The
[Step S84] The
[ステップS85]DB処理部120は、DB処理の実行結果に基づいて、クラスタ版数を含むDBレスポンスを生成する。
[ステップS86]DB処理部120は、生成したDBレスポンスをAP通信部160に出力する。AP通信部160は、取得したDBレスポンスをAPサーバ400に送信する。なお、このDBレスポンスは正常にDB処理がなされた際の応答であるので、正常応答である。
[Step S85] The
[Step S86] The
[ステップS87]DB処理部120は、版数記憶部110を参照してクラスタ版数を取得する。ここで、版数記憶部110に記憶されたクラスタ版数が所定の初期値(例えば、“−1”)を示している場合は、サービス監視部140は新たなクラスタ版数を版数記憶部110に設定する。この場合、DB処理部120は、サービス監視部140が設定したクラスタ版数を取得する。
[Step S87] The
[ステップS88]DB処理部120は、指定セッションが適正でない旨を示すセッション無効通知を生成する。DB処理部120は、セッション無効通知にクラスタ版数を含める。
[Step S88] The
[ステップS89]DB処理部120は、セッション無効通知をAP通信部160に出力する。AP通信部160は、セッション無効通知およびクラスタ版数をAPサーバ400に送信する。このレスポンスは、正常にDB処理がなされない場合の応答であるので、正常応答ではない。この場合、APサーバ400において図13のステップS54で正常応答と判定されない。
[Step S89] The
このようにして、DBサーバ100はAPサーバ400に対するレスポンスと共に、クラスタ版数を送信する。
なお、ステップS85〜S89では、クラスタ版数を各種レスポンスに含めて生成し、送信するものとしたが、これらを別個にAPサーバ400に送信してもよい。例えば、AP通信部160がAPサーバ400に各種レスポンスを送信する際に、版数送信部150がAPサーバ400にクラスタ版数を送信することとしてもよい。
In this way, the
In steps S85 to S89, the cluster version number is generated and transmitted in various responses, but these may be transmitted separately to the
次に、図13のステップS56に示したAPサーバ400のDBレスポンス受信処理を詳細に説明する。
図17は、第2の実施の形態のDBレスポンス受信処理を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
Next, the DB response reception process of the
FIG. 17 is a flowchart illustrating DB response reception processing according to the second embodiment. In the following, the process illustrated in FIG. 17 will be described in order of step number.
[ステップS91]AP処理部420は、DB通信部460で正常応答と判定されたDBレスポンスを取得する。AP処理部420は、DBレスポンスに応じたAP処理を実行する。AP処理部420は、AP処理の実行結果に基づいて、端末装置61へAPレスポンスを送信する。
[Step S91] The
[ステップS92]セッション制御部440は、DB通信部460が受信したクラスタ版数を取得する。
[ステップS93]セッション制御部440は、DBレスポンスの送信元クラスタのセッション管理テーブルを参照する。ここでは、セッション情報記憶部410に記憶されたセッション管理テーブル412を参照する。
[Step S <b> 92] The
[Step S93] The
[ステップS94]セッション制御部440は、受信したクラスタ版数とセッション取得時版数の異なるレコードが存在するか否かを判定する。存在する場合、処理をステップS95に進める。存在しない場合、処理をステップS96に進める。
[Step S94] The
[ステップS95]セッション制御部440は、セッション管理テーブル412のうち、セッション取得時版数が現クラスタ版数と異なるレコードにつき、無効フラグに“無効”を設定する。
[Step S95] The
[ステップS96]セッション制御部440は、セッション情報記憶部410に記憶された版数管理テーブル411のDBクラスタ10(クラスタ名“DB0001”)に対応するクラスタ版数に受信したクラスタ版数を設定する。
[Step S96] The
このようにして、APサーバ400はセッション管理テーブル412に含まれるセッションのうち、DBクラスタ10から受信したクラスタ版数と異なるセッション取得時版数が設定されているセッションが存在する場合、そのセッションを“無効”とする。
In this way, if there is a session in which a session acquisition version number different from the cluster version number received from the
次に、図13のステップS59に示したAPサーバ400のセッション整理処理を詳細に説明する。
図18は、第2の実施の形態のセッション整理処理を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
Next, the session organization process of the
FIG. 18 is a flowchart illustrating session organizing processing according to the second embodiment. In the following, the process illustrated in FIG. 18 will be described in order of step number.
[ステップS101]セッション制御部440は、端末装置61に対して割り当てていたセッションを特定する。
[ステップS102]セッション制御部440は、セッション情報記憶部410に記憶されたセッション管理テーブル412を参照して、そのセッションが有効であるか否かを判定する。有効である場合、処理をステップS103に進める。無効である場合、処理をステップS105に進める。
[Step S101] The
[Step S102] The
[ステップS103]セッション制御部440は、セッション管理テーブル412に設定されたセッションの総数がプール上限値を超過しているか否かを判定する。未超過の場合、処理をステップS104に進める。超過している場合、処理をステップS105に進める。
[Step S103] The
[ステップS104]セッション制御部440は、ステップS101で特定したセッションを未割当とする。すなわち、該当のレコードから端末装置61の要求元識別情報を削除する。
[Step S104] The
[ステップS105]セッション制御部440は、DBクラスタ10に対してセッション管理テーブル412に設定された無効なセッションの破棄を指示する無効セッション破棄要求を生成し、DB通信部460に出力する。DB通信部460は、無効セッション破棄要求をDBクラスタ10に送信する。
[Step S <b> 105] The
[ステップS106]DB通信部460は、DBクラスタ10からステップS105で指示したセッションを破棄した旨を示す無効セッション破棄応答を受信する。DB通信部460は、破棄応答をセッション制御部440に出力する。
[Step S106] The
[ステップS107]セッション制御部440は、セッション管理テーブル412に含まれる無効セッションのレコードを削除する。
このようにして、APサーバ400は端末装置61,62,63,・・・に対してAPレスポンスを送信した後に、業務処理のために利用していたDBクラスタ10上のセッションの再利用を可能とする。
[Step S107] The
In this way, the
また、APサーバ400はセッションを無効とした後、端末装置61,62,63,・・・との一連の通信が完了した後に無効セッションを破棄する。これにより、次のような効果を得ることができる。
Further, after invalidating the session, the
例えば、APサーバ400とDBクラスタ10との通信が完了した状態で、業務処理トランザクションは継続しているような場合が発生し得る。この場合、トランザクションにより該当のセッションがロックされていると、そのセッションを破棄しようとしてもエラーとなり、適切にセッションの破棄が行われない場合が生じ得る。
For example, there may occur a case where the business process transaction is continued in a state where the communication between the
これに対し、APサーバ400は上述のように、端末装置61,62,63,・・・に対してAPレスポンスが送信された後(すなわち、業務処理トランザクションが一通り完了して、APサーバ400と端末装置61,62,63,・・・一連の通信が完了した後)に無効セッションを破棄するので、確実にセッションの破棄を行うことができる。
On the other hand, as described above, the
次に、業務処理システムにおける処理の流れの具体例を説明する。なお、以下の例でもDBクラスタ10およびAPサーバ400との間の処理のみを説明するが、DBクラスタ10とAPサーバ500,600およびDBクラスタ20,30とAPサーバ400,500,600との間の処理に関しても同様である。
Next, a specific example of the processing flow in the business processing system will be described. In the following example, only processing between the
以下の各図におけるステップの直前では、DBクラスタ10につきDBサーバ100が運用系、DBサーバ100aが待機系の状態であるとする。
図19は、第2の実施の形態のセッション無効化処理を示す第1のシーケンス図である。以下、図19に示す処理をステップ番号に沿って説明する。
Immediately before the step in each of the following drawings, it is assumed that the
FIG. 19 is a first sequence diagram illustrating session invalidation processing according to the second embodiment. In the following, the process illustrated in FIG. 19 will be described in order of step number.
[ステップST1]DBサーバ100は、DBサービスの停止を開始する。
[ステップST2]DBサーバ100は、クラスタ版数を更新する。DBサーバ100は、APサーバ400へクラスタ停止開始通知およびクラスタ版数を送信する。APサーバ400は、DBサーバ100からクラスタ停止開始通知およびクラスタ版数を受信する。
[Step ST1] The
[Step ST2] The
[ステップST3]APサーバ400は、セッション無効化処理を実行する。APサーバ400は、DBクラスタ10を“非運用中”とする。これにより、DBクラスタ10はDB処理の振り分け対象外となる。
[Step ST3] The
[ステップST4]DBサーバ100aは、DBサーバ100からのハートビートパケットの受信が途絶えたことを検知する。
[ステップST5]DBサーバ100aは、DBサービスの起動を開始する。
[Step ST4] The
[Step ST5] The
[ステップST6]DBサーバ100aは、DBサービスの起動を完了する。DBサーバ100aが現用系となる。仮想DBアドレスの担い手がDBサーバ100aに切り替わる。すなわち、外部装置との仮想DBアドレスを介したデータ通信はDBサーバ100aにより行われるようになる。
[Step ST6] The
[ステップST7]DBサーバ100aは、クラスタ版数を更新する。DBサーバ100aは、APサーバ400へクラスタ起動完了通知およびクラスタ版数を送信する。APサーバ400は、DBサーバ100aからクラスタ起動完了通知およびクラスタ版数を受信する。
[Step ST7] The
[ステップST8]APサーバ400は、セッション無効化処理を実行する。APサーバ400は、DBクラスタ10を“運用中”とする。これにより、DBクラスタ10はDB処理の振り分け対象となる。
[Step ST8] The
[ステップST9]APサーバ400は、端末装置61からAPリクエストを受信すると、DB処理の振り分け先としてDBクラスタ10を選択する。そして、APサーバ400は、DBリクエスト送信のためにセッション開設要求をDBクラスタ10に送信する。
[Step ST9] Upon receiving an AP request from the
このように、DBクラスタ10はクラスタ切替の開始時およびクラスタ切替の完了時に、各処理の段階を示す旨の通知をAPサーバ400,500,600に送信する。
これにより、APサーバ400,500,600は、DBクラスタ10におけるクラスタ切替の開始・完了を適正に検知できる。APサーバ400,500,600は、ステップST2〜ST8の間ではDBクラスタ10に処理を振り分けないので、クラスタ切替中のDBクラスタ10に対する無駄なDBリクエストの送信を抑制できる。
As described above, the
As a result, the
また、DBクラスタ10は、クラスタ切替の開始時およびクラスタ切替の完了時にクラスタ版数を送信する。そして、APサーバ400,500,600は更新されたクラスタ版数を受信した場合、DBクラスタ10から割り当てられていたセッションを無効とする。したがって、DBクラスタ10が利用可能となった際に、APサーバ400,500,600は、DBクラスタ10との通信開始時に利用可能なセッションが存在しないこととなる。よって、APサーバ400,500,600は、DBクラスタ10との間でデータ通信を行う際には、まず、DBクラスタ10に新規セッションの開設を要求する。
Further, the
これにより、クラスタ切替直後にDBサーバ100aでプールされていないセッションを指定したDBリクエストがAPサーバ400,500,600からDBサーバ100aに送信されることがない。よって、APサーバ側とDBサーバ側とのセッション不整合によるエラーの発生を抑止することができる。
As a result, a DB request specifying a session that is not pooled by the
また、DBクラスタ10に含まれるDBサーバ100,100aで一貫した版数を用いてDBクラスタ10の状態を管理する。このため、APサーバ400では受信元をクラスタ単位のDB仮想アドレスで識別できればよく、その配下のDBサーバを意識しなくてよい。このため、仮想アドレスの配下に存在するサーバとの間で確立するセッションの管理を容易に行うことができる。
Further, the
更に、DBクラスタ10はクラスタ切替の開始時と完了時とにクラスタ版数を更新して送信する。このため、仮にクラスタ切替の開始時にDBサーバ100の障害等が原因で、クラスタ版数がAPサーバ側に到達しなかった場合にも、クラスタ切替の完了時のクラスタ版数の通知によってAPサーバ側で確実にセッションの無効化が実行される。次に、そのような場合を例示する。
Further, the
図20は、第2の実施の形態のセッション無効化処理を示す第2のシーケンス図である。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップST11]DBサーバ100は、障害によりDBサービスが利用不可となる。
FIG. 20 is a second sequence diagram illustrating session invalidation processing according to the second embodiment. In the following, the process illustrated in FIG. 20 will be described in order of step number.
[Step ST11] The
[ステップST12]DBサーバ100aは、DBサーバ100からのハートビートパケットの受信が途絶えたことを検知する。
[ステップST13]DBサーバ100aは、DBサービスの起動を開始する。
[Step ST12] The
[Step ST13] The
[ステップST14]DBサーバ100aは、DBサービスの起動を完了する。DBサーバ100aが現用系となる。仮想DBアドレスの担い手がDBサーバ100aに切り替わる。すなわち、外部装置との仮想DBアドレスを介したデータ通信はDBサーバ100aにより行われるようになる。
[Step ST14] The
[ステップST15]DBサーバ100aは、クラスタ版数を更新する。DBサーバ100aは、APサーバ400へクラスタ版数およびクラスタ起動完了通知を送信する。APサーバ400は、DBサーバ100aからクラスタ版数およびクラスタ起動完了通知を受信する。
[Step ST15] The
[ステップST16]APサーバ400は、セッション無効化処理を実行する。APサーバ400は、DBクラスタ10を“運用中”とする。これにより、DBクラスタ10はDB処理の振り分け対象となる。
[Step ST16] The
[ステップST17]APサーバ400は、端末装置61からAPリクエストを受信すると、DB処理の振り分け先としてDBクラスタ10を選択する。そして、APサーバ400は、DBリクエスト送信のためにセッション開設要求をDBクラスタ10に送信する。
[Step ST17] Upon receiving the AP request from the
このように、DBクラスタ10はDBサーバ100の障害によって、クラスタ切替開始時にクラスタ版数をAPサーバ400,500,600に送信できなかった場合にも、APサーバ400,500,600に確実にセッションの無効化処理を促すことができる。
As described above, even when the
次に、クラスタ切替の完了後、DBクラスタ10がAPサーバ400,500,600にクラスタ起動完了通知を送信する前にAPサーバ400からDBリクエストを受信する場合を例示する。
Next, a case where a DB request is received from the
図21は、第2の実施の形態のセッション無効化処理を示す第3のシーケンス図である。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップST21]DBサーバ100は、障害によりDBサービスが利用不可となる。
FIG. 21 is a third sequence diagram illustrating session invalidation processing according to the second embodiment. In the following, the process illustrated in FIG. 21 will be described in order of step number.
[Step ST21] The
[ステップST22]DBサーバ100aは、DBサーバ100からのハートビートパケットの受信が途絶えたことを検知する。
[ステップST23]DBサーバ100aは、DBサービスの起動を開始する。
[Step ST22] The
[Step ST23] The
[ステップST24]DBサーバ100aは、DBサービスの起動を完了する。DBサーバ100aが現用系となる。仮想DBアドレスの担い手がDBサーバ100aに切り替わる。すなわち、外部装置との仮想DBアドレスを介したデータ通信はDBサーバ100aにより行われるようになる。
[Step ST24] The
[ステップST25]APサーバ400は、クラスタ切替前にDBサーバ100から払い出されたセッションを指定して、DBクラスタ10にDBリクエストを送信する。DBサーバ100aは、APサーバ400からDBリクエストを受信する。
[Step ST25] The
[ステップST26]DBサーバ100aは、クラスタ版数が初期値であるため、新たにクラスタ版数を設定する。DBサーバ100aは、セッション無効通知およびこのクラスタ版数をAPサーバ400に送信する。APサーバ400は、DBサーバ100aからセッション無効通知およびクラスタ版数を受信する。
[Step ST26] The
[ステップST27]APサーバ400は、セッション無効化処理を実行する。
[ステップST28]APサーバ400は、端末装置61からAPリクエストを受信すると、DB処理の振り分け先としてDBクラスタ10を選択する。そして、APサーバ400は、DBリクエスト送信のためにセッション開設要求をDBクラスタ10に送信する。
[Step ST27] The
[Step ST28] Upon receiving the AP request from the
このように、障害等でクラスタ停止開始通知がAPサーバ400,500,600に送信されない場合には、クラスタ切替直後にDBサーバ100aでプールされていないセッションを指定したDBリクエストがDBサーバ100aに送信されることも考えられる。
As described above, when the cluster stop start notification is not transmitted to the
これに対し、DBサーバ100aはそのようなDBリクエストに対して、セッション無効通知およびクラスタ版数を応答する。このため、APサーバ400はDBクラスタ10との間でプールされたセッションが無効であると検知できる。
In response to this, the
なお、上述の例では、DBサーバ100aはステップST26でDBリクエストに対してセッション無効通知およびクラスタ版数の応答を行う。これによって、APサーバ400ではセッション無効通知によるセッションの無効化処理が行われるので、その後にDBサービス起動時版数通知処理を行わないものとした。ただし、DBサーバ100aはDBサービス起動時版数通知処理を実行してもよい。その場合、クラスタ版数が更新されるので、APサーバ400ではステップST27のセッション無効化処理とは別に再度セッション無効化処理が行われる。
In the above example, the
以上で説明したように、本実施の形態の業務処理システムによればAPサーバ側とDBサーバ側とのセッション不整合によるエラーの発生を抑止することができる。
例えば、クラスタ構成を採る基幹システムでクラスタ切替が発生し、エラーが発生するような場合でも、クライアント装置側(端末装置61,62,63,・・・)では端末エラーが表示されなくなる。その結果、多数のクライアント装置側に旧いセッションエラーが表示されて業務が中断し、現場が混乱する等の問題を解消することができる。
As described above, according to the business processing system of the present embodiment, it is possible to suppress the occurrence of an error due to session mismatch between the AP server side and the DB server side.
For example, even when an error occurs due to cluster switching in a backbone system having a cluster configuration, terminal errors are not displayed on the client device side (
[第3の実施の形態]
以下、第3の実施の形態について説明する。前述の第2の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
[Third Embodiment]
The third embodiment will be described below. Differences from the second embodiment will be mainly described, and description of similar matters will be omitted.
ここで、第2の実施の形態ではAPサーバ側でDBクラスタ側のクラスタ版数を管理することとした。第3の実施の形態では、更にDBクラスタ側でAPサーバ側の版数(サーバ版数)を管理する。以下では、それによって実現される機能について説明する。 Here, in the second embodiment, the cluster version number on the DB cluster side is managed on the AP server side. In the third embodiment, the version number (server version number) on the AP server side is further managed on the DB cluster side. Below, the function implement | achieved by it is demonstrated.
なお、第3の実施の形態の業務処理システムの構成は、図2に示した第2の実施の形態の業務処理システムの構成と同様であるため説明を省略する。更に、第3の実施の形態の業務処理システムの各装置のハードウェア構成は、図3に示した第2の実施の形態のDBサーバ100のハードウェア構成と同様であるため、説明を省略する。
The configuration of the business processing system according to the third embodiment is the same as the configuration of the business processing system according to the second embodiment shown in FIG. Furthermore, the hardware configuration of each device of the business processing system according to the third embodiment is the same as the hardware configuration of the
また、以下の説明では第2の実施の形態の各装置に付した符号と同一の符号を用いて、第3の実施の形態の各装置を説明する。
図22は、第3の実施の形態のDBサーバの機能構成を示す図である。DBサーバ100は、版数記憶部110、DB処理部120、クラスタ制御部130、サービス監視部140、AP通信部160、セッション情報記憶部170、セッション制御部180および版数送受信部190を有する。これらの機能はCPU101が所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアを用いて実現してもよい。
In the following description, each device of the third embodiment will be described using the same reference numerals as those assigned to the devices of the second embodiment.
FIG. 22 is a diagram illustrating a functional configuration of the DB server according to the third embodiment. The
ここで、版数記憶部110、DB処理部120、クラスタ制御部130、サービス監視部140およびAP通信部160は、図4で同一の符号を用いて説明した各構成と同一であるため説明を省略する。
Here, the version
ただし、クラスタ制御部130は、版数記憶部110、DB処理部120、サービス監視部140、AP通信部160、セッション情報記憶部170、セッション制御部180および版数送受信部190の各機能の起動・停止を制御する。すなわち、クラスタ制御部130は、DBサーバ100aが待機系として動作する場合、自サーバを現用系として動作させるためにこれらの各機能を起動させる。
However, the
セッション情報記憶部170は、APサーバ400のセッション情報記憶部410に対応する。セッション情報記憶部170はAPサーバ400,500,600のサーバ版数を記憶する。サーバ版数の詳細は後述する。セッション情報記憶部410は、APサーバ400,500,600に対して割り当てたセッションを定義したセッション情報を記憶する。
Session
セッション制御部180は、セッション情報記憶部170に記憶されたAPサーバ400,500,600のサーバ版数およびセッション情報を管理する。
版数送受信部190は、サービス監視部140により版数記憶部110に記憶されたクラスタ版数が更新されると、そのクラスタ版数をAPサーバ400,500,600に送信する。また、版数送受信部190は、APサーバ400,500,600から各サーバのサーバ版数を受信する。版数送受信部190は、受信したサーバ版数をセッション制御部180に出力する。
The
When the
DBサーバ100aは、版数記憶部110a、DB処理部120a、クラスタ制御部130a、サービス監視部140a、AP通信部160a、セッション情報記憶部170a、セッション制御部180aおよび版数送受信部190aを有する。これらの機能は、DBサーバ100aが備えるCPUが所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアを用いて実現してもよい。
The
ここで、版数記憶部110a、DB処理部120a、クラスタ制御部130a、サービス監視部140aおよびAP通信部160aは、図4で同一の符号を用いて説明した各構成と同一であるため説明を省略する。
Here, the version
ただし、クラスタ制御部130aは、DBサーバ100が現用系として動作している場合には、これらの機能の停止状態を維持する。一方、DBサーバ100が利用不可となった場合には、自サーバを現用系として動作させるためにこれらの各機能を起動させる。
However, when the
セッション情報記憶部170aは、セッション情報記憶部170に対応する。セッション制御部180aは、セッション制御部180に対応する。版数送受信部190aは、版数送受信部190に対応する。
The session
また、DBクラスタ20,30についてもDBクラスタ10と同様の機能構成により実現できる。
図23は、第3の実施の形態のAPサーバの機能構成を示す図である。APサーバ400は、セッション情報記憶部410、AP処理部420、クライアント通信部430、セッション制御部440、DB通信部460、版数記憶部470、サービス監視部480および版数送受信部490を有する。これらの機能は、APサーバ400が備えるCPUが所定のプログラムを実行することで実現される。なお、これらの機能の全部あるいは少なくとも一部を専用のハードウェアを用いて実現してもよい。
The
FIG. 23 is a diagram illustrating a functional configuration of the AP server according to the third embodiment. The
ここで、セッション情報記憶部410、AP処理部420、クライアント通信部430、セッション制御部440、DB通信部460は、図5で同一の符号を用いて説明した各構成と同一であるため説明を省略する。
Here, the session
版数記憶部470は、APサーバ400のサーバ版数を記憶する。
サービス監視部480は、AP処理部420の起動・停止を監視する。サービス監視部480は、AP処理部420が起動または停止した場合に、版数記憶部470に記憶されたサーバ版数を更新する。
The version
The
版数送受信部490は、サービス監視部480により版数記憶部470に記憶されたサーバ版数が更新されると、そのサーバ版数をDBクラスタ10,20,30に送信する。また、版数送受信部490は、DBクラスタ10,20,30から各クラスタのクラスタ版数を受信する。版数送受信部490は、受信したクラスタ版数をセッション制御部440に出力する。
When the server version number stored in the version
なお、APサーバ500,600に関してもAPサーバ400と同様の機能構成により実現できる。
図24は、DBサーバが有する版数管理テーブルのデータ構造例を示す図である。版数管理テーブル171は、セッション制御部180により更新され、セッション情報記憶部170に格納される。版数管理テーブル171には、APサーバ名を示す項目、サーバ版数を示す項目および運用状態を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのAPサーバに関する情報を示す。
The
FIG. 24 is a diagram illustrating a data structure example of a version number management table included in the DB server. The version number management table 171 is updated by the
APサーバ名を示す項目には、APサーバのサーバ名を示す情報が設定される。サーバ版数を示す項目には、APサーバのサーバ版数を示す情報が設定される。運用状態を示す項目には、運用中であるか否かを示す情報が設定される。 Information indicating the server name of the AP server is set in the item indicating the AP server name. In the item indicating the server version number, information indicating the server version number of the AP server is set. In the item indicating the operation state, information indicating whether the operation is in progress is set.
版数管理テーブル171には、例えばAPサーバ名が“AP0001”、サーバ版数が“1257041552”、運用状態が“運用中”という情報が設定される。これは、クラスタ名“AP0001”で示されるAPサーバ400のサーバ版数が“1257041552”であることを示している。また、APサーバ400は、現在“運用中”であることを示している。
In the version number management table 171, for example, information that the AP server name is “AP0001”, the server version number is “1257041552”, and the operation state is “in operation” is set. This indicates that the server version number of the
ここで、以下ではAPサーバ500のAPサーバ名を“AP0002”、APサーバ600のAPサーバ名を“AP0003”とする。
図25は、DBサーバが有するセッション管理テーブルのデータ構造例を示す図である。セッション管理テーブル172,173,174は、セッション制御部180により更新され、セッション情報記憶部170に格納される。セッション管理テーブル172はAPサーバ400に割り当てたセッションを管理するためのものである。セッション管理テーブル173はAPサーバ500に割り当てたセッションを管理するためのものである。セッション管理テーブル174はAPサーバ600に割り当てたセッションを管理するためのものである。以下では、セッション管理テーブル172に関してのみ説明するが、セッション管理テーブル173,174に関しても同様の構成である。
Hereinafter, the AP server name of the
FIG. 25 is a diagram illustrating a data structure example of a session management table included in the DB server. The session management tables 172, 173, and 174 are updated by the
セッション管理テーブル172には、エントリIDを示す項目、セッション割当時版数を示す項目、セッション番号を示す項目および要求先識別情報を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのセッションに関する情報を示す。 The session management table 172 includes an item indicating an entry ID, an item indicating a session allocation version number, an item indicating a session number, and an item indicating request destination identification information. Information arranged in the horizontal direction of each item is associated with each other to indicate information related to one session.
エントリIDを示す項目には、セッション管理テーブル172に含まれる1レコードを識別するためのエントリIDが設定される。セッション割当時版数を示す項目には、セッションを割り当てた際のサーバ版数が設定される。セッション番号を示す項目には、APサーバ400に割り当てたセッションを識別するためのセッション番号が設定される。要求先識別情報を示す項目には、処理要求を実行するためのスレッドを識別する情報が設定される。
In the item indicating the entry ID, an entry ID for identifying one record included in the session management table 172 is set. In the item indicating the version number at session allocation, the server version number when the session is allocated is set. In the item indicating the session number, a session number for identifying a session assigned to the
セッション管理テーブル172は、例えばエントリIDが“1”、セッション割当時版数が“1257041552”、セッション番号が“4”、要求先識別情報が“スレッド5”という情報が設定される。これは、APサーバ400から受け付けたセッション番号“4”を指定する処理要求につき、そのセッションを割り当てた際のAPサーバ400のサーバ版数が“1257041552”であることを示している。また、その処理要求に対する処理を行うスレッドが要求先識別情報“スレッド5”のスレッドであることを示している。
In the session management table 172, for example, the entry ID is “1”, the session allocation version number is “12570415552”, the session number is “4”, and the request destination identification information is “thread 5” is set. This indicates that for the processing request specifying the session number “4” received from the
図26は、APサーバが有するサーバ版数テーブルのデータ構造例を示す図である。サーバ版数テーブル471は、サービス監視部480により更新され、版数記憶部470に格納される。サーバ版数テーブル471には、APサーバ400のサーバ版数が設定される。
FIG. 26 is a diagram illustrating a data structure example of a server version number table included in the AP server. The server version number table 471 is updated by the
サーバ版数テーブル471には、例えば“1257043871”という情報が設定される。これは、図6で説明したクラスタ版数テーブル111と同様に、1970年1月1日0時0分0秒からの秒数である。サービス監視部480はサーバ版数テーブル471を更新する際に、例えばOSからこのような時間情報をサーバ版数として取得できる。
In the server version number table 471, for example, information “1257044381” is set. Similar to the cluster version number table 111 described with reference to FIG. 6, this is the number of seconds from January 1, 1970, 00:00:00. When the
なお、サーバ版数はAPサービス起動中から起動直後の時点では所定の初期値(例えば“−1”)が設定されるものとする。そして、起動完了後の所定のタイミングで、サービス監視部480により、現在の時間情報がサーバ版数として設定される。
The server version number is set to a predetermined initial value (for example, “−1”) at the time immediately after the AP service is started. Then, at a predetermined timing after the start is completed, the
次に、以上のような構成を備える業務処理システムの処理手順を説明する。ここで、以下ではDBクラスタ10およびAPサーバ400に注目して処理手順を説明する。ただし、DBクラスタ10とAPサーバ500,600との間の処理も同様である。また、DBクラスタ20,30とAPサーバ400,500,600との間の処理も同様である。
Next, a processing procedure of a business processing system having the above configuration will be described. Here, the processing procedure will be described below focusing on the
まず、APサーバ400,500,600を縮退運転する。縮退運転とは、APサーバ400,500,600の何れか一部でAPサービスを停止させて業務処理システムを稼働させることを意味する。以下の説明では、APサーバ400でAPサービスを停止・起動させる場合を例示する。また、DBクラスタ10はDBサーバ100が現用系、DBサーバ100aが待機系であるとする。
First, the
図27は、第3の実施の形態のAPサーバの縮退開始/縮退解除処理を示すシーケンス図である。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS111]APサーバ400は、APサービス(AP処理部420)の停止指示を受け付ける。AP処理部420の停止指示を受け付ける場合としては、例えばシステム管理者がメンテナンスのためにサービス停止を指示する操作入力をAPサーバ400に対して行った場合等が考えられる。また、例えば夜間や休日等、システムの利用の少ない期間に縮退運転するためにAPサーバ400を計画停止させる場合も考えられる。
FIG. 27 is a sequence diagram illustrating degeneration start / degeneration release processing of the AP server according to the third embodiment. In the following, the process illustrated in FIG. 27 will be described in order of step number.
[Step S111] The
[ステップS112]APサーバ400は、AP処理部420の停止を開始する。
[ステップS113]APサーバ400は、AP処理部420の停止が開始されると、版数記憶部470に記憶されたサーバ版数を更新する。APサーバ400は、更新したサーバ版数およびAPサービス停止開始通知をDBクラスタ10,20,30に送信する。
[Step S112] The
[Step S113] When the
[ステップS114]DBサーバ100は、APサーバ400からサーバ版数を受信する。APサーバ400は、受信したサーバ版数に基づいて、DBサーバ100がAPサーバ400に割り当てていたセッションの解放処理を実行する。また、DBサーバ100は、APサービス停止開始通知を受信したことにより、セッション情報記憶部170に記憶された版数管理テーブル171のうち、APサーバ400(APサーバ名“AP0001”)の運用状態を“非運用中”に設定する。
[Step S114] The
[ステップS115]APサーバ400は、AP処理部420の停止が完了する。
[ステップS116]APサーバ400は、メンテナンスの完了に伴う起動指示や計画停止からの復旧のための起動指示によってAP処理部420の起動を開始する。
[Step S115] The
[Step S116] The
[ステップS117]APサーバ400は、AP処理部420の起動を完了する。
[ステップS118]APサーバ400は、AP処理部420の起動が完了すると、版数記憶部470に記憶されたサーバ版数を更新する。APサーバ400は、更新したサーバ版数およびAPサービス開始完了通知をDBクラスタ10,20,30に送信する。
[Step S117] The
[Step S118] When the activation of the
[ステップS119]DBサーバ100は、APサーバ400からサーバ版数を受信する。DBサーバ100は、受信したサーバ版数に基づいて、DBサーバ100がAPサーバ400に割り当てていたセッションの解放処理を実行する。また、DBサーバ100は、APサービス開始完了通知を受信したことにより、セッション情報記憶部170に記憶された版数管理テーブル171のうち、APサーバの運用状態を“運用中”に設定する。
[Step S119] The
[ステップS120]DBサーバ100は、新たに起動したAPサーバ400にクラスタ版数を送信する。これは、DBクラスタ10が現在利用可能であることをAPサーバ400に通知するためである。
[Step S120] The
このようにして、APサーバ400はAPサービス停止時および開始時にサーバ版数をDBクラスタ10に送信する。
次に、図27のステップS113に示したDBクラスタ10のDBサービス停止時版数通知処理を詳細に説明する。
In this way, the
Next, the DB service stop version number notification process of the
図28は、第3の実施の形態のAPサービス停止時版数通知処理を示すフローチャートである。以下、図28に示す処理をステップ番号に沿って説明する。
[ステップS121]サービス監視部480は、AP処理部420の停止開始を検知する。
FIG. 28 is a flowchart illustrating AP service stop version number notification processing according to the third embodiment. In the following, the process illustrated in FIG. 28 will be described in order of step number.
[Step S <b> 121] The
[ステップS122]サービス監視部480は、OSから現在のタイムスタンプをサーバ版数として取得する。
[ステップS123]サービス監視部480は、版数記憶部470に記憶されたサーバ版数テーブル471のサーバ版数をステップS122で取得したサーバ版数に更新する。
[Step S122] The
[Step S123] The
[ステップS124]版数送受信部490は、サーバ版数テーブル471を参照してサーバ版数を取得し、DBクラスタ10,20,30に送信する。また、版数送受信部490は、サーバ版数と共に、APサーバ400のAPサービス停止開始通知をDBクラスタ10,20,30に送信する。
[Step S124] The version number transmission /
このようにして、APサーバ400は、AP処理部420を停止する際にサーバ版数を更新する。そして、APサーバ400は、更新後のサーバ版数をDBクラスタ10,20,30に送信する。
In this way, the
次に、図27のステップS118に示したAPサーバ400のAPサービス起動時版数通知処理を詳細に説明する。
図29は、第3の実施の形態のAPサービス起動時版数通知処理を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
Next, the AP service activation version number notification process of the
FIG. 29 is a flowchart illustrating AP service activation version number notification processing according to the third embodiment. In the following, the process illustrated in FIG. 29 will be described in order of step number.
[ステップS131]サービス監視部480は、AP処理部420の起動完了を検知する。
[ステップS132]サービス監視部480は、OSから現在のタイムスタンプをサーバ版数として取得する。
[Step S131] The
[Step S132] The
[ステップS133]サービス監視部480は、版数記憶部470に記憶されたサーバ版数テーブル471のサーバ版数を、ステップS132で取得した版数に更新する。
[ステップS134]版数送受信部490は、サーバ版数テーブル471を参照してサーバ版数を取得し、DBクラスタ10,20,30に送信する。また、版数送受信部490は、サーバ版数と共に、APサーバ400のAPサービス起動完了通知をDBクラスタ10,20,30に送信する。
[Step S133] The
[Step S134] The version number transmission /
このようにして、APサーバ400は、APサービスを開始する際にサーバ版数を更新する。そして、APサーバ400は、更新後のサーバ版数をDBクラスタ10,20,30に送信する。
In this way, the
次に、図27のステップS114,S119に示したDBサーバ100のセッション解放処理を詳細に説明する。
図30は、第3の実施の形態のセッション解放処理を示すフローチャートである。以下、図30に示す処理をステップ番号に沿って説明する。
Next, the session release process of the
FIG. 30 is a flowchart illustrating session release processing according to the third embodiment. In the following, the process illustrated in FIG. 30 will be described in order of step number.
[ステップS141]版数送受信部190は、APサーバ400からサーバ版数を受信する。版数送受信部190は、受信したサーバ版数をセッション制御部180に出力する。
[Step S <b> 141] The version number transmission /
[ステップS142]セッション制御部180は、セッション情報記憶部170に記憶されたセッション管理テーブル172を参照して、APサーバ400に割り当てたセッションを定義したレコードを特定する。
[Step S142] The
[ステップS143]セッション制御部180は、特定したレコードのうち、ステップS141で受信したサーバ版数とセッション割当時版数とが異なるレコードが存在するか否かを判定する。存在する場合、処理をステップS144に進める。存在しない場合、処理を完了する。
[Step S143] The
[ステップS144]セッション制御部180は、セッション取得時版数が新たに受信したサーバ版数と異なるレコードに対応する要求先識別情報を取得する。そして、セッション制御部180は、その要求先識別情報で指定されるスレッドに停止シグナルを発行する。
[Step S144] The
[ステップS145]セッション制御部180は、セッション取得時版数が新たに受信したサーバ版数と異なるレコードで示されるセッションを解放する。すなわち、該当のセッションは何れのAPサーバおよびスレッドにも割り当てられていない空きの状態となり、再利用が可能となる。
[Step S145] The
[ステップS146]セッション制御部180は、セッション情報記憶部170に記憶された版数管理テーブル171のAPサーバ400のサーバ版数として、ステップS141で受信したサーバ版数を設定する。
[Step S146] The
このようにして、セッション制御部180は、APサーバ400から受信したサーバ版数とセッション割当時版数とが異なる場合、該当のセッションを解放する。
次に、業務処理システムで実行される業務処理の手順を説明する。
In this manner, the
Next, a procedure for business processing executed in the business processing system will be described.
図31は、第3の実施の形態の業務処理を示すシーケンス図である。以下、図31に示す処理をステップ番号に沿って説明する。
[ステップS151]APサーバ400は、端末装置61から業務処理要求(以下、APリクエストという)を受信する。
FIG. 31 is a sequence diagram illustrating business processing according to the third embodiment. In the following, the process illustrated in FIG. 31 will be described in order of step number.
[Step S151] The
[ステップS152]APサーバ400は、取得したAPリクエストに応じた業務処理を実行する。APサーバ400は、業務処理に応じてDBクラスタに依頼すべき処理が発生した場合、処理要求(以下、DBリクエストという)を生成する。APサーバ400は、生成したDBリクエストを送信すべきDBクラスタを選択する。選択の方法は、第2の実施の形態で説明した方法と同様である(例えば、ラウンドロビンである)。ここでは、APサーバ400はDBクラスタ10を選択するものとする。そして、DBクラスタ10にDBリクエストを送信する。このとき、APサーバ400は、DBリクエストにAPサーバ400のサーバ版数を含める。
[Step S152] The
[ステップS153]DBサーバ100は、APサーバ400からDBリクエストを受信する。DBサーバ100は、受信したDBリクエストに含まれるサーバ版数に基づいて、APサーバ400に現在割り当てているセッションが有効であるかを判定する。有効である場合、DBサーバ100は、受信したDBリクエストに基づいてDB処理を実行する。DBサーバ100は、DB処理の結果に基づいてDBレスポンスを生成し、クラスタ版数と共にAPサーバ400に送信する。
[Step S153] The
[ステップS154]APサーバ400は、DBレスポンスを受信する。APサーバ400は、DBレスポンスが正常応答であるか否かを判定する。正常応答でない場合、処理をステップS155に進める。正常応答である場合、処理をステップS156に進める。
[Step S154] The
[ステップS155]APサーバ400は、セッション無効化処理を実行する。セッション無効化処理は、図12に示す処理と同様である。そして、処理をステップS152に進める。
[Step S155] The
[ステップS156]APサーバ400は、DBレスポンス受信処理を実行する。DBレスポンス受信処理は、図17に示した第2の実施の形態のDBレスポンス受信処理の手順と同様である。
[Step S156] The
[ステップS157]APサーバ400は、必要に応じて、DBレスポンスに応じた業務処理を更に実行し、端末装置61に対するAPレスポンスを生成する。そして、APサーバ400は、生成したAPレスポンスを端末装置61に送信する。
[Step S157] The
[ステップS158]APサーバ400は、端末装置61との一連の通信が完了したことを検知する。
[ステップS159]APサーバ400は、端末装置61との通信用として管理していた(APサーバ400とDBクラスタとの間の)セッションを整理するための処理を実行する。セッション整理処理は、図18に示した第2の実施の形態のセッション整理処理の手順と同様である。
[Step S158] The
[Step S159] The
このようにして、APサーバ400とDBクラスタ10との間で業務処理に伴う通信が行われる。
次に、図31のステップS152に示したAPサーバ400のDBリクエスト送信処理を説明する。
In this way, communication associated with the business process is performed between the
Next, the DB request transmission process of the
図32は、第3の実施の形態のDBリクエスト送信処理を示すフローチャートである。以下、図32に示す処理をステップ番号に沿って説明する。
[ステップS161]AP処理部420は、APリクエストに応じた業務処理の実行に伴って、DBクラスタに依頼すべき処理内容を記述したDBリクエストを生成する。AP処理部420は、版数記憶部470に記憶されたサーバ版数テーブル471を参照してサーバ版数を取得する。AP処理部420は、取得したサーバ版数をDBリクエストに含める。AP処理部420は、生成したDBリクエストをDB通信部460に出力する。
FIG. 32 is a flowchart illustrating DB request transmission processing according to the third embodiment. In the following, the process illustrated in FIG. 32 will be described in order of step number.
[Step S161] The
[ステップS162]セッション制御部440は、セッション情報記憶部410に記憶された版数管理テーブル411を参照する。
[ステップS163]セッション制御部440は、運用状態が“運用中”のDBクラスタが存在するか否かを判定する。“運用中”のDBクラスタが存在する場合、処理をステップS164に進める。“運用中”のDBクラスタが存在しない場合、処理を完了させる。なお、“運用中”のDBクラスタが存在しない場合、その後、AP処理部420は、クライアント通信部430を介して端末装置61にエラーを応答し、業務処理を完了させる。
[Step S162] The
[Step S163] The
[ステップS164]セッション制御部440は、“運用中”のDBクラスタを選択する。選択の方法は、第2の実施の形態で説明した方法と同様である(例えば、ラウンドロビンである)。
[Step S164] The
[ステップS165]セッション制御部440は、選択したDBクラスタにつきセッション割当処理を実行する。すなわち、DB通信部460が該当のDBクラスタにDBリクエストを送信するためのセッションを割り当てる。このとき、例えば該当のDBクラスタから予め取得したセッションに空きがなければ、該当のDBクラスタにセッションの開設を要求する。そして、DBクラスタから新規セッションの払い出しを受けられれば、そのセッションをDBリクエスト送信に割り当てることができる。また、セッションの払い出しを受けられなければ、セッションを割り当てることはできない。
[Step S165] The
[ステップS166]セッション制御部440は、DBリクエストを送信するためのセッションを割り当てることができたか否かを判定する。割り当てることができた場合、処理をステップS167に進める。割り当てることができなかった場合、処理をステップS163に進める。
[Step S166] The
[ステップS167]DB通信部460は、セッション制御部440により割り当てられたセッション番号(指定セッションの番号)をDBリクエストに含める。そして、DB通信部460はセッション制御部440が選択したDBクラスタに対し、DBリクエストを送信する。
[Step S167] The
このようにして、APサーバ400はDBリクエストを送信する際に、送信すべきDBクラスタを選択し、そのDBクラスタとの通信に用いるセッションを割り当てる。このとき、APサーバ400はDBリクエストにサーバ版数を含める。
In this way, when transmitting a DB request, the
なお、APサーバ400は、DBリクエストとサーバ版数とを別個に送信してもよい。例えば、DB通信部460がDBリクエストをDBクラスタ10に送信する際に、版数送受信部490がサーバ版数をDBクラスタ10に送信することとしてもよい。
The
次に、図32のステップS165に示したAPサーバ400のセッション割当処理を詳細に説明する。
図33は、第3の実施の形態のセッション割当処理を示すフローチャートである。以下、図33に示す処理をステップ番号に沿って説明する。
Next, the session allocation process of the
FIG. 33 is a flowchart illustrating session allocation processing according to the third embodiment. In the following, the process illustrated in FIG. 33 will be described in order of step number.
[ステップS171]セッション制御部440は、セッション情報記憶部410に記憶されたセッション管理テーブル412を参照する。
[ステップS172]セッション制御部440は、セッション管理テーブル412にエントリされたセッションのうち、何れの端末装置にも割り当てられていない未割当セッションが存在するか否かを判定する。未割当セッションが存在する場合、処理をステップS173に進める。未割当セッションが存在しない場合、処理をステップS176に進める。
[Step S171] The
[Step S172] The
[ステップS173]セッション制御部440は、未割当セッションのうち、有効である(すなわち、無効でない)ものが存在するか否かを判定する。存在する場合、処理をステップS179に進める。存在しない場合、処理をステップS174に進める。
[Step S173] The
[ステップS174]セッション制御部440は、DBクラスタ10に対してセッション管理テーブル412に設定された無効なセッションの破棄を指示する無効セッション破棄要求を生成し、DB通信部460に出力する。DB通信部460は、無効セッション破棄要求をDBクラスタ10に送信する。
[Step S174] The
[ステップS175]DB通信部460は、DBクラスタ10からステップS174で指示したセッションを破棄した旨を示す無効セッション破棄応答を受信する。DB通信部460は、破棄応答をセッション制御部440に出力する。
[Step S175] The
[ステップS176]セッション制御部440は、新たなセッションの開設をDBクラスタ10に要求するためのセッション開設要求を生成する。セッション制御部440は、版数記憶部470に記憶されたサーバ版数テーブル471を参照してサーバ版数を取得し、取得したサーバ版数をセッション開設要求に含める。セッション制御部440は、取得したセッション開設要求をDB通信部460に出力する。DB通信部460は、生成したセッション開設要求をDBクラスタ10に送信する。
[Step S176] The
[ステップS177]DBサーバ100は、APサーバ400からセッション開設要求を受信すると、セッション開設処理を実行する。そして、DBサーバ100は、セッション開設処理を実行した結果、新規に割り当てたセッション番号等を示す新規セッション情報を生成してAPサーバ400に送信する。
[Step S177] Upon receiving a session establishment request from the
[ステップS178]DB通信部460は、DBクラスタ10から新たに割り当てられたセッションを示す新規セッション情報とDBクラスタ10のクラスタ版数とを受信する。DB通信部460は、受信した新規セッション情報とクラスタ版数とをセッション制御部440に出力する。セッション制御部440は、セッション管理テーブル412に新規セッション情報(例えば、セッション番号)を設定する。また、セッション制御部440は、新規セッションと共に受信したクラスタ版数を新規セッションに対応するセッション取得時版数として設定する。セッション管理テーブル412に設定された新規セッションは未割当セッションとなる。また、新規セッションは有効なセッションとなる。
[Step S178] The
[ステップS179]セッション制御部440は、セッション管理テーブル412を参照して、DBリクエストの生成元となったAPリクエストの送信元端末装置の識別情報(要求元識別情報)を有効かつ未割当のセッションに割り当てる。例えば、セッション管理テーブル412に含まれる有効かつ未割当のセッションのうち、エントリIDが最も小さいものを優先して割り当てる。
[Step S179] The
このように、APサーバ400は第2の実施の形態の処理に加えて、セッション開設要求にAPサーバ400のサーバ版数を含める。DBサーバ100は、そのサーバ版数に基づいてセッション開設処理を実行することができる。
As described above, the
なお、APサーバ400は、セッション開設要求とサーバ版数とを別個に送信してもよい。例えば、DB通信部460がセッション開設要求をDBクラスタ10に送信する際に、版数送受信部490がサーバ版数をDBクラスタ10に送信することとしてもよい。
The
次に、図33のステップS177に示したDBサーバ100のセッション開設処理を詳細に説明する。
図34は、第3の実施の形態のセッション開設処理を示すフローチャートである。以下、図34に示す処理をステップ番号に沿って説明する。
Next, the session establishment process of the
FIG. 34 is a flowchart illustrating session opening processing according to the third embodiment. In the following, the process illustrated in FIG. 34 will be described in order of step number.
[ステップS181]AP通信部160は、セッション開設要求を受信する。AP通信部160は、受信したセッション開設要求をセッション制御部440に出力する。
[ステップS182]セッション制御部440は、セッション開設要求に含まれるサーバ版数に基づいて、セッション解放処理を実行する。セッション解放処理は、図30に示したステップS142以降の手順と同様である。ただし、サーバ版数はセッション開設要求に含まれる。このため、セッション制御部440は、AP通信部160から取得したセッション開設要求を参照して、サーバ版数を取得する。
[Step S181] The
[Step S182] The
[ステップS183]セッション制御部440は、APサーバ400に対して新規セッションを割り当てる。
[ステップS184]セッション制御部440は、版数記憶部110に記憶されたクラスタ版数テーブル111を参照してクラスタ版数を取得する。
[Step S183] The
[Step S184] The
[ステップS185]セッション制御部440は、クラスタ版数および新規セッションの割り当て内容を示す新規セッション情報を含むセッション開設応答を生成する。セッション制御部440は、生成したセッション開設応答をAP通信部160に出力する。
[Step S185] The
[ステップS186]AP通信部160は、セッション制御部440から取得したセッション開設応答をAPサーバ400に送信する。
このようにして、DBサーバ100はAPサーバ400に対して新規セッションの開設を行う。その際、APサーバ400から受信したサーバ版数に基づいて、セッション解放処理を実行することができる。
[Step S186] The
In this way, the
なお、ステップS185において、DBサーバ100はクラスタ版数をセッション開設応答に含めることとしたが、セッション開設応答とクラスタ版数とを別個に送信してもよい。例えば、AP通信部160がセッション開設応答をAPサーバ400に送信する際に、版数送受信部190がクラスタ版数をAPサーバ400に送信することとしてもよい。
In step S185, the
図35は、第3の実施の形態のDBレスポンス送信処理を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS191]AP通信部160は、APサーバ400からDBリクエストを受信する。AP通信部160は、受信したDBリクエストに含まれるサーバ版数をセッション制御部440に出力する。また、AP通信部160は、DBリクエストをDB処理部120に出力する。
FIG. 35 is a flowchart illustrating DB response transmission processing according to the third embodiment. In the following, the process illustrated in FIG. 35 will be described in order of step number.
[Step S191] The
[ステップS192]セッション制御部440は、サーバ版数に基づいて、セッション解放処理を実行する。セッション解放処理は、図30に示したステップS142以降の手順と同様である。
[Step S192] The
[ステップS193]DB処理部120は、セッション情報記憶部170に記憶されたセッション管理テーブル172を参照して、DBリクエストに含まれる指定セッションは適正であるか否かを判定する。適正である場合、処理をステップS194に進める。適正でない場合、処理をステップS198に進める。
[Step S193] The
[ステップS194]DB処理部120は、DBリクエストに応じたDB処理を実行する。
[ステップS195]DB処理部120は、版数記憶部110を参照してクラスタ版数を取得する。
[Step S194] The
[Step S195] The
[ステップS196]DB処理部120は、DB処理の実行結果に基づいて、クラスタ版数を含むDBレスポンスを生成する。
[ステップS197]DB処理部120は、生成したDBレスポンスをAP通信部160に出力する。AP通信部160は、取得したDBレスポンスをAPサーバ400に送信する。なお、このDBレスポンスは正常にDB処理がなされた際の応答であるので、正常応答である。
[Step S196] The
[Step S197] The
[ステップS198]DB処理部120は、版数記憶部110を参照してクラスタ版数を取得する。ここで、版数記憶部110に記憶されたクラスタ版数が所定の初期値(例えば、“−1”)を示している場合は、サービス監視部140は新たなクラスタ版数を版数記憶部110に設定する。この場合、DB処理部120は、サービス監視部140が設定したクラスタ版数を取得する。
[Step S198] The
[ステップS199]DB処理部120は、指定セッションが適正でない旨を示すセッション無効通知を生成する。DB処理部120は、セッション無効通知にクラスタ版数を含める。
[Step S199] The
[ステップS200]DB処理部120は、セッション無効通知をAP通信部160に出力する。AP通信部160は、セッション無効通知およびクラスタ版数をAPサーバ400に送信する。このレスポンスは、正常にDB処理がなされない場合の応答であるので、正常応答ではない。この場合、APサーバ400において図31のステップS154で正常応答と判定されない。
[Step S200] The
このように、DBサーバ100は第2の実施の形態のDBレスポンス送信処理の手順に加えて、APサーバ400から受信したサーバ版数に基づくセッション解放処理(ステップS192)を実行する。
As described above, the
これにより、DBサーバ100はAPサーバ400との通信のためにプールしていたセッションのうち、利用される可能性のないものの再利用を可能とする。
なお、ステップS196〜S200では、クラスタ版数を各種レスポンスに含めて生成し、送信するものとしたが、これらを別個にAPサーバ400に送信してもよい。例えば、AP通信部160がAPサーバ400に各種レスポンスを送信する際に、版数送受信部190がAPサーバ400にクラスタ版数を送信することとしてもよい。
As a result, the
In steps S196 to S200, the cluster version number is generated and transmitted in various responses, but may be separately transmitted to the
次に、業務処理システムにおける処理の流れの具体例を説明する。なお、以下の例でもDBクラスタ10およびAPサーバ400との間の処理のみを説明するが、DBクラスタ10とAPサーバ500,600およびDBクラスタ20,30とAPサーバ400,500,600との間の処理に関しても同様である。
Next, a specific example of the processing flow in the business processing system will be described. In the following example, only processing between the
以下の各図におけるステップの直前では、DBクラスタ10につきDBサーバ100が運用系、DBサーバ100aが待機系の状態であるとする。
図36は、第3の実施の形態のセッション解放処理を示す第1のシーケンス図である。以下、図36に示す処理をステップ番号に沿って説明する。
Immediately before the step in each of the following drawings, it is assumed that the
FIG. 36 is a first sequence diagram illustrating session release processing according to the third embodiment. In the following, the process illustrated in FIG. 36 will be described in order of step number.
[ステップST31]APサーバ400は、APサービスの停止を開始する。
[ステップST32]APサーバ400は、サーバ版数を更新する。APサーバ400は、DBクラスタ10へAPサービス停止開始通知およびサーバ版数を送信する。DBサーバ100は、APサーバ400からAPサービス停止開始通知およびサーバ版数を受信する。
[Step ST31] The
[Step ST32] The
[ステップST33]DBサーバ100は、セッション解放処理を実行する。DBサーバ100は、APサーバ400を“非運用中”とする。
[ステップST34]APサーバ400は、APサービスの起動を開始する。
[Step ST33] The
[Step ST34] The
[ステップST35]APサーバ400は、APサービスの起動を完了する。
[ステップST36]APサーバ400は、サーバ版数を更新する。APサーバ400は、DBクラスタ10へAPサービス起動完了通知およびサーバ版数を送信する。DBサーバ100は、APサーバ400からAPサービス起動完了通知およびサーバ版数を受信する。
[Step ST35] The
[Step ST36] The
[ステップST37]DBサーバ100は、セッション解放処理を実行する。DBサーバ100は、APサーバ400を“運用中”とする。
[ステップST38]DBサーバ100は、APサーバ400にクラスタ版数を送信する。APサーバ400は、DBサーバ100からクラスタ版数を受信する。
[Step ST37] The
[Step ST38] The
このように、APサーバ400はAPサービスの停止開始時および起動完了時にサーバ版数を更新してDBクラスタ10,20,30に送信する。そして、DBクラスタ10,20,30は、更新されたサーバ版数を受信した場合、APサーバ400に割り当てていたセッションを解放する。
As described above, the
このため、DBクラスタ側の現用系のDBサーバ(例えば、DBサーバ100)は、APサーバ400のAPサービス停止によって、APサーバ400に利用されることがなくなったセッションを確実に解放することができる。解放されたセッションは、何れのAPサーバおよび処理の要求先スレッドにも割り当てられていない未割当の状態となる。したがって、DBクラスタ10,20,30はAPサーバ400への無駄なセッションの割り当てを行うことがない。例えば、稼働中のAPサーバ500,600に対して、より多くのセッションを割り当てることも可能となる。すなわち、セッションを効率的に利用することができる。
For this reason, the active DB server on the DB cluster side (for example, the DB server 100) can reliably release a session that is no longer used by the
また、DBクラスタ10,20,30は、APサーバ400からAPサービス起動完了通知を受信すると、APサーバ400にクラスタ版数を送信する。APサーバ400はDBクラスタ10,20,30からクラスタ版数を受信することで、それらのDBクラスタが利用可能であると検知することができる。例えば、クラスタ版数の受信元のDBクラスタを“運用中”として管理できる。一方、クラスタ版数を受信できなかったDBクラスタを“非運用中”として管理できる。
Further, upon receiving the AP service activation completion notification from the
更に、APサーバ400はAPサービスの停止開始時だけでなく起動完了時にもサーバ版数を送信する。このため、APサーバ400で障害等により停止開始時にサーバ版数の送信ができなかった場合にも、DBクラスタ10,20,30に対して確実にセッションの解放を促すことができる。次に、そのような場合を例示する。
Further, the
図37は、第3の実施の形態のセッション解放処理を示す第2のシーケンス図である。以下、図37に示す処理をステップ番号に沿って説明する。
[ステップST41]APサーバ400は、障害によりAPサービスが利用不可となる。このとき、ネットワークが利用できずにサーバ版数の送信が行えないものとする。
FIG. 37 is a second sequence diagram illustrating session release processing according to the third embodiment. In the following, the process illustrated in FIG. 37 will be described in order of step number.
[Step ST41] The
[ステップST42]APサーバ400は、障害の復旧によりAPサービスの起動を開始する。
[ステップST43]APサーバ400は、APサービスの起動を完了する。
[Step ST42] The
[Step ST43] The
[ステップST44]APサーバ400は、クラスタ版数を更新する。APサーバ400は、DBクラスタ10へAPサービス起動完了通知およびサーバ版数を送信する。DBサーバ100は、APサーバ400からAPサービス起動完了通知およびサーバ版数を受信する。
[Step ST44] The
[ステップST45]DBサーバ100は、セッション解放処理を実行する。
[ステップST46]DBサーバ100は、APサーバ400にクラスタ版数を送信する。APサーバ400は、DBサーバ100からクラスタ版数を受信する。
[Step ST45] The
[Step ST46] The
このように、APサーバ400は、障害によってAPサービス停止時のサーバ版数をDBクラスタ10,20,30に送信できなかった場合にも、APサービス起動完了時にDBクラスタ10,20,30にサーバ版数を送信する。このため、DBクラスタ10,20,30に対して確実にセッションの解放を促すことができる。
As described above, even when the
第3の実施の形態の業務処理システムでは、DBクラスタ10,20,30側でもAPサーバ400,500,600のサーバ版数を管理することとした。
これにより、第2の実施の形態と同一の効果に加えて、DBクラスタ10,20,30側でもAPサーバ400,500,600の状態に応じてセッションの解放を適切に行うことができる。その結果、例えば空いたセッションを別のAPサーバに割り当てることができる。また、例えば、該当のセッションに割り当てていたメモリ等の資源を他の業務処理に利用することもできる。
In the business processing system of the third embodiment, the server versions of the
As a result, in addition to the same effects as those of the second embodiment, the
すなわち、DBクラスタ10,20,30の資源を効率的に利用することができるようになる。
なお、第2,3の実施の形態ではクラスタ版数およびサーバ版数としてタイムスタンプを用いることとしたがこれに限らない。
That is, the resources of the
In the second and third embodiments, the time stamp is used as the cluster version number and the server version number, but the present invention is not limited to this.
例えば、クラスタ切替時やサービスの起動・停止に伴って所定の数値(例えば、1)を加算するよう管理された数値を版数としてもよい。ただし、これをクラスタ版数とする場合には、現用系と待機系とのDBサーバでクラスタ版数の同期を行う。これにより、APサーバ側でDBクラスタ単位に一貫したクラスタ版数の管理を行うことができる。 For example, the version number may be a numerical value managed so as to add a predetermined numerical value (for example, 1) when the cluster is switched or when the service is started / stopped. However, when this is the cluster version number, the cluster version number is synchronized between the active and standby DB servers. As a result, the cluster version number can be managed consistently for each DB cluster on the AP server side.
以上、本発明の情報処理システム、情報処理装置、通信制御プログラムおよび通信制御方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。 The information processing system, information processing apparatus, communication control program, and communication control method of the present invention have been described above based on the illustrated embodiments. However, the present invention is not limited to these, and the configuration of each unit has the same function. It can be replaced with one having any structure. Moreover, other arbitrary structures and processes may be added. Further, any two or more configurations (features) of the above-described embodiments may be combined.
1、2 情報処理装置
1a 接続情報記憶部
1b サービス提供部
1c 監視部
1d 送信部
2a 接続情報記憶部
2b サービス提供部
2c 制御部
DESCRIPTION OF
Claims (13)
前記第1のサービス提供部の稼働状況を監視する監視部と、
前記監視部が前記第1のサービス提供部の起動完了を検知すると所定の制御情報を送信する送信部と、
を備える第1の情報処理装置と、
所定のリソースを介して前記第1のサービス提供部に前記処理要求を送信する第2のサービス提供部と、
前記リソースを定義した接続情報を記憶する接続情報記憶部と、
前記第1の情報処理装置から制御情報を受信すると、受信した制御情報に基づき前記接続情報記憶部に記憶された前記接続情報に含まれる前記リソースを無効とする制御部と、
を備える第2の情報処理装置と、
を有することを特徴とする情報処理システム。 A first service providing unit that executes processing according to the processing request;
A monitoring unit for monitoring the operating status of the first service providing unit;
A transmission unit that transmits predetermined control information when the monitoring unit detects completion of activation of the first service providing unit;
A first information processing apparatus comprising:
A second service providing unit that transmits the processing request to the first service providing unit via a predetermined resource;
A connection information storage unit for storing connection information defining the resource;
When receiving control information from the first information processing apparatus, a control unit that invalidates the resource included in the connection information stored in the connection information storage unit based on the received control information;
A second information processing apparatus comprising:
An information processing system comprising:
前記送信部は、前記監視部が更新した前記第1の版数を制御情報に含めて前記第2の情報処理装置に送信し、
前記接続情報記憶部は、前記リソースに対応付けて当該リソースが割り当てられた時点を示す所定の第2の版数を記憶し、
前記制御部は、前記第1の情報処理装置から受信した制御情報に含まれる前記第1の版数が前記第2の版数と異なる場合に前記リソースを無効とする、
ことを特徴とする請求項1記載の情報処理システム。 The monitoring unit updates the predetermined first version number stored in the first version number storage unit when detecting the completion of activation of the first service providing unit,
The transmission unit includes the first version number updated by the monitoring unit in control information and transmits the control information to the second information processing apparatus,
The connection information storage unit stores a predetermined second version number indicating the time when the resource is allocated in association with the resource,
The control unit invalidates the resource when the first version number included in the control information received from the first information processing apparatus is different from the second version number;
The information processing system according to claim 1.
ことを特徴とする請求項2記載の情報処理システム。 The transmitting unit is configured to store the first version number stored in the first version number storage unit when the first service providing unit transmits a response to the processing request to the second service providing unit. Send control information including
The information processing system according to claim 2.
前記冗長サービス提供部の稼働状況を監視する冗長監視部と、
前記冗長監視部が前記冗長サービス提供部の停止を検知すると所定の制御情報を送信する冗長送信部と、
を備える第3の情報処理装置を更に有し、
前記第1のサービス提供部は、前記冗長サービス提供部が停止すると起動を開始する、
ことを特徴とする請求項2または3の何れか一項に記載の情報処理システム。 The processing request received from the second service providing unit is in a stopped state when the first service providing unit is in an active state, and is in an active state when the first service providing unit is in a stopped state. A redundant service providing unit that replaces the processing of the first service providing unit according to
A redundancy monitoring unit for monitoring the operating status of the redundant service providing unit;
A redundant transmitter that transmits predetermined control information when the redundancy monitoring unit detects a stop of the redundant service providing unit;
A third information processing apparatus comprising:
The first service providing unit starts when the redundant service providing unit stops,
The information processing system according to any one of claims 2 and 3.
前記冗長送信部は、前記冗長監視部が更新した前記第3の版数を制御情報に含めて前記第2の情報処理装置に送信し、
前記制御部は、前記第3の情報処理装置から受信した制御情報に含まれる前記第3の版数が前記第2の版数と異なる場合に前記リソースを無効とする、
ことを特徴とする請求項4記載の情報処理システム。 The redundancy monitoring unit updates the predetermined third version number stored in the third version number storage unit when detecting the stop of the redundancy service providing unit,
The redundant transmission unit includes the third version number updated by the redundancy monitoring unit in control information and transmits the control information to the second information processing device,
The control unit invalidates the resource when the third version number included in the control information received from the third information processing apparatus is different from the second version number;
The information processing system according to claim 4.
前記第2のサービス提供部からの割当要求に応じて前記リソースの割り当てを行い、前記リソースの割り当てを管理するためのリソース管理情報を生成するリソース制御部と、
前記リソース管理情報を記憶するリソース情報記憶部と、
を更に有し、
前記第2の情報処理装置は、
前記第2のサービス提供部の稼働状態を監視するサービス監視部と、
前記サービス監視部が前記第2のサービス提供部の停止および起動を検知すると所定の通知情報を送信する通知情報送信部と、
を更に有し、
前記リソース制御部は、前記第2の情報処理装置から受信した前記通知情報に基づき前記リソース情報記憶部に記憶された前記リソース管理情報に含まれる前記リソースのうち、前記第2のサービス提供部に割り当てたリソースを解放する、
ことを特徴とする請求項1乃至5の何れか一項に記載の情報処理システム。 The first information processing apparatus includes:
A resource control unit that allocates the resource in response to an allocation request from the second service providing unit and generates resource management information for managing the resource allocation;
A resource information storage unit for storing the resource management information;
Further comprising
The second information processing apparatus
A service monitoring unit for monitoring an operating state of the second service providing unit;
A notification information transmitting unit that transmits predetermined notification information when the service monitoring unit detects stop and activation of the second service providing unit;
Further comprising
The resource control unit includes the second service providing unit out of the resources included in the resource management information stored in the resource information storage unit based on the notification information received from the second information processing apparatus. Free allocated resources,
The information processing system according to claim 1, wherein the information processing system is an information processing system.
前記通知情報送信部は、前記サービス監視部が更新した前記第4の版数を前記通知情報に含めて前記第1の情報処理装置に送信し、
前記リソース情報記憶部は、前記第2のサービス提供部により前記割当要求が送信された時点を示す所定の第5の版数を前記リソースに対応付けて記憶し、
前記リソース制御部は、前記第2の情報処理装置から受信した前記通知情報に含まれる前記第4の版数が前記第5の版数と異なる場合に前記第2のサービス提供部に割り当てたリソースを解放する、
ことを特徴とする請求項6記載の情報処理システム。 When the service monitoring unit detects the stop and activation of the second service providing unit, the service monitoring unit updates a predetermined fourth version number stored in a fourth version number storage unit,
The notification information transmission unit includes the fourth version number updated by the service monitoring unit in the notification information and transmits the notification to the first information processing apparatus,
The resource information storage unit stores a predetermined fifth version number indicating the time when the allocation request is transmitted by the second service providing unit in association with the resource,
The resource control unit allocates the resource to the second service providing unit when the fourth version number included in the notification information received from the second information processing apparatus is different from the fifth version number. Release,
The information processing system according to claim 6.
前記監視部が前記第1のサービス提供部の起動完了を検知すると、第2のサービス提供部を備える相手装置に、前記第2のサービス提供部が前記第1のサービス提供部に処理要求を送信するために用いるリソースを定義した接続情報を記憶する接続情報記憶部に記憶された前記接続情報に含まれる前記リソースの無効化を促す制御情報を送信する送信部と、
を有することを特徴とする情報処理装置。 A monitoring unit for monitoring the operating status of the first service providing unit;
When the monitoring unit detects completion of activation of the first service providing unit, the second service providing unit transmits a processing request to the first service providing unit to a partner apparatus including the second service providing unit. A transmission unit that transmits control information that prompts invalidation of the resource included in the connection information stored in the connection information storage unit that stores connection information that defines resources used to
An information processing apparatus comprising:
前記第2のサービス提供部の起動完了が前記相手装置側で検知された際に、前記相手装置から送信される所定の制御情報を受信すると、受信した制御情報に基づき前記接続情報記憶部に記憶された前記接続情報に含まれる前記リソースを無効とする制御部と、
を有することを特徴とする情報処理装置。 A connection information storage unit for storing connection information defining resources used for the first service providing unit to transmit a processing request to the second service providing unit of the counterpart device;
When completion of activation of the second service providing unit is detected on the partner device side, when predetermined control information transmitted from the partner device is received, it is stored in the connection information storage unit based on the received control information A control unit that invalidates the resource included in the connection information
An information processing apparatus comprising:
第1のサービス提供手段の稼働状況を監視する監視手段、
前記監視手段が前記第1のサービス提供手段の起動完了を検知すると、第2のサービス提供手段を備える情報処理装置に、前記第2のサービス提供手段が前記第1のサービス提供手段に処理要求を送信するために用いるリソースを定義した接続情報を記憶する接続情報記憶手段に記憶された前記接続情報に含まれる前記リソースの無効化を促す制御情報を送信する送信手段、
として機能させることを特徴とする通信制御プログラム。 Computer
Monitoring means for monitoring the operating status of the first service providing means;
When the monitoring unit detects completion of activation of the first service providing unit, the second service providing unit sends a processing request to the first service providing unit to the information processing apparatus including the second service providing unit. A transmission means for transmitting control information for prompting invalidation of the resource included in the connection information stored in the connection information storage means for storing connection information defining resources used for transmission;
A communication control program characterized by causing it to function as
第1のサービス提供手段により情報処理装置が備える第2のサービス提供手段に処理要求を送信するために用いられるリソースを定義した接続情報を記憶する接続情報記憶手段、
前記第2のサービス提供手段の起動完了が前記情報処理装置側で検知された際に、前記情報処理装置から送信される所定の制御情報を受信すると、受信した制御情報に基づき前記接続情報記憶手段に記憶された前記接続情報に含まれる前記リソースを無効とする制御手段、
として機能させることを特徴とする通信制御プログラム。 Computer
Connection information storing means for storing connection information defining resources used for transmitting a processing request to a second service providing means provided in the information processing apparatus by the first service providing means;
When the predetermined completion of control information transmitted from the information processing device is received when completion of activation of the second service providing unit is detected on the information processing device side, the connection information storage unit based on the received control information Control means for invalidating the resource included in the connection information stored in
A communication control program characterized by causing it to function as
第1の情報処理装置が、処理要求に応じた処理を実行する第1のサービス提供部の稼働情報を監視し、前記第1のサービス提供部の起動完了を検知すると所定の制御情報を送信し、
第2の情報処理装置が、前記第1の情報処理装置から制御情報を受信すると、第2のサービス提供部が前記第1のサービス提供部に前記処理要求を送信するために用いる所定のリソースを定義した接続情報を記憶する接続情報記憶部に記憶された前記接続情報に含まれる前記リソースを無効とする、
ことを特徴とする通信制御方法。 A communication control method for an information processing system,
The first information processing apparatus monitors the operation information of the first service providing unit that executes processing according to the processing request, and transmits predetermined control information when detecting the completion of activation of the first service providing unit. ,
When the second information processing apparatus receives control information from the first information processing apparatus, a second resource providing unit uses a predetermined resource used for transmitting the processing request to the first service providing unit. Invalidating the resource included in the connection information stored in the connection information storage unit that stores the defined connection information;
A communication control method characterized by the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010018699A JP5231461B2 (en) | 2010-01-29 | 2010-01-29 | Information processing system, information processing apparatus, communication control program, and communication control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010018699A JP5231461B2 (en) | 2010-01-29 | 2010-01-29 | Information processing system, information processing apparatus, communication control program, and communication control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011159014A true JP2011159014A (en) | 2011-08-18 |
JP5231461B2 JP5231461B2 (en) | 2013-07-10 |
Family
ID=44590934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010018699A Expired - Fee Related JP5231461B2 (en) | 2010-01-29 | 2010-01-29 | Information processing system, information processing apparatus, communication control program, and communication control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5231461B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211744A (en) * | 2013-04-18 | 2014-11-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Device and method for distributing request of processing |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001092781A (en) * | 1999-09-27 | 2001-04-06 | Fujitsu Ltd | Automatic restoration system of user session |
JP2001236280A (en) * | 2000-02-24 | 2001-08-31 | Nec Software Chubu Ltd | Re-connection system from terminal to host computer |
JP2005100344A (en) * | 2003-08-18 | 2005-04-14 | Ricoh Co Ltd | Information processor, session restoration method, session restoration program, and recording medium |
JP2005135125A (en) * | 2003-10-30 | 2005-05-26 | Hitachi Ltd | Fail-over processing method |
JP2007141129A (en) * | 2005-11-22 | 2007-06-07 | Hitachi Ltd | System switching method, computer system and program |
JP2007249659A (en) * | 2006-03-16 | 2007-09-27 | Hitachi Ltd | System-switching method, computer system therefor, and program |
-
2010
- 2010-01-29 JP JP2010018699A patent/JP5231461B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001092781A (en) * | 1999-09-27 | 2001-04-06 | Fujitsu Ltd | Automatic restoration system of user session |
JP2001236280A (en) * | 2000-02-24 | 2001-08-31 | Nec Software Chubu Ltd | Re-connection system from terminal to host computer |
JP2005100344A (en) * | 2003-08-18 | 2005-04-14 | Ricoh Co Ltd | Information processor, session restoration method, session restoration program, and recording medium |
JP2005135125A (en) * | 2003-10-30 | 2005-05-26 | Hitachi Ltd | Fail-over processing method |
JP2007141129A (en) * | 2005-11-22 | 2007-06-07 | Hitachi Ltd | System switching method, computer system and program |
JP2007249659A (en) * | 2006-03-16 | 2007-09-27 | Hitachi Ltd | System-switching method, computer system therefor, and program |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211744A (en) * | 2013-04-18 | 2014-11-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Device and method for distributing request of processing |
Also Published As
Publication number | Publication date |
---|---|
JP5231461B2 (en) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5412882B2 (en) | Logical volume configuration information providing program, logical volume configuration information providing method, and logical volume configuration information providing apparatus | |
US10712975B2 (en) | Cluster configuration information replication | |
JP5902716B2 (en) | Large-scale storage system | |
JP4799419B2 (en) | Setting program, setting method, and setting device | |
US8499191B2 (en) | Failure recovery method for information processing service and virtual machine image generation apparatus | |
EP2909723B1 (en) | Smart error recovery for database applications | |
US8621054B2 (en) | Computer-readable recording medium storing software update command program, software update command method, and information processing device | |
US8285824B2 (en) | Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized | |
JPWO2008126325A1 (en) | Cluster system, software update method, service providing node, and service providing program | |
US20190229978A1 (en) | Designation of a standby node | |
JP2011128917A (en) | Data allocation control program, data allocation control method, and data allocation control apparatus | |
JP5218284B2 (en) | Virtual disk management program, storage device management program, multi-node storage system, and virtual disk management method | |
US8312454B2 (en) | System administration method and apparatus | |
JP2009140153A (en) | Storage management device, storage system control device, storage management program, and storage system | |
FR2856492A1 (en) | MEMORY DEVICE WHICH IS CONNECTED TO AN EXTERNAL MEMORY | |
JP6215481B2 (en) | Method and apparatus for IT infrastructure management in cloud environment | |
JP2007226398A (en) | Database connection management method and computer system | |
US8266301B2 (en) | Deployment of asynchronous agentless agent functionality in clustered environments | |
JP6388290B2 (en) | Method and system for handling lock server failures in distributed systems | |
JP2009032014A (en) | Storage system and method for managing the same | |
KR101211207B1 (en) | Cache system and caching service providing method using structure of cache cloud | |
US20120198190A1 (en) | Making automated use of data volume copy service targets | |
CN107466456A (en) | The processing method and server of locking request | |
JP2004341994A (en) | Program, information processor, and method for controlling information processor | |
WO2022151593A1 (en) | Data recovery method, apapratus and device, medium and program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130225 |
|
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: 20130312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130321 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160329 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5231461 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |