説明

コンピュータ稼働状況取得システム、方法及びプログラム

【課題】第1のコンピュータ(例えば、メインフレーム)の稼働状況を、第1のコンピュータ上に追加ソフトウェア(エージェントソフトウエア)を導入することなく、第2のコンピュータ(UNIX系サーバ、Windowsサーバなどのオープン系サーバ)上でリアルタイムに取得可能とする。
【解決手段】第1のコンピュータ1の稼働状況を取得するために、第1のコンピュータ1の画面14に出力されるメッセージを画面単位で受信16aし、メッセージを一行毎に分解して、不要な行を削除し172、外部ツール4にこれから送るメッセージのうち前回送ったメッセージ中に含まれる重複部分を削除183する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第1のコンピュータ(例えば、メインフレーム)の稼働状況を、第1のコンピュータ上に追加ソフトウェア(エージェントソフトウエア)を導入することなく、第2のコンピュータ(UNIX系サーバ、Windowsサーバなどのオープン系サーバ)上にリアルタイムに取得して、第1のコンピュータの稼働状況を取得するシステム、方法及びプログラムに関する。
【背景技術】
【0002】
従来、メインフレームの稼働状況は、メッセージログを見ることで取得することができる。メッセージログを取得する方法として、以下の3つの方法がある。
【0003】
第1の方法は、メッセージコンソールでメッセージを見る方法である。メインフレームのコンソール画面または、端末エミュレータにメッセージログの内容を表示し、監視員が目視で確認する。メッセージログに障害を示す文言が表示された場合は、その内容によって対応を行う。主な対応としては、担当者への電話やメールによる連絡、手順書に従ったオペレーションがある。
【0004】
第2の方法は、メッセージログを印刷する方法である。メインフレームのメッセージログを印刷し、監視員が目視で確認する。メッセージログに障害を示す文言が表示されている場合は、その内容によって対応を行う。主な対応としては、担当者への電話やメールによる連絡、手順書に従ったオペレーションがある。
【0005】
第3の方法は、メッセージログファイルを取得する方法である(例えば、特許文献1参照)。メインフレームのメッセージログが格納されたファイルを定期的にオープン系のサーバに転送し、オープン系サーバ上のソフトウェアで確認する。オープン系サーバ上で稼働するソフトウェアには、文字列を解析するソフトウェアが数多く存在する。このようなソフトウェアの解析機能を用いてメッセージログファイルの内容を解析し、障害を示す文字列を検出した場合には、ルールに従って対応を行う。主な対応としては、コマンド実行、メール送信、電話連絡等があり、ソフトウェアによって自動化が可能である。
【特許文献1】特開2000−242525号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、メインフレームのメッセージコンソールを監視員が目視で監視する第1の方法は、リアルタイム性が高いという利点があるが、(1)常に監視員がコンソールの前に居る必要がある、(2)見落としが発生する可能性がある、(3)障害を示す文言に対する判断やその後の処理が自動化できず、監視業務の効率化が困難である等の問題点を抱えている。
【0007】
また、メッセージログを印刷して確認する第2の方法は、メッセージコンソールを監視員が目視で監視する方法に比べて見落としが発生する可能性が低いという利点があるが、(1)リアルタイム性の確保が困難である、(2)見落としが発生する可能性がある、(3)前回の監視時に検知した障害を、重複して検知する可能性がある、(4)障害を示す文言に対する判断やその後の処理が自動化できず、監視業務の効率化が困難である等の問題点を抱えている。
【0008】
さらに、メッセージログを転送し、オープン系サーバ上のソフトウェアで解析する第3の方法は、一連の作業を自動化することが可能であるため、効率的かつ高品質な監視が可能という利点があるが、(1)定期的に処理を行うためリアルタイム性の確保が困難である、(2)ファイル転送用にメインフレーム上にソフトウェアが必要であるため、変更リスクが発生する等の問題点を抱えている。変更リスクとは、例えばメインフレームにソフトウェアをインストールすることによってシステムのどこかに何らかの影響が発生するおそれを言う。このような変更リスクを最小限に抑えるために、メインフレームにソフトウェアをインストールする際、システム全体を一度停止させ、その後リブートさせることが必要となる場合がある。
【課題を解決するための手段】
【0009】
本発明の第1の特徴は、第1のコンピュータの稼働状況を取得するために、第1のコンピュータの画面に出力されるメッセージを画面単位で受信し、メッセージを一行毎に分解して、不要な行を削除し、外部ツールにこれから送るメッセージのうち前回送ったメッセージ中に含まれる重複部分を削除することにある。
【0010】
画面単位での受信は、第1のコンピュータの端末エミュレータを用いて実現する。不要な行とは、例えば、ヘッダー行やフッター行などである。重複部分を削除するとは、前回送ったメッセージの1行又は複数行を記憶しておき、そのメッセージと今回送ろうとするメッセージとを比較して、重複部分の有無を判断する。
【0011】
本発明の第2の特徴は、外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶しておき、記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第1行目から順次比較し、今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第1行目から前回メッセージ最終行と同じ内容の行までを削除し、一方、今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しないものとする。
【0012】
例えば、
(1)前回メッセージ最終行と、今回メッセージの第1行目とを比較し、
(2)前回メッセージ最終行と、今回メッセージの第1行目とが同じでない場合は、前回メッセージ最終行と、今回メッセージの第2行目とを比較し、
(3)前回メッセージ最終行と、今回メッセージの第2行目とが同じでない場合は、前回メッセージ最終行と、今回メッセージの第3行目とを比較し、
(4)前回メッセージ最終行と、今回メッセージの第3行目とが同じである場合は、今回メッセージの第1行目から第3行目までを削除する。
【0013】
本発明の第3の特徴は、
第1のコンピュータの画面縦サイズがhバイトで、横サイズがwバイトであって、第1のコンピュータから出力されるメッセージの1行の長さが、wバイトを超える場合に、
画面受信の際は、メッセージの第1行目から第h行目までの各行の第1バイト目から第wバイト目までを、第1のオフセット値以降に順次記憶し、
メッセージの第1行目から第h行目までの各行の第(w+1)バイト目から第(2×w)バイト目までを、第2のオフセット値以降に順次記憶し、
メッセージ整形の際は、第1のオフセット値以降に記憶されているメッセージの各行の第1バイト目から第wバイト目までと、第2のオフセット値以降に記憶されているメッセージの各行の第(w+1)バイト目から第(2×w)バイト目までとを順次結合してメッセージの第1行目から第h行目までを作成する。なお、h及びwは、任意の自然数とする。
【0014】
例えば、横サイズが80バイトであって、第1のコンピュータから出力されるメッセージの1行の長さが、80バイトを超える場合に、
(1)画面受信の際は、
1行目の1〜80バイトをメモリの(1000+1)番地に記憶し、
2行目の1〜80バイトをメモリの(1000+2)番地に記憶し、

h行目の1〜80バイトをメモリの(1000+h)番地に記憶し、
1行目の81〜160バイトをメモリの(2000+1)番地に記憶し、
2行目の81〜160バイトをメモリの(2000+2)番地に記憶し、

h行目の81〜160バイトをメモリの(2000+h)番地に記憶し、
(2)メッセージ整形の際は、
メモリの(1000+1)番地の内容と(2000+1)番地の内容とを結合して、メッセージの1行目を作成し、
メモリの(1000+2)番地の内容と(2000+2)番地の内容とを結合して、メッセージの2行目を作成し、

メモリの(1000+h)番地の内容と(2000+h)番地の内容とを結合して、メッセージのh行目を作成する。
【発明の効果】
【0015】
本発明の第1の特徴によれば、第1のコンピュータの画面出力に基づいて稼働状況を取得しているので、第1のコンピュータに稼働状況取得のためのソフトウェアをインストールする必要がない。また、前回メッセージと今回メッセージとの重複部分を削除して外部ツールに送るため、例えば第1のコンピュータは1回しかエラーメッセージを発生していないのに、外部ツールがエラーメッセージを2回受け取ることはない。
【0016】
また、本発明の第2の特徴によれば、前回メッセージの最終行だけを今回メッセージと比較することによって、つまり比較対照行を1行に限定することによって、比較処理に要する時間を短縮できる。
【0017】
ここで、「第1行目」とは最も上の行を意味し、下から1行目を意味しない。今回メッセージの第1行目(最も上の行)から順次比較することによって、今回メッセージと前回メッセージとの重複部分について削除漏れが生じることはあっても、誤って過剰に削除することを回避できる。例えば、今回メッセージの第3行目と第5行目と第7行目が同じであって、今回メッセージの第1行目から第5行目までが前回メッセージの終わりの5行と同じ内容、つまり今回メッセージの第1行目から第5行目までが削除されるべき場合に基づいて説明する。第2の特徴によれば、前回メッセージの最終行と今回メッセージの第1行目からとが順次比較されれば、第3行目で同一内容行が存在すると判断され、第1行目から第3行目までが削除される。この場合は、重複部分として削除されるべき第4行目から第5行目が削除されない。このような削除漏れは発生しうる。
【0018】
もし仮に、最も下の行から比較を開始した場合、第7行目で同一内容行が存在すると判断され、第1行目から第7行目までが削除されてしまう。第2の特徴によれば、このように過剰に削除されることはない。
【0019】
つまり、第2の特徴によれば、重複部分削除の正確性を若干犠牲にして、重複部分削除に要する時間を短縮しているが、仮に不正確な削除がなされるとしても、削除漏れが生じることはあっても、過剰に削除されることはない。このことは、例えば第1のコンピュータから1回しかエラーメッセージが発生していないのに、2回発生しているかのように外部ツールに通知してしまうことが極希に発生することはあっても、エラーメッセージが発生しているのにそれを外部ツールに通知し忘れてしまうことは決してないということを意味する。
【0020】
さらに、本発明の第3の特徴によれば、第1のコンピュータから出力されるメッセージが第1のコンピュータの画面サイズに収まらない場合であっても、第1のコンピュータに稼働状況取得のためのソフトウェアをインストールする必要はなく、また外部ツールに同じメッセージを重複して送ってしまうこともない。
【発明を実施するための最良の形態】
【0021】
以下に図面に基づいて、本発明を実施するための最良の形態を説明する。なお、以下の説明は、単なる例示に過ぎず、本発明の技術的範囲は以下の説明に限定されるものではない。
【実施例1】
【0022】
図1〜5に基づいて、実施例1を説明する。図1は実施例1のシステム構成を表すブロック図であり、図2は実施例1における制御情報の一例を示し、図3及び4は実施例1における情報(メッセージ)の遷移と画面の遷移の一例を示し、図5は実施例1における処理の流れを示すフローチャートである。
【0023】
<システム概要>
図1に示すように、本システムは、稼働状況取得システム1、記憶装置2、メインフレーム3、外部ツール4から構成される。
【0024】
稼働状況取得システム1は、記憶装置2より読み込んだ制御情報(後述する図2を参照)を元に、メインフレーム3との接続やメッセージログの受信、整形、重複削除、外部ツール4への出力を行う。
【0025】
記憶装置2には、稼働状況取得システム1の制御情報が格納されている。記憶装置2は、具体的には、フロッピーディスクドライブやハードディスクドライブなどの磁気記憶装置又はCD-ROMドライブやDVDドライブなどの光ディスク記憶装置又はMOドライブなどの光磁気ディスク記憶装置に相当する。また、ネットワークに接続された他システムの記憶装置を利用することも可能である。
【0026】
図2に示すように、制御情報は、例えばメインフレームのIPアドレス、メインフレームとの接続プロトコル、LU(Logical Unit:論理端末)名、アカウント名、パスワード、発行するコマンドの文字列、受信する画面の識別情報、画面を記憶するメモリアドレス、画面受信部で使用する削除対象文字列、外部ツールとのI/F情報、稼働状況取得システムの障害発生時の対応方法、及び繰り返しの間隔などである。
【0027】
アカウント名やパスワードなど、認証に関わる情報は暗号化することが好ましい。「発行するコマンドの文字列」とは、例えば後述する「SDSF」やそのオプションである。「受信する画面の識別情報」とは、例えば画面上の座標値と文字列などである。そして、識別情報として記憶されている座標値の位置に、識別情報として記憶されている所定の文字列が表示されている画面を受信し、それ以外の画面は受信しないものとする。所定の位置とは、例えば画面の第1行目などでも良く、又は画面の第1行目から第3行目のように複数行にわたるものでも良い。また、所定の文字列とは、例えば「システム状況の処理」、「コマンド」、「SYSTEM」、「STATUS」などである。「画面を記憶するメモリアドレス」とは、例えば画面を記憶するメモリの先頭アドレスなどである。「画面受信部で使用する削除対象文字列」とは、例えば「----1----」などのヘッダー行に表示される文字列やフッター行に表示される文字列などである。「外部ツールとのI/F情報」とは、稼働状況取得システム1と外部ツール4とのインターフェースに関する情報であり、稼働状況取得システム1から外部ツール4へどのようにしてメッセージを渡すかに関する情報である。例えば、どのAPI(アプリケーション プログラミング インターフェース)をコールするのか、又はどのような名前のファイルとして出力するのかなどである。「稼働状況取得システムの障害発生時の対応方法」とは、メインフレーム3に障害が発生したときではなく、稼働状況取得システム1そのものに障害が発生したときの対応方法である。「繰り返しの間隔」とは後述するステップS107からステップS113を繰り返し実行する時間間隔をいい、例えば5秒程度である。
【0028】
メインフレーム3は、稼働状況取得システム1から依頼を受けたときに、稼働状況を稼働状況取得システム1に対してメッセージログ30として入力する。
【0029】
外部ツール4は稼働状況取得システム1から入力された情報を元に障害の検知を行い、警報装置の鳴動やメールの送信などを行う。外部ツール4は、具体的には、運用管理ツール(例えば、NRIデータサービス株式会社製の『eXsenju』(登録商標))などに相当する。
【0030】
<稼働状況取得システム詳細>
図1に示すように、稼働状況取得システム1は、制御情報読取部11、制御情報格納部12、制御部13、メインフレーム画面14、通信制御部15、画面受信部16a、メッセージ整形部17a及び重複削除処理部18から構成される。
【0031】
制御情報読取部11は、記憶装置2から制御情報の読込を行い、制御情報格納部12に格納する。なお、制御情報には、パスワードなど秘匿性が高い情報が含まれうる。そのような秘匿性が高い情報は、その一部又は全部が暗号化されていることが好ましい。暗号化されている制御情報は、暗号化されたまま制御情報格納部12に格納される。
【0032】
制御情報格納部12は、制御情報読取部11が読み込んだ制御情報を格納し、制御部13に送る。なお、暗号化されたまま制御情報格納部12に格納されている制御情報は、暗号化されたまま制御部13に送られる。
【0033】
制御部13は、制御情報格納部12から送られた制御情報をもとに、メインフレーム画面14へ文字列やキーの入力を行う。例えば、IBM社製メインフレームの場合、SDSFコマンドを入力する。また、キー入力の結果としてメインフレーム画面14に表示される情報について、重複を防ぐ一連の処理の指示を行う。後述するように、重複を防ぐ一連の処理は、画面受信部16a、メッセージ整形部17a、及び重複削除処理部18によって実行される。
【0034】
なお、メインフレーム画面14に表示される情報を取得する際に抜け漏れが発生することを防ぐため、画面が自動的に遷移しないよう文字列やキー(例えば、IBM社製メインフレームの場合、SDSFコマンドのオプション)の入力を行う。「画面が自動的に遷移しないようにする」とは、前回画面取得時と今回画面取得時の間に、メッセージログが1画面分よりも多く出力された場合に、画面を1画面分よりも多くスクロールせず、まず前回と比べて1画面分新しい情報を取得し、その後、残りの情報を取得する。例えば、メッセージが1.5画面分出力された場合、まず1画面分を取得し、その後、既に取得した画面の後半(0.5画面分)とまだ取得していない画面(0.5画面分)とを取得する。
【0035】
図3に、前回メッセージログ全体31と、前回メッセージログ全体31の一部に対応する前回取得画面32の一例を示す。図3に示す例では、前回メッセージログ全体31の最終行と前回取得画面32の最終行は、同一の行である。
【0036】
図4に、今回メッセージログ全体35と、今回メッセージログ全体35の一部に対応する今回取得画面36及び次回取得画面37の一例を示す。図4に示すように、前回取得画面32の最終行の次の行が、今回取得画面36の先頭行にある。また、図4に示す例は、今回取得画面36の最終行が、今回メッセージログ全体35の最終行と一致していない。前回画面取得時と今回画面取得時の間に、メッセージログが1画面分よりも多く出力された場合に該当する。さらに、図4に示す例は、今回取得画面36と次回取得画面37とが一部重複してしまっているので、後述するように重複削除処理部18によって重複部分を削除する。
【0037】
制御情報格納部12から送られる制御情報は一部暗号化されている可能性があるため制御部13で復号化を行う。制御部13の処理は逐次ログ等に記録されるが、ログ等には暗号化された情報を出力する。
【0038】
メインフレーム画面14は、稼働状況取得システム1内部に生成されるメインフレームの画面である。メインフレーム画面14は、制御部13から入力された文字列やキーを、通信制御部15を通してメインフレーム3に送る。また、メインフレーム3から受け取った情報は、メインフレーム画面14に表示される。
【0039】
通信制御部15は、メインフレームとの接続/切断等の通信制御を行う。メインフレームとの通信方式はメインフレームの機種によって異なる(例えば、IBM社製メインフレームの場合は、3270プロトコルで接続)が、通信制御部15で使用されるプロトコルを変更することによって全ての機種と接続することができる。メインフレーム画面14と通信制御部15はメインフレームの端末エミュレータを用いて実現する。ここで、端末エミュレータとは、特定のメインフレーム端末用の通信プロトコルをエミュレートし、パーソナルコンピュータ等の非専用端末を、専用端末として機能させるためのハードウェア又はソフトウェアを意味する。例えば、IBM社製『WebSphere(登録商標) Host Access Transformation Services』等が該当する。
【0040】
画面受信部16aは、図1に示されているように、不要画面判断部161及び画面記憶部162を備える。画面受信部16aは、制御部13の指示を受けてメインフレーム画面14に表示される画面を画面単位で取得する。
【0041】
メインフレーム画面14に表示される内容は、メインフレームが表示する表示方法に依存するため、不要な画面が表示される可能性がある。不要な画面とは、具体的には、ログイン画面や目的の情報に辿り着くまでの遷移画面などに相当する。不要な画面を破棄するために、制御部13から指示を受けた画面のみ取得する。具体的には、不要画面判断部161が、前記の「受信する画面の識別情報」に従って、受信(取得)が必要か否かを判断し、必要と判断された画面だけを画面記憶部162が記憶する。
【0042】
なお、「受信する画面の識別情報」の代わりに、「受信しない画面の識別情報」を制御情報として記憶し、「受信しない画面の識別情報」に基づいて不要と判断された画面を取得せず、それ以外の画面を取得することもできる。
【0043】
メッセージ整形部17aは、図1に示すように、不要行判断部171及び不要行削除部172を備える。メッセージ整形部17aは、画面受信部16aが取得した画面からメッセージを作成する。具体的には、不要行判断部171が、受信した画面を行に分解してメッセージを作成し、明らかに不要な行(例えば、空行やヘッダー行、フッター行)かを判断する。具体的には、制御情報として記憶されている前記の「削除対象文字列」と各行を比較して、不要な行かを判断する。不要と判断された行は、不要行削除部172によって削除される。
【0044】
重複削除処理部18は、図1に示すように、最終行記憶部181、比較部182及び重複行削除部183を備え、メッセージ整形部17aが作成したメッセージのうち、既に外部ツール4に送ったメッセージを削除する。重複削除処理部18は、以下の方法で重複メッセージを削除する。
【0045】
(1)最終行記憶部181が、前回外部ツール4に送ったメッセージ(複数行)のうち最終行のメッセージを記憶し、
(2)比較部182が、最終行記憶部181に記憶されているメッセージ(最終行のみ)と、メッセージ整形部17aによって今回作成されたメッセージ(複数行)とを、1行目から順に比較し、
(3)重複行削除部183が、
同じ内容の行が存在する場合は、メッセージ整形部17aが今回作成したメッセージのうち、1行目から該当する行までのメッセージを削除し、
同じ内容の行が存在しない場合は、何もしない。
【0046】
重複するメッセージを削除した後、又は重複するメッセージを発見することなく最終行まで比較が終了した後に、外部ツール4に対してメッセージを送る。
【0047】
<処理の流れ>
図5に示すように、ステップS101で、制御情報読取部11が記憶装置2より制御に関する情報を読み込み、制御情報格納部12に記憶する。
ステップS103で、制御部13が制御情報格納部12から制御情報を読み取り、制御情報にしたがって、メインフレーム画面14に対して文字列やキーの入力を行う。
ステップS105で、接続制御部15が、制御部13からメインフレーム画面14への入力を受け取り、メインフレーム3との接続、認証を行う。
ステップS107で、接続制御部15が接続、認証を行った後、制御部13がメインフレーム画面14に対してメッセージログ取得要求を行う。
ステップS109で、画面受信部16aが制御部13の指示に従ってメインフレーム画面14に表示された画面を取得する。
ステップS111で、画面受信部16aが受信した画面から、メッセージ整形部17aがメッセージを作成し、不要な情報を削除する。
ステップS113で、重複削除処理部18が、重複メッセージを削除し、外部ツール4にメッセージを送信する。
以上のステップS107からステップS113を、制御情報として記憶されている繰り返し間隔で繰り返すことによって、ほぼリアルタイムで稼働状況の把握が可能になる。
【0048】
前記の如く、実施例1によれば、メインフレームにファイル転送用のソフトウェアが存在しなくても、メッセージを外部ツール4へほぼリアルタイムで渡すことができる。また、前回画面取得時と今回画面取得時との間に、メッセージログが1画面分以上出力された場合であっても、情報を取りこぼすことがない。さらに、図4を用いて説明したように、今回取得画面の内容と次回取得画面の内容とが一部重複する場合であっても、外部ツール4へ二重に情報を渡してしまうこともない。よって、リアルタイム性を確保しつつ、メッセージの検出漏れ、又はメッセージの重複検知を回避することができる。
【実施例2】
【0049】
メインフレーム画面14のサイズは、通常、縦24バイト×横80バイトに固定されている。そのため、80バイト以上のメッセージは画面内の1行に納まらず、画面の横スクロールを行って表示する必要がある。実施例1では、1画面に納まるメッセージ(横スクロールが不要なメッセージ)の取得を行ったが、実施例2では、横スクロールを伴って表示される画面の取得も可能である。
【0050】
実施例2のシステム構成は、実施例1のシステム構成とほぼ同様であるが、画面受信部とメッセージ整形部が相違する。図7に示すように、画面受信部16bは、画面記憶部162内に第1画面記憶領域のみならず第2画面記憶領域を備え、またメッセージ整形部17bは、同一行結合部173をさらに備える。なお、実施例2では、ステップS109を複数回繰り返した上でステップS111及びステップS113を行う。
【0051】
図6−1(a)に、80バイト以上の長いメッセージを複数行含むメッセージ601の一例を示す。実施例2の画面受信部16は、図6−1(b)に示すように、メッセージ601の各行の前半80バイトからなる第1の画面602aと、メッセージ601の各行の後半80バイトからなる第2の画面602bとに分割して、第1の画面602aを第1画面記憶領域に記憶し、第2の画面を第2画面記憶領域に記憶する(ステップS109)。
【0052】
そして、例えば、メッセージ601の1行目(ヘッダー行)前半80バイトに相当する画面602aの1行目は、第1画面記憶領域内のアドレス1001番地に、
メッセージ601の2行目前半80バイトに相当する画面602aの2行目は、第1画面記憶領域内のアドレス1002番地に、
メッセージ601の3行目前半80バイトに相当する画面602aの3行目は、第1画面記憶領域内のアドレス1003番地に、
メッセージ601の4行目前半80バイトに相当する画面602aの4行目は、第1画面記憶領域内のアドレス1004番地にそれぞれ記憶され、画面602aの残りの行も同様に、(1000+行数)番地に記憶される。
【0053】
また、メッセージ601の1行目(ヘッダー行)後半80バイトに相当する画面602bの1行目は、第2画面記憶領域内のアドレス2001番地に、
メッセージ601の2行目後半80バイトに相当する画面602bの2行目は、第2画面記憶領域内のアドレス2002番地に、
メッセージ601の3行目後半80バイトに相当する画面602bの3行目は、第2画面記憶領域内のアドレス2003番地に、
メッセージ601の4行目後半80バイトに相当する画面602bの4行目は、第2画面記憶領域内のアドレス2004番地にそれぞれ記憶され、画面602bの残りの行も同様に、(2000+行数)番地に記憶されるものとする。
【0054】
なお、「xxx1番地」に1行目、「xxx2番地」に2行目、・・・が記憶されるとしているが、説明を簡単にするためにそのようにしているに過ぎない。記憶対象であるメッセージのバイト数に応じて「xxx1番地」に1行目、「xxx5番地」に2行目、・・・などのようにアドレスの増分を適宜変更しても良いことは言うまでもない。
【0055】
そして、メッセージ整形部17の同一行結合部173は、
アドレス1001番地の内容の後ろにアドレス2001番地の内容を結合し、
アドレス1002番地の内容の後ろにアドレス2002番地の内容を結合し、
アドレス1003番地の内容の後ろにアドレス2003番地の内容を結合し、
アドレス1004番地の内容の後ろにアドレス2004番地の内容を結合し、残りの行も同様にアドレス(1000+行数)番地の内容の後ろにアドレス(2000+行数)番地の内容を結合して、図6−2(c)に示すメッセージ603を作成する。さらに、不要行判断部171と不要行削除部172とが、ヘッダー行を削除してメッセージ604を作り(ステップS111)、得られたメッセージ604を重複削除処理部18へ送る。
【0056】
重複削除処理部18は、実施例1と同様に、重複の有無を調べ、重複部分を発見したらその重複部分を削除して、外部ツール4にメッセージを送信する(ステップS113)。
【0057】
前記の如く、実施例2によれば、実施例1と同様に、(1)メインフレームにファイル転送用のソフトウェアが存在しなくても、メッセージを外部ツール4へほぼリアルタイムで渡すことができ、(2)また、前回画面取得時と今回画面取得時との間に、メッセージログが1画面分以上出力された場合であっても、情報を取りこぼすことがなく、(3)さらに、今回取得画面の内容と次回取得画面の内容とが一部重複する場合であっても、外部ツール4へ二重に情報を渡してしまうこともない。よって、リアルタイム性を確保しつつ、メッセージの検出漏れ、又はメッセージの重複検知を回避することができる。
【0058】
さらに、実施例2によれば、メインフレーム3から出力されるメッセージが、メインフレーム画面、1画面に収まらない場合にも対応可能である。なお、実施例2はメッセージ1行の長さがメインフレーム画面の横方向サイズを超えるが、同横方向サイズの2倍を超えないことを前提としたが、本発明の技術的範囲はかかる実施例に限定されない。仮に、メッセージ1行の長さが、メインフレーム画面の横方向サイズの2倍を超える場合は、メッセージを横方向に3分割すれば良い。
【0059】
この場合、画面受信部が、第1の画面の第1行目以降をアドレス1001番地以降に、第2の画面の第1行目以降をアドレス2001番地以降に、第3の画面の第1行目以降をアドレス3001番地以降にそれぞれ記憶する。そして、メッセージ整形部が、アドレス1001番地の内容の後ろにアドレス2001番地の内容を付加し、さらにその後ろにアドレス3001番地の内容を付加し、また同様に、アドレス1002番地の内容の後ろにアドレス2002番地の内容を付加し、さらにその後ろにアドレス3002番地の内容を付加するという処理を繰り返すことによって、メッセージを作成する。
【図面の簡単な説明】
【0060】
【図1】実施例1におけるシステム構成を表すブロック図である。
【図2】実施例1における制御情報の一例を示す図である。
【図3】実施例1における情報(メッセージ)の遷移と画面の遷移の一例を示す図である。
【図4】実施例1における処理の流れを示すフローチャートであって、図3に示すメッセージが出力された後に出力されるメッセージの一例を示す図である。
【図5】実施例1における処理の流れを示すフローチャートである。
【図6−1】実施例2におけるメッセージ又は画面の一例であって、(a)は1画面では表示することができないメッセージの一例を示し、(b)は画面受信部で取得した第1の画面及び第2の画面の一例を示す図である。
【図6−2】実施例2におけるメッセージの一例であって、(c)は第1の画面と第2の画面の同一行がメッセージ整形部によって結合された例を示し、(d)はメッセージ整形部によって不要な行が削除された例を示す図である。
【図7】実施例2におけるシステム構成を表すブロック図である。
【符号の説明】
【0061】
1…稼働状況取得システム、 2…記憶装置、
3…メインフレーム、 4…外部ツール、
11…制御情報読取部(利用者認証手段)、 12…制御情報格納部、
13…制御部、 14…メインフレーム画面、
15…通信制御部、 16…画面受信部、
17…メッセージ整形部、 18…重複削除処理部

【特許請求の範囲】
【請求項1】
第1のコンピュータの稼働状況を取得するためのシステムであって、
第1のコンピュータの画面に出力されるメッセージを画面単位で受信可能な画面受信部と、
前記画面受信部が受信した画面を一行毎に分解して、不要な行を削除するメッセージ整形部と、
前記メッセージ整形部が作成したメッセージのうち外部ツールに前回送ったメッセージ中に含まれる重複部分を削除する重複削除処理部と、を備える稼働状況取得システム。
【請求項2】
前記重複削除処理部は、
前記外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶する最終行記憶部と、
前記最終行記憶部に記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第1行目から順次比較する比較部と、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第1行目から前回メッセージ最終行と同じ内容の行までを削除し、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しない重複行削除部と、を備える請求項1記載の稼働状況取得システム。
【請求項3】
第1のコンピュータの画面縦サイズがhバイトで、横サイズがwバイトであって、第1のコンピュータから出力されるメッセージの1行の長さが、wバイトを超える場合に、
前記画面受信部は、
前記メッセージの第1行目から第h行目までの各行の第1バイト目から第wバイト目までを、第1のオフセット値以降に順次記憶し、
前記メッセージの第1行目から第h行目までの各行の第(w+1)バイト目から第(2×w)バイト目までを、第2のオフセット値以降に順次記憶することが可能であって、
前記メッセージ整形部は、
前記第1のオフセット値以降に記憶されている前記メッセージの各行の第1バイト目から第wバイト目までと、前記第2のオフセット値以降に記憶されている前記メッセージの各行の第(w+1)バイト目から第(2×w)バイト目までとを順次結合して前記メッセージの第1行目から第h行目までを作成可能である、請求項1又は2に記載の稼働状況取得システム(h及びwは、任意の自然数)。
【請求項4】
第1のコンピュータの稼働状況を取得するための方法であって、
第1のコンピュータの画面に出力されるメッセージを画面単位で受信する画面受信ステップと、
前記メッセージを一行毎に分解して、不要な行を削除するメッセージ整形ステップと、
前記メッセージのうち外部ツールに前回送ったメッセージ中に含まれる重複部分を削除する重複削除ステップと、を含む稼働状況取得方法。
【請求項5】
前記重複削除ステップは、
前記外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶する最終行記憶ステップと、
記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第1行目から順次比較する比較ステップと、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第1行目から前回メッセージ最終行と同じ内容の行までを削除し、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しない削除実行ステップと、を含む請求項4記載の稼働状況取得方法。
【請求項6】
第1のコンピュータの画面縦サイズがhバイトで、横サイズがwバイトであって、第1のコンピュータから出力されるメッセージの1行の長さが、wバイトを超える場合に、
前記画面受信ステップは、
前記メッセージの第1行目から第h行目までの各行の第1バイト目から第wバイト目までを、第1のオフセット値以降に順次記憶し、
前記メッセージの第1行目から第h行目までの各行の第(w+1)バイト目から第(2×w)バイト目までを、第2のオフセット値以降に順次記憶し、
前記メッセージ整形ステップは、
前記第1のオフセット値以降に記憶されている前記メッセージの各行の第1バイト目から第wバイト目までと、前記第2のオフセット値以降に記憶されている前記メッセージの各行の第(w+1)バイト目から第(2×w)バイト目までとを順次結合して前記メッセージの第1行目から第h行目までを作成する、請求項4又は5に記載の稼働状況取得方法(h及びwは、任意の自然数)。
【請求項7】
第1のコンピュータの稼働状況を取得するためのプログラムであって、第2のコンピュータを、
第1のコンピュータの画面に出力されるメッセージを画面単位で受信可能な画面受信部、
前記画面受信部が受信した画面を一行毎に分解して、不要な行を削除するメッセージ整形部、
前記メッセージ整形部が作成したメッセージのうち外部ツールに前回送ったメッセージ中に含まれる重複部分を削除する重複削除処理部、として機能させる稼働状況取得プログラム。
【請求項8】
前記重複削除処理部を、
前記外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶する最終行記憶部、
前記最終行記憶部に記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第1行目から順次比較する比較部、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第1行目から前回メッセージ最終行と同じ内容の行までを削除し、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しない重複行削除部、として機能させる請求項7記載の稼働状況取得プログラム。
【請求項9】
第1のコンピュータの画面縦サイズがhバイトで、横サイズがwバイトであって、第1のコンピュータから出力されるメッセージの1行の長さが、wバイトを超える場合に、
前記画面受信部に、
前記メッセージの第1行目から第h行目までの各行の第1バイト目から第wバイト目までを、第1のオフセット値以降に順次記憶させ、
前記メッセージの第1行目から第h行目までの各行の第(w+1)バイト目から第(2×w)バイト目までを、第2のオフセット値以降に順次記憶させ、
前記メッセージ整形部に、
前記第1のオフセット値以降に記憶されている前記メッセージの各行の第1バイト目から第wバイト目までと、前記第2のオフセット値以降に記憶されている前記メッセージの各行の第(w+1)バイト目から第(2×w)バイト目までとを順次結合して前記メッセージの第1行目から第h行目までを作成させる、請求項7又は8に記載の稼働状況取得プログラム(h及びwは、任意の自然数)。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6−1】
image rotate

【図6−2】
image rotate

【図7】
image rotate


【公開番号】特開2006−85644(P2006−85644A)
【公開日】平成18年3月30日(2006.3.30)
【国際特許分類】
【出願番号】特願2004−272476(P2004−272476)
【出願日】平成16年9月17日(2004.9.17)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
2.WINDOWS
3.フロッピー
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】