機能レベルをアクティブ化し、アプリケーションの互換性レベルを指定することにより、Db2 12の新規フィーチャーのアクティブ化と採用を制御します。 新規機能を採用せずに、引き続き修正サービスおよび予防サービスを適用することもできます。
始める前に
制限事項 : Db2 カタログを機能レベル502以上用にカスタマイズするためにCATMAINTを実行する前に、まず機能レベル500または501を有効化する必要があります。 つまり、DISPLAY GROUPコマンドの出力は、以下のように表示されなければなりませんHIGHEST ACTIVATED FUNCTION LEVEL (V12R1M500)またはそれ以上。 この制限により、 Db2 カタログを機能レベル500より高いレベルにカスタマイズすることはできませんが、 Db2 11 へのフォールバックは可能です。 ただし、その後、機能レベル100*などのより低い機能レベルをアクティブにしても、CATMAINT操作は制限されません。
このタスクについて
ACTIVATE コマンドは、Db2での新機能のアクティブ化を制御します。 Db2インストール CLIST を実行することによって、Db2カタログを更新し、Db2機能レベルをアクティブ化するジョブを調整することができます。
プロシージャー
Db2機能レベルによって導入された機能および機能拡張をアクティブ化するには、以下の手順を実行します。
- もし Db2 12 機能レベルが 100 の場合は、 移行時に Db2 12 の新機能をアクティブ化する手順に従ってください。
- DISPLAY GROUPコマンドを発行して、 Db2 サブシステムまたは各データ共有グループメンバーのコードレベルが、目的の機能レベルをサポートしていることを確認します。
- 必要に応じて、PTF や RSU などのメンテナンスを適用し、 Db2 サブシステムまたはデータ共有グループのメンバーを、ターゲット機能レベルに必要なコードレベルまで引き上げます。
- CATMAINTおよび機能レベルのアクティベーション手順に合わせたJCLジョブを生成します。 Db2 installation CLIST をご利用いただけます。
パネル DSNTIPA1 で、ACTIVATE、INPUT MEMBER、および OUTPUT MEMBER フィールドに値を指定します。
- INSTALL TYPE フィールドに ACTIVATE を指定します。
- INPUT MEMBER フィールドに、Db2 12にインストールまたはマイグレーションしたときに作成した CLIST 出力メンバーの名前、またはDb2 12機能レベルを最後にアクティブしたときに作成した名前を指定します。
- OUTPUT MEMBER フィールドに、新規のメンバー名を指定して、将来の使用のために変更を保管します。

パネル DSNTIPT で、SAMPLE LIBRARY フィールド値 (作成される出力データ・セットの名前) を確認します。 データ・セットがすでに存在している場合は、このフィールドの左端にアスタリスクが表示されます。 データ・セットが既に存在している場合は、CLIST は、そのデータ・セットが、新しい機能レベルのアクティブ化のためにカスタマイズするメンバーを置き換えます。
- パネル DSNTIP00 で、 V12R1M5nn を「TARGET FUNCTION LEVEL」フィールドに指定します。
5nn は、有効化したい機能レベルです。 フォーマットは VvvRrMmmm で、 vv はバージョン、 rはリリース、 mmm は修正レベルを表します。 この値は、DSNTIJAF ジョブおよび DSNTIJTC ジョブ内の CATMAINT ユーティリティー制御ステートメントの ACTIVATE コマンドで使用されます。
- すべてのDb2アプリケーションをバインドして、ターゲット機能レベルで実行できる場合は、APPLCOMPAT および SQLLEVEL サブシステム・パラメーター設定を変更します。 その他の場合、これらのフィールドは変更しないでください。
残りのパネルを先に進み、CLIST がアクティベーション・プロセスのジョブを調整するのを待ちます。 出力データ・セットには、アクティベーション・プロセスの調整済みジョブが含まれます。
- DSNTIJICジョブを実行して、 Db2 カタログとディレクトリのイメージコピーを取得します。
- CATMAINTユーティリティを実行するためにカスタマイズされたDSNTIJTCジョブを実行します。 LEVEL V12R1M5 nn を使用して、カタログを適切なカタログ レベルに更新します。
ターゲット機能レベルを指定する単一のCATMAINTジョブを使用できます。 ターゲットの機能レベルが複数のカタログ・レベルの更新を必要とする場合、 CATMAINT ジョブは、各更新を順次処理します。 シーケンス内の後の更新が失敗した場合、以前に成功した更新はロールバックされず、カタログ・レベルは最上位レベルに達します。 これが発生した場合は、失敗の理由を訂正し、同じな CATMAINT ジョブを再実行依頼することができます。重要: より高い機能レベルの CATMAINT ジョブの任意の部分が完了した後、低いコードレベルで Db2 を起動しようとしないでください。 Db2 が必要なコードレベルで継続して実行できることを確認した後、CATMAINTジョブを実行してください。 カタログの変更をサポートするためのコードは、CATMAINT ジョブを提供するコード・レベルに含まれています。
制限事項 : Db2 カタログを機能レベル502以上用にカスタマイズするためにCATMAINTを実行する前に、まず機能レベル500または501を有効化する必要があります。 つまり、DISPLAY GROUPコマンドの出力は、以下のように表示されなければなりませんHIGHEST ACTIVATED FUNCTION LEVEL (V12R1M500)またはそれ以上。 この制限により、 Db2 カタログを機能レベル500より高いレベルにカスタマイズすることはできませんが、 Db2 11 へのフォールバックは可能です。 ただし、その後、機能レベル100*などのより低い機能レベルをアクティブにしても、CATMAINT操作は制限されません。
カタログ・レベルの変更が完了すると、 Db2 は SYSIBM.SYSLEVELUDPATES カタログ・テーブルに変更を記録し、コンソールにメッセージ DSNG014I をコンソールに発行する。
- CATMAINTユーティリティによって変更された Db2 カタログ・オブジェクトがREORG保留中(AREO*)のアドバイザリ・ステータスに置かれた場合、それらのオブジェクトに対してREORGユーティリティを実行します。
- オプション: 機能レベルのアクティベート準備のため、 Db2 コードレベルとカタログレベルをテストします
- カスタマイズされたDSNTIJAFジョブを実行するか、または、 V12R1M5nn をアクティブ化したい機能レベルに変更して、以下のACTIVATEコマンドを発行します。
-ACTIVATE FUNCTION LEVEL (V12R1M5nn)
重要: これまでにアクティベートされた機能レベルよりも低いコードレベルでは、たとえスター(*)機能レベルであっても、 Db2 を起動しないでください。 Db2 が要求されるコードレベルで継続して実行できることを確認した後に、機能レベルを有効にしてください。
コマンドが正常に完了すると、
Db2はメッセージ
DSN9022I を発行します。 メッセージ
DSNU757I は、アクティブ化コマンドの結果を示します。
例えば

次のメッセージは、アクティブ化が成功したことを示します。
DSNU757I -DB2A DSNUGCCA
*** BEGIN ACTIVATE FUNCTION LEVEL (V12R1M502)
FUNCTION LEVEL (V12R1M502) SUCCESSFULLY ACTIVATED
CATALOG LEVEL(V12R1M502)
CURRENT FUNCTION LEVEL(V12R1M500)
HIGHEST ACTIVATED FUNCTION LEVEL (V12R1M500)
HIGHEST POSSIBLE FUNCTION LEVEL(V12R1M502)
DSN9022I -DB2A DSNZACMD '-ACTIVATE FUNC' NORMAL COMPLETION
ファンクション・レベルの変更が完了すると、 Db2 は SYSIBM.SYSLEVELUDPATES カタログ・テーブルに変更を記録し、コンソールにメッセージ DSNG014I をコンソールに発行する。

ACTIVATE コマンドが正常に完了した後で、ほとんどのタイプの新機能および機能レベルでの機能拡張を使用できるようになるまで、さらに多くの処置が必要です。 例えば、新しい SQL 機能では、アプリケーションは適切なアプリケーション互換性レベルを使用する必要があり、最適化機能拡張は SQL ステートメントのすべての準備後にのみ適用されます。
- アプリケーションが機能レベルで新しい機能を使用する準備ができたら、それらを対応するアプリケーション互換性レベルで再バインドしてください。 詳細については、「 Db2 アプリケーションの互換性レベルの制御 」を参照してください。
ヒント: Db2 アプリケーションがすべてターゲットの機能レベルでバインドおよび実行できる場合にのみ、次の手順に進んでください。
オプションで、すべてのアプリケーションがターゲット機能レベルの新機能を使用する準備ができたら、以下のジョブを実行できます。
- DSNTIJUZ を実行して、パネル DSNTIP00 で指定された APPLCOMPAT 値でサブシステム・パラメーター・モジュールを変更します。
- DSNTIJOZ ジョブを実行して SET SYSPARM コマンドを発行し、APPLCOMPAT サブシステム・パラメーターの変更をオンラインにします。
- Db2 データ専用アプリケーションのデフォルトモジュールを、パネル DSNTIP00 で指定されたSQLLEVEL値に変更するために、DSNTIJUAジョブを実行します。
次の作業
以下のいずれかのアクションを実行します。
- 新しい機能レベルに最適化機能拡張が組み込まれている場合、Db2は、SQL ステートメントが利益を得る前に、完全な準備を実行する必要があります。 完全準備が行われるかどうかは、ステートメント・タイプによって異なります。
- 静的 SQL ステートメントの場合は、パッケージのバインドまたは再バインド後
- 固定化されていない動的 SQL ステートメントの場合は、即時 (ステートメントが動的ステートメント・キャッシュに入っていない限り)
- 固定化された動的 SQL ステートメントの場合は、無効化、解放、またはアプリケーション互換性レベルの変更後
- APPLCOMPAT および SQLLEVEL サブシステム・パラメータを更新するジョブを実行しなかった場合、アプリケーションの非互換性を解決し、アプリケーションのアプリケーション互換性レベルを上げるには、 Db2 がターゲット機能レベルで安定していることを確認した後、" Db2 アプリケーション互換性レベルの制御" で説明されているように実行します。
- Db2 12 の機能レベルを有効化する際に、後退やその他の問題が発生した場合は、 Db2 12の「より低い(*)機能レベルを有効化する 」で説明されている一般的なアプローチに従って問題を解決しながら、アプリケーションへの影響を最小限に抑えてください。
- Db2 カタログオブジェクトを新規に追加したり、無効なものを削除したりするには、COPY、RECOVER、REBUILD INDEXの各ユーティリティジョブを更新する必要があるかもしれません。 Db2 カタログオブジェクトについて、以下の状況が発生した場合、ユーティリティはメッセージを発行します。 DSNU1530I:
- オブジェクトが使用されなくなったか、存在しなくなりました。
- オブジェクトは、より高いカタログレベルまたは機能レベルで作成されます。
最良の結果を得るには、変更をサポートする機能レベルをアクティブにした後に、これらの更新をユーティリティジョブとして実行してください。 Db2 12 のカタログ変更の詳細については、 Db2 12 のカタログ変更を参照のこと。