JP2004302630A - Message processing method, execution device therefor and processing program therefor - Google Patents

Message processing method, execution device therefor and processing program therefor Download PDF

Info

Publication number
JP2004302630A
JP2004302630A JP2003092225A JP2003092225A JP2004302630A JP 2004302630 A JP2004302630 A JP 2004302630A JP 2003092225 A JP2003092225 A JP 2003092225A JP 2003092225 A JP2003092225 A JP 2003092225A JP 2004302630 A JP2004302630 A JP 2004302630A
Authority
JP
Japan
Prior art keywords
message
program
indicating
processing
type
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
JP2003092225A
Other languages
Japanese (ja)
Inventor
Hironari Tsuzuki
裕也 都築
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 JP2003092225A priority Critical patent/JP2004302630A/en
Publication of JP2004302630A publication Critical patent/JP2004302630A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide technology allowing efficient use of a plurality of business applications even when coming into a state that each queue has a different load. <P>SOLUTION: This method has: a step for changing state information in a record of a pool management table into contents showing that it is in use when a message is stored in a first queue file; and a step for making a program shown by a program pointer in the record execute processing of the message. The method also has: a step for changing the state information in the record of the pool management table into the contents showing that it is in use when the message is stored in a second queue file; and a step for making the program shown by the program pointer in the record execute the processing of the message. The method also has a step for changing the state information in the pool management table of the program having executed the message processing into contents showing that it is empty when the message processing of the first or second queue file is completed. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明はメッセージキューイングを使用するメッセージ処理に適用して有効な技術に関するものである。
【0002】
【従来の技術】
メッセージキューイングシステムは、キューを介してメッセージ転送を非同期に行うことで、送信側と受信側のアプリケーションプログラムが同時に動作している必要が無い通信方式を提供する技術である。アプリケーションプログラムは、メッセージキューイングシステムが提供するキューへのメッセージ登録、取出しを操作するアプリケーション・プログラム・インタフェース(API)を使用してメッセージを送受信する。
【0003】
キューとは、メッセージを保存できる論理的な待ち行列を構成する器であり、通常はディスク装置上のファイルで実現されている。メッセージ送信時には、宛先キューを指定してメッセージ登録APIを発行することで、メッセージが宛先キューに格納される。
【0004】
受信側アプリケーションは、メッセージ取出しAPIを発行することで、宛先キューに格納されたメッセージを、キュー(待ち行列)に最も長く繋がれた順番に取り出す。なお、この取出しは、特定のメッセージを優先的に取り出すことも可能である。
【0005】
メッセージキューイングシステムは、送信側と受信側の双方のアプリケーションが、キューを介し相手の応答を必要としないことにより相手側の状態に依存せず送信処理または受信処理が可能である為、柔軟性を具えた通信方式であるといえる。
【0006】
また、アプリケーションは通信する際に意識するのは宛先であるキューのみである為、業務の変更追加、トラフィック増大した場合のキューにアクセスするアプリケーションを増やす等の対処が他アプリケーションに影響を与えずにでき、拡張性を具えた通信方式であるといえる。
【0007】
さらに、通信障害やシステムダウンが発生しても、ディスク装置等の物理媒体に実体を有するキューに格納されたメッセージは消失することはなく、信頼性の高い通信方式を提供している。
【0008】
近年、インターネット技術の発展、普及にともない、WWWサーバをベースとして業務を構築するシステムが増加している。業務を構築する基盤となる技術を利用したアプリケーションモデルの1つとしてMessage Driven Bean(メッセージ駆動型Bean:略称MDB)がある(例えば非特許文献1参照)。
【0009】
通常のメッセージキューイングシステムにおいては、メッセージ受信アプリケーションはメッセージ受信APIを発行することでメッセージを受信し、その後の業務処理を行う。
【0010】
一方、MDB型の業務は自動的に起動される為、メッセージ受信APIを発行する必要が無い。トランザクション、認証や承認のセキュリティ等を業務が意識する必要が無く、アプリケーション開発者は業務処理のみに注力すれば良い構造となっている。
【0011】
また、1つのキューに対して予め同一のMDB型業務を複数作成しておくことで、高トラフィックに対応することも可能である。これは、1つの受信メッセージに対して1つのMDB型業務が処理を行い、キューに蓄積されるメッセージ数が増加した場合、予め作成しておいたMDB型業務を複数並行に動作させることで対応できる。
【0012】
【非特許文献1】
Richard Monson−Haefel, David A.Chappell著, 今野睦監訳、古澤秀明訳、「Javeメッセージサービス」 株式会社オライリー・ジャパン、pp.157−168、2001年10月1日初版第1刷発行
【0013】
【発明が解決しようとする課題】
前記従来技術では、メッセージキューイングシステムのキューと業務の対応関係は1:Nであり、高トラフィック時には業務を複数並行に動作させることで対応する構造となっている。しかし、送信側クライアントが膨大な数であったり、複数の高トラフィックな送信ノードが存在する場合、1つの業務を1つのキューに対応させる構成では処理しきれないので、複数キューで同一の業務を対応させる構成をとることとなる。この場合、各キュー単位に業務アプリケーションが括り付けられることになり、キュー間で負荷が異なる場合、予め用意しておいた業務プログラムが効率的に利用されないという問題がある。
【0014】
また、業務数が膨大な数である場合、業務毎にキューを作成することは現実的な構成ではなくなり、複数業務を同一キューに対応させ、メッセージ毎に付与された業務識別情報を業務アプリケーションが意識して業務を振り分ける構成となる。この場合、予め用意されるアプリケーションは複数業務を処理可能なものとする必要があり、アプリケーション中のある1つの業務処理部分の変更が他業務処理部分にも影響する為、業務の独立性、部品化が損なわれるという問題がある。
【0015】
更に、複数業務を同一キューに対応付けた場合でメッセージ処理の順序性を保証しなければならない業務、または、同一業務であってメッセージの識別情報単位に処理の順序性を保証しなければならないケースにおいて、キューとアプリケーションの対応を1:1にする必要があり、アプリケーションを異なる業務毎、または、異なるメッセージ種別毎に並行して動作させることができず、高トラフィックに対応できないという問題がある。
【0016】
本発明の目的は上記問題を解決し、メッセージキューイング処理において、多くのクライアントまたはメッセージ送信ノードが存在し、各キュー間で負荷の異なる状態となった場合でも、予め用意しておいた複数の業務アプリケーションを効率的に利用することが可能な技術を提供することにある。
【0017】
本発明の他の目的はメッセージキューイング処理において、多種類の業務が存在する場合に、アプリケーションの独立性を損なわずに効率的に業務アプリケーションをスケジュールすることが可能な技術を提供することにある。
【0018】
本発明の他の目的はメッセージキューイング処理において、メッセージの処理順序性を保証しなければならない業務が複数存在したり、メッセージの処理順序性を保証するメセージ識別グループが存在する場合に、効率的に業務アプリケーションをスケジュールすることが可能な技術を提供することにある。
【0019】
【課題を解決するための手段】
本発明は、複数キュー中のメッセージの単一インスタンスプールへのスケジュール、単一キュー中のメッセージの複数インスタンスプールへのスケジュール、キュー中のメッセージ種別毎に順序性を保持したスケジュールを行うものである。ここで、インスタンスとは、プログラムやオブジェクト、スレッド、プロセス等を示すものとしている。またインスタンスプールは、前記インスタンスのグループのことを指すものとする。
【0020】
本発明のメッセージ処理装置では、複数のキューファイルに登録される各メッセージを処理する複数のインスタンスを、単一のインスタンスプールにプールした後、それらのインスタンスの状態を示す状態情報と当該インスタンスの記憶装置上での格納位置を示すインスタンスポインタとを対応付けた単一のプール管理テーブルを生成しておく。
【0021】
次に、第1のキューファイル中にメッセージが格納されているかどうかを調べ、第1のキューファイル中にメッセージが格納されている場合には、前記プール管理テーブルから、その状態情報が空きであることを示しているレコードを検索し、その検索されたレコードの状態情報を使用中であることを示す内容に変更する。
【0022】
そして、前記検索されたレコード中のインスタンスポインタを読み出した後、そのインスタンスポインタで示されるインスタンスに前記第1のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる。
【0023】
次に、第2のキューファイル中にメッセージが格納されているかどうかを調べ、第2のキューファイル中にメッセージが格納されている場合には、前記プール管理テーブルから、その状態情報が空きであることを示しているレコードを検索し、その検索されたレコードの状態情報を使用中であることを示す内容に変更する。
【0024】
そして、前記検索されたレコード中のインスタンスポインタを読み出した後、そのインスタンスポインタで示されるインスタンスに前記第2のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる。
【0025】
次に、前記実行されたインスタンスの処理を監視し、前記第1または第2のキューファイルのメッセージ処理が終了した場合には、当該メッセージ処理を実行したインスタンスのインスタンスポインタにより前記プール管理テーブルを検索し、その検索されたレコードの状態情報を空きであることを示す内容に変更する。
【0026】
以上の様に本発明のメッセージ処理装置によれば、複数キューファイルに格納された各メッセージの単一インスタンスプールへのスケジュールを行うので、メッセージキューイング処理において、多くのクライアントまたはメッセージ送信ノードが存在し、各キュー間で負荷の異なる状態となった場合でも、予め用意しておいた複数の業務アプリケーションを効率的に利用することが可能である。
【0027】
【発明の実施の形態】
(実施形態1)
以下に複数キュー中のメッセージの単一インスタンスプールへのスケジュール実施形態1のメッセージ処理装置について説明する。
【0028】
図1は本実施形態のメッセージ処理装置900の概要を示す図である。図1に示す様に本実施形態のメッセージ処理装置100では、複数のキュー中のメッセージを単一のインスタンスプールに対応付ける為のプール管理テーブルを備えており、複数のキューに格納された各メッセージをプログラムである業務インスタンスへスケジュールする際、各キューに対応する複数のスケジュール管理部が、単一のプール管理テーブルを参照して空き状態の業務インスタンスへのポインタを取り出し、そのポインタで示される業務インスタンスへのスケジュールを行う。
【0029】
この為、本実施形態のメッセージ処理装置100では、多くのクライアントまたはメッセージ送信ノードが複数のキューにそれぞれメッセージを格納し、各キュー間で負荷の異なる状態となった場合でも、負荷の高いキューのメッセージが空き状態の業務インスタンスにスケジュールされるので、インスタンスプールに予め用意しておいた業務アプリケーションを効率的に利用することが可能である。
【0030】
図2は本実施形態のメッセージ処理装置100の概略構成を示す図である。図2に示す様に本実施形態のメッセージ処理装置100は、CPU201と、メモリ202と、磁気ディスク装置203と、入力装置204と、出力装置205と、CD−ROM装置206と、通信装置207と、プール管理テーブル208とを有している。
【0031】
CPU201は、メッセージ処理装置100全体の動作を制御する装置であり、計算機または情報処理装置で用いるものである。メモリ202は、メッセージ処理装置100全体の動作を制御する際にその為の各種処理プログラムやデータをロードする記憶装置である。
【0032】
磁気ディスク装置203は、前記各種処理プログラムやデータを格納しておく記憶装置である。入力装置204は、キュー中のメッセージを処理する為の各種入力を行う装置である。出力装置205は、キュー中のメッセージ処理に伴う各種出力を行う装置である。
【0033】
CD−ROM装置206は、前記各種処理プログラムを記録したCD−ROMの内容を読み出す装置である。通信装置207は、インターネットやイントラネット等のネットワークを介して他の処理装置との通信を行う装置である。プール管理テーブル208は、インスタンスの状態を示す状態情報と当該インスタンスのメモリ202上での格納位置を示すインスタンスポインタとを対応付けたテーブルである。
またメッセージ処理装置100は、スケジュール管理部211と、スケジュール管理部212と、空き状態設定処理部213とを有している。
【0034】
スケジュール管理部211は、第1のキューファイル中にメッセージが格納されている場合に、プール管理テーブル208から状態情報が空きであることを示しているレコードを検索して当該状態情報を使用中であることを示す内容に変更し、前記検索されたレコード中のインスタンスポインタで示されるインスタンスに前記第1のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる第1の処理部である。
【0035】
スケジュール管理部212は、第2のキューファイル中にメッセージが格納されている場合に、プール管理テーブル208から状態情報が空きであることを示しているレコードを検索して当該状態情報を使用中であることを示す内容に変更し、前記検索されたレコード中のインスタンスポインタで示されるインスタンスに前記第2のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる第2の処理部である。
【0036】
空き状態設定処理部213は、前記第1または第2のキューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したインスタンスのプール管理テーブル208中の状態情報を空きであることを示す内容に変更する処理部である。
【0037】
メッセージ処理装置100をスケジュール管理部211、スケジュール管理部212及び空き状態設定処理部213として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0038】
図3は本実施形態のスケジュール管理処理の処理手順を示すフローチャートである。本実施形態のメッセージ処理装置100のスケジュール管理部211は、図3の処理手順に従って、第1のキューファイル中のメッセージをスケジュールする処理を行い、スケジュール管理部212は、第2のキューファイル中のメッセージをスケジュールする処理を行う。また3つ以上のキューが存在する場合も同様であるものとする。
【0039】
図3に示す様にステップ301でメッセージ処理装置100のスケジュール管理部211は、スケジュール管理部211が管理する第1のキューファイルを参照してそのキューファイル中にメッセージが格納されているかどうかを調べ、メッセージが格納されている場合にはステップ302へ進む。
【0040】
ステップ302では、プール管理テーブル208を参照してその状態情報が空きであることを示しているレコードを検索する。
【0041】
ステップ303では、前記検索の結果、状態情報が空きであるレコードが検索されたかどうかを調べ、検索された場合にはステップ304へ進み、検索されなかった場合には、所定時間の待ちを行った後、ステップ301の処理を再度行う。
【0042】
ステップ304では、前記検索されたレコード中の状態情報を使用中であることを示す内容に変更する。そしてステップ305では、前記検索されたレコード中のインスタンスポインタを読み出した後、そのインスタンスポインタで示されるインスタンスに前記第1のキューファイル中のメッセージを入力して当該メッセージの処理を実行させ、ステップ301の処理へ戻る。ステップ301でそのキューファイル中にメッセージが格納されているかどうかを調べた結果、メッセージが格納されていない場合には、所定時間の待ちを行った後、ステップ301の処理を再度行う。
【0043】
またメッセージ処理装置100のスケジュール管理部212も、スケジュール管理部212の場合と同様にして第2のキューファイル中のメッセージのスケジュールを行うものとする。
【0044】
図4は本実施形態の空き状態設定処理の処理手順を示すフローチャートである。図4に示す様にメッセージ処理装置100の空き状態設定処理部213は、前記第1または第2のキューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したインスタンスのプール管理テーブル208中の状態情報を空きであることを示す内容に戻す処理を行う。
【0045】
ステップ401で空き状態設定処理部213は、実行中のメッセージ処理の実行状態を監視し、メッセージ処理の終了を検出した場合にはステップ401へ進み、そうでない場合には、所定時間の待ちを行った後、ステップ401の処理を再度行う。
【0046】
ステップ402では、前記終了の検出されたメッセージ処理を実行したインスタンスのインスタンスポインタを受け取り、そのポインタと一致するインスタンスポインタが格納されているレコードをプール管理テーブル208から検索し、ステップ403では、前記検索されたレコードの状態情報を空きであることを示す内容に変更し、ステップ401の処理へ戻る。
【0047】
以上説明した様に本実施形態のメッセージ処理装置によれば、複数キューファイルに格納された各メッセージの単一インスタンスプールへのスケジュールを行うので、メッセージキューイング処理において、多くのクライアントまたはメッセージ送信ノードが存在し、各キュー間で負荷の異なる状態となった場合でも、予め用意しておいた複数の業務アプリケーションを効率的に利用することが可能である。
【0048】
(実施形態2)
以下に単一キューファイル中の異なる種別のメッセージをその種別に対応するインスタンスプールへスケジュールする実施形態2のメッセージ処理装置について説明する。
【0049】
図5は本実施形態のメッセージ処理装置900の概要を示す図である。図5に示す様に本実施形態のメッセージ処理装置500では、キュー中の複数の種別のメッセージを、それぞれの種別のインスタンスプールに対応付ける為の各種テーブルを備えており、キューに格納された各種別のメッセージを対応する種別の業務インスタンスへスケジュールする際、仕掛数に余裕のある種別のプール管理テーブルを参照して空き状態の業務インスタンスへのポインタを取り出し、そのポインタで示される業務インスタンスへのスケジュールを行う。
【0050】
つまり、本装置は、各業務種別毎に業務インスタンスを予め指定しておいた多重度の数だけプールした業務インスタンスプールと、プール内の各インスタンス状態及びインスタンスへのポインタを管理するプール管理テーブルの組を複数備えており、各プール管理テーブルに対応する業務種別、多重度、仕掛数、プール管理テーブルへのポインタを管理する処理管理テーブルを有する。
【0051】
キュー管理テーブルの各業務種別毎のキューポインタは、キューの先頭から同一の業務を有するメッセージを検索し、処理管理テーブルの仕掛数が多重度に達するまで該当メッセージを業務種別に対応するプールの業務インスタンスをスケジュールする。
【0052】
この為、本実施形態のメッセージ処理装置500では、業務数が膨大な数となり、多種類の業務を同一キューに対応させた場合でも、各インスタンスプール中の業務インスタンスを業務毎に独立したものとすることが可能であり、アプリケーションの独立性を損なわずに効率的に業務アプリケーションをスケジュールすることが可能である。
【0053】
図6は本実施形態のメッセージ処理装置500の概略構成を示す図である。図6に示す様に本実施形態のメッセージ処理装置500は、CPU601と、メモリ602と、磁気ディスク装置603と、入力装置604と、出力装置605と、CD−ROM装置606と、通信装置607と、キュー管理テーブル608と、処理管理テーブル609と、プール管理テーブル610とを有している。
【0054】
CPU601は、メッセージ処理装置500全体の動作を制御する装置である。メモリ602は、メッセージ処理装置500全体の動作を制御する際にその為の各種処理プログラムやデータをロードする記憶装置である。
【0055】
磁気ディスク装置603は、前記各種処理プログラムやデータを格納しておく記憶装置である。入力装置604は、キュー中のメッセージを処理する為の各種入力を行う装置である。出力装置605は、キュー中のメッセージ処理に伴う各種出力を行う装置である。
【0056】
CD−ROM装置606は、前記各種処理プログラムを記録したCD−ROMの内容を読み出す装置である。通信装置607は、インターネットやイントラネット等のネットワークを介して他の処理装置との通信を行う装置である。
【0057】
キュー管理テーブル608は、メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタとを対応付けたテーブルである。処理管理テーブル609は、メッセージの種別を示す種別情報と、その種別のメッセージを処理するインスタンスのインスタンスプール上での総数を示す多重度と、その種別のメッセージを処理中のインスタンスの数を示す仕掛数と、その種別のメッセージを処理するインスタンスのプール管理テーブル610の磁気ディスク装置603上での格納位置を示すプールポインタとを対応付けたテーブルである。
【0058】
プール管理テーブル610は、特定の種別のメッセージを処理するインスタンスの状態を示す状態情報と当該インスタンスのメモリ602上での格納位置を示すインスタンスポインタとを対応付けたテーブルである。
【0059】
またメッセージ処理装置500は、スケジュール管理部611と、空き状態設定処理部612とを有している。
【0060】
スケジュール管理部611は、キュー管理テーブル608中のキューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致し、処理管理テーブル609中の対応する種別の多重度が仕掛数よりも大きい場合にその仕掛数に「1」を加算し、そのプールポインタで示されるプール管理テーブル610から状態情報が空きであることを示しているレコードを検索して当該状態情報を使用中であることを示す内容に変更し、前記検索されたレコード中のインスタンスポインタで示されるインスタンスに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させる処理部である。
【0061】
空き状態設定処理部612は、前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したインスタンスのプール管理テーブル610中の状態情報を空きであることを示す内容に変更し、処理管理テーブル609中の対応する仕掛数から「1」を減算する処理部である。
【0062】
メッセージ処理装置500をスケジュール管理部611及び空き状態設定処理部612として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0063】
また、処理管理テーブル609中の多重度を「1」と指定することで、その種別の業務のメッセージ処理順序性を保証するものとしても良い。すなわち、処理管理テーブル609中の多重度を「1」とすれば、その種別のメッセージは常に同じ業務インスタンスで処理されることになり、キューに格納された順序での処理が保証される様になる。
【0064】
図7は本実施形態のスケジュール管理処理の処理手順を示すフローチャートである。図7に示す様にステップ701でメッセージ処理装置500のスケジュール管理部611は、処理管理テーブル609の最初のレコードを読み出した後、そのレコード中の多重度と仕掛数とを比較し、前記多重度が仕掛数よりも大きい場合にはステップ702へ進み、そうでない場合にはステップ709へ進む。
【0065】
ステップ702では、前記読み出したレコード中の種別のキューポインタをキュー管理テーブル608から読み出して、そのキューポインタの位置以降に格納されているメッセージを検索し、前記レコード中の種別と同一の種別識別情報を持つメッセージが格納されているかどうかを調べる。ここで、前記種別のキューポインタがキュー管理テーブル608に格納されていない場合にはキューの最初から検索を行うものとする。
【0066】
ステップ703では、前記検索の結果、前記レコード中の種別と同一の種別識別情報を持つメッセージが検索されたかどうかを調べ、前記メッセージが検索された場合にはステップ704へ進み、そうでない場合にはステップ709へ進む。
【0067】
ステップ704では、前記レコード中の仕掛数に「1」を加算する。
ステップ705では、前記レコード中のプールポインタで識別されるプール管理テーブル610を参照し、その状態情報が空きであることを示しているレコードを検索し、ステップ706では、前記検索されたプール管理テーブル610のレコード中の状態情報を使用中であることを示す内容に変更する。
【0068】
ステップ707では、前記検索されたプール管理テーブル610のレコード中のインスタンスポインタを読み出した後、そのインスタンスポインタで示されるインスタンスに前記検索されたメッセージを入力して当該メッセージの処理を実行させ、ステップ708では、前記実行したメッセージへのキューポインタを、キュー管理テーブル608中に格納してステップ701の処理へ戻る。
【0069】
またステップ709では、メッセージの検索されなかった種別のキューポインタをキュー管理テーブル608から削除した後、処理管理テーブル609の次のレコードを読み出してステップ701へ戻る。また処理管理テーブル609の最後まで達した場合には、所定時間の待ちを行った後、最初のレコードを読み出してステップ701へ戻る。
【0070】
図8は本実施形態の空き状態設定処理の処理手順を示すフローチャートである。図8に示す様にメッセージ処理装置500の空き状態設定処理部612は、前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したインスタンスのプール管理テーブル610中の状態情報を空きであることを示す内容に戻し、処理管理テーブル609中の対応する仕掛数から「1」を減算する処理を行う。
【0071】
ステップ801で空き状態設定処理部612は、実行中のメッセージ処理の実行状態を監視し、メッセージ処理の終了を検出した場合にはステップ801へ進み、そうでない場合には、所定時間の待ちを行った後、ステップ801の処理を再度行う。
【0072】
ステップ802では、前記終了の検出されたメッセージ処理を実行したインスタンスのインスタンスポインタを受け取り、そのポインタと一致するインスタンスポインタが格納されているレコードをプール管理テーブル610から検索し、ステップ803では、前記検索されたレコードの状態情報を空きであることを示す内容に変更する。
【0073】
ステップ804では、前記状態情報を変更したプール管理テーブル610へのプールポインタを格納しているレコードを処理管理テーブル609から検索し、その検索されたレコード中の対応する仕掛数から「1」を減算して、ステップ801の処理へ戻る。
【0074】
以上説明した様に本実施形態のメッセージ処理装置によれば、単一キューファイル中の異なる種別のメッセージをその種別に対応するインスタンスプールへスケジュールするので、メッセージキューイング処理において、多種類の業務が存在する場合に、アプリケーションの独立性を損なわずに効率的に業務アプリケーションをスケジュールすることが可能である。
【0075】
(実施形態3)
以下にキューファイル中のメッセージ種別毎に順序性を保持したスケジュールを行う実施形態3のメッセージ処理装置について説明する。
【0076】
図9は本実施形態のメッセージ処理装置900の概要を示す図である。図9に示す様に本実施形態のメッセージ処理装置900では、インスタンスプール中の各インスタンスに対応したキューポインタを格納するプール管理テーブルを備えており、同一キューに格納された各種別のメッセージをスケジュールする際、キューポインタ以降に存在する同一種別のメッセージを順番に取り出して対応する業務インスタンスへスケジュールする。
【0077】
つまり、本装置は、各業務種別毎に単一の業務インスタンスを対応付けてプールした業務インスタンスプールと、プール内の各インスタンス状態、インスタンスの対応業務種別及びインスタンスへのポインタを管理するプール管理テーブルを有する。
【0078】
プール管理テーブルの各業務種別毎のキューポインタはキューの先頭から同一の業務を有するメッセージを検索し、該当メッセージを業務種別に対応するプールの業務インスタンスをスケジュールする。
【0079】
この為、本実施形態のメッセージ処理装置900では、同一キューに対応付けられた複数業務のメッセージ処理の順序性を保証する場合に、効率的に業務アプリケーションをスケジュールすることが可能である。
【0080】
図10は本実施形態のメッセージ処理装置900の概略構成を示す図である。図10に示す様に本実施形態のメッセージ処理装置900は、CPU1001と、メモリ1002と、磁気ディスク装置1003と、入力装置1004と、出力装置1005と、CD−ROM装置1006と、通信装置1007と、プール管理テーブル1008とを有している。
【0081】
CPU1001は、メッセージ処理装置900全体の動作を制御する装置である。メモリ1002は、メッセージ処理装置900全体の動作を制御する際にその為の各種処理プログラムやデータをロードする記憶装置である。
【0082】
磁気ディスク装置1003は、前記各種処理プログラムやデータを格納しておく記憶装置である。入力装置1004は、キュー中のメッセージを処理する為の各種入力を行う装置である。出力装置1005は、キュー中のメッセージ処理に伴う各種出力を行う装置である。
【0083】
CD−ROM装置1006は、前記各種処理プログラムを記録したCD−ROMの内容を読み出す装置である。通信装置1007は、インターネットやイントラネット等のネットワークを介して他の処理装置との通信を行う装置である。
【0084】
プール管理テーブル1008は、メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタと、その種別のメッセージを処理するインスタンスの状態を示す状態情報と、当該インスタンスのメモリ1002上での格納位置を示すインスタンスポインタとを対応付けたテーブルである。
【0085】
またメッセージ処理装置900は、スケジュール管理部1011と、空き状態設定処理部1012とを有している。
【0086】
スケジュール管理部1011は、プール管理テーブル1008中のキューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致すると共にその状態情報が空きである場合に当該状態情報を使用中であることを示す内容に変更し、そのレコード中のインスタンスポインタで示されるインスタンスに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させる処理部である。
【0087】
空き状態設定処理部1012は、前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したインスタンスのプール管理テーブル1008中の状態情報を空きであることを示す内容に変更する処理部である。
【0088】
メッセージ処理装置900をスケジュール管理部1011及び空き状態設定処理部1012として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0089】
図11は本実施形態のスケジュール管理処理の処理手順を示すフローチャートである。図11に示す様にステップ1101でメッセージ処理装置900のスケジュール管理部1011は、プール管理テーブル1008の最初のレコードを読み出した後、そのレコード中の状態情報が空きであることを示しているかどうかを調べ、空きであることを示している場合にはステップ1102へ進み、そうでない場合にはステップ1107へ進む。
【0090】
ステップ1102では、前記読み出したレコード中のキューポインタを読み出して、そのキューポインタの位置以降に格納されているメッセージを検索し、前記レコード中の種別と同一の種別識別情報を持つメッセージが格納されているかどうかを調べる。ここで、前記種別のキューポインタがプール管理テーブル1008に格納されていない場合にはキューの最初から検索を行うものとする。
【0091】
ステップ1103では、前記検索の結果、前記レコード中の種別と同一の種別識別情報を持つメッセージが検索されたかどうかを調べ、前記メッセージが検索された場合にはステップ1104へ進み、そうでない場合にはステップ1107へ進む。
【0092】
ステップ1104では、前記レコード中の状態情報を使用中であることを示す内容に変更し、ステップ1105では、前記レコード中のインスタンスポインタで示されるインスタンスに前記検索されたメッセージを入力して当該メッセージの処理を実行させる。そしてステップ1106では、前記実行したメッセージへのキューポインタを、プール管理テーブル1008中に格納する。
【0093】
ステップ1107では、プール管理テーブル1008の次のレコードを読み出してステップ1101へ戻る。またプール管理テーブル1008の最後まで達した場合には、所定時間の待ちを行った後、最初のレコードを読み出してステップ1101へ戻る。
【0094】
図12は本実施形態の空き状態設定処理の処理手順を示すフローチャートである。図12に示す様にメッセージ処理装置900の空き状態設定処理部1012は、前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したインスタンスのプール管理テーブル1008中の状態情報を空きであることを示す内容に変更する処理を行う。
【0095】
ステップ1201で空き状態設定処理部1012は、実行中のメッセージ処理の実行状態を監視し、メッセージ処理の終了を検出した場合にはステップ1201へ進み、そうでない場合には、所定時間の待ちを行った後、ステップ1201の処理を再度行う。
【0096】
ステップ1202では、前記終了の検出されたメッセージ処理を実行したインスタンスのインスタンスポインタを受け取り、そのポインタと一致するインスタンスポインタが格納されているレコードをプール管理テーブル1008から検索し、ステップ1203では、前記検索されたレコードの状態情報を空きであることを示す内容に変更し、ステップ1201の処理へ戻る。
【0097】
以上説明した様に本実施形態のメッセージ処理装置によれば、キューファイル中のメッセージ種別毎に順序性を保持したスケジュールを行うので、メッセージキューイング処理において、メッセージの処理順序性を保証しなければならない業務が複数存在したり、メッセージの処理順序性を保証するメセージ識別グループが存在する場合に、効率的に業務アプリケーションをスケジュールすることが可能である。
【0098】
【発明の効果】
本発明によれば、メッセージキューイング処理におけるキュー間で負荷の異なる状態となった場合でも、複数の業務プログラムを効率的に利用することが可能である。
【図面の簡単な説明】
【図1】実施形態1のメッセージ処理装置の概要を示す図である。
【図2】実施形態1のメッセージ処理装置100の概略構成を示す図である。
【図3】実施形態1のスケジュール管理処理の処理手順を示すフローチャートである。
【図4】実施形態1の空き状態設定処理の処理手順を示すフローチャートである。
【図5】実施形態2のメッセージ処理装置の概要を示す図である。
【図6】実施形態2のメッセージ処理装置500の概略構成を示す図である。
【図7】実施形態2のスケジュール管理処理の処理手順を示すフローチャートである。
【図8】実施形態2の空き状態設定処理の処理手順を示すフローチャートである。
【図9】実施形態3のメッセージ処理装置の概要を示す図である。
【図10】実施形態3のメッセージ処理装置900の概略構成を示す図である。
【図11】実施形態3のスケジュール管理処理の処理手順を示すフローチャートである。
【図12】実施形態3の空き状態設定処理の処理手順を示すフローチャートである。
【符号の説明】
100…メッセージ処理装置、201…CPU、202…メモリ、203…磁気ディスク装置、204…入力装置、205…出力装置、206…CD−ROM装置、207…通信装置、208…プール管理テーブル、211…スケジュール管理部、212…スケジュール管理部、213…空き状態設定処理部、500…メッセージ処理装置、601…CPU、602…メモリ、603…磁気ディスク装置、604…入力装置、605…出力装置、606…CD−ROM装置、607…通信装置、608…キュー管理テーブル、609…処理管理テーブル、610…プール管理テーブル、611…スケジュール管理部、612…空き状態設定処理部、900…メッセージ処理装置、1001…CPU、1002…メモリ、1003…磁気ディスク装置、1004…入力装置、1005…出力装置、1006…CD−ROM装置、1007…通信装置、1008…プール管理テーブル、1011…スケジュール管理部、1012…空き状態設定処理部。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technology effective when applied to message processing using message queuing.
[0002]
[Prior art]
The message queuing system is a technology that provides a communication method in which application programs on a transmission side and a reception side do not need to be operating at the same time by asynchronously performing message transfer via a queue. Application programs send and receive messages using an application program interface (API) that operates to register and retrieve messages to and from a queue provided by the message queuing system.
[0003]
A queue is a device that constitutes a logical queue that can store messages, and is usually realized by a file on a disk device. At the time of message transmission, the message is stored in the destination queue by issuing a message registration API by designating the destination queue.
[0004]
The receiving application issues a message extraction API to extract the messages stored in the destination queue in the order in which the messages are connected to the queue (queue) for the longest time. In this case, it is also possible to take out a specific message preferentially.
[0005]
The message queuing system is flexible because both the sending and receiving applications do not need the response of the other party via the queue, so that the sending or receiving process can be performed independently of the state of the other party. It can be said that this is a communication method that includes.
[0006]
Also, since the application is aware only of the queue that is the destination when communicating, measures such as adding changes to business and increasing applications accessing the queue when traffic increases do not affect other applications. It can be said that it is a communication method with expandability.
[0007]
Furthermore, even if a communication failure or a system failure occurs, messages stored in a queue having a substance in a physical medium such as a disk device are not lost, and a highly reliable communication method is provided.
[0008]
2. Description of the Related Art In recent years, with the development and spread of Internet technology, systems for building business based on WWW servers have been increasing. As one of the application models using the technology serving as the foundation for constructing the business, there is a Message Driven Bean (abbreviated as MDB) (for example, see Non-Patent Document 1).
[0009]
In a normal message queuing system, a message receiving application receives a message by issuing a message receiving API, and performs subsequent business processing.
[0010]
On the other hand, since the MDB type business is automatically started, there is no need to issue a message reception API. There is no need for the business to be aware of the security of transactions, authentication and authorization, etc., and the application developer only needs to focus on business processing.
[0011]
In addition, by creating a plurality of identical MDB-type jobs in advance for one queue, it is possible to cope with high traffic. One MDB-type service processes one received message, and when the number of messages stored in the queue increases, multiple MDB-type services created in advance are operated in parallel. it can.
[0012]
[Non-patent document 1]
Richard Monson-Haefel, David A. Cappell, Translated by Mutsumi Konno, Translated by Hideaki Furusawa, "Jave Message Service"O'Reilly Japan, pp. 157-168, first edition first edition issued on October 1, 2001
[0013]
[Problems to be solved by the invention]
In the prior art, the correspondence between the queue and the business in the message queuing system is 1: N, and the structure is such that the business is operated in parallel at the time of high traffic. However, when the number of transmitting clients is huge or there are a plurality of high-traffic transmitting nodes, the same task cannot be processed by a configuration in which one task corresponds to one queue. The structure to be made to correspond is taken. In this case, the business application is tied to each queue unit, and there is a problem that when the load differs between queues, the business program prepared in advance is not efficiently used.
[0014]
Also, if the number of tasks is huge, creating a queue for each task is not a realistic configuration, and multiple tasks correspond to the same queue, and the task identification information assigned to each message is used by the task application. It is a configuration that distributes tasks with awareness. In this case, it is necessary that the application prepared in advance be capable of processing a plurality of tasks, and a change in one task processing part in the application affects another task processing part. There is a problem that conversion is impaired.
[0015]
Furthermore, a case where the order of message processing must be guaranteed when multiple tasks are associated with the same queue, or a case where the same task must be guaranteed the order of processing for each message identification information unit In such a case, it is necessary to make the correspondence between the queue and the application one to one, and there is a problem that the application cannot be operated in parallel for each different business or each different message type, and cannot cope with high traffic.
[0016]
An object of the present invention is to solve the above problem, and in a message queuing process, even when there are many clients or message transmission nodes and the load is different between queues, a plurality of prepared queues are prepared. An object of the present invention is to provide a technology capable of efficiently using business applications.
[0017]
Another object of the present invention is to provide a technique capable of efficiently scheduling a business application without losing the independence of the application when there are many types of business in a message queuing process. .
[0018]
Another object of the present invention is to improve the efficiency of message queuing when there are a plurality of tasks that must guarantee the order of processing of messages or when there is a message identification group that guarantees the order of processing of messages. Another object of the present invention is to provide a technology capable of scheduling business applications.
[0019]
[Means for Solving the Problems]
The present invention performs scheduling of messages in a plurality of queues to a single instance pool, scheduling of messages in a single queue to a plurality of instance pools, and scheduling maintaining the order of each message type in the queue. . Here, an instance indicates a program, an object, a thread, a process, or the like. The instance pool indicates the group of the instances.
[0020]
In the message processing device of the present invention, after a plurality of instances for processing each message registered in a plurality of queue files are pooled in a single instance pool, state information indicating the state of those instances and storage of the instances are stored. A single pool management table is generated in association with an instance pointer indicating a storage location on the device.
[0021]
Next, it is checked whether a message is stored in the first queue file. If a message is stored in the first queue file, the state information is empty from the pool management table. Is searched for, and the status information of the searched record is changed to the content indicating that it is in use.
[0022]
Then, after reading the instance pointer in the searched record, the message in the first queue file is input to the instance indicated by the instance pointer, and the processing of the message is executed.
[0023]
Next, it is checked whether or not the message is stored in the second queue file. If the message is stored in the second queue file, the status information from the pool management table is empty. Is searched for, and the status information of the searched record is changed to the content indicating that it is in use.
[0024]
Then, after reading the instance pointer in the searched record, the message in the second queue file is input to the instance indicated by the instance pointer, and the processing of the message is executed.
[0025]
Next, the processing of the executed instance is monitored, and when the message processing of the first or second queue file is completed, the pool management table is searched by the instance pointer of the instance that executed the message processing. Then, the status information of the searched record is changed to the content indicating that the record is empty.
[0026]
As described above, according to the message processing device of the present invention, since each message stored in a plurality of queue files is scheduled to a single instance pool, many clients or message transmission nodes exist in the message queuing process. However, even when the load is different between the queues, it is possible to efficiently use a plurality of business applications prepared in advance.
[0027]
BEST MODE FOR CARRYING OUT THE INVENTION
(Embodiment 1)
Hereinafter, a message processing device according to the first embodiment of scheduling messages in a plurality of queues to a single instance pool will be described.
[0028]
FIG. 1 is a diagram illustrating an outline of a message processing device 900 according to the present embodiment. As shown in FIG. 1, the message processing apparatus 100 of the present embodiment includes a pool management table for associating messages in a plurality of queues with a single instance pool, and stores each message stored in the plurality of queues. When scheduling to a business instance which is a program, a plurality of schedule management units corresponding to each queue take out a pointer to an empty business instance with reference to a single pool management table, and the business instance indicated by the pointer is taken out. Schedule to
[0029]
For this reason, in the message processing device 100 of the present embodiment, even when many clients or message transmitting nodes store messages in a plurality of queues, respectively, and the load is different among the queues, the queues with a high load Since the message is scheduled to the free business instance, the business application prepared in the instance pool can be used efficiently.
[0030]
FIG. 2 is a diagram showing a schematic configuration of the message processing device 100 of the present embodiment. As shown in FIG. 2, the message processing device 100 of the present embodiment includes a CPU 201, a memory 202, a magnetic disk device 203, an input device 204, an output device 205, a CD-ROM device 206, a communication device 207 , And a pool management table 208.
[0031]
The CPU 201 is a device that controls the operation of the entire message processing device 100 and is used in a computer or an information processing device. The memory 202 is a storage device that loads various processing programs and data for controlling the operation of the entire message processing device 100.
[0032]
The magnetic disk device 203 is a storage device for storing the various processing programs and data. The input device 204 is a device that performs various inputs for processing messages in the queue. The output device 205 is a device that performs various types of output associated with processing messages in the queue.
[0033]
The CD-ROM device 206 is a device for reading the contents of a CD-ROM in which the various processing programs are recorded. The communication device 207 is a device that communicates with another processing device via a network such as the Internet or an intranet. The pool management table 208 is a table in which state information indicating the state of an instance is associated with an instance pointer indicating the storage location of the instance on the memory 202.
In addition, the message processing device 100 includes a schedule management unit 211, a schedule management unit 212, and an empty state setting processing unit 213.
[0034]
When a message is stored in the first queue file, the schedule management unit 211 searches the pool management table 208 for a record indicating that the status information is empty, and uses the status information. A first processing unit that changes the content to indicate that the message is present, inputs a message in the first queue file to an instance indicated by an instance pointer in the searched record, and executes a process of the message. .
[0035]
When a message is stored in the second queue file, the schedule management unit 212 searches the pool management table 208 for a record indicating that the status information is empty, and uses the status information. A second processing unit that changes the content to indicate that the message is present, inputs the message in the second queue file to the instance indicated by the instance pointer in the searched record, and executes the processing of the message. .
[0036]
When the message processing of the first or second queue file is completed, the empty state setting processing unit 213 changes the state information in the pool management table 208 of the instance that has executed the message processing into a content indicating that the instance is empty. This is a processing unit to be changed.
[0037]
A program for causing the message processing device 100 to function as the schedule management unit 211, the schedule management unit 212, and the empty state setting processing unit 213 is recorded on a recording medium such as a CD-ROM, stored on a magnetic disk or the like, and then stored in a memory. It shall be loaded and executed. The recording medium for recording the program may be a recording medium other than the CD-ROM. Further, the program may be installed from the recording medium to the information processing apparatus and used, or the recording medium may be accessed through a network to use the program.
[0038]
FIG. 3 is a flowchart illustrating a procedure of the schedule management process according to the present embodiment. The schedule management unit 211 of the message processing device 100 according to the present embodiment performs a process of scheduling a message in the first queue file according to the processing procedure of FIG. 3, and the schedule management unit 212 performs a process of scheduling the message in the second queue file. Perform the process of scheduling the message. The same applies when there are three or more queues.
[0039]
As shown in FIG. 3, in step 301, the schedule management unit 211 of the message processing device 100 refers to the first queue file managed by the schedule management unit 211 and checks whether a message is stored in the queue file. If the message is stored, the process proceeds to step 302.
[0040]
In step 302, a record indicating that the status information is empty is searched for with reference to the pool management table 208.
[0041]
In step 303, it is checked whether or not a record with empty state information has been found as a result of the search. If found, the process proceeds to step 304. Thereafter, the processing of step 301 is performed again.
[0042]
In step 304, the status information in the searched record is changed to a content indicating that it is in use. Then, in step 305, after reading the instance pointer in the searched record, the message in the first queue file is input to the instance indicated by the instance pointer, and the process of the message is executed. Return to the processing of. As a result of checking whether or not a message is stored in the queue file in step 301, if no message is stored, the process waits for a predetermined time and then performs the process of step 301 again.
[0043]
The schedule management unit 212 of the message processing device 100 also schedules the messages in the second queue file in the same manner as the schedule management unit 212.
[0044]
FIG. 4 is a flowchart illustrating a processing procedure of the empty state setting processing according to the present embodiment. As shown in FIG. 4, when the message processing of the first or second queue file ends, the free state setting processing unit 213 of the message processing device 100 stores the message in the pool management table 208 of the instance that has executed the message processing. A process is performed to return the status information to the content indicating that it is empty.
[0045]
In step 401, the free state setting processing unit 213 monitors the execution state of the message processing being executed, and proceeds to step 401 if the end of the message processing is detected, otherwise waits for a predetermined time. After that, the processing of step 401 is performed again.
[0046]
In step 402, an instance pointer of the instance that has executed the message processing whose end is detected is received, and a record storing an instance pointer that matches the pointer is retrieved from the pool management table 208. In step 403, the retrieval is performed. The status information of the record thus set is changed to a content indicating that the record is empty, and the process returns to step 401.
[0047]
As described above, according to the message processing device of the present embodiment, each message stored in a plurality of queue files is scheduled to a single instance pool. Exists, and even if the load is different between the queues, it is possible to efficiently use a plurality of business applications prepared in advance.
[0048]
(Embodiment 2)
Hereinafter, a message processing device according to the second embodiment that schedules messages of different types in a single queue file to an instance pool corresponding to the type will be described.
[0049]
FIG. 5 is a diagram showing an outline of the message processing device 900 of the present embodiment. As shown in FIG. 5, the message processing device 500 of the present embodiment includes various tables for associating a plurality of types of messages in the queue with instance pools of the respective types. When a message is scheduled to a corresponding type of business instance, a pointer to a free business instance is fetched by referring to the pool management table of a type that has a sufficient number of processes, and the schedule to the business instance indicated by the pointer is taken out. I do.
[0050]
In other words, the present apparatus includes a business instance pool in which business instances are pooled by the number of multiplicity in which a business instance is specified in advance for each business type, and a pool management table for managing the state of each instance in the pool and a pointer to the instance. A plurality of sets are provided, and a processing management table for managing a task type, multiplicity, number of processes, and a pointer to the pool management table corresponding to each pool management table.
[0051]
The queue pointer for each task type in the queue management table searches for messages having the same task from the head of the queue, and transfers the relevant message to the pool task corresponding to the task type until the number of processes in the process management table reaches the multiplicity. Schedule an instance.
[0052]
For this reason, in the message processing device 500 of the present embodiment, the number of operations becomes enormous, and even when many types of operations are made to correspond to the same queue, the business instances in each instance pool are independent for each operation. It is possible to schedule business applications efficiently without impairing the independence of the applications.
[0053]
FIG. 6 is a diagram showing a schematic configuration of the message processing device 500 of the present embodiment. As shown in FIG. 6, the message processing device 500 of this embodiment includes a CPU 601, a memory 602, a magnetic disk device 603, an input device 604, an output device 605, a CD-ROM device 606, and a communication device 607. , A queue management table 608, a processing management table 609, and a pool management table 610.
[0054]
The CPU 601 is a device that controls the operation of the entire message processing device 500. The memory 602 is a storage device that loads various processing programs and data for controlling the operation of the entire message processing device 500.
[0055]
The magnetic disk device 603 is a storage device that stores the various processing programs and data. The input device 604 is a device that performs various inputs for processing messages in the queue. The output device 605 is a device that performs various types of output associated with processing messages in the queue.
[0056]
The CD-ROM device 606 is a device for reading the contents of the CD-ROM in which the various processing programs are recorded. The communication device 607 is a device that communicates with another processing device via a network such as the Internet or an intranet.
[0057]
The queue management table 608 is a table in which type information indicating the type of a message is associated with a queue pointer indicating the position of the message in the queue file. The process management table 609 includes type information indicating the type of the message, multiplicity indicating the total number of instances for processing the message of the type in the instance pool, and a device indicating the number of instances that are processing the message of the type. This is a table in which the number is associated with a pool pointer indicating the storage position on the magnetic disk device 603 of the pool management table 610 of the instance that processes the message of that type.
[0058]
The pool management table 610 is a table in which status information indicating the status of an instance that processes a specific type of message is associated with an instance pointer indicating the storage location of the instance on the memory 602.
[0059]
Further, the message processing device 500 includes a schedule management unit 611 and an empty state setting processing unit 612.
[0060]
The schedule management unit 611 determines that the type of the message stored at the position of the queue pointer in the queue management table 608 matches the corresponding type information, and that the multiplicity of the corresponding type in the process management table 609 is greater than the number of processes in progress. If the value is also larger, “1” is added to the number of works in progress, a record indicating that the state information is empty is searched from the pool management table 610 indicated by the pool pointer, and the state information is being used. A message indicating that the message at the position indicated by the queue pointer is input to the instance indicated by the instance pointer in the searched record, and the message is processed.
[0061]
When the message processing of the queue file is completed, the empty state setting processing unit 612 changes the state information in the pool management table 610 of the instance that has executed the message processing to the content indicating that it is empty, and executes the processing management table. A processing unit that subtracts “1” from the corresponding number of processes in 609.
[0062]
A program for causing the message processing device 500 to function as the schedule management unit 611 and the empty state setting processing unit 612 is recorded on a recording medium such as a CD-ROM, stored on a magnetic disk or the like, and then loaded into a memory and executed. Shall be. The recording medium for recording the program may be a recording medium other than the CD-ROM. Further, the program may be installed from the recording medium to the information processing apparatus and used, or the recording medium may be accessed through a network to use the program.
[0063]
Also, by specifying the multiplicity in the processing management table 609 as “1”, the message processing order of the task of that type may be guaranteed. That is, if the multiplicity in the processing management table 609 is set to “1”, messages of that type are always processed in the same business instance, and processing in the order in which they are stored in the queue is guaranteed. Become.
[0064]
FIG. 7 is a flowchart illustrating a processing procedure of the schedule management processing according to the present embodiment. As shown in FIG. 7, in step 701, the schedule management unit 611 of the message processing device 500 reads the first record of the processing management table 609, compares the multiplicity in the record with the number of processes, and determines the multiplicity. If is larger than the number of processes in progress, the process proceeds to step 702; otherwise, the process proceeds to step 709.
[0065]
In step 702, the queue pointer of the type in the read record is read from the queue management table 608, and the message stored after the position of the queue pointer is searched, and the same type identification information as the type in the record is retrieved. Checks if a message with is stored. Here, when the queue pointer of the type is not stored in the queue management table 608, the search is performed from the beginning of the queue.
[0066]
In step 703, it is checked whether a message having the same type identification information as the type in the record has been searched as a result of the search. If the message has been searched, the process proceeds to step 704; Proceed to step 709.
[0067]
In step 704, "1" is added to the number of processes in the record.
In step 705, the pool management table 610 identified by the pool pointer in the record is referred to, and a record indicating that the state information is empty is searched. In step 706, the searched pool management table is searched. The status information in the record 610 is changed to the content indicating that the status is in use.
[0068]
In step 707, after reading the instance pointer in the record of the searched pool management table 610, the searched message is input to the instance indicated by the instance pointer, and the processing of the message is executed. Then, the queue pointer to the executed message is stored in the queue management table 608, and the process returns to step 701.
[0069]
In step 709, after deleting the queue pointer of the type for which no message was found from the queue management table 608, the next record in the processing management table 609 is read, and the process returns to step 701. If the process has reached the end of the process management table 609, the process waits for a predetermined time, reads the first record, and returns to step 701.
[0070]
FIG. 8 is a flowchart illustrating a processing procedure of the empty state setting processing according to the present embodiment. As shown in FIG. 8, when the message processing of the queue file ends, the free state setting processing unit 612 of the message processing device 500 sets the state information in the pool management table 610 of the instance that executed the message processing to free. Then, processing is performed to subtract “1” from the corresponding number of processes in process in the processing management table 609.
[0071]
In step 801, the free state setting processing unit 612 monitors the execution state of the message processing being executed, and proceeds to step 801 if the end of the message processing is detected, and otherwise waits for a predetermined time. After that, the processing of step 801 is performed again.
[0072]
In step 802, an instance pointer of the instance that has executed the message processing whose end has been detected is received, and a record storing an instance pointer that matches the pointer is searched from the pool management table 610. In step 803, the search is performed. The status information of the specified record is changed to the content indicating that it is empty.
[0073]
In step 804, a record storing the pool pointer to the pool management table 610 whose status information has been changed is searched from the processing management table 609, and "1" is subtracted from the corresponding number of processes in the searched record. Then, the process returns to step 801.
[0074]
As described above, according to the message processing device of the present embodiment, different types of messages in a single queue file are scheduled to the instance pool corresponding to the type, so that various types of work are performed in the message queuing process. When present, business applications can be efficiently scheduled without impairing application independence.
[0075]
(Embodiment 3)
Hereinafter, a message processing device according to a third embodiment that performs a schedule while maintaining the order for each message type in the queue file will be described.
[0076]
FIG. 9 is a diagram showing an outline of the message processing device 900 of the present embodiment. As shown in FIG. 9, the message processing device 900 of this embodiment includes a pool management table for storing queue pointers corresponding to each instance in the instance pool, and schedules various different messages stored in the same queue. At this time, messages of the same type existing after the queue pointer are sequentially extracted and scheduled to the corresponding business instance.
[0077]
In other words, the present apparatus has a business instance pool in which a single business instance is associated with each business type and pooled, and a pool management table for managing the status of each instance in the pool, the corresponding business type of the instance, and a pointer to the instance. Having.
[0078]
The queue pointer for each service type in the pool management table searches for a message having the same service from the head of the queue, and schedules the corresponding message to a service instance of the pool corresponding to the service type.
[0079]
For this reason, the message processing device 900 of the present embodiment can efficiently schedule business applications when guaranteeing the order of message processing of a plurality of businesses associated with the same queue.
[0080]
FIG. 10 is a diagram showing a schematic configuration of the message processing device 900 of the present embodiment. As shown in FIG. 10, the message processing device 900 according to the present embodiment includes a CPU 1001, a memory 1002, a magnetic disk device 1003, an input device 1004, an output device 1005, a CD-ROM device 1006, a communication device 1007, And a pool management table 1008.
[0081]
The CPU 1001 is a device that controls the operation of the entire message processing device 900. The memory 1002 is a storage device that loads various processing programs and data for controlling the operation of the entire message processing device 900.
[0082]
The magnetic disk device 1003 is a storage device for storing the various processing programs and data. The input device 1004 is a device that performs various inputs for processing messages in the queue. The output device 1005 is a device that performs various types of output accompanying the processing of messages in the queue.
[0083]
The CD-ROM device 1006 is a device for reading the contents of a CD-ROM in which the various processing programs are recorded. The communication device 1007 is a device that communicates with another processing device via a network such as the Internet or an intranet.
[0084]
The pool management table 1008 includes type information indicating the type of message, a queue pointer indicating the position of the message in the queue file, state information indicating the state of the instance that processes the message of the type, and 5 is a table in which an instance pointer indicating a storage position on the memory 1002 is associated.
[0085]
Further, the message processing device 900 includes a schedule management unit 1011 and an empty state setting processing unit 1012.
[0086]
If the type of the message stored at the position of the queue pointer in the pool management table 1008 matches the corresponding type information and the status information is empty, the schedule management unit 1011 uses the status information. This is a processing unit that changes the content to indicate that the message is present, inputs the message at the position indicated by the queue pointer to the instance indicated by the instance pointer in the record, and executes the processing of the message.
[0087]
The empty state setting processing unit 1012 is a processing unit that, when the message processing of the queue file is completed, changes the state information in the pool management table 1008 of the instance that has executed the message processing to the content indicating that it is empty. .
[0088]
A program for causing the message processing device 900 to function as the schedule management unit 1011 and the empty state setting processing unit 1012 is recorded on a recording medium such as a CD-ROM, stored on a magnetic disk or the like, and then loaded into a memory and executed. Shall be. The recording medium for recording the program may be a recording medium other than the CD-ROM. Further, the program may be installed from the recording medium to the information processing apparatus and used, or the recording medium may be accessed through a network to use the program.
[0089]
FIG. 11 is a flowchart illustrating a procedure of the schedule management process according to the present embodiment. As shown in FIG. 11, after reading the first record of the pool management table 1008 in step 1101, the schedule management unit 1011 of the message processing device 900 determines whether the status information in the record indicates that the record is empty. It is checked, and if it indicates that it is empty, the process proceeds to step 1102; otherwise, the process proceeds to step 1107.
[0090]
In step 1102, the queue pointer in the read record is read, and a message stored after the position of the queue pointer is searched. A message having the same type identification information as the type in the record is stored. Find out if there is. Here, if the queue pointer of the type is not stored in the pool management table 1008, the search is performed from the beginning of the queue.
[0091]
In step 1103, it is checked whether a message having the same type identification information as the type in the record has been searched as a result of the search. If the message has been searched, the process proceeds to step 1104; Proceed to step 1107.
[0092]
In step 1104, the status information in the record is changed to a content indicating that it is being used. In step 1105, the retrieved message is input to the instance indicated by the instance pointer in the record, and the Execute the process. In step 1106, the queue pointer to the executed message is stored in the pool management table 1008.
[0093]
In step 1107, the next record in the pool management table 1008 is read, and the flow returns to step 1101. Also, when the end of the pool management table 1008 has been reached, after waiting for a predetermined time, the first record is read and the process returns to step 1101.
[0094]
FIG. 12 is a flowchart illustrating a processing procedure of the empty state setting processing according to the present embodiment. As shown in FIG. 12, when the message processing of the queue file ends, the empty state setting processing unit 1012 of the message processing device 900 sets the state information in the pool management table 1008 of the instance that executed the message processing to be empty. A process is performed to change the content to show that the
[0095]
In step 1201, the empty state setting processing unit 1012 monitors the execution state of the message processing being executed, and proceeds to step 1201 if the end of the message processing is detected, and waits for a predetermined time otherwise. After that, the processing of step 1201 is performed again.
[0096]
In step 1202, an instance pointer of the instance that has executed the message processing whose end has been detected is received, and a record storing an instance pointer that matches the pointer is searched from the pool management table 1008. In step 1203, the search is performed. The status information of the record thus entered is changed to the content indicating that it is empty, and the process returns to step 1201.
[0097]
As described above, according to the message processing device of the present embodiment, a schedule that maintains the order of each message type in the queue file is performed. Therefore, in the message queuing process, the order of processing the messages must be guaranteed. When there are a plurality of tasks that need to be performed, or when there is a message identification group that guarantees the message processing order, it is possible to efficiently schedule the task application.
[0098]
【The invention's effect】
According to the present invention, it is possible to efficiently use a plurality of business programs even when the loads in the queues in the message queuing process are different.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an overview of a message processing device according to a first embodiment.
FIG. 2 is a diagram illustrating a schematic configuration of a message processing device 100 according to the first embodiment.
FIG. 3 is a flowchart illustrating a procedure of a schedule management process according to the first embodiment.
FIG. 4 is a flowchart illustrating a processing procedure of an empty state setting process according to the first embodiment.
FIG. 5 is a diagram illustrating an outline of a message processing device according to a second embodiment.
FIG. 6 is a diagram illustrating a schematic configuration of a message processing device 500 according to a second embodiment.
FIG. 7 is a flowchart illustrating a procedure of a schedule management process according to the second embodiment.
FIG. 8 is a flowchart illustrating a processing procedure of an empty state setting process according to the second embodiment.
FIG. 9 is a diagram illustrating an outline of a message processing device according to a third embodiment.
FIG. 10 is a diagram illustrating a schematic configuration of a message processing device 900 according to a third embodiment.
FIG. 11 is a flowchart illustrating a procedure of a schedule management process according to the third embodiment.
FIG. 12 is a flowchart illustrating a processing procedure of an empty state setting process according to the third embodiment.
[Explanation of symbols]
100: Message processing device, 201: CPU, 202: Memory, 203: Magnetic disk device, 204: Input device, 205: Output device, 206: CD-ROM device, 207: Communication device, 208: Pool management table, 211 ... Schedule management unit, 212: schedule management unit, 213: empty state setting processing unit, 500: message processing device, 601: CPU, 602: memory, 603: magnetic disk device, 604: input device, 605: output device, 606 ... CD-ROM device, 607 communication device, 608 queue management table, 609 processing management table, 610 pool management table, 611 schedule management unit, 612 free state setting processing unit, 900 message processing device, 1001 CPU, 1002 ... memory, 1003 ... magnetic disk Device, 1004 ... input device, 1005 ... output device, 1006 ... CD-ROM device, 1007 ... communication device, 1008 ... pool management table, 1011 ... schedule management unit, 1012 ... idle setting processing unit.

