JP2004362376A - Batch application execution control method, batch application execution control device, and batch application execution control program - Google Patents

Batch application execution control method, batch application execution control device, and batch application execution control program Download PDF

Info

Publication number
JP2004362376A
JP2004362376A JP2003161556A JP2003161556A JP2004362376A JP 2004362376 A JP2004362376 A JP 2004362376A JP 2003161556 A JP2003161556 A JP 2003161556A JP 2003161556 A JP2003161556 A JP 2003161556A JP 2004362376 A JP2004362376 A JP 2004362376A
Authority
JP
Japan
Prior art keywords
batch
execution
execution control
batch application
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003161556A
Other languages
Japanese (ja)
Other versions
JP4071678B2 (en
Inventor
Takashi Hirotsu
隆志 弘津
Shigemi Yamazaki
成美 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003161556A priority Critical patent/JP4071678B2/en
Publication of JP2004362376A publication Critical patent/JP2004362376A/en
Application granted granted Critical
Publication of JP4071678B2 publication Critical patent/JP4071678B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a batch application execution control method, or a system for processing a batch application at high speed. <P>SOLUTION: A batch execution process 2 generates a plurality of program execution control parts (threads) 4. Each program execution part 4 executes a batch application common processing such as DB connection only once at the first. Thereafter, the batch execution process 2 outputs, when an execution request of a batch application 1 is accepted, an execution command of the batch application to an empty program execution control part 4, and the program execution control part 4 calls the instructed batch application 1 to execute data processing. Each program execution control part 4 executes one batch application 1 once, and executes a batch application common processing such as DB disconnection finally, when the processing of all the batch applications 1 is ended, to end the processing. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は,バッチアプリケーションを高速に実行処理するための方法,装置およびプログラムに関する。
【0002】
バッチアプリケーションとは,処理対象のデータを一括して処理するソフトウェアプログラムである。通常,業務アプリケーションの実行形態として,オンラインアプリケーションとバッチアプリケーションの二つの形態があり,オンラインアプリケーションでは,伝票などの処理をリアルタイムで行うのに対し,バッチアプリケーションでは,例えば一日の売上集計のように,蓄えられたデータをまとめて処理する。
【0003】
【従来の技術】
従来,例えばデータベース(以下,「DB」という)アクセスを行うクライアント・サーバシステムにおけるDBを用いたバッチアプリケーション処理を行う場合,バッチアプリケーション毎にDB(例えば「ORACLE」(登録商標))に対するコネクト/ディスコネクト処理を行っていた。ここで,コネクト処理とは,DBにアクセスするためにDB管理システムに接続する処理であり,ディスコネクト処理とは,DBへのアクセスを終了し,DB管理システムとの接続を切る処理である。
【0004】
図14は,従来のバッチアプリケーションの動作説明図である。図中,10はバッチアプリ情報ファイル,11はバッチアプリケーションを表す。バッチアプリ情報ファイル10は,バッチアプリケーション11の実行に必要な情報が格納されているファイルである。図14に示すように,従来は,バッチアプリ情報ファイル10を読み込み,バッチアプリケーション11を起動していた。各バッチアプリケーション11は,起動時にDBへのコネクト処理を,終了時にDBへのディスコネクト処理を実行していた。
【0005】
なお,上記バッチアプリケーションの動作処理に関して,実行時間を短縮して処理を高速化するための技術を記載した先行技術文献は,特に見当たらない。
【0006】
【発明が解決しようとする課題】
上記従来技術では,バッチアプリケーション毎にDBに対するコネクト/ディスコネクト処理を行っていたため,バッチアプリケーションの数に比例してその処理時間が長くなるという問題があった。
【0007】
すなわち,複数のジョブステップから構成される業務アプリケーションのバッチアプリケーションを動作させる場合,従来技術では,ジョブステップ単位に各バッチアプリケーションのプロセスを起動し,各ジョブステップのプロセス毎にDBコネクト/ディスコネクト処理を実行するため,DBコネクト/ディスコネクト処理に時間がかかり,バッチアプリケーションの処理が遅くなるという問題があった。なお,DBコネクト/ディスコネクト処理には,システム負荷によっては2〜3秒の処理時間がかかることがある。
【0008】
以上のようなDBコネクト/ディスコネクト処理に時間がかかるという問題に限らず,多量のバッチアプリケーションの実行に関して,次のような場合に,処理に時間がかかり,処理の負荷が大きくなるという問題があった。
(1)ジョブ実行制御の起動処理に時間(1秒程度の起動時間)がかかる。
(2)EJB(Enterprise−JavaBeans)との共通開発を図った場合,バッチアプリケーションをJava(登録商標)で開発することになるが,従来はバッチアプリケーションの各ジョブステップ毎にJava仮想マシン(JavaVM)の起動を行っており,JavaVMの起動処理に時間(1〜2秒)がかかる。
【0009】
オンラインアプリケーションは,リアルタイムでの応答が要求されるため,従来から高速化についての種々の工夫がなされていたが,ジョブの一括投入,処理結果の一括出力というオフライン処理のバッチアプリケーションでは,応答の即時性が要求されないため,処理の高速化に関する考慮はあまり払われていなかった。
【0010】
バッチアプリケーションとオンラインアプリケーションとを比較すると,バッチアプリケーションの処理速度は,オンラインアプリケーションの処理速度より格段に遅く,オンラインアプリケーションでは,100トランザクション/秒(TPS)の処理を狙えるが,バッチアプリケーションでは,100トランザクション/分(TPM)程度の処理時間がかかっていた。
【0011】
最近の業務アプリケーションでは,バッチアプリケーションの数が多くなる傾向にあるが,バッチアプリケーションの数が多くなると,バッチ処理といえども,これまでのように処理時間が長くかかることは望ましいことではない。
【0012】
本発明は,上記従来技術の問題点を解決し,多数のバッチアプリケーションの高速処理を可能にすることを目的とする。
【0013】
【課題を解決するための手段】
上記課題を解決するため,本発明は,複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御方法であって,1または複数のプログラム実行制御部を生成するステップと,前記生成された1または複数のプログラム実行制御部が,最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行するステップと,前記共通処理の実行後に,前記バッチアプリケーションを順次,一つのプログラム実行制御部が一つずつ呼び出して実行する処理を,すべてのバッチアプリケーションの実行が終了するまで繰り返すステップとを有することを特徴とする。
【0014】
また,本発明は,複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御方法であって,前記複数のバッチアプリケーションの実行を制御するためのバッチ実行プロセスを起動するステップと,前記バッチ実行プロセスが,プログラム実行制御部を複数生成するステップと,前記生成された複数のプログラム実行制御部毎に,最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行するステップと,前記バッチ実行プロセスが,前記バッチアプリケーションの実行依頼を受け付けるステップと,前記バッチ実行プロセスが,前記実行依頼を受け付けたバッチアプリケーションの実行を,現在バッチアプリケーションを実行していないプログラム実行制御部に指示するステップと,前記実行指示を受けたプログラム実行制御部が,指示されたバッチアプリケーションを呼び出して実行するステップとを有することを特徴とする。
【0015】
また,上記発明において,前記プログラム実行制御部を複数生成するステップでは,前記バッチ実行プロセスの起動時に読み込んだ情報に含まれる実行多重度数分のプログラム実行制御部を生成することを特徴とする。
【0016】
また,本発明は,複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御装置であって,バッチ実行制御手段と,複数のプログラム実行制御手段とを備え,前記バッチ実行制御手段は,前記バッチアプリケーションの実行依頼を受け付ける手段と,前記プログラム実行制御手段に対し,前記実行依頼を受け付けたバッチアプリケーションの実行指示を行う手段とを備え,前記複数のプログラム実行制御手段の各々は,最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行する手段と,前記バッチ実行制御手段からのバッチアプリケーションの実行指示に対し,指示されたバッチアプリケーションを呼び出して実行する手段とを備えることを特徴とする。
【0017】
以上のバッチアプリケーション実行制御方法の処理は,コンピュータとソフトウェアプログラムとによって実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することも,ネットワークを通して提供することも可能である。
【0018】
【発明の実施の形態】
以下,図を用いて本発明の実施の形態を説明する。
【0019】
図1は,本発明を実施する装置の構成例を示す図である。図中,100はCPUおよびメモリなどからなるデータ処理装置,1はバッチアプリケーション,2はプログラム実行制御部(スレッド)を生成し,プログラム実行制御部に実行命令を出してバッチアプリケーションを実行させるバッチ実行プロセス,4,4’はバッチアプリケーションを実行するプログラム実行制御部(スレッド)である。
【0020】
バッチ実行プロセス2において,プログラム実行制御部生成部20は,あらかじめ定められた個数のプログラム実行制御部4,4’のスレッドを生成する。実行依頼受付け部21は,各バッチアプリケーション1の実行依頼を受け付ける。実行待ち管理部22は,バッチアプリケーション1の実行依頼を実行待ちキュー23にキューイングする。バッチアプリ実行命令部24は,プログラム実行制御部4,4’に空きがあれば,そのプログラム実行制御部4,4’に実行命令を出す。
【0021】
プログラム実行制御部4(4’も同様)は,バッチアプリ共通処理部40,41およびバッチアプリ呼出し部42を備える。バッチアプリ共通処理部40は,どのバッチアプリケーション1も共通に最初に実行しなければならない必須処理の実行部分であり,例えばバッチアプリケーション1がデータベースにアクセスするプログラムであった場合には,DBコネクト処理を実行する部分である。また,バッチアプリケーション1がJavaプログラムであった場合には,JavaVMの起動処理などを実行する部分である。
【0022】
バッチアプリ共通処理部41は,どのバッチアプリケーション1も共通に最後に実行しなければならない必須処理の実行部分であり,例えばバッチアプリケーション1がデータベースにアクセスするプログラムであった場合には,DBディスコネクト処理を実行する部分である。また,バッチアプリケーション1がJavaプログラムであった場合には,JavaVMを終了させる処理などを実行する部分である。
【0023】
バッチアプリ呼出し部42は,バッチ実行プロセス2のバッチアプリ実行命令部24からの実行命令により,指定されたバッチアプリケーション1を呼び出して実行する処理部である。バッチアプリケーション1は,プログラム実行制御部4のスレッド上で関数呼出し,もしくはサブルーチン呼出しのような形態で動作する。オブジェクト指向システムの場合には,バッチアプリケーション1は,一つまたは複数のオブジェクトとして実現されてもよい。
【0024】
プログラム実行制御部4は,バッチ実行プロセス2から生成され,起動されると,最初に一度だけバッチアプリ共通処理部40による処理を実行し,その後は,バッチアプリ実行命令部24からの実行命令によって一度に一つのバッチアプリケーション1を呼び出す。そのバッチアプリケーション1の処理が終了すると,次のバッチアプリケーション1の実行命令受付け可能状態になり,終了の指示があるまで,各実行命令に対し,バッチアプリ呼出し部42によるバッチアプリケーション1の呼び出しを繰り返す。バッチ実行プロセス2から実行終了指示があると,最後に一度だけバッチアプリ共通処理部41による処理を実行し,終了する。
【0025】
図1に示す例では,バッチアプリケーションA,B,C…の実行依頼に対して,プログラム実行制御部4が,最初にバッチアプリ共通処理部40による処理を実行した後,バッチアプリ実行命令部24からの実行命令(A)に対し,バッチアプリ呼出し部42によってバッチアプリケーションAを呼び出して処理させ,プログラム実行制御部4’は,バッチアプリ共通処理部40’の実行後,実行命令(B)に対し,バッチアプリ呼出し部42’によって,バッチアプリケーションBを呼び出して処理させている。他の実行依頼C,D,E,…は,実行待ちキュー23に接続されている。
【0026】
バッチアプリケーションAの実行が終了すると,バッチアプリ実行命令部24からの次の実行命令(C)により,プログラム実行制御部4のバッチアプリ呼出し部42は,バッチアプリケーションCを呼び出して処理させる。
【0027】
従来技術では,各バッチアプリケーション毎にDBコネクト処理などのバッチアプリ共通処理部40による処理を実行することが必要であったのに対し,本発明では,プログラム実行制御部4が実行するので,各バッチアプリケーション1におけるバッチアプリ共通処理部40の処理は不要となる。
【0028】
図2は,本発明の実施の形態によるバッチアプリケーションの実行制御の例を説明する図である。本実施の形態では,図1のバッチアプリ共通処理部40の処理がDBコネクトであり,バッチアプリ共通処理部41の処理がDBディスコネクトであるものとする。
【0029】
図中の3はバッチ実行プロセス2にバッチアプリケーションの実行依頼をする起動プロセス,5は起動プロセス3の起動に必要なパラメタが書き込まれたパラメタファイル,6は実行プログラム名等のバッチアプリケーションを特定する情報が書き込まれたバッチアプリ情報ファイル,7はバッチ実行プロセス2の初期化に必要な情報が書き込まれた初期化ファイル,8はバッチ実行プロセス名,実行多重度,ログファイルのファイル数等の情報が書き込まれたパラメタファイルである。
【0030】
パラメタファイル5は,起動プロセス3を起動させるために読み込まれる。また,初期化ファイル7およびパラメタファイル8は,バッチ実行プロセス2を起動させるために読み込まれる。
【0031】
以下,図2に示す(a)〜(f)に従って,本実施の形態の動作例を説明する。
(a)まず,初期化ファイル7の内容とパラメタファイル8の内容を読み込み,バッチ実行プロセス2を起動させる。
(b)バッチ実行プロセス2は,パラメタファイル8の内容をもとにプログラム実行制御部(スレッド)4を生成する。そして,バッチ実行プロセス2は,初期化ファイル7の内容をもとにプログラム実行制御部(スレッド)4に命令を出し,プログラム実行制御部(スレッド)4毎にDBコネクトさせる。
(c)その後,バッチアプリケーション1の実行依頼をするために,パラメタファイル5,バッチアプリ情報ファイル6を読み込み,起動プロセス3を立ち上げる。
(d)起動プロセスは3,パラメタファイル5とコマンド引数で渡されるバッチアプリ情報ファイル6の内容をもとに,バッチ実行プロセス2にバッチアプリケーション1の実行処理を依頼する。なお,起動プロセス3からバッチ実行プロセス2への実行依頼には,TCP/IPの通信プロトコルを用いる。
(e)バッチ実行プロセス2は起動プロセス3からの実行依頼を受けると,受け付けた実行依頼のパラメタを取り込み,実行可否の条件を判定し,現在空いているプログラム実行制御部(スレッド)4に実行命令を出す。現在空いているプログラム実行制御部(スレッド)4が存在しない場合には,受け付けた実行依頼を実行待ちキュー23にキューイングし,実行待ち状態にする。
(f)バッチアプリケーション1の実行命令を受けたプログラム実行制御部(スレッド)4は,指定された実行プログラム名のバッチアプリケーション1を起動する。バッチアプリケーション1の実行が終了した場合には,実行終了をバッチ実行プロセス2に報告し,次のバッチアプリケーション1の実行命令を待つ。
【0032】
すべてのバッチアプリケーション1の実行を終了した後に,プログラム実行制御部(スレッド)4は,バッチ実行プロセス2からの指示によりDBディスコネクトを行い,スレッドを閉じる。
【0033】
上記のように,本発明の実施の形態では,システムの起動時に生成した複数のプログラム実行制御部(スレッド)4毎に一度だけDBへの接続処理(コネクト)を実施し,システムの終了時に一度だけDBへの切断処理(ディスコネクト)を実施する。また,バッチアプリケーション1の実施の際には,必ずプログラム実行制御部(スレッド)4からバッチアプリケーション1を呼び出す。プログラム実行制御部(スレッド)4内では,すでにDBへのコネクト処理を完了し,コネクト状態が保持されているため,バッチアプリケーション1毎にDBへのコネクト/ディスコネクト処理をする必要がなくなる。
【0034】
図3は,本発明の実施の形態における初期処理のフローを示す図である。本システムを立ち上げる場合,まず,バッチ実行プロセス2を起動させるために,初期化ファイル7の読み込みを行う(ステップS1)。初期化ファイル7の一例(SUSVINIT)を図4に示す。初期化ファイル7には,例えば図4に示すように,DBアクセスするユーザ名,DBアクセスするユーザのパスワード,インスタンス名,ログファイルの最大サイズ,ログを出力するレベル,ログファイルの最大数,インスタンスのURL(Javaの場合),JDBC(Java Database Connectivity)のドライバ名(Javaの場合),また,COBOL業務アプリケーションを実行するかどうかの情報が書き込まれている。JDBCは,JavaプログラムからDBにアクセスするための標準アプリケーションプログラムインタフェース(API)である。
【0035】
次に,パラメタファイル8の読み込みを行う(ステップS2)。パラメタファイル8の一例(fbdef.txt )を図5に示す。パラメタファイル8には,例えば図5に示すように,バッチ実行プロセス名,C/COBOL/Javaといった言語の種別,ポート番号(No),生成するプログラム実行制御部(スレッド)4の数を示す実行多重度,実行待ちとして接続できる最大実行依頼数であるキューの最大数(MAXキュー),パラメタファイルを複写する作業フォルダ,ログファイルを書き込むフォルダ,ログファイルのファイル数等の情報が書き込まれている。
【0036】
上記初期化ファイル7,パラメタファイル8の読み込み処理(ステップS1,S2)が行われることにより,バッチ実行プロセス2の起動が行われる(ステップS3)。その後,バッチ実行プロセス2によって,パラメタファイル8で指定された実行多重度の数分のプログラム実行制御部(スレッド)4の生成が行われる(ステップS4)。
【0037】
図6は,本発明の実施の形態におけるプログラム実行制御部(スレッド)生成処理のフローを示す図である。まず,バッチ実行プロセス2は,パラメタファイル実行多重度数分のプログラム実行制御部(スレッド)4を生成する(ステップS11)。プログラム実行制御部(スレッド)4を開始する(ステップS12)。プログラム実行制御部(スレッド)4は,最初にDBコネクトして(ステップS13),実行命令を待つ。バッチ実行プロセス2は,すべてのプログラム実行制御部(スレッド)4を生成した後,実行依頼を待つ。
【0038】
図7は,本発明の実施の形態におけるバッチアプリケーション実行処理フローを示す図である。バッチアプリケーション1を実行させる場合,オペレータの指示により,またはシステムの自動起動処理により,起動プロセス3を起動させるために,まず,パラメタファイル5の読み込みを行う(ステップS21)。パラメタファイル5の一例(fbdef.txt )を図8に示す。パラメタファイル5には,例えば図8に示すように,バッチ実行プロセス名,C/COBOL/Javaといった言語の種別,ポート番号(No),実行多重度,キューの最大数が書き込まれている。
【0039】
次に,バッチアプリ情報ファイル6の読み込みを行う(ステップS22)。バッチアプリ情報ファイル6の一例(inp1.txt)を図9に示す。バッチアプリ情報ファイル6には,例えば図9に示すように,実行プログラム名,打切り経過時間,データ1,データ2,会社コード,拠点コードというように,バッチアプリケーション1の実行に必要な情報が書き込まれている。
【0040】
具体的には,図9に示すバッチアプリ情報ファイル6に書き込まれた情報中,「pgm=pgm1」は,バッチ実行プロセス2上で実行させるバッチアプリケーション名(「pgm1」)を探すキーであり,「time=20」は,バッチ実行プロセス2上で待ちの場合,待機させておくタイムアウトが20秒であることを示す。
【0041】
また,「data1=11111111」,「data2=2222222」は,実行させるバッチアプリケーション1固有の引数であり,「cdcompany=000」は,実行させるバッチアプリケーション1上で,DB領域への検索に使用する会社コードのキーであり,「cdstore=000」は,実行させるバッチアプリケーション1上で,DB領域への検索に使用する拠点コードのキーである。
【0042】
次に,起動プロセス3の起動が行われる(ステップS23)。その後,図10に示すバッチ実行プロセス処理が行われる(ステップS24)。バッチ実行プロセス2からの実行命令により,プログラム実行制御部(スレッド)4がバッチアプリケーション1の呼び出し処理を行い(ステップS25),バッチアプリケーション1を実行する(ステップS26)。
【0043】
図10は,図7のステップS24におけるバッチ実行プロセス処理のフローを示す図である。まず,バッチ実行プロセス2が,起動プロセス3から実行依頼を受ける(ステップS31)。次に,現在の実行待ちキュー23中の実行依頼数がMAXキューの値(最大待ち実行依頼数)になったかどうかを判定し(ステップS32),現在の待ち実行依頼数がMAXキューの値になった場合には,エラー情報設定をして,起動プロセス3に実行依頼を受け付けできない旨を通知する(ステップS35)。
【0044】
現在の待ち実行依頼数がMAXキューの値より小さい場合には,実行多重度とアクティブスレッド数が異なるか否かを判定する(ステップS33)。すなわち,現在バッチアプリケーション1を実行していない空きスレッドがあるかどうかを判定する。空きスレッドがあった場合,そのプログラム実行制御部(スレッド)4に実行命令を送り,バッチアプリケーション1を実行させる(ステップS34)。実行多重度とアクティブスレッドの数が同じであり,空きスレッドがない場合には,受け付けた実行依頼を実行待ちキュー23にキューイングし,空きスレッドができるまで待つ(ステップS36)。
【0045】
図11は,本発明の実施の形態における終了処理のフローを示す図である。すべてのバッチアプリケーション1の終了により,またはオペレータ等の指示により,バッチ実行プロセス2の終了指示が行われると(ステップS41),バッチ実行プロセス2は,まず,すべてのプログラム実行制御部(スレッド)4に終了指示を出す(ステップS42)。プログラム実行制御部(スレッド)4は,DBディスコネクトを行い(ステップS43),終了する(ステップS44)。バッチ実行プロセス2は,プログラム実行制御部(スレッド)4の終了を確認した後,終了する(ステップS45)。
【0046】
図12は,バッチアプリケーション起動までのデータの流れを示す図である。
(1)図12(A)に示すバッチアプリ情報ファイル6を起動プロセス3に読み込ませる。
(2)起動プロセス3で読み込まれたデータをバッチ実行プロセス2にTCP/IP通信で図12(B)に示す電文形式で送信する。
(3)起動プロセス3から送信されたきた電文をもとに,バッチ実行プロセス2上で図12(C)に示すようなハッシュマップを作成する。ハッシュマップとは,バッチアプリケーション1の実行に必要なパラメタおよびキーを集めたデータである。
(4)空いているプログラム実行制御部(スレッド)4に,図12(C)に示すハッシュマップを送る。空きスレッドがない場合,タイムアウト値まで空きスレッドができるのを待つ。タイムアウト値を超えた場合には,処理をしないで,エラー終了とする。
(5)図12(D)に示すハッシュマップのデータを引数にして,バッチアプリケーション「pgm1」を実行させる。pgm1内の処理で,引数の各キーをもとにデータを入力する。
【0047】
図13は,本発明の実施の形態におけるバッチアプリケーション実行処理のシーケンス図である。図13では,DBにコネクトしてデータ操作を行い,操作終了後にDBからディスコネクトする処理を行う業務アプリケーションであるバッチアプリケーションAおよびバッチアプリケーションBの実行処理を例にとって説明する。また,業務アプリケーション(バッチアプリケーションA,バッチアプリケーションB)は,例えば,Javaで開発されているものとする。
【0048】
図13において,まず,バッチ実行プロセス2が起動すると(a),バッチ実行プロセス2は,プログラム実行制御部(スレッド)4を生成し,プログラム実行制御部(スレッド)4に命令を出してDBコネクトさせる(b)。
【0049】
次に,起動プロセス3が起動すると(c),起動プロセス3は,バッチ実行プロセス2に実行依頼を行う(d)。バッチ実行プロセス2は,現在空いているプログラム実行制御部(スレッド)4に実行命令を出す(e)。実行命令を受けたプログラム実行制御部(スレッド)4は,業務アプリクラスを生成し,バッチアプリケーションAを呼び出して実行する(f)。実行処理が完了すると,バッチ実行プロセス2が,プログラム実行制御部(スレッド)4から実行完了通知を受ける(g)。
【0050】
再度,起動プロセス3が起動すると(h),起動プロセス3は,バッチ実行プロセス2に実行依頼を行う(i)。バッチ実行プロセス2は,現在空いているプログラム実行制御部(スレッド)4に実行命令を出す(j)。実行命令を受けたプログラム実行制御部(スレッド)4は,業務アプリクラスを生成し,バッチアプリケーションBを呼び出して実行する(k)。
【0051】
バッチ実行プロセス2は,プログラム実行制御部(スレッド)4から実行完了通知を受け(l),その後,実行すべきバッチアプリケーションがないことを確認すると,プログラム実行制御部(スレッド)4に命令を出してDBディスコネクトさせ,終了処理を行う(m)。
【0052】
以上から把握できるように,本発明の実施の形態の特徴を述べると,以下のようである。
【0053】
(付記1)複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御方法であって,
1または複数のプログラム実行制御部を生成するステップと,
前記生成された1または複数のプログラム実行制御部が,最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行するステップと,
前記共通処理の実行後に,前記バッチアプリケーションを順次,一つのプログラム実行制御部が一つずつ呼び出して実行する処理を,すべてのバッチアプリケーションの実行が終了するまで繰り返すステップとを有する
ことを特徴とするバッチアプリケーション実行制御方法。
【0054】
(付記2)複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御方法であって,
前記複数のバッチアプリケーションの実行を制御するためのバッチ実行プロセスを起動するステップと,
前記バッチ実行プロセスが,プログラム実行制御部を複数生成するステップと,
前記生成された複数のプログラム実行制御部毎に,最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行するステップと,
前記バッチ実行プロセスが,前記バッチアプリケーションの実行依頼を受け付けるステップと,
前記バッチ実行プロセスが,前記実行依頼を受け付けたバッチアプリケーションの実行を,現在バッチアプリケーションを実行していないプログラム実行制御部に指示するステップと,
前記実行指示を受けたプログラム実行制御部が,指示されたバッチアプリケーションを呼び出して実行するステップとを有する
ことを特徴とするバッチアプリケーション実行制御方法。
【0055】
(付記3)付記2に記載のバッチアプリケーション実行制御方法において,
前記バッチ実行プロセスが,前記プログラム実行制御部を複数生成するステップでは,前記バッチ実行プロセスの起動時に読み込んだ情報に含まれる実行多重度数分のプログラム実行制御部を生成する
ことを特徴とするバッチアプリケーション実行制御方法。
【0056】
(付記4)付記1から付記3までのいずれか1項に記載のバッチアプリケーション実行制御方法において,
さらに,前記プログラム実行制御部が,終了する前に,前記バッチアプリケーションの終了時に共通に必要となる共通処理を実行するステップを有する
ことを特徴とするバッチアプリケーション実行制御方法。
【0057】
(付記5)複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御装置であって,
バッチ実行制御手段と,複数のプログラム実行制御手段とを備え,
前記バッチ実行制御手段は,
前記バッチアプリケーションの実行依頼を受け付ける手段と,
前記プログラム実行制御手段に対し,前記実行依頼を受け付けたバッチアプリケーションの実行指示を行う手段とを備え,
前記複数のプログラム実行制御手段の各々は,
最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行する手段と,
前記バッチ実行制御手段からのバッチアプリケーションの実行指示に対し,指示されたバッチアプリケーションを呼び出して実行する手段とを備える
ことを特徴とするバッチアプリケーション実行制御装置。
【0058】
(付記6)付記1から付記4までのいずれか1項に記載のバッチアプリケーション実行制御方法を,コンピュータに実行させるためのバッチアプリケーション実行制御プログラム。
【0059】
(付記7)付記1から付記4までのいずれか1項に記載のバッチアプリケーション実行制御方法を,コンピュータに実行させるためのバッチアプリケーション実行制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0060】
【発明の効果】
本発明により,バッチアプリケーションを高速に処理することができるため,夜間時などに行う定期バッチアプリケーションの処理時間を短縮することが可能となる。
【0061】
また,本発明を用いることにより,例えば,データベースのコネクト/ディスコネクト処理やJavaVMの起動処理を,バッチアプリケーション毎に行わなくてよいので,システム全体の負荷を軽減することが可能となる。
【図面の簡単な説明】
【図1】本発明を実施する装置の構成例を示す図である。
【図2】本発明の実施の形態によるバッチアプリケーションの実行制御の例を説明する図である。
【図3】初期処理のフローを示す図である。
【図4】初期化ファイルの一例を示す図である。
【図5】パラメタファイルの一例を示す図である。
【図6】プログラム実行制御部(スレッド)生成処理のフローを示す図である。
【図7】バッチアプリケーション実行処理フローを示す図である。
【図8】パラメタファイルの一例を示す図である。
【図9】バッチアプリ情報ファイルの一例を示す図である。
【図10】バッチ実行プロセス処理のフローを示す図である。
【図11】終了処理のフローを示す図である。
【図12】バッチアプリケーション起動までのデータの流れを示す図である。
【図13】バッチアプリケーション実行処理のシーケンス図である。
【図14】従来のバッチアプリケーションの動作説明図である。
【符号の説明】
1,11 バッチアプリケーション
2 バッチ実行プロセス
3 起動プロセス
4 プログラム実行制御部(スレッド)
5 パラメタファイル
6,10 バッチアプリ情報ファイル
7 初期化ファイル
8 パラメタファイル
20 プログラム実行制御部生成部
21 実行依頼受付け部
22 実行待ち管理部
23 実行待ちキュー
24 バッチアプリ実行命令部
40,41 バッチアプリ共通処理部
42 バッチアプリ呼出し部
100 データ処理装置
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a method, an apparatus, and a program for executing a batch application at high speed.
[0002]
A batch application is a software program that collectively processes data to be processed. Normally, there are two forms of business application execution: an online application and a batch application. In an online application, processing such as a slip is performed in real time. And collectively process the stored data.
[0003]
[Prior art]
Conventionally, for example, when performing batch application processing using a DB in a client / server system that accesses a database (hereinafter, referred to as “DB”), connect / disconnect to / from a DB (eg, “ORACLE” (registered trademark)) is performed for each batch application. Connect processing was being performed. Here, the connect process is a process for connecting to the DB management system in order to access the DB, and the disconnect process is a process for ending the access to the DB and disconnecting the connection with the DB management system.
[0004]
FIG. 14 is a diagram illustrating the operation of a conventional batch application. In the figure, reference numeral 10 denotes a batch application information file, and reference numeral 11 denotes a batch application. The batch application information file 10 is a file in which information necessary for executing the batch application 11 is stored. As shown in FIG. 14, conventionally, the batch application information file 10 was read and the batch application 11 was activated. Each batch application 11 executes a connect process to the DB at the time of startup, and executes a disconnect process to the DB at the time of termination.
[0005]
Regarding the operation processing of the batch application, no prior art document describing a technique for shortening the execution time and speeding up the processing has been found.
[0006]
[Problems to be solved by the invention]
In the above-mentioned prior art, since the connect / disconnect processing for the DB is performed for each batch application, there is a problem that the processing time becomes longer in proportion to the number of batch applications.
[0007]
That is, in the case of operating a batch application of a business application composed of a plurality of job steps, in the related art, a process of each batch application is started for each job step, and a DB connect / disconnect process is performed for each process of each job step. Therefore, there is a problem in that the DB connect / disconnect process takes a long time, and the batch application process becomes slow. Note that the DB connect / disconnect processing may require a processing time of 2 to 3 seconds depending on the system load.
[0008]
Not only the problem of the time required for the DB connect / disconnect processing as described above, but also the problem of the execution of a large number of batch applications in the following cases, the processing takes a long time and the processing load increases. there were.
(1) It takes time (start time of about 1 second) for the start processing of the job execution control.
(2) When common development with EJB (Enterprise-Java Beans) is attempted, a batch application is developed with Java (registered trademark). Conventionally, a Java virtual machine (Java VM) is used for each job step of the batch application. , And it takes time (1-2 seconds) for the Java VM to start.
[0009]
Since online applications are required to respond in real time, various measures have been taken to increase the speed. However, batch applications for offline processing, such as batch input of jobs and batch output of processing results, require immediate response. Since no performance was required, little consideration was given to speeding up the processing.
[0010]
Comparing the batch application and the online application, the processing speed of the batch application is much slower than the processing speed of the online application. In the online application, processing of 100 transactions / second (TPS) can be aimed at. Per minute (TPM).
[0011]
In recent business applications, the number of batch applications tends to increase. However, when the number of batch applications increases, it is not desirable that processing time be longer as in the past, even in batch processing.
[0012]
SUMMARY OF THE INVENTION It is an object of the present invention to solve the above-mentioned problems of the prior art and to enable high-speed processing of a large number of batch applications.
[0013]
[Means for Solving the Problems]
In order to solve the above problems, the present invention is a batch application execution control method for controlling execution of a plurality of batch applications, the method comprising: generating one or more program execution control units; First executing a common process commonly required for the plurality of batch applications, and after executing the common process, sequentially executing the batch applications, and one program execution control unit And repeating the process of calling and executing each batch application until the execution of all batch applications is completed.
[0014]
Further, the present invention is a batch application execution control method for controlling execution of a plurality of batch applications, the method comprising: activating a batch execution process for controlling execution of the plurality of batch applications; Generating a plurality of program execution control units, executing, for each of the plurality of generated program execution control units, common processing that is first required in common by the plurality of batch applications, Receiving an execution request of the batch application; and instructing the batch execution process to execute the batch application that has received the execution request to a program execution control unit that is not currently executing the batch application. Execution instructions Program execution control unit which receives, characterized in that a step of calling and executing the indicated batch application.
[0015]
Further, in the above invention, in the step of generating a plurality of program execution control units, the program execution control units for the execution multiplicity included in the information read at the time of starting the batch execution process are generated.
[0016]
The present invention also relates to a batch application execution control device for controlling execution of a plurality of batch applications, comprising: a batch execution control means; and a plurality of program execution control means, wherein the batch execution control means comprises Means for receiving the execution request, and means for instructing the program execution control means to execute the batch application which has received the execution request. Each of the plurality of program execution control means A means for executing common processing commonly required for batch applications; and a means for calling and executing the designated batch application in response to the batch application execution instruction from the batch execution control means. .
[0017]
The processing of the above-described batch application execution control method can be realized by a computer and a software program, and the program can be provided by being recorded on a computer-readable recording medium or can be provided through a network. .
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0019]
FIG. 1 is a diagram showing a configuration example of an apparatus for implementing the present invention. In the figure, 100 is a data processing device including a CPU and a memory, 1 is a batch application, 2 is a batch execution for generating a program execution control unit (thread), issuing an execution instruction to the program execution control unit and executing the batch application. Processes 4, 4 'are program execution controllers (threads) for executing batch applications.
[0020]
In the batch execution process 2, the program execution control unit generation unit 20 generates a predetermined number of threads of the program execution control units 4, 4 '. The execution request receiving unit 21 receives an execution request of each batch application 1. The execution waiting management unit 22 queues the execution request of the batch application 1 in the execution waiting queue 23. If there is a free space in the program execution control units 4, 4 ', the batch application execution command unit 24 issues an execution command to the program execution control units 4, 4'.
[0021]
The program execution control unit 4 (similarly for 4 ′) includes batch application common processing units 40 and 41 and a batch application calling unit 42. The batch application common processing unit 40 is an execution part of essential processing that must be executed first in common by all the batch applications 1. For example, when the batch application 1 is a program for accessing a database, the DB connect processing Is the part that executes Further, when the batch application 1 is a Java program, this is a part for executing a JavaVM activation process and the like.
[0022]
The batch application common processing unit 41 is an execution part of essential processing that must be executed last by all the batch applications 1. For example, when the batch application 1 is a program that accesses a database, the DB disconnection is performed. This is the part that executes processing. Further, when the batch application 1 is a Java program, this section executes processing for terminating the Java VM.
[0023]
The batch application calling unit 42 is a processing unit that calls and executes the designated batch application 1 according to an execution command from the batch application execution command unit 24 of the batch execution process 2. The batch application 1 operates in a form such as a function call or a subroutine call on a thread of the program execution control unit 4. In the case of an object-oriented system, the batch application 1 may be realized as one or a plurality of objects.
[0024]
When the program execution control unit 4 is generated from the batch execution process 2 and started, the program execution control unit 4 first executes the processing by the batch application common processing unit 40 only once, and thereafter executes the processing by the execution instruction from the batch application execution instruction unit 24. Call one batch application 1 at a time. When the processing of the batch application 1 is completed, the execution instruction of the next batch application 1 can be accepted, and the batch application calling unit 42 repeatedly calls the batch application 1 for each execution instruction until the end instruction is given. . When there is an execution end instruction from the batch execution process 2, the process by the batch application common processing unit 41 is executed only once at the end, and the process ends.
[0025]
In the example shown in FIG. 1, the program execution control unit 4 first executes the processing by the batch application common processing unit 40 in response to the execution request of the batch applications A, B, C,. The batch application A is called by the batch application calling unit 42 and processed by the batch application calling unit 42 for the execution instruction (A) from On the other hand, the batch application calling unit 42 'calls and processes the batch application B. The other execution requests C, D, E,... Are connected to the execution waiting queue 23.
[0026]
When the execution of the batch application A ends, the batch application calling unit 42 of the program execution control unit 4 calls and processes the batch application C according to the next execution instruction (C) from the batch application execution instruction unit 24.
[0027]
In the prior art, it is necessary to execute the processing by the batch application common processing unit 40 such as the DB connect processing for each batch application, whereas in the present invention, the program execution control unit 4 executes the processing. The processing of the batch application common processing unit 40 in the batch application 1 becomes unnecessary.
[0028]
FIG. 2 is a diagram illustrating an example of execution control of a batch application according to the embodiment of the present invention. In the present embodiment, it is assumed that the processing of the batch application common processing unit 40 in FIG. 1 is a DB connect, and the processing of the batch application common processing unit 41 is a DB disconnect.
[0029]
In the figure, reference numeral 3 denotes a start process for requesting the batch execution process 2 to execute a batch application, reference numeral 5 denotes a parameter file in which parameters necessary for starting the start process 3 are written, and reference numeral 6 denotes a batch application such as an execution program name. A batch application information file in which information is written, 7 is an initialization file in which information necessary for initializing the batch execution process 2 is written, 8 is information such as a batch execution process name, an execution multiplicity, and the number of log files. Is a parameter file written.
[0030]
The parameter file 5 is read to activate the activation process 3. Further, the initialization file 7 and the parameter file 8 are read in order to start the batch execution process 2.
[0031]
Hereinafter, an operation example of the present embodiment will be described with reference to (a) to (f) shown in FIG.
(A) First, the contents of the initialization file 7 and the contents of the parameter file 8 are read, and the batch execution process 2 is started.
(B) The batch execution process 2 generates a program execution control unit (thread) 4 based on the contents of the parameter file 8. Then, the batch execution process 2 issues an instruction to the program execution control unit (thread) 4 based on the contents of the initialization file 7 and causes each program execution control unit (thread) 4 to connect to the DB.
(C) Thereafter, in order to request the execution of the batch application 1, the parameter file 5 and the batch application information file 6 are read, and the activation process 3 is started.
(D) The start process requests the batch execution process 2 to execute the batch application 1 based on the contents of the parameter file 5 and the batch application information file 6 passed by the command argument. Note that the execution request from the start-up process 3 to the batch execution process 2 uses a TCP / IP communication protocol.
(E) When the batch execution process 2 receives the execution request from the start process 3, the batch execution process 2 fetches the parameters of the received execution request, determines the condition of the execution possibility, and executes the currently available program execution control unit (thread) 4 Issue a command. If there is no currently free program execution control unit (thread) 4, the received execution request is queued in the execution queue 23 and put into an execution waiting state.
(F) Upon receiving the execution instruction of the batch application 1, the program execution control unit (thread) 4 starts the batch application 1 having the specified execution program name. When the execution of the batch application 1 is completed, the completion of the execution is reported to the batch execution process 2 and the next execution instruction of the batch application 1 is waited.
[0032]
After all the batch applications 1 have been executed, the program execution control unit (thread) 4 disconnects the DB according to an instruction from the batch execution process 2 and closes the thread.
[0033]
As described above, in the embodiment of the present invention, the connection process (connect) to the DB is performed only once for each of the plurality of program execution control units (threads) 4 generated at the time of starting the system, and once when the system is terminated. Only the disconnection processing (disconnect) to the DB is performed. When the batch application 1 is executed, the batch application 1 is always called from the program execution control unit (thread) 4. In the program execution control unit (thread) 4, the connection processing to the DB has already been completed and the connection state is maintained, so that it is not necessary to perform the connection / disconnection processing to the DB for each batch application 1.
[0034]
FIG. 3 is a diagram showing a flow of the initial processing according to the embodiment of the present invention. When starting the system, first, the initialization file 7 is read in order to start the batch execution process 2 (step S1). FIG. 4 shows an example (SUSVINIT) of the initialization file 7. As shown in FIG. 4, for example, the initialization file 7 includes a user name for accessing the DB, a password of the user accessing the DB, an instance name, a maximum size of a log file, a level for outputting a log, a maximum number of log files, and an instance. (In the case of Java), a JDBC (Java Database Connectivity) driver name (in the case of Java), and information on whether to execute the COBOL business application. JDBC is a standard application program interface (API) for accessing a DB from a Java program.
[0035]
Next, the parameter file 8 is read (step S2). FIG. 5 shows an example of the parameter file 8 (fbdef.txt). In the parameter file 8, for example, as shown in FIG. 5, an execution indicating the name of the batch execution process, the language type such as C / COBOL / Java, the port number (No), and the number of program execution control units (threads) 4 to be generated Information such as the multiplicity, the maximum number of queues that are the maximum number of execution requests that can be connected waiting for execution (MAX queue), the working folder for copying parameter files, the folder for writing log files, and the number of log file files are written. .
[0036]
The batch execution process 2 is started by reading the initialization file 7 and the parameter file 8 (steps S1 and S2) (step S3). After that, the batch execution process 2 generates the program execution control units (threads) 4 for the number of execution multiplicity specified in the parameter file 8 (step S4).
[0037]
FIG. 6 is a diagram illustrating a flow of a program execution control unit (thread) generation process according to the embodiment of the present invention. First, the batch execution process 2 generates the program execution control units (threads) 4 for the parameter file execution multiplicity (step S11). The program execution control unit (thread) 4 is started (step S12). The program execution control unit (thread) 4 first connects to the DB (step S13) and waits for an execution instruction. After generating all the program execution control units (threads) 4, the batch execution process 2 waits for an execution request.
[0038]
FIG. 7 is a diagram showing a batch application execution processing flow in the embodiment of the present invention. When the batch application 1 is executed, the parameter file 5 is first read in order to start the start-up process 3 according to an instruction of an operator or by an automatic start-up process of the system (step S21). FIG. 8 shows an example of the parameter file 5 (fbdef.txt). In the parameter file 5, for example, as shown in FIG. 8, a batch execution process name, a language type such as C / COBOL / Java, a port number (No), an execution multiplicity, and a maximum number of queues are written.
[0039]
Next, the batch application information file 6 is read (step S22). FIG. 9 shows an example of the batch application information file 6 (inp1.txt). In the batch application information file 6, information necessary for the execution of the batch application 1, such as an execution program name, discontinuation elapsed time, data 1, data 2, company code, and base code, as shown in FIG. 9, is written. Have been.
[0040]
Specifically, in the information written in the batch application information file 6 shown in FIG. 9, "pgm = pgm1" is a key for searching for a batch application name ("pgm1") to be executed on the batch execution process 2. “Time = 20” indicates that when waiting on the batch execution process 2, the timeout to wait is 20 seconds.
[0041]
Also, “data1 = 11111111” and “data2 = 22222222” are arguments specific to the batch application 1 to be executed, and “cdcompany = 000” is a company used for searching the DB area on the batch application 1 to be executed. “Cdstore = 000” is a key of a base code used for searching the DB area on the batch application 1 to be executed.
[0042]
Next, activation of the activation process 3 is performed (step S23). Thereafter, the batch execution process shown in FIG. 10 is performed (step S24). In response to an execution instruction from the batch execution process 2, the program execution control unit (thread) 4 performs a calling process of the batch application 1 (step S25), and executes the batch application 1 (step S26).
[0043]
FIG. 10 is a diagram showing a flow of the batch execution process in step S24 of FIG. First, the batch execution process 2 receives an execution request from the activation process 3 (step S31). Next, it is determined whether or not the number of execution requests in the current execution queue 23 has reached the value of the MAX queue (the maximum number of execution requests) (step S32), and the current number of execution requests is set to the value of the MAX queue. If not, error information is set, and the start process 3 is notified that the execution request cannot be accepted (step S35).
[0044]
If the current number of waiting execution requests is smaller than the value of the MAX queue, it is determined whether the execution multiplicity and the number of active threads are different (step S33). That is, it is determined whether there is a free thread in which the batch application 1 is not currently executed. If there is a free thread, an execution instruction is sent to the program execution control unit (thread) 4 to execute the batch application 1 (step S34). If the execution multiplicity and the number of active threads are the same and there is no free thread, the received execution request is queued in the execution waiting queue 23 and waits until a free thread is created (step S36).
[0045]
FIG. 11 is a diagram showing a flow of the end processing according to the embodiment of the present invention. When the end of the batch execution process 2 is instructed by terminating all the batch applications 1 or by an instruction from the operator or the like (step S41), the batch execution process 2 firstly starts the program execution control units (threads) 4 (Step S42). The program execution control unit (thread) 4 performs DB disconnection (step S43), and ends (step S44). The batch execution process 2 ends after confirming the end of the program execution control unit (thread) 4 (step S45).
[0046]
FIG. 12 is a diagram showing a data flow up to the start of the batch application.
(1) The startup process 3 reads the batch application information file 6 shown in FIG.
(2) The data read in the start process 3 is transmitted to the batch execution process 2 by TCP / IP communication in a message format shown in FIG.
(3) A hash map as shown in FIG. 12C is created on the batch execution process 2 based on the message transmitted from the activation process 3. The hash map is data in which parameters and keys necessary for executing the batch application 1 are collected.
(4) The hash map shown in FIG. 12C is sent to the vacant program execution control unit (thread) 4. If there are no free threads, wait for a free thread until the timeout value. If the timeout value is exceeded, do nothing and terminate with an error.
(5) The batch application “pgm1” is executed using the hash map data shown in FIG. 12D as an argument. In the process in pgm1, data is input based on each key of the argument.
[0047]
FIG. 13 is a sequence diagram of the batch application execution process according to the embodiment of the present invention. In FIG. 13, an example will be described in which the batch application A and the batch application B, which are business applications that perform data processing by connecting to the DB and performing disconnection from the DB after the operation is completed, are described as an example. Further, it is assumed that the business applications (batch application A and batch application B) have been developed in Java, for example.
[0048]
In FIG. 13, first, when the batch execution process 2 is started (a), the batch execution process 2 generates a program execution control unit (thread) 4, issues an instruction to the program execution control unit (thread) 4, and connects to the DB connection. (B).
[0049]
Next, when the start process 3 starts (c), the start process 3 requests the batch execution process 2 to execute (d). The batch execution process 2 issues an execution instruction to the currently free program execution controller (thread) 4 (e). Upon receiving the execution instruction, the program execution control unit (thread) 4 generates a business application class, calls and executes the batch application A (f). When the execution processing is completed, the batch execution process 2 receives an execution completion notification from the program execution control unit (thread) 4 (g).
[0050]
When the activation process 3 is activated again (h), the activation process 3 requests the batch execution process 2 to execute (i). The batch execution process 2 issues an execution instruction to the currently free program execution controller (thread) 4 (j). Upon receiving the execution instruction, the program execution control unit (thread) 4 generates a business application class, calls and executes the batch application B (k).
[0051]
The batch execution process 2 receives the execution completion notification from the program execution control unit (thread) 4 (l), and then, after confirming that there is no batch application to be executed, issues an instruction to the program execution control unit (thread) 4. To disconnect the DB, and perform termination processing (m).
[0052]
As can be understood from the above, the features of the embodiment of the present invention are as follows.
[0053]
(Supplementary Note 1) A batch application execution control method for controlling execution of a plurality of batch applications,
Generating one or more program execution controllers;
The generated one or more program execution control units first executing common processing commonly required by the plurality of batch applications;
Repeating the process of sequentially calling and executing the batch applications one by one after the execution of the common process until all the batch applications have been executed.
A method for controlling execution of a batch application, the method comprising:
[0054]
(Supplementary Note 2) A batch application execution control method for controlling execution of a plurality of batch applications,
Activating a batch execution process for controlling execution of the plurality of batch applications;
Said batch execution process generating a plurality of program execution control units;
Firstly, for each of the plurality of generated program execution control units, executing common processing required in common for the plurality of batch applications;
The batch execution process receiving an execution request of the batch application;
The batch execution process instructing the execution of the batch application that has received the execution request to a program execution control unit that is not currently executing the batch application;
Receiving the execution instruction, the program execution control unit invoking and executing the designated batch application.
A method for controlling execution of a batch application, the method comprising:
[0055]
(Supplementary note 3) In the batch application execution control method according to supplementary note 2,
In the step of generating a plurality of the program execution control units, the batch execution process generates the program execution control units for the number of execution multiplicity included in the information read at the time of starting the batch execution process.
A method for controlling execution of a batch application, the method comprising:
[0056]
(Supplementary note 4) In the batch application execution control method according to any one of supplementary notes 1 to 3,
Further, the program execution control unit has a step of executing common processing that is required in common when the batch application ends, before the program execution ends.
A method for controlling execution of a batch application, the method comprising:
[0057]
(Supplementary Note 5) A batch application execution control device that controls execution of a plurality of batch applications,
Comprising batch execution control means and a plurality of program execution control means;
The batch execution control means includes:
Means for receiving the execution request of the batch application;
Means for instructing the program execution control means to execute the batch application that has received the execution request,
Each of the plurality of program execution control means includes:
Means for first executing common processing required commonly for the plurality of batch applications;
Means for calling and executing the designated batch application in response to a batch application execution instruction from the batch execution control means.
A batch application execution control device, characterized in that:
[0058]
(Supplementary note 6) A batch application execution control program for causing a computer to execute the batch application execution control method according to any one of supplementary notes 1 to 4.
[0059]
(Supplementary note 7) A computer-readable recording medium recording a batch application execution control program for causing a computer to execute the batch application execution control method according to any one of supplementary notes 1 to 4.
[0060]
【The invention's effect】
According to the present invention, a batch application can be processed at a high speed, so that the processing time of a regular batch application performed at night or the like can be reduced.
[0061]
Further, by using the present invention, for example, the process of connecting / disconnecting the database and the process of activating JavaVM do not have to be performed for each batch application, so that the load on the entire system can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration example of an apparatus that implements the present invention.
FIG. 2 is a diagram illustrating an example of execution control of a batch application according to the embodiment of the present invention.
FIG. 3 is a diagram showing a flow of an initial process.
FIG. 4 is a diagram illustrating an example of an initialization file.
FIG. 5 is a diagram showing an example of a parameter file.
FIG. 6 is a diagram showing a flow of a program execution control unit (thread) generation process.
FIG. 7 is a diagram illustrating a flow of a batch application execution process.
FIG. 8 is a diagram showing an example of a parameter file.
FIG. 9 is a diagram illustrating an example of a batch application information file.
FIG. 10 is a diagram showing a flow of a batch execution process process.
FIG. 11 is a diagram showing a flow of a termination process.
FIG. 12 is a diagram showing a data flow up to the start of a batch application.
FIG. 13 is a sequence diagram of a batch application execution process.
FIG. 14 is a diagram illustrating the operation of a conventional batch application.
[Explanation of symbols]
1,11 Batch application
2 Batch execution process
3 Startup process
4 Program execution control unit (thread)
5 Parameter file
6,10 Batch application information file
7 initialization file
8 Parameter file
20 Program execution control unit generation unit
21 Execution request receiving unit
22 Execution waiting manager
23 Pending queue
24 Batch application execution command section
40, 41 Batch application common processing unit
42 Batch application calling unit
100 Data processing device

