IMS データベース診断ツール: IMS HP Pointer Checker V3.1 新機能と移行ガイド

IMS High Performance Pointer Checker for z/OS, V3.1(5655-U09)(以下HPPC)は、IMS のフル・ファンクション・データベースの診断ツールです。データベースの統計情報解析と、データベースの整合性チェック機能をもち、IMSデータベース運用には欠かせない強力なツールです。最近、旧バージョンのHPPC V2.1や V2.2から最新のV3.1へ移行したいというお問い合わせを多くいただいています。本稿では V3.1への移行と機能拡張点について解説します。また、2010年2月10日にアナウンスされたIMS Database Solution Pack for z/OS V1.1(5655-S77) のHPPCについても説明します。

HPPC V3.1前提ソフトウェア

HPPC V3.1が前提とするIMSとz/OSのバージョンは以下の通りです。

  • IMSバージョン9、バージョン10、バージョン11
      IMSバージョン11の場合、HPPCに PTF UK42777(APAR番号PK74300)を適用してください。
  • z/OS 上記IMSバージョンが稼働するz/OSリリース

また、DFSORT もしくはDFSORTと同等の機能を持つソフトウェア製品が必要です。

旧バージョンからの移行

  • HPPC V2.1, V2.2 で使用していたJCL、プロシジャー, コントロール・ステートメントは、そのまま使用可能です。
  • Historyファイルの形式は変わりません。
  • HPPC V3.1ではレポートのレイアウトが一部変更されています。最新のレポート情報はIMS Tools Libraryサイトの IMS HP Pointer Checker for z/OS V3.1 User’s Guide (SC19-2401)と”See Updates to this book!”を参照してください。
  • DB Repair Facilityは、従来はHPPCとは別製品のIBM IMS DB Repair Facility V1.2(5655-E03)でしたが、HPPC のユーティリティーとしてHPPC V3.1にパッケージされました。DB Repair Facility V1.2で使用していたJCL、プロシジャー, コントロール・ステートメントは、そのまま使用可能です。

IMS Database Solution Pack for z/OS V1.1

2010年2月10日にIMS Database Solution Pack for z/OS V1.1がアナウンスされました。ここには、データベースの再編成やイメージコピー、診断等のフル・ファンクション・データベースの管理運用ツールが1つにパッケージされており、複数の製品を簡単に導入できることが利点です。Solution PackにはHPPC V3.1が含まれています。これは単体のIMS HP Pointer Checker V3.1と同じ内容ですので、本稿で解説している旧バージョンからの移行や機能変更点はSolution Packの場合も同じです。

HPPCの基本機能

HP Pointer Checkerには下記の6つのユーティリティーが含まれています。

HD Pointer Checker(HDPC)
データベース診断を行うHPPCのメイン・コンポーネント。整合性、断片化チェックとデータベース統計情報のレポートを生成します。ポインターを1つずつチェックするスタンダード・チェック(フル・チェックとも呼ばれています)と、ポインターのチェック・サムを用いて高速に簡易チェックするHASHチェックがあります。
Space Monitor(SPMN)
データセットやDASDボリュームのスペース分析と監視を行います。SPMN単独のJobとして実行するほか、HDPC内部でSPMNをコールし、HDPCとSPMNを1Job Stepで実行することもできます。
HD Tuning Aid(HDTA)
HDAM,PHDAM ランダマイジンク・パラメータのチューニング・ツールです。
DB Historical Data Analyzer(DBHDA)
HDPC実行時に蓄積されたデータベース統計情報を時系列分析するツールです。
DB Repair Facility (DBRF)
データベース修復ツールです。
DB Segment Restructure(DBSR)
データベース・セグメントの一括変更を行うツールです。

機能拡張点

HPPC V2.1以後、PTFやリリースアップ、バージョンアップによって、多くの機能拡張が行われています。特に、ユーザビリティー向上には多くの機能が追加されています。

HPPC V2.1GA後の主な機能拡張点は下記の通りです。この中で、V3.1GAまたはV3.1のAPARで変更された項目は(**)で示します。

ユーザビリティー向上

ユーザー環境によって、HDPCやSPMNの実行時オプションの省略値やJobのリターン・コードを変更できるようになりました

  • 省略値変更機能
  • リターン・コード変更機能

