JPH0895874A - Remote procedure call processing method - Google Patents

Remote procedure call processing method

Info

Publication number
JPH0895874A
JPH0895874A JP6251283A JP25128394A JPH0895874A JP H0895874 A JPH0895874 A JP H0895874A JP 6251283 A JP6251283 A JP 6251283A JP 25128394 A JP25128394 A JP 25128394A JP H0895874 A JPH0895874 A JP H0895874A
Authority
JP
Japan
Prior art keywords
server
procedure call
remote procedure
rpc
transaction
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.)
Pending
Application number
JP6251283A
Other languages
Japanese (ja)
Inventor
Shinji Fujiwara
真二 藤原
Mitsuru Nagasaka
充 長坂
Kiyohiro Obara
清弘 小原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6251283A priority Critical patent/JPH0895874A/en
Publication of JPH0895874A publication Critical patent/JPH0895874A/en
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

PURPOSE: To make remote procedure calls(RPC) from plural processes belonging to the same transaction, to the same server with the same server process. CONSTITUTION: Respective servers have schedule queues 6-8 of RPCs to plural service processes, an extension chain table 10 which manages a connection state, and an extension chain queue 9 which accepts RPC requests from processes belonging to the same transaction. On the client side, queuing in the schedule queues 6-8 in the case where the transaction, to which its process belongs, is not connected to an opposite server or in the extension chain queue 9 in the case where a connection is waited, is performed, and when the connection is already made, direct transmission through a socket is performed. On the server side, requests are taken out of the schedule queues 6-8 firstly and then a request is taken out of the extension chain queue 9, and then, a request sent through the socket is taken out lastly to execute the RPCs from plural processes belonging to the same transaction with the same server process.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、計算機システムにおけ
る遠隔手続き呼び出しを行うためのリモートプロシジャ
処理方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a remote procedure processing method for making a remote procedure call in a computer system.

【0002】[0002]

【従来の技術】並列計算機技術の進歩に伴い、一つの処
理を複数の計算機で実行する並列処理方法が重要となっ
てきている。並列処理方式の一つの方法として、遠隔手
続き呼び出し(リモートプロシジャコール、以下RPC と
呼ぶ)が、提案されている。
2. Description of the Related Art With the progress of parallel computer technology, a parallel processing method for executing one process by a plurality of computers has become important. Remote procedure call (remote procedure call, hereinafter called RPC) has been proposed as one of parallel processing methods.

【0003】RPC については、篠田洋一訳:「UNIXネッ
トワークプログラミング」、凸版、1993, pp809-842.
(原著;W.Richard: "UNIX NETWORK PROGRAMING", Prin
ce Hall, 1990.)に詳しく述べられている。
Regarding RPC, translated by Yoichi Shinoda: "UNIX Network Programming", Toppan, 1993, pp809-842.
(Original work; W. Richard: "UNIX NETWORK PROGRAMING", Prin
ce Hall, 1990.).

【0004】RPC とは、2つのプロセス間にまたがる手
続き呼び出しのことであり、自プロセスから他プロセス
の手続きを呼び出すことである。呼び出す側の自プロセ
スのことをクライアント(又はクライアントプロセ
ス)、呼び出される他プロセスのことをサーバ(又はサ
ーバプロセス)と呼ぶ。サーバプロセスは、クライアン
トプロセスと同一のシステム上(ローカルホストと呼
ぶ)にある場合もあるし、他のシステム上(リモートホ
ストと呼ぶ)にある場合もある。
RPC is a procedure call extending between two processes, and is a procedure call of another process from its own process. The calling process is called the client (or client process), and the called other process is called the server (or server process). The server process may be on the same system as the client process (called the local host) or on another system (called the remote host).

【0005】クライアントからサーバに対するRPC の処
理手順は、以下のようなものである。まず、クライアン
トの関数から、クライアントスタブと呼ばれるローカル
関数を呼び出す。クライアントスタブは、サーバで実行
すべきプロシジャ名および引き数等を1つのメッセージ
として纏める。このメッセージをRPC 電文と呼ぶ。次
に、クライアントスタブは、OSのシステムコールを発行
して、上記RPC 電文をサーバプロセスのサーバスタブに
対して送信する。サーバプロセスのサーバスタブでは、
受信したRPC 電文を解読して、実行すべき関数および引
き数等を取得し、指定された関数を実行する。関数の戻
り値はサーバスタブに渡され、そこで一つのメッセージ
として纏められる。このメッセージを応答電文と呼ぶ。
サーバスタブは、クライアントスタブに対してOSのシス
テムコールを発行して応答電文を送信する。クライアン
トスタブでは、受信した応答電文を解読し、RPC を呼び
出したクライアントに対して関数の戻り値をリターンす
る。
The RPC processing procedure from the client to the server is as follows. First, a local function called a client stub is called from the client function. The client stub collects a procedure name, arguments, etc. to be executed by the server as one message. This message is called an RPC message. Next, the client stub issues an OS system call to send the RPC message to the server stub of the server process. In the server stub of the server process,
It decodes the received RPC message, acquires the function to be executed, the arguments, etc., and executes the specified function. The return value of the function is passed to the server stub, where it is put together as one message. This message is called a response message.
The server stub issues an OS system call to the client stub and sends a response message. The client stub decodes the received response message and returns the return value of the function to the client that called the RPC.

【0006】以上の手続きにおいては、クライアントが
RPC を実行すべきサーバプロセスと接続する手段が重要
となる。クライアントとサーバを接続するためには、相
手サーバの存在するリモートホストを見つける手段と、
該リモートホスト内において接続すべきサーバプロセス
を特定する手段が必要となる。
In the above procedure, the client
The means to connect to the server process that should execute RPC is important. In order to connect the client and server, a means to find the remote host where the other server exists,
A means for specifying the server process to be connected in the remote host is required.

【0007】相手サーバの存在するリモートホストを見
つける手段としては、集中型のデータベースを用いる手
段や、サーバ登録時にサーバの情報を他のホストにブロ
ードキャストする手段等が用いられる。リモートホスト
内において接続すべきサーバプロセスを特定する手段と
しては、サービス要求を振り分けるためのサーバデーモ
ンをサーバが存在するホストにあらかじめ用意してお
き、クライアントからのRPC 電文を該サーバデーモンに
一度送信し、その後、RPC 受付可能状態にあるサーバプ
ロセスに振り分けるといった手段等が用いられる。
As means for finding the remote host where the partner server exists, means for using a centralized database, means for broadcasting server information to other hosts at the time of server registration, etc. are used. To identify the server process to connect to in the remote host, prepare a server daemon for distributing service requests in the host where the server exists, and send the RPC message from the client to the server daemon once. After that, a method such as allocating to the server process in the RPC receivable state is used.

【0008】RPC の実現方法には種々の方法があるが、
本発明では、各サーバ毎に同一のサービス機能を提供す
る複数のサーバプロセスが存在し、各サーバに対するRP
C 電文をスケジュールキュー経由でサーバに送信するク
ライアント・サーバモデルを扱う。本モデルでは、クラ
イアントからサーバに対して送信されるRPC 電文は、各
サーバ毎に用意されたスケジュールキューにキューイン
グされ、該キューングされた要求がサーバプロセスによ
り順次取り出されて実行される。
There are various methods for realizing RPC,
In the present invention, each server has a plurality of server processes that provide the same service function, and the RP for each server
Handles the client / server model that sends C messages to the server via the schedule queue. In this model, the RPC message sent from the client to the server is queued in the schedule queue prepared for each server, and the queued requests are sequentially fetched and executed by the server process.

【0009】上記クライアント・サーバモデルにおける
RPC の実行モードとしては、同期型非チェインドRPC 、
同期型チェインドRPC 、非同期型非チェインドRPC 、お
よび非同期型チェインドRPC がある。
In the above client / server model
RPC execution modes include synchronous non-chained RPC,
There are synchronous chained RPCs, asynchronous non-chained RPCs, and asynchronous chained RPCs.

【0010】同期/非同期の違いを述べる。同期型は、
RPC の応答電文をサーバから受信するまでクライアント
がブロックされる。非同期型は、RPC の応答電文の受信
を待たずにクライアントの処理を続行する。非同期型RP
C の応答電文は、非同期型RPC 応答受信処理関数を発行
することにより受信される。
The difference between synchronous / asynchronous will be described. The synchronous type is
The client is blocked until the RPC response message is received from the server. Asynchronous type continues client processing without waiting for reception of RPC response message. Asynchronous RP
The C response message is received by issuing the asynchronous RPC response reception processing function.

【0011】また、チェイン/非チェインの違いは、ク
ライアントとサーバとの接続を切断するかしないかの点
にある。チェインドRPC では、当該サーバとの接続を継
続し、次回のRPC 電文をスケジュールキューにキューイ
ングせずに、直接当該サーバプロセスに送信する。従っ
て、同一のサーバプロセスに複数のRPC を実行させるこ
とが可能である。一方、非チェインドRPC は、実行終了
時に当該サーバとの接続を切断する。非チェインドRPC
を実行すると、次回のRPC 電文はスケジュールキューに
キューイングされるため、前回と同一のサーバプロセス
でRPC が実行されるとは限らない。
The difference between chain and non-chain is whether or not the connection between the client and the server is disconnected. Chained RPC continues the connection with the server and sends the next RPC message directly to the server process without queuing in the schedule queue. Therefore, the same server process can execute multiple RPCs. On the other hand, the non-chained RPC disconnects the connection with the server at the end of execution. Non-chained RPC
Is executed, the next RPC message is queued in the schedule queue, so RPC may not always be executed by the same server process as the last time.

【0012】クライアントとサーバの接続関係の継続を
可能にするチェインドRPC の公知例としては、XeroxのC
ourirシステム(商品名)がある(前記公知文献参
照)。Courirシステムでは、RPC を発行する前に、オー
プン関数を呼び出してクライアントとサーバの間の接続
を確立し、その後、RPC を複数回実行する。各RPC の実
行において、クライアントとサーバとの接続関係は切断
しない。クライアントとサーバの接続関係の切断は、ク
ローズ関数を発行することにより実行される。このよう
にすることで、1つのプロセスからの複数のRPC を同一
のサーバプロセスで実行することが可能となる。
A known example of a chained RPC that enables the connection relationship between a client and a server to be continued is Xerox C.
There is ourir system (trade name) (see the above-mentioned publicly known document). The Courir system calls the open function to establish the connection between the client and server before issuing the RPC, and then executes the RPC multiple times. The connection between the client and server is not broken during each RPC execution. The disconnection of the connection between the client and the server is executed by issuing the close function. By doing so, it becomes possible to execute multiple RPCs from one process in the same server process.

【0013】[0013]

【発明が解決しようとする課題】前記チェインドRPC で
は、1つのプロセスから発行される複数のRPC を同一サ
ーバプロセスに実行させることが可能である。しかしな
がら、一連の処理を複数のプロセスで実行している場合
(例えば、並列計算機による並列処理)、該複数のプロ
セスから発生する同一サーバへのRPC を同一サーバプロ
セスで実行させることはできなかった。
In the chained RPC, it is possible to cause a single server process to execute a plurality of RPCs issued from one process. However, when a series of processes is executed by a plurality of processes (for example, parallel processing by a parallel computer), RPC to the same server generated from the plurality of processes cannot be executed by the same server process.

【0014】一連の処理の中で、複数のプロセスから同
一サーバプロセスに対してRPC が発行される例として、
データベースのトランザクション処理がある。複数のデ
ータベースを同時にアクセスするようなトランザクショ
ン処理においては、クライアントプロセスは、複数のデ
ータベースサーバに対してRPC を発行して処理を実行す
る。一つのデータベースサーバからは、入出力サーバの
ように各データベースサーバに共通なサーバに対してRP
C を発行して処理を実行する。そのため、一つのトラン
ザクション処理を実行するときに、複数のサーバプロセ
スを経由して一つのサーバに対してそれぞれRPC が発行
されることが起きる。
As an example in which RPCs are issued from a plurality of processes to the same server process in a series of processes,
There is database transaction processing. In transaction processing in which multiple databases are accessed simultaneously, the client process issues RPCs to multiple database servers and executes the processing. From one database server to RP which is common to each database server
Issue C to execute the process. Therefore, when executing one transaction process, RPCs are issued to one server via multiple server processes.

【0015】図2は、従来方式における上記処理の流れ
を説明する図である。図において、左上肩に小さい四角
が付けられている矩形1〜5はプロセスを示し、矩形6
〜8はスケジュールキューであるFIFO(First-In First
-Out)キューを示す。また、プロセス内に記述されてい
るT01 の記号は、一連の処理であることを示すグローバ
ルトランザクション識別子(以下、GTIDと呼ぶ)を示し
ている。
FIG. 2 is a diagram for explaining the flow of the above processing in the conventional method. In the figure, rectangles 1 to 5 each having a small square on the upper left shoulder indicate a process, and a rectangle 6
8 is a schedule queue FIFO (First-In First
-Out) Indicates a cue. The symbol T01 described in the process indicates a global transaction identifier (hereinafter, referred to as GTID) indicating a series of processes.