Claims (5)

複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御方法であって,
1または複数のプログラム実行制御部を生成するステップと,
前記生成された1または複数のプログラム実行制御部が,最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行するステップと,
前記共通処理の実行後に,前記バッチアプリケーションを順次,一つのプログラム実行制御部が一つずつ呼び出して実行する処理を,すべてのバッチアプリケーションの実行が終了するまで繰り返すステップとを有する
ことを特徴とするバッチアプリケーション実行制御方法。
A batch application execution control method for controlling execution of a plurality of batch applications,
Generating one or more program execution controllers;
The generated one or more program execution control units first executing common processing commonly required by the plurality of batch applications;
Repeating the process of sequentially calling and executing the batch applications one by one after the execution of the common process until all the batch applications have been executed. Batch application execution control method.
複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御方法であって,
前記複数のバッチアプリケーションの実行を制御するためのバッチ実行プロセスを起動するステップと,
前記バッチ実行プロセスが,プログラム実行制御部を複数生成するステップと,
前記生成された複数のプログラム実行制御部毎に,最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行するステップと,
前記バッチ実行プロセスが,前記バッチアプリケーションの実行依頼を受け付けるステップと,
前記バッチ実行プロセスが,前記実行依頼を受け付けたバッチアプリケーションの実行を,現在バッチアプリケーションを実行していないプログラム実行制御部に指示するステップと,
前記実行指示を受けたプログラム実行制御部が,指示されたバッチアプリケーションを呼び出して実行するステップとを有する
ことを特徴とするバッチアプリケーション実行制御方法。
A batch application execution control method for controlling execution of a plurality of batch applications,
Activating a batch execution process for controlling execution of the plurality of batch applications;
Said batch execution process generating a plurality of program execution control units;
Firstly, for each of the plurality of generated program execution control units, executing common processing required in common for the plurality of batch applications;
The batch execution process receiving an execution request of the batch application;
The batch execution process instructing the execution of the batch application that has received the execution request to a program execution control unit that is not currently executing the batch application;
The program execution control unit receiving the execution instruction calls and executes the specified batch application.
請求項2に記載のバッチアプリケーション実行制御方法において,
前記バッチ実行プロセスが,前記プログラム実行制御部を複数生成するステップでは,前記バッチ実行プロセスの起動時に読み込んだ情報に含まれる実行多重度数分のプログラム実行制御部を生成する
ことを特徴とするバッチアプリケーション実行制御方法。
The batch application execution control method according to claim 2,
In the step of generating a plurality of the program execution control units, the batch execution process generates program execution control units for the number of execution multiplicity included in information read at the time of starting the batch execution process, wherein Execution control method.
複数のバッチアプリケーションの実行を制御するバッチアプリケーション実行制御装置であって,
バッチ実行制御手段と,複数のプログラム実行制御手段とを備え,
前記バッチ実行制御手段は,
前記バッチアプリケーションの実行依頼を受け付ける手段と,
前記プログラム実行制御手段に対し,前記実行依頼を受け付けたバッチアプリケーションの実行指示を行う手段とを備え,
前記複数のプログラム実行制御手段の各々は,
最初に前記複数のバッチアプリケーションに共通に必要となる共通処理を実行する手段と,
前記バッチ実行制御手段からのバッチアプリケーションの実行指示に対し,指示されたバッチアプリケーションを呼び出して実行する手段とを備える
ことを特徴とするバッチアプリケーション実行制御装置。
A batch application execution controller for controlling execution of a plurality of batch applications,
Comprising batch execution control means and a plurality of program execution control means;
The batch execution control means includes:
Means for receiving the execution request of the batch application;
Means for instructing the program execution control means to execute the batch application that has received the execution request,
Each of the plurality of program execution control means includes:
Means for first executing common processing required commonly for the plurality of batch applications;
Means for calling and executing the designated batch application in response to a batch application execution instruction from the batch execution control means.
請求項1から請求項3までのいずれか1項に記載のバッチアプリケーション実行制御方法を,コンピュータに実行させるためのバッチアプリケーション実行制御プログラム。A batch application execution control program for causing a computer to execute the batch application execution control method according to any one of claims 1 to 3.
JP2003161556A 2003-06-06 2003-06-06 Batch application execution control method, batch application execution control device, and batch application execution control program Expired - Fee Related JP4071678B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003161556A JP4071678B2 (en) 2003-06-06 2003-06-06 Batch application execution control method, batch application execution control device, and batch application execution control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003161556A JP4071678B2 (en) 2003-06-06 2003-06-06 Batch application execution control method, batch application execution control device, and batch application execution control program

