(57)【要約】【課題】  所定の業務を実行する業務システムであって、前記業務の実行を要求する要求情報を一時的に記憶するキューの制御を行う業務システムにおいて、処理要求の増加により、キューが管理する最大値に達してしまい、それ以上要求を受けられなくなる事象を事前に回避する必要がある。【解決手段】  システムを起動(101)するとメッセージ管理プログラムが管理するメッセージ管理情報テーブルからキュー容量の初期設定（デフォルト）最大値Y（件）と閾値α(%)を読み込み、閾値となる容量Y・α（件）を計算し(102)、メモリ上に保持する(103)。また、同様にメッセージ管理情報テーブルから監視間隔T1（秒）およびキュー溢れを回避したい時間T2（秒）を読み込み、メモリ上に保持する(104)。これら初期処理の後、キュー容量監視が開始(105)され、監視間隔毎(106)にDBキューの登録量y（件）の測定しメモリ上に保持する(108)。【選択図】  図３
2006301984.tif 000002
【特許請求の範囲】
【請求項１】
所定の業務を実行する業務システムであって、前記業務の実行を要求する要求情報を一時的に記憶するキューの制御を行う業務システムにおいて、
前記要求情報の入力を受け付ける入力する手段と、
前記要求情報を一時的に記憶するキューと、
前記キューに記憶された要求情報の数量を計測する手段と、
計測された前記数量と記憶装置に格納されたキューに格納される要求情報の数量の閾値を比較する手段と、
前記比較する手段での比較の結果、計測された数量が多い場合、予め定められた対処方法を実行する手段とを有することを特徴とするキューの制御を行う業務システム。
【請求項２】
請求項１に記載のキューの制御を行う業務システムにおいて、
前記対処方法を実行する手段は、前記計測する手段での計測結果に基づいて、増加すべき前記キューの容量を算出し、算出された増加すべき容量分当該キューの容量を増加させることを特徴とするキューの制御を行う業務システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の機能を有するシステムを有する業務システムにおけるキューの制御に関するものである。特に、処理要求（リクエスト）の増加に伴うキュー溢れの問題を解決する技術に関する。
【背景技術】
【０００２】
従来、いわゆる業務システムにおいて、リクエストによる負荷の増加によるサービスの停止を防止するものとして、特許文献１がある。特許文献１においては、リクエストが所定タイミング毎（一定の到着時間間隔で）にサーバに転送するように制御することで、負荷の平準化を図っている。
【０００３】
【特許文献１】特開２００４−３４８４９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の場合、リクエストを等間隔で受信しているようにしているだけで、実際にサーバで行うべきリクエストが減るわけでないため、トータルとしてみた場合、結局負荷は低減されていない。最終的には処理すべきリクエスト量が変わるわけでなく、またサーバ側で処理できる処理量が変わるわけではない。このため、後から送付されるリクエストほど、処理されるまでの時間が延びてしまうとの問題が生じる。
【課題を解決するための手段】
【０００５】
そこで、本発明では、予めキューに登録される登録量の閾値を定めておき、この閾値と計測された登録量を比較して、この結果に基づいて対処処理を実行する。対処処理には、キューを拡張することおよびキューを閉塞することを含む。また、本発明には、拡張する量を算出すること、予め定められた容量分を拡張することが含まれる。
【０００６】
さらに、本発明には、閾値として割合（％）および容量（要求情報の件数）のうち少なくとも一方が含まれる。容量を閾値として用いる場合、業務システムの起動時毎に予め定めた割合とキューの容量を掛け合わせることで、容量で示される閾値を算出し、これと計測されたキューの登録量を比較することが含まれる。もちろん、登録量を計測するたびに、登録量／キューの容量を計算して、比較することも含まれる。
【発明の効果】
【０００７】
本発明によれば、容易な構成でキュー溢れに対応することが可能になる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施の形態について、図面を用いて説明する。本実施の形態は、DBキューを例に説明するが、本発明はそれに限定されるものではない。
【０００９】
まず、本実施の形態におけるシステム構成図を図1に示す。
サーバ装置１(11)ではデータの入力・メッセージ送信を伴う業務プログラム(13)・メッセージ受信を伴う業務プログラム(14)・メッセージ管理プログラム(15)が動作する。
基本的な処理の流れについて図１をもとに説明する。
【００１０】
入力手段として、ブラウザからの入力を受け付けるHttpサーバやCSVファイル等からの一括入力を行うバッチプログラム等を想定する(12)。これらの入力手段(12)からメッセージ送信を伴う業務プログラム(13)に対し入力データが受け渡される(31)。
【００１１】
メッセージ送信を伴う業務プログラム(13)では、入力データのチェック処理やその他業務ロジックを行いながら、入力データからDBキュー(20)へ登録するメッセージを作成し、キュー管理プログラム(15)にメッセージの登録依頼（メッセージ送信）を行う(32)。
【００１２】
メッセージの登録依頼(32)を受け取ったメッセージ管理プログラム(15)はメッセージ(21)をDBキュー(20)に登録する(33)。メッセージ(21)が登録されると、メッセージ送信を伴う業務プログラム(13)に処理が返り、任意の業務処理を全て実行し終えた時点で、入力元(12)に制御（結果を伴う場合もある）を戻す。
【００１３】
DBキュー(20)に登録されたメッセージ(21)はメッセージ管理プログラム(15)により登録が検知され、メッセージ受信を伴う業務プログラム(14)にメッセージを受け渡す(34)。メッセージ受信を伴う業務プログラム(14)は受け取ったメッセージを元に任意の業務処理を実施し、処理をメッセージ管理プログラム(15)に返す。
【００１４】
次に、キュー溢れの事象について図２をもとに説明する。
キューに登録できるメッセージの量は限られており、メッセージ管理プログラム(15)が管理するメッセージ管理情報テーブル(16)にその最大値(51)が保持されている。
メッセージの送信処理が多く発生(41)し、メッセージを保持できる最大値(51)を超えた場合、キューが溢れてしまい、それ以上メッセージが登録できない(42)。
【００１５】
以下、本実施の形態の処理内容について図３をもとに説明する。
処理内容以外の対象物については図１の表記を引用する。まずシステムを起動(101)するとメッセージ管理プログラム(15)が管理するメッセージ管理情報テーブル(16)からキュー容量の初期設定（デフォルト）最大値Y（件）(51)と閾値α(%)(55)を読み込み、閾値となる容量Y・α（件）を計算し(102)、メモリ上に保持する(103)。また、同様にメッセージ管理情報テーブル(16)から監視間隔T1（秒）(53)およびキュー溢れを回避したい時間T2（秒）(54)を読み込み、メモリ上に保持する(104)。
これら初期処理の後、キュー容量監視が開始(105)され、監視間隔毎(106)にDBキューの登録量y（件）の測定しメモリ上に保持する(108)。
【００１６】
また、登録量y（件）について寸前に測定し保持しいていた値と、新しく測定した値の差を計算し、監視間隔で割ることで、単位時間あたりのメッセージ増加量dydt（件/秒）を計算し、メモリ上に保持する(109)。その後、閾値となる容量Y・α（件）とy（件）を比較し(110)、Y・α（件）が大きい場合は、まだ閾値に達していないため処理(106)に戻る。逆にy（件）が大きい場合は、キュー溢れ監視閾値検知時の対処(112)を行う。
【００１７】
キュー溢れ監視閾値検知時の対処(112)については、キューの閉塞や他のキューへの転送やキューの拡張や後続処理の処理多重度の拡張等が可能であるが、本実施の形態ではキューの拡張について図４をもとに説明する。
【００１８】
キュー溢れ監視閾値検知した後、メッセージ増加量dydt（件/秒）および回避したい時間T2（秒）(54)に基づき、追加容量dY（件）を計算する(201)。
追加容量dY（件）=メッセージ増加量dydt（件/秒）×回避したい時間T2（秒）(54)
本計算方法は計算の例であり、メッセージ増加の様子を予測する方法論によって、様々な計算方法が考えられる。また、計算を行わず、追加容量を規定値とすることも追加容量確定の方法として含まれる。
【００１９】
確定したキューの追加量は、メッセージ管理プログラム(15)にてメモリ上に保持するとともに、メッセージ管理情報テーブル(16)のキュー容量の拡張最大値Y’（件）(52)に更新される(202)。
【００２０】
メッセージ管理プログラム(15)は、以降、キュー容量の拡張最大値を持ってキューの管理を行い(203)、閾容量を再度計算し(204)、再度、通常のキューの監視に戻る。((1))
【産業上の利用可能性】
【００２１】
本発明は、所定の機能を有する業務システムにおける信頼性の高いキューの制御が可能になる。
【図面の簡単な説明】
【００２２】
【図１】キューを用いて非同期でメッセージを連携させる基本的な処理の流れを説明する概念図である。
【図２】キューを用いて非同期でメッセージを連携させる際にメッセージ過多によるキュー溢れを説明する概念図である。
【図３】本発明により、キューの溢れを事前に検知するための処理の流れを説明したフローチャートである。
【図４】本発明により、キューの溢れを検知した際の対処方法の例について、処理の流れを説明したフローチャートである。
【図５】メッセージ管理情報テーブル(16)の構成例である。
【符号の説明】
【００２３】
11 サーバ装置１
12 入力手段
13 メッセージ送信を伴う業務プログラム
14 メッセージ受信を伴う業務プログラム
15 メッセージ管理プログラム
16 メッセージ管理情報テーブル
17 処理装置１
18 サーバ装置２
19 DBMS
20 DBキュー
21 メッセージ
22 処理装置２
31 入力データ受け渡し
32 メッセージ登録依頼
33 メッセージ登録
34 メッセージ受け渡し
41 送信処理多発
42 キュー溢れによる登録不可能状態
51 初期設定最大値
52 拡張設定最大値
53 キュー監視間隔
54 キュー溢れを回避したい時間
55 閾値
100 処理の開始
101 システム起動
102 閾量の計算
103 閾量の保持
104 監視間隔およびキュー溢れを回避したい時間の読み込みおよびその保持
105 キュー容量監視の開始
106 監視間隔に到達したかどうかの判定
108 DBキューの登録量の測定および保持
109 単位時間あたりのメッセージ増加量の計算および保持
110 最大値と現在の値の比較
112 キュー溢れ監視閾値検知時の対処
200 処理の開始
201 追加容量の計算
202 追加容量のメモリ保持および拡張最大値の更新
203 キューの容量追加
204 閾容量の計算および保持
【図１】
2006301984.tif 000003
【図２】
2006301984.tif 000004
【図３】
2006301984.tif 000005
【図４】
2006301984.tif 000006
【図５】
2006301984.tif 000007