【0016】まず、親プロセス(1)から発行されたサ
ーバAに対するRPC 電文は、サーバAスケジュールキュ
ー6にキューイングされ(21)、サーバAプロセス群
40に属する子プロセスa(2)により取り出される
(22)。そして、親プロセス(1)と子プロセスa
(2)間に接続関係が確立し、処理が実行される。子プ
ロセスaの実行途中で発行されるサーバCに対するRPC
電文は、サーバCのスケジュールキュー8にキューイン
グされ(23)、サーバCプロセス群42に属する孫プ
ロセスc1(4)に取り出される(24)。そして、孫
プロセスc1(4)と子プロセスa(2)間に接続関係
が確立し、処理が実行される。
First, the RPC message sent from the parent process (1) to the server A is queued in the server A schedule queue 6 (21) and taken out by the child process a (2) belonging to the server A process group 40. (22). Then, the parent process (1) and the child process a
A connection relationship is established between (2) and the process is executed. RPC for server C issued during execution of child process a
The electronic message is queued in the schedule queue 8 of the server C (23) and taken out by the grandchild process c1 (4) belonging to the server C process group 42 (24). Then, the connection relationship is established between the grandchild process c1 (4) and the child process a (2), and the processing is executed.

【0017】一方、親プロセス(1)から発行されるサ
ーバBに対するRPC も同様に処理され、サーバBスケジ
ュールキュー7を経由して子プロセスb(3)に取り出
されて実行される(25,26)。
On the other hand, the RPC issued from the parent process (1) to the server B is also processed in the same manner, taken out by the child process b (3) via the server B schedule queue 7 and executed (25, 26). ).

【0018】ここで、子プロセスbからサーバCに対し
てRPC が発行されたとする。このとき、子プロセスbと
接続関係にあるサーバCのプロセスは存在しない。そこ
で、子プロセスbからサーバCに対するRPC 電文は、サ
ーバCスケジュールキュー8にキューイングされる(2
7)。サーバCプロセス群の中では、孫プロセスc1が
サーバAと接続中であるため、子プロセスbがキューイ
ングした要求は、別のプロセスである孫プロセスc2
(5)により取り出される(28)。
Here, it is assumed that RPC is issued from the child process b to the server C. At this time, there is no process of the server C having a connection relationship with the child process b. Therefore, the RPC message from the child process b to the server C is queued in the server C schedule queue 8 (2
7). In the server C process group, the grandchild process c1 is connected to the server A, so the request queued by the child process b is another process, the grandchild process c2.
It is taken out (28) by (5).

【0019】以上示したように、GTIDがT01 である一連
の処理は、プロセス1〜プロセス5により実行され、サ
ーバCに対する異なるプロセス(2および3)からのRP
C は、別々のプロセス(4および5)で実行されること
が分かる。このため、一連の処理内容が前述したような
トランザクション処理であった場合には、サーバCのそ
れぞれの孫プロセス(4および5)においてトランザク
ション開始処理およびトランザクション終了処理を行な
わなければならず、このことがデータベース処理の効率
を悪化させる一つの要因となっている。また、一つのト
ランザクションがが占有するプロセス数(プロセス資
源)が大きくなるという問題もある。
As shown above, the series of processes whose GTID is T01 are executed by process 1 to process 5, and the RP from different processes (2 and 3) to server C is executed.
It can be seen that C runs in separate processes (4 and 5). Therefore, when the series of processing contents is the transaction processing as described above, the transaction start processing and the transaction end processing must be performed in the respective grandchild processes (4 and 5) of the server C. Is one of the factors that deteriorate the efficiency of database processing. There is also a problem that the number of processes (process resources) occupied by one transaction increases.

【0020】本発明の目的は、一つのトランザクション
処理を実行する複数のプロセスから発行された同一サー
バに対するRPC を同一のサーバプロセスで実行するリモ
ートプロシジャコール処理方法を提供することにある。
An object of the present invention is to provide a remote procedure call processing method for executing RPC for the same server issued by a plurality of processes executing one transaction process in the same server process.

【0021】本発明の他の目的は、上記RPC がRPC の応
答電文の受信を待たずに処理を継続する非同期型RPC で
あった場合においても、複数のプロセスから発行された
同一サーバに対するRPC を同一のサーバプロセスで実行
するリモートプロシジャコール処理方法を提供すること
にある。
Another object of the present invention is to provide an RPC for the same server issued by a plurality of processes even when the RPC is an asynchronous RPC that continues processing without waiting for reception of a response message from the RPC. It is to provide a remote procedure call processing method that is executed in the same server process.

【0022】[0022]

【課題を解決するための手段】本発明は、クライアント
プロセスから自ホスト上または他ホスト上に存在するサ
ーバの手続きを呼び出すリモートプロシジャコールであ
って、前記サーバは同一のサービスを提供する複数のサ
ーバプロセスで構成され、前記クライアントプロセスか
ら発行されるリモートプロシジャコールは前記複数のサ
ーバプロセスの任意の一つにより処理されるリモートプ
ロシジャコールの処理方法において、トランザクション
管理されている複数のクライアントプロセスが存在し、
各クライアントプロセスは管理されているトランザクシ
ョンを特定するグローバルトランザクション識別子を有
する場合に、同一のトランザクションに管理されている
複数のクライアントプロセスのうちの任意の一つから前
記サーバに最初にリモートプロシジャコールを発行する
第1のステップと、該リモートプロシジャコールを受け
付けた前記サーバにおいて、該リモートプロシジャコー
ルを一つのサーバプロセスに割当てて該サーバプロセス
と前記クライアントプロセスとを接続するとともに、該
接続したクライアントプロセスのグローバルトランザク
ション識別子と該接続に係る接続情報とを拡張チェイン
テーブル上に格納する第2のステップと、前記トランザ
クション管理下の複数のクライアントプロセスのうちの
任意の一つから前記サーバに次にリモートプロシジャコ
ールを発行するとき、該クライアントプロセスは、前記
拡張チェインテーブルを参照して、同一のトランザクシ
ョン管理下の別のクライアントプロセスと接続されてい
るサーバプロセスの接続情報を得、該サーバプロセスに
向けてリモートプロシジャコールを発行する第3のステ
ップとを備え、これにより、同一トランザクションの複
数のクライアントプロセス間で一つのサーバプロセスを
共有することを特徴とする。
The present invention is a remote procedure call for calling a procedure of a server existing on its own host or on another host from a client process, wherein the server is a plurality of servers providing the same service. In the remote procedure call processing method, there are a plurality of client processes that are transaction-managed, and the remote procedure call is composed of processes and is issued by the client process is processed by any one of the plurality of server processes. ,
If each client process has a global transaction identifier that identifies the transaction being managed, first issue a remote procedure call to the server from any one of multiple client processes managed by the same transaction. And a step of assigning the remote procedure call to one server process to connect the server process and the client process, and connecting the server process to the global of the connected client process. A second step of storing a transaction identifier and connection information related to the connection in an extended chain table, and from any one of a plurality of client processes under the transaction control. When issuing a remote procedure call to the server next time, the client process refers to the extended chain table to obtain connection information of the server process connected to another client process under the same transaction management, And a third step of issuing a remote procedure call to the server process, thereby sharing one server process among a plurality of client processes of the same transaction.

【0023】各サーバ毎に、前記クライアントプロセス
からの最初のリモートプロシジャコールの実行要求を受
け付けるスケジュールキューを設け、前記第1のステッ
プにおけるリモートプロシジャコールの発行は、前記リ
モートプロシジャコールの電文を前記スケジュールキュ
ーにキューイングすることにより行なうとよい。
A schedule queue for receiving an execution request of the first remote procedure call from the client process is provided for each server, and the issuance of the remote procedure call in the first step is performed by sending a message of the remote procedure call to the schedule. This can be done by queuing in a queue.

【0024】また、各サーバ毎に、各トランザクション
と当該サーバとのリモートプロシジャコールの実行関係
を格納する前記拡張チェインテーブルおよび拡張チェイ
ンキューを設け、前記拡張チェインテーブルは、前記グ
ローバルトランザクション識別子と、前記グローバルト
ランザクション識別子のトランザクションと当該サーバ
との接続状態を示す拡張チェイン状態と、接続中のサー
バプロセスのハンドル情報と、拡張チェインキューに関
する情報とを格納するテーブルであり、前記第2のステ
ップでは、前記拡張チェインテーブルに、前記グローバ
ルトランザクション識別子と、前記接続したサーバプロ
セスのハンドル情報とを格納し、前記第3のステップで
は、当該サーバの拡張チェインキューに前記リモートプ
ロシジャコールの電文をキューイングすることにより、
同一のトランザクション管理下の別のクライアントプロ
セスと既に接続されているサーバプロセスに向けてリモ
ートプロシジャコールを発行するようにするとよい。
Further, for each server, the extended chain table and the extended chain queue that store the execution relation of each transaction and the remote procedure call with the server are provided, and the extended chain table includes the global transaction identifier and the global transaction identifier. It is a table that stores a transaction of a global transaction identifier and an extended chain state indicating a connection state with the server, handle information of a server process being connected, and information about an extended chain queue. In the second step, The global transaction identifier and the handle information of the connected server process are stored in the extended chain table, and in the third step, the remote procedure call of the remote procedure call is stored in the extended chain queue of the server. By queuing the statement,
It is advisable to issue a remote procedure call to a server process that is already connected to another client process under the same transaction control.

【0025】すなわち、具体的にいうと本発明では、従
来のチェインドRPC の機能を拡張した拡張チェインドRP
C 処理方法を提供する。拡張チェインドRPC では、各サ
ーバ毎に拡張チェインテーブルおよび拡張チェインキュ
ーを新たに設けることにより、複数のプロセスから発行
されるRPC を一つのサーバプロセスにわりあてることを
可能としている。拡張チェインテーブルには、トランザ
クションの識別子であるGTIDと該トランザクションと接
続状態にあるサーバプロセスの接続情報が格納される。
トランザクション管理下にあるクライアントプロセスか
らサーバに対してRPC を発行する際には、前記拡張チェ
インテーブルをクライアントのGTIDで検索し、その結果
により以下の処理を行なう。
That is, specifically, in the present invention, an extended chain RP which extends the function of the conventional chain RPC.
C Provide processing method. In the extended chain RPC, it is possible to allocate RPCs issued by multiple processes to one server process by newly providing an extended chain table and an extended chain queue for each server. The extended chain table stores GTID which is a transaction identifier and connection information of a server process which is in a connection state with the transaction.
When an RPC is issued to a server from a client process under transaction management, the extended chain table is searched by the GTID of the client, and the following processing is performed according to the result.

【0026】該GTIDが拡張チェインテーブルにまだ登録
されていない場合には、同一GTIDを有する他のプロセス
から該サーバに対する接続要求がまだ行なわれていない
ということであるから、RPC 電文を該サーバのスケジュ
ールキューにキューイングすると共に、拡張チェインテ
ーブルにクライアントのGTIDを登録し、当該サーバの拡
張チェイン状態を接続待ちにする。そして、該RPC 電文
がサーバプロセスにより取り出されたときに、拡張チェ
インテーブルの当該GTIDエントリに対して、サーバの拡
張チェイン状態を接続済みにすると共に、該サーバプロ
セスのハンドル情報(該サーバプロセスに電文を直接送
信するための接続情報)を記録する。
If the GTID is not yet registered in the extended chain table, it means that another process having the same GTID has not yet issued a connection request to the server. Therefore, the RPC message is sent to the server. While queuing in the schedule queue, the GTID of the client is registered in the extension chain table, and the extension chain status of the server is set to wait for connection. Then, when the RPC message is retrieved by the server process, the extended chain status of the server is set to connected for the GTID entry of the extended chain table, and the handle information of the server process (the message to the server process Connection information for sending directly).

【0027】該GTIDが拡張チェインテーブルに既に登録
されており、かつその拡張チェイン状態が接続済みであ
る場合には、同一GTIDを有する他のプロセスから既に該
サーバに対して接続処理が完了しているので、該テーブ
ルに格納されているサーバプロセスのハンドル情報を取
得し、該サーバプロセスに対して直接RPC 電文を送信す
る。
When the GTID is already registered in the extended chain table and the extended chain state is already connected, another process having the same GTID has already completed connection processing to the server. Therefore, the handle information of the server process stored in the table is acquired, and the RPC message is directly transmitted to the server process.

【0028】該GTIDが拡張チェインテーブルに既に登録
されており、かつその拡張チェイン状態が接続待ちであ
る場合には、同一GTIDを有する他のプロセスから既に出
されている該サーバに対する接続要求の接続処理が未完
了であるということであるから、該サーバプロセスに対
して直接RPC 電文を送信することはできない。そこで、
該GTID専用の拡張チェインキューを作成し、該拡張チェ
インキューにRPC 電文をキューイングする。拡張チェイ
ンキューにキューイングされたRPC 電文は、スケジュー
ルキューにキューイングされたRPC 電文がサーバプロセ
スに取り出されて実行された後に、該サーバプロセスに
より順次取り出されて実行される。このようにすること
で、同一GTIDを持つ他のプロセスからの先行するRPC
と、後続のRPC とを、一つのサーバプロセスで実行する
ことが可能となる。拡張チェインキューが空になると、
該キューは消去され、サーバプロセスは直接送信されて
くる電文の受信待ちに移行する。
If the GTID is already registered in the extended chain table and the extended chain state is waiting for connection, connection of a connection request to the server already issued from another process having the same GTID. Since the processing is incomplete, the RPC message cannot be sent directly to the server process. Therefore,
An extended chain queue dedicated to the GTID is created, and an RPC message is queued in the extended chain queue. The RPC messages queued in the extended chain queue are fetched and executed by the server process after the RPC messages queued in the schedule queue are fetched by the server process and executed. By doing this, a preceding RPC from another process with the same GTID
And subsequent RPCs can be executed by a single server process. When the extended chain queue is empty,
The queue is deleted, and the server process shifts to the reception of a directly transmitted message.

【0029】各サーバ毎に設ける拡張チェインテーブル
はクライアントプロセスおよびサーバプロセスの両方か
ら参照/更新されるため、共用メモリに配置する。ま
た、本拡張チェインドRPC を実行する計算システムにリ
モートホスト間の共用メモリが実装されていない場合に
は、スケジューラデーモンを介して同等の処理を行な
う。即ち、サーバが存在する各ホストにスケジューラデ
ーモンをあらかじめ立ち上げておき、リモートホストに
対するRPC 電文は、まず当該リモートホスト上のスケジ
ューラデーモンに直接送信し、該スケジューラデーモン
が相手サーバの拡張チェインテーブルを参照して、受信
したRPC 電文をスケジュールキューにキューイングする
か、相手サーバプロセスに直接送信するか、拡張チェイ
ンキューにキューイングするかを決定する。
Since the extended chain table provided for each server is referenced / updated by both the client process and the server process, it is arranged in the shared memory. If the shared memory between remote hosts is not installed in the computer system that executes this extended chain RPC, the same processing is performed via the scheduler daemon. That is, the scheduler daemon is started up in advance on each host where the server exists, and the RPC message for the remote host is first sent directly to the scheduler daemon on the remote host, and the scheduler daemon refers to the extended chain table of the other server. Then, it decides whether to queue the received RPC message in the schedule queue, send it directly to the remote server process, or queue it in the extended chain queue.

【0030】以上説明したように、本発明においては、
同一トランザクション内にある複数のプロセスから発行
される同一サーバに対するRPC を、グローバルトランザ
クション識別子をキーとして同一プロセスに割り当てる
機構を有する点に特徴がある。
As described above, in the present invention,
It is characterized by having a mechanism that assigns RPCs issued by multiple processes in the same transaction to the same server to the same process using the global transaction identifier as a key.

【0031】[0031]

【作用】以上述べたように、本発明では、拡張チェイン
テーブルならびに拡張チェインキューを用いて、同一GT
IDを有する複数のプロセスから発行されたRPC を一つの
サーバプロセスに割り当てることを実現可能としてい
る。このため、同一サーバに対するRPC の接続/切断処
理を1回に纏めることが可能となる。
As described above, according to the present invention, the same GT is used by using the extended chain table and the extended chain queue.
It is possible to allocate RPCs issued by multiple processes with IDs to one server process. Therefore, it becomes possible to combine RPC connection / disconnection processing for the same server at one time.

【0032】また、チェインドRPC においては、クライ
アントとサーバが接続を開始してから切断するまでの
間、サーバプロセスはクライアントプロセスに確保され
ることになる。ホスト内に生成できるサーバプロセス数
は一般に有限であるため、同一サーバに対するチェイン
ドRPC の同時実行数はプロセス数により制限される。
Further, in the chain RPC, the server process is secured in the client process from the start of connection between the client and the server until the disconnection. Since the number of server processes that can be created in a host is generally limited, the number of concurrent chain RPCs for the same server is limited by the number of processes.

【0033】これに対して、本発明による拡張チェイン
ドRPC では、同一GTIDを有する複数のプロセスから発行
されるRPC を一つサーバプロセスで処理するため、サー
バプロセス資源の削減にも効果があるという特徴を有す
る。
On the other hand, in the extended chain RPC according to the present invention, one server process processes RPCs issued by a plurality of processes having the same GTID, and therefore, it is also effective in reducing server process resources. Have.

【0034】[0034]

【実施例】以下、本発明の実施例を説明する。本実施例
では、リモートプロシジャコール(以下、RPC と呼ぶ)
の新しい機能である拡張チェインドRPC について、図を
参照しながら、詳細に説明する。
Embodiments of the present invention will be described below. In this embodiment, a remote procedure call (hereinafter called RPC)
The extended chain RPC, which is a new feature of, will be explained in detail with reference to the figure.

【0035】図1は、本実施例における拡張チェインド
RPC の動作を示す図である。図において、左上肩に小さ
い四角が付けられている矩形1〜5はプロセスを示し、
矩形6〜9はFIFOキューを示す。FIFOキューは、システ
ムが提供するメッセージキューを利用するほか、共用メ
モリ領域にFIFOキューを作成するなど、プロセス間で共
用できる資源を用いて種々の方法で実現可能である。
FIG. 1 shows the extension chain in this embodiment.
It is a figure which shows operation | movement of RPC. In the figure, rectangles 1 to 5 with small squares on the upper left shoulder indicate processes,
Boxes 6 to 9 represent FIFO queues. The FIFO queue can be realized by various methods using resources that can be shared between processes, such as using a message queue provided by the system and creating a FIFO queue in a shared memory area.

【0036】また、本図における矢印付きの実線は、プ
ロセス間のRPC 電文の流れを示し、矢印付きの破線は、
共用メモリに格納されているテーブルの参照動作を示
す。破線の四角40〜42は、同一のサービス機能を提
供する複数のプロセスで構成されたサーバプロセス群を
示す。本実施例では、サーバA、サーバB、サーバCの
3種類のサーバが存在し、各サーバ毎にサーバプロセス
群が構成されている。一つのサーバプロセス群には、当
該サーバへの要求を受け付けるためのスケジュールキュ
ー6〜8が用意されている。
The solid line with an arrow in this figure shows the flow of the RPC message between processes, and the broken line with an arrow is
The reference operation of the table stored in the shared memory is shown. Broken-line squares 40 to 42 indicate a server process group configured by a plurality of processes providing the same service function. In this embodiment, there are three types of servers, server A, server B, and server C, and a server process group is configured for each server. Schedule queues 6 to 8 for accepting a request to the server are prepared in one server process group.

【0037】今、親プロセス(1)がトランザクション
管理下にあり、グローバルトランザクションID(以
下、GTIDと呼ぶ)がT01 であるとする。親プロセス
(1)はサーバAおよびサーバBに対してチェインドRP
C 電文を発行し、また、サーバAおよびサーバBはそれ
ぞれサーバCに対してチェインドRPC 電文を発行すると
する。また、それぞれのサーバ間の接続は、未だ確立さ
れていないとする。以下、処理の流れを図1に従って説
明する。
It is now assumed that the parent process (1) is under transaction management and the global transaction ID (hereinafter referred to as GTID) is T01. Parent process (1) chained RP to server A and server B
It is assumed that the C message is issued, and the server A and the server B each issue a chained RPC message to the server C. Further, it is assumed that the connection between the respective servers has not been established yet. The flow of processing will be described below with reference to FIG.

【0038】まず、親プロセス(1)から発行されたサ
ーバAに対するチェインドRPC 電文は、サーバAスケジ
ュールキュー6にキューイングされる(11)。キュー
イングされたRPC 電文は、サーバAプロセス群40の子
プロセスa(2)に取り出されて実行される(12)。
First, the chained RPC message for the server A issued by the parent process (1) is queued in the server A schedule queue 6 (11). The queued RPC message is taken out by the child process a (2) of the server A process group 40 and executed (12).

【0039】子プロセスaからサーバCに対してチェイ
ンドRPC 電文を発行する際には、まず、サーバCの拡張
チェインテーブル10をGTID=T01 で検索する(3
0)。すると、前記条件を満たす情報が登録されていな
いことが判明するため、該チェインドRPC 電文をサーバ
Cのスケジュールキュー8にキューイングする(1
3)。このとき、サーバCの拡張チェインテーブル10
に、GTIDがT01 のRPC が接続待ち(REQ_WAIT)状態である
ことを登録する。キューイングされたRPC 電文は、サー
バCプロセス群42の孫プロセスc1(4)に取り出さ
れて実行される(14)。このとき、サーバCの拡張チ
ェインテーブル10に、GTIDがT01 のRPC が孫プロセス
c1と接続済み(ONLINE)状態にあることを登録し、同時
に、孫プロセスc1のハンドル情報も該拡張チェインテ
ーブル10に登録する(32)。
When issuing a chained RPC message from the child process a to the server C, first, the extended chain table 10 of the server C is searched with GTID = T01 (3
0). Then, since it is found that the information satisfying the above condition is not registered, the chain RPC message is queued in the schedule queue 8 of the server C (1
3). At this time, the extended chain table 10 of the server C
Then, register that the RPC with GTID T01 is in the connection waiting (REQ_WAIT) state. The queued RPC message is fetched by the grandchild process c1 (4) of the server C process group 42 and executed (14). At this time, it is registered in the extended chain table 10 of the server C that the RPC having the GTID T01 is in the connected (ONLINE) state with the grandchild process c1, and at the same time, the handle information of the grandchild process c1 is also registered in the extended chain table 10. Register (32).

【0040】次に、親プロセス1から発行されたサーバ
Bに対するチェインドRPC 電文は、サーバBのスケジュ
ールキュー7にキューイングされる(16)。キューイ
ングされたRPC 電文は、サーバBプロセス群41の子プ
ロセスb(3)に取り出されて実行される(17)。
Next, the chained RPC message for the server B issued from the parent process 1 is queued in the schedule queue 7 of the server B (16). The queued RPC message is fetched by the child process b (3) of the server B process group 41 and executed (17).

【0041】子プロセスbからサーバCに対してチェイ
ンドRPC 電文を発行する際には、まず、サーバCの拡張
チェインテーブル10をGTID=T01 で検索する(3
1)。すると、GTIDがT01 のサーバCに対する要求は既
に他のプロセスにより行なわれており、その拡張チェイ
ン状態がONLINE状態であり、相手サーバプロセスが孫プ
ロセスc1であることが判明する。そこで、該拡張チェ
インテーブル10に格納してある孫プロセスc1のハン
ドル情報を用いて、サーバcに直接RPC 電文を送信する
(18)。
When issuing a chained RPC message from the child process b to the server C, first, the extended chain table 10 of the server C is searched with GTID = T01 (3
1). Then, it is found that the request to the server C whose GTID is T01 has already been made by another process, its extended chain state is the ONLINE state, and the partner server process is the grandchild process c1. Therefore, using the handle information of the grandchild process c1 stored in the extended chain table 10, the RPC message is directly transmitted to the server c (18).

【0042】以上のように、グローバルトランザクショ
ンIDと接続中のサーバプロセスとの対応関係を示す拡張
チェインテーブルを各サーバ毎に用意することにより、
同一GTIDを有する複数のプロセスから発行されたチェイ
ンドRPC を同一のサーバプロセスで実行することが可能
となった。
As described above, the extended chain table showing the correspondence between the global transaction ID and the server process being connected is prepared for each server.
Chained RPCs issued by multiple processes with the same GTID can now be executed by the same server process.

【0043】なお、上記説明では、煩雑さを避けるため
に省略しているが、実際には、サーバAおよびサーバB
にも拡張チェインテーブルがある。そして、親プロセス
からサーバAおよびサーバBにRPC を発行するときに
は、サーバAおよびサーバBの拡張チェインテーブルを
参照して拡張チェイン状態を取得し、該RPC 電文をサー
バのスケジュールキューにキューイングするか、あるい
は、接続中のサーバプロセスに直接送信するかを決定す
る。
Although omitted in the above description in order to avoid complication, in reality, the server A and the server B are omitted.
Also has an extended chain table. When issuing an RPC to the server A and the server B from the parent process, the extended chain state is acquired by referring to the extended chain table of the server A and the server B, and the RPC message is queued in the server's schedule queue. , Or send directly to the connecting server process.

【0044】上記説明では、子プロセスaから発行され
たサーバCへのRPC 電文が孫プロセスc1に取り出され
た後に子プロセスbからサーバCにRPC 電文を発行した
場合を想定している。そこで、以下では、子プロセスa
から発行されたサーバCへのRPC 電文がサーバCのスケ
ジュールキューの中に存在している状態で、子プロセス
bからサーバCに対してRPC 電文が発行された場合の、
サーバBおよびサーバCの動作について説明する。
In the above description, it is assumed that the child process b issues the RPC message to the server C after the RPC message issued by the child process a to the server C is fetched by the grandchild process c1. Therefore, in the following, the child process a
When the RPC message issued by the server to the server C exists in the schedule queue of the server C and the child process b issues the RPC message to the server C,
The operations of the server B and the server C will be described.

【0045】まず、サーバBの子プロセスbからサーバ
Cに対してチェインドRPC 電文を発行する際に、サーバ
Cの拡張チェインテーブル10をGTID=T01 で検索する
(31)。すると、GTIDがT01 のサーバCに対する要求
が他のプロセスにより行なわれており、その状態が接続
待ち(REQ_WAIT)状態であることが判明する。
First, when the chained RPC message is issued from the child process b of the server B to the server C, the extended chain table 10 of the server C is searched with GTID = T01 (31). Then, it is found that a request to the server C having GTID T01 is being made by another process and the state is the connection waiting (REQ_WAIT) state.

【0046】REQ_WAIT状態においては、相手サーバプロ
セスが未確定であるため、当該RPC電文をサーバプロセ
スに対して直接送信することはできない。また、当該RP
C 電文をサーバCのスケジュールキュー8にキューイン
グすると該RPC 電文はサーバCの他のプロセスにより取
り出されるため、子プロセスaと子プロセスbから発行
されるサーバCへのRPC 電文が必ずしも同一サーバで実
行されるとは限らない。
In the REQ_WAIT state, the RPC message cannot be directly sent to the server process because the partner server process is undetermined. Also, the RP
When the C message is queued in the schedule queue 8 of the server C, the RPC message is fetched by another process of the server C, so that the RPC messages issued by the child process a and the child process b to the server C are not necessarily the same server. It is not always executed.

【0047】そこで、このような状態のときには、GPID
がT01 であるサーバCの拡張チェインキュー9を一時的
に作成し、当該RPC 電文を前記T01 用拡張チェインキュ
ー9にキューイングにする(19)。サーバCのT01 用
拡張チェインキュー9にキューイングされたRPC 電文
は、サーバCのスケジュールキュー8にキューイングさ
れたRPC 電文が孫プロセスc1に取り出されて(14)
実行された後に、孫プロセスc1により取り出されて実
行される(20)。
Therefore, in such a state, the GPID
The extension chain queue 9 of the server C whose T01 is T01 is temporarily created, and the RPC message is queued in the T01 extension chain queue 9 (19). The RPC message queued in the T01 extended chain queue 9 of the server C is fetched by the grandchild process c1 from the RPC message queued in the schedule queue 8 of the server C (14).
After being executed, it is taken out by the grandchild process c1 and executed (20).

【0048】サーバプロセスc1は、スケジュールキュ
ー8からチェインドRPC 電文を受け取ると、その後は、
拡張チェインキュー9から電文を順次取り出す。そし
て、拡張チェインキュー9が空になったら、該拡張チェ
インキュー9を削除し、ソケットからのRPC 電文受信待
ちになる。
When the server process c1 receives the chained RPC message from the schedule queue 8, after that,
The electronic messages are sequentially taken out from the extended chain queue 9. When the extended chain queue 9 becomes empty, the extended chain queue 9 is deleted and the RPC message reception from the socket is awaited.

【0049】図12は、前記拡張チェインテーブルの一
実施例である。サーバが存在する各ノード上には、各サ
ーバのスケジュールキューを管理するためのスケジュー
ル管理テーブル(50)と、各サーバの拡張チェインキ
ューを管理するための拡張チェインテーブル(51,5
2,10)が存在する。スケジュール管理テーブル(5
0)は当該ノードに1つだけ存在するが、拡張チェイン
テーブル(51,52,10)は当該ノードに存在する
サーバ数だけ存在する。
FIG. 12 shows an embodiment of the extended chain table. A schedule management table (50) for managing the schedule queue of each server and an extension chain table (51, 5) for managing the extension chain queue of each server are provided on each node where the server exists.
2, 10) exist. Schedule management table (5
There is only one 0) in the relevant node, but there are as many extended chain tables (51, 52, 10) as there are servers in the relevant node.

【0050】スケジュール管理テーブル(50)は、サ
ーバ名(61)、スケジュールキュー識別子(62)、
スケジュールキュー内電文数(63)、および拡張チェ
インテーブルへのポインタ(64)等を保持する。拡張
チェインテーブル(51,52,10)は、GTID(6
5)、拡張チェイン状態(66)、サーバプロセスハン
ドル情報(67)、拡張チェインキューID(68)、お
よび拡張チェインキュー内電文数(69)等を保持す
る。
The schedule management table (50) includes a server name (61), a schedule queue identifier (62),
The number of messages in the schedule queue (63), the pointer (64) to the extended chain table, and the like are held. The extended chain table (51, 52, 10) has the GTID (6
5), the extended chain status (66), the server process handle information (67), the extended chain queue ID (68), the number of electronic messages in the extended chain queue (69), and the like are held.

【0051】サーバCの"GTID=T01" のエントリを検索
する際には、まずスケジュール管理テーブル(50)
を”サーバ名=サーバC”で検索し、該エントリの拡張
チェインテーブルポインタ(64)を辿ってサーバC拡
張チェインテーブル(10)を求め、次に、サーバC拡
張チェインテーブル(10)を"GTID=T01" で検索して
該エントリの情報を取得する。
When searching the entry of "GTID = T01" of the server C, first, the schedule management table (50)
Is searched for by "server name = server C", the extended chain table pointer (64) of the entry is traced to obtain the server C extended chain table (10), and then the server C extended chain table (10) is searched for "GTID. = T01 "to retrieve the information of the entry.

【0052】図3は、拡張チェインドRPC におけるクラ
イアントとサーバの拡張チェイン状態の遷移を示す図で
ある。拡張チェイン状態としては、接続待ち(REQ_WAIT)
状態80、チェイン接続待ち(CHAIN_WAIT)状態81、チ
ェインド電文送信状態(CHAIN_SEND)83、および接続済
み(ONLINE)状態84の4種類がある。
FIG. 3 is a diagram showing the transition of the extended chain state between the client and the server in the extended chain RPC. Waiting for connection (REQ_WAIT) as extended chain status
There are four types: a state 80, a chain connection wait (CHAIN_WAIT) state 81, a chain message transmission state (CHAIN_SEND) 83, and a connected state (ONLINE) state 84.

【0053】REQ_WAIT状態は、最初のRPC 電文がスケジ
ュールキューにキューイングされている状態であり、か
つ、同一GTIDを有する他プロセスから当該サーバに対す
るRPC がまだ行なわれていない状態を示す。この状態で
は、拡張チェインキューは存在しない。
The REQ_WAIT state is a state in which the first RPC message is queued in the schedule queue and the RPC for the server is not yet performed from another process having the same GTID. In this state, there is no extended chain queue.

【0054】CHAIN_WAIT状態は、最初のRPC 電文がスケ
ジュールキューにキューイングされている状態であり、
かつ、同一GTIDを有する他プロセスから当該サーバに対
するRPC が発行されており、そのRPC 電文が拡張チェイ
ンキューにキューイングされている状態を示す。この状
態において、当該サーバに対して新たに発行されるRPC
電文は、拡張チェインキューに順次キューイングされ
る。
The CHAIN_WAIT state is a state in which the first RPC message is queued in the schedule queue,
In addition, it indicates that another process with the same GTID has issued an RPC for the server and the RPC message is queued in the extended chain queue. In this state, RPC newly issued to the server
Messages are sequentially queued in the extended chain queue.

【0055】CHAIN_SEND状態は、最初のRPC 電文はサー
バプロセスに取り出されているが、拡張チェインキュー
にキューイングされたRPC 電文がまだ残っている状態を
示す。この状態においては、サーバプロセスは、RPC 電
文を拡張チェインキューから順次取り出していく。一
方、当該サーバに対して新たに発行されるRPC 電文は、
サーバプロセスのハンドル情報を参照して、接続中のサ
ーバプロセスにソケット経由で直接送信する。
The CHAIN_SEND state shows a state in which the first RPC message has been fetched by the server process, but there are still RPC messages queued in the extended chain queue. In this state, the server process sequentially fetches RPC messages from the extended chain queue. On the other hand, the RPC message newly issued to the server is
Refer to the handle information of the server process and send directly to the connected server process via the socket.

【0056】ONLINE状態は、前記拡張チェインキューに
キューイングされた電文を全て取り出した後の状態であ
り、サーバプロセスはソケット経由で直接送信されてく
るRPC 電文を順次取り出していく。
The ONLINE state is a state after all the messages queued in the extended chain queue have been taken out, and the server process sequentially takes out the RPC messages directly sent via the socket.

【0057】次に、拡張チェイン状態の遷移条件につい
て述べる。まず、最初のRPC 電文をスケジュールキュー
にキューイングするときに、該GTIDに関する情報を拡張
チェインテーブルに登録する。このとき、拡張チェイン
状態は、REQ_WAITに初期化される(84)。
Next, the transition condition of the extended chain state will be described. First, when queuing the first RPC message in the schedule queue, information about the GTID is registered in the extended chain table. At this time, the extended chain state is initialized to REQ_WAIT (84).

【0058】REQ_WAIT状態のときに、スケジュールキュ
ーから当該RPC 要求がサーバプロセスにより取り出され
ると、拡張チェイン状態はONLINE状態に移行する(9
0)。REQ_WAIT状態のときに、同一GTIDを有する他プロ
セスから当該サーバに対するRPC が発行されると、拡張
チェイン状態はCHAIN_WAIT 状態に遷移し(85)、拡
張チェインキューを新たに作成して該RPC 電文をキュー
イングする。
When the RPC request is taken out from the schedule queue by the server process in the REQ_WAIT state, the extended chain state shifts to the ONLINE state (9
0). When another process with the same GTID issues an RPC to the server in the REQ_WAIT state, the extended chain state changes to the CHAIN_WAIT state (85) and a new extended chain queue is created to queue the RPC message. To ing.

【0059】CHAIN_WAIT状態のときに、同一GTIDを有す
るさらに他のプロセスから当該サーバに対してRPC 要求
が発行された場合には、該RPC 電文を拡張チェインキュ
ーにキューイングして、CHAIN_WAIT 状態を維持する
(86)。CHAIN_WAIT状態のときに、スケジュールキュ
ーにキューイングされている最初のRPC 電文がサーバプ
ロセスに取り出されると、拡張チェイン状態はCHAIN_SE
ND状態に遷移する(87)。
In the CHAIN_WAIT state, when another process having the same GTID issues an RPC request to the server, the RPC message is queued in the extended chain queue and the CHAIN_WAIT state is maintained. Yes (86). In the CHAIN_WAIT state, if the first RPC message queued in the schedule queue is fetched by the server process, the extended chain state will be CHAIN_SE.
Transition to the ND state (87).

【0060】CHAIN_SEND状態のときには、サーバプロセ
スは拡張チェインキューからRPC 電文を順次取り出す。
RPC 電文を取り出したときに、拡張チェインキューに他
のRPC 電文が残っている場合には、CHAIN_SEND状態を維
持する(88)。RPC 電文を取り出したときに、拡張チ
ェインキューに他のRPC 電文が残っていないときには、
拡張チェインキューを消去して、拡張チェイン状態をON
LINE状態に遷移する(89)。
In the CHAIN_SEND state, the server process sequentially fetches RPC messages from the extended chain queue.
If another RPC message remains in the extended chain queue when the RPC message is retrieved, the CHAIN_SEND state is maintained (88). When an RPC message is retrieved and no other RPC message remains in the extended chain queue,
Clears the extended chain queue and turns on the extended chain state
Transition to the LINE state (89).

【0061】ONLINE状態のときには、サーバプロセス
は、ソケット経由で当該サーバプロセスに直接送信され
るRPC 電文を順次取り出していく。このとき、取り出し
たRPC電文が、拡張チェインを継続するチェインドRPC
である場合には、拡張チェイン状態をONLINEに維持し続
ける(91)。取り出したRPC 電文が、拡張チェインを
終了するRPC の場合には、当該サーバの拡張チェインテ
ーブルから当該GTIDのエントリを削除し、拡張チェイン
状態は消滅する(92)。そして、サーバプロセス自身
は、次のRPC 電文をスケジュールキューから取り出す状
態に遷移する。
In the ONLINE state, the server process sequentially takes out the RPC message sent directly to the server process via the socket. At this time, the extracted RPC message is a chained RPC that continues the expansion chain.
If so, the extended chain state is kept ONLINE (91). If the fetched RPC message is an RPC that terminates the extension chain, the entry of the GTID is deleted from the extension chain table of the server, and the extension chain state disappears (92). Then, the server process itself transits to a state where the next RPC message is fetched from the schedule queue.

【0062】次に、拡張チェインドRPCを実現するた
めのより詳細な処理の流れを、流れ図4から図11を参
照しながら説明する。
Next, a more detailed processing flow for realizing the extended chain RPC will be described with reference to the flow charts 4 to 11.

【0063】本実施例で説明するRPC の種別としては、
チェインドRPC /非チェインドRPC、同期型RPC /非同
期型RPC の組み合わせで、合計4種類ある。
The types of RPC described in this embodiment are as follows.
There are a total of four types of combinations of chained RPC / non-chained RPC and synchronous RPC / asynchronous RPC.

【0064】チェインドRPC は、次回のRPC を同一サー
バプロセスに割り当てるためにクライアントとサーバ間
の接続を維持する。また、クライアントがトランザクシ
ョン管理下にある場合のチェインドRPC は、拡張チェイ
ンドRPC として処理される。非チェインドRPC は、1回
限りのRPC のほかにチェインドRPC の終了処理として用
いられる。即ち、クライアントとサーバ間がチェイン状
態にあるときに非チェインドRPC を実行すると、該RPC
の実行終了後、クライアントとサーバ間の接続を切断す
る。
The chained RPC maintains a connection between the client and the server to allocate the next RPC to the same server process. In addition, the chain RPC when the client is under transaction management is processed as an extended chain RPC. The non-chained RPC is used as a termination RPC in addition to the one-time RPC. That is, if a non-chained RPC is executed while the client and server are in the chain state, the RPC
After the execution of, ends the connection between the client and the server.

【0065】また、同期型RPC の場合には、クライアン
トがサーバプロセスからの応答電文を受信するまで処理
を中断するのに対して、非同期型RPC の場合には、クラ
イアントがサーバプロセスからの応答電文の受信を待た
ずに処理を継続し、サーバプロセスからの応答電文は、
クライアントプロセスが応答電文受信関数を明示的に発
行することにより受信する。以下の説明では、これらの
4種類のRPC を実行するための処理の流れについて説明
する。
In the case of synchronous RPC, the process is suspended until the client receives the response message from the server process, whereas in the case of asynchronous RPC, the client receives the response message from the server process. Continues processing without waiting for the reception of the response message from the server process
It is received by the client process by explicitly issuing the response message reception function. In the following description, the flow of processing for executing these four types of RPC will be described.

【0066】図4は、クライアント側におけるRPC 送信
処理の流れを示す図である。クライアント側のRPC 送信
処理では、まず、クライアントプロセスのハンドル情報
を取得し(101)、チェインテーブルを検索してクラ
イアントとサーバのRPC 接続情報を取得する(10
2)。
FIG. 4 is a diagram showing the flow of RPC transmission processing on the client side. In the RPC transmission process on the client side, first, the handle information of the client process is acquired (101), and the chain table is searched to acquire the RPC connection information of the client and the server (10).
2).

【0067】チェインテーブルは、クライアントプロセ
スとサーバとのRPC 接続状態を保持するクライアントプ
ロセス固有のテーブルである。図13に、チェインテー
ブルの1実施例を示す。
The chain table is a table unique to the client process that holds the RPC connection state between the client process and the server. FIG. 13 shows an example of the chain table.

【0068】本実施例では、サーバ名(70)、サーバ
プロセスハンドル情報(71)、RPC 接続状態(7
2)、および応答受信状態(73)の4つのフィールド
でチェインテーブル(53)が構成されている。ハンド
ル情報(71)は、図に示したように、ノードのネット
ワークアドレス、ネットワークの種別、およびソケット
のポート番号により構成されている。該ハンドル情報
(71)を用いて、リモートホストに存在するサーバプ
ロセスと直接データを送受信することが可能である。本
チェインテーブルを参照することで、任意のサーバとの
接続関係、接続中のサーバプロセスのハンドル情報、お
よび当該サーバの応答受信の有無等を取得することがで
きる。
In this embodiment, the server name (70), server process handle information (71), and RPC connection status (7
The chain table (53) is composed of four fields of 2) and the response reception state (73). As shown in the figure, the handle information (71) is composed of the network address of the node, the network type, and the port number of the socket. By using the handle information (71), it is possible to directly send / receive data to / from the server process existing in the remote host. By referring to this chain table, it is possible to acquire the connection relation with an arbitrary server, the handle information of the server process being connected, the presence / absence of reception of a response from the server, and the like.

【0069】次に、クライアントとサーバとのRPC 接続
状態を判定し(103)、IN_CHAINである場合には、前
記チェインテーブルから相手サーバのハンドル情報を取
得する(107)。ハンドル情報が登録済みの場合には
(108)、該ハンドル情報を用いてRPC 電文を接続中
の相手サーバに直接送信し(109)、ハンドル情報が
未登録の場合には(108)、後述のRPC 送信開始処理
を実行する(110)。
Next, the RPC connection state between the client and the server is determined (103), and if IN_CHAIN, handle information of the partner server is acquired from the chain table (107). When the handle information is already registered (108), the handle information is used to directly transmit the RPC message to the connected server (109), and when the handle information is not registered (108), the later-described RPC transmission start processing is executed (110).

【0070】一方、クライアントとサーバとのRPC 接続
状態がチェインテーブルに未登録の場合には(10
3)、後述のRPC 送信開始処理を実行し(104)、さ
らに、実行すべきRPC のタイプがチェイン指定ありの場
合には(105)、クライアントとサーバのRPC 接続状
態をIN_CHAINにしてチェインテーブルに登録する(10
6)。
On the other hand, if the RPC connection state between the client and the server is not registered in the chain table (10
3) Execute the RPC transmission start processing described later (104), and if the type of RPC to be executed has chain specification (105), set the RPC connection status of the client and server to IN_CHAIN and set it in the chain table. Register (10
6).

【0071】以上の処理が終了すると、次にサーバプロ
セスからの応答電文の受信処理を行なう。まず、実行す
べきRPC のタイプが同期型RPC でない場合には(11
1)、応答電文の受信は応答電文受信関数において実行
されるため、応答電文の識別に必要なRPC 識別子をクラ
イアントにリターンして処理を終了する(119)。
Upon completion of the above processing, the response message is received from the server process. First, if the type of RPC to be executed is not synchronous RPC (11
1) Since the reception of the response message is executed by the response message reception function, the RPC identifier necessary for identifying the response message is returned to the client and the process is terminated (119).

【0072】一方、同期型RPC の場合には(111)、
まず、サーバプロセスからの応答電文の受信を待つ(1
12)。そして、応答電文受信後、実行すべきRPC のタ
イプがチェイン指定有りの場合には(113)、チェイ
ンテーブルにサーバプロセスのハンドル情報が登録済み
であるかどうかを確認し(114)、未登録の場合に
は、応答電文からサーバプロセスのハンドル情報を取得
してそれをチェインテーブルに登録する(115)。
On the other hand, in the case of synchronous RPC (111),
First, wait for the reception of a response message from the server process (1
12). Then, after receiving the response message, if the type of RPC to be executed is the chain designation (113), it is confirmed whether the handle information of the server process has been registered in the chain table (114). In this case, the handle information of the server process is acquired from the response message and registered in the chain table (115).

【0073】実行すべきRPC のタイプがチェイン指定無
しの場合には(113)、RPC 接続状態を確認し(11
6)、IN_CHAINの場合には、クライアントとサーバのRP
C 接続情報をチェインテーブルから削除してチェイン状
態を解消する(117)。最後に、同期型RPC の場合に
は、応答電文をクライアントにリターンして処理を終了
する(118)。
When the type of RPC to be executed is not chain specified (113), the RPC connection state is confirmed (11
6) In case of IN_CHAIN, RP of client and server
The C connection information is deleted from the chain table to cancel the chain state (117). Finally, in the case of synchronous RPC, the response message is returned to the client and the processing is terminated (118).

【0074】図5は、図4のクライアント側RPC 送信処
理の中(ステップ104,110)から呼び出されるRP
C 送信開始処理の流れを示す図である。
FIG. 5 is an RP called from the client side RPC transmission process (steps 104 and 110) of FIG.
It is a figure which shows the flow of C transmission start processing.

【0075】RPC 送信開始処理(200)では、まず、
送信相手先のサーバ情報を取得する(201)。サーバ
情報の取得方法としては、システム内の全てのサーバに
関する情報を集中的に管理するサーバに問い合わせる方
法や、いくつかの分散されたサーバに問い合わせる方法
等、従来から存在する種々の方法が適用できる。
In the RPC transmission start processing (200), first,
The server information of the transmission destination is acquired (201). As a method of acquiring server information, various existing methods such as a method of inquiring to a server that centrally manages information about all servers in the system and a method of inquiring of several distributed servers can be applied. .

【0076】次に、通信相手先のサーバが自ノード(ロ
ーカルホスト)に存在するかどうかを判定し(20
2)、自ノードに存在しない場合には、相手サーバの存
在するノードのスケジューラデーモンにRPC 電文を直接
送信して(206)、RPC 送信開始処理を終了する。通
信相手先のサーバが自ノードに存在する場合には(20
2)、クライアントプロセスがトランザクション管理下
に有るかどうか、および実行すべきRPC のタイプがチェ
インドRPC か非チェインドRPC かを判定する(203、
204)。
Next, it is judged whether or not the server of the communication partner exists in the own node (local host) (20
2) If it does not exist in the local node, the RPC message is directly transmitted to the scheduler daemon of the node in which the partner server exists (206), and the RPC transmission start processing is terminated. If the server of the communication partner exists in the local node (20
2) Determine whether the client process is under transaction control and whether the type of RPC to be executed is a chained RPC or an unchained RPC (203,
204).

【0077】クライアントがトランザクション管理下に
ない場合、または実行すべきRPC のタイプが非チェイン
ドRPC で有る場合には、当該RPC は拡張チェインドRPC
とはならないため、RPC 電文をスケジュールキューにキ
ューイングして(211)、RPC 送信開始処理を終了す
る。トランザクション管理下かつチェインドRPC の場合
には、拡張チェインドRPC となるため、まず、相手サー
バの拡張チェインテーブルをGTIDで検索し(205)、
相手サーバとの拡張チェイン状態により以下の(a)から
(d)の処理を行なう。
If the client is not under transaction control or if the type of RPC to be executed is a non-chained RPC, the RPC is an extended chained RPC.
Therefore, the RPC message is queued in the schedule queue (211), and the RPC transmission start process ends. In the case of transaction control and chained RPC, it is an extended chained RPC, so first search the extended chain table of the partner server by GTID (205),
From (a) below depending on the extended chain status with the other server
Perform the processing of (d).

【0078】(a) 拡張チェインテーブルに該GTIDのエン
トリが未登録である場合には、当該サーバに対する最初
のRPC であるため、相手サーバの拡張チェインテーブル
に当該GTIDのエントリを登録し(209)、拡張チェイ
ン状態をREQ_WAITにし(210)、最後にRPC 電文をス
ケジュールキューにキューイングして(211)、RPC
送信開始処理を終了する。
(A) If the entry of the GTID is not registered in the extended chain table, since it is the first RPC for the server, the entry of the GTID is registered in the extended chain table of the partner server (209). , Set the extended chain status to REQ_WAIT (210), and finally queue the RPC message in the schedule queue (211), and RPC
The transmission start process ends.

【0079】(b) 拡張チェイン状態がREQ_WAITで有る場
合には、既に同一GTIDを有する他のプロセスからのRPC
要求がスケジュールキューにキューイングされているた
め、拡張チェイン状態をCHAIN_WAITとして(212)、
拡張チェインキューを作成し(213)、該作成した拡
張チェインキューにRPC 電文をキューイングして(21
4)、処理を終了する。
(B) When the extended chain state is REQ_WAIT, the RPC from another process that already has the same GTID
Since the request is queued in the schedule queue, the extended chain state is set to CHAIN_WAIT (212),
An extended chain queue is created (213), and an RPC message is queued in the created extended chain queue (21).
4), the process ends.

【0080】(c) 拡張チェイン状態がCHAIN_WAITで有る
場合には、既に同一GTIDを有する他のプロセスからのRP
C 要求がスケジュールキューにキューイングされてお
り、かつ、既に同一GTIDを有するさらに他のプロセスか
らのRPC 要求が拡張チェインキューにキューイングされ
ているため、RPC 要求を該拡張チェインキューにキュー
イングして(214)、処理を終了する。
(C) If the extended chain state is CHAIN_WAIT, the RP from another process that already has the same GTID
Queue the RPC request in the extension chain queue because the C request is queued in the schedule queue and the RPC request from another process having the same GTID is already queued in the extension chain queue. (214), and the process ends.

【0081】(d) 拡張チェイン状態が上記以外の場合に
は、既に同一GTIDを有する他のプロセスからのRPC 要求
がサーバプロセスと接続済みであるため、相手サーバの
拡張チェインテーブルから相手サーバのハンドル情報を
取得し(215)、該ハンドル情報を用いてRPC 電文を
相手サーバに直接送信して(216)、処理を終了す
る。
(D) If the extended chain status is other than the above, since the RPC request from another process having the same GTID has already been connected to the server process, the handle of the other server is obtained from the extended chain table of the other server. The information is acquired (215), the RPC message is directly transmitted to the partner server using the handle information (216), and the process is ended.

【0082】図6は、サーバ側のRPC 受信処理の流れを
示す図である。サーバ側のRPC 受信処理(300)は、
RPC 受信状態により制御される。RPC 受信状態として
は、スケジュールキュー待ち状態(RECV_QUE)、拡張チェ
インキュー待ち状態(RECV_EX)、およびソケット受信待
ち状態(RECV_SOCK)の3種類がある。RPC 受信状態は、
サーバ起動後にRECV_QUE状態に初期化される(30
1)。その後、RPC 受信状態に応じて分岐し(30
2)、以下の(a)から(c)の処理が実行される。
FIG. 6 is a diagram showing the flow of RPC reception processing on the server side. The RPC reception process (300) on the server side is
Controlled by RPC reception status. There are three types of RPC reception states: a schedule queue waiting state (RECV_QUE), an extended chain queue waiting state (RECV_EX), and a socket reception waiting state (RECV_SOCK). RPC reception status is
Initialized to RECV_QUE state after server startup (30
1). After that, it branches according to the RPC reception status (30
2) The following processes (a) to (c) are executed.

【0083】(a) RPC 受信状態がRECV_QUEのときには、
後述のスケジュールキュー受信処理を行ない(30
3)、クライアントハンドル情報をサーバ側のRPC 制御
情報に登録する(304)。そして、受信したRPC のタ
イプがチェイン指定有りの場合には(305)、サーバ
のRPC 受信状態をRECV_EXにする(306)。
(A) When the RPC reception state is RECV_QUE,
The schedule queue reception process described later is performed (30
3) The client handle information is registered in the server side RPC control information (304). Then, when the type of the received RPC has chain designation (305), the RPC reception state of the server is set to RECV_EX (306).

【0084】(b) RPC 受信状態がRECV_EXのときには、
後述の拡張チェインキュー受信処理を行う(307)。
そのとき、取り出したRPC 電文が空である場合には(3
08)、サーバのRPC 受信状態をRECV_SOCKにして(3
09)、以下の(c)の処理を引き続き行なう。受信したR
PC 電文が空でないときには、受信したRPC のタイプを
判定し(312)、チェイン指定なしの場合には、後述
のチェイン終了処理を実行し(313)、RPC 受信状態
をRECV_QUEにする(314)。
(B) When the RPC reception state is RECV_EX,
An extended chain queue reception process described below is performed (307).
At that time, if the retrieved RPC message is empty (3
08), set the RPC reception status of the server to RECV_SOCK (3
09), the following process (c) is continuously performed. R received
When the PC message is not empty, the type of the received RPC is judged (312), and when the chain is not specified, the chain end processing described later is executed (313) and the RPC reception state is set to RECV_QUE (314).

【0085】(c) RPC 受信状態がRECV_SOCKのときに
は、まず、クライアントハンドル情報をサーバが保持す
るRPC 制御情報から取得し(310)、クライアントか
らのRPC 電文をソケット経由で待つ(311)。次に、
受信したRPC のタイプを判定し(312)、チェイン指
定なしの場合には、後述のチェイン終了処理を実行し
(313)、RPC 受信状態をRECV_QUEにする(31
4)。
(C) When the RPC reception state is RECV_SOCK, first, the client handle information is acquired from the RPC control information held by the server (310), and the RPC message from the client is waited via the socket (311). next,
The type of the received RPC is determined (312), and if the chain is not specified, the chain end processing described later is executed (313), and the RPC reception state is set to RECV_QUE (31).
4).

【0086】以上の(a)から(c)のいずれかの処理を行な
った後、受信したRPC 電文の要求種別を確認し、要求種
別がサーバ終了要求であれば(315)、サーバを終了
する。それ以外の場合には、サービス実行要求であるの
で、指定されたサービス関数を実行し(316)、実行
結果をクライアントに応答電文として送信する(31
7)。その後、再びRPC 受信状態を判定し(302)、
該RPC 受信状態に応じて上記の処理を実行する。
After performing any of the processes (a) to (c) above, the request type of the received RPC message is confirmed, and if the request type is a server end request (315), the server is ended. . In other cases, since it is a service execution request, the specified service function is executed (316), and the execution result is sent to the client as a response message (31).
7). After that, the RPC reception status is determined again (302),
The above processing is executed according to the RPC reception state.

【0087】図7は、スケジュールキュー受信処理(図
6の303)の流れを示す図である。スケジュールキュ
ー受信処理(400)では、まず、RPC 電文を当該サー
バのスケジュールキューから取り出し(401)、受信
電文の種別を確認する。そして、RPC を発行したクライ
アントがトランザクション管理下であるかどうかを判定
し(402)、トランザクション管理下でない場合に
は、受信したRPC 電文をリターンして処理を終了する
(412)。
FIG. 7 is a diagram showing the flow of the schedule queue reception process (303 in FIG. 6). In the schedule queue reception process (400), first, the RPC message is extracted from the schedule queue of the server (401) and the type of the received message is confirmed. Then, it is judged whether or not the client that issued the RPC is under transaction management (402), and if it is not under transaction management, the received RPC message is returned and the processing is terminated (412).

【0088】RPC を発行したクライアントがトランザク
ション管理下である場合には(402)、当該サーバも
トランザクション管理下にする(403)。次に、受信
したRPC のタイプを判定し(404)、チェイン指定な
しの場合には、受信したRPC電文をリターンして処理を
終了する(412)。チェイン指定有りの場合には(4
04)、当該RPC は拡張チェインドRPC であると判定
し、以下の処理を行なう。
If the client that issued the RPC is under transaction management (402), the server is also under transaction management (403). Next, the type of the received RPC is judged (404), and if the chain is not designated, the received RPC message is returned and the processing is terminated (412). If the chain is specified (4
04), the RPC is determined to be an extended chain RPC, and the following processing is performed.

【0089】即ち、まず、自サーバの拡張チェインテー
ブルをGTIDで検索し(405)、拡張チェイン状態を取
得する。拡張チェイン状態がREQ_WAITである場合には
(406)、拡張チェインテーブルにサーバプロセス
(即ち自プロセス)のハンドル情報を登録し(40
7)、拡張チェイン状態をONLINE にして(408)、R
PC 電文をリターンして処理を終了する(412)。拡
張チェイン状態がCHAIN_WAITである場合には(40
6)、拡張チェインテーブルにサーバプロセス(即ち自
プロセス)のハンドル情報を登録して(409)、拡張
チェイン状態をCHAIN_SENDにして(410)、RPC 電
文をリターンして処理を終了する(412)。拡張チェ
イン状態がそれ以外の場合には(406)、状態遷移に
異常が生じていると考えられるため、エラーリターンす
る(411)。
That is, first, the extension chain table of the self server is searched by GTID (405) to acquire the extension chain state. If the extended chain status is REQ_WAIT (406), the handle information of the server process (that is, its own process) is registered in the extended chain table (40).
7), set the extended chain state to ONLINE (408), R
The PC message is returned and the processing ends (412). If the extended chain status is CHAIN_WAIT (40
6) The handle information of the server process (that is, its own process) is registered in the extended chain table (409), the extended chain state is set to CHAIN_SEND (410), the RPC message is returned, and the process is terminated (412). If the extended chain state is other than that (406), it is considered that an abnormality has occurred in the state transition, and an error is returned (411).

【0090】図8は、拡張チェインキュー受信処理(図
6の307)の流れを示す図である。拡張チェインキュ
ー受信処理(500)では、まず、自サーバの拡張チェ
インテーブルをGTIDで検索し(501)、拡張チェイン
状態を取得する。
FIG. 8 is a diagram showing the flow of the extended chain queue reception process (307 in FIG. 6). In the extended chain queue reception process (500), first, the extended chain table of the local server is searched by GTID (501) to obtain the extended chain state.

【0091】そして、拡張チェイン状態がCHAIN_SEND以
外の場合には(502)、拡張チェインキューが存在し
ないため、空の電文をリターンする(509)。拡張チ
ェイン状態がCHAIN_SENDの場合には(502)、RPC 電
文を当該GTIDに対応した拡張チェインキューから取り出
す(503)。全てのRPC 電文を拡張チェインキューか
ら取り出した場合には(504)、当該GTIDに対応する
拡張チェインキューを削除し(506)、拡張チェイン
状態をONLINEにする(507)。最後に、取り出したRP
C 電文をサーバ側RPC 受信処理ルーチンにリターンし
て、処理を終了する(508)。
If the extended chain status is other than CHAIN_SEND (502), since there is no extended chain queue, an empty telegram is returned (509). When the extended chain status is CHAIN_SEND (502), the RPC message is taken out from the extended chain queue corresponding to the GTID (503). When all RPC messages have been extracted from the extended chain queue (504), the extended chain queue corresponding to the GTID is deleted (506), and the extended chain state is set to ONLINE (507). Finally, the RP I took out
The C message is returned to the server side RPC reception processing routine, and the processing ends (508).

【0092】図9は、チェイン終了処理(図6の31
3)の流れを示す図である。チェイン終了処理(60
0)では、まず、自サーバプロセスがトランザクション
管理下にあるかどうかを確認し(601)、トランザク
ション管理下にない場合には、RPC 受信制御情報のクラ
イアントハンドル情報を削除して(607)、処理を終
了する(608)。
FIG. 9 shows the chain end processing (31 in FIG. 6).
It is a figure which shows the flow of 3). Chain end processing (60
In 0), first, it is confirmed whether or not the own server process is under transaction management (601), and if it is not under transaction management, the client handle information of the RPC reception control information is deleted (607), and processing is performed. Is finished (608).

【0093】トランザクション管理下にある場合には
(601)、拡張チェイン状態の切断処理を行なうた
め、まず、自サーバの拡張チェインテーブルを自サーバ
プロセスのGTIDで検索し(602)、拡張チェイン状態
を取得する。自サーバプロセスのGTIDが拡張チェインテ
ーブルに登録されていない場合には(603)、トラン
ザクションの決着処理を行ない(606)、クライアン
トのハンドル情報を削除して(607)、処理を終了す
る(608)。
If it is under transaction control (601), in order to disconnect the extended chain state, first, the extended chain table of the local server is searched by the GTID of the local server process (602), and the extended chain state is set. get. If the GTID of the local server process is not registered in the extended chain table (603), transaction settlement processing is performed (606), client handle information is deleted (607), and processing ends (608). .

【0094】拡張チェイン状態がCHAIN_SENDである場合
には(603)、まず、拡張チェインキューを削除し
(604)、拡張チェインテーブルから当該GTIDのエン
トリを削除し(605)、トランザクションの決着処理
を行ない(606)、クライアントのハンドル情報を削
除して(607)、処理を終了する(608)。
When the extension chain state is CHAIN_SEND (603), first, the extension chain queue is deleted (604), the entry of the GTID is deleted from the extension chain table (605), and the transaction settlement processing is performed. (606), the handle information of the client is deleted (607), and the process ends (608).

【0095】拡張チェイン状態がCHAIN_SEND以外の場合
には(603)、拡張チェインテーブルから当該GTIDの
エントリを削除し(605)、トランザクションの決着
処理を行ない(606)、クライアントのハンドル情報
を削除して(607)、処理を終了する(608)。
When the extended chain status is other than CHAIN_SEND (603), the entry of the GTID concerned is deleted from the extended chain table (605), transaction settlement processing is performed (606), and the client handle information is deleted. (607), the process ends (608).

【0096】図10は、非同期型RPC 応答受信処理の流
れを示す図である。非同期型RPC では、クライアントは
本処理を明示的に実行することによりサーバからの応答
電文を受信することができる。
FIG. 10 is a diagram showing a flow of an asynchronous RPC response reception process. In asynchronous RPC, the client can receive the response message from the server by explicitly executing this process.

【0097】本処理(700)では、まず、サーバプロ
セスからの応答電文の受信を待つ(701)。そして、
応答電文受信後、受信した応答電文に対応するRPC のタ
イプがチェイン指定有りの場合には(702)、チェイ
ンテーブルを検索して、受信した応答電文に対応するサ
ーバとクライアントのRPC 接続情報を取得し(70
3)、該テーブルに相手サーバのハンドル情報が登録さ
れているかを確認し(704)、未登録の場合には、応
答電文から相手サーバのハンドル情報を取得しそれをチ
ェインテーブルに登録する(705)。そして、応答電
文およびRPC 識別子をクライアントにリターンして処理
を終了する(706)。
In this processing (700), first, the reception of a response message from the server process is awaited (701). And
After the response message is received, if the RPC type corresponding to the received response message has chain designation (702), the chain table is searched and the RPC connection information of the server and client corresponding to the received response message is acquired. Shi (70
3) It is confirmed whether the handle information of the partner server is registered in the table (704), and if it is not registered, the handle information of the partner server is acquired from the response message and registered in the chain table (705). ). Then, the response message and the RPC identifier are returned to the client and the processing is terminated (706).

【0098】図11は、サーバが他ノード(リモートホ
スト)にある場合に、クライアントから相手サーバにRP
C 電文の転送を行なうスケジューラデーモンの処理の流
れを示す図である。
FIG. 11 shows that when the server is on another node (remote host), the RP is sent from the client to the partner server.
It is a figure which shows the flow of a process of the scheduler daemon which transfers C telegram.

【0099】スケジューラデーモン(800)では、ま
ず最初に、他ノードのクライアントからのRPC 電文の受
信待ちを行なう(801)。スケジューラデーモンに電
文が届くと、まずその電文がスケジューラデーモンに対
する終了指示電文であるかどうかをチェックし(80
2)、終了指示電文である場合には、スケジューラデー
モンの処理を終了する(803)。
The scheduler daemon (800) first waits for reception of an RPC message from a client of another node (801). When a message arrives at the scheduler daemon, it is first checked whether the message is a termination instruction message for the scheduler daemon (80
2) If the message is a termination instruction message, the processing of the scheduler daemon is terminated (803).

【0100】その他の場合には(802)、スケジュー
ラデーモンが存在する自ノードのサーバに対するRPC 電
文であるので、まず該RPC 電文を送信する相手先サーバ
を特定し、相手先サーバ情報を取得する(804)。
In other cases (802), since it is an RPC message for the server of the own node in which the scheduler daemon exists, first, the destination server transmitting the RPC message is specified and the destination server information is acquired ( 804).

【0101】次に、RPC 電文の内容を確認し(805,
806)、送信元のクライアントがトランザクション管
理下にないか又は実行すべきRPC が非チェインドRPC で
ある場合には、当該RPC は拡張チェインドRPC とはなら
ないため、RPC 電文を相手サーバのスケジュールキュー
にキューイングする(811)。クライアントがトラン
ザクション管理下にあり、かつ実行すべきRPC がチェイ
ンドRPC の場合には(805,806)、拡張チェイン
ドRPC となるため、まず、相手サーバの拡張チェインテ
ーブルをGTIDで検索し(807)、相手サーバとの拡張
チェイン状態により分岐して(808)、以下の(a)か
ら(d)の処理を行なう。
Next, the contents of the RPC message are confirmed (805,
806), if the sending client is not under transaction control or the RPC to be executed is a non-chained RPC, the RPC message is queued in the schedule queue of the other server because the RPC does not become an extended chained RPC. Ing (811). If the client is under transaction management and the RPC to be executed is a chained RPC (805, 806), it becomes an extended chained RPC. First, the extended chain table of the other server is searched by GTID (807), The process branches from the extended chain state with the partner server (808) and the following processes (a) to (d) are performed.

【0102】(a) 拡張チェインテーブルに該GTIDのエン
トリが未登録である場合には、当該サーバに対する最初
のRPC であるため、相手サーバの拡張チェインテーブル
に当該GTIDのエントリを登録し(809)、拡張チェイ
ン状態をREQ_WAITにし(810)、RPC 電文をスケジュ
ールキューにキューイングする(811)。
(A) If the entry of the GTID is not registered in the extended chain table, since it is the first RPC for the server, the entry of the GTID is registered in the extended chain table of the partner server (809). The extended chain state is set to REQ_WAIT (810), and the RPC message is queued in the schedule queue (811).

【0103】(b) 拡張チェイン状態がREQ_WAITで有る場
合には、既に同一GTIDを有する他のプロセスからのRPC
要求がスケジュールキューにキューイングされているた
め、拡張チェイン状態をCHAIN_SENDとして(812)、
拡張チェインキューを作成し(813)、該作成した拡
張チェインキューにRPC 電文をキューイングする(81
4)。
(B) When the extended chain status is REQ_WAIT, RPC from another process that already has the same GTID
Since the request is queued in the schedule queue, the extended chain state is set to CHAIN_SEND (812),
An extended chain queue is created (813), and an RPC message is queued in the created extended chain queue (81).
4).

【0104】(c) 拡張チェイン状態がCHAIN_WAITで有る
場合には、既に同一GTIDを有する他のプロセスからのRP
C 要求がスケジュールキューにキューイングされてお
り、かつ、既に同一GTIDを有するさらに他のプロセスか
らのRPC 要求が拡張チェインキューにキューイングされ
ているため、RPC 要求を該拡張チェインキューにキュー
イングする(814)。
(C) When the extended chain state is CHAIN_WAIT, the RP from another process that already has the same GTID
Queue the RPC request in the extension chain queue because the C request is queued in the schedule queue and the RPC request from another process having the same GTID is already queued in the extension chain queue (814).

【0105】(d) 拡張チェイン状態が上記以外の場合に
は、既に同一GTIDを有する他のプロセスからのRPC 要求
がサーバプロセスと接続済みであるため、相手サーバの
拡張チェインテーブルから相手サーバのハンドル情報を
取得し(815)、該ハンドル情報を用いてRPC 電文を
相手サーバに直接送信する(816)。
(D) If the extended chain status is other than the above, since the RPC request from another process having the same GTID has already been connected to the server process, the handle of the other server is obtained from the extended chain table of the other server. The information is acquired (815), and the RPC message is directly transmitted to the partner server using the handle information (816).

【0106】以上、(a)から(d)までの処理を行なった
後、スケジューラデーモンは再び他ノードのクライアン
トからのRPC 電文受信待ち(801)の状態に戻る。
After performing the processes from (a) to (d) above, the scheduler daemon returns to the state of waiting for the RPC message reception from the client of another node (801).

【0107】[0107]

【発明の効果】本発明により、同一グローバルトランザ
クション識別子を有する複数のクライアントプロセスか
らの同一サーバに対するリモートプロシジャコールを、
一つのサービスプロセスで実行することが、可能とな
る。応答電文の受信を待たずに処理を継続する非同期型
のリモートプロシジャコールでも同様である。このた
め、一つのトランザクションが占有するサーバプロセス
数は各サーバ毎に1つずつとなり、プロセス資源の節約
に効果がある。また、サーバプロセスのハンドル情報を
拡張チェインテーブルに格納しておくため、クライアン
トとサーバプロセスの接続処理も高速化できる。
According to the present invention, a remote procedure call to the same server from a plurality of client processes having the same global transaction identifier can be performed.
It is possible to execute in one service process. The same applies to an asynchronous remote procedure call that continues processing without waiting for the reception of a response message. Therefore, the number of server processes occupied by one transaction is one for each server, which is effective in saving process resources. Further, since the handle information of the server process is stored in the extended chain table, the connection process between the client and the server process can be speeded up.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明による拡張チェインドRPC の処理の流れ
を説明する図、
FIG. 1 is a diagram illustrating a processing flow of an extended chain RPC according to the present invention,

【図2】従来のチェインドRPC による処理の流れを説明
する図、
FIG. 2 is a diagram for explaining the flow of processing by a conventional chain RPC;

【図3】拡張チェイン状態の状態遷移図、FIG. 3 is a state transition diagram of an extended chain state,

【図4】クライアント側のRPC 送信処理を示す流れ図、FIG. 4 is a flowchart showing RPC transmission processing on the client side;

【図5】クライアント側のRPC 送信開始処理を示す流れ
図、
FIG. 5 is a flow chart showing RPC transmission start processing on the client side;

【図6】サーバ側におけるRPC 受信処理を示す流れ図、FIG. 6 is a flowchart showing RPC reception processing on the server side,

【図7】サーバ側におけるスケジュールキュー受信処理
を示す流れ図、
FIG. 7 is a flowchart showing a schedule queue reception process on the server side;

【図8】サーバ側における拡張チェインキュー受信処理
を示す流れ図、
FIG. 8 is a flowchart showing an extended chain queue reception process on the server side,

【図9】サーバ側におけるチェイン終了処理を示す流れ
図、
FIG. 9 is a flowchart showing chain end processing on the server side;

【図10】非同期型RPC における非同期型RPC 応答受信
処理を示す流れ図、
FIG. 10 is a flowchart showing an asynchronous RPC response reception process in the asynchronous RPC,

【図11】スケジューラデーモンの処理を示す流れ図、FIG. 11 is a flowchart showing the processing of the scheduler daemon,

【図12】拡張チェインドRPC を実現するための管理テ
ーブルの例を示す図、
FIG. 12 is a diagram showing an example of a management table for realizing an extended chain RPC;

【図13】クライアントプロセスのチェイン状態を管理
するチェインテーブルの例を示す図。
FIG. 13 is a diagram showing an example of a chain table that manages a chain state of a client process.

【符号の説明】[Explanation of symbols]

1…親プロセス、2…子プロセスa、3…子プロセスb、
4…孫プロセスc1、5…孫プロセスc2、6…サーバAス
ケジュールキュー、7…サーバBスケジュールキュー、
8…サーバCスケジュールキュー、9…T01用サーバC
拡張チェインキュー、10…サーバC拡張チェインテー
ブル、50…スケジュール管理テーブル、53…チェイ
ンテーブル。
1 ... Parent process, 2 ... Child process a, 3 ... Child process b,
4 ... Grandchild process c1, 5 ... Grandchild process c2, 6 ... Server A schedule queue, 7 ... Server B schedule queue,
8 ... server C schedule queue, 9 ... server C for T01
Extended chain queue, 10 ... Server C extended chain table, 50 ... Schedule management table, 53 ... Chain table.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】クライアントプロセスから自ホスト上また
は他ホスト上に存在するサーバの手続きを呼び出すリモ
ートプロシジャコールであって、前記サーバは同一のサ
ービスを提供する複数のサーバプロセスで構成され、前
記クライアントプロセスから発行されるリモートプロシ
ジャコールは前記複数のサーバプロセスの任意の一つに
より処理されるリモートプロシジャコールの処理方法に
おいて、 トランザクション管理されている複数のクライアントプ
ロセスが存在し、各クライアントプロセスは管理されて
いるトランザクションを特定するグローバルトランザク
ション識別子を有する場合に、同一のトランザクション
に管理されている複数のクライアントプロセスのうちの
任意の一つから前記サーバに最初にリモートプロシジャ
コールを発行する第1のステップと、 該リモートプロシジャコールを受け付けた前記サーバに
おいて、該リモートプロシジャコールを一つのサーバプ
ロセスに割当てて該サーバプロセスと前記クライアント
プロセスとを接続するとともに、該接続したクライアン
トプロセスのグローバルトランザクション識別子と該接
続に係る接続情報とを拡張チェインテーブル上に格納す
る第2のステップと、 前記トランザクション管理下の複数のクライアントプロ
セスのうちの任意の一つから前記サーバに次にリモート
プロシジャコールを発行するとき、該クライアントプロ
セスは、前記拡張チェインテーブルを参照して、同一の
トランザクション管理下の別のクライアントプロセスと
接続されているサーバプロセスの接続情報を得、該サー
バプロセスに向けてリモートプロシジャコールを発行す
る第3のステップとを備え、 これにより、同一トランザクションの複数のクライアン
トプロセス間で一つのサーバプロセスを共有することを
特徴とするリモートプロシジャコール処理方法。
1. A remote procedure call for invoking a procedure of a server existing on its own host or on another host from a client process, wherein the server is composed of a plurality of server processes providing the same service. The remote procedure call issued from is processed by any one of the plurality of server processes. In the remote procedure call processing method, there are a plurality of transaction-managed client processes, and each client process is managed. If there is a global transaction identifier that identifies the existing transaction, a remote procedure call is first made to the server from any one of a plurality of client processes managed by the same transaction. A first step of issuing; in the server that has received the remote procedure call, assigning the remote procedure call to one server process to connect the server process and the client process, and A second step of storing a global transaction identifier and connection information related to the connection in an extended chain table; and a remote procedure call from any one of the plurality of client processes under the transaction control to the server. When issuing a message, the client process refers to the extended chain table to obtain connection information of a server process connected to another client process under the same transaction management, and sends the connection information to the server process. And a third step of issuing a remote procedure call, thereby, the remote procedure call processing method characterized by sharing one server process across multiple client processes the same transaction.
【請求項2】各サーバ毎に、前記クライアントプロセス
からの最初のリモートプロシジャコールの実行要求を受
け付けるスケジュールキューを設け、前記第1のステッ
プにおけるリモートプロシジャコールの発行は、前記リ
モートプロシジャコールの電文を前記スケジュールキュ
ーにキューイングすることにより行なう請求項1に記載
のリモートプロシジャコール処理方法。
2. A schedule queue for receiving an execution request of the first remote procedure call from the client process is provided for each server, and the remote procedure call is issued by a message of the remote procedure call in the first step. The remote procedure call processing method according to claim 1, wherein the remote procedure call processing is performed by queuing in the schedule queue.
【請求項3】各サーバ毎に、各トランザクションと当該
サーバとのリモートプロシジャコールの実行関係を格納
する前記拡張チェインテーブルを設け、前記拡張チェイ
ンテーブルは、前記グローバルトランザクション識別子
と、前記グローバルトランザクション識別子のトランザ
クションと当該サーバとの接続状態を示す拡張チェイン
状態と、接続中のサーバプロセスのハンドル情報と、拡
張チェインキューに関する情報とを格納するテーブルと
し、 前記第2のステップでは、前記拡張チェインテーブル
に、前記グローバルトランザクション識別子と、前記接
続したサーバプロセスのハンドル情報とを格納し、 前記第3のステップでは、当該サーバの拡張チェインキ
ューに前記リモートプロシジャコールの電文をキューイ
ングすることにより、同一のトランザクション管理下の
別のクライアントプロセスと既に接続されているサーバ
プロセスに向けてリモートプロシジャコールを発行する
請求項2に記載のリモートプロシジャコール処理方法。
3. An extended chain table for storing each transaction and a remote procedure call execution relationship between the server and the server is provided for each server, and the extended chain table stores the global transaction identifier and the global transaction identifier. A table that stores an extended chain state indicating a connection state between a transaction and the server, handle information of a server process being connected, and information about an extended chain queue, and in the second step, in the extended chain table, The global transaction identifier and the handle information of the connected server process are stored, and in the third step, the message of the remote procedure call is queued in the extended chain queue of the server. , Remote procedure call processing method according to claim 2 which issues a remote procedure call to the server process with another client process managed the same transaction already connected.
【請求項4】前記第1のステップにおける、クライアン
トプロセスと相手サーバ間に接続関係が確立していない
ときのクライアントプロセスから自ホスト内のサーバに
対するリモートプロシジャコールを、 (a) クライアントプロセスがトランザクション管理下で
あるかどうかを確認し、トランザクション管理下である
場合には、リモートプロシジャコールを実行する相手サ
ーバの拡張チェインテーブルをグローバルトランザクシ
ョン識別子で検索する処理と、 (b) 該グローバルトランザクション識別子が前記拡張チ
ェインテーブルに未登録であった場合には、該グローバ
ルトランザクション識別子を拡張チェインテーブルに登
録して、トランザクションとサーバの接続状態を接続待
ち状態にし、リモートプロシジャコール実行要求を相手
サーバのスケジュールキューにキューイングする処理
と、 (c) 該グローバルトランザクション識別子が前記拡張チ
ェインテーブルに登録済みでありトランザクションと当
該サーバとの接続状態が接続待ち状態であった場合に
は、トランザクションとサーバの接続状態をチェイン接
続待ち状態にして、該トランザクション用に拡張チェイ
ンキューを一時的に作成し該拡張チェインキューにリモ
ートプロシジャコール実行要求をキューイングする処理
と、 (d) 該グローバルトランザクション識別子が前記拡張チ
ェインテーブルに登録済みでありトランザクションと当
該サーバとの接続状態がチェイン接続待ち状態であった
場合には、該トランザクション用に既に作成されている
拡張チェインキューにリモートプロシジャコール実行要
求をキューイングする処理と、 (e) 該グローバルトランザクション識別子が前記拡張チ
ェインテーブルに登録済みでありトランザクションと当
該サーバとの接続状態が接続済み状態であった場合に
は、拡張チェインテーブルに登録済みのサーバプロセス
ハンドル情報を用いて、ソケット経由で、接続中のサー
バプロセスに直接リモートプロシジャコール実行要求を
送信する処理とで行なう請求項3に記載のリモートプロ
シジャコール処理方法。
4. In the first step, (a) the client process manages a transaction by executing a remote procedure call from the client process to the server in its own host when the connection relation is not established between the client process and the partner server. If it is under transaction control, and if it is under transaction management, a process of searching the extended chain table of the remote server that executes the remote procedure call with the global transaction identifier, and (b) the global transaction identifier is the extended If the global transaction identifier is not registered in the chain table, the global transaction identifier is registered in the extended chain table, the connection state between the transaction and the server is set to the connection waiting state, and the remote procedure call execution request is issued to the partner server. (C) if the global transaction identifier is already registered in the extended chain table and the connection state between the transaction and the server is in the connection waiting state, the transaction and the server (D) a process of putting a connection state into a chain connection waiting state, temporarily creating an extended chain queue for the transaction, and queuing a remote procedure call execution request in the extended chain queue; If the transaction has been registered in the chain table and the connection state between the transaction and the server is in the chain connection wait state, the remote procedure call execution request is queued in the extended chain queue already created for the transaction. Processing, and (e) if the global transaction identifier is already registered in the extended chain table and the connection state between the transaction and the server is in the connected state, the server process handle information registered in the extended chain table 4. The remote procedure call processing method according to claim 3, wherein the remote procedure call execution request is directly transmitted to the server process being connected via the socket.
【請求項5】さらに、サーバの存在する各ホスト上に、
他のホストのクライアントプロセスから自ホストのサー
バに対するリモートプロシジャコール実行要求を転送す
るためのスケジューラデーモンを備え、 クライアントプロセスと相手サーバ間に接続関係が確立
していないときのクライアントプロセスから他のホスト
内のサーバに対するリモートプロシジャコールを、 相手サーバの存在する他ホストのスケジューラデーモン
に該リモートプロシジャコール実行要求を転送する処理
と、相手サーバ上のスケジューラデーモンにおいて、受
信したリモートプロシジャコールを相手サーバに対して
前記請求項4に記載の(a)から(e)までの処理により、送
信するリモートプロシジャコール処理方法。
5. Further, on each host where the server exists,
A scheduler daemon for transferring remote procedure call execution requests from the client process of another host to the server of the local host is provided, and when the connection relationship between the client process and the other server is not established, the client process Remote procedure call to the other server, the process of transferring the remote procedure call execution request to the scheduler daemon of the other host where the other server exists, and the scheduler daemon on the other server sends the received remote procedure call to the other server. A remote procedure call processing method of transmitting by the processing of (a) to (e) according to claim 4.
【請求項6】前記サーバプロセスは、リモートプロシジ
ャコールの実行要求をどこから受け取るかを管理するサ
ーバ受信状態を有し、 該サーバ受信状態がスケジュールキュー待ちである場合
には、当該サーバのスケジュールキューからリモートプ
ロシジャコールの実行要求を取り出し、実行要求元のク
ライアントがトランザクション管理下である場合には、
前記拡張チェインテーブルをグローバルトランザクショ
ン識別子で検索して当該トランザクションとサーバとの
接続関係を取得し、該接続関係が接続待ちである場合に
は該接続関係を接続済み状態にすると共に前記サーバ受
信状態をソケット受信待ち状態にし、該接続関係がチェ
イン接続待ちである場合には該接続関係をチェインド電
文送信状態とすると共に前記サーバ受信状態を拡張チェ
インキュー待ち状態とする処理と、 該サーバ受信状態が拡張チェイン待ちである場合には、
チェイン中のトランザクションに対応する当該サーバの
拡張チェインキューからリモートプロシジャコールの実
行要求を取り出し、該取り出した実行要求が拡張チェイ
ンキューにキューイングされている最後の実行要求であ
った場合には拡張チェインテーブルの当該トランザクシ
ョンとサーバとの接続関係を接続済み状態とし、サーバ
の受信状態をソケット受信待ち状態にする処理と、 該サーバの受信状態がソケット受信待ちである場合に
は、接続中のクライアントからソケット経由で直接送信
されてくるリモートプロシジャコールの実行要求を取り
出す処理とにより、 同一グローバルトランザクション識別子を有する複数の
クライアントプロセスから送信されてくるリモートプロ
シジャコールの実行要求を一つのサーバプロセスで実行
する請求項3に記載のリモートプロシジャコール処理方
法。
6. The server process has a server reception state that manages where to receive a remote procedure call execution request. If the server reception state is waiting for a schedule queue, the server process waits for the schedule queue of the server. When a remote procedure call execution request is fetched and the execution request source client is under transaction management,
The extended chain table is searched by the global transaction identifier to acquire the connection relationship between the transaction and the server, and when the connection relationship is waiting for connection, the connection relationship is set to the connected state and the server reception state is set. When the socket reception wait state is set, and when the connection relationship is a chain connection wait state, the connection relationship is set to the chain message transmission state and the server reception state is set to the extended chain queue wait state, and the server reception state is extended. If you are waiting for a chain,
The execution request of the remote procedure call is extracted from the extension chain queue of the server corresponding to the transaction in the chain, and if the extracted execution request is the last execution request queued in the extension chain queue, the extension chain The process of setting the connection relationship between the relevant transaction in the table and the server to the connected state and setting the server reception state to the socket reception waiting state, and when the reception state of the server is socket reception waiting, from the connected client. By executing the process to retrieve the remote procedure call execution request sent directly via the socket, one server process can execute the remote procedure call execution requests sent from multiple client processes with the same global transaction identifier. Remote procedure call processing method according to claim 3.
JP6251283A 1994-09-20 1994-09-20 Remote procedure call processing method Pending JPH0895874A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6251283A JPH0895874A (en) 1994-09-20 1994-09-20 Remote procedure call processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6251283A JPH0895874A (en) 1994-09-20 1994-09-20 Remote procedure call processing method

Publications (1)

Publication Number Publication Date
JPH0895874A true JPH0895874A (en) 1996-04-12

Family

ID=17220504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6251283A Pending JPH0895874A (en) 1994-09-20 1994-09-20 Remote procedure call processing method

Country Status (1)

Country Link
JP (1) JPH0895874A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005276175A (en) * 2004-02-13 2005-10-06 Microsoft Corp Scalable print spooler
US8583754B2 (en) 2008-08-15 2013-11-12 Fujitsu Limited Business flow distributed processing system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005276175A (en) * 2004-02-13 2005-10-06 Microsoft Corp Scalable print spooler
US8583754B2 (en) 2008-08-15 2013-11-12 Fujitsu Limited Business flow distributed processing system and method

Similar Documents

Publication Publication Date Title
US7035852B2 (en) Implementing a message queuing interface (MQI) indexed queue support that adds a key to the index on put commit
EP0794491B1 (en) Client/server architecture supporting concurrent servers
US5805823A (en) System and method for optimal multiplexed message aggregation between client applications in client-server networks
EP0205946B1 (en) Flexible data transmission for message based protocols
EP0343820A2 (en) Temporary state preservation for a distributed file service
US7468804B2 (en) Techniques for printer-side network cluster printing
US20120290639A1 (en) Queueing messages related by affinity set
WO2006131440A1 (en) Apparatus, system, and method for facilitating communication between an enterprise information system and a client
EP0459774B1 (en) File access system in distributed data processing system
JPH0895874A (en) Remote procedure call processing method
JP2002141967A (en) Communication control apparatus and method
JP4196310B2 (en) Message control method for information management system
JP3950752B2 (en) apparatus
JPH06266643A (en) Server program management method
JP3741818B2 (en) Information distribution response system with many computers participating
JP2003008612A (en) Network interface, device, system, method, program and storage medium recording network interface program
US20090019259A1 (en) Multiprocessing method and multiprocessor system
JPH09198346A (en) System and method for selecting server
JP2000227860A (en) Parallel access control method, parallel access controller and multi-thread process method
JP3006187B2 (en) Distributed processing system
JP2000151739A (en) Information processor, distributed processor and network system
JPH07282012A (en) Distribution operation support method in distributed data processing system
JPH0991234A (en) Work flow system
JPH10275126A (en) Client server system that performs load decentralization control
JPH11120009A (en) Inter-process communication controller