Claims (10)

第1のキューファイル中にメッセージが格納されている場合に、プログラムの状態を示す状態情報と当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付け、その状態情報が空きであることを示している状態情報を使用中であることを示す内容に変更するステップと、当該状態情報に対応するプログラムポインタで示されるプログラムに前記第1のキューファイル中のメッセージを入力して当該メッセージの処理を実行させるステップと、
第2のキューファイル中にメッセージが格納されている場合に、その状態情報が空きであることを示している当該状態情報を使用中であることを示す内容に変更するステップと、当該状態情報に対応するプログラムポインタで示されるプログラムに前記第2のキューファイル中のメッセージを入力して当該メッセージの処理を実行させるステップと、
前記第1または第2のキューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更するステップとを有することを特徴とするメッセージ処理方法。
When a message is stored in the first queue file, status information indicating the status of the program is associated with a program pointer indicating the storage location of the program on the storage unit, and the status information is empty. Changing the status information indicating that the status information is being used, and inputting a message in the first queue file to a program indicated by a program pointer corresponding to the status information, and Performing the processing of
When a message is stored in the second queue file, changing the status information indicating that the status information is empty to a content indicating that the status information is being used; Inputting a message in the second queue file to a program indicated by a corresponding program pointer to execute processing of the message;
When the message processing of the first or second queue file is completed, changing the status information of the program that executed the message processing to contents indicating that the message processing is free. .
メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタとを対応付け、そのキューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致するかどうかを判定するステップと、
メッセージの種別を示す種別情報と、その種別のメッセージを処理するプログラムのプログラムプール上での総数を示す多重度と、その種別のメッセージを処理中のプログラムの数を示す仕掛数と、その種別のメッセージを処理するプログラムのプール管理データの記憶手段上での格納位置を示すプールポインタとを対応付け、前記一致する種別の多重度が仕掛数よりも大きい場合にその仕掛数に1を加算するステップと、
特定の種別のメッセージを処理するプログラムの状態を示す状態情報と当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付けた複数のプール管理データの内、前記加算した仕掛数に対応するプールポインタで示されるプール管理データ中の空きであることを示している状態情報を使用中であることを示す内容に変更するステップと、
当該状態情報に対応するプログラムポインタで示されるプログラムに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させるステップと、
前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更し、対応する仕掛数から1を減算するステップとを有することを特徴とするメッセージ処理方法。
Type information indicating the type of the message is associated with a queue pointer indicating the position of the message in the queue file, and the type of the message stored at the position of the queue pointer matches the corresponding type information. Determining whether to do so;
Type information indicating the type of message, multiplicity indicating the total number of programs that process messages of that type in the program pool, the number of processes in progress indicating the number of programs that are processing messages of that type, and Associating a pool pointer indicating the storage location of the program for processing the message with the pool management data on the storage means, and adding 1 to the number of processes when the multiplicity of the matching type is larger than the number of processes. When,
Among a plurality of pool management data in which status information indicating a status of a program for processing a message of a specific type is associated with a program pointer indicating a storage location of the program on a storage unit, the pool management data corresponds to the added number of processes in progress. Changing the status information indicating that the pool management data is empty in the pool management data indicated by the pool pointer to the content indicating that the pool is in use;
Inputting a message at a position indicated by the queue pointer to a program indicated by a program pointer corresponding to the state information and causing the program to execute processing of the message;
When the message processing of the queue file is completed, changing the status information of the program that executed the message processing to contents indicating that the program is empty, and subtracting 1 from the corresponding number of processes in progress. The message processing method to do.
前記多重度を1と指定することで、該当種別のメッセージ処理順序性を保証することを特徴とする請求項2に記載されたメッセージ処理方法。3. The message processing method according to claim 2, wherein by designating the multiplicity as 1, the message processing order of the corresponding type is guaranteed. メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタと、その種別のメッセージを処理するプログラムの状態を示す状態情報と、当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付け、キューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致すると共にその状態情報が空きである場合に当該状態情報を使用中であることを示す内容に変更するステップと、
そのプログラムポインタで示されるプログラムに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させるステップと、
前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更するステップとを有することを特徴とするメッセージ処理方法。
Type information indicating the type of the message, a queue pointer indicating the position of the message in the queue file, status information indicating the status of the program that processes the message of the type, and When the type of the message stored at the position of the queue pointer matches the corresponding type information and the status information is empty, the status information is being used. Changing the content to indicate that
Inputting a message at a position indicated by the queue pointer to a program indicated by the program pointer and causing the program to execute processing of the message;
When the message processing of the queue file is completed, changing the status information of the program that has executed the message processing to contents indicating that the program is free.
第1のキューファイル中にメッセージが格納されている場合に、プログラムの状態を示す状態情報と当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付け、その状態情報が空きであることをことを示している状態情報を使用中であることを示す内容に変更し、当該状態情報に対応するプログラムポインタで示されるプログラムに前記第1のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる第1のスケジュール管理部と、
第2のキューファイル中にメッセージが格納されている場合に、その状態情報が空きであることを示している状態情報を使用中であることを示す内容に変更し、当該状態情報に対応するプログラムポインタで示されるプログラムに前記第2のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる第2のスケジュール管理部と、
前記第1または第2のキューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更する空き状態設定処理部とを備えることを特徴とするメッセージ処理装置。
When a message is stored in the first queue file, status information indicating the status of the program is associated with a program pointer indicating the storage location of the program on the storage unit, and the status information is empty. The status information indicating that the message is being used, and inputting the message in the first queue file to the program indicated by the program pointer corresponding to the status information, and A first schedule management unit for executing the processing of
When the message is stored in the second queue file, the status information indicating that the status information is empty is changed to the content indicating that the status is in use, and the program corresponding to the status information is changed. A second schedule management unit that inputs a message in the second queue file to a program indicated by a pointer and executes processing of the message;
An empty state setting processing unit that, when the message processing of the first or second queue file is completed, changes the state information of the program that has executed the message processing to contents indicating that it is empty. Message processing device.
メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタとを対応付け、そのキューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致するかどうかを判定し、メッセージの種別を示す種別情報と、その種別のメッセージを処理するプログラムのプログラムプール上での総数を示す多重度と、その種別のメッセージを処理中のプログラムの数を示す仕掛数と、その種別のメッセージを処理するプログラムのプール管理データの記憶手段上での格納位置を示すプールポインタとを対応付け、前記一致する種別の多重度が仕掛数よりも大きい場合にその仕掛数に1を加算し、特定の種別のメッセージを処理するプログラムの状態を示す状態情報と当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付けた複数のプール管理データの内、前記加算した仕掛数に対応するプールポインタで示されるプール管理データ中の空きであることを示している状態情報を使用中であることを示す内容に変更し、当該状態情報に対応するプログラムポインタで示されるプログラムに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させるスケジュール管理部と、
前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更し、対応する仕掛数から1を減算する空き状態設定処理部とを備えることを特徴とするメッセージ処理装置。
Type information indicating the type of the message is associated with a queue pointer indicating the position of the message in the queue file, and the type of the message stored at the position of the queue pointer matches the corresponding type information. The type of message indicating the type of the message, the multiplicity indicating the total number of programs that process the message of the type in the program pool, and the number of programs that are processing the message of the type. The number of processes is associated with a pool pointer indicating a storage position of a program for processing a message of the type on the storage means of the pool management data. If the multiplicity of the matching type is larger than the number of processes, the One is added to the number, and state information indicating a state of a program that processes a message of a specific type and state information of the program It indicates that there is a vacancy in the pool management data indicated by the pool pointer corresponding to the added number of processes in the plurality of pool management data associated with the program pointer indicating the storage position on the storage unit. Schedule management for changing the status information to a content indicating that the status information is in use, inputting the message at the position indicated by the queue pointer to the program indicated by the program pointer corresponding to the status information, and executing the processing of the message Department and
When the message processing of the queue file is completed, the status information of the program that has executed the message processing is changed to contents indicating that the program is empty, and an empty state setting processing unit that subtracts 1 from the corresponding number of processes in progress is provided. A message processing device characterized by the above-mentioned.
メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタと、その種別のメッセージを処理するプログラムの状態を示す状態情報と、当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付け、キューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致すると共にその状態情報が空きである場合に当該状態情報を使用中であることを示す内容に変更し、そのプログラムポインタで示されるプログラムに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させるスケジュール管理部と、
前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更する空き状態設定処理部とを備えることを特徴とするメッセージ処理装置。
Type information indicating the type of the message, a queue pointer indicating the position of the message in the queue file, status information indicating the status of the program that processes the message of the type, and When the type of the message stored at the position of the queue pointer matches the corresponding type information and the status information is empty, the status information is being used. A schedule management unit that changes the content to indicate that, and inputs a message at the position indicated by the queue pointer to the program indicated by the program pointer and executes the processing of the message,
A message processing device comprising: an empty state setting processing unit that, when the message processing of the queue file is completed, changes the state information of the program that has executed the message processing to contents indicating that the program is empty.
第1のキューファイル中にメッセージが格納されている場合に、プログラムの状態を示す状態情報と当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付け、その状態情報が空きであることをことを示している状態情報を使用中であることを示す内容に変更し、当該状態情報に対応するプログラムポインタで示されるプログラムに前記第1のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる第1のスケジュール管理部と、
第2のキューファイル中にメッセージが格納されている場合に、その状態情報が空きであることを示している状態情報を使用中であることを示す内容に変更し、当該状態情報に対応するプログラムポインタで示されるプログラムに前記第2のキューファイル中のメッセージを入力して当該メッセージの処理を実行させる第2のスケジュール管理部と、
前記第1または第2のキューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更する空き状態設定処理部としてコンピュータを機能させることを特徴とするプログラム。
When a message is stored in the first queue file, status information indicating the status of the program is associated with a program pointer indicating the storage location of the program on the storage unit, and the status information is empty. The status information indicating that the message is being used, and inputting the message in the first queue file to the program indicated by the program pointer corresponding to the status information, and A first schedule management unit for executing the processing of
When the message is stored in the second queue file, the status information indicating that the status information is empty is changed to the content indicating that the status is in use, and the program corresponding to the status information is changed. A second schedule management unit that inputs a message in the second queue file to a program indicated by a pointer and executes processing of the message;
When the message processing of the first or second queue file is completed, the computer is caused to function as an empty state setting processing unit that changes the state information of the program that has executed the message processing to contents indicating that it is empty. Features program.
メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタとを対応付け、そのキューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致するかどうかを判定し、メッセージの種別を示す種別情報と、その種別のメッセージを処理するプログラムのプログラムプール上での総数を示す多重度と、その種別のメッセージを処理中のプログラムの数を示す仕掛数と、その種別のメッセージを処理するプログラムのプール管理データの記憶手段上での格納位置を示すプールポインタとを対応付け、前記一致する種別の多重度が仕掛数よりも大きい場合にその仕掛数に1を加算し、特定の種別のメッセージを処理するプログラムの状態を示す状態情報と当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付けた複数のプール管理データの内、前記加算した仕掛数に対応するプールポインタで示されるプール管理データ中の空きであることを示している状態情報を使用中であることを示す内容に変更し、当該状態情報に対応するプログラムポインタで示されるプログラムに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させるスケジュール管理部と、
前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更し、対応する仕掛数から1を減算する空き状態設定処理部としてコンピュータを機能させることを特徴とするプログラム。
Type information indicating the type of the message is associated with a queue pointer indicating the position of the message in the queue file, and the type of the message stored at the position of the queue pointer matches the corresponding type information. The type of message indicating the type of the message, the multiplicity indicating the total number of programs that process the message of the type in the program pool, and the number of programs that are processing the message of the type. The number of processes is associated with a pool pointer indicating a storage position of a program for processing a message of the type on the storage means of the pool management data. If the multiplicity of the matching type is larger than the number of processes, the One is added to the number, and state information indicating a state of a program that processes a message of a specific type and state information of the program It indicates that there is a vacancy in the pool management data indicated by the pool pointer corresponding to the added number of processes in the plurality of pool management data associated with the program pointer indicating the storage position on the storage unit. Schedule management for changing the status information to a content indicating that the status information is in use, inputting the message at the position indicated by the queue pointer to the program indicated by the program pointer corresponding to the status information, and executing the processing of the message Department and
When the message processing of the queue file is completed, the status information of the program that executed the message processing is changed to the content indicating that it is empty, and the computer is used as an empty state setting processing unit that subtracts 1 from the corresponding number of processes in progress. A program characterized by functioning.
メッセージの種別を示す種別情報と、その種別のメッセージのキューファイル中での位置を示すキューポインタと、その種別のメッセージを処理するプログラムの状態を示す状態情報と、当該プログラムの記憶手段上での格納位置を示すプログラムポインタとを対応付け、キューポインタの位置に格納されているメッセージの種別が、対応する種別情報と一致すると共にその状態情報が空きである場合に当該状態情報を使用中であることを示す内容に変更し、そのプログラムポインタで示されるプログラムに前記キューポインタで示される位置のメッセージを入力して当該メッセージの処理を実行させるスケジュール管理部と、
前記キューファイルのメッセージ処理が終了した場合に当該メッセージ処理を実行したプログラムの状態情報を空きであることを示す内容に変更する空き状態設定処理部としてコンピュータを機能させることを特徴とするプログラム。
Type information indicating the type of the message, a queue pointer indicating the position of the message in the queue file, status information indicating the status of the program that processes the message of the type, and When the type of the message stored at the position of the queue pointer matches the corresponding type information and the status information is empty, the status information is being used. A schedule management unit that changes the content to indicate that, and inputs a message at the position indicated by the queue pointer to the program indicated by the program pointer and executes the processing of the message,
A program that causes a computer to function as an empty state setting processing unit that changes the state information of a program that has executed the message processing to contents indicating that it is empty when the message processing of the queue file ends.
JP2003092225A 2003-03-28 2003-03-28 Message processing method, execution device therefor and processing program therefor Pending JP2004302630A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003092225A JP2004302630A (en) 2003-03-28 2003-03-28 Message processing method, execution device therefor and processing program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003092225A JP2004302630A (en) 2003-03-28 2003-03-28 Message processing method, execution device therefor and processing program therefor

Publications (1)

Publication Number Publication Date
JP2004302630A true JP2004302630A (en) 2004-10-28

Family

ID=33405386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003092225A Pending JP2004302630A (en) 2003-03-28 2003-03-28 Message processing method, execution device therefor and processing program therefor

Country Status (1)

Country Link
JP (1) JP2004302630A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215968A (en) * 2005-02-07 2006-08-17 Fujitsu Ltd Data processing device, data processing method, data processing program, and recording medium
JP2013222407A (en) * 2012-04-18 2013-10-28 Bank Of Tokyo-Mitsubishi Ufj Ltd System having flow rate control function
JP2014006573A (en) * 2012-06-21 2014-01-16 Fujitsu Ltd Monitoring control system including task execution order control function
JP2016144169A (en) * 2015-02-05 2016-08-08 株式会社日立製作所 Communication system, queue management server, and communication method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215968A (en) * 2005-02-07 2006-08-17 Fujitsu Ltd Data processing device, data processing method, data processing program, and recording medium
JP4540495B2 (en) * 2005-02-07 2010-09-08 富士通株式会社 Data processing apparatus, data processing method, data processing program, and recording medium
JP2013222407A (en) * 2012-04-18 2013-10-28 Bank Of Tokyo-Mitsubishi Ufj Ltd System having flow rate control function
JP2014006573A (en) * 2012-06-21 2014-01-16 Fujitsu Ltd Monitoring control system including task execution order control function
JP2016144169A (en) * 2015-02-05 2016-08-08 株式会社日立製作所 Communication system, queue management server, and communication method