Publications (2)

Publication Number Publication Date
JP2004362376A true JP2004362376A (en) 2004-12-24
JP4071678B2 JP4071678B2 (en) 2008-04-02

Family

ID=34053936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003161556A Expired - Fee Related JP4071678B2 (en) 2003-06-06 2003-06-06 Batch application execution control method, batch application execution control device, and batch application execution control program

Country Status (1)

Country Link
JP (1) JP4071678B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011039800A (en) * 2009-08-12 2011-02-24 Hitachi Ltd Database management method and system, and processing program therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011039800A (en) * 2009-08-12 2011-02-24 Hitachi Ltd Database management method and system, and processing program therefor
US8346744B2 (en) 2009-08-12 2013-01-01 Hitachi, Ltd. Database management method, database management system, and processing program therefor

Also Published As

Publication number Publication date
JP4071678B2 (en) 2008-04-02

Similar Documents

Publication Publication Date Title
US8332845B2 (en) Compile timing based on execution frequency of a procedure
JP4242458B2 (en) License management system
US8789058B2 (en) System and method for supporting batch job management in a distributed transaction system
US8136127B1 (en) System and method for linearly managing client-server communication
KR101618476B1 (en) Distributed resource management in a portable computing device
KR20040086594A (en) Method and apparatus for obtaining status information in a grid
TW200828118A (en) Method and process for using common preinstallation environment for heterogeneous operating systems
JP2007219790A (en) Remote desktop system
JP4233635B2 (en) Apparatus and method for providing persistence to an application interface
WO2021022714A1 (en) Message processing method for cross-block chain node, device, apparatus and medium
US7237005B2 (en) Job network setup method, job network execution method, job management system, management terminal and program
CN114661436A (en) Cloud-native job scheduling method, system and storage medium
JP2004102453A (en) Context launch management method and system, its program and recording medium
US20060242258A1 (en) File sharing system, file sharing program, management server and client terminal
JP4071678B2 (en) Batch application execution control method, batch application execution control device, and batch application execution control program
EP1497720B1 (en) System and method for managing operating system option values
US8359602B2 (en) Method and system for task switching with inline execution
JP2000003258A (en) Printing system
CN107632893A (en) Message queue processing method and processing device
JP2005332025A (en) Method for generating interruption scenario, server device, and program thereof
JP2000259591A (en) Distributed processing job execution method and network system
JP2009181344A (en) Information processing apparatus, drawing instruction generation device, information processing system, method of controlling information processing apparatus, method of controlling drawing instruction generation device and program
JP3534359B2 (en) Apparatus, method and computer system supporting multiple display sessions
JP6115253B2 (en) Print system, spool server, spool method, and program
WO2022249240A1 (en) Activation system and activation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070808

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080117

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4071678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140125

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees