V6R1への心構え
新しいV6R1のリリースでは、今までのi5/OSのリリースで作成され、i5/OSマシン・インタフェース(MI:Machine Interface)を使用している全てのプログラムを変換する必要がある、ということはすでにお聞きになっているかもしれません。MIプログラムには、ILEプログラムとOPMプログラムがあります。変換するとプログラムはアップグレードされて一新され、システム保全性の強化、性能向上、新しいオペレーティング・システムやプロセッサ機能の幅広いサポートなどといった、最新のシステム機能の強化を図ることができます。
本稿では、プログラム・オブジェクトをi5/OS V6R1用に変換するための計画とそれを実行するためのプロセスの概要を、7つのステップに分けて説明します。
- ANZOBJCVNコマンドを有効にする
- システム上のオブジェクトの情報を収集する
- 収集した情報を調査し、理解する
- 必要に応じて、アプリケーションのプロバイダに問い合わせる
- サポートされていない製品を取り除く
- システムをi5/OS V6R1にアップグレードする
- オブジェクトを変換する
システムをV6R1にアップグレードするまでは実際の変換は行われないわけですが、変換のための計画はV5R3またはV5R4(この2つのリリースからは直接V6R1にアップグレード可能)上で完了しておかなければなりません。変換プロセスには、プログラムの作成データ(プログラム識別情報の一部)が必要です。V5R1またはそれ以降のリリース用に作成された構成モジュールを含んだプログラムには、変換プロセスに必要な作成データが十分保持されています。IBMは、簡単なAnalyze Object Conversion (ANZOBJCVN)コマンドを提供して支援していますが、このコマンドはV5R3とV5R4上でのみ利用可能であり、V6R1では利用できないということを理解しておくことが重要です。
準備はV5R3またはV5R4上で始める必要があり、V6R1にアップグレードあるいは移行させたいと考えている全てのシステムやパーティションの変換の計画を完了しておかなければなりません。プログラム変換のタイミングの詳細を図1に示します。
1. ANZOBJCVNコマンドを有効にする
ANZOBJCVNコマンドを使用すると、V6R1用に変換しないプログラム・オブジェクトを洗い出し、プログラム変換に必要な時間を見積もったりするなど、変換に際して課題となる可能性のある項目を特定できます。また、統合ファイル・システム(IFS: Integrated File System)とスプール・ファイルという他の2種類の変換に関する情報も得ることができます。
V6R1にアップグレードする前にANZOBJCVNコマンドを使用することは必須ではありませんが、強くお勧めします。V6R1にアップグレードする前かV6R1が稼動している新しいハードウェアに移行する前に既存のシステムでこのコマンドを使用することで、計画を適切に完了することができ、事前に必要なステップがあれば実行しておくことができます。プログラムを変換しない場合は、それをコンパイルし直すか、もしくはそれがパッケージ・ソフトウェアの場合、そのソフトウェアのプロバイダから新しいバージョンを入手してください。
ANZOBJCVNコマンドは、V6R1にアップグレードもしくは移行したいと考えているV5R4およびV5R3 i5/OSの全ての論理パーティション上で実行してください。また、変換が必要なオブジェクトが外部記憶プール(IASP: Independent Auxiliary Storage Pools)上にも存在している可能性もあるので、IASP上でも実行する必要があるか計画段階で検討してください。
ANZOBJCVNコマンドは、V5R3およびV5R4用のPTFとして配布されています。このコマンドを利用するには、MRI PTFを注文しなければなりません。使用している言語に適切なMRI PTFを注文することで、必須のコードPTFも注文されたことになります。V5R3およびV5R4用のANZOBJCVNのPTFに関する全情報は、IBMのレッドペーパーREDP-4293「i5/OSプログラムの変換: i5/OS V6R1への心構え」を参照してください(後述の「詳細情報」を参照)。
2. システム上のオブジェクトの情報を収集する
ANZOBJCVNコマンドには、収集とレポートという2つの機能があります。ほとんどの場合、ANZOBJCVNコマンドが分析するオブジェクトはV6R1で利用できるように変換が可能です。まず、このコマンドを使用して情報を収集し、次にレポート・パラメータを使用して今までに収集した情報の一覧からなるスプール・ファイルを生成します。ANZOBJCVNコマンドは、ライブラリ中にある以下のタイプのオブジェクトを分析し、レポートすることができます。
- プログラム (*PGM) - OPMとILEの両方
- サービス・プログラム (*SRVPGM)
- モジュール(*MODULE)
- SQLパッケージ (*SQLPKG)
またANZOBJCVNコマンドは、ディレクトリにある以下のタイプのオブジェクトの分析、レポートも可能です。
- i5/OS上で実行するために最適化されたJavaプログラム付きのストリーム・ファイル。ただし、「ルート」(/)、QOpenSys、ユーザー定義ファイル・システム中にあるストリーム・ファイルだけが分析対象となる。
- 「ルート」(/)ファイル・システムおよびCASE(*MONO)オプションで作成されたユーザー定義ファイル・システム中のIFSオブジェクトの名
最後に、ANZOBJCVNコマンドは、スプールされたファイル・データを収集して、システムのアップグレードを計画する際に有用となる可能性のある情報も提供します。デフォルトでは、スプールされたファイルの変換は、システムのIPL中、あるいはiASPの「構成変更」時に実行されます。
ANZOBJCVNコマンドを使用してデータを収集するのにお勧めする方法は、2つあります。最初の方法は、全てのタイプの情報を一度に収集し、全ての収集ファイルの値を集めるという方法です。次に示すコマンドで、システムの*ALLUSR部分のライブラリ、スプールされたファイル中にある全てのプログラム・オブジェクトの情報と、IFS中の全ての関連するオブジェクトの情報を収集します。
ANZOBJCVN OPTION(*COLLECT) LIB(*ALLUSR)
SPLFILE(*YES) OBJ('/')
もう1つの方法は、データ収集のプロセスを2ステップに分けるというものです。たとえば、*ALLUSRライブラリ中のプログラム・モデル・オブジェクトのデータとスプールされたファイルのデータを収集します。
ANZOBJCVN OPTION(*COLLECT) LIB(*ALLUSR)
次に、ディレクトリ・オブジェクトの情報を収集します。
ANZOBJCVN OPTION(*COLLECT) LIB(*NONE)
SPLFILE(*NO) OBJ('/')
また、各ライブラリ、IFSの一部、あるいはその両方同時にデータを収集することもできます。ただしこの方法をとった場合、収集したデータを調査するためのレポートを実行してから、他のライブラリやファイル・システムの一部のデータを収集しなければなりません。あるタイプについてそれぞれ収集したデータは、そのタイプの情報を格納するのに使用するファイル中のデータを置き換えてしまいます。そうする代わりに、このファイルを別のライブラリにコピーして、収集したデータの分析を後で行うこともできます。他のライブラリに移動した収集データに対してクエリーを実行して、必要に応じてレポートを追加で生成させることもできます。
また、V6R1用の新しいバージョンを出荷しないIBM非出荷製品についての、個々のIBM製品ライブラリに関する変換情報を収集することも考慮してください。該当するIBM製品ライブラリの一覧については、IBMレッドペーパー「i5/OSプログラムの変換: i5/OS V6R1への心構え」を参照してください。
3. 収集した情報を調査し、理解する
システム上のプログラム・オブジェクトの情報を収集したら、収集したデータに対してANZOBJCVN *REPORTコマンドを実行し、オプションで独自のクエリーを実行します。「レポートの種類」パラメータで選択できるレポート生成のオプションは、以下の通りです。
- *ALLAVL: 利用可能な要約レポートあるいは詳細レポートは全て、各タイプの最新のコレクション中に指定されたライブラリやディレクトリ中の全てのオブジェクトに対して生成されます。
- *CVNPRB: 変換しないプログラム・オブジェクトの詳細レポートは、最新のライブラリ・コレクション中に指定された各ライブラリに対して生成されます。
- *LIBSUM: 要約レポートは、最新のライブラリ・コレクション中に指定された各ライブラリに対して生成されます。
- *LIBDTL: 詳細レポートは、最新のライブラリ・コレクション中に指定された各ライブラリに対して生成されます。
- *OBJSUM: 要約レポートは、最新のオブジェクト・コレクション中に指定された各IFSディレクトリに対して生成されます。
- *OBJDTL: 詳細レポートは、最新のオブジェクト・コレクション中に指定された各IFSオブジェクトに対して生成されます。
レポートを生成する際には、最初に*CVNPRBパラメータと*LIBSUMパラメータを使用することをお勧めします。このパラメータを使用して生成される2つのレポートは、注意を要するプログラム・モデル・オブジェクトと、プログラムおよびスプール・ファイルの変換に必要な時間の概算見積もりだけを示します。一般的に、この2つのレポートはV6R1へのアップグレードの準備に必要な情報を提供してくれます。
これに対し、詳細レポートは各オブジェクトの情報を表示するので、*LIBDTLパラメータまたは*OBJDTLパラメータを使用してレポートを生成すると、非常に長いスプール・ファイル出力を生成することがあります。*OBJSUMレポートを使用した場合でさえも、データ収集の対象となっている各サブディレクトリに関する情報を表示するため、非常に長いレポートになることがあります。詳細レポートは特定のプログラムの変換に必要な時間などの情報も提供しますが、詳細レポートは印刷せずに、その結果に対してクエリーを実行した方が良いでしょう。
4. 必要に応じて、アプリケーションのプロバイダに問い合わせる
購入したアプリケーションの中で変換ができず、しかもコンパイルし直すのに必要なソースコードが手元にないという場合には、そのアプリケーションのプロバイダに問い合わせて、V6R1で動作するバージョンのものを入手してください(後述の「アプリケーション開発者の考慮点」を参照)。
5. サポートされていない製品を取り除く
V6R1にアップグレードする前に、サポートされていないライセンス・プログラム製品(LPP: Licensed Program Products)やその他のサポートされていない製品を削除してください。V6R1では、削除するプログラムを変換する必要はありません。ただし、削除作業中に出口プログラムを使用する特定の製品があって、その製品が変換できない他のプログラムを呼び出す場合は、Delete Licensed Program (DLTLICPGM)コマンドがV6R1上で正常に完了しない可能性があります。V6R1にアップグレードする前にサポートされていない製品を削除することで、この問題を回避することができます。ただし、そうした古い製品を削除する前に保存しておいた方が良いかもしれません。V6R1以前のリリースで必要になる場合があるかもしれないからです。
6. システムをi5/OS V6R1にアップグレードする
オブジェクト変換のための準備作業を全て終了したら、その他のV6R1のアップグレード情報を得るために、「System i: i5/OSおよびそれに関連するバージョン6リリース1ソフトウェアのインストール、アップグレード、削除」というタイトルの、V6R1インフォメーション・センターにあるドキュメント、SC41-5120-09を確認してください(後述「詳細情報」を参照)。その後、システムをアップグレードします。
7. オブジェクトを変換する
V6R1にアップグレードしたら、それぞれの状況に最も適した変換オプションの組み合わせを選択します。プログラム・オブジェクトの変換を実行するための方法として、以下の中から選択することができます。
- V6R1のStart Object Conversion (STROBJCVN)コマンドを使用して手作業で変換を開始する。
STROBJCVNコマンドはi5/OSの今までのリリースでも存在していましたが、V6R1バージョンのコマンドのみがV6R1互換フォーマットへの変換をサポートしています。またSTROBJCVNコマンドには、特定のオブジェクトが変換を必要とするか否かをチェックするオプションもあります。ただし、V6R1上でSTROBJCVNコマンドにこのチェック・オプションを付けて実行するよりは、V5R3やV5R4上でANZOBJCVNコマンドを実行する方が良い方法と言えます。また、ANZOBJCVNコマンドはV6R1上では使用できないということにも注意が必要です。 - リストア中にオブジェクトを変換するよう指定する。
リストア時に強制変換するというシステム値(QFRCCVNRST)を使用すると、リストア中にオブジェクトを変換するか否かを指定することができます。リストア・コマンド(RST、RSTLIB、RSTOBJ、RSTLICPGM)のForce object conversion (FRCOBJCVN)パラメータに*SYSVAL値を指定すると、システム値(QFRCCVNRST)の値を使用します。QFRCCVNRSTに指定できる値は0~7です。デフォルト値は1です。V6R1互換フォーマットへの変換に必要なオブジェクトの変換を開始するには、この値を2に指定すれば十分です。 - プログラムが初めて実行されたり呼び出されたりしたときに自動的にオブジェクトを変換する。
リストア中あるいはSTROBJCVNコマンドの実行で変換されなかったプログラム・オブジェクトは、プログラムが初めて実行されるかあるいは初めて呼び出されたときに自動的に変換されます。サイズの大きなプログラムでは、この変換処理に時間がかかる可能性があります。変換時間が長くなることで性能が低下することが懸念される場合は、STROBJCVNコマンドを使用して実運用前にプログラム・オブジェクトを変換する方法も検討してください。
1ステップずつ進む
i5/OS V6R1にアップグレードすることによって大きな恩恵を受けることができるようになりますが、アップグレードが確実にスムーズに進むよう準備をしておかなければなりません。アップグレードする前に、全体の計画の一部としてプログラム変換の分析を行うことを検討する必要があります。IBMのレッドペーパー「i5/OSプログラムの変換: i5/OS V6R1への心構え」にある事前準備をよく読んでください。本稿は、そのレッドペーパーの概要となっています。レッドペーパーはIBMのレッドペーパーのウェブサイトから入手でき、より詳細な説明が記載されています。左の「詳細情報」には、アップグレードを成功させるための有益な情報が一覧となっています。