HDPCやSpace Monitorでデータベース・エラーやスペース閾値例外を調べやすくなりました

  • TSOメッセージ通知機能
  • HDPC メッセージ・サマリー・レポート(**)

HDPCやSPMNのレポートを一元管理できるようになりました

  • IMS Tools Knowledge Base レポート・レポジトリ サポート

HDTAランダマイジング・パラメータのチューニングに有用なレポートが追加されました

  • HDTA Distribution of RAP Chain Lengthレポート(**)

データベース・エラーを修正するツールが加わりました

  • DB Repair Facility(**)

診断機能強化

HDPCでチェック可能なデータベース、ポインターが増えました

  • 2次索引データベースのチェック強化(**)
  • 記号ポインター、論理ポインターのチェック強化(**)

HDPCとSPMNでサポートするVSAMのファイル・タイプが拡張されました

  • Extended Addressability Volumeサポート(**)
  • 4ギガバイトを超えるファイルのサポート(**)

パフォーマンス改善

HDPCのパフォーマンスが改善されました

  • 並列処理によるHDPCパフォーマンス改善(**)

ここから、各機能拡張点について解説します。


省略値変更機能 (HDPC, SPMN)

HDPCのPROCCTL コントロール・ステートメント、Space MonitorのSPMNINコントロール・ステートメントには多くのパラメータがあり、それぞれに省略値(ディフォルト値)があります。サイト・ディフォルト生成ユーティリティーを使って、ディフォルト値を変更することが可能となりました。これにより、各Jobのコントロール・ステートメントでの指定を減らすことができます(図1)。

図1. サイト・ディフォルト使用時のコントロール・ステートメント
図1. サイト・ディフォルト使用時のコントロール・ステートメント

サイト・ディフォルト・ユーティリティーには実際にHDPCやSpace Monitorで使用していたコントロール・ステートメントをそのまま入力することができ、その指定が導入システム内でのディフォルト値(サイト・ディフォルト)になります。また、変更したい値のみをサイト・ディフォルト・ユーティリティーに入力することも可能です。

HDPCのサイト・ディフォルト生成ユーティリティーのプログラム名は FABPTGEN、Space Monitorのサイト・ディフォルト生成ユーティリティーはFABKTGENです。


リターン・コード変更機能(HDPC)

HDPCのリターン・コードはコントロール・ステートメント・エラーでは8、ポインター・エラー検出は4、フラグメンテーション多発の場合は2です。これらの数値をHPSRETCDコントロール・ステートメントで変更できます。図2の例の場合、コントロール・ステートメント・エラーでは16、ポインター・エラー検出は8、フラグメンテーション多発場合は4となります。なお、フラグメンテーション多発した状況のことを、HDPCではT2エラーと呼んでいます。T2はタイプ2の意味です。HPSRETCDの指定でも図2のようにT2ERROR=と指定します。

他に、Space MonitorをHDPCのJob内で実行した際のリターン・コードを変更するSPMNWARN、SPMNERRORや、HDTAに渡す中間ファイルであるKEYSINデータセットが空の場合にゼロ以外のリターン・コードを設定できるEMPTYKEYSIN等の指定があります。

また、PROCCTLのキーワードパラメータにRETCDDSN= があり、ここにHPSRETCDのデータセット名を指定可能ですので、前述のサイト・ディフォルト生成ユーティリティーでデータセット名をディフォルトとして登録すれば、個々のHDPC JCLにHPSRETCDを指定しなくてすみます。

図2. HSPRETCDによるリターン・コード変更例
図2. HSPRETCDによるリターン・コード変更例

TSOメッセージ通知機能(HDPC,SPMN)

HDPCでポインター・エラー、フラグメンテーション多発(T2エラー)、Space Monitorで監視項目の閾値越えを検出した場合、TSOユーザーIDへメッセージを送信できます。図3はT2エラーのメッセージを受け取ったTSO画面です。

図3. TSOメッセージ送信画面例
図3. TSOメッセージ送信画面例

ユーザーIDはHDPC PROCCTLコントロール・ステートメントのUSER=パラメータ、SPMN SPMNINコントロール・ステートメントの%USER行に指定します(図4)。どちらもサイト・ディフォルトを設定できます。

