情報処理装置、制御方法、プログラム、及び記録媒体
【課題】本発明は、データベースサーバで管理されているテーブルに対して、アプリケーションからの更新処理を実施した際、更新内容を時系列に記録し、網羅的に把握する仕組みを提供する。
【解決手段】
業務端末200においてアプリケーション001の実行タイミングに合わせてデータベースサーバ300のアプリケーションテーブル群004への更新処理が発生したときに、記録装置006が更新内容に関連する情報を網羅的に記録テーブル007に記録した後、照会端末500において記録テーブル007に記録された更新内容を照会することで、システムにおける障害等の発生原因を効率的に調査する。
【解決手段】
業務端末200においてアプリケーション001の実行タイミングに合わせてデータベースサーバ300のアプリケーションテーブル群004への更新処理が発生したときに、記録装置006が更新内容に関連する情報を網羅的に記録テーブル007に記録した後、照会端末500において記録テーブル007に記録された更新内容を照会することで、システムにおける障害等の発生原因を効率的に調査する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースサーバで管理されているテーブルに対して、更新処理を実施した際、更新内容を時系列に記録し、記録した更新内容を照会する技術に関する。
【背景技術】
【0002】
近年のシステムでは、データベースが必須の要素機能となっている。その中でも特に、リレーショナルデータベース(RDB)が世の中で広く使用されている。
【0003】
システムにおけるデータベースの利用用途としては、整合性の取れたデータを保管する器として使用され、アプリケーション等のプログラムから、照会、更新等の要求に対する処理の実行または、結果を提示するサービスを提供している。
【0004】
ただし、データベースへのアクセスは、SQLという言語によってアクセスがなされ、データベース内で格納されているデータがどのように更新されているかは、ブラックボックス化され、更新内容を網羅的に把握することは、現状、困難である。
【0005】
尚、ここで述べる更新内容とは、いつ、だれが(ユーザ)、どこで(コンピュータ名)、 どのプログラムが(プログラム名)、どのテーブルに(テーブル名)、どういう操作を(Insert,Update,Delete)、どういう順で(連続番号で管理)、どのレコードに対して(テーブルのレコードデータ)、どのようなデータ項目に登録されている値を、どのような値に更新したか、あるいは更新されたレコードの該当項目以外の項目の値はどのような値であったか、といった事を特定することを示している。
【0006】
特にシステム構築にあたり、構築したシステムをテスト、評価、障害原因調査をする際、データベースへの更新内容を精査することが重要な作業でかつ労力のかかる作業となる。
【0007】
この作業は、システム構築時のテスト局面、導入後の受入検査時、障害・セキュリティインシデント発生時の原因追及の際に発生し、多大な作業時間を費やした結果、更新内容が把握できる場合もあるが、網羅的には把握できないのが現状である。
【0008】
従来技術では、データベースへの更新内容が手軽に網羅的に把握することができない。
【0009】
ここで、テストを実施する際の具体的な作業内容を記し、当作業において、現状での問題点を挙げ、従来技術では、実現が困難であることを説明する。作業内容としては、(1)設計書から更新対象のテーブルを洗い出し、把握する、(2)上記テーブルのデータを手動で電子ファイルに記録する、(3)テスト対象のアプリケーションにてデータベースへの更新処理を実施する、(4)上記テーブルのデータを手動で電子ファイルに記録する、(5)(2)と(4)の結果を手動で比較する。
【0010】
但し、これらの作業を実施するには、次の前提が必要となり、(A)アプリケーションと整合性のとれた設計書が必須となる、(B)同時に1処理のテストしかできないので複数人では、実施不可、といった前提が必要となる。
【0011】
この前提に基づいて作業を実施すると、現状においては、次の問題が発生する。
【0012】
前提(A)に関連して、アプリケーションが更新したテーブルの網羅性は、設計書の精度、アプリケーションと設計書の整合性の高さに依存してしまう、また設計書内に更新対象のテーブルの記載がもれていると、テストケースからもれてしまう、更に各更新対象テーブルの更新順序が把握できない、更新順序が正しいかどうかは、プログラムのソースを見なければ判断できない、といった問題が発生する。
【0013】
また、前提(B)に関連して、更新ユーザ、プログラムが特定できない、またアプリケーション側でこれらの情報を記録しなければ、特定はできない、また複数人で実施した際、更新ユーザ、プログラム、更新順序の把握ができない、また、一元管理されたデータベースに対して、複数のユーザ、プログラムで同時に更新されるため、アプリケーション側でこれらの情報を記録しなければ、特定は難しい。といった問題がある。
【0014】
更に、テスト対象アプリケーションの処理前、処理後のデータ内容の記録を手作業で実施する必要があり、作業の手間と作業のミスが発生してしまう。
【0015】
そこで、ユーザのテストの作業効率を向上させるための技術の1つとして、オンライン処理実施時に発生するデータベースの更新に対して、更新前及び更新後のデータを用いて遡及的に大量のテストデータの作成を行う技術が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2009−075949号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
しかしながら、特許文献1に記載の技術においては、テスト作業の効率化を行うためのテスト実行環境の提供を目的としており、遡及的にテストデータを作成することが記載されており、データベースに対する更新等のトランザクションの発生によって生じる障害等の原因調査等への対応については記載や示唆はなく、システムにおける障害等の発生時に原因調査を行うには、情報として不十分となり、精密な調査を行うことが難しい。
【0018】
更に、テストデータ作成を支援する仕組みを構築する際の作業者の負荷も高まる可能性が生じることも問題の1つとして上げられる。
【0019】
本発明は、上記の課題を解決するためになされたものであり、データベースに対する更新履歴からシステムにおける障害の発生原因の調査を作業者への負荷をかけることなく効率的に行うことが可能な情報処理装置、制御方法、プログラム、及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【0020】
上記目的を達成するための第1の発明は、少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、前記記録手段によって記録された更新内容を表示する表示手段と、を備えたことを特徴とする。
【0021】
上記目的を達成するための第2の発明は、少なくとも1以上のアプリケーションテーブルを表示選択する表示選択工程と、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択工程によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録工程と、前記記録工程によって記録された更新内容を表示する表示工程と、を備えたことを特徴とする。
【0022】
上記目的を達成するための第3の発明は、コンピュータで読取り可能なプログラムである共に実行可能なプログラムであって、前記プログラムは、少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、前記記録手段によって記録された更新内容を表示する表示手段と、として機能することを特徴とする。
【0023】
上記目的を達成するための第4の発明は、第3の発明で記載したプログラムを記録したコンピュータで読取り可能な記録媒体。
【発明の効果】
【0024】
本発明によれば、データベースに対する更新履歴に関与する情報を網羅的に記録することによって障害の発生原因の調査を作業者への負荷をかけることなく効率的に行うことが可能となる、という効果を奏する。
【図面の簡単な説明】
【0025】
【図1】本発明の実施形態における情報処理システムの構成を示す図である。
【図2】本発明の実施形態における情報処理システムを構成する各装置のハードウェア構成を示す図である。
【図3】本発明の実施形態における作業の流れを示すフロー図である。
【図4】本発明の実施形態における全体の概略処理を示すフロー図である。
【図5】本発明の実施形態における更新内容を記憶するための記録テーブルの構成を示す構成図である。
【図6】本発明の実施形態における記録テーブルを生成するための画面の一例を示す構成図である。
【図7】本発明の実施形態における記録装置を生成するための画面の一例を示す構成図である。
【図8】本発明の実施形態における監視対象候補テーブルを一覧表示する際の処理を示すフローチャートである。
【図9】本発明の実施形態における記録装置を生成する処理を示すフローチャートである。
【図10】本発明の実施形態における記録装置の記録処理に関する処理を示すフローチャートである。
【図11】本発明の実施形態におけるアプリケーションによるデータ追加時の記録テーブル内容を説明するための説明図である。
【図12】本発明の実施形態におけるアプリケーションによるデータ更新時の記録テーブル内容を説明するための説明図である。
【図13】本発明の実施形態におけるアプリケーションによるデータ削除時の記録テーブル内容を説明するための説明図である。
【図14】本発明の実施形態における複数のアプリケーション、ユーザによる更新処理時の記録テーブル内容を説明するための説明図である。
【図15】本発明の実施形態における照会装置における検索条件指定画面の一例を示す構成図である。
【図16】本発明の実施形態における照会装置の検索結果画面の一例を示す構成図である。
【図17】本発明の実施形態における照会装置の検索結果を表示する処理に関する処理を示すフローチャートである。
【図18】本発明の実施形態におけるラベル使用時の記録テーブルへ記録されたことが検索結果画面で表示されていることを示す構成図である。
【図19】本発明の実施形態における照会装置においてラベルを登録する処理に関するフローチャートである。
【発明を実施するための形態】
【0026】
以下、本発明の実施形態について、図面を参照しながら、詳細に説明する。
【0027】
まず、本発明の本発明の一実施形態に係る、システム構成、各機能の役割について説明する。
【0028】
図1は、本発明の実施形態に係る情報処理システムにおけるシステムの構成を示す構成図である。
【0029】
図1に示すように、情報処理システム100は、業務端末200、データベースサーバ300、管理端末400、及び照会端末500から構成されている。ただし、業務端末200、管理端末400、及び照会端末500が受け持つ機能については、場所を問わない。例えば、データベースサーバ300上ですべての機能を持つことも可能である。
【0030】
業務端末200は、データベースへの更新処理を行うアプリケーション001が導入されユーザが操作を行うための端末である。この業務端末200では、アプリケーション001を操作し、データベースサーバ300上のアプリケーションテーブル群004に対して更新処理を行う。
【0031】
アプリケーション001は、データベースへの更新処理を行うソフトウェアを示しており、本発明の提供機能外の位置づけとしており、データベースへの更新処理を行うものであれば、特定しない。
【0032】
次にデータベースサーバ300について説明する。データベースサーバ300には、データベースとしてRDB(Relational Database)製品が導入され、各種データベースサービスを提供する役割を担っている。本発明において更新内容の把握対象(監視対象)のデータベースが記憶されている。
【0033】
データベースサーバ300は、アプリケーション001が、参照及び更新するアプリケーションテーブル群004を有する。本発明の実施においては、予め存在しているものとし、本発明の提供機能外とする。また、本テーブル群のレイアウト等に関する制約はないものとする。また、本テーブル群は、本発明における更新処理を監視し、更新内容を把握する対象(監視対象)のテーブルとなる。
【0034】
データベースサーバ300は、RDB定義情報005を備えており、本情報は、RDBの機能を実現する上で必要な情報群を指しており、本発明では、テーブル定義情報および項目定義情報を必要とする。
【0035】
テーブル定義情報とは、データベースサーバ300上で管理されている各テーブルの属性情報を付加したテーブル一覧である。また、項目定義情報とは、先のテーブル一覧に定義されているテーブル毎の項目の属性情報を付加した項目一覧である。また、項目の型情報等の属性情報も保持している。先にも記したように、RDB製品には、凡そこれらの情報がRDBの標準機能として保持されている。
【0036】
本発明では、これらのRDB定義情報005を元に記録装置006を自動生成する。記録装置006は、アプリケーション001、及びアプリケーションテーブル004の実装形態にかかわらず、汎用的かつ網羅的に更新内容を把握する機能が提供できる基礎情報となる。よって、RDB上でこれらの情報が採取できない環境では、記録装置006の自動生成は実現できない。
【0037】
管理端末400は、本発明の記録基盤生成装置002が導入されており、管理者が操作するための端末である。管理端末400より、記録基盤生成装置002を用いて、データベースサーバ300に対して記録装置006、及び記録テーブル007の生成作業を実施する。
【0038】
照会端末500は、本発明の照会装置003が導入され、ユーザが操作するための端末である。照会端末500より、照会装置003を用いて、データベースサーバ300上の記録テーブル007を照会し、更新内容を照会する。本照会作業を持って、RDBへの更新内容の把握を行う。
【0039】
次に、データベースサーバ300上に存在する記録テーブル007について説明する。記録テーブル007は、監視対象とすべくRDBに1つずつ存在する。
【0040】
記録テーブル007は、管理端末400上の記録基盤生成装置002を操作することで生成する。
【0041】
記録テーブル007内にアプリケーションテーブル群004への更新内容が時系列に記録される。更新内容の記録処理は、記録装置006が受け持つ。
【0042】
次に、記録装置006を説明する。記録装置006は、管理端末400上の記録基盤生成装置002を操作することで生成し、RDBに実装されている標準の基盤機能であるトリガー機構によって、データベースサーバ300上に登録される。記録装置006は、アプリケーションテーブル群004に存在する各テーブル毎に登録される。
【0043】
トリガー機構の特徴として、データベースサーバ300上で、アプリケーションテーブルに対する更新処理(Insert,Update,Delete)が発生した際、その更新タイミングに合わせてレコード単位にトリガー機構を実行することができる。
【0044】
このトリガー機構を用いて、RDBの標準機能より、記録装置006が起動される。記録装置006では、Insert時、Delete時のデータ、Update時の更新前、更新後のデータを記録テーブル007に時系列に記録する。
【0045】
図2には、本発明の実施形態に係る情報処理システムにおける各業務端末200、データベースサーバ300、管理端末400、及び照会端末500に組み込まれたコンピュータのハードウエア構成の例を示す図である。
【0046】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic
Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【0047】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0048】
また、入力コントローラ(入力C)205は、キーボード(KB)209や不図示のマウス等のポインティングデバイスからの入力を制御する。ビデオコントローラ206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
【0049】
メモリコントローラ207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ211へのアクセスを制御する。
【0050】
通信I/Fコントローラ208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
【0051】
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0052】
本発明を実現するためのプログラム類は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルおよび各種情報テーブルは外部メモリ211に格納されており、これらについての詳細な説明は後述する。
【0053】
次に、図3を用いて、本発明におけるRDBの更新履歴の照会を行う迄の作業の流れを説明する。
【0054】
図3に示すように、作業は、更新内容の記録準備、アプリケーション処理および更新内容記録、及び更新内容記録の照会の順で行われる。
【0055】
ただし、更新内容の記録準備については、初回のみ実施し、以降は、アプリケーションテーブル群004の各テーブル構造を変更した場合に実施する必要がある。
【0056】
変更がない場合は、アプリケーション処理および更新内容記録及び更新内容記録の照会を繰り返し、アプリケーションの更新処理に伴う、更新内容の把握を行う。
【0057】
まず、更新内容の記録準備では、図1に示す管理端末400にて、記録基盤生成装置002を用いて、記録装置006及び記録テーブル007の生成作業を行う。
【0058】
次に、アプリケーション処理および更新内容記録では、図1に示す業務端末200にて、アプリケーション001を操作し、データベースサーバ300上のアプリケーションテーブル群004への更新処理を行う。
【0059】
データベースサーバ300上では、各アプリケーションテーブル004が更新されたことを契機に記録装置006が起動され、記録テーブル007に更新内容を記録する。
【0060】
次の更新内容記録の照会では、図1に示す照会端末500にて、照会装置003を用い、データベースサーバ300上の記録テーブル007を参照し、更新内容を照会する。
【0061】
次に作業の流れと処理のフローを説明し、各機能の詳細な説明を行う。
【0062】
図4は、本発明の実施形態に係る情報処理システム100におけるRDBの更新履歴の照会を行う迄の概要処理フローを示す図である。
【0063】
図4に示す更新内容の記録準備010では、管理端末400にて、記録基盤生成装置002を用いて、記録テーブル007の生成を行う(011)。生成作業について、図4のフローチャート及び図6に示す生成画面例を用いて説明する。
【0064】
管理端末400において記録基盤生成装置002を起動する(起動とともにRDBへの接続が行われている。)。記録基盤生成装置002の設定画面(図6参照)を表示し、030を選択後、031の箇所において項目数(ColumnCount)、項目のバイト数(ColumnByte)を設定する。
【0065】
項目数については、データベースサーバ300上のアプリケーションテーブル群004の中での最大項目数を設定する。また、項目のバイト数については、データベースサーバ300上のアプリケーションテーブル群004の項目の中で最大のバイト数を設定する。
【0066】
また、自立型トランザクション031の項目を設定する。ONを設定することで、監視対象のテーブル更新のトランザクションとは独立したトランザクションで記録テーブル007に記録を行う。
【0067】
つまり、監視対象のテーブル更新処理がロールバックされた場合でも、記録テーブル007に記録が残る。また、OFFを設定することで、監視対象のテーブル更新のトランザクション内の処理として、記録テーブル007に記録する。
【0068】
つまり、監視対象のテーブル更新処理がロールバックされた場合、記録テーブル007への記録内容についてもロールバックされることとなる。
【0069】
継続して、記録基盤生成装置002を用いて、032の箇所において、記録テーブル生成指示を選択した後、記録テーブル生成スクリプト033が生成されるため、その後、コンパイルボタン034を押下することによってデータベースサーバ300上に登録する。
【0070】
よって、アプリケーションテーブル群004の構成(最大項目数、項目最大バイト数)が変更された場合は、構成変更後、再度実施する必要がある。
【0071】
次に、図4の記録テーブル007について説明する。前述の作業で生成された記録テーブル007は、監視対象のRDBに1つのみ生成する。記録テーブル007のレイアウトを図5に示す。記録テーブル007の各項目は、管理項目、テーブル項目に分類することができる。
【0072】
管理項目020には、いつ(日時)、だれが(ユーザ)、どこで(ホスト名)、どのプログラムが(プログラム名、セッションID)、どのテーブルに(テーブル名)、どういう操作を(更新種別)、どういう順で(連番)等のデータを記録し、テーブル項目021には、監視対象のテーブル(アプリケーションテーブル群004)のレコードイメージが記録される。
【0073】
記録テーブル007は、複数のRDBのレコードイメージが記録されるため、汎用的な項目名とし、項目1〜監視対象のテーブル群の最大の項目数(n)の範囲内で項目数を持つような態様をとることが可能となる。
【0074】
また、テーブル項目021内では、どのレコードに対して、どのようなデータ項目に登録されている値を、どのような値に更新されたかを記録する。
【0075】
次に、図4に示す更新内容の記録準備010では、管理端末400にて、記録基盤生成装置002を用いて、記録装置006の生成を行う。生成作業について、図4のフロー及び図6に示す生成画面例を用いて説明する。
【0076】
図4に示す通り、まず管理端末400で記録基盤生成装置002を起動する(起動とともにRDBへの接続が行われている。)。図7に示す記録基盤生成装置002の監視対象テーブル一覧画面を表示し、040を選択後、監視対象候補テーブル一覧041を表示する。監視対象候補テーブル一覧041は、図4に示すアプリケーションテーブル群004に該当する。
【0077】
次に、監視対象候補テーブル一覧041の中から監視対象のテーブルをチェックボックス402にチェック印を入力することで選択する。
【0078】
その後、トリガー生成指示043を選択した後、記録装置生成スクリプト044が生成されるため、その後、コンパイルボタン045を押下することによってデータベースサーバ300上に登録する。
【0079】
本作業は、アプリケーションテーブル群004の構成(項目の追加、削除、型の変更、テーブルの削除、追加)が変更された場合は、構成変更後、再度実施する必要がある。
【0080】
図7に示す監視対象候補のテーブル一覧041への表示処理は、図7に示す処理フローにて実施される。本フローチャートにおける各ステップの処理は、データベースサーバ300のCPU201の制御の元、実行される。
【0081】
まず、ステップS001では、監視対象のRDBに接続を行った後、次に、ステップS002では、データベースサーバ300上に存在するRDB定義情報005内のテーブル定義情報の集合を読み取る。
【0082】
そしてステップS003は、ループ開始を示しており、また本ループの終了をステップS006としており、テーブル毎に処理を繰り返す。
【0083】
ループ内における処理では、ステップS004では、テーブル名を取得し、監視対象候補テーブル一覧041に表示すべき対象としてRAM203へ追加で記憶していく。
【0084】
ステップS002で取得したテーブル定義情報に定義されたテーブルに対して全て処理が完了したならば、ステップS006においてループを終了した後、ステップS007において、管理端末400のCRT210に表示された図7に示す監視対象候補のテーブル一覧041へテーブル名の一覧表示を行う。
【0085】
その後、監視対象候補のテーブル一覧041より、管理者は手動で監視対象テーブルを選択する。
【0086】
次に、記録装置006を生成する処理について、図9に示すフローチャートを用いて説明する。
【0087】
まず、ステップS011では、監視対象のRDBに接続を行い、次にステップS012において監視対象候補のテーブル一覧041で選択されたテーブル群を取得し、ステップS013より取得したテーブル毎にループを開始する。
【0088】
次に、ステップS014において、データベースサーバ300上に存在するRDB定義情報005内の項目定義情報に対して、ステップS011において指定されたテーブルを条件にテーブルの項目の一覧を取得しRAM203へ記憶する。
【0089】
次のステップS015においてRAM203へ記憶した項目の一覧を元に、項目毎にループを開始する。
【0090】
次に、ステップS016において、ループで指定された項目の型情報を取得する。そして次のステップS017において、項目、型情報毎にキャラクタ型への変換ロジックを生成し、ステップS018では、ステップS017において生成された変換ロジックをRAM203に追加で記憶する。
【0091】
ステップS019は、処理対象項目がなくなれば、項目のループを終了することを示しており、処理対象となる項目が存在すれば、ステップS015へ処理を進める。
【0092】
ステップS020では、ステップS018においてRAM203へ追加記憶した変換ロジックからプログラム(SQL)を生成する。
【0093】
ステップS013からステップS020までテーブル単位で処理し、処理対象のテーブルがなくなれば、テーブルのループを終了する(ステップS021)。すべてのテーブルに対するプログラム(SQL)を図6に示す記録装置生成スクリプト044に表示する。
【0094】
これによって、更新内容の記録を行うための準備が整ったことになる。続いて、図4のアプリケーション処理およびログ記録013について説明する。
【0095】
まず、業務端末200にて、アプリケーション001を用いて、データベースサーバ300上のアプリケーションテーブル群004への更新処理を行う。
【0096】
業務端末200にて、アプリケーション001を操作することによって、RDBの標準機能が更新のイベントをトリガー機構によって検知し、記録装置006が起動される。つまり、アプリケーション001がRDBに接続したセッション内で、記録装置006が起動され、記録テーブル007にアプリケーションテーブル004に対する更新内容を記録する。記録後、アプリケーション001に制御が戻ることとなる。
【0097】
次に、記録装置006が起動された後、記録テーブル007に更新内容が記録される処理について、図10に示すフローチャートを用いて説明する。
【0098】
まず、ステップS031において、RDBへの接続情報(セッション情報)を取得する。つまり、先に記したとおり、アプリケーション001における更新処理に関するセッション情報である。この情報は、図5に示す記録テーブル007に示すテーブルレイアウトのセッションIDに記録するために予め情報を取得する。
【0099】
次に、ステップS032において、シーケンスNo.を取得し、更新処理に対して、ユニークな採番を行い、RAM203へ記憶した後、ステップS033において、更新処理に対して、Insert、Update、あるいはDeleteかを判別する。
【0100】
UpdateあるいはDeleteの場合は、ステップS034へ処理を進め、更新前のデータを記録テーブル007へ記録する。
【0101】
次に、ステップS035において、再度更新の種別を判断し、Deleteの場合は、処理を終了し、Updateの場合、ステップS036へ処理を進める。
【0102】
ステップS036において、更新後のデータを記録テーブル007へ記録する。つまり、Insert、Updateの場合は、記録テーブル007へ記録する。
【0103】
アプリケーションの操作からアプリケーションテーブルへの更新、記録テーブルの記録の内容については、図11〜図14を用いて詳細に説明する。
【0104】
図11〜図13では、図4に示すアプリケーション001を社員マスタメンテナンス画面として想定したものを図示している。
【0105】
アプリケーション001は、図4に示すアプリケーションテーブル群004の「社員マスタ」に対して追加、更新、削除するプログラムである。それぞれの操作をしたときのアプリケーションの操作、アプリケーションテーブルへの更新、記録テーブルの記録の内容を具体的に説明する。
【0106】
さらに図14では、複数のアプリケーション、アプリケーションテーブルに対し、複数のユーザが更新処理をしたときの例を掲載している。
【0107】
図11では、社員マスタに新しい社員を追加する例を挙げている。
【0108】
まず、社員マスタメンテナンス画面031を起動する。このときアプリケーションテーブル群004のテーブルに対しての変更はないため(032)、記録テーブル007への記録は発生しない(033)。
【0109】
次に社員マスタメンテナンス画面031においてで追加する社員の情報を入力するための入力領域034へ入力を行ったタイミングでは、アプリケーションテーブル群004のテーブルに対しての変更はないため(036)、記録テーブル007への記録は発生しない(037)。
【0110】
次に、登録ボタン035を押下し、登録処理が実行されると、登録処理の結果が社員マスタメンテナンス画面031上に表示(038)される。登録処理後、アプリケーションテーブル群004には、社員マスタメンテナンス画面031上に入力された情報が追加(039)される。このとき、記録テーブル007に、ホスト名、プログラム名、テーブル名、種別等の管理項目020(図では、例のため、主要項目のみ掲載する。)および社員マスタのデータの内容が記録テーブル007に記録される。
【0111】
図12では、社員マスタにすでに登録された社員の属性を変更する例を挙げる。
【0112】
社員マスタメンテナンス画面041を起動し、変更対象の社員を画面上に表示する。このときアプリケーションテーブル群004のテーブルに対して変更はないので、記録テーブル007には、前の社員追加時更新内容が保持されているのみである(042)。
【0113】
次に社員マスタメンテナンス画面041で変更する社員の属性を入力するための入力領域044に入力を行う。この時点では、アプリケーションテーブル群004のテーブルに対して変更はない(046)ので記録テーブル007への記録も存在しない(047)。
【0114】
次に、登録ボタン045を押下すると、登録変更処理が実行され、登録変更処理の結果が社員マスタメンテナンス画面041に表示される(048)。登録変更処理後、アプリケーションテーブル群004のテーブルは、社員マスタメンテナンス画面041に入力された情報に変更される(049)。このとき、記録テーブル007に、ホスト名、プログラム名、テーブル名、種別等の管理項目020(図では、例のため、主要項目のみ掲載する。)および社員マスタのデータの内容が記録される(050)。この更新処理の場合は、更新前のデータの内容および更新後のデータの内容の2レコードのデータが記録される。
【0115】
図13では、社員マスタにすでに登録された社員を削除する例を挙げる。
【0116】
社員マスタメンテナンス画面051を起動し、削除対象の社員を社員マスタメンテナンス画面051に表示する。このときアプリケーションテーブル群004のRDBに対しての変更はない(052)。記録テーブル007には、前の社員追加時、更新時の更新内容が保持されている(053)。
【0117】
次に社員マスタメンテナンス画面051上で削除する社員の情報を確認(054)する。このときもアプリケーションテーブル群004のテーブルの変更はないので(056)、記録テーブル007への記録も発生しない(057)。
【0118】
次に、登録ボタン055を押下し、削除処理が実行され、削除処理の結果が社員マスタメンテナンス画面051に表示される(058)。削除処理後、アプリケーションテーブル群のテーブルには、社員マスタメンテナンス画面051上に表示された情報が削除される。(059)
【0119】
このとき、記録テーブル007に、ホスト名、プログラム名、テーブル名、種別等の管理項目020(図では、例のため、主要項目のみ掲載する。)および社員マスタの削除されたデータの内容が記録される(060)。
【0120】
次に図14では、複数のアプリケーション、アプリケーションテーブルに対し、複数のユーザが更新処理をしたときの例を掲載する。次に示すシナリオを順番に処理を行う設定とする。
【0121】
まず、ユーザAが社員マスタメンテナンス画面で社員情報の更新を実施する。社員番号を0001、社員名を加藤茂、雇用区分を雇用から退職に変更、端末番号を001で更新する。この更新を行った際に、使用した社員マスタメンテナンス画面のプログラム名は、P.exeとする。この更新した結果が、記録テーブル007に対して061に示すようなデータを登録する。
【0122】
次に、ユーザBが受注登録画面で受注の登録を実施した場合、受注番号J0001に対して、受注ヘッダー情報として、得意先コードをTOK001、見積番号をM001、受注部門コードをB001、受注担当者コードを0001、受注日を09/01/05、納品日を09/02/05、受注金額を20、000として記録する。
【0123】
また、受注番号J0001に対して、受注ディテール情報として、受注品目をHIN−001、数量を3個、売単価を6,000、標準原価を4,000の1レコードと受注品目をHIN−099、数量を1個、売単価を2,000、標準原価を1,800の1レコード、計2レコード記録する。
【0124】
この更新を行った際に、使用した受注登録画面のプログラム名は、Q.exeとする。この更新した結果が、記録テーブル007に対して062に示すようなデータを登録する。
【0125】
次に、ユーザAが部門マスタメンテナンス画面で部門の削除を実施した場合、部門番号がB001、部門名がA部門、使用開始日が09/01/05、使用終了日が99/12/31のレコードを削除する。
【0126】
この削除を行った際に、使用した部門マスタメンテナンス画面のプログラム名は、R.exeとする。この更新した結果が、記録テーブル007に対して063に示すようなデータを登録する。
【0127】
これによって、本発明に実施形態に係る情報処システムにおいてアプリケーション処理およびログ記録に関する処理がなされる。
【0128】
次に、記録テーブル007の内容を照会装置003で照会し、更新内容を把握する手段について、図4のフローおよび図15、16に示す画面を用いて説明する。
【0129】
図4のログの照会014では、照会端末500に備えられた照会装置003を用いて、記録テーブル007に記録されたデータの照会を行う。ユーザや管理者が行う照会の作業について、図4のフローおよび図15、16の画面の一例を用いて説明する。
【0130】
図4に示す015において、照会端末500で照会装置003を起動する(070)。そして、記録テーブル007が存在する接続先のRDBを指定するために接続先フィールド071にテーブルが存在する領域に関する接続先情報を入力する。
【0131】
次に、検索ボタン072を押下すると、検索条件指定画面076が表示される。ここで、指定できる検索条件は、ラベル(詳細後述)、テーブル名、ログ検索開始日時、終了日時、操作(Insert,Update,Delete)、ユーザ、ホスト名、プログラム等が対象となり、検索条件入力領域076に入力を行うことが可能である。
【0132】
検索条件入力領域076において検索条件を入力し、検索開始ボタン077を押下することで、RDB上の記録テーブル007を検索し、図16に示す検索結果画面に検索結果が表示される。
【0133】
検索結果画面では、検索条件に応じた記録テーブル007の内容を表示する。管理項目080とテーブル項目081が表示される。これらの表示項目は、図5に示す記録テーブル007の管理項目020、テーブル項目021に対応している。
【0134】
記録テーブル007は、図5で示したように、汎用的な項目名として定義されているが、更新内容を把握する際、各テーブルの項目名が情報として必須となる。よって、シーケンスNo.(記録テーブル007の連番)の昇順で表示し、テーブルが変更される毎に、RDB定義情報内の項目一覧情報から項目名を取得し、実際のテーブルの項目名を表示している(082)。
【0135】
検索結果画面の表示処理については、以降で説明する。また、Update時については、更新前、更新後のレコードで更新内容を比較し、値が一致しない(=更新された項目)項目に対して、着色表示する等の識別表示を行う。
【0136】
次に本発明の実施形態に係る照会装置003において、記録テーブル007に記録されたデータの検索処理について図17及び図18に示すフローチャートを用いて説明する。
【0137】
まず、ステップS040では、接続先フィールド071に接続先情報が入力されたことを検知し、入力された接続先情報を取得し、RAM203へ記憶する。次のステップS041では、ステップS040においてRAM203へ記憶した接続先情報に基づいてデータベースサーバ300に備えられたテーブルの存在する領域に接続する。
【0138】
同様に、検索条件指定画面076の検索条件入力領域076に入力した検索条件を取得し、RAM203へ記憶し、ステップS043においてステップS042においてRAM203へ記憶した検索条件に基づいて、記録テーブル007に対する検索用のSQLを生成し、RAM203へ記憶する。
【0139】
ステップS044において、ステップS043においてRAM203へ記憶したSQLをデータベースサーバ300へ送信して実行する。
【0140】
次にステップS045では、項目情報を取得するSQLを生成しRAM203へ記憶する。ここでは、ステップS042においてRAM203へ記憶した検索条件を元に、RDB定義情報005からテーブル一覧および各テーブル毎の項目一覧を取得し、記録テーブル007に必要とするテーブル一覧および各テーブル毎の項目を取得するためのSQLを生成し、RAM203へ記憶する。
【0141】
ステップS046では、ステップS045においてRAM203へ記憶したSQLをデータベースサーバ300へ送信して実行する。
【0142】
ステップS047では、ステップS044で実行した記録テーブル007の検索結果を検索結果画面に展開する。
【0143】
次に、ステップS048では、ステップS046で実行した項目情報の検索結果を取得し、RAM203へ記憶し、ステップS049では、ステップS047で展開した記録テーブル007の検索結果を一行毎に処理を開始する。
【0144】
ステップS050では、ステップS048においてRAM203へ記憶した項目情報に含まれるテーブル一覧からテーブル名を取得し、保管した前回テーブル名と同じかどうかを比較する。尚、前回テーブル名の保管は、ステップS056で実施する。
【0145】
比較した結果、前回のテーブル名と一致しないと判定した場合は、ステップS052へ処理を進め、一致しないと判定できなかった場合は、ステップS055へ処理を進める。
【0146】
次に、ステップS052では、ステップS047で取得した項目情報からステップS050で指定されたテーブルを特定し、ステップS048においてRAM203へ記憶した項目情報に基づいて特定したテーブルの項目一覧を取得する。
【0147】
次にステップS053では、検索結果画面の1行追加した後、ステップs054では、ステップS052でRAM203へ記憶した項目一覧を展開する。つまり、S051からS054までの処理で、図16に示す082で示されるデータ項目に実際のテーブルの項目名を記載した行を追加する。尚、追加のタイミングは、テーブル名が変更されるたびに、項目名を記載した行を追加している。
【0148】
次に、ステップS055では、更新処理マーキング処理を実施する。本処理の詳細については、図18に示すフローチャートを用いて説明する。次に、ステップS056では、テーブル名を保管する。本処理は、ステップS051の比較判別のために退避している。つまり、検索結果画面において、082に示すような項目情報をテーブル単位で表示するため、すなわちユーザによって視覚的に認識し易いようにするためである。
【0149】
ステップS044において実行した記録テーブル007の検索内容がなくなれば、ループを終了する(ステップS057)。
【0150】
続いて、図18に示すフローチャートを用いて更新箇所マーキング処理の説明をする。
【0151】
まず、ステップS058では、ステップS044においてSQLを実行して得られた記
【0152】
録テーブル007の検索結果の更新種別(Insert,Update,Delete)がUpdateであるか否かを判定し、Updateであると判定した場合は、ステップS059へ処理を進め、Updateであると判定しできなかった場合は、処理を終了する。
【0153】
Updateの場合は、更新前、更新後の2行のレコードが連続して存在するため、2行のそれぞれの値を比較し、値が一致しない場合にこの値の着色するため、この様な判定を行っている。
【0154】
そしてステップS059以降のステップにおいて、Update時の更新箇所(項目の値)にマーキングを行う処理を実施する。
【0155】
ステップS059は、ステップS052でRAM203へ記憶したテーブルの項目一覧の項目毎にループ処理の開始を示す。
【0156】
ステップS060において、ステップS052でRAM203へ記憶した項目一覧より項目の値を取得してRAM203へ記憶した後、ステップS061において、さらに次行の項目の値も取得し、RAM203へ記憶する。ステップS062において、ステップS060、ステップS061でRAM203へ記憶した値を比較判定し、値が一致しないと判定した場合は、これらの値を着色等の識別可能なように表示する。
【0157】
ステップS052でRAM203へ記憶した項目一覧に対する項目がなくなれば、ループを終了し(ステップS064)、ステップS065では、検索結果の実施対象行を2行進める。
【0158】
次に、図面15に示すマークアップラベル73、開始ボタン74、終了ボタン075、ラベル078について説明する。
【0159】
これらは、特定作業等の発生時に更新内容を記録したい場合、記録テーブル007に対するラベリング(しおり付け)を行う機能である。
【0160】
本機能は、テストを実施する際に有効になる機能である。あるアプリケーションのテストを実施する際、まずマークアップラベル073にテストケースNo.「Case-1」を入力する。
【0161】
そして、アプリケーション001の操作を行う前に、テスト開始の宣言となる、開始ボタン074を押下する。本作業により、記録テーブル007にラベル「Case-1」の開始レコードが追加される(図面19の091)。
【0162】
次にアプリケーション001のテスト対象操作を実施することで、アプリケーションによる更新処理内容が記録テーブルに記録される(図面19の092)。アプリケーション操作001の実施後に、テスト終了の宣言とするため、終了ボタン092を押下する。
【0163】
本作業で記録テーブルにラベル「Case-1」の終了レコードが追加(図面19の093)される。アプリケーション001による更新内容が開始ラベル行と終了ラベル行にはさまれるようになり、テスト実施時の更新対象を範囲で特定することが可能である。
【0164】
検索条件指定画面076の検索条件入力領域076のラベル078にテストケースNo.を入力し、検索を実施することで、開始ラベルと終了ラベルの間の行について検索結果を検索結果画面に表示することができる。
【0165】
次に図20を用いて、マークアップラベルの登録処理についてフローチャートを用いて説明する。
【0166】
ステップS066では、開始ボタン074あるいは終了ボタン075が押下されたか否かを判定し、押下されたと判定した場合は、開始ボタン074あるいは終了ボタン075の何れかが押されたことを識別するためのボタン識別情報をRAM203へ記憶し、ステップS067へ処理を進める。
【0167】
ステップS067では、照会端末500で照会装置003を起動する。そして、記録テーブル007が存在する接続先のRDBを指定するために接続先フィールド071に接続先情報が入力されたことを検知し、入力された接続先情報を取得し、RAM203へ記憶する。次のステップS068では、ステップS067においてRAM203へ記憶した接続先情報に基づいてデータベースサーバ300に備えられたテーブルの存在する領域に接続する。
【0168】
次に、ステップS069では、マークアップラベル073に入力されたマークアップラベルを取得し、ステップS070では、ステップS066でRAM203へ記憶したボタン識別情報を取得し、ステップS071では、S069で取得したマークアップラベルとS070で取得したボタン識別情報からラベル文字列を生成する。
【0169】
次にステップS071で作成した文字列を埋めた記録テーブル007に対する登録するためのSQL文(Insert文)を生成し(S063)、RAM203へ記憶する。
【0170】
ステップS072において、ステップS071においてRAM203へ記憶したSQLをデータベースサーバ300へ送信して実行する。
【0171】
以上、本発明によれば、データベースに対する更新履歴に関与する情報を網羅的に記録することによって障害の発生原因の調査を作業者への負荷をかけることなく効率的に行うことが可能となる。
【0172】
以上、各実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0173】
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能(読み取り可能)なプログラムであり、本発明の記憶媒体は、各処理方法をコンピュータが実行可能なプログラムが記憶されている。
【0174】
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
【0175】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読取り実行することによっても、本発明の目的が達成されることは言うまでもない。
【0176】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【0177】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0178】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0179】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0180】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0181】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0182】
100 情報処理システム
200 業務端末
300 データベースサーバ
400 管理端末
500 照会端末
201 CPU
202 ROM
203 RAM
204 システムバス
205 入力コントローラ
206 ビデオコントローラ
207 メモリコントローラ
208 通信I/Fコントローラ
209 キーボード
210 CRT
211 外部メモリ
【技術分野】
【0001】
本発明は、データベースサーバで管理されているテーブルに対して、更新処理を実施した際、更新内容を時系列に記録し、記録した更新内容を照会する技術に関する。
【背景技術】
【0002】
近年のシステムでは、データベースが必須の要素機能となっている。その中でも特に、リレーショナルデータベース(RDB)が世の中で広く使用されている。
【0003】
システムにおけるデータベースの利用用途としては、整合性の取れたデータを保管する器として使用され、アプリケーション等のプログラムから、照会、更新等の要求に対する処理の実行または、結果を提示するサービスを提供している。
【0004】
ただし、データベースへのアクセスは、SQLという言語によってアクセスがなされ、データベース内で格納されているデータがどのように更新されているかは、ブラックボックス化され、更新内容を網羅的に把握することは、現状、困難である。
【0005】
尚、ここで述べる更新内容とは、いつ、だれが(ユーザ)、どこで(コンピュータ名)、 どのプログラムが(プログラム名)、どのテーブルに(テーブル名)、どういう操作を(Insert,Update,Delete)、どういう順で(連続番号で管理)、どのレコードに対して(テーブルのレコードデータ)、どのようなデータ項目に登録されている値を、どのような値に更新したか、あるいは更新されたレコードの該当項目以外の項目の値はどのような値であったか、といった事を特定することを示している。
【0006】
特にシステム構築にあたり、構築したシステムをテスト、評価、障害原因調査をする際、データベースへの更新内容を精査することが重要な作業でかつ労力のかかる作業となる。
【0007】
この作業は、システム構築時のテスト局面、導入後の受入検査時、障害・セキュリティインシデント発生時の原因追及の際に発生し、多大な作業時間を費やした結果、更新内容が把握できる場合もあるが、網羅的には把握できないのが現状である。
【0008】
従来技術では、データベースへの更新内容が手軽に網羅的に把握することができない。
【0009】
ここで、テストを実施する際の具体的な作業内容を記し、当作業において、現状での問題点を挙げ、従来技術では、実現が困難であることを説明する。作業内容としては、(1)設計書から更新対象のテーブルを洗い出し、把握する、(2)上記テーブルのデータを手動で電子ファイルに記録する、(3)テスト対象のアプリケーションにてデータベースへの更新処理を実施する、(4)上記テーブルのデータを手動で電子ファイルに記録する、(5)(2)と(4)の結果を手動で比較する。
【0010】
但し、これらの作業を実施するには、次の前提が必要となり、(A)アプリケーションと整合性のとれた設計書が必須となる、(B)同時に1処理のテストしかできないので複数人では、実施不可、といった前提が必要となる。
【0011】
この前提に基づいて作業を実施すると、現状においては、次の問題が発生する。
【0012】
前提(A)に関連して、アプリケーションが更新したテーブルの網羅性は、設計書の精度、アプリケーションと設計書の整合性の高さに依存してしまう、また設計書内に更新対象のテーブルの記載がもれていると、テストケースからもれてしまう、更に各更新対象テーブルの更新順序が把握できない、更新順序が正しいかどうかは、プログラムのソースを見なければ判断できない、といった問題が発生する。
【0013】
また、前提(B)に関連して、更新ユーザ、プログラムが特定できない、またアプリケーション側でこれらの情報を記録しなければ、特定はできない、また複数人で実施した際、更新ユーザ、プログラム、更新順序の把握ができない、また、一元管理されたデータベースに対して、複数のユーザ、プログラムで同時に更新されるため、アプリケーション側でこれらの情報を記録しなければ、特定は難しい。といった問題がある。
【0014】
更に、テスト対象アプリケーションの処理前、処理後のデータ内容の記録を手作業で実施する必要があり、作業の手間と作業のミスが発生してしまう。
【0015】
そこで、ユーザのテストの作業効率を向上させるための技術の1つとして、オンライン処理実施時に発生するデータベースの更新に対して、更新前及び更新後のデータを用いて遡及的に大量のテストデータの作成を行う技術が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2009−075949号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
しかしながら、特許文献1に記載の技術においては、テスト作業の効率化を行うためのテスト実行環境の提供を目的としており、遡及的にテストデータを作成することが記載されており、データベースに対する更新等のトランザクションの発生によって生じる障害等の原因調査等への対応については記載や示唆はなく、システムにおける障害等の発生時に原因調査を行うには、情報として不十分となり、精密な調査を行うことが難しい。
【0018】
更に、テストデータ作成を支援する仕組みを構築する際の作業者の負荷も高まる可能性が生じることも問題の1つとして上げられる。
【0019】
本発明は、上記の課題を解決するためになされたものであり、データベースに対する更新履歴からシステムにおける障害の発生原因の調査を作業者への負荷をかけることなく効率的に行うことが可能な情報処理装置、制御方法、プログラム、及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【0020】
上記目的を達成するための第1の発明は、少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、前記記録手段によって記録された更新内容を表示する表示手段と、を備えたことを特徴とする。
【0021】
上記目的を達成するための第2の発明は、少なくとも1以上のアプリケーションテーブルを表示選択する表示選択工程と、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択工程によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録工程と、前記記録工程によって記録された更新内容を表示する表示工程と、を備えたことを特徴とする。
【0022】
上記目的を達成するための第3の発明は、コンピュータで読取り可能なプログラムである共に実行可能なプログラムであって、前記プログラムは、少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、前記記録手段によって記録された更新内容を表示する表示手段と、として機能することを特徴とする。
【0023】
上記目的を達成するための第4の発明は、第3の発明で記載したプログラムを記録したコンピュータで読取り可能な記録媒体。
【発明の効果】
【0024】
本発明によれば、データベースに対する更新履歴に関与する情報を網羅的に記録することによって障害の発生原因の調査を作業者への負荷をかけることなく効率的に行うことが可能となる、という効果を奏する。
【図面の簡単な説明】
【0025】
【図1】本発明の実施形態における情報処理システムの構成を示す図である。
【図2】本発明の実施形態における情報処理システムを構成する各装置のハードウェア構成を示す図である。
【図3】本発明の実施形態における作業の流れを示すフロー図である。
【図4】本発明の実施形態における全体の概略処理を示すフロー図である。
【図5】本発明の実施形態における更新内容を記憶するための記録テーブルの構成を示す構成図である。
【図6】本発明の実施形態における記録テーブルを生成するための画面の一例を示す構成図である。
【図7】本発明の実施形態における記録装置を生成するための画面の一例を示す構成図である。
【図8】本発明の実施形態における監視対象候補テーブルを一覧表示する際の処理を示すフローチャートである。
【図9】本発明の実施形態における記録装置を生成する処理を示すフローチャートである。
【図10】本発明の実施形態における記録装置の記録処理に関する処理を示すフローチャートである。
【図11】本発明の実施形態におけるアプリケーションによるデータ追加時の記録テーブル内容を説明するための説明図である。
【図12】本発明の実施形態におけるアプリケーションによるデータ更新時の記録テーブル内容を説明するための説明図である。
【図13】本発明の実施形態におけるアプリケーションによるデータ削除時の記録テーブル内容を説明するための説明図である。
【図14】本発明の実施形態における複数のアプリケーション、ユーザによる更新処理時の記録テーブル内容を説明するための説明図である。
【図15】本発明の実施形態における照会装置における検索条件指定画面の一例を示す構成図である。
【図16】本発明の実施形態における照会装置の検索結果画面の一例を示す構成図である。
【図17】本発明の実施形態における照会装置の検索結果を表示する処理に関する処理を示すフローチャートである。
【図18】本発明の実施形態におけるラベル使用時の記録テーブルへ記録されたことが検索結果画面で表示されていることを示す構成図である。
【図19】本発明の実施形態における照会装置においてラベルを登録する処理に関するフローチャートである。
【発明を実施するための形態】
【0026】
以下、本発明の実施形態について、図面を参照しながら、詳細に説明する。
【0027】
まず、本発明の本発明の一実施形態に係る、システム構成、各機能の役割について説明する。
【0028】
図1は、本発明の実施形態に係る情報処理システムにおけるシステムの構成を示す構成図である。
【0029】
図1に示すように、情報処理システム100は、業務端末200、データベースサーバ300、管理端末400、及び照会端末500から構成されている。ただし、業務端末200、管理端末400、及び照会端末500が受け持つ機能については、場所を問わない。例えば、データベースサーバ300上ですべての機能を持つことも可能である。
【0030】
業務端末200は、データベースへの更新処理を行うアプリケーション001が導入されユーザが操作を行うための端末である。この業務端末200では、アプリケーション001を操作し、データベースサーバ300上のアプリケーションテーブル群004に対して更新処理を行う。
【0031】
アプリケーション001は、データベースへの更新処理を行うソフトウェアを示しており、本発明の提供機能外の位置づけとしており、データベースへの更新処理を行うものであれば、特定しない。
【0032】
次にデータベースサーバ300について説明する。データベースサーバ300には、データベースとしてRDB(Relational Database)製品が導入され、各種データベースサービスを提供する役割を担っている。本発明において更新内容の把握対象(監視対象)のデータベースが記憶されている。
【0033】
データベースサーバ300は、アプリケーション001が、参照及び更新するアプリケーションテーブル群004を有する。本発明の実施においては、予め存在しているものとし、本発明の提供機能外とする。また、本テーブル群のレイアウト等に関する制約はないものとする。また、本テーブル群は、本発明における更新処理を監視し、更新内容を把握する対象(監視対象)のテーブルとなる。
【0034】
データベースサーバ300は、RDB定義情報005を備えており、本情報は、RDBの機能を実現する上で必要な情報群を指しており、本発明では、テーブル定義情報および項目定義情報を必要とする。
【0035】
テーブル定義情報とは、データベースサーバ300上で管理されている各テーブルの属性情報を付加したテーブル一覧である。また、項目定義情報とは、先のテーブル一覧に定義されているテーブル毎の項目の属性情報を付加した項目一覧である。また、項目の型情報等の属性情報も保持している。先にも記したように、RDB製品には、凡そこれらの情報がRDBの標準機能として保持されている。
【0036】
本発明では、これらのRDB定義情報005を元に記録装置006を自動生成する。記録装置006は、アプリケーション001、及びアプリケーションテーブル004の実装形態にかかわらず、汎用的かつ網羅的に更新内容を把握する機能が提供できる基礎情報となる。よって、RDB上でこれらの情報が採取できない環境では、記録装置006の自動生成は実現できない。
【0037】
管理端末400は、本発明の記録基盤生成装置002が導入されており、管理者が操作するための端末である。管理端末400より、記録基盤生成装置002を用いて、データベースサーバ300に対して記録装置006、及び記録テーブル007の生成作業を実施する。
【0038】
照会端末500は、本発明の照会装置003が導入され、ユーザが操作するための端末である。照会端末500より、照会装置003を用いて、データベースサーバ300上の記録テーブル007を照会し、更新内容を照会する。本照会作業を持って、RDBへの更新内容の把握を行う。
【0039】
次に、データベースサーバ300上に存在する記録テーブル007について説明する。記録テーブル007は、監視対象とすべくRDBに1つずつ存在する。
【0040】
記録テーブル007は、管理端末400上の記録基盤生成装置002を操作することで生成する。
【0041】
記録テーブル007内にアプリケーションテーブル群004への更新内容が時系列に記録される。更新内容の記録処理は、記録装置006が受け持つ。
【0042】
次に、記録装置006を説明する。記録装置006は、管理端末400上の記録基盤生成装置002を操作することで生成し、RDBに実装されている標準の基盤機能であるトリガー機構によって、データベースサーバ300上に登録される。記録装置006は、アプリケーションテーブル群004に存在する各テーブル毎に登録される。
【0043】
トリガー機構の特徴として、データベースサーバ300上で、アプリケーションテーブルに対する更新処理(Insert,Update,Delete)が発生した際、その更新タイミングに合わせてレコード単位にトリガー機構を実行することができる。
【0044】
このトリガー機構を用いて、RDBの標準機能より、記録装置006が起動される。記録装置006では、Insert時、Delete時のデータ、Update時の更新前、更新後のデータを記録テーブル007に時系列に記録する。
【0045】
図2には、本発明の実施形態に係る情報処理システムにおける各業務端末200、データベースサーバ300、管理端末400、及び照会端末500に組み込まれたコンピュータのハードウエア構成の例を示す図である。
【0046】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic
Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【0047】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0048】
また、入力コントローラ(入力C)205は、キーボード(KB)209や不図示のマウス等のポインティングデバイスからの入力を制御する。ビデオコントローラ206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
【0049】
メモリコントローラ207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ211へのアクセスを制御する。
【0050】
通信I/Fコントローラ208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
【0051】
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0052】
本発明を実現するためのプログラム類は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルおよび各種情報テーブルは外部メモリ211に格納されており、これらについての詳細な説明は後述する。
【0053】
次に、図3を用いて、本発明におけるRDBの更新履歴の照会を行う迄の作業の流れを説明する。
【0054】
図3に示すように、作業は、更新内容の記録準備、アプリケーション処理および更新内容記録、及び更新内容記録の照会の順で行われる。
【0055】
ただし、更新内容の記録準備については、初回のみ実施し、以降は、アプリケーションテーブル群004の各テーブル構造を変更した場合に実施する必要がある。
【0056】
変更がない場合は、アプリケーション処理および更新内容記録及び更新内容記録の照会を繰り返し、アプリケーションの更新処理に伴う、更新内容の把握を行う。
【0057】
まず、更新内容の記録準備では、図1に示す管理端末400にて、記録基盤生成装置002を用いて、記録装置006及び記録テーブル007の生成作業を行う。
【0058】
次に、アプリケーション処理および更新内容記録では、図1に示す業務端末200にて、アプリケーション001を操作し、データベースサーバ300上のアプリケーションテーブル群004への更新処理を行う。
【0059】
データベースサーバ300上では、各アプリケーションテーブル004が更新されたことを契機に記録装置006が起動され、記録テーブル007に更新内容を記録する。
【0060】
次の更新内容記録の照会では、図1に示す照会端末500にて、照会装置003を用い、データベースサーバ300上の記録テーブル007を参照し、更新内容を照会する。
【0061】
次に作業の流れと処理のフローを説明し、各機能の詳細な説明を行う。
【0062】
図4は、本発明の実施形態に係る情報処理システム100におけるRDBの更新履歴の照会を行う迄の概要処理フローを示す図である。
【0063】
図4に示す更新内容の記録準備010では、管理端末400にて、記録基盤生成装置002を用いて、記録テーブル007の生成を行う(011)。生成作業について、図4のフローチャート及び図6に示す生成画面例を用いて説明する。
【0064】
管理端末400において記録基盤生成装置002を起動する(起動とともにRDBへの接続が行われている。)。記録基盤生成装置002の設定画面(図6参照)を表示し、030を選択後、031の箇所において項目数(ColumnCount)、項目のバイト数(ColumnByte)を設定する。
【0065】
項目数については、データベースサーバ300上のアプリケーションテーブル群004の中での最大項目数を設定する。また、項目のバイト数については、データベースサーバ300上のアプリケーションテーブル群004の項目の中で最大のバイト数を設定する。
【0066】
また、自立型トランザクション031の項目を設定する。ONを設定することで、監視対象のテーブル更新のトランザクションとは独立したトランザクションで記録テーブル007に記録を行う。
【0067】
つまり、監視対象のテーブル更新処理がロールバックされた場合でも、記録テーブル007に記録が残る。また、OFFを設定することで、監視対象のテーブル更新のトランザクション内の処理として、記録テーブル007に記録する。
【0068】
つまり、監視対象のテーブル更新処理がロールバックされた場合、記録テーブル007への記録内容についてもロールバックされることとなる。
【0069】
継続して、記録基盤生成装置002を用いて、032の箇所において、記録テーブル生成指示を選択した後、記録テーブル生成スクリプト033が生成されるため、その後、コンパイルボタン034を押下することによってデータベースサーバ300上に登録する。
【0070】
よって、アプリケーションテーブル群004の構成(最大項目数、項目最大バイト数)が変更された場合は、構成変更後、再度実施する必要がある。
【0071】
次に、図4の記録テーブル007について説明する。前述の作業で生成された記録テーブル007は、監視対象のRDBに1つのみ生成する。記録テーブル007のレイアウトを図5に示す。記録テーブル007の各項目は、管理項目、テーブル項目に分類することができる。
【0072】
管理項目020には、いつ(日時)、だれが(ユーザ)、どこで(ホスト名)、どのプログラムが(プログラム名、セッションID)、どのテーブルに(テーブル名)、どういう操作を(更新種別)、どういう順で(連番)等のデータを記録し、テーブル項目021には、監視対象のテーブル(アプリケーションテーブル群004)のレコードイメージが記録される。
【0073】
記録テーブル007は、複数のRDBのレコードイメージが記録されるため、汎用的な項目名とし、項目1〜監視対象のテーブル群の最大の項目数(n)の範囲内で項目数を持つような態様をとることが可能となる。
【0074】
また、テーブル項目021内では、どのレコードに対して、どのようなデータ項目に登録されている値を、どのような値に更新されたかを記録する。
【0075】
次に、図4に示す更新内容の記録準備010では、管理端末400にて、記録基盤生成装置002を用いて、記録装置006の生成を行う。生成作業について、図4のフロー及び図6に示す生成画面例を用いて説明する。
【0076】
図4に示す通り、まず管理端末400で記録基盤生成装置002を起動する(起動とともにRDBへの接続が行われている。)。図7に示す記録基盤生成装置002の監視対象テーブル一覧画面を表示し、040を選択後、監視対象候補テーブル一覧041を表示する。監視対象候補テーブル一覧041は、図4に示すアプリケーションテーブル群004に該当する。
【0077】
次に、監視対象候補テーブル一覧041の中から監視対象のテーブルをチェックボックス402にチェック印を入力することで選択する。
【0078】
その後、トリガー生成指示043を選択した後、記録装置生成スクリプト044が生成されるため、その後、コンパイルボタン045を押下することによってデータベースサーバ300上に登録する。
【0079】
本作業は、アプリケーションテーブル群004の構成(項目の追加、削除、型の変更、テーブルの削除、追加)が変更された場合は、構成変更後、再度実施する必要がある。
【0080】
図7に示す監視対象候補のテーブル一覧041への表示処理は、図7に示す処理フローにて実施される。本フローチャートにおける各ステップの処理は、データベースサーバ300のCPU201の制御の元、実行される。
【0081】
まず、ステップS001では、監視対象のRDBに接続を行った後、次に、ステップS002では、データベースサーバ300上に存在するRDB定義情報005内のテーブル定義情報の集合を読み取る。
【0082】
そしてステップS003は、ループ開始を示しており、また本ループの終了をステップS006としており、テーブル毎に処理を繰り返す。
【0083】
ループ内における処理では、ステップS004では、テーブル名を取得し、監視対象候補テーブル一覧041に表示すべき対象としてRAM203へ追加で記憶していく。
【0084】
ステップS002で取得したテーブル定義情報に定義されたテーブルに対して全て処理が完了したならば、ステップS006においてループを終了した後、ステップS007において、管理端末400のCRT210に表示された図7に示す監視対象候補のテーブル一覧041へテーブル名の一覧表示を行う。
【0085】
その後、監視対象候補のテーブル一覧041より、管理者は手動で監視対象テーブルを選択する。
【0086】
次に、記録装置006を生成する処理について、図9に示すフローチャートを用いて説明する。
【0087】
まず、ステップS011では、監視対象のRDBに接続を行い、次にステップS012において監視対象候補のテーブル一覧041で選択されたテーブル群を取得し、ステップS013より取得したテーブル毎にループを開始する。
【0088】
次に、ステップS014において、データベースサーバ300上に存在するRDB定義情報005内の項目定義情報に対して、ステップS011において指定されたテーブルを条件にテーブルの項目の一覧を取得しRAM203へ記憶する。
【0089】
次のステップS015においてRAM203へ記憶した項目の一覧を元に、項目毎にループを開始する。
【0090】
次に、ステップS016において、ループで指定された項目の型情報を取得する。そして次のステップS017において、項目、型情報毎にキャラクタ型への変換ロジックを生成し、ステップS018では、ステップS017において生成された変換ロジックをRAM203に追加で記憶する。
【0091】
ステップS019は、処理対象項目がなくなれば、項目のループを終了することを示しており、処理対象となる項目が存在すれば、ステップS015へ処理を進める。
【0092】
ステップS020では、ステップS018においてRAM203へ追加記憶した変換ロジックからプログラム(SQL)を生成する。
【0093】
ステップS013からステップS020までテーブル単位で処理し、処理対象のテーブルがなくなれば、テーブルのループを終了する(ステップS021)。すべてのテーブルに対するプログラム(SQL)を図6に示す記録装置生成スクリプト044に表示する。
【0094】
これによって、更新内容の記録を行うための準備が整ったことになる。続いて、図4のアプリケーション処理およびログ記録013について説明する。
【0095】
まず、業務端末200にて、アプリケーション001を用いて、データベースサーバ300上のアプリケーションテーブル群004への更新処理を行う。
【0096】
業務端末200にて、アプリケーション001を操作することによって、RDBの標準機能が更新のイベントをトリガー機構によって検知し、記録装置006が起動される。つまり、アプリケーション001がRDBに接続したセッション内で、記録装置006が起動され、記録テーブル007にアプリケーションテーブル004に対する更新内容を記録する。記録後、アプリケーション001に制御が戻ることとなる。
【0097】
次に、記録装置006が起動された後、記録テーブル007に更新内容が記録される処理について、図10に示すフローチャートを用いて説明する。
【0098】
まず、ステップS031において、RDBへの接続情報(セッション情報)を取得する。つまり、先に記したとおり、アプリケーション001における更新処理に関するセッション情報である。この情報は、図5に示す記録テーブル007に示すテーブルレイアウトのセッションIDに記録するために予め情報を取得する。
【0099】
次に、ステップS032において、シーケンスNo.を取得し、更新処理に対して、ユニークな採番を行い、RAM203へ記憶した後、ステップS033において、更新処理に対して、Insert、Update、あるいはDeleteかを判別する。
【0100】
UpdateあるいはDeleteの場合は、ステップS034へ処理を進め、更新前のデータを記録テーブル007へ記録する。
【0101】
次に、ステップS035において、再度更新の種別を判断し、Deleteの場合は、処理を終了し、Updateの場合、ステップS036へ処理を進める。
【0102】
ステップS036において、更新後のデータを記録テーブル007へ記録する。つまり、Insert、Updateの場合は、記録テーブル007へ記録する。
【0103】
アプリケーションの操作からアプリケーションテーブルへの更新、記録テーブルの記録の内容については、図11〜図14を用いて詳細に説明する。
【0104】
図11〜図13では、図4に示すアプリケーション001を社員マスタメンテナンス画面として想定したものを図示している。
【0105】
アプリケーション001は、図4に示すアプリケーションテーブル群004の「社員マスタ」に対して追加、更新、削除するプログラムである。それぞれの操作をしたときのアプリケーションの操作、アプリケーションテーブルへの更新、記録テーブルの記録の内容を具体的に説明する。
【0106】
さらに図14では、複数のアプリケーション、アプリケーションテーブルに対し、複数のユーザが更新処理をしたときの例を掲載している。
【0107】
図11では、社員マスタに新しい社員を追加する例を挙げている。
【0108】
まず、社員マスタメンテナンス画面031を起動する。このときアプリケーションテーブル群004のテーブルに対しての変更はないため(032)、記録テーブル007への記録は発生しない(033)。
【0109】
次に社員マスタメンテナンス画面031においてで追加する社員の情報を入力するための入力領域034へ入力を行ったタイミングでは、アプリケーションテーブル群004のテーブルに対しての変更はないため(036)、記録テーブル007への記録は発生しない(037)。
【0110】
次に、登録ボタン035を押下し、登録処理が実行されると、登録処理の結果が社員マスタメンテナンス画面031上に表示(038)される。登録処理後、アプリケーションテーブル群004には、社員マスタメンテナンス画面031上に入力された情報が追加(039)される。このとき、記録テーブル007に、ホスト名、プログラム名、テーブル名、種別等の管理項目020(図では、例のため、主要項目のみ掲載する。)および社員マスタのデータの内容が記録テーブル007に記録される。
【0111】
図12では、社員マスタにすでに登録された社員の属性を変更する例を挙げる。
【0112】
社員マスタメンテナンス画面041を起動し、変更対象の社員を画面上に表示する。このときアプリケーションテーブル群004のテーブルに対して変更はないので、記録テーブル007には、前の社員追加時更新内容が保持されているのみである(042)。
【0113】
次に社員マスタメンテナンス画面041で変更する社員の属性を入力するための入力領域044に入力を行う。この時点では、アプリケーションテーブル群004のテーブルに対して変更はない(046)ので記録テーブル007への記録も存在しない(047)。
【0114】
次に、登録ボタン045を押下すると、登録変更処理が実行され、登録変更処理の結果が社員マスタメンテナンス画面041に表示される(048)。登録変更処理後、アプリケーションテーブル群004のテーブルは、社員マスタメンテナンス画面041に入力された情報に変更される(049)。このとき、記録テーブル007に、ホスト名、プログラム名、テーブル名、種別等の管理項目020(図では、例のため、主要項目のみ掲載する。)および社員マスタのデータの内容が記録される(050)。この更新処理の場合は、更新前のデータの内容および更新後のデータの内容の2レコードのデータが記録される。
【0115】
図13では、社員マスタにすでに登録された社員を削除する例を挙げる。
【0116】
社員マスタメンテナンス画面051を起動し、削除対象の社員を社員マスタメンテナンス画面051に表示する。このときアプリケーションテーブル群004のRDBに対しての変更はない(052)。記録テーブル007には、前の社員追加時、更新時の更新内容が保持されている(053)。
【0117】
次に社員マスタメンテナンス画面051上で削除する社員の情報を確認(054)する。このときもアプリケーションテーブル群004のテーブルの変更はないので(056)、記録テーブル007への記録も発生しない(057)。
【0118】
次に、登録ボタン055を押下し、削除処理が実行され、削除処理の結果が社員マスタメンテナンス画面051に表示される(058)。削除処理後、アプリケーションテーブル群のテーブルには、社員マスタメンテナンス画面051上に表示された情報が削除される。(059)
【0119】
このとき、記録テーブル007に、ホスト名、プログラム名、テーブル名、種別等の管理項目020(図では、例のため、主要項目のみ掲載する。)および社員マスタの削除されたデータの内容が記録される(060)。
【0120】
次に図14では、複数のアプリケーション、アプリケーションテーブルに対し、複数のユーザが更新処理をしたときの例を掲載する。次に示すシナリオを順番に処理を行う設定とする。
【0121】
まず、ユーザAが社員マスタメンテナンス画面で社員情報の更新を実施する。社員番号を0001、社員名を加藤茂、雇用区分を雇用から退職に変更、端末番号を001で更新する。この更新を行った際に、使用した社員マスタメンテナンス画面のプログラム名は、P.exeとする。この更新した結果が、記録テーブル007に対して061に示すようなデータを登録する。
【0122】
次に、ユーザBが受注登録画面で受注の登録を実施した場合、受注番号J0001に対して、受注ヘッダー情報として、得意先コードをTOK001、見積番号をM001、受注部門コードをB001、受注担当者コードを0001、受注日を09/01/05、納品日を09/02/05、受注金額を20、000として記録する。
【0123】
また、受注番号J0001に対して、受注ディテール情報として、受注品目をHIN−001、数量を3個、売単価を6,000、標準原価を4,000の1レコードと受注品目をHIN−099、数量を1個、売単価を2,000、標準原価を1,800の1レコード、計2レコード記録する。
【0124】
この更新を行った際に、使用した受注登録画面のプログラム名は、Q.exeとする。この更新した結果が、記録テーブル007に対して062に示すようなデータを登録する。
【0125】
次に、ユーザAが部門マスタメンテナンス画面で部門の削除を実施した場合、部門番号がB001、部門名がA部門、使用開始日が09/01/05、使用終了日が99/12/31のレコードを削除する。
【0126】
この削除を行った際に、使用した部門マスタメンテナンス画面のプログラム名は、R.exeとする。この更新した結果が、記録テーブル007に対して063に示すようなデータを登録する。
【0127】
これによって、本発明に実施形態に係る情報処システムにおいてアプリケーション処理およびログ記録に関する処理がなされる。
【0128】
次に、記録テーブル007の内容を照会装置003で照会し、更新内容を把握する手段について、図4のフローおよび図15、16に示す画面を用いて説明する。
【0129】
図4のログの照会014では、照会端末500に備えられた照会装置003を用いて、記録テーブル007に記録されたデータの照会を行う。ユーザや管理者が行う照会の作業について、図4のフローおよび図15、16の画面の一例を用いて説明する。
【0130】
図4に示す015において、照会端末500で照会装置003を起動する(070)。そして、記録テーブル007が存在する接続先のRDBを指定するために接続先フィールド071にテーブルが存在する領域に関する接続先情報を入力する。
【0131】
次に、検索ボタン072を押下すると、検索条件指定画面076が表示される。ここで、指定できる検索条件は、ラベル(詳細後述)、テーブル名、ログ検索開始日時、終了日時、操作(Insert,Update,Delete)、ユーザ、ホスト名、プログラム等が対象となり、検索条件入力領域076に入力を行うことが可能である。
【0132】
検索条件入力領域076において検索条件を入力し、検索開始ボタン077を押下することで、RDB上の記録テーブル007を検索し、図16に示す検索結果画面に検索結果が表示される。
【0133】
検索結果画面では、検索条件に応じた記録テーブル007の内容を表示する。管理項目080とテーブル項目081が表示される。これらの表示項目は、図5に示す記録テーブル007の管理項目020、テーブル項目021に対応している。
【0134】
記録テーブル007は、図5で示したように、汎用的な項目名として定義されているが、更新内容を把握する際、各テーブルの項目名が情報として必須となる。よって、シーケンスNo.(記録テーブル007の連番)の昇順で表示し、テーブルが変更される毎に、RDB定義情報内の項目一覧情報から項目名を取得し、実際のテーブルの項目名を表示している(082)。
【0135】
検索結果画面の表示処理については、以降で説明する。また、Update時については、更新前、更新後のレコードで更新内容を比較し、値が一致しない(=更新された項目)項目に対して、着色表示する等の識別表示を行う。
【0136】
次に本発明の実施形態に係る照会装置003において、記録テーブル007に記録されたデータの検索処理について図17及び図18に示すフローチャートを用いて説明する。
【0137】
まず、ステップS040では、接続先フィールド071に接続先情報が入力されたことを検知し、入力された接続先情報を取得し、RAM203へ記憶する。次のステップS041では、ステップS040においてRAM203へ記憶した接続先情報に基づいてデータベースサーバ300に備えられたテーブルの存在する領域に接続する。
【0138】
同様に、検索条件指定画面076の検索条件入力領域076に入力した検索条件を取得し、RAM203へ記憶し、ステップS043においてステップS042においてRAM203へ記憶した検索条件に基づいて、記録テーブル007に対する検索用のSQLを生成し、RAM203へ記憶する。
【0139】
ステップS044において、ステップS043においてRAM203へ記憶したSQLをデータベースサーバ300へ送信して実行する。
【0140】
次にステップS045では、項目情報を取得するSQLを生成しRAM203へ記憶する。ここでは、ステップS042においてRAM203へ記憶した検索条件を元に、RDB定義情報005からテーブル一覧および各テーブル毎の項目一覧を取得し、記録テーブル007に必要とするテーブル一覧および各テーブル毎の項目を取得するためのSQLを生成し、RAM203へ記憶する。
【0141】
ステップS046では、ステップS045においてRAM203へ記憶したSQLをデータベースサーバ300へ送信して実行する。
【0142】
ステップS047では、ステップS044で実行した記録テーブル007の検索結果を検索結果画面に展開する。
【0143】
次に、ステップS048では、ステップS046で実行した項目情報の検索結果を取得し、RAM203へ記憶し、ステップS049では、ステップS047で展開した記録テーブル007の検索結果を一行毎に処理を開始する。
【0144】
ステップS050では、ステップS048においてRAM203へ記憶した項目情報に含まれるテーブル一覧からテーブル名を取得し、保管した前回テーブル名と同じかどうかを比較する。尚、前回テーブル名の保管は、ステップS056で実施する。
【0145】
比較した結果、前回のテーブル名と一致しないと判定した場合は、ステップS052へ処理を進め、一致しないと判定できなかった場合は、ステップS055へ処理を進める。
【0146】
次に、ステップS052では、ステップS047で取得した項目情報からステップS050で指定されたテーブルを特定し、ステップS048においてRAM203へ記憶した項目情報に基づいて特定したテーブルの項目一覧を取得する。
【0147】
次にステップS053では、検索結果画面の1行追加した後、ステップs054では、ステップS052でRAM203へ記憶した項目一覧を展開する。つまり、S051からS054までの処理で、図16に示す082で示されるデータ項目に実際のテーブルの項目名を記載した行を追加する。尚、追加のタイミングは、テーブル名が変更されるたびに、項目名を記載した行を追加している。
【0148】
次に、ステップS055では、更新処理マーキング処理を実施する。本処理の詳細については、図18に示すフローチャートを用いて説明する。次に、ステップS056では、テーブル名を保管する。本処理は、ステップS051の比較判別のために退避している。つまり、検索結果画面において、082に示すような項目情報をテーブル単位で表示するため、すなわちユーザによって視覚的に認識し易いようにするためである。
【0149】
ステップS044において実行した記録テーブル007の検索内容がなくなれば、ループを終了する(ステップS057)。
【0150】
続いて、図18に示すフローチャートを用いて更新箇所マーキング処理の説明をする。
【0151】
まず、ステップS058では、ステップS044においてSQLを実行して得られた記
【0152】
録テーブル007の検索結果の更新種別(Insert,Update,Delete)がUpdateであるか否かを判定し、Updateであると判定した場合は、ステップS059へ処理を進め、Updateであると判定しできなかった場合は、処理を終了する。
【0153】
Updateの場合は、更新前、更新後の2行のレコードが連続して存在するため、2行のそれぞれの値を比較し、値が一致しない場合にこの値の着色するため、この様な判定を行っている。
【0154】
そしてステップS059以降のステップにおいて、Update時の更新箇所(項目の値)にマーキングを行う処理を実施する。
【0155】
ステップS059は、ステップS052でRAM203へ記憶したテーブルの項目一覧の項目毎にループ処理の開始を示す。
【0156】
ステップS060において、ステップS052でRAM203へ記憶した項目一覧より項目の値を取得してRAM203へ記憶した後、ステップS061において、さらに次行の項目の値も取得し、RAM203へ記憶する。ステップS062において、ステップS060、ステップS061でRAM203へ記憶した値を比較判定し、値が一致しないと判定した場合は、これらの値を着色等の識別可能なように表示する。
【0157】
ステップS052でRAM203へ記憶した項目一覧に対する項目がなくなれば、ループを終了し(ステップS064)、ステップS065では、検索結果の実施対象行を2行進める。
【0158】
次に、図面15に示すマークアップラベル73、開始ボタン74、終了ボタン075、ラベル078について説明する。
【0159】
これらは、特定作業等の発生時に更新内容を記録したい場合、記録テーブル007に対するラベリング(しおり付け)を行う機能である。
【0160】
本機能は、テストを実施する際に有効になる機能である。あるアプリケーションのテストを実施する際、まずマークアップラベル073にテストケースNo.「Case-1」を入力する。
【0161】
そして、アプリケーション001の操作を行う前に、テスト開始の宣言となる、開始ボタン074を押下する。本作業により、記録テーブル007にラベル「Case-1」の開始レコードが追加される(図面19の091)。
【0162】
次にアプリケーション001のテスト対象操作を実施することで、アプリケーションによる更新処理内容が記録テーブルに記録される(図面19の092)。アプリケーション操作001の実施後に、テスト終了の宣言とするため、終了ボタン092を押下する。
【0163】
本作業で記録テーブルにラベル「Case-1」の終了レコードが追加(図面19の093)される。アプリケーション001による更新内容が開始ラベル行と終了ラベル行にはさまれるようになり、テスト実施時の更新対象を範囲で特定することが可能である。
【0164】
検索条件指定画面076の検索条件入力領域076のラベル078にテストケースNo.を入力し、検索を実施することで、開始ラベルと終了ラベルの間の行について検索結果を検索結果画面に表示することができる。
【0165】
次に図20を用いて、マークアップラベルの登録処理についてフローチャートを用いて説明する。
【0166】
ステップS066では、開始ボタン074あるいは終了ボタン075が押下されたか否かを判定し、押下されたと判定した場合は、開始ボタン074あるいは終了ボタン075の何れかが押されたことを識別するためのボタン識別情報をRAM203へ記憶し、ステップS067へ処理を進める。
【0167】
ステップS067では、照会端末500で照会装置003を起動する。そして、記録テーブル007が存在する接続先のRDBを指定するために接続先フィールド071に接続先情報が入力されたことを検知し、入力された接続先情報を取得し、RAM203へ記憶する。次のステップS068では、ステップS067においてRAM203へ記憶した接続先情報に基づいてデータベースサーバ300に備えられたテーブルの存在する領域に接続する。
【0168】
次に、ステップS069では、マークアップラベル073に入力されたマークアップラベルを取得し、ステップS070では、ステップS066でRAM203へ記憶したボタン識別情報を取得し、ステップS071では、S069で取得したマークアップラベルとS070で取得したボタン識別情報からラベル文字列を生成する。
【0169】
次にステップS071で作成した文字列を埋めた記録テーブル007に対する登録するためのSQL文(Insert文)を生成し(S063)、RAM203へ記憶する。
【0170】
ステップS072において、ステップS071においてRAM203へ記憶したSQLをデータベースサーバ300へ送信して実行する。
【0171】
以上、本発明によれば、データベースに対する更新履歴に関与する情報を網羅的に記録することによって障害の発生原因の調査を作業者への負荷をかけることなく効率的に行うことが可能となる。
【0172】
以上、各実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0173】
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能(読み取り可能)なプログラムであり、本発明の記憶媒体は、各処理方法をコンピュータが実行可能なプログラムが記憶されている。
【0174】
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
【0175】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読取り実行することによっても、本発明の目的が達成されることは言うまでもない。
【0176】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【0177】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0178】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0179】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0180】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0181】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0182】
100 情報処理システム
200 業務端末
300 データベースサーバ
400 管理端末
500 照会端末
201 CPU
202 ROM
203 RAM
204 システムバス
205 入力コントローラ
206 ビデオコントローラ
207 メモリコントローラ
208 通信I/Fコントローラ
209 キーボード
210 CRT
211 外部メモリ
【特許請求の範囲】
【請求項1】
少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、
前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、
前記記録手段によって記録された更新内容を表示する表示手段と、
を備えたことを特徴とする情報処理システム。
【請求項2】
前記表示選択手段は、前記アプリケーションテーブル及び前記アプリケーションテーブルを構成する項目を更に選択し、
前記記録手段は、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブル及び前記アプリケーションテーブルを構成する項目に対する更新内容を記録する記録手段と、
を備えたことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記表示選択手段は、前記アプリケーションテーブルの更新のトランザクションとは独立したトランザクションで前記記録手段によって記録を行うことを示す自立型トランザクションを選択することが可能であり、
前記記録手段は、前記表示選択手段によって自立型トランザクションが選択された場合、前記アプリケーションテーブルの更新のトランザクションとは独立したトランザクションで更新内容を記録することを特徴とする請求項1または請求項2に記載の情報処理システム。
【請求項4】
特定の作業時における更新内容を記録することを示す特定作業情報を入力するための入力手段を更に備え、
前記入力手段によって入力された特定作業情報に対応して前記記録手段は、更新内容を記録することを特徴とする請求項1乃至3の何れか1項に記載の情報処理システム。
【請求項5】
前記更新内容には、登録、削除、及び更新を識別するための更新種別を含むことを特徴とする請求項1乃至請求項4の何れか1項に記載の情報処理システム。
【請求項6】
前記更新種別が更新か否かを判定する更新判定手段を更に備え、
前記更新判定手段によって更新種別が更新を示す時、前記記録手段は、更新前のアプリケーションテーブル及び更新後の前記アプリケーションテーブルに関するデータを記録することを特徴とする請求項5に記載の情報処理システム。
【請求項7】
更新前のアプリケーションテーブル及び更新後の前記アプリケーションテーブルに関するデータが一致するか否かを判定する比較手段を更に備え、
前記表示手段は、前記比較手段によって一致しないと判定した場合、更新前及び更新後のデータを識別可能なように表示することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記更新内容は、前記アプリケーションテーブルへの更新タイミング、更新ユーザ、前記アプリケーションテーブルへの更新を行った情報処理装置、アプリケーションテーブルへのセッション情報を含むことを特徴とする請求項1乃至7の何れか1項に記載の情報処理システム。
【請求項9】
少なくとも1以上のアプリケーションテーブルを表示選択する表示選択工程と、
前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択工程によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録工程と、
前記記録工程によって記録された更新内容を表示する表示工程と、
を備えたことを特徴とする情報処理システムの制御方法。
【請求項10】
コンピュータで読取り可能なプログラムである共に実行可能なプログラムであって、前記プログラムは、
少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、
前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、
前記記録手段によって記録された更新内容を表示する表示手段と、
として機能することを特徴とするプログラム。
【請求項1】
少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、
前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、
前記記録手段によって記録された更新内容を表示する表示手段と、
を備えたことを特徴とする情報処理システム。
【請求項2】
前記表示選択手段は、前記アプリケーションテーブル及び前記アプリケーションテーブルを構成する項目を更に選択し、
前記記録手段は、前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブル及び前記アプリケーションテーブルを構成する項目に対する更新内容を記録する記録手段と、
を備えたことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記表示選択手段は、前記アプリケーションテーブルの更新のトランザクションとは独立したトランザクションで前記記録手段によって記録を行うことを示す自立型トランザクションを選択することが可能であり、
前記記録手段は、前記表示選択手段によって自立型トランザクションが選択された場合、前記アプリケーションテーブルの更新のトランザクションとは独立したトランザクションで更新内容を記録することを特徴とする請求項1または請求項2に記載の情報処理システム。
【請求項4】
特定の作業時における更新内容を記録することを示す特定作業情報を入力するための入力手段を更に備え、
前記入力手段によって入力された特定作業情報に対応して前記記録手段は、更新内容を記録することを特徴とする請求項1乃至3の何れか1項に記載の情報処理システム。
【請求項5】
前記更新内容には、登録、削除、及び更新を識別するための更新種別を含むことを特徴とする請求項1乃至請求項4の何れか1項に記載の情報処理システム。
【請求項6】
前記更新種別が更新か否かを判定する更新判定手段を更に備え、
前記更新判定手段によって更新種別が更新を示す時、前記記録手段は、更新前のアプリケーションテーブル及び更新後の前記アプリケーションテーブルに関するデータを記録することを特徴とする請求項5に記載の情報処理システム。
【請求項7】
更新前のアプリケーションテーブル及び更新後の前記アプリケーションテーブルに関するデータが一致するか否かを判定する比較手段を更に備え、
前記表示手段は、前記比較手段によって一致しないと判定した場合、更新前及び更新後のデータを識別可能なように表示することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記更新内容は、前記アプリケーションテーブルへの更新タイミング、更新ユーザ、前記アプリケーションテーブルへの更新を行った情報処理装置、アプリケーションテーブルへのセッション情報を含むことを特徴とする請求項1乃至7の何れか1項に記載の情報処理システム。
【請求項9】
少なくとも1以上のアプリケーションテーブルを表示選択する表示選択工程と、
前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択工程によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録工程と、
前記記録工程によって記録された更新内容を表示する表示工程と、
を備えたことを特徴とする情報処理システムの制御方法。
【請求項10】
コンピュータで読取り可能なプログラムである共に実行可能なプログラムであって、前記プログラムは、
少なくとも1以上のアプリケーションテーブルを表示選択する表示選択手段と、
前記アプリケーションテーブルへの更新タイミングにおいて前記表示選択手段によって選択した前記アプリケーションテーブルに対する更新内容を記録する記録手段と、
前記記録手段によって記録された更新内容を表示する表示手段と、
として機能することを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2011−138416(P2011−138416A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2009−298992(P2009−298992)
【出願日】平成21年12月28日(2009.12.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.コンパクトフラッシュ
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願日】平成21年12月28日(2009.12.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.コンパクトフラッシュ
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】
[ Back to top ]