JP7242744B2 - マイグレーション支援方法及びシステム - Google Patents

マイグレーション支援方法及びシステム Download PDF

Info

Publication number
JP7242744B2
JP7242744B2 JP2021067737A JP2021067737A JP7242744B2 JP 7242744 B2 JP7242744 B2 JP 7242744B2 JP 2021067737 A JP2021067737 A JP 2021067737A JP 2021067737 A JP2021067737 A JP 2021067737A JP 7242744 B2 JP7242744 B2 JP 7242744B2
Authority
JP
Japan
Prior art keywords
job
job step
current
journal
match determination
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.)
Active
Application number
JP2021067737A
Other languages
English (en)
Other versions
JP2022162755A (ja
Inventor
匠一朗 堀場
圭人 秋元
寛 鈴木
千江子 秋葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021067737A priority Critical patent/JP7242744B2/ja
Priority to US17/688,204 priority patent/US20220327023A1/en
Publication of JP2022162755A publication Critical patent/JP2022162755A/ja
Application granted granted Critical
Publication of JP7242744B2 publication Critical patent/JP7242744B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2066Optimisation of the communication load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、概して、マイグレーションを支援する技術に関する。
従来、コンピュータプログラムをメインフレームシステムからオープンシステムにマイグレーションする技術が知られている(例えば特許文献1)。
特開2019-109584号公報
メインフレームシステムからオープンシステムへのマイグレーションの対象が、バッチジョブのようなジョブであるケースがある。マイグレーションが完了したら、ハードウェア運用コストの削減のために、マイグレーション元のメインフレームシステムを不要とする(例えば撤去する)ことが望ましい。
ジョブのマイグレーションの完了とするためには、マイグレーションされたジョブがオープンシステムで正しく動作することの検証がなされている必要がある。ジョブの検証には、ジョブの規模(例えば、ジョブを構成するジョブステップの数)やジョブに含まれるジョブステップの実行時間によっては長い時間を要する(例えば、数千~数万個のジョブステップといった多数のジョブステップから構成されるジョブや、長時間にわたって実行されるジョブステップを含んだジョブについては、検証に長い時間を要する)。ジョブステップの異常終了や最終的な実行結果の不一致によりジョブ全体を最初から再検証することが生じると、オーバヘッドが大きい。このため、ジョブのマイグレーションの完了が遅延し、結果として、メインフレームシステムを不要にできない期間が長くなる。
オープンシステムにメインフレームシステムの第1のCPR(Check Point Restart)部(CPR機能)相当の機能として第2のCPR部が実装される。メインフレームシステムからオープンシステムへのマイグレーション対象のジョブを構成するジョブステップ毎に、メインフレームシステムが、当該ジョブステップを実行した場合に第1のCPR部によりジョブジャーナルを出力し、オープンシステムが、メインフレームシステムからマイグレーションされた当該ジョブステップを実行した場合に、第2のCPR部によりジョブジャーナルを出力し、それぞれ出力されたジョブジャーナル同士が比較される。
本発明によれば、マイグレーションされたジョブを最初から再検証することを不要にできる。
第1の実施形態に係るジョブマイグレーション支援システムを含むシステム全体の構成例を示す。 現新比較管理テーブル及びジョブジャーナルの構成例を示す。 第1の実施形態に係るシステムの構成例を示す。 メインフレームシステムが行うジョブ実行制御処理の流れの一例を示す。 メインフレームシステムが行う現新比較検証処理の流れの一例を示す。 オープンシステムが行うジョブ実行制御処理の流れの一例の一部を示す。 オープンシステムが行うジョブ実行制御処理の流れの一例の残りを示す。 オープンシステムが行う状態復元処理の流れの一例を示す。 オープンシステムが行うデータセット再構築処理の流れの一例を示す。 オープンシステムが行う状態構築処理の流れの一例を示す。 オープンシステムが行う改修プログラムの登録処理の流れの一例を示す。 プログラム改修の流れの一例を示す。
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
また、以下の説明では、各要素の「識別情報」として、名前が採用されるが、名前に代えて又は加えて、他種の情報(例えばID)が採用されてよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。また、以下の説明では、名前“xxx”の要素XXを、当該要素の参照符号に代えて又は加えて、「XX“xxx”」と称することがある。
また、以下の説明では、「データセット」とは、アプリケーションプログラムのようなプログラムから見た一つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプル等のうちのいずれでもよい。
以下、幾つかの実施形態を説明する。
[第1の実施形態]
図1は、第1の実施形態に係るマイグレーション支援システムを含むシステム全体の構成例を示す。図1の説明では、マイグレーション対象のジョブとして、ジョブ“JOB01”を例に取る。
メインフレームシステム100からオープンシステム150へジョブ“JOB01”のマイグレーションが行われる。ジョブ“JOB01”は、複数のジョブステップで構成される。ジョブステップには、一つ又は複数のコンピュータプログラムが関連付けられる。本実施形態では、ジョブステップとコンピュータプログラムが1:1で対応していてよい。複数のジョブステップの実行順序は、本実施形態ではシーケンシャルであるが、一部の二個以上のジョブステップの実行順番が同じ順番でもよい。
メインフレームシステム100からオープンシステム150へのジョブ“JOB01”のマイグレーション完了のために、オープンシステム150にマイグレーションされたジョブ“JOB01”の検証が必要である。以下の説明では、メインフレームシステム100におけるジョブ“JOB01”(第1のジョブの一例)を構成する複数のジョブステップの各々を「第1のジョブステップ」と言い、オープンシステム150におけるジョブ“JOB01”(第2のジョブの一例)を構成する複数のジョブステップの各々を「第2のジョブステップ」と言うことがある。第1のジョブステップと第2のジョブステップは1:1で対応する。第1のジョブステップがメインフレームシステム100からオープンシステム150にマイグレーションされたものが第2のジョブステップである。
メインフレームシステム100は、第1のジョブ実行部111、第1のCPR(Check Point Restart)部112、及び第1のデータ管理部113を有する。第1のジョブ実行部111が、第1のジョブステップ単位でジョブ“JOB01”を実行する。第1のCPR部112が、メインフレームシステム100が有するCPR機能に相当する。第1のデータ管理部113は、メインフレームシステム100が入出力するデータセットを管理する。第1のデータ管理部113が、第1の現新比較部116と第1のデータ変換部117とを有する。第1の現新比較部116と第1のデータ変換部117の詳細は後述する。なお、第1の現新比較部116は、メインフレームシステム100に代えてオープンシステム150に備えられてもよい。また、第1のデータ変換部117と後述の第2のデータ変換部167のうちの一方は無くてもよい。
オープンシステム150は、第2のジョブ実行部161、第2のCPR部162、及び第2のデータ管理部163を有する。第2のジョブ実行部161が、第2のジョブステップ単位でジョブ“JOB01”を実行する。第2のCPR部162が、CPR機能相当の機能である。つまり、本実施形態では、オープンシステム150に、CPR機能相当の機能が実装される。第2のデータ管理部163は、オープンシステム150が入出力するデータセットを管理する。第2のデータ管理部163が、第2の現新比較部166と第2のデータ変換部167とを有する。第2の現新比較部166と第2のデータ変換部167の詳細は後述する。
メインフレームシステム100及びオープンシステム150にコンソール190(例えば、入出力装置としての計算機)が接続される。コンソール190に、マイグレーション失敗の第2のジョブステップの通知がされてよい。コンソール190から、改修された第2のジョブステップが入力されてよい。
メインフレームシステム100及びオープンシステム150に、ボリューム120、170及び180が提供される。「ボリューム」は、論理ボリューム(記憶空間の一例)の略である。
ボリューム120は、メインフレームシステム100でのジョブ“JOB01”の実行において入出力されるデータセットが格納されるボリュームである。ボリューム120は、メインフレームシステム100がアクセス可能であるがオープンシステム150がアクセス不可のボリュームでもよい。
ボリューム170は、オープンシステム150でのジョブ“JOB01”の実行において入出力されるデータセットが格納されるボリュームである。ボリューム170は、オープンシステム150がアクセス可能であるがメインフレームシステム100がアクセス不可のボリュームでもよい。
ボリューム180は、メインフレームシステム100とオープンシステム150との共有の記憶空間の一例である。便宜上、以下の説明では、「ボリューム180」を「共有ディスク180」と称する。共有ディスク180に、現新比較管理テーブル181と、メインフレームシステム100のジョブジャーナル183Aと、オープンシステム150のジョブジャーナル183Bと、メインフレームシステム100のメモリレジスタ管理テーブル185Aと、オープンシステム150のメモリレジスタ管理テーブル185Bとが格納されるようになっている。メモリレジスタ管理テーブル185には、メモリレジスタ情報(メモリの情報とレジスタの情報とを含んだ情報)が格納される。なお、ジョブジャーナル183及びメモリレジスタ管理テーブル185のうち少なくともジョブジャーナル183は、共有ディスク180以外の記憶空間に格納されてもよい。例えば、ジョブジャーナル183Aは、ボリューム120に格納され、第2のジョブステップのジョブジャーナル183Bは、ボリューム170に格納されてよい。
現新比較管理テーブル181は、図2に例示するように、ジョブステップペア毎に、エントリを持つ。各エントリは、下記の情報を含む。なお、本実施形態において「ジョブステップペア」とは、第1のジョブステップと第2のジョブステップとのペアのうち、特に、それぞれリスタート(典型的にはRDオペランドに“RESTART”)が指定されている第1のジョブステップと第2のジョブステップとのペアである。
・ジョブ名:当該ジョブステップペアが属するジョブステップを有するジョブの名前。
・ステップ名:当該ジョブステップペアが属するジョブステップの名前。
・PGM名:当該ジョブステップペアが属するジョブステップに関連付いたプログラムの名前。
・ジャーナル名(A):当該ジョブステップペアが属する第1のジョブステップのジョブジャーナルの名前。
・ジャーナル名(B):当該ジョブステップペアが属する第2のジョブステップのジョブジャーナルの名前。
・一致判定フラグ(図では「FLAG_X」):現新一致判定が行われたか否かを表すフラグ(一致判定情報の一例)。“ON”が、現新一致判定が行われたことを意味する値の一例であり、“OFF”が、現新一致判定が行われていないことを意味する値の一例である。
・改修フラグ((図では「FLAG_Y」:当該ジョブステップペアに属する第2のジョブステップの改修の要否を表すフラグ(改修情報の一例)。“ON”が、改修要を意味する値の一例であり、“OFF”が、改修不要を意味する値の一例である。
ジョブジャーナル183は、リスタートが指定されているジョブステップ毎のジャーナルである。ジョブジャーナル183Aが、第1のジョブステップのジョブジャーナルであり、ジョブジャーナル183Bが、第2のジョブステップのジョブジャーナルである。ジョブジャーナル183は、図2に例示するように、ジョブステップの実行において行われるデータ操作(例えば、入力及び出力)の対象となるデータセット毎にエントリを有する。各エントリは、下記の情報を含む。
・ジョブ名:当該ジョブステップを有するジョブの名前。
・ステップ名:当該ジョブステップの名前。
・VOL名:当該データセットが格納されるボリュームの名前。
・DS名:当該データセットの名前。
・DS状態:当該データセットの状態。例えば、DS状態の値として、“MOD”、“OLD”、“NEW”及び“SHR”がある。“MOD”は、データセットの拡張(例えば、追加書き)を意味する。“OLD”は、当該データセットが当該ジョブステップの開始前から既に存在することを意味する。“NEW”は、当該データセットが当該ジョブステップの実行において作成されたデータセットであることを意味する。“SHR”は、当該データセットが当該ジョブステップの開始前から存在し他のジョブから共有される(例えば同時に使用される)ことを意味する。
・データ操作:当該データセットが対象とされたデータ操作。
・DS値:当該データセットの値。
以下、本実施形態で行われる処理の一例を説明する。なお、本実施形態では、オープンシステム150が解釈可能な文字コードをメインフレームシステム100も解釈可能であるとする。そして、本実施形態では、必要に応じて、メインフレームシステム100が解釈可能な文字コードをオープンシステム150が解釈可能な文字コードに変換することである文字コード変換が、第1のデータ変換部117及び第2のデータ変換部167のうちの少なくとも一つにより行われるとする。
メインフレームシステム100においてジョブ“JOB01”に参照されるデータの複製がオープンシステムに150に入力されメインフレームシステム100でのジョブ“JOB01”とオープンシステム150でのジョブ“JOB01”との並行実行が行われる。本実施形態において、メインフレームシステム100が本番システムの一例であり、メインフレームシステム100でのジョブ“JOB01”に入力されるデータが本番データの一例である。オープンシステム150が検証システムの一例であり、オープンシステム150でのジョブ“JOB01”に入力されるデータ(本番データの複製)がダミーデータ(検証用データ)の一例である。
<1-1.メインフレームシステム100でのジョブステップ実行>
実行対象の第1のジョブステップが、RDオペランドに“RESTART”が指定された第1のジョブステップの一例である第1のジョブステップ“STEP02”の場合、以下の処理が行われる。
(1)第1のCPR部112が、第1のジョブステップ“STEP02”についてジョブジャーナル183Ab“JNLA002”と、第1のジョブステップ“STEP02”の開始時点のメモリレジスタ情報を共有ディスク180におけるメモリレジスタ管理テーブル185Aへ退避し、第1のジョブステップ“STEP02”の開始が待ちとなる。なお、本明細書において「メモリレジスタ」は、メモリとレジスタのうちの少なくとも一つでよく、メモリレジスタ情報は、メモリレジスタに格納されている情報の少なくとも一部を含んだ情報である。例えば、メモリレジスタには、実行中のジョブステップに対応し他プログラムのアドレスや、ジョブステップの実行に必要なデータ又はパラメタ及び当該データ又はパラメタへのポインタと、一時退避された入力値及び当該入力値へのポインタ等が格納されてよく、メモリレジスタ情報は、メモリレジスタに格納されるこれらの情報の少なくとも一部を含んでよい。状態復元後のジョブステップ再開始時にメモリレジスタ情報における当該ポインタに沿って情報を辿ることで、ジョブステップの開始に必要なデータを回復及び取得することができる。
(2)第1のCPR部112が、共有ディスク180における現新比較管理テーブル181に、当該第1のジョブステップのジョブ名“JOB01”、ステップ名“STEP02”、ジャーナル名(A)“JNLA002”を記録し、一致判定フラグを“OFF”且つ改修フラグを“OFF”とする。
(3)メインフレームシステム100(例えば第1の現新比較部116)が、オープンシステム150における第2のジョブステップ“STEP02”の実行開始の通知を受けた場合に、第1のジョブ実行部111が、第1のジョブステップ“STEP02”の実行を開始する。このようにして、ジョブステップ“STEP02”がメインフレームシステム100とオープンシステム150で並行実行される。第1のジョブステップ“STEP02”の実行に伴い、データセットがボリューム120に出力され、ジョブジャーナル183Abが更新される(図2参照)。
<1-2.オープンシステム150でのジョブステップ実行>
実行対象の第2のジョブステップが、第1のジョブステップ“STEP02”がマイグレーションされたジョブステップである第2のジョブステップ“STEP02”の場合、第2のジョブステップ“STEP02”についても、メインフレームシステム100と同様にRDオペランドがあり、且つ、RDオペランドに“RESTART”が指定されている。このような第2のジョブステップ“STEP02”が実行対象の場合、以下の処理が行われる。
(1)第2の現新比較部166が、共有ディスク180における現新比較管理テーブル181を参照し、第2のジョブステップ“STEP02”に対応した改修フラグが“OFF”か否かを判定する。
(2)改修フラグが“OFF”の場合、第2のジョブステップ“STEP02”の実行が開始される。具体的には、第2のCPR部162が実装されているため、第2のCPR部162が、第2のジョブステップ“STEP02”についてジョブジャーナル183Bb“JNLB002”を取得し、メモリレジスタ情報を共有ディスク180におけるメモリレジスタ管理テーブル185Bへ退避する。第2の現新比較部166が、第2のジョブステップ“STEP02”の実行開始の通知(例えば、第2のジョブステップ“STEP02”のジョブ名及びステップ名を含んだ通知)をメインフレームシステム100に送信する。第2のジョブステップ“STEP02”の実行に伴い、データセットがボリューム170(本番データセットが格納されるボリューム120とは異なるボリューム)に出力され、ジョブジャーナル183Bbが更新される(図2参照)。
(3)第2のジョブステップ“STEP02”の実行が終了した場合、第2の現新比較部166が、共有ディスク180における現新比較管理テーブル181を参照し、第2のジョブステップ“STEP02”に対応した一致判定フラグが“OFF”であり、且つ、第2のジョブステップ“STEP02”に対応したJNL名(A)の値が記録されている(つまり、第1のジョブステップ“STEP02”のジョブジャーナルがある)場合、第1の現新比較部116に現新比較指示(現新比較検証の指示)を送信する。当該現新比較指示には、例えば、ジョブ名“JOB01”及びステップ名“STEP02”が関連付けられる。
<2.現新比較検証>
第1の現新比較部116が、オープンシステム150からの現新比較指示に応答して、以下の処理が行われる。
(1)第1の現新比較部116が、ジョブ名“JOB01”及びステップ名“STEP02”に対応したジャーナル名(A)“JNLA002”及びジャーナル名(B)“JNLB002”を現新比較管理テーブル181から特定する。
(2)第1の現新比較部116が、第1の現新比較部116が、ジャーナル名(A)“JNLA002”のジョブジャーナル183Abと、ジャーナル名(B)“JNLB002”のジョブジャーナル183Bbとが一致か否かの判定である現新一致判定を行う。具体的には、ジョブジャーナル183Abの先頭エントリと、ジョブジャーナル183Bbの先頭エントリから順に、互いに対応するエントリが一致か否かが判定される。
<2-1.現新一致判定の結果が真の場合>
ジョブジャーナル183Abの全エントリとジョブジャーナル183Bbの全エントリがそれぞれ互いに一致する場合、現新一致判定の結果が真である。この場合、以下の処理が行われる。
(1)第1の現新比較部116が、ジョブ名“JOB01”及びステップ名“STEP02”に対応した一致判定フラグを“ON”に変更する。
(2)第1の現新比較部116が、ジョブ名“JOB01”及びステップ名“STEP02”に対応したジョブジャーナル183Ab及びジョブジャーナル183Bbを共有ディスク180から削除する。
この後、メインフレームシステム100及びオープンシステム150で次のジョブステップ“STEP03”の実行が開始される。メインフレームシステム100での次の第1のジョブステップ“STEP03”の実行は、<1-1.メインフレームシステム100でのジョブステップ実行>の通りであり、オープンシステム150での次の第2のジョブステップ“STEP03”の実行は、<1-2.オープンシステム150でのジョブステップ実行>の通りである。
<2-2.現新一致判定の結果が偽の場合>
ジョブジャーナル183Abとジョブジャーナル183Bb間に一致しないエントリが一つでもある場合、現新一致判定の結果が偽である。図2が示す例によれば、ジョブジャーナル183Abの末尾エントリにおけるデータセット値“44444444”と、ジョブジャーナル183Bbの末尾エントリにおけるデータセット値“33333333”とが異なっているため一致せず、故に、現新一致判定の結果が偽となる。この場合、以下の処理が行われる。以下の処理のうち、(1)乃至(3)が、失敗の第2のジョブステップ“STEP02”の開始時の状態を復元することであり、(4)及び(5)が、失敗の第2のジョブステップ“STEP02”の次の第2のジョブステップ“STEP03”の開始時の状態(言い換えれば、第2のジョブステップ“STEP02”が正常に終了した時の状態)を構築することである。
(1)第1の現新比較部116が、ジョブステップ“STEP02”の異常終了を示す通知をコンソール190へ出力し、ジョブ名“JOB01”及びステップ名“STEP02”に対応した改修フラグを“ON”に変更する。なお、当該通知を受けたコンソール190は、当該通知の内容を表す情報(ジョブステップ“STEP02”の異常終了)を表示することができる。当該情報を見たユーザが、第2のジョブステップ“STEP02”の異常を知ることができる。ユーザは、当該第2のジョブステップ“STEP02”に関連付いたプログラムの改修を行うことができる。
(2)第2の現新比較部166が、オープンシステム150へ、実行失敗したジョブステップのジョブ名“JOB01”及びステップ名“STEP02”を表す通知を送信する。
(3)第2のCPR部162が、当該通知に応答して、ジョブジャーナル183Bbを参照し、DS状態“MOD”、“OLD”又は“SHR”のデータセットをボリューム170に維持し(残し)、DS状態“NEW”(又は指定無し)のデータセットをボリューム170から削除する。第2のCPR部162が、ジョブジャーナル183Bbと維持されたデータセットとを基に、第2のジョブステップ“STEP02”の開始直前状態としてのデータセットを復元する(図1及び図2が示す例によれば、例えば、データセット“DATAF”の値“33333333”が“55555555”に復元される)。また、第2のCPR部162が、第2のジョブステップ“STEP02”の開始時に退避したメモリレジスタ情報をメモリレジスタ管理テーブル185Bから回復する。
(4)第2のCPR部162が、現新比較管理テーブル181から、失敗の第2のジョブステップ“STEP02”に対応した第1のジョブステップ“STEP02”の次の第1のジョブステップ“STEP03”について、第1のジョブステップ“STEP03”の開始時のジョブジャーナル183Ac(及び、メモリレジスタ情報)を特定する。
(5)第2のCPR部162が、第1のジョブステップ“STEP03”の開始時のジョブジャーナル183Ac(及びメモリレジスタ情報)と、第2のジョブステップ“STEP02”の復元された開始直前状態としてのデータセットとを基に、失敗の第2のジョブステップ“STEP02”の次の第2のジョブステップ“STEP03”の開始時の状態(言い換えれば、第2のジョブステップ“STEP02”が正常に終了した時の状態)としてのデータセットを構築する。図1及び図2が示す例によれば、例えば、データセット“DATAF”の復元された値“55555555”が“44444444”に構築される。
この後、メインフレームシステム100及びオープンシステム150で次のジョブステップ“STEP03”の実行が開始される。
<3.第2のジョブステップ(プログラム)の改修及び反映>
コンソール190のユーザは、通知された失敗の第2のジョブステップ“STEP02”のプログラムを改修し、改修したプログラムをオープンシステム150へ登録する。
オープンシステム150に改修されたプログラムが登録されると、第2の現新比較部166が、現新比較管理テーブル181の対象PGM名(改修されたプログラムの名前)に対応する改修フラグを“OFF”に変更する。
以上の処理により、現新比較管理テーブル181の全エントリの一致判定フラグが“ON”及び改修フラグが“OFF”であると、マイグレーションが完了したことになるため、メインフレームシステム100(及びボリューム120の基になるメインフレームシステム100用の永続記憶装置)を撤去することが可能となる。
以下、本実施形態をより詳細に説明する。
図3は、第1の実施形態に係るシステムの構成例を示す。
ネットワーク390に、メインフレームシステム100、オープンシステム150及び外部記憶装置50が接続される。ネットワーク390は、例えば、WAN(Wide Area Network)又はLAN(Local Area Network)である。
メインフレームシステム100は、計算機システム(一つ以上の計算機)であり、インターフェース装置21、記憶装置22及びそれらに接続されたプロセッサ23を備える。インターフェース装置21が、ネットワーク390に接続される。記憶装置22が、メモリを含む。プロセッサ23が、OS(Operating System)114及び他のソフトウェアを実行する。これにより、第1のジョブ実行部111、第1のCPR部112及び第1のデータ管理部113(第1の現新比較部116及び第1のデータ変換部117)といった機能が実現される。
オープンシステム150は、計算機システム(一つ以上の計算機)であり、インターフェース装置71、記憶装置72及びそれらに接続されたプロセッサ73を備える。インターフェース装置71が、ネットワーク390に接続される。記憶装置72が、メモリを含む。プロセッサ73が、OS164及び他のソフトウェアを実行する。これにより、第2のジョブ実行部161、第2のCPR部162及び第2のデータ管理部163(第2の現新比較部166及び第2のデータ変換部167)といった機能が実現される。
外部記憶装置50は、永続記憶装置を含み、永続記憶装置に基づくボリューム120、170及び180を提供する装置である。ボリューム120は、少なくともメインフレームシステム100からアクセス可能であり、ボリューム170は、少なくともオープンシステム150からアクセス可能であり、ボリューム180(共有ディスク180)は、メインフレームシステム100及びオープンシステム150のいずれからもアクセス可能である。ボリュームは、例えば、クラウドコンピューティングサービスとして提供されてもよい。
以下、本実施形態で行われる処理の詳細の一例を説明する。マイグレーション対象のジョブとして上述のジョブ“JOB01”を例に取る。メインフレームシステム100に、ジョブ“JOB01”に参照されるデータ(本番データ)が入力され、当該データの複製(ダミーデータ)がオープンシステム150に入力され、メインフレームシステム100でのジョブ“JOB01”とオープンシステム150でのジョブ“JOB01”との並行実行が行われる。
図4は、メインフレームシステム100が行うジョブ実行制御処理の流れの一例を示す。
第1のジョブ実行部111が、実行すべき第1のジョブステップを決定する(S401)。S401で決定されたジョブステップを、以下、便宜上、「対象第1ジョブステップ」と言う。
第1のジョブ実行部111が、対象第1ジョブステップのRDオペランドを確認する(S402)。RDオペランドが“RESTART”でなければ(S403:NO)、処理がS413に進む。
RDオペランドが“RESTART”であれば(S403:YES)、第1のジョブ実行部111が、第1のCPR部112に、対象第1ジョブステップのジョブジャーナルの取得を指示する(S404)。当該指示に応答して、第1のCPR部112が、対象第1ジョブステップのジョブジャーナルを共有ディスク180に取得(格納)する(S405)。また、第1のCPR部112が、現新比較管理テーブル181に、ジョブ名“JOB01”、ステップ名(対象第1ジョブステップの名前)、及び、ジャーナル名(A)(当該ジョブジャーナルの名前)を記録する(S406)。なお、対象第1ジョブステップについて、現新一致フラグは“OFF”であり、改修フラグも“OFF”である。
第1の現新比較部116が、対象第1ジョブステップに対応した(対象第1ジョブステップがマイグレーションされた)第2のジョブステップである対象第2ジョブステップの実行が開始されたか否かを判定する(S407)。S407の判定結果が真となるまで、対象第1ジョブステップは実行開始待ちとなる。S407の判定結果は、対象第2ジョブステップの実行開始の通知がオープンシステム150から受信された場合に(対象第2ジョブステップについて図6のS608が行われた場合に)、真となる。
S407の判定結果が真の場合(S407:YES)、第1のジョブ実行部111が、第1のジョブ実行部111に(つまり内部的に)、対象第1ジョブステップの実行を指示する(S408)。
当該指示に応答して、第1のジョブ実行部111が、対象第1ジョブステップを実行する。当該実行に伴い、例えばデータ操作毎に、第1のジョブ実行部111が、当該データ操作が“更新”であれば(S409:YES)、本番データ(正確には、本番データ中のデータセット)を更新し(S410)、第1のCPR部112が、対象第1ジョブステップのジョブジャーナルを更新する(S411)。当該データ操作が“更新”でなければ(S409:NO)、S410がスキップされS411が行われる。このようにして、データ操作毎に、対象第1ジョブステップのジョブジャーナルにエントリが存在することになる。対象第1ジョブステップが完了していなければ(S412:NO)、残りについてS409が行われる。
対象第1ジョブステップが完了した場合(S412:YES)、第1のジョブ実行部111が、ジョブ“JOB01”の全ての第1のジョブステップについてS401以降の処理が行われたか否かを判定する(S413)。S413の判定結果が偽の場合(S413:NO)、未処理の第1のジョブステップについてS401が行われる。S413の判定結果が真の場合(S413:YES)、処理が終了する。
図5は、メインフレームシステム100が行う現新比較検証処理の流れの一例を示す。
第1の現新比較部116が、比較対象のジョブジャーナル183A及び183Bを特定する(S501)。例えば、現新比較検証処理は、オープンシステム150からの現新比較指示(図7のS703で送信された指示)に応答して行われるが、当該現新比較指示に、ジョブ名及びステップ名が関連付けられている。第1の現新比較部116は、当該現新比較指示に関連付けられているジョブ名及びステップ名をキーに現新比較管理テーブル181からジャーナル名(A)及びジャーナル名(B)を特定し、特定したジャーナル名(A)及びジャーナル名(B)から、比較対象のジョブジャーナル183A及び183Bを特定する。
第1の現新比較部116が、S501で特定されたジョブジャーナル183A及び183Bの文字コード等が異なるか否かを判定する(S502)。S502の判定結果が真の場合(S502:YES)、第1の現新比較部116が、第1のデータ変換部117に、変換処理を指示する(S503)。当該指示に応答して、第1のデータ変換部117が、ジョブジャーナル183Aの文字コード等をオープンシステム用の文字コード等に変換する。メインフレームシステム100とオープンシステム150ではデータの保存形式や文字コード等が異なることがあるが、第1のデータ変換部117により、メインフレームシステム100の文字コード等がオープンシステム150の文字コード等に変換される。第1の現新比較部116が、文字コード等が変換されたジョブジャーナル183Aを参照し(S504)、ジョブジャーナル183Aをジョブジャーナル183Bと比較する。つまり、ジョブジャーナル183Aとジョブジャーナル183Bが一致か否かの現新一致判定が行われる(S505)。
現新一致判定の結果が真の場合(S506:YES)、第1の現新比較部116が、S501で特定されたジョブジャーナル183A及び183Bに対応した一致判定フラグを“ON”に更新する(S510)。また、第1の現新比較部116が、S501で特定されたジョブジャーナル183A及び183Bを共有ディスク180から削除する(S511)。
現新一致判定の結果が偽の場合(S506:NO)、第1の現新比較部116が、S501で特定されたジョブジャーナル183Bに対応した失敗の第2のジョブステップの情報(例えば、ジョブ名及びステップ名を含んだ情報)をコンソール190に出力する(S509)。第1の現新比較部116が、失敗の第2のジョブステップに対応した改修フラグを“ON”に更新する(S510)。第1の現新比較部116が、失敗の第2のジョブステップの開始時に状態を復元することの状態復元指示を、オープンシステム150に送信する(S511)。
図6及び図7は、オープンシステム150が行うジョブ実行制御処理の流れの一例を示す。
第2のジョブ実行部161が、実行すべき第2のジョブステップを決定する(S601)。ここでは、対象第1ジョブステップに対応した第2のジョブステップである対象第2ジョブステップが決定されたとする。
第2のジョブ実行部161が、対象第2ジョブステップに対応した改修フラグが“OFF”か否かを判定する(S602)。
S602の判定結果が真の場合(S602:YES)、第2のジョブ実行部161が、対象第2ジョブステップのRDオペランドを確認する(S602)。RDオペランドが“RESTART”でなければ(S604:NO)、処理がS705に進む。
RDオペランドが“RESTART”であれば(S604:YES)、第2のジョブ実行部161が、第2のCPR部162に(つまり内部的に)、対象第2ジョブステップのジョブジャーナルの取得を指示する(S605)。当該指示に応答して、第2のCPR部162が、対象第2ジョブステップのジョブジャーナルを共有ディスク180に取得(格納)する(S606)。また、第2のCPR部162が、現新比較管理テーブル181に、ジョブ名“JOB01”、ステップ名(対象第2ジョブステップの名前)、及び、ジャーナル名(B)(当該ジョブジャーナルの名前)を記録する(S607)。第2の現新比較部166が、対象第2ジョブステップの実行開始の通知(例えば、対象第2ジョブステップのジョブ名及びステップ名を含んだ通知)をメインフレームシステム100に送信する(S608)。第2のデータ管理部163が、第2のジョブ実行部161に、対象第2ジョブステップの実行を指示する(S609)。
当該指示に応答して、第2のジョブ実行部161が、対象第2ジョブステップを実行する。当該実行に伴い、例えばデータ操作毎に、第2のジョブ実行部161が、当該データ操作が“更新”であれば(S610:YES)、ダミーデータ(正確には、ダミーデータ中のデータセット)を更新し(S611)、第2のCPR部162が、対象第2ジョブステップのジョブジャーナルを更新する(S612)。当該データ操作が“更新”でなければ(S610:NO)、S611がスキップされS612が行われる。このようにして、データ操作毎に、対象第2ジョブステップのジョブジャーナルにエントリが存在することになる。対象第2ジョブステップが完了していなければ(S613:NO)、残りについてS610が行われる。
対象第2ジョブステップが完了した場合(S613:YES)、第2の現新比較部166が、対象第2ジョブステップに対応した一致判定フラグが“OFF”か否かを判定する(S701)。S701の判定結果が偽の場合(S701:NO)、処理がS705に進む。
S701の判定結果が真の場合(S701:YES)、第2の現新比較部166が、対象第2ジョブステップに対応したジャーナル名(A)があるか否か(対象第1ジョブステップのジョブジャーナルがあるか否か)を判定する(S702)。S702の判定結果が偽の場合(S702:NO)、一定時間後にS702が再度行われる。
S702の判定結果が真の場合(S702:YES)、第2の現新比較部166が、現新比較指示(対象第2ジョブステップに対応したジョブ名及びステップ名が関連付けられた指示)を、メインフレームシステム100に送信する(S703)。
第2のジョブ実行部161が、ジョブ“JOB01”の全ての第2のジョブステップについてS601以降の処理が行われたか否かを判定する(S704)。S704の判定結果が偽の場合(S704:NO)、未処理の第2のジョブステップについてS601が行われる。
S704の判定結果が真の場合(S704:YES)、第2のデータ管理部163(例えば、第2の現新比較部166)が、現新比較管理テーブル181の全エントリの一致判定フラグが“ON”か否かを判定する(S705)。S705の判定結果が偽の場合(S705:NO)、処理がS601に戻る。S705の判定結果が真の場合(S705:YES)、メインフレームシステム100の撤去が行われてよい(S706)。例えば、第2の現新比較部166が、コンソール190に、マイグレーション完了を表す情報を出力し、マイグレーション完了を知ったユーザにより、メインフレームシステム100の撤去が行われてよい。また、S705の判定は、オープンシステム150に代えてメインフレームシステム100(例えば第1の現新比較部116)により行われてもよい。
図8は、オープンシステム150が行う状態復元処理の流れの一例を示す。
図5のS511で送信された状態復元指示をオープンシステム150が受信した場合に状態復元処理が開始される。状態復元指示では、失敗の第2のジョブステップのジョブ名及びステップ名が関連付けられている。
第2のCPR部162が、状態復元指示から、失敗の(状態復元対象となる)第2のジョブステップを特定し、現新比較管理テーブル181から、特定した第2のジョブステップのジョブジャーナルを特定する(S801)。
第2のCPR部162が、S801で特定したジョブジャーナルを用いて、データセット再構築処理を行う(S802)。その後、第2のCPR部162が、状態構築処理を行う(S803)。
図9は、オープンシステム150が行うデータセット再構築処理の流れの一例を示す。
第2のCPR部162が、S801で特定したジョブジャーナルから、S901が未だ行われていないデータセットから一つのデータセットを決定し(S901)、決定されたデータセットのDS状態を特定する(S902)。
第2のCPR部162は、S902で特定されたDS状態が“MOD”、“OLD”又は“SHR”である場合(S903:YES)、S901で決定されたデータセットを維持する(S904)。一方、第2のCPR部162は、S902で特定されたDS状態が“NEW”(又は指定無し)である場合(S903:NO)、S901で決定されたデータセットを削除する(S905)。
第2のCPR部162が、S801で特定したジョブジャーナルが表す全データセットについてS901以降の処理を行ったか否かを判定する(S906)。S906の判定結果が偽の場合(S906:NO)、処理がS901に戻る。S906の判定結果が真の場合(S906:YES)、データセット再構築処理が終了する。
図10は、オープンシステム150が行う状態構築処理の流れの一例を示す。
第2のCPR部162が、失敗の第2のジョブステップに対応した第1のジョブステップの次の第1のジョブステップのジョブジャーナルがメインフレームシステム100により取得されたか(失敗の第2のジョブステップの次のジョブステップに対応したジャーナル名(A)の値があるか)否かを判定する(S1001)。
S1001の判定結果が真の場合(S1001:YES)、第2のCPR部162が、上記次の第1のジョブステップのジョブジャーナル183Aを共有ディスク180から特定する(S1002)。第2のCPR部162が、S1002で特定されたジョブジャーナル183Aの文字コード等がオープンシステム150のジョブジャーナル183Bの文字コード等と異なるか否かを判定する(S1003)。S1003の判定結果が真の場合(S1003:YES)、第2のCPR部162が、第2のデータ変換部167に、変換処理を指示する(S1004)。当該指示に応答して、第2のデータ変換部167が、S1002で特定されたジョブジャーナル183Aの文字コード等をオープンシステム用の文字コード等に変換する。第2のCPR部162が、文字コード等が変換されたジョブジャーナル183A(S1002で特定されたジョブジャーナル183A)を参照し(S1005)、当該ジョブジャーナル183Aと、上記失敗の第2のジョブステップの開始時の状態(データセット)とを基に、上記次の第1のジョブステップに対応した第2のジョブステップの開始時の状態(上記失敗の第2のジョブステップが正常に終了した時の状態)としてのデータセットを構築する(S1006)。
図11は、オープンシステム150が行う改修プログラムの登録処理の流れの一例を示す。
失敗の第2のジョブステップの改修プログラム(改修されたプログラム)が登録された場合、第2のデータ管理部163(例えば第2の現新比較部166)が、当該第2のジョブステップに対応した一致判定フラグを“OFF”に更新し且つ当該第2のジョブステップに対応した改修フラグを“OFF”に更新する(S1101)。
図12は、プログラム改修の流れの一例を示す。
コンソール190に表示された情報(失敗の第2のジョブステップの通知)を見たユーザが、失敗の第2のジョブステップのプログラムを改修し(S1201)、改修されたプログラムをオープンシステム150に登録する。
以上が、第1の実施形態の説明である。
[第2の実施形態]
第2の実施形態を説明する。その際、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については説明を省略又は簡略する。
第2の実施形態では、メインフレームシステム100で全第1のジョブステップのジョブジャーナル183Aが取得された後に、オープンシステム150で本番運用が開始される。すなわち、第2の実施形態では、オープンシステム150が本番システムの一例である。
オープンシステム150において第2のジョブステップの実行に失敗した場合には、当該失敗の第2のジョブステップに対応した第1のジョブステップをメインフレームシステム100が実行する。つまり、オープンシステム150でジョブステップの実行に失敗があった場合にはメインフレームシステム100が当該ジョブステップを代行する。
なお、第2の実施形態では、現新比較検証処理は、メインフレームシステム100とオープンシステム150のいずれで行われてもよいが、オープンシステム150の本番運用優先のためにメインフレームシステム100が現新比較検証処理を行ってもよい。
また、オープンシステム150では、第2のジョブステップのジョブジャーナルについて現新一致判定が済むまで、当該第2のジョブステップの次の第2のジョブステップの実行開始が待たされてよい。
以上が、第2の実施形態の説明である。
以上の説明を、例えば、下記のように総括することができる。なお、下記の総括は、上述の説明の補足又は変形例の説明を含んでよい。
マイグレーション支援システムが、第1の現新比較部116と第2のCPR部162とを備える。第1の現新比較部116は、メインフレームシステム100及びオープンシステム150のいずれに備えられてもよい。第2のCPR部162は、メインフレームシステム100の第1のCPR部112(CPR機能)相当の機能である。メインフレームシステム100が、第1のジョブ(例えばジョブ“JOB01”)を構成する第1のジョブステップ毎に、当該第1のジョブステップ(例えばRDオペランド)にリスタートが指定されている場合、当該第1のジョブステップのデータ操作とデータ操作毎のデータセットとを表すジョブジャーナルを第1のCPR部112により出力するようになっている。第1のジョブがマイグレーションされた第2のジョブ(例えばジョブ“JOB01”)を構成する第2のジョブステップ毎に、当該第2のジョブステップにリスタートが指定されている場合、第2のCPR部162が、当該第2のジョブステップのデータ操作とデータ操作毎のデータセットとを表すジョブジャーナルを出力する。第1の現新比較部116が、それぞれリスタートが指定されており対応した第1のジョブステップと第2のジョブステップとのペアであるジョブステップペア毎に、当該第1のジョブステップと当該第2のジョブステップのジョブジャーナルとが一致か否かの判定である現新一致判定を行い、当該現新一致判定の結果に応じた処理を行う。
第2のCPR部162がオープンシステム150に備えられるため、オープンシステム150も、メインフレームシステム100と同様に、ジョブステップ毎にジョブジャーナルを出力する。一般に、ジョブジャーナルは、ジョブステップ開始時の状態(データセット)の回復のために使用されるが、上述の実施形態では、ジョブステップに対する入出力の現新比較検証のために使用される。これにより、ジョブステップ単位で検証が可能となり、マイグレーションされたジョブを最初から再検証することが不要になる。結果として、マイグレーション完了までの時間が短くて済み、メインフレームシステム100のコストを削減することができる。
現新一致判定の結果が偽の場合(図5のS506:NO)、現新一致判定の結果に応じた処理は、ジョブステップペアに属する第2のジョブステップである失敗の第2のジョブステップを第2のCPR部162に通知することを含んでよい。第2のCPR部162が、図8に示したように、当該失敗の第2のジョブステップのジョブジャーナルを基に、当該第2のジョブステップの開始前の状態としてのデータセットを復元してよい。このようにして、失敗の第2のジョブステップの開始時の状態を復元することができる。
また、現新一致判定の結果が偽の場合(図5のS506:NO)、第2のCPR部162が、失敗の第2のジョブステップに対応した第1のジョブステップの次の第1のジョブステップの開始時のジョブジャーナルを取得し、当該取得されたジョブジャーナルと上記復元されたデータセットとを基に、当該次の第1のジョブステップに対応し失敗の第2のジョブステップの次の第2のジョブステップの開始時の状態としてのデータセットを構築してよい。オープンシステム150が、当該構築されたデータセットを基に、当該次の第2のジョブステップを開始してよい。このようにして、失敗のジョブステップが正常に完了したとして次のジョブステップからジョブを継続することができる。
メインフレームシステム100とオープンシステム150でジョブが並行実行されてよく、並行実行において、ジョブステップペア毎に、第2の現新比較部166が、当該ジョブステップペアに属する第2のジョブステップのジョブジャーナルを取得した場合に、当該第2のジョブステップの実行開始をメインフレームシステム100に通知してよい(図6のS608)。メインフレームシステム100が、当該ジョブステップペアに属する第1のジョブステップのジョブジャーナルを取得して、当該第1のジョブステップの実行開始を待ち、当該第2のジョブステップの実行開始の通知を受けた場合に(図4のS407:YES)、当該ジョブステップペアに属する第1のジョブステップの実行を開始してよい。現新比較検証では、同一入力に対して同一結果が出力されることが確認されるが、第1の実施形態のように、メインフレームシステム100とオープンシステム150でのジョブ並行実行において(つまりジョブを止めずに)、現新一致判定の結果として一致が得られたジョブステップからマイグレーションを完了することができる。
メインフレームシステム100とオープンシステム150との共有の記憶空間(例えば共有ディスク180)が、ジョブステップペア毎に、当該ジョブステップペアに属する第2のジョブステップの改修の要否を表す情報である改修情報(例えば改修フラグ)と、現新一致判定が行われたか否かを表す情報である一致判定情報(例えば一致判定フラグ)とを記憶する。これにより、共有の記憶空間を参照することで、ジョブステップペアについて現新一致判定が済んだか否か及びその判定の結果を特定することができる。
ジョブステップペア毎に、下記が行われてよい。このようにして、一致判定情報の値又は改修情報の値を基にマイグレーション支援を行うことができる。
・改修情報の値が、改修不要を意味する値の場合に(図6のS602:YES)、オープンシステム150が、当該第2のジョブステップを実行してよい。
・一致判定情報の値が、現新一致判定が行われていないことを意味する値の場合に(図7のS701:YES)、第1の現新比較部116が、現新一致判定を行い(図5のS505)、一致判定情報の値を、現新一致判定が行われたことを意味する値に更新してよい(図5のS510)。
・現新一致判定の結果が偽の場合(図5のS506:NO)、現新一致判定の結果に応じた処理は、失敗の第2のジョブステップをコンソールに通知する(図5のS509)ことと、改修情報の値を、改修要を意味する値に更新する(図5のS510)こととを含んでよい。
・失敗の第2のジョブステップが改修された場合に、第2の現新比較部166が、一致判定情報を、現新一致判定が行われていないことを意味する値に更新し、改修情報の値を、改修不要を意味する値に更新してよい(図11のS1101)。
現新一致判定の結果が真の場合(図5のS506:YES)、現新一致判定の結果に応じた処理は、当該ジョブステップペアに属する第1のジョブステップのジョブジャーナルと当該ジョブステップペアに属する第2のジョブステップのジョブジャーナルとを削除することを含んでよい。これにより、ボリューム180の消費量(消費される記憶容量)を削減することができる。
以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
100:メインフレームシステム、 150:オープンシステム

Claims (14)

  1. 第1のCPR(Check Point Restart)部を有し第1のジョブを実行するメインフレームシステムと、前記第1のジョブがマイグレーションされたジョブである第2のジョブを実行するオープンシステムとのうちのいずれかに備えられた第1の現新比較部と、
    前記オープンシステムに備えられた第2のCPR(Check Point Restart)部と
    を有し、
    前記第1のジョブは、複数の第1のジョブステップで構成されており、
    前記第2のジョブは、前記複数の第1のジョブステップにそれぞれ対応した複数の第2のジョブステップで構成されており、
    前記メインフレームシステムが、第1のジョブステップ毎に、当該第1のジョブステップにリスタートが指定されている場合、当該第1のジョブステップのデータ操作とデータ操作毎のデータセットとを表すジョブジャーナルを前記第1のCPR部により出力するようになっており、
    前記オープンシステムが、第2のジョブステップ毎に、当該第2のジョブステップにリスタートが指定されている場合、当該第2のジョブステップのデータ操作とデータ操作毎のデータセットとを表すジョブジャーナルを前記第2のCPR部により出力し、
    前記第1の現新比較部が、それぞれリスタートが指定されており対応した第1のジョブステップと第2のジョブステップとのペアであるジョブステップペア毎に、
    当該第1のジョブステップのジョブジャーナルと当該第2のジョブステップのジョブジャーナルとが一致か否かの判定である現新一致判定を行い、
    当該現新一致判定の結果に応じた処理を行う、
    ジョブマイグレーション支援システム。
  2. 前記現新一致判定の結果が偽の場合、
    前記現新一致判定の結果に応じた処理は、当該ジョブステップペアに属する第2のジョブステップである失敗の第2のジョブステップを前記第2のCPR部に通知することを含み、
    前記第2のCPR部が、当該失敗の第2のジョブステップのジョブジャーナルを基に、当該第2のジョブステップの開始前の状態としてのデータセットを復元する、
    請求項1に記載のジョブマイグレーション支援システム。
  3. 前記現新一致判定の結果が偽の場合、
    前記第2のCPR部が、前記失敗の第2のジョブステップに対応した第1のジョブステップの次の第1のジョブステップの開始時のジョブジャーナルを取得し、
    前記第2のCPR部が、当該取得されたジョブジャーナルと前記復元されたデータセットとを基に、当該次の第1のジョブステップに対応し前記失敗の第2のジョブステップの次の第2のジョブステップの開始時の状態としてのデータセットを構築し、
    前記オープンシステムが、当該構築されたデータセットを基に、当該次の第2のジョブステップを開始する、
    請求項2に記載のジョブマイグレーション支援システム。
  4. 前記オープンシステムに、第2の現新比較部が備えられ、
    前記メインフレームシステムにおいて前記第1のジョブに参照されるデータの複製が前記オープンシステムに入力され前記メインフレームシステムでの前記第1のジョブと前記オープンシステムでの前記第2のジョブとの並行実行において、ジョブステップペア毎に、
    前記第2の現新比較部が、当該ジョブステップペアに属する第2のジョブステップのジョブジャーナルを取得した場合に、当該第2のジョブステップの実行開始を前記メインフレームシステムに通知し、
    前記メインフレームシステムが、当該ジョブステップペアに属する第1のジョブステップのジョブジャーナルを取得して、当該第1のジョブステップの実行開始を待ち、
    前記メインフレームシステムが当該第2のジョブステップの実行開始の通知を受けた場合に、前記メインフレームシステムが、当該ジョブステップペアに属する第1のジョブステップの実行を開始する、
    請求項3に記載のジョブマイグレーション支援システム。
  5. 前記メインフレームシステムと前記オープンシステムとの共有の記憶空間が、ジョブステップペア毎に、当該ジョブステップペアに属する第2のジョブステップの改修の要否を表す情報である改修情報と、前記現新一致判定が行われたか否かを表す情報である一致判定情報とを記憶する、
    請求項1に記載のジョブマイグレーション支援システム。
  6. 前記オープンシステムに、第2の現新比較部が備えられ、
    ジョブステップペア毎に、
    前記改修情報の値が、改修不要を意味する値の場合に、前記オープンシステムが、当該第2のジョブステップを実行し、
    前記一致判定情報の値が、前記現新一致判定が行われていないことを意味する値の場合に、前記第1の現新比較部が、前記現新一致判定を行い、前記一致判定情報の値を、前記現新一致判定が行われたことを意味する値に更新し、
    前記現新一致判定の結果が偽の場合、前記現新一致判定の結果に応じた処理は、前記現新一致判定の結果が偽となったジョブステップペアに属する第2のジョブステップである失敗の第2のジョブステップをコンソールに通知することと、前記改修情報の値を、改修要を意味する値に更新することとを含み、
    前記失敗の第2のジョブステップが改修された場合に、前記第2の現新比較部が、前記一致判定情報を、前記現新一致判定が行われていないことを意味する値に更新し、前記改修情報の値を、改修不要を意味する値に更新する、
    請求項5に記載のジョブマイグレーション支援システム。
  7. 前記現新一致判定の結果が真の場合、前記現新一致判定の結果に応じた処理は、当該ジョブステップペアに属する第1のジョブステップのジョブジャーナルと当該ジョブステップペアに属する第2のジョブステップのジョブジャーナルとを削除することを含む、
    請求項1に記載のジョブマイグレーション支援システム。
  8. 第1のCPR(Check Point Restart)部を有するメインフレームシステムが実行する第1のジョブをオープンシステムにマイグレーションすることを支援する方法であって、
    前記第1のジョブがマイグレーションされたジョブである第2のジョブを実行する前記オープンシステムに第2のCPR(Check Point Restart)部が備えられ、
    前記第1のジョブは、複数の第1のジョブステップで構成されており、
    前記第2のジョブは、前記複数の第1のジョブステップにそれぞれ対応した複数の第2のジョブステップで構成されており、
    前記メインフレームシステムが、第1のジョブステップ毎に、当該第1のジョブステップにリスタートが指定されている場合、当該第1のジョブステップのデータ操作とデータ操作毎のデータセットとを表すジョブジャーナルを出力するようになっており、
    前記方法が、
    第2のジョブステップ毎に、当該第2のジョブステップにリスタートが指定されている場合、前記オープンシステムにより、当該第2のジョブステップのデータ操作及びデータ操作毎のデータセットを表すジョブジャーナルを出力し、
    それぞれリスタートが指定されており対応した第1のジョブステップと第2のジョブステップとのペアであるジョブステップペア毎に、前記メインフレームシステム及び前記オープンシステムのいずれかにより、
    当該第1のジョブステップのジョブジャーナルと当該第2のジョブステップのジョブジャーナルとが一致か否かの判定である現新一致判定を行い、
    当該現新一致判定の結果に応じた処理を行う、
    ジョブマイグレーション支援方法。
  9. 前記現新一致判定の結果が偽の場合、
    前記現新一致判定の結果に応じた処理は、前記ジョブステップペアに属する第2のジョブステップである失敗の第2のジョブステップを前記第2のCPR部に通知することを含み、
    前記メインフレームシステム及び前記オープンシステムのいずれかにより、当該失敗の第2のジョブステップのジョブジャーナルを基に、当該第2のジョブステップの開始前の状態としてのデータセットを復元する、
    請求項8に記載のジョブマイグレーション支援方法。
  10. 前記現新一致判定の結果が偽の場合、
    前記オープンシステムにより、前記失敗の第2のジョブステップに対応した第1のジョブステップの次の第1のジョブステップの開始時のジョブジャーナルを取得し、
    前記オープンシステムにより、当該取得されたジョブジャーナルと前記復元されたデータセットとを基に、当該次の第1のジョブステップに対応し前記失敗の第2のジョブステップの次の第2のジョブステップの開始時の状態としてのデータセットを構築し、
    前記オープンシステムにより、当該構築されたデータセットを基に、当該次の第2のジョブステップを開始する、
    請求項9に記載のジョブマイグレーション支援方法。
  11. 前記メインフレームシステムにおいて前記第1のジョブに参照されるデータの複製が前記オープンシステムに入力され前記メインフレームシステムでの前記第1のジョブと前記オープンシステムでの前記第2のジョブとの並行実行において、ジョブステップペア毎に、
    前記オープンシステムにより、当該ジョブステップペアに属する第2のジョブステップのジョブジャーナルを取得した場合に、当該第2のジョブステップの実行開始を前記メインフレームシステムに通知し、
    前記メインフレームシステムにより、当該ジョブステップペアに属する第1のジョブステップのジョブジャーナルを取得して、当該第1のジョブステップの実行開始を待ち、
    前記メインフレームシステムが当該第2のジョブステップの実行開始の通知を受けた場合に、前記メインフレームシステムにより、当該ジョブステップペアに属する第1のジョブステップの実行を開始する、
    請求項10に記載のジョブマイグレーション支援方法。
  12. 前記メインフレームシステムと前記オープンシステムとの共有の記憶空間に、ジョブステップペア毎に、当該ジョブステップペアに属する第2のジョブステップの改修の要否を表す情報である改修情報と、前記現新一致判定が行われたか否かを表す情報である一致判定情報とが記憶される、
    請求項8に記載のジョブマイグレーション支援方法。
  13. ジョブステップペア毎に、
    前記改修情報の値が、改修不要を意味する値の場合に、前記オープンシステムにより、当該第2のジョブステップを実行し、
    前記一致判定情報の値が、前記現新一致判定が行われていないことを意味する値の場合に、前記メインフレームシステム及びオープンシステムのいずれかにより、前記現新一致判定を行い、前記一致判定情報の値を、前記現新一致判定が行われたことを意味する値に更新し、
    前記現新一致判定の結果が偽の場合、前記現新一致判定の結果に応じた処理は、前記現新一致判定の結果が偽となったジョブステップペアに属する第2のジョブステップである失敗の第2のジョブステップをコンソールに通知することと、前記改修情報の値を、改修要を意味する値に更新することとを含み、
    前記失敗の第2のジョブステップが改修された場合に、前記オープンシステムにより、前記一致判定情報を、前記現新一致判定が行われていないことを意味する値に更新し、前記改修情報の値を、改修不要を意味する値に更新する、
    請求項12に記載のジョブマイグレーション支援方法。
  14. 前記現新一致判定の結果が真の場合、前記現新一致判定の結果に応じた処理は、当該ジョブステップペアに属する第1のジョブステップのジョブジャーナルと当該ジョブステップペアに属する第2のジョブステップのジョブジャーナルとを削除することを含む、
    請求項8に記載のジョブマイグレーション支援方法。
JP2021067737A 2021-04-13 2021-04-13 マイグレーション支援方法及びシステム Active JP7242744B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021067737A JP7242744B2 (ja) 2021-04-13 2021-04-13 マイグレーション支援方法及びシステム
US17/688,204 US20220327023A1 (en) 2021-04-13 2022-03-07 Migration support method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021067737A JP7242744B2 (ja) 2021-04-13 2021-04-13 マイグレーション支援方法及びシステム

Publications (2)

Publication Number Publication Date
JP2022162755A JP2022162755A (ja) 2022-10-25
JP7242744B2 true JP7242744B2 (ja) 2023-03-20

Family

ID=83510748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021067737A Active JP7242744B2 (ja) 2021-04-13 2021-04-13 マイグレーション支援方法及びシステム

Country Status (2)

Country Link
US (1) US20220327023A1 (ja)
JP (1) JP7242744B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205068A (ja) 2009-03-04 2010-09-16 Hitachi Information Systems Ltd ソフトウェア資源移行システム及び同移行方法
JP2015191389A (ja) 2014-03-28 2015-11-02 株式会社日立製作所 移行処理結果探索装置
WO2017208409A1 (ja) 2016-06-01 2017-12-07 株式会社日立製作所 情報処理システム及び業務冗長化方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281185B2 (en) * 2009-06-30 2012-10-02 Oracle America, Inc. Advice-based feedback for transactional execution
US8788461B2 (en) * 2012-10-04 2014-07-22 Delphix Corp. Creating validated database snapshots for provisioning virtual databases
GB2514563A (en) * 2013-05-28 2014-12-03 Ibm Selective purging of a log structure
US10078558B2 (en) * 2014-01-10 2018-09-18 Hitachi, Ltd. Database system control method and database system
US9304935B2 (en) * 2014-01-24 2016-04-05 International Business Machines Corporation Enhancing reliability of transaction execution by using transaction digests
US9946593B2 (en) * 2015-09-18 2018-04-17 Salesforce.Com, Inc. Recovery strategy for a stream processing system
US10795777B1 (en) * 2017-11-22 2020-10-06 Amazon Technologies, Inc. Continuous verified backups
US10866869B2 (en) * 2019-01-16 2020-12-15 Vmware, Inc. Method to perform crash and failure recovery for a virtualized checkpoint protected storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205068A (ja) 2009-03-04 2010-09-16 Hitachi Information Systems Ltd ソフトウェア資源移行システム及び同移行方法
JP2015191389A (ja) 2014-03-28 2015-11-02 株式会社日立製作所 移行処理結果探索装置
WO2017208409A1 (ja) 2016-06-01 2017-12-07 株式会社日立製作所 情報処理システム及び業務冗長化方法

Also Published As

Publication number Publication date
US20220327023A1 (en) 2022-10-13
JP2022162755A (ja) 2022-10-25

Similar Documents

Publication Publication Date Title
JP4839091B2 (ja) データベース回復方法及び計算機システム
US8726261B2 (en) Zero downtime hard disk firmware update
EP2759937A1 (en) Method and apparatus for efficient remote copy
JPWO2008129620A1 (ja) 完全二重化システム、システム制御方法およびシステム制御プログラム
CN113792024A (zh) 用于迁移数据的方法、装置、设备以及存储介质
JP7242744B2 (ja) マイグレーション支援方法及びシステム
JP2015502605A (ja) ストレージシステムおよびデータ管理方法
JP6755680B2 (ja) データ移行システム、及び、データ移行システムの制御方法
WO2015162717A1 (ja) 計算機
US11442895B2 (en) Method for copying data, electronic device and computer program product
CN115878587A (zh) 实例创建方法、装置、电子设备及可读存储介质
JP5317182B2 (ja) Pos端末、モジュールアップデート方法およびモジュールアップデートプログラム
JP6467298B2 (ja) サーバ運用作業履歴管理装置、システム、方法、およびプログラム
CN113868679B (zh) 一种集群的加密方法及装置
JP6928148B1 (ja) フォールトトレラントシステム、フォールトトレラント制御方法、及び、フォールトトレラント制御プログラム
US20230008688A1 (en) Backup system and method
US11347406B2 (en) Method, electronic device and computer program product for updating information
WO2016117322A1 (ja) 処理要求装置、処理装置、データベースシステム、データベース更新方法およびプログラム記録媒体
US20240248635A1 (en) Method, electronic device, and computer program product for storing metadata
CN114546705B (zh) 操作响应方法、操作响应装置、电子设备以及存储介质
US11507457B2 (en) Method, electronic device and computer program product for storage management
JP5488681B2 (ja) 二重化システム、制御方法および制御プログラム
JP2013127748A (ja) 情報処理装置、データ記憶方法及びプログラム
JP6773533B2 (ja) 動作環境同期装置、動作環境同期システム、動作環境同期方法、及び、動作環境同期プログラム
JP6492863B2 (ja) 拡張記憶制御装置、拡張記憶制御システム、拡張記憶制御方法、及び、拡張記憶制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220119

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: 20230221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230308

R150 Certificate of patent or registration of utility model

Ref document number: 7242744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150