図4. TSOメッセージ送信機能
図4. TSOメッセージ送信機能

メッセージ・サマリー・レポート(HDPC)

HDPCがポインター・エラーを検出した場合、エラーの内容を示すメッセージがHDPCの複数のレポートに分散して表示されます。HPPC V3.1で、メッセージをまとめて表示する新レポートが追加になりました。HD Pointer Checker Message Summary Reportです(図5)。

図5. メッセージ・サマリー・レポート
図5. メッセージ・サマリー・レポート

データベース名やメッセージID、メッセージが出力されているレポート名が一覧表示されますので、これらを使ってレポート内を検索し、エラーの詳細を調査できます。


IMS Tools Knowledge Base レポート・レポジトリ サポート(HDPC)

IMS Tools Knowledge Base for z/OS , 5655-R34(IMS Tools KB)は2007年にGAされたIMS Tools製品です。 様々なIMS Tools製品が出す情報を集約するセントラル・レポジトリを管理します。HDPCの統計情報レポートをIMS Tools KBのレポジトリに保存可能です。また、HDPCのJob内でSPMNをコールした場合、SPMNのレポートも保存できます。

レポジトリにはレポートを時系列に保存することができます。IMS Tools KBにはISPF画面でレポートを検索、表示する機能があるため、多くのDBを処理した場合でも、目的のレポートを見つけやすく、また、過去のレポートと比較することもできます(図6)。レポジトリにはレポートの保存期間を設定でき、期間を過ぎたレポートは自動で削除されます。レポートを保存するには、IMS Tools KBサーバーを起動し、HDPCのPROCCTLコントロール・ステートメントのITKBSRVR=サーバー名を指定します。

図6. IMS Tools KBのISPFパネル
図6. IMS Tools KBのISPFパネル

HPPC以外の以下のIMS Tools製品もレポート・レポジトリをサポートしており、複数の製品のレポートを集中管理できます。サポート状況は下記URLをご覧ください。

Information Management IMS tools and their enablement to IMS Tools Knowledge Base for z/OS


HDTA Distribution of RAP Chain Lengthレポート

HPPC V3.1よりHDTAの"Assigned Roots per RAP report”に新段落”Distribution of RAP Chain Length”(図7)が追加されました。このレポートでどれだけの数のRAPが、どれだけの長さのシノニム・チェインを持つか、把握することができるようになりました。同じ形式のレポートは従来からHDPCで生成していました。HDPCは実際のデータベースの状況をレポートしますが、HDTAの場合はDBD変更やDB変更せずに、ランダマイジング・パラメータを試しに変えて評価できることが利点です。

図7. Distribution of RAP Chain Lengths
図7. Distribution of RAP Chain Lengths

DB Repair Facility

DB Repair FacilityはIMSデータベース・データセットのVSAMやOSAMファイルを更新するツールです。バッチJobとTSO ISPFパネル上での対話形式の二つのインターフェースを提供しています。図8はISPFの画面例です。

図8. DB Repair Facilityポインター変更画面
図8. DB Repair Facilityポインター変更画面

今回、HPPCにパッケージされましたので、HD Pointer Checkerで検出したポインター・エラーをDB Repair Facilityで修正するまでの作業をHPPCだけで行うことができます。

また、HPPC V3.1に組み込まれる際に、2つの事前チェック機能が追加されました。バッチJobのコントロールステートメント・チェック機能、ISPFのEOFチェック機能です。

コントロールステートメント・チェック機能

DB Repair FacilityをバッチJobで実行する際、コントロール・ステートメントの一行目に”CHECK”と指定すると、コントロール・ステートメントの文法チェックや、KEY,RBA等の指定内容のチェックを行います。これにより、ファイルを実際に更新する前に指定内容が正しいことを確認できます。

EOFチェック機能

DB Repair Facilityを対話形式で実行する際に、ファイルの最後(End-of-file)を超えて処理しようとするとエラーメッセージが表示され、誤った操作を防ぎます。


索引データベースのチェック強化(HDPC)

索引データベースのHASHチェック

HDPCのHASHチェックで、索引データベースのポインターをチェックできるようになりました。この機能はV2.2 のAPARでサポートされました。

PROCCTLステートメントにHASH=YESと共に、索引データベースと索引対象データベースを指定すれば索引データベース内のインデックス・ポインターの整合性をHASHチェックします。更にインデックス・キー・チェック・オプションIXKEYCHK=YESを指定すれば、索引データベース内のキーの整合性もHASHチェックを行います(図9)。

インデックス・キー・チェックは 索引データベース中の索引ポインター(Index Pointer Segment, 以後IPS)中にある索引キーと索引対象データベース中のソース・セグメント(Index Source Segment, 以後ISS)のキーが一致することをチェックするオプションです。 ただし、これらの機能拡張はnon-HALDBの索引に関して有効で、HALDBのPartitioned Secondary IndexはHASHチェックできません。

図9. 索引データベースのチェック
図9. 索引データベースのチェック

ISSに分離が発生している場合のスタンダード・チェック制限緩和

(*)セグメント分離(split)とは

可変長セグメントの更新時に、セグメント長が変更前よりも長くなり、元の場所に十分な空きスペースがない場合、IMSは接頭部(Prefix portion)のみ元の場所に置き、データ部を離れた場所に配置します。このようになったセグメントを分離されたセグメントと呼びます。索引のソース・セグメントでも可変長の場合、分離が発生します。なお、分離が多発しているとデータベース処理パフォーマンスが悪化する場合があります。再編成によってセグメント分離は解消しますので、このような場合は再編成の実行を推奨します。

可変長のISSにセグメント分離(*)が発生している場合、スタンダード・チェックでもHASHチェックでも インデックス・キー・チェックを行えませんでした。V3.1より、スタンダード・チェックでは可能となりました。ただし、HASHチェックでは分離が発生しているデータベースのインデックス・キー・チェックを行えません。セグメント分離の有無は"HD DATA SET STATISTICS REPORT" で確認できます。分離が発生している場合は、スタンダード・チェックを実行してください。


記号ポインター、論理ポインターのチェック強化(HDPC)

スタンダード・チェックにおける記号索引ポインター、記号論理ポインターの制限緩和

通常、IMSのポインターはポイント先のセグメントの位置を示す相対バイト・アドレス(Relative Byte Address, 以後RBA)でセグメントをポイントします。これを直接ポインターまたは単にポインターと呼びます。それに対して、記号ポインターはRBAではなく、ルートからターゲット・セグメントまでの階層パス上にあるセグメントのキーを連結した連結キー(Concatenated Key)でターゲット・セグメントをポイントします。索引データベース内のインデックス・ポインターと、論理関係の論理ポインターで記号ポインターを使用できます。HPPCのSYMIXCHKオプションで索引の、SYMLPCHKオプションで論理関係の記号ポインターをスタンダード・チェックできます。

図10. 記号索引ポインターのチェック
図10. 記号索引ポインターのチェック

図10は索引データベースにおける記号索引ポインターの例です。従来のSYMIXCHK,SYMLPCHKは図10のように記号ポインターがポイントする先のターゲット・セグメントが従属セグメントの場合ポインター・チェックを行えませんでした。チェックできるのはターゲットがルート・セグメントの場合だけでした。HPPC V3.1ではターゲットが従属セグメントでもチェックが可能となりました。この機能拡張に伴い、ターゲット・セグメントが階層構造で下のレベルにある従属セグメントに定義されている場合、つまりセグメント・レベル数値が大きい場合は、SYMIXCHK=YES,SYMLPCHK=YES指定時に、V2.2よりもStorage使用量、CPUタイム、Elapsed Timeが増加する場合があります。なお、SYMIXCHK,SYMLPCHKのHASHチェックはサポートされていませんので、HASHチェックの場合は影響ありません。

HASHチェックにおける論理ポインターの制限緩和

RBAを用いてターゲットをポイントする論理ポインターは、従来からスタンダード・チェック、HASHチェック、両方可能でした。しかし、HASHチェックではポイント先のターゲットが従属セグメントの場合はHASHチェックできないという制限がありました。2009年12月にリリースされたV3.1 APAR PM03755によって、この制限が緩和され、ターゲットが従属セグメントでもHASHチェック可能となりました。

索引データベース、セグメント分離、記号ポインターに関して、より詳しいことは参考文献(1)を参照ください。


Extended Addressability Volumeサポート(HDPC,SPMN)

z/OS R10では、EAV (Extended Address Volume)が新しくサポートされ、従来の限界値 (1 volume当たり65,520 Cylinders)を超える大きさのDASD volumeが利用可能になりました。IMSのデータベースのうち、VSAMファイルは65,520 Cylindersを超える位置、シリンダー管理域(図11)に作成できます。HPPC V3.1 APAR(PK73041, PK88523)で、HDPCとSPMNでシリンダー管理域にあるVSAMファイルを処理可能となりました。なお、当修正適用後は、HDPCとSPMNの統計情報レポートのDASD上のアドレスやシリンダー数を表示している数値の桁数が増えます。EAVを使用しない場合も同様に変更となります。

図11. Extended Address Volume
図11. Extended Address Volume

EAVの詳細は参考文献(2)を参照ください。


4ギガバイトを超えるファイルのサポート (SPMN)

HPPC V3.1のAPAR(PK95690)で、SPMNで4ギガバイト以上のVSAMファイルを処理可能となりました。4ギガバイト以上の大きさのVSAMファイルはIMSデータベースではサポートされていません。しかし、SPMNはIMSデータベース以外のOSファイルも従来からサポートしており、4ギガバイト以上のVSAMへ対応を行いました。例えば、4ギガバイト以上の大きさのDB2のVSAMファイルを、SPMNでファイル・サイズやエクステント可能回数、CI,CA Split回数等を監視することができます。


並列処理によるHDPCパフォーマンス改善

HPPC V2.1 GAでは、データベース読み込み処理(SCAN処理)の並列化や内部処理の改善によって、HDPCの処理時間、Storage使用量ともに大幅に削減されました。例えば、あるテスト計測では総データ量10ギガバイトの8個のHDAMやHIDAMデータベース を4並列タスクで読み込み処理を行うと、並列処理無しの場合と比較してElapsed Time(総処理時間)が半分以下に削減されるという結果が得られました(図12)。並列処理をするには、PROCCTLコントロール・ステートメントにSCANGROUP=を指定します。

図12. 単一SCANと4並列SCANのHDPC Elapsed Time比較
図12. 単一SCANと4並列SCANのHDPC Elapsed Time比較

HPPC V3.1 GAでは、更にHALDB処理のElapsed Timeが削減されました。

HALDBに索引データベースや論理関係が定義されている場合、IMSはIndirect List Data Set(ILDS)と呼ばれる間接ファイルを使ってポインターを維持します。ILDSはVSAMファイルで、パーティション毎に1ファイル作成され、IMSによって管理されます。 HALDB ILDSの詳細は参考文献(3)を参照ください。

HDPCのスタンダード・チェックでHALDBの索引ポインターや論理ポインターをチェックする際にILDSを参照します。HPPC V3.1ではILDSの並列読み込み処理が行われ、これによりElapsed Timeが更に削減されます。ILDSを読む並列タスクの数は、SCANGROUP=に指定されたタスク数と同じ数となりますので、SCANGROUP=によるタスク数を増やせば、それだけ処理時間が削減されます。テスト計測では、Partition Secondary indexを二つ持つ、5パーティションで構成される約3ギガバイトのHALDBを5並列SCANで処理した場合、V3.1はV2.2に対して約20% Elapsed Timeが削減しました。

SCANGROUP指定はHALDBに限らず、非HALDBにも有効です。Elapsed Timeの大幅な削減を期待できますので、現在SCANGROUPを使用していない場合、使用を検討されてはいかがでしょうか。


まとめ

以上、HPPC V3.1の移行上の考慮点と変更点をまとめました。HPPC V2.1からV3.1にかけて、ユーザビリティーが向上され、索引や論理ポインターのチェックが強化されています。旧バージョンからの移行時には、新機能も含めてHPPCをより活用することをご検討ください。

なお、本稿以降の機能拡張、変更点は IMS Tools Libraryサイト の”See Updates to this book!” やAPAR Descriptionをご覧下さい。

参考文献

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=467992
ArticleTitle=IMS データベース診断ツール: IMS HP Pointer Checker V3.1 新機能と移行ガイド
publish-date=02262010