Similar Documents

Publication Publication Date Title
US8190599B2 (en) Stream data processing method and system
US8150812B2 (en) Methods, apparatus and computer programs for data replication
US8438282B2 (en) Information processing system and load sharing method
CA2209549C (en) Method and apparatus for loading data into a database in a multiprocessor environment
JPH08287162A (en) Work flow system
JPH0954754A (en) Customer-information control system and method in loosely-coupled parallel processing environment
JP4141875B2 (en) Recovery processing method, its execution system, and its processing program
CN108733515A (en) Dispatching method, file backup method, device and the storage medium of file backup
JP2006338197A (en) Transaction control program, transaction control method, and transaction processing system
US10599472B2 (en) Information processing apparatus, stage-out processing method and recording medium recording job management program
US20080077939A1 (en) Solution for modifying a queue manager to support smart aliasing which permits extensible software to execute against queued data without application modifications
JPH0944461A (en) System and method for control of customer information with api start and cancel transaction function in loosely-coupledparallel processing environment
JP2004302630A (en) Message processing method, execution device therefor and processing program therefor
JPH0695859A (en) Software assets management system
US7650606B2 (en) System recovery
JP2003208323A (en) Method, system and program for executing batch job
US20140040191A1 (en) Inventorying and copying file system folders and files
US8312100B2 (en) Managing orphaned requests in a multi-server environment
JP2004157644A (en) Disk subsystem, computer system, storage management method for managing thereof, and management program
JP5031538B2 (en) Data distribution method, data distribution program, and parallel database system
JP2010224672A (en) Data processing method, system, and program
US8166018B2 (en) Browsing a list of data items
KR20160145250A (en) Shuffle Embedded Distributed Storage System Supporting Virtual Merge and Method Thereof
JPH11250092A (en) Shared database, shared databse system, method for extracting data from shared database and medium recording data extraction program from shared databse
US6842900B2 (en) Information processing apparatus executing processing corresponding to new thread by reusing arrangement for previous thread

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050818

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070625

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070814