リリース情報 IBM(R) DB2(R) ユニバーサル・データベース リリース情報 バージョン 7.2/ バージョン 7.1 フィックスパック 3 (C) Copyright International Business Machines Corporation 2000, 2001. All rights reserved. Note to U.S. government Users -- Documentation related ... ------------------------------------------------------------------------ 目次 * 目次 * DB2 ユニバーサル・データベース バージョン 7 へようこそ! ------------------------------------------------------------------------ 特に注意が必要な事項 * 特に注意が必要な事項 o 1.1 DB2 UDB バージョン 7 のユーザー補助機能 + 1.1.1 キーボードによる入力および操作 + 1.1.1.1 キーボード入力 + 1.1.1.2 キーボード・フォーカス + 1.1.2 ディスプレイを見やすくする機能 + 1.1.2.1 高コントラスト・モード + 1.1.2.2 フォント設定 + 1.1.2.3 色の非依存 + 1.1.3 選べる警告キュー + 1.1.4 補助技術の互換性 + 1.1.5 利用しやすい資料 o 1.2 追加が必要な Solaris パッチ・レベル o 1.3 DB2 (Solaris 版) バージョン 7 でサポートしている CPU o 1.4 分割したデータベースにノードを追加する際の問題 o 1.5 移行中のエラー o 1.6 Chinese Locale Fix on Red Flag Linux o 1.7 取りはずし可能ドライブが接続されていない場合に DB2 インストー ラーが停止することがあります o 1.8 日本語 Linux 版 および中国語 (簡体字) Linux 版 の DB2 の追加 ロケール設定 o 1.9 Microsoft Internet Explorer 上でのコントロール・センターの問 題 o 1.10 情報カタログ・マネージャー と Sybase の Windows 環境での非互 換性 o 1.11 コントロール・センター機能の喪失 o 1.12 DB2 UDB に添付されていない Netscape CD o 1.13 XML Readme ファイルでのエラー o 1.14 Linux (S/390 版) でのデータ損失の可能性 o 1.15 Windows 2000 上の DB2 UDB * オンライン資料 (HTML、PDF、および Search) o 2.1 Windows 2000 オペレーティング・システムでサポートされている Web ブラウザー o 2.2 Solaris 版 DB2 オンライン情報の検索 o 2.3 OS/2 上で TCP/IP を使用するよう NetQuestion を切り替える o 2.4 Netscape を立ち上げようとした場合のエラー・メッセージ o 2.5 UNIX ベース・システム上での Adobe Acrobat Reader の構成要件 o 2.6 SQL 解説書は 1 つの PDF ファイルで提供されます ------------------------------------------------------------------------ インストールおよび構成 * 一般インストール情報 o 3.1 すべてのサポートされる DB2 クライアントのインストール・パッケ ージをダウンロード o 3.2 Windows 2000 に DB2 をインストール o 3.3 特別レジスターで定義した視点による移行の実行 o 3.4 IPX/SPX プロトコル・サポート (Windows 2000 版) o 3.5 前バージョンの DB2 をアップグレードする前に DB2 の処理を停止 o 3.6 別の DB2 製品がすでにインストールされている場合はインストール 後に db2iupdt を実行 o 3.7 DB2 コントロール・センターを実行するために Linux 環境を設定 o 3.8 Linux (S/390 版) 用の DB2 ユニバーサル・データベース・エンタ ープライズ・エディションおよび DB2 コネクト エンタープライズ・エ ディション o 3.9 DB2 ユニバーサル・データベース・エンタープライズ - 拡張エディ ション (UNIX 版) 概説およびインストール o 3.10 shmseg カーネル・パラメーター (HP-UX) o 3.11 IBM Visual Warehouse コントロール・データベースの移行 o 3.12 ウェアハウス・コントロール・データベースへのアクセス * データ・リンク・マネージャー 概説およびインストール o 4.1 Dlfm 開始の失敗のメッセージ: 「接頭部の afsfid を取得中にエラ ー」 o 4.2 アーカイブ・ファイルへの Tivoli Storage Manager クラスの設定 o 4.3 DFS クライアント・イネーブラーのディスク・スペース要件 o 4.4 AIX におけるデータ・リンク・ファイル・マネージャー・バックエ ンド・プロセスのモニター o 4.5 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: DCE-DFS 環境における追加のインストールの注意点 o 4.6 "dlfm add_prefix" コマンドの失敗 o 4.7 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: db2setup ユーティリティーを使用して DB2 データ・リンク・ マネージャーをインストール o 4.8 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: DCE-DFS インストール後の作業 o 4.9 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: smit を使用して DB2 データ・リンク・マネージャーを手動で インストール o 4.10 DB2 データ・リンク DFS クライアント・イネーブラー o 4.11 DB2 データ・リンク・マネージャー (Solaris 版) のインストール および構成 o 4.12 DB2 データ・リンク・マネージャー (AIX 版) のバックアップ方式 の選択 o 4.13 DB2 データ・リンク・マネージャー (Solaris Operating Environment 版) のバックアップ方式の選択 o 4.14 DB2 データ・リンク・マネージャー (Windows NT 版) のバックア ップ方式の選択 o 4.15 AIX におけるジャーナル・ファイル・システムのバックアップ o 4.16 Windows NT のデータ・リンクでのアドミニストレーター・グルー プ権限 o 4.17 データ・リンク・ファイル・システム・フィルター (DLFF) インス トールのロギングの最小化 + 4.17.1 インストール後のメッセージのロギング o 4.18 SMIT を使用して DLFM 構成要素をアンインストールすると他のフ ァイル・セットも除去される可能性があります o 4.19 開始する前のホスト名の判別 o 4.20 データ・リンク・ファイル・マネージャーの操作: DB2 データベー スから DB2 データ・リンク・マネージャーをドロップした後のクリーン アップ o 4.21 DLFM1001E (新規エラー・メッセージ) o 4.22 DLFM セットアップ構成ファイル・オプション o 4.23 AIX 上でのデータ・リンク/DFS スクリプト dmapp_prestart 実行 時エラー o 4.24 Tivoli Space Manager とデータ・リンクとの統合 + 4.24.1 制約事項と制限 o 4.25 第 4 章 DB2 データ・リンク・マネージャー (AIX 版) のインスト ールおよび構成 + 4.25.1 一般的なインストールの注意点 + 4.25.1.1 DB2 ファイル・マネージャー・バージョン 5.2 か ら DB2 データ・リンク・マネージャー・バージョン 7 への 移行 * インストールおよび構成補足 o 5.1 第 5 章 UNIX オペレーティング・システムへの DB2 クライアント のインストール + 5.1.1 HP-UX カーネル構成パラメーター o 5.2 第 12 章 お持ちのアプリケーションの実行 + 5.2.1 ランタイム・クライアントを使用するデータベース・ユーテ ィリティーのバインド + 5.2.2 ODBC を使用しての DB2 への UNIX クライアント・アクセス o 5.3 第 24 章 複数データ・ソース・アクセス用の統合システムのセット アップ + 5.3.1 統合システム + 5.3.1.1 制約事項 + 5.3.2 DB2 リレーショナル・コネクトのインストール + 5.3.2.1 Windows NT サーバーへの DB2 リレーショナル・コ ネクトのインストール + 5.3.2.2 AIX サーバー、Linux サーバー、および Solaris 操 作環境サーバーへの DB2 リレーショナル・ コネクトのイン ストール o 5.4 第 26 章 Oracle データ・ソースへのアクセス + 5.4.1 記述の誤り o 5.5 Sybase データ・ソースへのアクセス (新しい章) + 5.5.1 統合サーバーへの Sybase データ・ソースの追加 + 5.5.1.1 ステップ 1: 環境変数の設定およびプロファイル・ レジストリーの更新 + 5.5.1.2 ステップ 2: Sybase クライアント・ソフトウェアへ の DB2 のリンク (AIX および Solaris の場合のみ) + 5.5.1.3 ステップ 3: DB2 インスタンスの再生 + 5.5.1.4 ステップ 4: interfaces ファイルの作成およびセッ トアップ + 5.5.1.5 ステップ 5: ラッパーの作成 + 5.5.1.6 ステップ 6: オプション: DB2_DJ_COMM 環境変数の 設定 + 5.5.1.7 ステップ 7: サーバーの作成 + 5.5.1.8 オプション: ステップ 8: CONNECTSTRING サーバ ー・オプションの設定 + 5.5.1.9 ステップ 9: ユーザー・マッピングの作成 + 5.5.1.10 ステップ 10: 表および視点のニックネームの作成 + 5.5.2 Sybase コード・ページの指定 o 5.6 ODBC による Microsoft SQL Server データ・ソースへのアクセス (新しい章) + 5.6.1 統合サーバーへの Microsoft SQL Server データ・ソースの 追加 + 5.6.1.1 ステップ 1: 環境変数の設定 (AIX の場合のみ) + 5.6.1.2 ステップ 2: シェル・スクリプトの実行 (AIX の場 合のみ) + 5.6.1.3 ステップ 3: オプション: DB2_DJ_COMM 環境変数の 設定 + 5.6.1.4 ステップ 4: DB2 インスタンスの再生 (AIX の場合 のみ) + 5.6.1.5 ステップ 5: ラッパーの作成 + 5.6.1.6 ステップ 6: サーバーの作成 + 5.6.1.7 ステップ 7: ユーザー・マッピングの作成 + 5.6.1.8 ステップ 8: 表および視点のニックネームの作成 + 5.6.1.9 ステップ 9: オプション: ODBC トレースの取得 + 5.6.2 Microsoft SQL Server コード・ページの検討 ------------------------------------------------------------------------ 管理 * 管理の手引き: 計画 o 6.1 第 8 章 物理データベース設計 + 6.1.1 区分化キー o 6.2 ノード・グループの設定 o 6.3 第 9 章 分散データベースの設計 + 6.3.1 複数のデータベースの更新 o 6.4 第 13 章 Windows NT 環境での高可用性 + 6.4.1 DB2MSCS ユーティリティーの実行前にマシンのリブートが必 要 o 6.5 第 14 章 DB2 および Sun クラスター 2.2 上での高可用性 o 6.6 Solaris での Veritas サポート o 6.7 付録 B. 命名規則 + 6.7.1 8 文字より長いユーザー ID とスキーマ名に関する注意点 + 6.7.2 ユーザー ID およびパスワード o 6.8 付録 D. リリース間の非互換性 + 6.8.1 Windows NT DLFS は Norton のユーティリティーと非互換 + 6.8.2 SET CONSTRAINTS が SET INTEGRITY に置き換えられる o 6.9 付録 E. ナショナル・ランゲージ・サポート + 6.9.1 DB2 バージョン 7 の各国語版 + 6.9.1.1 コントロール・センターと資料のファイル・セット + 6.9.2 DB2 管理サーバーのロケール設定 + 6.9.3 DB2 UDB は Baltic Rim コード・ページ (MS-1257) を Windows プラットフォームでサポートします + 6.9.4 コード・ページ値の取得 + 6.9.5 国別コードおよびコード・ページのサポート + 6.9.6 文字セット * 管理の手引き : インプリメンテーション o 7.1 DMS コンテナーの追加または拡張 (新規プロセス) o 7.2 第 1 章 GUI ツールによる DB2 の管理 o 7.3 第 3 章 データベースの作成 + 7.3.1 表スペースの作成 + 7.3.1.1 Linux でのロー入出力の使用 + 7.3.2 シーケンスの作成 + 7.3.3 IDENTITY 列とシーケンスの比較 + 7.3.4 索引の作成、索引拡張子、または索引の指定 o 7.4 第 4 章 データベースの変更 + 7.4.1 区分内の SMS 表スペースへのコンテナーの追加 + 7.4.2 識別列の変更 + 7.4.3 シーケンスの変更 + 7.4.4 シーケンスのドロップ + 7.4.5 表スペース状況の切り換え + 7.4.6 DMS 表スペース内のコンテナーの変更 o 7.5 第 5 章 データベース・アクセスの制御 + 7.5.1 シーケンス特権 + 7.5.2 データ暗号化 o 7.6 第 8 章 データベースの回復 + 7.6.1 中断入出力の使用法 + 7.6.2 増分バックアップおよびリカバリ + 7.6.2.1 増分バックアップ・イメージからの復元 + 7.6.3 並列リカバリ + 7.6.4 名前付きパイプへのバックアップ + 7.6.5 分割イメージからのバックアップ + 7.6.6 オンデマンド・ログ・アーカイブ + 7.6.7 ログ・ミラーリング + 7.6.8 Sun Solaris および HP における、プラットフォーム間のバ ックアップおよびリストア・サポート + 7.6.9 DB2 データ・リンク・マネージャーに関する考慮事項/バッ クアップ・ユーティリティーに関する考慮事項 + 7.6.10 DB2 データ・リンク・マネージャーに関する考慮事項/リス トアおよびロールフォワード・ ユーティリティーに関する考慮事 項 + 7.6.11 ロールフォワードなしで、オフライン・バックアップから データベースを復元 + 7.6.12 データベースと表スペースを復元、およびログの最後まで ロールフォワード + 7.6.13 DB2 データ・リンク・マネージャーとリカバリの相互作用 + 7.6.14 調整を必要とする状態の検出 o 7.7 付録 C. データベース・リカバリの終了 o 7.8 付録 D. 複数のデータベース区分サーバーへのコマンド実行 o 7.9 付録 I. 高速内部ノード通信 + 7.9.1 VI を 使用して DB2 を実行するためのイネーブリング * 管理の手引き : パフォーマンス o 8.1 第 3 章 アプリケーション考慮事項 + 8.1.1 分離レベルの指定 + 8.1.2 最適化クラスの調整 + 8.1.3 動的複合ステートメント o 8.2 第 4 章 環境考慮事項 + 8.2.1 より大きな索引キーの使用 o 8.3 第 5 章 システム・カタログ統計 + 8.3.1 分配統計の収集と使用 + 8.3.2 カタログ統計の更新規則 + 8.3.3 サブエレメント統計 o 8.4 第 6 章 SQL コンパイラーの知識 + 8.4.1 複製要約表 + 8.4.2 データ・アクセス概念および最適化 o 8.5 第 8 章 操作パフォーマンス + 8.5.1 データベース・バッファー・プールの管理 + 8.5.2 複数のデータベース・バッファー・プールの管理 o 8.6 第 9 章 管理プログラムの使用 o 8.7 第 13 章 DB2 の構成 + 8.7.1 ソート・ヒープ・サイズ (sortheap) + 8.7.2 ヒープしきい値のソート (sheapthres) + 8.7.3 エスカレーション前のロック・リストの最大パーセント (maxlocks) + 8.7.4 DB2 構成/データ・リンク・マネージャー/データ・リンク・ アクセス・トークン期限切れの 間隔 (dl_expint) + 8.7.5 MIN_DEC_DIV_3 データベース構成パラメーター + 8.7.6 アプリケーション制御ヒープ・サイズ (app_ctl_heap_sz) + 8.7.7 データベース・システム・モニター・ヒープ・サイズ (mon_heap_sz) + 8.7.8 活動アプリケーションの最大数 (maxappls) + 8.7.9 復元範囲およびソフト・チェックポイント間隔 (softmax) + 8.7.10 変更されたページの追跡を可能にする (trackmod) + 8.7.11 データベース・ログ・パスの変更 (newlogpath) + 8.7.12 ログ・ファイルのロケーション (logpath) + 8.7.13 ロック・リスト用最大記憶域 (locklist) o 8.8 付録 A DB2 レジストリーと環境変数 + 8.8.1 新規およびレジストリー変数を変更した表 o 8.9 付録 C SQL 説明ツール * サテライト管理 手引きおよび解説書 o 9.1 バージョン 7.2 DB2 パーソナル・エディションおよび DB2 ワーク グループ・エディションを サテライトとしてセットアップ + 9.1.1 前提条件 + 9.1.1.1 インストール上の考慮事項 + 9.1.2 同期化のためのバージョン 7.2 システムの構成 + 9.1.3 エンタープライズ・エディション・システムでのフィックス パック 2 以上の インストール + 9.1.3.1 DB2 制御サーバーとして使用するためにバージョン 6 DB2 エンタープライズ・エディションを アップグレード + 9.1.4 バージョン 6 コントロール・センター および サテライト 管理センター のアップグレード * コマンド解説書 o 10.1 db2batch - ベンチマーク・ツール o 10.2 db2cap (新規コマンド) + db2cap - CLI/ODBC 静的パッケージ・バインディング・ツール o 10.3 db2ckrst (新規コマンド) + db2ckrst - 増分復元イメージ順序の検査 o 10.4 db2gncol (新規コマンド) + db2gncol - 生成した列の値を更新します o 10.5 db2inidb - ミラーリングされたデータベースの初期化 o 10.6 db2look - DB2 統計抽出ツール o 10.7 db2updv7 - データベースをバージョン 7 現行修正レベルに更新 o 10.8 新規コマンド行プロセッサー・オプション (-x, 列見出しの印刷を 抑止します。) o 10.9 DB2 CLP が必要とする True Type フォント o 10.10 ADD DATALINKS MANAGER o 10.11 ARCHIVE LOG (新規コマンド) + Archive Log o 10.12 BACKUP DATABASE + 10.12.1 構文図 + 10.12.2 DB2 データ・リンク・マネージャーの考慮事項 o 10.13 BIND o 10.14 CALL o 10.15 DROP DATALINKS MANAGER (新規コマンド) + DROP DATALINKS MANAGER o 10.16 EXPORT o 10.17 データベース構成の更新 o 10.18 GET ROUTINE (新規コマンド) + GET ROUTINE o 10.19 GET SNAPSHOT o 10.20 IMPORT o 10.21 LIST HISTORY o 10.22 LOAD o 10.23 PING (新規コマンド) + PING o 10.24 PUT ROUTINE (新規コマンド) + PUT ROUTINE o 10.25 RECONCILE o 10.26 REORGANIZE TABLE o 10.27 RESTORE DATABASE + 10.27.1 構文 + 10.27.2 DB2 データ・リンク・マネージャーの考慮事項 o 10.28 ROLLFORWARD DATABASE o 10.29 CLP 戻りコードに関する文書の誤り * データ移動ユーティリティー 手引きおよび解説書 o 11.1 第 2 章 インポート + 11.1.1 バッファー挿入を行うインポートを使用 o 11.2 第 3 章 ロード + 11.2.1 ロード操作後の保留状態 + 11.2.2 ロード制約事項と制限 + 11.2.3 totalfreespace ファイル・タイプ修飾子 o 11.3 第 4 章 オートローダー + 11.3.1 認証を YES に設定したときにオートローダーの実行を必要 とする rexecd * DB2 レプリケーションの手引きおよび解説書 o 12.1 レプリケーションおよび非 IBM サーバー o 12.2 Windows 2000 上のレプリケーション o 12.3 SQL ファイルの保管時に知られているエラー o 12.4 DB2 保守 o 12.5 Web 上の Data Difference Utility o 12.6 第 3 章 データ・レプリケーション・シナリオ + 12.6.1 レプリケーションのシナリオ o 12.7 第 5 章 レプリケーションの計画 + 12.7.1 表および列名 + 12.7.2 DATALINK レプリケーション + 12.7.3 LOB の制約事項 + 12.7.4 レプリケーションの計画 o 12.8 第 6 章 レプリケーション環境のセットアップ + 12.8.1 任意の場所で更新 (Update-anywhere) の前提条件 + 12.8.2 レプリケーション環境のセットアップ o 12.9 第 8 章 問題判別 o 12.10 第 9 章 キャプチャー・プログラムおよびアプライ・プログラム (AS/400 版) o 12.11 第 10 章 キャプチャー・プログラムおよびアプライ・プログラム (OS/390 版) + 12.11.1 DB2 DataPropagator (OS/390 版) の前提条件 + 12.11.2 OS/390 での UNICODE および ASCII エンコード・スキー ム + 12.11.2.1 エンコード・スキームの選択 + 12.11.2.2 エンコード・スキームの設定 o 12.12 第 11 章 キャプチャー・プログラムおよびアプライ・プログラム (UNIX 版) + 12.12.1 UNIX および Windows でのキャプチャー・プログラムとア プライ・プログラムの環境変数の設定 o 12.13 第 14 章 表の構造 o 12.14 第 15 章 キャプチャー・プログラムとアプライ・プログラムのメ ッセージ o 12.15 付録 A 収集およびアプライ・プログラムをアプリケーション内で 開始する * システム・モニター 手引きおよび解説書 o 13.1 db2ConvMonStream * 問題判別の手引き o 14.1 ユーザーがログオンしていないときに DB2 を Windows 95、 Windows 98、 または Windows ME で開始 o 14.2 第 2 章 DB2 ユニバーサル・データベース・サーバーの障害追及 * 64 ビット・プラットフォームで DB2 ユニバーサル・データベースを使用する o 15.1 第 5 章 構成 + 15.1.1 LOCKLIST + 15.1.2 shmsys:shminfo_shmmax o 15.2 第 6 章 制約事項 * XML エクステンダー 管理およびプログラミング * MQSeries o 17.1 DB2 MQSeries 関数のインストールおよび構成 + 17.1.1 MQSeries のインストール + 17.1.2 MQSeries AMI のインストール + 17.1.3 DB2 MQSeries 関数を使用可能にする o 17.2 MQSeries メッセージ・スタイル o 17.3 メッセージ構造 o 17.4 MQSeries 関数の概説 + 17.4.1 制約事項 + 17.4.2 エラー・コード o 17.5 使用のシナリオ + 17.5.1 基本メッセージング + 17.5.2 メッセージの送信 + 17.5.3 メッセージの取り出し + 17.5.4 アプリケーション間接続 + 17.5.4.1 要求/応答通信 + 17.5.4.2 発行/サブスクリプション o 17.6 enable_MQFunctions + enable_MQFunctions o 17.7 disable_MQFunctions + disable_MQFunctions ------------------------------------------------------------------------ 管理ツール * コントロール・センター o 18.1 DB2 サーバー (VSE および VM 版) の管理化 o 18.2 コントロール・センターの Java 1.2 サポート o 18.3 Windows オペレーティング・システムでオンライン・ヘルプを使用 時の 「無効なショートカット」エラー o 18.4 OS/2 版 Java コントロール・センター o 18.5 Windows オペレーティング・システム上のジャーナルで完了したジ ョブを表示する際の 「ファイル・アクセスが拒否されました」エラー o 18.6 複数サイト更新テスト接続 o 18.7 DB2 (OS/390 版) のコントロール・センター o 18.8 DB2 (OS/390 版) コントロール・センターの修正 o 18.9 「地理情報層の作成」ダイアログへの変更点 o 18.10 DB2 コントロール・センターの障害追及情報 o 18.11 UNIX ベース・システム上でのコントロール・センターの障害追及 o 18.12 OS/2 上での infopop の問題 o 18.13 jdk11_path 構成パラメーターのヘルプ o 18.14 スクリプト・センターまたはジャーナルを使用中の Solaris シス テム・エラー (SQL10012N) o 18.15 DPREPL.DFT ファイルのヘルプ o 18.16 複数のコントロール・センター・アプレットの立ち上げ o 18.17 アプレットとして実行中のコントロール・センターのオンライ ン・ヘルプ o 18.18 コントロール・センターをアプレット・モードで実行 (Windows 95) o 18.19 大きな照会結果の操作 * インフォメーション・センター o 19.1 Windows オペレーティング・システムでの「無効なショートカッ ト」エラー o 19.2 Netscape がすでにオープンしているときに、Netscape Navigator の外部 Web リンクをオープンする (UNIX ベース・システム) o 19.3 インフォメーション・センター開始時の問題 * ウィザード o 20.1 データベース作成ウィザードの拡張サイズの設定 o 20.2 MQSeries Assist ウィザード o 20.3 OLE DB Assist ウィザード ------------------------------------------------------------------------ ビジネス・インテリジェンス * ビジネス・インテリジェンス・チュートリアル o 21.1 改訂されたビジネス・インテリジェンス・チュートリアル * データウェアハウスセンター管理の手引き o 22.1 障害追及 o 22.2 Excel を ウェアハウス・ソースとしてセットアップ o 22.3 プロセスの定義と実行 o 22.4 「メタデータのエクスポート」ダイアログ o 22.5 Submit OS/390 JCL jobstream (VWPMVS) プログラムに関する値の 定義 o 22.6 データウェアハウス・サンプル付録の変更 o 22.7 データウェアハウスセンター・メッセージ o 22.8 DB2 OLAP Integration Server でのアウトラインの作成およびデー タのロード o 22.9 データウェアハウスセンターでのクラシック・コネクトの使用 o 22.10 データウェアハウスセンター環境構造 o 22.11 逆転トランスフォーマーの使用 o 22.12 DB2 バージョン 7 ウェアハウス・エージェントでの DB2 バージ ョン 5 データへのアクセス + 22.12.1 DB2 バージョン 5 サーバーの移行 + 22.12.2 エージェント構成の変更 + 22.12.2.1 UNIX ウェアハウス・エージェント + 22.12.2.2 Microsoft Windows NT、Windows 2000、および OS/2 ウェアハウス・エージェント o 22.13 IBM ERwin メタデータ抽出プログラム + 22.13.1 内容 + 22.13.2 ソフトウェア要件 + 22.13.3 プログラム・ファイル + 22.13.4 タグ言語ファイルの作成 + 22.13.5 データウェアハウスセンターへのタグ言語ファイルのイン ポート + 22.13.6 情報カタログ・マネージャーへのタグ言語ファイルのイン ポート + 22.13.7 障害追及 + 22.13.8 DB2 データウェアハウスセンターへの ERwin のマッピン グ + 22.13.8.1 情報カタログ・マネージャーへの ERwin のマッピ ング o 22.14 データウェアハウスセンターでの名前およびアドレスのクレンジ ング + 22.14.1 + 22.14.1.1 要件 + 22.14.1.2 Trillium Software System コンポーネント + 22.14.1.3 データウェアハウスセンターでの Trillium バッ チ・システムの使用 + 22.14.1.4 Trillium メタデータのインポート + 22.14.1.5 メタデータのマッピング + 22.14.1.6 制約事項 + 22.14.2 Trillium バッチ・システム JCL ファイルの作成 + 22.14.3 UNIX および Windows での Trillium バッチ・システム・ スクリプト・ファイルの作成 + 22.14.4 Trillium バッチ・システム・ステップの定義 + 22.14.5 Trillium バッチ・システム・ユーザー定義プログラムの 使用 + 22.14.6 エラー処理 + 22.14.6.1 エラー戻りコード + 22.14.6.2 ログ・ファイル o 22.15 MQSeries とデータウェアハウスセンターの統合 + 22.15.1 MQSeries メッセージの視点の作成 + 22.15.1.1 要件 + 22.15.1.2 制約事項 + 22.15.1.3 MQSeries メッセージの視点の作成 + 22.15.2 MQSeries メッセージおよび XML メタデータのインポート + 22.15.2.1 要件 + 22.15.2.2 制約事項 + 22.15.2.3 MQSeries メッセージおよび XML メタデータのイ ンポート + 22.15.2.4 MQSeries ユーザー定義プログラムの使用 + 22.15.2.5 エラー戻りコード + 22.15.2.6 エラー・ログ・ファイル o 22.16 Microsoft OLE DB および Data Transaction Services サポート + 22.16.1 OLE DB 表関数の視点の作成 + 22.16.2 DTS パッケージの視点の作成 o 22.17 置換での増分コミットの使用 o 22.18 構成要素トレース・データ・ファイル名 o 22.19 AIX および Solaris 操作環境の Sybase ソースに必要な Open Client o 22.20 サンプル項目の訂正 o 22.21 第 3 章 ウェアハウス・ソースのセットアップ + 22.21.1 ウェアハウス・ソースに Microsoft Access のメモ・フィ ールドをマッピング o 22.22 第 10 章 ウェアハウス・データベースの保守 + 22.22.1 DB2 UDB RUNSTATS プログラムのステップ・サブタイプに 表をリンク o 22.23 デフォルト・ウェアハウス・コントロール・データベース o 22.24 「ウェアハウス・コントロール・データベース管理」ウィンドウ o 22.25 活動ウェアハウス・コントロール・データベースの変更 o 22.26 ウェアハウス・コントロール・データベースの作成および初期化 o 22.27 改訂された SQL ステップの作成 o 22.28 「プロセス・モデル」ウィンドウでのソースおよびターゲットの 変更 o 22.29 データウェアハウスセンター・オブジェクトへの記述の追加 o 22.30 サンプル・コンテンツの実行 o 22.31 「DDL の作成」SQL ステートメントの編集 o 22.32 Visual Warehouse ビジネス・ビューの移行 o 22.33 ターゲット表および 1 次キーの生成 o 22.34 Merant ODBC ドライバーの使用 o 22.35 新しい ODBC ドライバー o 22.36 OS/2 データベースのウェアハウス・ソースまたはターゲットの定 義 o 22.37 ウェアハウス・コントロール・データベースの状況のモニター o 22.38 TBC_MD サンプル・データベースでの SQL Assist の使用 o 22.39 FormatDate 関数の使用 o 22.40 言語設定の変更 o 22.41 キー表生成トランスフォーマーの使用 o 22.42 データベースへの接続の保守 o 22.43 リモート・データウェアハウスセンター・クライアントのセット アップ o 22.44 DB2 (VM 版) ウェアハウス・ソースの定義 o 22.45 DB2 (VM 版) または DB2 (VSE 版) ターゲット表の定義 o 22.46 区切り識別子サポートの使用可能化 o 22.47 バインドの問題を示す DataJoiner エラー o 22.48 データウェアハウスセンターのレプリケーションのセットアップ および実行 o 22.49 障害追及のヒント o 22.50 ソースおよびターゲットへのアクセス o 22.51 その他のサポートされる IBM 以外のデータベース・ソース o 22.52 データウェアハウスセンターでの手操作によるデータ・ソースの 作成 o 22.53 共通ウェアハウス・メタデータ交換 (CWMI) を使用したインポー トおよびエクスポート + 22.53.1 入門 + 22.53.2 メタデータのインポート + 22.53.3 インポート・ユーティリティー実行後のメタデータの更新 + 22.53.4 メタデータのエクスポート o 22.54 OS/390 Runstats ユーティリティー・ステップ o 22.55 OS/390 Load ユーティリティー・ステップ o 22.56 共通ウェアハウス・メタモデル (CWM) XML サポート o 22.57 プロセス・モデラー o 22.58 スキーマ・モデラー o 22.59 必須フィールド o 22.60 データウェアハウスセンター・ランチパッド機能強化 o 22.61 ファイルへのステップ情報の印刷 * データウェアハウスセンター アプリケーション統合の手引き o 23.1 その他のメタデータ・テンプレート + 23.1.1 Commit.tag + 23.1.1.1 トークン + 23.1.1.2 値の例 + 23.1.2 ForeignKey.tag + 23.1.2.1 トークン + 23.1.2.2 値の例 + 23.1.3 ForeignKeyAdditional.tag + 23.1.3.1 トークン + 23.1.3.2 値の例 + 23.1.4 PrimaryKey.tag + 23.1.4.1 トークン + 23.1.4.2 値の例 + 23.1.5 PrimaryKeyAdditional.tag + 23.1.5.1 トークン + 23.1.5.2 値の例 * データウェアハウスセンター・オンライン・ヘルプ o 24.1 レプリケーション用に表またはビューを定義 o 24.2 AS/400 エージェントでの Essbase VWP の実行 o 24.3 「データウェアハウスセンター・メタデータの発行」ウィンドウお よび「関連プロパティー」ウィンドウの使用 o 24.4 外部キー o 24.5 「レプリケーション」ノートブック o 24.6 タグ言語のインポート o 24.7 「データの追加」のリンク o 24.8 表のインポート o 24.9 RUNSTATS および REORGANIZE TABLE オンライン・ヘルプの訂正 o 24.10 通知ページ (ウェアハウス・プロパティー・ノートブックおよび スケジュール・ノートブック) o 24.11 エージェント・サイト・ノートブックのエージェント・モジュー ル・フィールド * DB2 OLAP スターター・キット o 25.1 OLAP Server Web サイト o 25.2 サポートされるオペレーティング・システム・サービス・レベル o 25.3 UNIX での DB2 OLAP スターター・キットを完了する o 25.4 ODBC を OLAP スターター・キット用に構成 + 25.4.1 UNIX システムでのデータ・ソースの構成 + 25.4.1.1 環境変数の構成 + 25.4.1.2 odbc.ini ファイルの編集 + 25.4.1.3 odbc.ini ファイルへのデータ・ソースの追加 + 25.4.1.4 DB2 の ODBC 設定の例 + 25.4.1.5 Oracle の ODBC 設定の例 + 25.4.2 UNIX システムでの OLAP メタデータ・カタログの構成 + 25.4.3 Windows システムでのデータ・ソースの構成 + 25.4.4 Windows システムでの OLAP メタデータ・カタログの構成 + 25.4.5 データ・ソースを構成したら o 25.5 OLAP スターター・キット・デスクトップからのログイン + 25.5.1 スターター・キットのログインの例 o 25.6 OLAP スターター・キットのサンプル・データベースを手動で作成 および構成する o 25.7 アプリケーションを OLAP スターター・キット・バージョン 7.2 に移行 o 25.8 既知の問題および制限事項 o 25.9 OLAP スプレッドシート・アドイン EQD ファイルの欠落 * 情報カタログ・マネージャー管理の手引き o 26.1 情報カタログ・マネージャー初期設定ユーティリティー + 26.1.1 + 26.1.2 ライセンス交付の問題 + 26.1.3 インストールの問題 o 26.2 DB2 バージョン 7 情報カタログ・マネージャーによる DB2 バージ ョン 5 情報カタログへのアクセス o 26.3 情報カタログのセットアップ o 26.4 別の製品とのメタデータの交換 o 26.5 flgnxoln コマンドでのメタデータの交換 o 26.6 MDISDGC コマンドでのメタデータの交換 o 26.7 プログラムの呼び出し * 情報カタログ・マネージャー・プログラミングの手引きおよび解説書 o 27.1 情報カタログ・マネージャー理由コード * 情報カタログ・マネージャー 使用者の手引き * 情報カタログ・マネージャー: オンライン・メッセージ o 29.1 メッセージ FLG0260E o 29.2 メッセージ FLG0051E o 29.3 メッセージ FLG0003E o 29.4 メッセージ FLG0372E o 29.5 メッセージ FLG0615E * 情報カタログ・マネージャー: オンライン・ヘルプ o 30.1 Web 用情報カタログ・マネージャー * DB2 ウェアハウス・マネージャー インストールの手引き o 31.1 ウェアハウス・トランスフォーマーのソフトウェア要件 o 31.2 SAP R/3 用コネクター + 31.2.1 インストール前提条件 o 31.3 Web 用コネクター + 31.3.1 インストール前提条件 * 照会パトローラー管理の手引き o 32.1 DB2 照会パトローラー・クライアントの分離構成要素 o 32.2 dqpmigrate を使用した DB2 照会パトローラーのバージョン 6 か らの移行 o 32.3 照会管理の使用可能化 o 32.4 制御表の表スペースのロケーション o 32.5 dqpstart コマンドの新しいパラメーター o 32.6 iwm_cmd コマンドの新しいパラメーター o 32.7 新しいレジストリー変数: DQP_RECOVERY_INTERVAL o 32.8 Query Administrator の開始 o 32.9 ユーザー管理 o 32.10 ジョブ・キューの作成 o 32.11 コマンド行インターフェースの使用 o 32.12 照会イネーブラー注意事項 o 32.13 ブランク列ページを返すことができる DB2 照会パトローラー・ト ラッカー o 32.14 照会パトローラーおよびレプリケーション・ツール o 32.15 付録 B. DB2 照会パトローラー・クライアントのトラブルシュー ティング ------------------------------------------------------------------------ アプリケーション開発 * 管理 API 解説書 o 33.1 db2ArchiveLog (新規 API) + db2ArchiveLog o 33.2 db2ConvMonStream o 33.3 db2DatabasePing (新規 API) + db2DatabasePing - データベースの Ping o 33.4 db2HistData o 33.5 db2HistoryOpenScan o 33.6 db2XaGetInfo (新規 API) + db2XaGetInfo - リソース・マネージャー用情報の取得 o 33.7 db2XaListIndTrans (sqlxphqr を 入れ替える新規 API) + db2XaListIndTrans - 未確定トランザクションをリストする o 33.8 db2GetSnapshot - スナップショットの取得 o 33.9 ログ・レコードの喪失 o 33.10 sqlaintp - エラー・メッセージの取得 o 33.11 sqlbctcq - 表スペース・コンテナー照会のクローズ o 33.12 sqlubkp - データベースのバックアップ o 33.13 sqlureot - 表の再編成 o 33.14 sqlurestore - データベースの復元 o 33.15 AIX 拡張共有メモリー・サポートに関するドキュメンテーショ ン・エラー (EXTSHM) o 33.16 SQLFUPD + 33.16.1 locklist o 33.17 SQLEDBDESC o 33.18 SQLFUPD ドキュメンテーション・エラー * DB2 アプリケーション構築の手引き o 34.1 第 1 章 概要 + 34.1.1 サポートするソフトウェア + 34.1.2 サンプル・プログラム o 34.2 第 3 章 DB2 アプリケーションの構築に関する一般情報 + 34.2.1 ファイルの構築、Makefiles、および エラー・チェック・ ユーティリティー o 34.3 第 4 章 Java アプレットの構築と アプリケーション + 34.3.1 環境設定 + 34.3.1.1 OS/2 上での JDK レベル + 34.3.1.2 HP-UX 上の Java2 o 34.4 第 5 章 SQL プロシージャーの構築 + 34.4.1 SQL プロシージャー環境の設定 + 34.4.2 コンパイラー環境変数の設定 + 34.4.3 コンパイル・コマンドのカスタマイズ + 34.4.4 中間ファイルを保存 + 34.4.5 バックアップと復元 + 34.4.6 SQL プロシージャーの作成 + 34.4.7 ストアード・プロシージャーの呼び出し + 34.4.8 コンパイルされた SQL プロシージャーの配布 o 34.5 第 7 章 HP-UX アプリケーションの構築 + 34.5.1 HP-UX C + 34.5.2 HP-UX C++ o 34.6 第 9 章 OS/2 アプリケーションの構築 + 34.6.1 VisualAge C++ (OS/2 版) バージョン 4.0 o 34.7 第 10 章 PTX アプリケーションの構築 + 34.7.1 ptx/C++ o 34.8 第 12 章 Solaris アプリケーションの構築 + 34.8.1 SPARCompiler C++ o 34.9 第 13 章 Windows 32-bit オペレーティング・システムのアプリケ ーションの構築 + 34.9.1 VisualAge C++ バージョン 4.0 * アプリケーション開発の手引き o 35.1 第 2 章 DB2 アプリケーションのコーディング + 35.1.1 IBM DB2 ユニバーサル・データベース・プロジェクトおよ びツール Microsoft Visual C++ のアドイン o 35.2 第 6 章 一般的な DB2 アプリケーション技法 + 35.2.1 順次値の生成 + 35.2.1.1 シーケンスの振る舞いの制御 + 35.2.1.2 シーケンス・オブジェクトによるパフォーマンスの 向上 + 35.2.1.3 シーケンス・オブジェクトと識別列の比較 o 35.3 第 7 章 ストアード・プロシージャー + 35.3.1 DECIMAL タイプは Linux Java ルーチンで失敗する + 35.3.2 再帰的ストアード・プロシージャーでのカーソルの使用 + 35.3.3 OLE 自動化ストアード・プロシージャーに関する記述 o 35.4 第 12 章 複合オブジェクトでの作業: ユーザー定義構造化タイプ + 35.4.1 構造化タイプ属性を列に挿入する o 35.5 第 13 章 ラージ・オブジェクト (LOB) の使用 + 35.5.1 連合データベース・システムでのラージ・オブジェクト (LOB) サポート + 35.5.1.1 DB2 による LOB の検索方法 + 35.5.1.2 アプリケーションでの LOB ロケーターの使用方法 + 35.5.1.3 LOB の制限 + 35.5.1.4 LOB データ・タイプおよび LOB 以外のデータ・タ イプ間のマッピング + 35.5.2 システムの調整 o 35.6 第 5 部 DB2 プログラミングに関する考慮事項 + 35.6.1 IBM DB2 OLE DB Provider o 35.7 第 20 章 C および C++ でのプログラミング + 35.7.1 C/C++ ストアード・プロシージャー、関数、およびメソッ ドのタイプ o 35.8 第 21 章 Java でのプログラミング + 35.8.1 PARAMETER STYLE JAVA プロシージャーおよび関数の Java メソッド・シグニチャー + 35.8.2 JDBC アプレット・サーバーに接続中 o 35.9 付録 B サンプル・プログラム * CLI の手引きおよび解説書 o 36.1 ランタイム・クライアントを使用するデータベース・ユーティリテ ィーのバインド o 36.2 CLI アプリケーションで静的 SQL の使用 o 36.3 JDBC/ODBC/CLI 静的プロファイル の制限 o 36.4 ADT トランスフォーム o 36.5 第 3 章 拡張フィーチャーの使用法 + 36.5.1 マルチスレッド・アプリケーションの書き込み + 36.5.2 スクロール可能カーソル + 36.5.2.1 サーバー側のスクロール可能カーソル・サポート (OS/390) + 36.5.3 複合 SQL の使用 + 36.5.4 ストアード・プロシージャーの使用 + 36.5.4.1 CLI でのストアード・プロシージャーの記述 + 36.5.4.2 CLI ストアード・プロシージャーおよび自動バイン ド o 36.6 第 4 章 CLI/ODBC の構成とサンプル・アプリケーションの実行 + 36.6.1 構成キーワード o 36.7 第 5 章 DB2 CLI 関数 + 36.7.1 SQLBindFileToParam - LOB ファイル参照を LOB パラメー ターにバインド + 36.7.2 SQLNextResult - 次の結果セットを別のステートメント・ ハンドルに関連付ける + 36.7.2.1 目的 + 36.7.2.2 構文 + 36.7.2.3 関数の引き数 + 36.7.2.4 使用法 + 36.7.2.5 戻りコード + 36.7.2.6 診断 + 36.7.2.7 制約事項 + 36.7.2.8 参照 o 36.8 付録 D 拡張スカラー関数 + 36.8.1 日時関数 o 36.9 付録 K DB2 CLI/ODBC/JDBC トレース機能の使用 * メッセージ解説書 o 37.1 メッセージおよび SQLSTATE ヘルプの表示 o 37.2 DB2 コネクトの SQLCODE 再マップ変更 o 37.3 新規メッセージおよび変更メッセージ + 37.3.1 コール・レベル・インターフェース (CLI) メッセージ + 37.3.2 DB2 メッセージ + 37.3.3 DBI メッセージ + 37.3.4 データウェアハウスセンター (DWC) メッセージ + 37.3.5 SQL メッセージ o 37.4 訂正された SQLSTATE * SQL 解説書 o 38.1 SQL 解説書は 1 つの PDF ファイルで提供されます o 38.2 第 3 章 言語エレメント + 38.2.1 命名規則および暗黙的オブジェクト名の修飾 + 38.2.2 DATALINK 割り当て + 38.2.3 式 + 38.2.3.1 構文図 + 38.2.3.2 OLAP 機能 + 38.2.3.3 シーケンス参照 o 38.3 第 4 章 関数 + 38.3.1 新しい関数とプロシージャーの使用可能化 + 38.3.2 スカラー関数 + 38.3.2.1 ABS または ABSVAL + 38.3.2.2 DECRYPT_BIN および DECRYPT_CHAR + 38.3.2.3 ENCRYPT + 38.3.2.4 GETHINT + 38.3.2.5 IDENTITY_VAL_LOCAL + 38.3.2.6 LCASE および UCASE (ユニコード) + 38.3.2.7 MQPUBLISH + 38.3.2.8 MQREAD + 38.3.2.9 MQRECEIVE + 38.3.2.10 MQSEND + 38.3.2.11 MQSUBSCRIBE + 38.3.2.12 MQUNSUBSCRIBE + 38.3.2.13 MULTIPLY_ALT + 38.3.2.14 REC2XML + 38.3.2.15 ROUND + 38.3.2.16 WEEK_ISO + 38.3.3 表関数 + 38.3.3.1 MQREADALL + 38.3.3.2 MQRECEIVEALL + 38.3.4 プロシージャー + 38.3.4.1 GET_ROUTINE_SAR + 38.3.4.2 PUT_ROUTINE_SAR o 38.4 第 5 章 照会 + 38.4.1 select-statement/構文図 + 38.4.2 select-statement/fetch-first-clause o 38.5 第 6 章 SQL ステートメント + 38.5.1 区分化キーの更新がサポートされるようになりました + 38.5.1.1 ステートメント: ALTER TABLE + 38.5.1.2 ステートメント: CREATE TABLE + 38.5.1.3 ステートメント: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (column-name,...) + 38.5.1.4 ステートメント: UPDATE + 38.5.2 ユニコード・データベースのより大きな索引キー + 38.5.2.1 ALTER TABLE + 38.5.2.2 CREATE INDEX + 38.5.2.3 CREATE TABLE + 38.5.3 ALTER SEQUENCE + ALTER SEQUENCE + 38.5.4 ALTER TABLE + 38.5.5 複合 SQL (組み込み) + 38.5.6 複合ステートメント (動的) + 複合ステートメント (動的) + 38.5.7 CREATE FUNCTION (ソースまたはテンプレート) + 38.5.8 CREATE FUNCTION (SQL スカラー、表または行) + 38.5.9 CREATE METHOD + CREATE METHOD + 38.5.10 CREATE SEQUENCE + CREATE SEQUENCE + 38.5.11 CREATE TRIGGER + CREATE TRIGGER + 38.5.12 CREATE WRAPPER + 38.5.13 DECLARE CURSOR + 38.5.14 DELETE + 38.5.15 DROP + 38.5.16 GRANT (シーケンス特権) + GRANT (シーケンス特権) + 38.5.17 INSERT + 38.5.18 SELECT INTO + 38.5.19 SET ENCRYPTION PASSWORD + SET ENCRYPTION PASSWORD + 38.5.20 SET transition-variable + SET 変数 + 38.5.21 UPDATE o 38.6 「第 7 章 SQL プロシージャー」から「第 7 章 SQL 制御ステート メント」への変更 + 38.6.1 SQL プロシージャー・ステートメント + SQL プロシージャー・ステートメント + 38.6.2 FOR + FOR + 38.6.3 「複合ステートメント」から「複合ステートメント (プロ シージャー)」への変更 + 38.6.4 RETURN + RETURN + 38.6.5 SIGNAL + SIGNAL o 38.7 付録 A SQL の制限 o 38.8 付録 D カタログ視点 + 38.8.1 SYSCAT.SEQUENCES * DB2 ストアード・プロシージャー・ビルダー o 39.1 DB2 ストアード・プロシージャー・ビルダーの Java 1.2 サポート o 39.2 DB2 ストアード・プロシージャーのリモート・デバッグ o 39.3 Windows、OS/2、または UNIX プラットフォームでの SQL プロシー ジャーの作成 o 39.4 Solaris プラットフォームでの DB2 ストアード・プロシージャ ー・ビルダーを使用する o 39.5 既知の問題および制限事項 o 39.6 中国語 (繁体字) ロケールでの DB2 ストアード・プロシージャ ー・ビルダーの使用 o 39.7 UNIX (AIX、Sun Solaris、Linux) インストールおよびストアー ド・プロシージャー・ビルダー o 39.8 OS/390 での SQL ストアード・プロシージャーの作成 o 39.9 SQL ストアード・プロシージャーのデバッグ o 39.10 Java ストアード・プロシージャーのエクスポート o 39.11 OS/390 でのストアード・プロシージャーの挿入 o 39.12 ワークステーション・サーバーで SQL ストアード・プロシージャ ーの作成オプションを設定 o 39.13 OS/390 に作成されたストアード・プロシージャーの WLM アドレ ス空間を自動的にリフレッシュ o 39.14 OS/390 での Java ストアード・プロシージャーの開発 o 39.15 MQ Series および OLE DB 用の DB2 表ユーザー定義関数 (UDF) の作成 * ユニコード更新 o 40.1 入門 + 40.1.1 DB2 ユニコード・データベースおよびアプリケーション + 40.1.2 資料の更新 o 40.2 SQL 解説書 + 40.2.1 第 3 章 言語エレメント + 40.2.1.1 データ・タイプのプロモーション + 40.2.1.2 データ・タイプ間のキャスト + 40.2.1.3 割り当てと比較 + 40.2.1.4 結果データ・タイプの規則 + 40.2.1.5 ストリング変換の規則 + 40.2.1.6 式 + 40.2.1.7 述部 + 40.2.2 第 4 章 関数 + 40.2.2.1 スカラー関数 o 40.3 CLI の手引きおよび解説書 + 40.3.1 第 3 章 拡張フィーチャーの使用法 + 40.3.1.1 DB2 CLI ユニコード・アプリケーションの作成 + 40.3.2 付録 C. DB2 CLI および ODBC + 40.3.2.1 ODBC ユニコード・アプリケーション o 40.4 データ移動ユーティリティー 手引きおよび解説書 + 40.4.1 付録 C. エクスポート/インポート/ロード・ユーティリテ ィー・ファイル形式 ------------------------------------------------------------------------ ホスト・システムへの接続 * コネクティビティー補足 o 41.1 VM 環境でのアプリケーション・サーバーのセットアップ o 41.2 CLI/ODBC/JDBC 構成 PATCH1 および PATCH2 の設定 ------------------------------------------------------------------------ 一般情報 * 一般情報 o 42.1 DB2 ユニバーサル・データベース クィック・ツアー o 42.2 DB2 Everywhere は DB2 Everyplace に o 42.3 マウスが必要 o 42.4 「バインド・ファイルが見つかりません」のエラーで DB2 ランタ イム・クライアント結果からバインドを試みる o 42.5 サーチ・ディスカバリー o 42.6 HP-UX 11 のメモリー・ウィンドウ o 42.7 dlfm client_conf のユーザー・アクションの失敗 o 42.8 dlfm 停止時にコピー・デーモンが停止しないなど、まれな現象が 発生した場合 o 42.9 DB2 DFS クライアント・イネーブラーのアンインストール o 42.10 Windows NT 上でのクライアントの認証 o 42.11 fork 中にオートローダーが停止する場合があります o 42.12 DATALINK 復元 o 42.13 IBM Communications Server for Windows NT (CS/NT) にユーザー ID とパスワードを 定義 + 42.13.1 ノード定義 o 42.14 統合システムの制約 o 42.15 DataJoiner 制約 o 42.16 Hebrew Information Catalog Manager for Windows NT o 42.17 Microsoft SNA サーバー および SNA マルチ・サイト・アップデ ート (2 フェーズ・コミット) のサポート o 42.18 DB2 の SNA SPM が Windows ブート後に失敗します o 42.19 DB2 管理サーバーのロケール設定 o 42.20 ショートカットの不作動 o 42.21 Windows NT および Windows 2000 での DB2 に対するサービス・ アカウント要件 o 42.22 バージョン 6 で作成された照会パトローラー・ユーザー用の EXECUTE 特権の消失 o 42.23 照会パトローラーの制約事項 o 42.24 データウェアハウスセンター (DWC) で使用される すべてのユー ザー定義プログラムをコミットする必要があります o 42.25 データウェアハウスセンターのコマンド行エクスポートに対する 新規オプション o 42.26 バックアップ・サービス API (XBSA) o 42.27 OS/390 エージェント + 42.27.1 インストール概説 + 42.27.2 インストールの詳細 + 42.27.3 追加エージェント機能の設定 + 42.27.4 トリガー・プログラム (XTClient) によるウェアハウス・ ステップの スケジューリング + 42.27.5 トランスフォーマー + 42.27.6 DB2 製品ファミリー以外のデータベースのアクセス + 42.27.7 DB2 (OS/390 版) ユーティリティーの実行 + 42.27.8 レプリケーション + 42.27.9 エージェント・ログ記録 o 42.28 Windows NT 上でのクライアント・サイド・キャッシング o 42.29 Enterprise Edition UNIX CD-ROM の試用製品 o 42.30 DB2 コネクト エンタープライズ・エディション UNIX CD-ROM の 試用製品 o 42.31 データ・リンク・マネージャーの削除 o 42.32 SMIT を使用して DLFM 構成要素をアンインストールすると他のフ ァイル・セットも除去される可能性があります o 42.33 Windows 2000 で CLP を使用したときのエラー SQL1035N o 42.34 SQL Assist の機能強化 o 42.35 DB2 Linux の Gnome および KDE Desktop Integration o 42.36 Windows 2000 Terminal Server の管理モードでの DB2 の実行 o 42.37 バックアップおよび復元コマンドのオンライン・ヘルプ o 42.38 「ウェアハウス・マネージャー」は「DB2 ウェアハウス・マネー ジャー」のことです ------------------------------------------------------------------------ 追加の情報 * 追加の情報 o 43.1 DB2 ユニバーサル・データベースおよび DB2 コネクトのオンライ ン・サポート o 43.2 DB2 マガジン ------------------------------------------------------------------------ 付録 * 付録 A. 特記事項 o A.1 商標 * 索引 ------------------------------------------------------------------------ DB2 ユニバーサル・データベース バージョン 7 へようこそ! 注: このリリース・ノートはモノスペースのフォントでご覧ください。 DB2 ユニバーサル・データベースおよび DB2 コネクト・サポート・サイトは定期的 に 更新されます。最新情報については、 http://www.ibm.com/software/data/db2/udb/winos2unix/support を調べてくださ い。 この文書には、DB2 のマニュアルが印刷された時には使用できなかった 次の製品に 関する情報が含まれています。 IBM DB2 Universal Database Personal Edition、バージョン 7.2 IBM DB2 ユニバーサル・データベース ワークグループ・エディション、バージョン 7.2 IBM DB2 Universal Database Enterprise Edition、バージョン 7.2 IBM DB2 データ・リンク・マネージャー、バージョン 7.2 IBM DB2 Universal Database Enterprise - Extended Edition、バージョン 7.2 IBM DB2 照会パトローラー、バージョン 7.2 IBM DB2 Personal Developer's Edition、バージョン 7.2 IBM DB2 Universal Developer's Edition、バージョン 7.2 IBM DB2 Data Warehouse Manager、バージョン 7.2 IBM DB2 Relational Connect、バージョン 7.2 別のリリース情報は READCON.TXT としてインストールされ、 次の製品に対して提 供されます。 IBM DB2 コネクト パーソナル・エディション バージョン 7.2 IBM DB2 コネクト エンタープライズ・エディション バージョン 7.2 新機能には、DB2 バージョン 7.2 の主要な機能強化の概説が含まれています。新機 能のバージョン 7.2 を 持っていない場合は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support で 表示し、ダウ ンロードすることができます。 注: ページの左方にあるリビジョン・バーは、初版のリリース情報が発行されてか ら、 このレベルの行が追加または変更されていることを示します。 ------------------------------------------------------------------------ 特に注意が必要な事項 ------------------------------------------------------------------------ 特に注意が必要な事項 ------------------------------------------------------------------------ 1.1 DB2 UDB バージョン 7 のユーザー補助機能 DB2 UDB 製品ファミリーには、体の不自由な方のために 製品をより使いやすくする 機能が用意されています。以下のような機能が あります。 * キーボードの入力および操作を簡単にする機能 * プロパティーの表示を強調する機能 * 音と表示により警告を促すオプション * 補助技術の互換性 * オペレーティング・システムのユーザー補助機能との互換性 * 利用しやすい文書形式 1.1.1 キーボードによる入力および操作 1.1.1.1 キーボード入力 DB2 コントロール・センターはキーボードのみを使用して操作することができま す。メニュー項目と コントロールではユーザーがキーボードから直接、コントロー ルを活動状態にしたり、メニュー項目を 選択したりできるアクセス・キーを提供し ています。アクセス・キーはコントロールやメニューの上に 下線で表示されてお り、自己文書化することができます。 1.1.1.2 キーボード・フォーカス UNIX ベースのシステムでは、キーボード・フォーカスの位置が反転表示され、 ウ ィンドウが活動状態のエリアとユーザーのキー・ストロークが影響する位置を 示し ています。 1.1.2 ディスプレイを見やすくする機能 DB2 コントロール・センターには、ユーザー・インターフェースを強調し、 視力の 低いユーザーでも身近に感じられるようにする多くの機能があります。これらの補 助機能には 高コントラスト設定やカスタマイズ可能なフォント・プロパティーのサ ポートなどが含まれています。 1.1.2.1 高コントラスト・モード コントロール・センターのインターフェースはオペレーティング・システムが提供 する高コントラスト・モードを サポートしています。この機能は背景色と前景色と のコントラストが強い方が望ましいユーザーを 補助する機能です。 1.1.2.2 フォント設定 コントロール・センターのインターフェースは、テキストの色やサイズ、フォント を、 ユーザーがメニューとダイアログ・ウィンドウから選べるようになっていま す。 1.1.2.3 色の非依存 本製品のあらゆる機能を使う上で、ユーザーが色を 見分ける必要はありません。 1.1.3 選べる警告キュー ユーザーは、警告を受ける場合の方法として、音の合図と目で見える合図を選ぶこ とができます。 1.1.4 補助技術の互換性 DB2 コントロール・センターのインターフェースは Via Voice などの画面読み込み アプリケーション と互換性があります。アプリケーション・モード時、コントロー ル・センターのインターフェースは、 目の不自由なユーザーが画面上の情報を利用 できるよう、これらの補助アプリケーションに 必要なプロパティーを所有していま す。 1.1.5 利用しやすい資料 DB2 ファミリー製品の資料は利用しやすい HTML 形式です。 これによりユーザーは ブラウザーを参照できるよう設定することで 資料を表示することができます。画面 読み込みや、他の補助技術を使用する ことも可能です。 ------------------------------------------------------------------------ 1.2 追加が必要な Solaris パッチ・レベル DB2 (UNIX 版) 概説およびインストール マニュアルにリストされたパッチに加え て、 DB2 ユニバーサル・データベース (Solaris バージョン 2.6 版) バージョン 7 には パッチ 106285-02 またはそれ以降のバージョンが必要です。 ------------------------------------------------------------------------ 1.3 DB2 (Solaris 版) バージョン 7 でサポートしている CPU UltraSparc より以前のバージョンの CPU はサポートしていません。 ------------------------------------------------------------------------ 1.4 分割したデータベースにノードを追加する際の問題 デフォルト・ページ・サイズ (4KB) と異なるページ・サイズで、複数の システム 一時表スペースを持つ分割したデータベースにノードを追加する際に、 以下のよう なエラー・メッセージや SQL コードが表示される場合があります: "SQL6073N ノー ドの追加に失敗しました" これはノードが生成される際、IBMDEFAULTBP バッファ ー・プールが 4 KB のページ・サイズで 存在するために、発生します。 たとえば、現在の分割したデータベースにノードを追加するための db2start コマ ンドを使用することができます。 DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2 分割されたデータベースがデフォルトのページ・サイズでシステム一時表スペース を持つ場合 以下のメッセージが返されます: SQL6075W 「データベース・マネージャーの開始」操作は正常にノードを追加しました。 このノードは、すべてのノードを再び停止および開始するまで活動状態になりません。 ただし、分割されたデータベースがデフォルトのページ・サイズではないシステム 一時表スペースを 持つ場合は、以下のメッセージが返されます。 SQL6073N ノードの追加操作に失敗しました。SQLCODE = "<-902>" 同様の例では、db2nodes.cfg ファイルに新しいノードを記述し更新すると ノード 追加コマンドが使用できます。 そのファイルを 編集した後、デフォルトのペー ジ・サイズでシステム一時表スペースを 持っている、分割されたデータベースで ADD NODE コマンドを実行すると以下のメッセージが 返されます: DB20000I ADD NODE コマンドは正常に完了しました。 ただし、分割されたデータベースがデフォルトのページ・サイズではないシステム 一時表スペースを 持つ場合は、以下のメッセージが返されます。 SQL6073N ノードの追加操作に失敗しました。SQLCODE = "<-902>" 上で概略を説明した問題を予防する 1 つの方法は以下を実行することです: DB2SET DB2_HIDDENBP=16 このコマンドは db2start や ADD NODE コマンドを実行する前に実行します。この レジストリー変数は DB2 がデフォルトと異なるページ・サイズを使用している 16 ページ分の プールを隠しバッファーに割り振れるようにします。 これが使用可能 になることでノード追加操作が正常に完了します。 これらの問題を予防する別の方法としては、ADD NODE コマンドや db2start コマン ドで WITHOUT TABLESPACES 文節を指定する方法があります。コマンド実行後、 CREATE BUFFERPOOL ステートメントを使用して、 バッファー・プールを作成し、 ALTER TABLESPACE ステートメントを使用して、 バッファー・プールにシステム一 時表スペースを作成する必要があります。 デフォルト・ページ・サイズ (4 KB) と異なるページ・サイズで 複数の表スペース を持つ既存のノード・グループにノードを 追加する場合、以下のようなエラー・メ ッセージが出る場合があります : "SQL0647N バッファー・プール "" は現在活動状 態ではありません。" これは、デフォルトでないページ・サイズ・バッファー・プ ールを、表スペースとして 活動状態になっていない、新規のノード上に作成した場 合に発生します。 たとえば、ノード・グループにノードを追加するために ALTER NODEGROUP ステート メントを 使用することができます: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) デフォルトのページ・サイズの表スペースを持つノード・グループの場合は 以下の ようなメッセージが返されます: SQL1759W 再配布ノード・グループは、追加済みノードへ組み込みまたは 消去済みノードからドロップするノード・グループ "" のオブジェクトに対するデータを 変更するのに必要です。 一方、ノード・グループが、デフォルトのページ・サイズでない表スペースを持つ 場合 以下のメッセージが返されます: SQL0647N バッファー・プール "" は現在活動状態ではありません。 この問題を予防する 1 つの方法としては、それぞれのページ・サイズのバッファ ー・プールを作成し、 その後、ALTER NODEGROUP ステートメントを実行する前にデ ータベースに再接続する方法があります: DB2START CONNECT TO mpp1 CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192 CONNECT RESET CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) この問題を防止する 2 つ目の方法は、以下のコマンドを実行する方法です: DB2SET DB2_HIDDENBP=16 db2start コマンドや CONNECT、 ALTER NODEGROUP ステートメントなどを実行する 前に実行します。 ALTER TABLESPACE ステートメントはノードに表スペースを追加するために使用する 場合、他の 問題が起こることもあります。 例: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) この一連のコマンドとステートメントは SQL0647N エラー・メッセージを生成しま す。 (想定メッセージ SQL1759W ではありません)。 この変更を正しく完了させるには、ALTER NODEGROUP... WITHOUT TABLESPACES ステ ートメントの後で、データベースに再接続する必要があります。 DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES CONNECT RESET CONNECT TO mpp1 ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) この問題を防止する他の方法は、以下のコマンドを実行する方法です: DB2SET DB2_HIDDENBP=16 db2start コマンドや CONNECT、ALTER NODEGROUP、 ALTER TABLESPACE ステートメ ントなどを実行する前に実行します。 ------------------------------------------------------------------------ 1.5 移行中のエラー 移行中に、移行が成功しているのにもかかわらず db2diag.log ファイルの エラー 項目 (データベースが移行されませんでした) が表示された場合は、 それを無視し てもかまいません。 ------------------------------------------------------------------------ 1.6 Chinese Locale Fix on Red Flag Linux If you are using Simplified Chinese Red Flag Linux Server Version 1.1, contact Red Flag to receive the Simplified Chinese locale fix. Without the Simplified Chinese locale fix for Version 1.1, DB2 does not recognize that the code page of Simplified Chinese is 1386. ------------------------------------------------------------------------ 1.7 取りはずし可能ドライブが接続されていない場合に DB2 インストーラーが停止 することがあります 接続されていない、取りはずし可能なドライブを持つコンピューターを使用してい る場合、インストール中、 インストール・タイプを選択後にインストーラーが停止 することがあります。 この問題を解決するには、-a オプションを指定してセット アップを実行します: setup.exe -a ------------------------------------------------------------------------ 1.8 日本語 Linux 版 および中国語 (簡体字) Linux 版 の DB2 の追加ロケール設 定 日本語版、または中国語 (簡体字) 版の Linux システムでコントロール・センター などの Java GUI ツールを使用したい場合は、追加ロケールの設定が必須となりま す。 日本語や中国語の文字は、この設定がないと正しく表示することができませ ん。 コントロール・センターに関するすべての呼び出しを行う前に、ユーザー・プ ロファイルに以下の設定を組み込むか、 コマンド行から実行してください。 日本語システムの場合: export LC_ALL=ja_JP 中国語 (簡体字) システムの場合: export LC_ALL=zh_CN ------------------------------------------------------------------------ 1.9 Microsoft Internet Explorer 上でのコントロール・センターの問題 Internet Explorer (IE) セキュリティ・オプション設定によって起きる問題があり ます。 コントロール・センターは無符号の jar を使用するため、システム情報へ のアクセス は、セキュリティ マネージャによって使用不可となります。 この問題をなくすには、IE のセキュリティ・オプションを次のように再構成してく ださい。 1. 「表示」メニュー (IE4) または 「ツール」メニュー (IE5) で 「インターネ ット・オプション」を選択する。 2. 「セキュリティ」ページで信頼済みサイト・ゾーンを選択する。 3. サイトの追加...をクリックする。 4. コントロール・センターの Web サーバーを信頼済みサイト・リストに追加す る。 コントロール・センター Web サーバーが同じ定義域にある場合、 Web サーバー名のみ (定義域名の指定をしない) を追加することが有効な可能性が あります。 例: http://ccWebServer.ccWebServerDomain http://ccWebServer 5. 「了解」をクリックする。 6. 「設定...」をクリックする。 7. 「Java --> Java アクセス権」へスクロールダウンし、 「カスタム」を選択 する。 8. 「Java カスタム設定...」をクリックする。 9. 「権限の編集」ページを選択する。 10. 「未署名のコンテンツ --> 未署名のコンテンツの実行 --> 追加の未署名の権 限 --> システム情報」までスクロールダウンし、 「有効にする」を選択す る。 11. 開いているウィンドウのそれぞれで「OK」をクリックする。 ------------------------------------------------------------------------ 1.10 情報カタログ・マネージャー と Sybase の Windows 環境での非互換性 情報カタログ・マネージャー (ICM) バージョン 7 を Sybase Open Client ととも に、 同じ Windows NT または Windows 2000 マシンにインストールすると、エラー が起き、 Sybase ユーティリティーは機能を停止します。次のような エラー・メッ セージが出されます。 LIBTCL.DLL の初期化が失敗しました。SYBASE 環境変数が 正しく設定されているかを確認してください。 このシナリオを回避するには、環境パラメーター LC_ALL を Windows 環境パラメー ターから 除去してください。LC_ALL はロケール・カテゴリー・パラメーターで す。ロケール・カテゴリーは、 プログラムにロケール情報のどの部分を使用させる かを指定するためにローカライズ・ルーチンが 使用するマニフェスト定数です。ロ ケールは、プログラムの特定の 性質をそれに合わせてカスタマイズできる、局所性 (または国) のことです。ロケールに依存するのは、 たとえば日付の形式や通貨単 位の形式です。LC_ALL は、すべてのロケール (すべてのカテゴリー) 特有の 性質 に影響を与えます。 ICM が Windows NT プラットフォームで Sybase と共存できるように LC_ALL 環境 パラメーターを 除去すると、以下の機能は使用できなくなります。 * 情報カタログ・ユーザー * 情報カタログ・アドミニストレーター * 情報カタログ・マネージャー ------------------------------------------------------------------------ 1.11 コントロール・センター機能の喪失 フィックスパック 2 を DB2 サーバーに適用しても、下位レベルの コントロール・ センター・クライアントには問題は発生しません。ただし、DB2 バージョン 7.2 の 場合、下位レベルのコントロール・センター・クライアントはほぼすべての機能を 失います。 この場合の下位レベルとは、フィックスパック 6 以前のバージョン 6 クライアントと、 フィックスパック 2 以前のバージョン 7 クライアントを指しま す。バージョン 5 のクライアントには、影響はありません。 指定の修正により、影響を受ける クライアントがアップグレードされます。バージ ョン 6 クライアントはフィックスパック 6 またはそれ以降、 バージョン 7 クラ イアントはフィックスパック 2 またはそれ以降にアップグレードする必要がありま す。 ------------------------------------------------------------------------ 1.12 DB2 UDB に添付されていない Netscape CD Netscape CD は現在、DB2 UDB に添付されていません。Netscape 製品は http://www.netscape.com で 入手できます。 ------------------------------------------------------------------------ 1.13 XML Readme ファイルでのエラー DB2 XML エクステンダー 7.1 の README.TXT ファイルの「考慮事項」には、以下の ように 記述されています。 3. DB2 UDB のデフォルトのバージョンは DB2 UDB バージョン 7.1 です。DB2 UDB バージョン 6.1 を AIX および Solaris で使いたい場合には、DB2 UDB V6.1 インスタンスおよび DB2 UDB V6.1 ライブラリーで 実行していることを 確認してください。 これは誤りです。 DB2 XML エクステンダーは DB2 バージョン 7.1 および 7.2 で のみ サポートされます。 ファイル readme.aix、readme.nt、および readme.sun には、次の製品のソフトウ ェア要件が リストされています。 * FP1_U465423 またはそれ以降を適用した DB2 UDB 6.1 (AIX) * フィックスパック 3 をインストールした DB2 ユニバーサル・データベース・ バージョン 6.1 またはそれ以降 (NT) * フィックスパック FP1_U465424 またはそれ以降を適用した DB2 UDB バージョ ン 6.1 (Sun) これは誤りです。 DB2 XML エクステンダーは DB2 バージョン 7.1 または 7.2 を 必要とします。 ------------------------------------------------------------------------ 1.14 Linux (S/390 版) でのデータ損失の可能性 2.2 シリーズのカーネルの Linux (S/390 版) で DB2 を使用するときは、Linux マ シン上の 有効な RAM は 1 GB 未満に制限してください。RAM を 1 GB に制限する ことで、Linux カーネルのバグによる DB2 でのデータ損失を避けることができま す。 このことは、 Linux (S/390 版) 上の DB2 に影響しますが、Intel 上の Linux に は影響しません。 http://www10.software.ibm.com/developerworks/opensource/linux390/alpha_src.html で カーネル・パッチを入手して適用すれば、1 GB 以上の RAM を使用できます。 ------------------------------------------------------------------------ 1.15 Windows 2000 上の DB2 UDB リリース情報では、特に断り書きがなければ、Windows NT に言及するときは Windows 2000 も 含まれます。 ------------------------------------------------------------------------ オンライン資料 (HTML、PDF、および Search) ------------------------------------------------------------------------ 2.1 Windows 2000 オペレーティング・システムでサポートされている Web ブラウ ザー Windows 2000 版 Microsoft Internet Explorer のご使用をお勧めします。 Netscape をご使用になる場合は、以下の点についてご了承ください: * Windows 2000 で Netscape を使用し、DB2 オンライン情報で検索を実行する と 完了までに長い時間がかかります。Netscape は使用可能な CPU リソース をすべて使用し、 無期限に実行するように見えます。検索結果が最終的に戻 るまでの間、 検索の実行依頼を行ってから、他のウィンドウをクリックし フ ォーカスを変更することをお勧めします。相応な検索時間が経過すると 検索 結果が戻ってきます。 * Netscape ブラウザー・ウィンドウでヘルプを呼んだ場合は 正しく表示されま すが、ブラウザー・ウィンドウが開いている場所から離れ、コントロール・セ ンターの 別の場所から後でヘルプを呼び出しても、ブラウザーには変化が起 こらない場合があります。 ブラウザー・ウィンドウを閉じて、再度ヘルプを 呼ぶと、正しいヘルプが表示されます。 この問題は 2.4, Netscape を立ち上 げようとした場合のエラー・メッセージ で、次のステップを実行すると解決 できる場合があります。 コントロール・センターでヘルプを呼ぶ前に、ブラ ウザー・ウィンドウを閉じると この問題をうまく避けることができる場合も あります。 * コントロール・センターでヘルプを呼ぶ場合、もしくはインフォメーション・ センターからトピックを 呼ぶ場合、エラー・メッセージが表示されることが あります。 これを解決するには 2.4, Netscape を立ち上げようとした場合の エラー・メッセージ で、次のステップを実行します。 ------------------------------------------------------------------------ 2.2 Solaris 版 DB2 オンライン情報の検索 Solaris 上で DB2 オンライン情報を検索する際に問題が発生した場合は、お使いの システムの カーネル・パラメーター /etc/system を確認してください。ここには DB2 の検索システム、NetQuestion が必要とするカーネル・パラメーターの最小値 が記述されています: semsys:seminfo_semmni 256 semsys:seminfo_semmap 258 semsys:seminfo_semmns 512 semsys:seminfo_semmnu 512 semsys:seminfo_semmsl 50 shmsys:shminfo_shmmax 6291456 shmsys:shminfo_shmseg 16 shmsys:shminfo_shmmni 300 カーネル・パラメーターを設定するには、/etc/system の終わりに以下の 1 行を追 加します: set = value 新しく加えた値、もしくは変更した値を有効にするにはシステムを再起動しなくて はなりません。 ------------------------------------------------------------------------ 2.3 OS/2 上で TCP/IP を使用するよう NetQuestion を切り替える OS/2 上で TCP/IP を使用するよう NetQuestion を切り替える説明が完全ではあり ません。 これらの説明にある *.cfg ファイルの場所は、 NetQuestion インストー ル・ディレクトリーのデータ・サブディレクトリーです。 以下のいずれかのコマン ドを使用して、NetQuestion インストール・ディレクトリーを 判別することができ ます。 echo %IMNINSTSRV% //SBCS インストールの場合 echo %IMQINSTSRV% //DBCS インストールの場合 ------------------------------------------------------------------------ 2.4 Netscape を立ち上げようとした場合のエラー・メッセージ Netscape を立ち上げようとした際、以下のようなエラー・メッセージが表示された 場合: ファイルが見つかりません <ファイル・パス> (もしくはそのコンポーネントのうちの 1 つ)。 パスとファイル名が正しいか、必要なライブラリーがすべて有効になっているか 確認してください。 「D:\Program Files\SQLLIB\CC\..\doc\html\db2help\XXXXX.htm」 を開くことができませんでした。 Windows NT、95、もしくは 98 上でこの問題を解決するには、 次のステップを実行 してください: 1. 「スタート」メニューから、「プログラム」-->「Windows エクスプローラ」 を選びます。Windows エクスプローラが開きます。 2. Windows エクスプローラから、「表示」-->「オプション」を選びます。「オ プション」ウィンドウが開きます。 3. 「ファイル タイプ」タブをクリックします。ファイル タイプのページが開き ます。 4. 「登録されているファイル タイプ」フィールドの Netscape Hypertext Document を反転表示させ、「編集」をクリックします。 「ファイル タイプ の編集」ウィンドウが開きます。 5. 「アクション」フィールドで "Open" を反転表示させます。 6. 「編集」ボタンをクリックします。「アクションの編集」ウィンドウが開きま す。 7. 「DDE を使う」チェック・ボックスのチェックをはずします。 8. 「アクションを実行するアプリケーション」フィールドで、 "%1" が、ストリ ング (引用符、始めの引用符の前のブランク・スペースを含む) の 最後にな っていることを確認してください。 Windows 2000 でこのメッセージが出た場合は、次のステップを実行してください: 1. 「スタート」メニューから、 「Windows エクスプローラ」を選択します。 Windows エクスプローラが開きます。 2. Windows エクスプローラから「ツール --> フォルダー オプション」を選択し ます。 「フォルダー オプション」ノートブックが開きます。 3. 「ファイル タイプ」タブをクリックします。 4. 「ファイル タイプ」ページの「登録されているファイル タイプ」フィールド で、 : HTM Netscape Hypertext Document を反転表示させ、 「編集」をクリ ックします。 「ファイル タイプの編集」ウィンドウが開きます。 5. 「アクション」フィールドで "Open" をクリックします。 6. 「編集」ボタンをクリックします。「アクションの編集」ウィンドウが開きま す。 7. 「DDE を使う」チェック・ボックスのチェックをはずします。 8. 「アクションを実行するアプリケーション」フィールドで、 "%1" が、ストリ ング (引用符、始めの引用符の前のブランク・スペースを含む) の 最後にな っていることを確認してください。 9. 「了解」をクリックする。 10. HTML Netscape Hypertext Document および SHTML Netscape Hypertext Document ファイル・タイプで 4 から 8 までのステップを繰り返します。 ------------------------------------------------------------------------ 2.5 UNIX ベース・システム上での Adobe Acrobat Reader の構成要件 UNIX ベースのプラットフォーム上では、Acrobat Reader は英語版のみ提供されて います。 そのため英語以外の言語ロケール PDF ファイルを開こうとすると、 エラ ーが発生します。 これらのエラーは PDF ファイルに関するフォントのアクセスか 抽出の問題であると示していますが、 実際は、UNIX の英語以外の言語ロケール上 で、英語版の Acrobat Reader が正しく機能しない という現象によるものです。 そのような PDF ファイルを表示するためには、英語版の Acrobat Reader を立ち上 げる前に 以下のステップの 1 つを実行し、英語ロケールへ切り換えます。 * Acrobat Reader の起動スクリプトを編集し、スクリプト内の #!/bin/sh ステ ートメントの後ろに 以下の行を追加します: LANG=C;export LANG Netscape Navigator やアプリケーションのヘルプ・メニューなどといった 他 のアプリケーションから Acrobat Reader が起動された場合、 この方法によ り正しい動作を保証しています。 * コマンド・プロンプトで LANG=C と入力し、Acrobat Reader の アプリケーシ ョン環境を英語に設定します。 より詳しい情報は、Adobe Systems (http://www.Adobe.com) にご連絡ください。 ------------------------------------------------------------------------ 2.6 SQL 解説書は 1 つの PDF ファイルで提供されます 各ブックの付録の 「DB2 ライブラリーの使用」 という SQL の解説書は PDF 形式 で 2 ボリュームになっています。これは正しくありません。 印刷物では 2 冊あり、その 2 冊に対応するフォームの番号も 正しいですが、PDF ファイルは 1 ファイルのみで構成されており、 その中に両方の内容が含まれてい ます。 その PDF ファイルのファイル名は db2s0x70 です。 ------------------------------------------------------------------------ インストールおよび構成 部分目次 * 一般インストール情報 o 3.1 すべてのサポートされる DB2 クライアントのインストール・パッケ ージをダウンロード o 3.2 Windows 2000 に DB2 をインストール o 3.3 特別レジスターで定義した視点による移行の実行 o 3.4 IPX/SPX プロトコル・サポート (Windows 2000 版) o 3.5 前バージョンの DB2 をアップグレードする前に DB2 の処理を停止 o 3.6 別の DB2 製品がすでにインストールされている場合はインストール 後に db2iupdt を実行 o 3.7 DB2 コントロール・センターを実行するために Linux 環境を設定 o 3.8 Linux (S/390 版) 用の DB2 ユニバーサル・データベース・エンタ ープライズ・エディションおよび DB2 コネクト エンタープライズ・エ ディション o 3.9 DB2 ユニバーサル・データベース・エンタープライズ - 拡張エディ ション (UNIX 版) 概説およびインストール o 3.10 shmseg カーネル・パラメーター (HP-UX) o 3.11 IBM Visual Warehouse コントロール・データベースの移行 o 3.12 ウェアハウス・コントロール・データベースへのアクセス * データ・リンク・マネージャー 概説およびインストール o 4.1 Dlfm 開始の失敗のメッセージ: 「接頭部の afsfid を取得中にエラ ー」 o 4.2 アーカイブ・ファイルへの Tivoli Storage Manager クラスの設定 o 4.3 DFS クライアント・イネーブラーのディスク・スペース要件 o 4.4 AIX におけるデータ・リンク・ファイル・マネージャー・バックエ ンド・プロセスのモニター o 4.5 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: DCE-DFS 環境における追加のインストールの注意点 o 4.6 "dlfm add_prefix" コマンドの失敗 o 4.7 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: db2setup ユーティリティーを使用して DB2 データ・リンク・ マネージャーをインストール o 4.8 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: DCE-DFS インストール後の作業 o 4.9 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成: smit を使用して DB2 データ・リンク・マネージャーを手動で インストール o 4.10 DB2 データ・リンク DFS クライアント・イネーブラー o 4.11 DB2 データ・リンク・マネージャー (Solaris 版) のインストール および構成 o 4.12 DB2 データ・リンク・マネージャー (AIX 版) のバックアップ方式 の選択 o 4.13 DB2 データ・リンク・マネージャー (Solaris Operating Environment 版) のバックアップ方式の選択 o 4.14 DB2 データ・リンク・マネージャー (Windows NT 版) のバックア ップ方式の選択 o 4.15 AIX におけるジャーナル・ファイル・システムのバックアップ o 4.16 Windows NT のデータ・リンクでのアドミニストレーター・グルー プ権限 o 4.17 データ・リンク・ファイル・システム・フィルター (DLFF) インス トールのロギングの最小化 + 4.17.1 インストール後のメッセージのロギング o 4.18 SMIT を使用して DLFM 構成要素をアンインストールすると他のフ ァイル・セットも除去される可能性があります o 4.19 開始する前のホスト名の判別 o 4.20 データ・リンク・ファイル・マネージャーの操作: DB2 データベー スから DB2 データ・リンク・マネージャーをドロップした後のクリーン アップ o 4.21 DLFM1001E (新規エラー・メッセージ) o 4.22 DLFM セットアップ構成ファイル・オプション o 4.23 AIX 上でのデータ・リンク/DFS スクリプト dmapp_prestart 実行 時エラー o 4.24 Tivoli Space Manager とデータ・リンクとの統合 + 4.24.1 制約事項と制限 o 4.25 第 4 章 DB2 データ・リンク・マネージャー (AIX 版) のインスト ールおよび構成 + 4.25.1 一般的なインストールの注意点 + 4.25.1.1 DB2 ファイル・マネージャー・バージョン 5.2 か ら DB2 データ・リンク・マネージャー・バージョン 7 への 移行 * インストールおよび構成補足 o 5.1 第 5 章 UNIX オペレーティング・システムへの DB2 クライアント のインストール + 5.1.1 HP-UX カーネル構成パラメーター o 5.2 第 12 章 お持ちのアプリケーションの実行 + 5.2.1 ランタイム・クライアントを使用するデータベース・ユーテ ィリティーのバインド + 5.2.2 ODBC を使用しての DB2 への UNIX クライアント・アクセス o 5.3 第 24 章 複数データ・ソース・アクセス用の統合システムのセット アップ + 5.3.1 統合システム + 5.3.1.1 制約事項 + 5.3.2 DB2 リレーショナル・コネクトのインストール + 5.3.2.1 Windows NT サーバーへの DB2 リレーショナル・コ ネクトのインストール + 5.3.2.2 AIX サーバー、Linux サーバー、および Solaris 操 作環境サーバーへの DB2 リレーショナル・ コネクトのイン ストール o 5.4 第 26 章 Oracle データ・ソースへのアクセス + 5.4.1 記述の誤り o 5.5 Sybase データ・ソースへのアクセス (新しい章) + 5.5.1 統合サーバーへの Sybase データ・ソースの追加 + 5.5.1.1 ステップ 1: 環境変数の設定およびプロファイル・ レジストリーの更新 + 5.5.1.2 ステップ 2: Sybase クライアント・ソフトウェアへ の DB2 のリンク (AIX および Solaris の場合のみ) + 5.5.1.3 ステップ 3: DB2 インスタンスの再生 + 5.5.1.4 ステップ 4: interfaces ファイルの作成およびセッ トアップ + 5.5.1.5 ステップ 5: ラッパーの作成 + 5.5.1.6 ステップ 6: オプション: DB2_DJ_COMM 環境変数の 設定 + 5.5.1.7 ステップ 7: サーバーの作成 + 5.5.1.8 オプション: ステップ 8: CONNECTSTRING サーバ ー・オプションの設定 + 5.5.1.9 ステップ 9: ユーザー・マッピングの作成 + 5.5.1.10 ステップ 10: 表および視点のニックネームの作成 + 5.5.2 Sybase コード・ページの指定 o 5.6 ODBC による Microsoft SQL Server データ・ソースへのアクセス (新しい章) + 5.6.1 統合サーバーへの Microsoft SQL Server データ・ソースの 追加 + 5.6.1.1 ステップ 1: 環境変数の設定 (AIX の場合のみ) + 5.6.1.2 ステップ 2: シェル・スクリプトの実行 (AIX の場 合のみ) + 5.6.1.3 ステップ 3: オプション: DB2_DJ_COMM 環境変数の 設定 + 5.6.1.4 ステップ 4: DB2 インスタンスの再生 (AIX の場合 のみ) + 5.6.1.5 ステップ 5: ラッパーの作成 + 5.6.1.6 ステップ 6: サーバーの作成 + 5.6.1.7 ステップ 7: ユーザー・マッピングの作成 + 5.6.1.8 ステップ 8: 表および視点のニックネームの作成 + 5.6.1.9 ステップ 9: オプション: ODBC トレースの取得 + 5.6.2 Microsoft SQL Server コード・ページの検討 ------------------------------------------------------------------------ 一般インストール情報 ------------------------------------------------------------------------ 3.1 すべてのサポートされる DB2 クライアントのインストール・パッケージをダウ ンロード 前バージョンの 7 クライアントを含む、すべてのサポートされる DB2 クライアン トのインストール・パッケージを ダウンロードするには、IBM DB2 クライアント・ アプリケーション・イネーブラー Web サイトに接続してください。 (http://www.ibm.com/software/data/db2/db2tech/clientpak.html) ------------------------------------------------------------------------ 3.2 Windows 2000 に DB2 をインストール Windows 2000 では、前のバージョンの DB2 に上書きインストールする場合や、現 行バージョンを 再インストールする場合には、DB2 のすべてのサービスに対して、 回復オプションが 「Take No Action」に設定されていることを確認してください。 ------------------------------------------------------------------------ 3.3 特別レジスターで定義した視点による移行の実行 USER もしくは CURRENT SCHEMA などの特別レジスターが列の視点を定義する場合、 視点はデータベースの移行後使用できなくなります。 例: create view v1 (c1) as values user バージョン 5 では、USER および CURRENT SCHEMA は CHAR(8) のデータ・タイプで したが、 バージョン 6 以降からは、VARCHAR(128) で定義されています。 この例 では、その視点がバージョン 5 で作成されている場合、c1 列のデータ・タイプは CHAR で データベース移行後にもこの CHAR タイプは残ります。 移行後も視点が使 用される場合は、実行時にコンパイルしても データ・タイプがマッチしないため失 敗します。 これを解決するには視点を削除し、それから再作成します。 視点をドロップする前 に、SYSCAT.VIEWS カタログ視点を照会して、視点を作成するために 使用される構 文を取り込んでください。例: select text from syscat.views where viewname='<>' ------------------------------------------------------------------------ 3.4 IPX/SPX プロトコル・サポート (Windows 2000 版) この情報は、「概説およびインストール」マニュアルの「インストールの計画」の 章にある 「クライアント・サーバー間の接続に関するシナリオ」というセクション を参照しています。 この公開プロトコル・サポート図は、完全に正しいものではありません。 IPX/SPX を使用する OS/2 もしくは UNIX ベースのサーバーに接続する Windows 2000 クラ イアントはサポートしていません。 同様に、IPX/SPX を使用する Windows 2000 サ ーバーに接続する OS/2 もしくは UNIX ベースの クライアントはサポートしていま せん。 ------------------------------------------------------------------------ 3.5 前バージョンの DB2 をアップグレードする前に DB2 の処理を停止 この情報は、「DB2 for Windows 概説およびインストール」マニュアルにある移行 に関する 情報を参照しています。 お使いの Windows マシンで稼働している、前バージョンの DB2 をアップグレード する場合、 インストール・プログラムは、DB2 の DLL をメモリー上に保留してい る処理のリストも合わせ、警告を 出します。 ここで、そのリストにあげられてい るプロセスを手動で停止するオプションがあります。 もしくは、インストール・プ ログラムに自動的にこれらのプロセスをシャットダウンさせる こともできます。デ ータの損失を防ぐためにも、インストールの前にすべての DB2 プロセスを 手動で 停止させることをお勧めします。DB2 のプロセスが稼働していないかを確認する最 善の方法は、 Windows のサービス・パネルで、お使いのシステム・プロセスを表示 することです。Windows サービス・パネルで、 DB2 サービス、OLAP サービス、も しくは データウェアハウス・サービスが稼働していないことを確認します。 注: Windows のプラットフォームで一度に稼働できる DB2 のバージョンは 1 つだ けです。 たとえば、1 つの Windows マシン上で、DB2 のバージョン 7 とバ ージョン 6 を動作させることは できません。DB2 のバージョン 7 を、バー ジョン 6 のインストール済みのマシンにインストール すると、インストー ル・プログラムは、インストール中にバージョン 6 を削除します。DB2 の前 バージョンからの 移行について詳しくは、適切な 概説およびインストール 解説書を参照して ください。 ------------------------------------------------------------------------ 3.6 別の DB2 製品がすでにインストールされている場合はインストール後に db2iupdt を実行 以下の情報は、「概説およびインストール」というインストールに関するマニュア ルから入手できます。 UNIX ベースのシステムに、DB2 UDB バージョン 7 をインストールする場合で、DB2 製品がすでにインストール されている場合、本製品の新機能を使用できるようにそ れらのインスタンスを db2iupdt コマンドで 更新する必要があります。いくつかの 機能はこのコマンドが実行されるまで使用可能になりません。 ------------------------------------------------------------------------ 3.7 DB2 コントロール・センターを実行するために Linux 環境を設定 この情報は、「概説およびインストール」マニュアルの「DB2 コントロール・セン ターのインストール」の章に 含まれています。 DB2 インストーラー (Linux 版) が終了し、ターミナル・ウィンドウに戻った後、 DB2 コントロール・センターを実行するための正しい環境を設定するために、 以下 のコマンドを入力してください: su -l export JAVA_HOME=/usr/jdk118 export DISPLAY=:0 それから、別のターミナル・ウィンドウを開き、以下のように入力します: su root xhost + ターミナル・ウィンドウを閉じ、インスタンスの所有者 ID でログインしている タ ーミナルに戻り、以下のコマンドを入力します: db2cc コントロール・センターを開始します。 ------------------------------------------------------------------------ 3.8 Linux (S/390 版) 用の DB2 ユニバーサル・データベース・エンタープライ ズ・エディションおよび DB2 コネクト エンタープライズ・エディション DB2 ユニバーサル・データベース・エディションと DB2 コネクト・エンタープライ ズ・エディションが、 Linux (S/390 版) で使用できるようになりました。S/390 マシンに Linux をインストールする前に、 ソフトウェアおよびハードウェア要件 を確認してください。 ハードウェア S/390 9672 Generation 5 以降、Multiprise 3000。 ソフトウェア * SuSE Linux v7.0 for S/390 または Turbolinux Server 6 for zSeries およ び S/390 * カーネル・レベル 2.2.16、S/390 用パッチ適用済み (下記を参照) * glibc 2.1.3 * libstdc++ 6.1 Linux (S/390 版) には以下のパッチが必要です。 * 現時点ではパッチは不要です。 最新の更新情報については、http://www.software.ibm.com/data/db2/linux Web サ イトに アクセスしてください。 注: 1. 32 ビット Intel ベースの Linux と、Linux S/390 版のみがサポートされて います。 2. 以下は DB2 バージョン 7 の Linux/390 では使用できません。 o DB2 UDB エンタープライズ - 拡張エディション o DB2 エクステンダー o データ・リンク・マネージャー o DB2 管理クライアント o パスワード変更サポート o LDAP サポート ------------------------------------------------------------------------ 3.9 DB2 ユニバーサル・データベース・エンタープライズ - 拡張エディション (UNIX 版) 概説およびインストール 「第 5 章 Linux での DB2 ユニバーサル・データベースのインストールおよび構 成」には、 Linux EEE クラスター内の物理ノードがそれぞれ同じカーネル、 glibc、および libstdc++ の レベルを持っていなければならないと記されていま す。 Linux 版 DB2 EEE のお試し版は、 Web サイト http://www6.software.ibm.com/dl/db2udbdl/db2udbdl-pからダウンロードできま す。 ------------------------------------------------------------------------ 3.10 shmseg カーネル・パラメーター (HP-UX) 「概説およびインストール」マニュアルにある HP-UX カーネル構成パラメーターの 更新に関する情報は、 誤っています。HP-UX の shmseg カーネル・パラメーターの 推奨値は無視してください。 代わりに、デフォルトの HP-UX 値 (120) を使用してください。 ------------------------------------------------------------------------ 3.11 IBM Visual Warehouse コントロール・データベースの移行 「DB2 ユニバーサル・データベース 概説およびインストール (Windows 版) 」は、 Windows NT および Windows 2000 に DB2 ユニバーサル・データベース バージョン 7 の通常インストール中、 活動ウェアハウス・コントロール・データベースがどの ように移行されるかについての情報を提供します。 移行するウェアハウス・コント ロール・データベースが複数ある場合、 「ウェアハウス・コントロール・データベ ース管理」ウィンドウを使用して、 追加のデータベースを移行する必要がありま す。一度に 1 つのウェアハウス・コントロール・ データベースしか活動化できま せん。移行する最後のデータベースが、 データウェアハウスセンターへの次回のロ グオン時に使用する予定のデータベースでない場合、 「ウェアハウス・コントロー ル・データベース管理」ウィンドウを使用して、 使用する予定のデータベースを登 録する必要があります。 ------------------------------------------------------------------------ 3.12 ウェアハウス・コントロール・データベースへのアクセス Windows NT 上での DB2 バージョン 7 の通常インストールでは、 DB2 バージョン 7 ウェアハウス・コントロール・データベースはウェアハウス・サーバー付きで 作 成されます。 Visual Warehouse ウェアハウス・コントロール・データベースを持 っている場合、ウェアハウス・コントロール・データベースの メタデータが DB2 バージョン 7 データウェアハウスセンターによって使用を移行される前に、 ウェ アハウス・コントロール・データベースを含む DB2 サーバーを DB2 バージョン 7 へ アップグレードする必要があります。使用を続けたいウェアハウス・コントロー ル・データベースはすべて バージョン 7 に移行する必要があります。活動ウェア ハウス・コントロール・データベースの メタデータは DB2 バージョン 7 のインス トール処理中にバージョン 7 に移行されます。 ウェアハウス・コントロール・デ ータベースのどんな追加でもメタデータを 移行するには、ウェアハウス・コントロ ール・データベース移行ユーティリティーを使用します。 それは Windows NT のス タート-->プログラム--> IBM DB2 -->ウェアハウス・コントロール・データベース 管理を選択して開始 します。ウェアハウス・コントロール・データベースの移行に ついての情報に関しては、DB2 ユニバーサル・データベースの概説およびインスト ール を参照してください。 ------------------------------------------------------------------------ データ・リンク・マネージャー 概説およびインストール ------------------------------------------------------------------------ 4.1 Dlfm 開始の失敗のメッセージ: 「接頭部の afsfid を取得中にエラー」 DCE-DFS 環境でデータ・リンク・マネージャーを実行していて、 dlfm start が次 のエラーで失敗した場合は、IBM サービスに連絡してください。 接頭部の afsfid を取得中にエラー "dlfm add_prefix" を使用してデータ・リンク・マネージャーに登録された DFS フ ァイル・セットを削除すると、このエラーが起きる可能性があります。 ------------------------------------------------------------------------ 4.2 アーカイブ・ファイルへの Tivoli Storage Manager クラスの設定 アーカイブ・ファイルに対して使用する TSM 管理クラスを指定するには、 DLFM_TSM_MGMTCLASS DB2 レジストリー項目を、適切な管理クラス名に設定してくだ さい。 ------------------------------------------------------------------------ 4.3 DFS クライアント・イネーブラーのディスク・スペース要件 DFS クライアント・イネーブラーは、DB2 ユニバーサル・データベースの クライア ントまたはサーバー・インストール中に選択可能なオプションの構成要素です。 DFS クライアント・イネーブラーは DB2 UDB クライアントまたはサーバーを使用せ ずに実行できますが、 DB2 ユニバーサル・データベースのクライアントまたはサー バー製品をインストールせずに DFS クライアント・イネーブラーをインストールす ることはできません。 DFS クライアント・イネーブラー・コード用に 2MB のディ スク・スペースが必要であり、 DFS クライアント・イネーブラーを DB2 ランタイ ム・クライアント・インストールの一部として インストールする場合は、さらに追 加の 40 MB が必要です。 DFS クライアント・イネーブラーを DB2 管理クライアン トまたは DB2 サーバー・インストールの 一部としてインストールする場合、さら に多くのディスク・スペースが必要となります。 DB2 ユニバーサル・データベース 製品群のディスク・スペース要件に関する詳細については、 DB2 (UNIX 版) 概説お よびインストールマニュアルを参照してください。 ------------------------------------------------------------------------ 4.4 AIX におけるデータ・リンク・ファイル・マネージャー・バックエンド・プロ セスのモニター dlfm see コマンドの出力に変更がありました。 AIX 上でデータ・リンク・ファイ ル・マネージャー・バックエンド・プロセスをモニターするのに このコマンドを実 行した場合、以下のような出力が戻されます。 PID PPID PGID RUNAME UNAME ETIME DAEMON NAME 17500 60182 40838 dlfm root 12:18 dlfm_copyd_(dlfm) 41228 60182 40838 dlfm root 12:18 dlfm_chownd_(dlfm) 49006 60182 40838 dlfm root 12:18 dlfm_upcalld_(dlfm) 51972 60182 40838 dlfm root 12:18 dlfm_gcd_(dlfm) 66850 60182 40838 dlfm root 12:18 dlfm_retrieved_(dlfm) 67216 60182 40838 dlfm dlfm 12:18 dlfm_delgrpd_(dlfm) 60182 1 40838 dlfm dlfm 12:18 dlfmd_(dlfm) DLFM SEE 要求は成功しました。 括弧で囲まれた名前は dlfm インスタンスの名前で、この場合 "dlfm" です。 ------------------------------------------------------------------------ 4.5 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: DCE-DFS 環境における追加のインストールの注意点 「インストールの前提条件」セクションで、以下の新規情報を追加してください。 DFS 3.1 の e-fix または PTF セット 1 (入手可能になった場合) の いずれかをインストールする必要があります。e-fix は以下から入手できます。 http://www.transarc.com/Support/dfs/datalinks/efix_dfs31_main_page.html また、 データ・リンク・マネージャーをインストールする前に、dfs クライアントを実行する必要があります。 db2setup または smitty を使用してください。 「Keytab ファイル」セクションで、以下のように訂正してください。 プリンシパルおよびパスワード情報を含む keytab ファイルは、 datalink.ktb と呼ばれる .... 下の例では、正しい名前: datalink.ktb を使用しています。 DLMADMIN インスタン スが作成されるまでは Keytab ファイルの作成は行われないので、 「Keytab ファ イル」セクションは 「DCE-DFS インストール後の作業」の下に移動します。 「データ・リンク・ファイル・マネージャー サーバーおよびクライアント」という セクションで、 データ・リンク・マネージャー・サーバーはデータ・リンク・マネ ージャー・クライアントよりも先に インストールする必要があります。 「バックアップ・ディレクトリー」という新規セクションが追加されます。 バックアップ・メソッドがローカル・ファイル・システム用の場合、 バックアップ・ディレクトリーは DFS ファイル・システムのディレクトリーでなければなりません。 この DFS ファイル・セットが DFS 管理者によって作成されたことを確認してください。 このファイル・セットを DMLFS ファイル・セットにすることはできません。 ------------------------------------------------------------------------ 4.6 "dlfm add_prefix" コマンドの失敗 DCE/DFS 環境で稼働するデータ・リンク・マネージャーの場合、 dlfm add_prefix コマンドは 戻りコード -2061 (バックアップの失敗) で失敗する可能性がありま す。これが起きた場合は、以下のステップを実行します。 1. dlfm stop コマンドを実行して、データ・リンク・マネージャー・デーモン・ プロセスを停止する。 2. dlfm stopdbm コマンドを実行して、DB2 プロセスを停止する。 3. dce_login root コマンドを実行して、dce root 認証を取得する。 4. dlfm startdbm コマンドを実行して、DB2 プロセスを開始する。 5. dlfm add_prefix コマンドを実行して、ファイル・セットをデータ・リンク・ マネージャーと一緒に登録する。 6. dlfm start コマンドを実行して、データ・リンク・マネージャー・デーモ ン・プロセスを開始する。 ------------------------------------------------------------------------ 4.7 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: db2setup ユーティリティーを使用して DB2 データ・リンク・マネージャーをイン ストール 「DB2 データベース DLFM_DB 作成」セクションで、DLFM_DB は DCE_DFS 環境に作 成されません。 これは、インストール後のステップとして実行されます。 「DCE-DFS 開始前の DMAPP の登録」セクションで、 ステップ 2 は以下のように変 更されます。 2. DFS の開始時に DMAPP が開始されるのを確認するために、 /opt/dcelocal/tcl/user_cmd.tcl にコマンドが追加されます。 ------------------------------------------------------------------------ 4.8 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: DCE-DFS インストール後の作業 「データ・リンク・マネージャーのインストール」という新規セクションが追加さ れます。 データ・リンク・マネージャー・サーバーで、インストールを完了するために 以下 のステップを実行する必要があります。 1. 「DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成」 章の 「DCE-DFS 環境における追加のインストールの注意点」セクションの 「Keytab ファイル」 に記されている方法で、Keytab ファイルを作成する。 2. root で、以下のコマンドを入力して DMAPP を開始する。 stop.dfs all start.dfs all 3. 以下のように dce root 認証を使用して "dlfm setup" を実行する。 a. データ・リンク・マネージャー管理者: DLMADMIN でログインする。 b. root で、dce_login を実行する。 c. 次のコマンドを入力する: dlfm setup データ・リンク・マネージャー・クライアントで、インストールを完了するために 以下のステップを実行する必要があります。 1. 「DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成」 章の 「DCE-DFS 環境における追加のインストールの注意点」セクションの 「Keytab ファイル」 に記されている方法で、Keytab ファイルを作成する。 2. root で、以下のコマンドを入力して DMAPP を開始する。 stop.dfs all start.dfs all ------------------------------------------------------------------------ 4.9 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: smit を使用して DB2 データ・リンク・マネージャーを手動でインストール 「SMIT インストール後の作業」セクションのステップ 7 で、 "dce_login root" コマンドを "dlfm setup" の前に実行するようにしてください。 ステップ 11 は必 要ありません。 このステップは、ステップ 6 (dlfm server_conf) または ステッ プ 8 (dlfm client_conf) が完了すると自動的に実行されます。 ステップ 12 (dlfm start) も除去してください。 インストールを完了するには、以下のステッ プを実行します。 1. 「DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成」 章の 「DCE-DFS 環境における追加のインストールの注意点」セクションの 「Keytab ファイル」 に記されている方法で、Keytab ファイルを作成する。 2. root で、以下のコマンドを入力して DMAPP を開始する。 stop.dfs all start.dfs all ------------------------------------------------------------------------ 4.10 DB2 データ・リンク DFS クライアント・イネーブラー 「DFS クライアント・イネーブラーの構成」セクションのステップ 2 に 次の情報 を追加してください。 "secval" コマンドを実行すると、通常構成は完了します。 ただし、マシンをリブートする必要があるかもしれません。 READ PERMISSION DB ファイルにアクセス中に問題が起きた場合は、 DB2 DFS クライアント・イネーブラーをインストールしたマシンをリブートしてください。 ------------------------------------------------------------------------ 4.11 DB2 データ・リンク・マネージャー (Solaris 版) のインストールおよび構成 DB2 データ・リンク・マネージャー (Solaris 版) のインストール後に、次の アク ションを実行する必要があります。 1. 以下の 3 行を /etc/system ファイルに追加する。 set dlfsdrv:glob_mod_pri=0x100800 set dlfsdrv:glob_mesg_pri=0xff set dlfsdrv:ConfigDlfsUid=UID UID は id dlfm のユーザー ID を表します。 2. 変更を有効にするために、マシンをリブートする。 ------------------------------------------------------------------------ 4.12 DB2 データ・リンク・マネージャー (AIX 版) のバックアップ方式の選択 ディスク・コピーおよび XBSA に加えて、Tivoli Storage Manager (TSM) を 使用 して、データ・リンク・サーバーに常駐するファイルのバックアップを取ることも できます。 Tivoli Storage Manager をアーカイブ・サーバーとして使用するには: 1. Tivoli Storage Manager をデータ・リンク・サーバー上にインストールす る。詳細については、 Tivoli Storage Manager 製品のドキュメンテーション を参照してください。 2. データ・リンク・サーバー・クライアント・アプリケーションを Tivoli Storage Manager サーバーと一緒に登録する。詳細については、 Tivoli Storage Manager 製品のドキュメンテーションを参照してください。 3. 以下の環境変数を、データ・リンク・マネージャー管理者の db2profile また は db2cshrc スクリプト・ファイルに追加する。 (Bash、Bourne、または Korn シェルの場合) export DSMI_DIR=/usr/tivoli/tsm/client/api/bin export DSMI_CONFIG=$HOME/tsm/dsm.opt export DSMI_LOG=$HOME/dldump export PATH=$PATH:$DSMI_DIR (C シェルの場合) setenv DSMI_DIR /usr/tivoli/tsm/client/api/bin setenv DSMI_CONFIG ${HOME}/tsm/dsm.opt setenv DSMI_LOG ${HOME}/dldump setenv PATH=${PATH}:$DSMI_DIR 4. dsm.sys TSM システム・オプション・ファイルが $DSMI_DIR ディレクトリー にあることを確認する。 5. dsm.opt TSM ユーザー・オプション・ファイルが INSTHOME/tsm ディレクトリ ーにあることを確認する。 ここで、INSTHOME はデータ・リンク・マネージャ ー管理者のホーム・ディレクトリーです。 6. /usr/tivoli/tsm/client/api/bin/dsm.sys Tivoli Storage Manager システ ム・オプション・ファイルで PASSWORDACCESS オプションを generate に設定 する。 7. 最初にデータ・リンク・ファイル・マネージャーが開始する前に、 TSM パス ワードを generate オプションと一緒に登録する。 これにより、データ・リ ンク・ファイル・マネージャーが TSM サーバーへの接続を開始するときに、 パスワードを提供する必要がなくなります。 詳細については、TSM 製品のド キュメンテーションを参照してください。 8. DLFM_BACKUP_TARGET レジストリー変数を TSM に設定する。 DLFM_BACKUP_DIR_NAME レジストリー変数はこの場合無視されます。 これによ り、Tivoli Storage Manager バックアップ・オプションが活動状態になりま す。 注: 1. 実行時に TSM とディスク間で DLFM_BACKUP_TARGET レジストリー変数の 設定を変更する場合、 保存されるファイルは、新しく指定された保存場 所に移動しないことに注意してください。 たとえば、 DLFM_BACKUP_TARGET レジストリー値を TSM に設定して データ・リン ク・マネージャーを開始し、レジストリー値をディスク位置に変更した 場合、 新しく保存されるファイルはすべて、ディスクの新規の場所に保 管されます。以前 TSM に保存されたファイルは、新規のディスク位置に は移動しません。 2. デフォルトの TSM 管理クラスをオーバーライドするための、新規のレジ ストリー変数 DLFM_TSM_MGMTCLASS があります。このレジストリー変数 が設定されないと、 デフォルト管理クラスが使用されます。 9. dlfm stop コマンドを入力して、データ・リンク・ファイル・マネージャーを 停止する。 10. dlfm start コマンドを入力して、データ・リンク・ファイル・マネージャー を開始する。 ------------------------------------------------------------------------ 4.13 DB2 データ・リンク・マネージャー (Solaris Operating Environment 版) の バックアップ方式の選択 ディスク・コピーおよび XBSA に加えて、Tivoli Storage Manager (TSM) を 使用 して、データ・リンク・サーバーに常駐するファイルのバックアップを取ることも できます。 Tivoli Storage Manager をアーカイブ・サーバーとして使用するには: 1. Tivoli Storage Manager をデータ・リンク・サーバー上にインストールす る。詳細については、 Tivoli Storage Manager 製品のドキュメンテーション を参照してください。 2. データ・リンク・サーバー・クライアント・アプリケーションを Tivoli Storage Manager サーバーと一緒に登録する。詳細については、 Tivoli Storage Manager 製品のドキュメンテーションを参照してください。 3. 以下の環境変数を、データ・リンク・マネージャー管理者の db2profile また は db2cshrc スクリプト・ファイルに追加する。 (Bash、Bourne、または Korn シェルの場合) export DSMI_DIR=/opt/tivoli/tsm/client/api/bin export DSMI_CONFIG=$HOME/tsm/dsm.opt export DSMI_LOG=$HOME/dldump export PATH=$PATH:/opt/tivoli/tsm/client/api/bin (C シェルの場合) setenv DSMI_DIR /opt/tivoli/tsm/client/api/bin setenv DSMI_CONFIG ${HOME}/tsm/dsm.opt setenv DSMI_LOG ${HOME}/dldump setenv PATH=${PATH}:/opt/tivoli/tsm/client/api/bin 4. dsm.sys TSM システム・オプション・ファイルが /opt/tivoli/tsm/client/api/bin ディレクトリーにあることを確認する。 5. dsm.opt TSM ユーザー・オプション・ファイルが INSTHOME/tsm ディレクトリ ーにあることを確認する。 ここで、INSTHOME はデータ・リンク・マネージャ ー管理者のホーム・ディレクトリーです。 6. /opt/tivoli/tsm/client/api/bin/dsm.sys Tivoli Storage Manager システ ム・オプション・ファイルで PASSWORDACCESS オプションを generate に設定 してください。 7. 最初にデータ・リンク・ファイル・マネージャーが開始する前に、 TSM パス ワードを generate オプションと一緒に登録する。 これにより、データ・リ ンク・ファイル・マネージャーが TSM サーバーへの接続を開始するときに、 パスワードを提供する必要がなくなります。 詳細については、TSM 製品のド キュメンテーションを参照してください。 8. DLFM_BACKUP_TARGET レジストリー変数を TSM に設定する。 DLFM_BACKUP_DIR_NAME レジストリー変数はこの場合無視されます。 これによ り、Tivoli Storage Manager バックアップ・オプションが活動状態になりま す。 注: 1. 実行時に TSM とディスク間で DLFM_BACKUP_TARGET レジストリー変数の 設定を変更する場合、 保存されるファイルは、新しく指定された保存場 所に移動しないことに注意する。 たとえば、DLFM_BACKUP_TARGET レジ ストリー値を TSM に設定して データ・リンク・マネージャーを開始 し、レジストリー値をディスク位置に変更した場合、 新しく保存される ファイルはすべて、ディスクの新規の場所に保管されます。以前 TSM に 保存されたファイルは、新規のディスク位置には移動しません。 2. デフォルトの TSM 管理クラスをオーバーライドするための、新規のレジ ストリー変数 DLFM_TSM_MGMTCLASS があります。このレジストリー変数 が設定されないと、 デフォルト管理クラスが使用されます。 9. dlfm stop コマンドを入力して、データ・リンク・ファイル・マネージャーを 停止してください。 10. dlfm start コマンドを入力して、データ・リンク・ファイル・マネージャー を開始してください。 ------------------------------------------------------------------------ 4.14 DB2 データ・リンク・マネージャー (Windows NT 版) のバックアップ方式の 選択 回復のために定義された DATALINK 列を持つ表に DATALINK 値が挿入されると、 デ ータ・リンク・サーバー上の対応する DATALINK ファイルのバックアップがアーカ イブ・ファイルに 取られるようスケジュールされます。現在、ディスク・コピー (デフォルト・メソッド) および Tivoli Storage Manager には、アーカイブ・サー バーにファイルのバックアップを取るための 2 つのオプションがサポートされてい ます。DB2 データ・リンク・マネージャー (Windows NT 版) の 将来のリリースに おいて、他のベンダーのバックアップ媒体およびソフトウェアを サポートする予定 です。 ディスク・コピー (デフォルト・メソッド) backup コマンドが DB2 サーバーで入力されると、 データベース内のリン ク・ファイルが、データ・リンク・サーバー上で DLFM_BACKUP_DIR_NAME 環境 変数で指定されたディレクトリーにバックアップを取られたことを 確認しま す。この変数のデフォルト値はc:\dlfmbackup で、c:\ はデータ・リンク・マ ネージャーの バックアップ・インストール・ドライブを指します。 この変数を c:\dlfmbackup に設定するには、次のコマンドを入力してくださ い。 db2set -g DLFM_BACKUP_DIR_NAME=c:\dlfmbackup DLFM_BACKUP_DIR_NAME 環境変数で指定された場所は、 データ・リンク・ファ イル・システムを使用しているファイル・システム・フィルター上であっては いけません。 また、必須スペースは、バックアップ・ファイルに指定された ディレクトリーで使用可能です。 次のコマンドを入力して、DLFM_BACKUP_TARGET 変数が LOCAL に設定している ことも確認してください。 db2set -g DLFM_BACKUP_TARGET=LOCAL これらの変数を設定または変更した後、 dlfm stop および dlfm start コマ ンドを使用して、データ・リンク・ファイル・マネージャーを停止および再始 動してください。 Tivoli Storage Manager Tivoli Storage Manager をアーカイブ・サーバーとして使用するには: 1. Tivoli Storage Manager をデータ・リンク・サーバー上にインストール する。詳細については、 Tivoli Storage Manager 製品のドキュメンテ ーションを参照してください。 2. データ・リンク・サーバー・クライアント・アプリケーションを Tivoli Storage Manager サーバーと一緒に登録する。詳細については、 Tivoli Storage Manager 製品のドキュメンテーションを参照してください。 3. 「スタート」をクリックし、「設定 --> コントロール パネル --> シス テム」を選択する。 「システムのプロパティー」ウィンドウが開きま す。 環境タブを選択し、 以下の環境変数および対応する値を入力して ください。 変数 値 DSMI_DIR c:\tsm\baclient DSMI_CONFIG c:\tsm\baclient\dsm.opt DSMI_LOG c:\tsm\dldump 4. dsm.sys TSM システム・オプション・ファイルが c:\tsm\baclient ディ レクトリーにあることを確認する。 5. dsm.opt TSM ユーザー・オプション・ファイルが c:\tsm\baclient ディ レクトリーにあることを確認する。 6. c:\tsm\baclient\dsm.sys Tivoli Storage Manager システム・オプショ ン・ファイルで PASSWORDACCESS オプションを generate に設定する。 7. 最初にデータ・リンク・ファイル・マネージャーが開始する前に、 TSM パスワードを generate オプションと一緒に登録する。 これにより、デ ータ・リンク・ファイル・マネージャーが TSM サーバーへの接続を開始 するときに、パスワードを提供する必要がなくなります。 詳細について は、TSM 製品のドキュメンテーションを参照してください。 8. 次のコマンドを使用して、DLFM_BACKUP_TARGET 環境変数を TSM に設定 する。 db2set -g DLFM_BACKUP_TARGET=TSM DLFM_BACKUP_DIR_NAME 環境変数の値は この場合無視されます。これに より、Tivoli Storage Manager バックアップ・オプションが活動状態に なります。 注: 1. 実行時に TSM と LOCAL 間で DLFM_BACKUP_TARGET 環境変数の設定 を変更する場合、 保存されるファイルは、新しく指定された保存 場所に移動しないことに注意する。 たとえば、 DLFM_BACKUP_TARGET 環境変数を TSM に設定して データ・リン ク・ファイル・マネージャーを開始し、値を LOCAL に変更した場 合、 新しく保存されるファイルはすべて、ディスクの新規の場所 に保管されます。以前 TSM に保存されたファイルは、新規のディ スク位置には移動しません。 2. デフォルトの TSM 管理クラスをオーバーライドするための、新規 の環境変数 DLFM_TSM_MGMTCLASS があります。 この変数が設定さ れないと、デフォルト管理クラスが使用されます。 9. dlfm stop コマンドを入力して、データ・リンク・ファイル・マネージ ャーを停止する。 10. dlfm start コマンドを入力して、データ・リンク・ファイル・マネージ ャーを開始する。 ------------------------------------------------------------------------ 4.15 AIX におけるジャーナル・ファイル・システムのバックアップ ブックでは、データ・リンク・マネージャーを停止し、ファイル・システムの オフ ライン・バックアップを行うよう記載されています。 データ・リンク・マネージャ ーを停止する要件を除去する以下の方法は、 より高可用性を要求されるユーザー向 けです。 1. CLI ソース・ファイル quiesce.c および シェル・スクリプト online.sh に アクセスする。 これらのファイルは /samples/dlfm ディレクトリーにありま す。 2. quiesce.c のコンパイル: xlC -o quiesce -L$HOME/sqllib/lib -I$HOME/sqllib/include -c quiesce.c 3. ルートから、DLFS ファイル・システムを持つノードでスクリプトを実行す る。 シェル・スクリプト online.sh には、データ・リンク・マネージャーで登録されて いる 各データベースのデータ・リンク・ノード上のカタログ項目があることを前提 としています。 また、/etc/filesystems には DLFS ファイル・システムの完全な 項目があることを 前提としています。シェル・スクリプトは以下を行います。 * データベース・マネージャーで登録されているデータベース内のすべての表を 静止する。 これによって新規の活動が停止します。 * ファイル・システムを読み取り専用ファイル・システムとしてアンマウントお よび再マウントする。 * ファイル・システムのバックアップを取る。 * ファイル・システムを読み取り / 書き込み用ファイル・システムとしてアン マウントおよび再マウントする。 * DB2 表をリセットする。つまり、静止状態でないようにします。 スクリプトは、以下のように環境に適した変更を行う必要があります。 1. バックアップ・コマンドを選択し、スクリプトの do_backup 関数に組み込 む。 2. スクリプト内で、以下の環境変数を設定する。 o DLFM_INST: これを DLFM インスタンス名に設定する。 o PATH_OF_EXEC: これを "quiesce" 実行可能プログラムが常駐するパスに 設定する。 以下のようにしてスクリプトを呼び出します。 online.sh ------------------------------------------------------------------------ 4.16 Windows NT のデータ・リンクでのアドミニストレーター・グループ権限 Windows NT では、アドミニストレーター・グループに属するユーザーは、 DataLinks を使用してリンクされるファイルに関して、多くの関数に ついての UNIX の root ユーザーと同じ権限を持ちます。下の表にこの 両方が比較されてい ます。 操作 Unix (root) Windows NT (アドミニスト レーター) 名前変更 Yes Yes トークンなしでファイル Yes Yes にアクセス 削除 Yes いいえ (下の注を参照) 更新 Yes いいえ (下の注を参照) 注: NTFS は、読み取り専用ファイルにこれらの操作を許していません。 アドミニ ストレーター・ユーザーは、ファイルの書き込み許可を使用可能にすること で、 これらの操作を正常に行うことができます。 ------------------------------------------------------------------------ 4.17 データ・リンク・ファイル・システム・フィルター (DLFF) インストールのロ ギングの最小化 データ・リンク・ファイル・システム・フィルター (DLFF) インストールのロギン グを、 dlfs_cfg ファイルを変更することで最小化することが できます。dlfs_cfg ファイルは、ドライバーと 構成パラメーターをロードするために strload ルーチ ンに渡されます。 ファイルは /usr/lpp/db2_07_01/cfg/ ディレクトリーに ありま す。記号リンクを経由すると、ファイルは /etc ディレクトリーにも 見つかりま す。dlfs_cfg ファイルの形式は次の通りです。 d 'driver-name' 'vfs number' 'dlfm id' 'global message priority' 'global module priority' - 0 1 パラメーターの意味は次の通りです。 d d パラメーターは、ドライバーをロードすることを指定します。 driver-name driver-name はロードする全パスです。たとえば、DB2 バージョン 7 の全パ スは /usr/lpp/db2_07_01/bin/dlfsdrv です。ドライバーの名前は dlfsdrv です。 vfs number /etc/vfs にある DLFS の vfs 項目。 dlfm id これは、データ・リンク・マネージャー管理者のユーザー ID です。 global message priority グローバル・メッセージ優先順位。 global module priority グローバル・モジュール優先順位。 0 1 0 1 は、このドライバーの非複製ノードを作成するためのマイナー番号です。 ノード名は、複製されたドライバー・ノード名にマイナー番号を付加すること で作成されます。 5 つ以内 (0-4) のマイナー番号を指定できます。 実際の例では、次のようになります。 d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,255,-1 - 0 1 ログに記録されるメッセージは、グローバル・メッセージ優先順位とグローバル・ モジュール優先順位の設定によって異なります。ログを最小化するために、グロー バル・ メッセージ優先順位を変更することができます。 使用可能なメッセージ優先順位は次の 4 つです。 #define LOG_EMERGENCY 0x01 #define LOG_TRACING 0x02 #define LOG_ERROR 0x04 #define LOG_TROUBLESHOOT 0x08 DLFF のメッセージの多くは、 メッセージ優先順位として LOG_TROUBLESHOOT を持 っています。 いくつかの構成例を次に示します。 緊急メッセージとエラー・メッセージが必要な場合は、dlfs_cfg 構成ファイルで グローバル・メッセージ優先順位を 5 (1+4) に設定してください。 d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,5,-1 - 0 1 エラー・メッセージだけが必要な場合は、グローバル・メッセージ優先順位を 4 に 設定してください。 d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,4,-1 - 0 1 DLFS のロギングを必要としない場合は、グローバル・メッセージ優先順位を 0 に 設定してください。 d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,0,-1 - 0 1 4.17.1 インストール後のメッセージのロギング インストール後に緊急、エラー、および障害追及メッセージを記録する必要がある 場合は、 dlfs_cfg ファイルを変更してください。 dlfs_cfg ファイルは /usr/lpp/db2_07_01/cfg ディレクトリーにあります。グローバル・メッセージ優先 順位 は 255 (最高の優先順位) または 13 (8+4+1) に設定してください。優先順位 を 13 (8+4+1) に 設定すると、緊急、エラー、および障害追及情報がログに記録さ れます。 グローバル・メッセージ優先順位を設定した後、DLFS フィルター・ファイル・シス テムを アンマウントし、dlfsdrv ドライバーを再ロードして、 新しい優先順位の 値がロード時に設定されるようにしてください。dlfsdrv ドライバーが 再ロードさ れたら、DLFS フィルター・ファイル・システムを再マウントする必要があります。 注: dlfs_cfg の設定は、dlfs_cfg ファイルは再び変更されるまで、 dlfsdrv ド ライバーの以後のロードのためにそのまま残されます。 ------------------------------------------------------------------------ 4.18 SMIT を使用して DLFM 構成要素をアンインストールすると他のファイル・セ ットも除去される可能性があります DB2 (バージョン 5、6、または 7) をデータ・リンク・マネージャーがインストー ルされて いる AIX マシンからアンインストールする前に、以下を行ってくださ い。 1. root ユーザーで次のコマンドを使用して、/etc/vfs のコピーを作成する。 cp -p /etc/vfs /etc/vfs.bak 2. DB2 をアンインストールする。 3. root ユーザーで、ステップ 1 で作成したバックアップ・コピーを /etc/vfs と 置き換える。 cp -p /etc/vfs.bak /etc/vfs ------------------------------------------------------------------------ 4.19 開始する前のホスト名の判別 各 DB2 サーバーおよび各データ・リンク・サーバーの名前を判別する必要がありま す。 これらのホスト名を認識して、インストールを検証しなければなりません。 DB2 データ・リンク・ファイル・マネージャーに接続すると、 DB2 UDB サーバーは 以下の情報を DLFM に内部的に送信します。 * データベース名 * インスタンス名 * ホスト名 次に DLFM はこの情報を内部表と比較して、接続を許可するかどうかを決定しま す。 dlfm add_db コマンドによってデータベース名、インスタンス名、およびホス ト名の 組み合わせが DLFM に登録されている場合にのみ、接続が許可されます。 dlfm add_db コマンドに使用されるホスト名は、DB2 UDB サーバーが 内部的に送信 するホスト名と正確に一致していなければなりません。 以下の方法で入手した正確なホスト名を使用してください。 1. DB2 サーバーでホスト名コマンドを入力する。 たとえば、このコマンドは db2server を返します。 2. プラットフォームに応じて、以下のいずれかを行う。 o AIX の場合、host db2server コマンドを入力する。db2server は 直前 のステップで入手した名前です。 このコマンドは次のような出力を返し ます。 db2server.services.com is 9.11.302.341, Aliases: db2server o Windows NT の場合、nslookup db2server コマンドを入力する。 db2server は直前のステップで入手した名前です。 このコマンドは次の ような出力を返します。 Server: dnsserv.services.com Address: 9.21.14.135 Name: db2server.services.com Address: 9.21.51.178 o Solaris の場合、cat /etc/hosts | grep 'hostname' を入力する。 /etc/hosts に定義域名なしでホスト名を指定した場合、これは次のよう な出力を返します。 9.112.98.167 db2server loghost 定義域名を付けてホスト名を指定した場合、 上記のコマンドは次のよう な出力を返します。 9.112.98.167 db2server.services.com loghost dlfm add_db コマンドを使用して DB2 UDB データベースを登録するときは、 ホス ト名に db2server.services.com を使用してください。 dlfm add_db コマンドに他 の別名を使用すると、DLFM への DB2 サーバーの内部接続が失敗します。 データ・リンク・サーバーは、DB2 の "add datalinks manager for database database_alias using node hostname port port_number" コマンドを 使用して DB2 に登録します。 hostname はデータ・リンク・サーバーの名前です。 このコマンドでは、データ・ リンク・サーバーの有効な別名を使用できます。 このデータ・リンク・サーバーへ の参照である DATALINK 値で、 URL 値のホスト名を指定する必要があります。 つ まり、URL 値を DATALINK 列に割り当てるときは、 "add datalinks manager" コマ ンドに使用された名前と同じ名前を使用しなければなりません。 他の別名を使用す ると、SQL ステートメントが失敗します。 ------------------------------------------------------------------------ 4.20 データ・リンク・ファイル・マネージャーの操作: DB2 データベースから DB2 データ・リンク・マネージャーをドロップした後のクリーンアップ DROP DATALINKS MANAGER コマンドを使用して データベースから DB2 データ・リン ク・マネージャーをドロップしても、 このコマンドは DB2 データ・リンク・マネ ージャー上の 対応する情報をクリーンアップしません。 ユーザーは、データベー スにリンクされたファイルのリンク解除と バックアップ情報のガーベッジ・コレク ションを明示的に開始できます。 これは、dlfm drop_dlm コマンドを使って行うこ とができます。 このコマンドによって、特定のデータベースのすべての情報の非同 期削除が開始されます。 このコマンドを成功させるには、DB2 データ・リンク・マ ネージャーが 実行されている必要があります。 このコマンドは、必ず、DB2 デー タ・リンク・マネージャーのドロップ後にのみ 使用してください。 そうでない と、DB2 データ・リンク・マネージャーに関する重要な情報が失われ、 回復できな くなります。 特定のデータベースに対して、リンク解除処理と バックアップ情報のガーベッジ・ コレクションを開始するには、以下を行います。 1. DB2 データ・リンク・マネージャー管理者としてシステムにログオンする。 2. 次のコマンドを実行する。 dlfm drop_dlm database instance hostname 説明: database はリモート DB2 UDB データベースの名前。 instance はデータベースが存在するインスタンス。 hostname はデータベースが存在する DB2 UDB サーバーのホスト名。 3. ログオフする。 このコマンドを使用すべきコンテキストを示す 完全な使用シナリオについては、「 コマンド解説書」を参照してください。 このコマンド用に新しいエラー・コードが作成されました (「4.21, DLFM1001E (新 規エラー・メッセージ)」を参照)。 ------------------------------------------------------------------------ 4.21 DLFM1001E (新規エラー・メッセージ) DLFM1001E: drop_dlm 処理でエラーが発生しました。 原因: データ・リンク・マネージャーが指定のデータベースのリンク解除処理と ガーベッ ジ・コレクション処理を開始できませんでした。 これは、以下のいずれかの理由で 起きたことが考えられます。 * データ・リンク・マネージャーが実行されていない。 * データベース、インスタンス、およびホスト名の 無効な組み合わせがコマン ドに指定された。 * データ・リンク・マネージャーの構成要素サービスのいずれかに 障害があ る。 処置: 以下のステップを実行してください。 1. データ・リンク・マネージャーが実行中であることを確認する。 まだ実行さ れていなければ、データ・リンク・マネージャーを始動する。 2. 登録されているデータベースが、データベース、インスタンス、 およびホス ト名の組み合わせによって識別されることを確認する。 これを行うには、 デ ータ・リンク・マネージャーで "dlfm list registered databases" コマンド を 使用してください。 3. 引き続きエラーが発生する場合、db2diag.log ファイルの情報を参照して、 構成要素サービス (たとえば、接続管理サービス、トランザクション管理サー ビスなど) が 失敗したかどうかを確認する。 db2diag.log のエラー・コード を書き留め、そのエラー・コードに対して 推奨される適切な処置を行ってく ださい。 ------------------------------------------------------------------------ 4.22 DLFM セットアップ構成ファイル・オプション dlfm セットアップ dlfm.cfg オプションが除去されました。 文書内のこのオプシ ョンへの参照は無視されます。 ------------------------------------------------------------------------ 4.23 AIX 上でのデータ・リンク/DFS スクリプト dmapp_prestart 実行時エラー データ・リンク /DFS スクリプト dmapp_prestart を実行して、 コマンド /usr/sbin/cfgdmepi -a "/usr/lib/drivers/dmlfs.ext" が、戻りコード 1 で失敗した場合、DFS 3.1 ptfset1 をインストールして cfgdmepi を修正してください。 ------------------------------------------------------------------------ 4.24 Tivoli Space Manager とデータ・リンクとの統合 DB2 Data Links Manager は、Tivoli Space Manager の機能を 利用できるようにな りました。Tivoli Space Manager Hierarchical Storage Manager (HSM) の クライ アント・プログラムは、適格ファイルを自動的に移行して、 ローカル・ファイル・ システム上に特定のレベルのフリー・スペースを保持します。 クライアント・プロ グラムは、アクセス時に移行済みファイルを自動的に再呼び出しして、 ユーザーが 特定のファイルを移行して再呼び出しすることを許可します。 この新しい機能は、定期的に 3 次記憶域に移動する必要のある大規模なファイルの ある ファイル・システムを持っているために、ファイル・システムのスペースを管 理する 必要のあるお客様にはには役立ちます。現在 Tivoli Space Manager は、 多くのお客様に 3 次記憶域を管理する手段を提供しています。Tivoli Space Manager の DB2 データ・リンク・マネージャー・サポートが新しくなり、DATALINK ファイルのスペース管理の 柔軟性が大幅に向上しました。Tivoli Space Manager では DB2 データ・リンク・マネージャーのファイル・システムに 格納する可能性 のあるすべてのファイルに前もって十分な記憶域を割り当てられることはなく、代 わりに データ・リンク管理ファイル・システムの割り当てを一定期間にわたって調 整することができる ようになるので、通常の使用時に誤ってファイル・システムを 一杯にしてしまう危険がありません。 ファイル・システムにデータ・リンクと HSM サポートを追加する Hierarchical Storage Management (HSM) でファイル・システムを登録すると きは、 最初に HSM で登録してから、データ・リンク・ファイル・マネージャ ーで 登録してください。 1. HSM で、コマンド "dsmmigfs add /fs" を使って登録する。 2. DLM で、コマンド "dlfmfsmd /fs" を使って登録する。 ファイル・システムのデータ・リンク・サポートは、以下を入力すると HSM ファイル・システムのスタンザ /etc/filesystems に反映されます。 vfs = dlfs mount = false options = rw,Basefs=fsm nodename = - 既存の HSM ファイル・システムにデータ・リンク・サポートを追加する DLM で、コマンド "dlfmfsmd /fs" を使って登録します。 既存のデータ・リンク・ファイル・システムに HSM サポートを追加する 1. HSM で、コマンド "dsmmigfs add /fs" を使って登録する。 2. DLM で、コマンド "dlfmfsmd /fs" を使って登録する。 データ・リンク HSM ファイル・システムからデータ・リンク・サポートを除去する コマンド "dlfmfsmd -j /fs" を使ってデータ・リンク・サポートを除去しま す。 データ・リンク HSM ファイル・システムから HSM サポートを除去する 1. コマンド "dsmmigfs remove /fs" を使って HSM サポートを 除去する。 2. データ・リンク・サポート、"dlfmfsmd -j /fs" を除去する。 3. コマンド "dlfmfsmd /fs" を使って、DLM で登録する。 データ・リンク HSM ファイル・システムからデータ・リンクと HSM サポートを 除 去する 1. コマンド "dsmmigfs remove /fs" を使って HSM サポートを 除去する。 2. コマンド "dlfmfsmd -j /fs" を使ってデータ・リンク・サポートを 除 去する。 4.24.1 制約事項と制限 現在、この機能は AIX でのみサポートされています。 FC (読み取り許可 DB) リンク・ファイルの選択移行 (dsmmigrate) および再呼び出 しが行えるのは、ルート・ユーザーのみです。 読み取り許可 DB ファイルの場合のファイル所有者がデータ・リンク・マネー ジャー 管理者 (dlfm) の場合、選択したファイルの移行を行えるのは、ファ イル所有者のみです。 そうしたファイルをアクセスするには、 ホスト・デー タベース・サイドからのトークンが必要です。トークンを必要としない唯一の ユーザーは 「ルート」ユーザーです。「ルート」ユーザーの場合は、読み取 り許可 DB ファイルで、 選択移行を行って再呼び出しするほうが簡単です。 dlfm ユーザーは、 最初のときに限り、有効なトークンを使って FC ファイル を移行することが できます。2 回目にマイグレーションを試行すると (再呼 び出し後に)、操作は失敗し、 エラー・メッセージ "ANS1028S error message "ANS1028S Internal program error. Please see your service representative." が表示されます。ルート以外のユーザーが FC ファイルで dsmmigrate を実行しても失敗します。ファイル・サーバー上の ファイルにア クセスするのは通常は管理者であるため、これは重大な制限ではありません。 dlfs は fsm にマウントされているものの、stat および statfs システム呼び出し は 見たところ、dlfs のタイプでなく Vfs のタイプをしています。 上記の動作は、ファイル・システムで statfs を実行して、その Vfs タイプ が fsm であるかどうかを チェックする dsmrecalld デーモンの通常の機能で す。 最小 inode 番号を持つファイルが FC (読み取り許可 DB) リンクされている 場 合、コマンド "dsmls" は出力を表示しません。 dsmls コマンドは ls コマンドに 類似し、TSM が管理するファイルをリスト します。ユーザー処置は必要ありません。 ------------------------------------------------------------------------ 4.25 第 4 章 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび 構成 4.25.1 一般的なインストールの注意点 4.25.1.1 DB2 ファイル・マネージャー・バージョン 5.2 から DB2 データ・リン ク・マネージャー・バージョン 7 への移行 ステップ 3 の情報に誤りがあります。 ステップ 3 は次のようになります。 "3. DLFM 管理者として /usr/lpp/db2_07_01/adm/db2dlmmg コマンドを実行しま す。 ------------------------------------------------------------------------ インストールおよび構成補足 ------------------------------------------------------------------------ 5.1 第 5 章 UNIX オペレーティング・システムへの DB2 クライアントのインスト ール 5.1.1 HP-UX カーネル構成パラメーター HP-UX カーネル・パラメーターの推奨設定として、 msgmbn と msgmax を 65535 以 上に 設定するよう記述されていますが、これは正しくありません。 どちらのパラ メーターも 65535 に設定する必要があります。 ------------------------------------------------------------------------ 5.2 第 12 章 お持ちのアプリケーションの実行 5.2.1 ランタイム・クライアントを使用するデータベース・ユーティリティーのバ インド ランタイム・クライアントを使用して、データベース・ユーティリティー (インポ ート、エクスポート、 REORG、コマンド行プロセッサー)、および DB2 CLI バイン ド・ファイルを、データベースとともに使用する前に 各データベースにバインドす ることはできません。 代わりに DB2 管理クライアント、または DB2 アプリケーシ ョン開発クライアントを 使用してください。 データベース・ユーティリティーおよび DB2 CLI バインド・ファイルを、 各デー タベースとともに使用する前にそれらのデータベースにバインドしなければなりま せん。 ネットワーク環境では、異なるオペレーティング・システムで実行している 複数のクライアントを使用しているか、または異なるバージョンやサービス・レベ ルの DB2 を使用している場合、各オペレーティング・システムと DB2 のバージョ ンの 組み合わせに対して、ユーティリティーを一度ずつバインドしなければなりま せん。 5.2.2 ODBC を使用しての DB2 への UNIX クライアント・アクセス 第 12 章 (「お持ちのアプリケーションの実行」) で、ODBC クライアント・アプリ ケーション または ODBC SDK で ODBC ドライバー・マネージャーをインストールす る場合は、 odbcinst.ini を更新しなければならないという記述があります。 これ は一部誤っています。ODBC ドライバー・マネージャー製品をインストールする際 は、 odbcinst.ini を更新する必要はありません。 ------------------------------------------------------------------------ 5.3 第 24 章 複数データ・ソース・アクセス用の統合システムのセットアップ 5.3.1 統合システム DB2 統合システムは特殊なタイプの分散データベース管理システム (DBMS) です。 統合システムでは、他の DBMS (Oracle、Sybase、Microsoft SQL Server など) に ある データを照会および検索することができます。 SQL ステートメントは、1 つ のステートメントで複数の DBMS または個々のデータベースを参照できます。 たと えば、DB2 ユニバーサル・データベース、Oracle、および Sybase 視点にあるデー タを結合することができます。 サポートされている DBMS として Oracle、 Sybase、Microsoft SQL Server (Windows NT 版)、 また DB2 (OS/390 版)、DB2 (AS/4000 版)、DB2 (Windows 版) などといった DB2 ユニバーサル・ データベー ス・ファミリーのメンバーがあります。 DB2 統合システムは、DB2 インスタンス (統合システムとして動作するデータベー ス) サーバー、 および 1 つ以上のデータ・ソースから構成されています。 この統 合データベースには、データ・ソースとその特性を識別するカタログ項目が 含まれ ています。 データ・ソースは DBMS とデータで構成されています。 DB2 ユニバー サル・データベースには、これらのデータ・ソースへのアクセスに使用できる プロ トコル (ラッパー) があります。 ラッパーとは、データ・ソースとの通信およびデ ータ・ソースからのデータ検索に 統合システムが使用するメカニズムのことです。 ニックネームは、データ・ソース内にある表および視点を参照するために使用され ます。 アプリケーションは他の DB2 データベースと同様、統合サーバーに接続し ます。 使用するラッパーは、DB2 ユニバーサル・データベースが稼動しているプラ ットフォームに よって異なります。 統合システムがセットアップされると、データ・ソース内の情報に、1 つの大きな データベースにあるかのようにアクセスすることができます。 ユーザーおよびアプ リケーションは、データ・ソースからデータを検索する、1 つの統合データベース に 照会を送信します。 DB2 統合システムはいくつかの制限のもとで動作します。 分散要求は、DB2 バージ ョン 7 では読み取り専用操作に制限されています。 また、ニックネームに対して ユーティリティー操作 (LOAD、REORG、REORGCHK、IMPORT、 RUNSTATS など) を実行 することはできません。 ただし、パススルー機能を使用すると、そのデータ・ソー スに関連する SQL ダイアレクトに よって DDL および DML ステートメントを直接 DBMS に実行依頼することができます。 5.3.1.1 制約事項 バージョン 7.2 の新しいラッパー (Linux および Solaris 上の Oracle、 AIX お よび Solaris 上の Sybase、NT および AIX 上の Microsoft SQL Server など) は フィックスパック 3 では使用できません。 DB2 リレーショナル・コネクト バージ ョン 7.2 を購入する必要があります。 5.3.2 DB2 リレーショナル・コネクトのインストール このセクションでは、統合システム・サーバーとして使用するサーバーに DB2 リレ ーショナル・コネクトを インストールする方法を説明します。 5.3.2.1 Windows NT サーバーへの DB2 リレーショナル・コネクトのインストール Windows NT 統合サーバーに DB2 リレーショナル・コネクトをインストールする前 に: * DB2 ユニバーサル・データベース・エンタープライズ・エディション または DB2 ユニバーサル・データベース・エンタープライズ -- 拡張エディションが 統合サーバー上に インストールされていることを確認してください。 DB2 フ ァミリーのデータベースを分散要求に組み込みたい場合、DB2 ユニバーサル・ データベースのインストール時に 「分散結合 (DB2 用)」データ・ソース・オ プションを選択しておかなければなりません。 このオプションが選択されて いることを確認するには、FEDERATED パラメーターが YES に 設定されている かどうか調べてください。 GET DATABASE MANAGER CONFIGURATION コマンドを 実行すると、 パラメーターとその現行設定がすべて表示されます。 * データ・ソース用のクライアント・ソフトウェア (Sybase Open Client など) が 統合サーバーにインストールされていることを確認します。 1. インストールを実行するために作成したユーザー・アカウントでシステムに ログオンします。 2. セットアップ・プログラムが必要に応じてファイルを更新できるよう、 実行 中のプログラムをすべて終了します。 3. セットアップ・プログラムを呼び出します。 セットアップ・プログラムは自 動的に、または手操作で呼び出すことができます。 セットアップ・プログラ ムを自動的に開始できない場合、または別の言語でセットアップを 実行する 場合、手操作でセットアップ・プログラムを呼び出してください。 o セットアップ・プログラムを自動的に呼び出すには、DB2 リレーショナ ル・コネクト CD を ドライブに挿入します。 自動実行機能により、セ ットアップ・プログラムが自動的に開始されます。 システム言語が判別 され、その言語用のセットアップ・プログラムが立ち上がります。 o セットアップ・プログラムを手操作で呼び出すには: a. 「スタート」をクリックし、 「ファイル名を指定して実行」オプ ションを選択します。 b. 「名前」フィールドに次のコマンドを入力します。 x:\setup /i language 説明: x: CD-ROM ドライブです。 language 言語の国別コード (英語であれば EN) です。 c. 「OK」をクリックします。 インストール・ランチパッドが開きます。 4. 「インストール」をクリックして、インストール処理を開始します。 5. セットアップ・プログラムの指示にしたがってください。 プログラムが完了すると、他の DB2 製品が入っているインストール・ディレ クトリーに DB2 リレーショナル・コネクトがインストールされます。 5.3.2.2 AIX サーバー、Linux サーバー、および Solaris 操作環境サーバーへの DB2 リレーショナル・ コネクトのインストール AIX、Linux、および Solaris 操作環境の統合サーバーに DB2 リレーショナル・コ ネクトを インストールする前に: * DB2 ユニバーサル・データベース・エンタープライズ・エディション または DB2 ユニバーサル・データベース -- 拡張エディションが統合サーバー上に インストールされていることを確認してください。 DB2 ファミリーのデータ ベースを分散要求に組み込みたい場合、DB2 ユニバーサル・データベースのイ ンストール時に 「分散結合 (DB2 用)」データ・ソース・オプションを選択し ておかなければなりません。 このオプションが選択されていることを確認す るには、FEDERATED パラメーターが YES に 設定されているかどうか調べてく ださい。 GET DATABASE MANAGER CONFIGURATION コマンドを実行すると、 パ ラメーターとその現行設定がすべて表示されます。 * データ・ソース用のクライアント・ソフトウェア (Sybase Open Client など) が 統合サーバーにインストールされていることを確認します。 DB2 リレーショナル・コネクトを AIX、Linux、および Solaris 操作環境の統合サ ーバーに インストールするには、db2setup ユーティリティーを使用します。 1. root 権限を持つユーザーでログインします。 2. DB2 製品 CD-ROM を挿入し、マウントします。 CD-ROM をマウントする方法に ついては、 「概説およびインストール (AIX 版)」を参照してください。 3. cd /cdrom コマンドを入力して、 CD-ROM がマウントされているディレクトリ ーに移動します (cdrom は、 使用している製品 CD-ROM のマウント・ポイン トです)。 4. ./db2setup コマンドを入力します。 「DB2 セットアップ・ユーティリティ ー」ウィンドウが開きます。 5. 「インストール」を選択してください。 「DB2 V7 のインストール」ウィンド ウが開きます。 6. クライアント用の DB2 リレーショナル・コネクト製品 (たとえば Sybase 用 の リレーショナル・コネクト) を探し、スペース・バーを押してその製品を 選択します。 選択されると、そのオプションの横にアスタリスクが表示され ます。 7. 「了解」を選択します。 「DB2 サービスの作成」ウィンドウが開きます。 8. DB2 インスタンスを作成するよう選択できます。 「了解」を選択してくださ い。 「サマリー報告書インストール」ウィンドウが開きます。 2 つの項目: 分散結合 (Oracle 用) と製品シグニチャー (DB2 リレーショナル・コネクト 用) が 自動的にインストールされます。 製品シグニチャーは Sybase デー タ・ソースへの接続に必要です。 9. 「継続」を選択します。 リレーショナル・コネクト・セットアップの開始を 確認するウィンドウが表示されます。 セットアップを続けるには「了解」を 選択してください。 セットアップが完了するまで、数分かかることがありま す。 10. インストールが正常に完了したことを示す通知が表示されたら、「了解」を選 択します。 オプションごとにインストールの成功または失敗を示す「サマリ ー報告書」ウィンドウが開きます。 もう一度、「了解」を選択してくださ い。 プログラムが完了すると、他の DB2 製品が入っている インストール・ディレ クトリーに DB2 リレーショナル・コネクトがインストールされます。 AIX の 場合、このディレクトリーは /usr/lpp/db2_07_01 です。 Solaris の場合、 /opt/IBMdb2/V7.1 です。 Linux の場合は、/usr/IBMdb2/V7.1 です。 ------------------------------------------------------------------------ 5.4 第 26 章 Oracle データ・ソースへのアクセス AIX および Windows NT でのラッパーのサポートに加え、 DB2 ユニバーサル・デー タベースは Linux および Solaris 操作環境での Oracle ラッパーもサポートして います。 このサポートは Oracle バージョン 8 に制限されています。 これらのプ ラットフォームのラッパーにアクセスするには、V7.2 DB2 リレーショナル・コネク ト CD を 挿入し、「Oracle データ・ソース用 DB2 リレーショナル・コネクト」を 選択します。 DB2 リレーショナル・コネクトをインストールすると、Oracle データ・ソースを 統合サーバーに追加することができます。 1. Oracle クライアント・ソフトウェアを DB2 統合サーバーにインストールし、 構成します。 2. db2dj.ini ファイルを変更して db2set コマンドを出すことにより、 デー タ・ソースの環境変数を設定します。 3. UNIX プラットフォームで実行される DB2 統合サーバーの場合、 djxlink ス クリプトを実行して、 Oracle SQL*Net または Net8 ライブラリーを DB2 統 合サーバーにリンク・エディットします。 4. SQL*Net または Net8 tnsnames.ora ファイルが更新されていることを確認し ます。 5. DB2 インスタンスを再生します。 6. ラッパーを作成します。 7. オプション: DB2_DJ_COMM 環境変数を設定します。 8. サーバーを作成します。 9. ユーザー・マッピングを作成します。 10. 表および視点のニックネームを作成します。 環境変数の設定を含め、上記のステップについての詳しい説明は、第 26 章 「DB2 インストールおよび構成補足」の 「Oracle データ・ソース・アクセス用の統合シ ステム・セットアップ」にあります。 5.4.1 記述の誤り セクション「"Oracle データ・ソースの統合システムへの追加"」に以下の 誤りが あります。 * ステップにプロシージャーが欠落しています。正しいステップは次の通りで す。 1. Oracle クライアント・ソフトウェアを Oracle で提供された資料を使用 して DB2 統合システムに インストールおよび構成します。 2. データ・ソース環境変数を、db2dj.ini ファイルを変更し、 db2set コ マンドを実行することで設定します。 db2set コマンドは、DB2 プロフ ァイル・レジストリーを あなたの設定で更新します。 環境変数の設定についての詳しい説明は、第 26 章の 「DB2 インストー ルおよび構成補足」の 「Oracle データ・ソース・アクセス用の統合シ ステム・セットアップ」にあります。 3. UNIX プラットフォームで実行される DB2 統合サーバーの場合、djxlink スクリプトを実行して、 Oracle SQL*Net または Net8 ライブラリーを DB2 統合サーバーにリンク・エディットします。 djxlink スクリプト は、プラットフォームに応じて以下の場所にあります。 /usr/lpp/db2_07_01/bin (AIX) /opt/IBMdb2/V7.1/bin (Solaris) /usr/IBMdb2/V7.1/bin (Linux) djxlink スクリプトは、Oracle のクライアント・ソフトウェアを DB2 統合サーバーにインストール した後にのみ実行してください。 * 資料では次のように設定するように指示されています。 DB2_DJ_INI = sqllib/cfg/db2dj.ini これは誤りで、正しくは次のように設定します。 DB2_DJ_INI = $INSTHOME/sqllib/cfg/db2dj.ini ------------------------------------------------------------------------ 5.5 Sybase データ・ソースへのアクセス (新しい章) Sybase データ・ソースを統合サーバーに追加する前に、Sybase Open Client ソフ トウェアを DB2 統合サーバーに インストールし、構成しておく必要があります。 Sybase Open Client ソフトウェアのインストール方法については、Sybase データ ベース・ソフトウェアに 付属の資料に記述されているインストール手順を参照して ください。 インストール手順の一部として、カタログ・ストアード・プロシージャ ーと Sybase Open Client ライブラリーを 組み込むことを忘れないでください。 統合サーバーをセットアップして、Sybase データ・ソースに保管されているデータ にアクセスするには: 1. DB2 リレーショナル・コネクト バージョン 7.2 をインストールします。 「 5.3.2, DB2 リレーショナル・コネクトのインストール」を参照してくださ い。 2. Sybase データ・ソースを統合サーバーに追加します。 3. Sybase コード・ページを指定します。 この章では、ステップ 2 および 3 が説明されています。 この章での説明は、Windows NT、AIX、および Solaris 操作環境に適用されます。 プラットフォーム固有の違いは、その都度示されています。 5.5.1 統合サーバーへの Sybase データ・ソースの追加 Sybase データ・ソースを統合サーバーに追加するには: 1. 環境変数を設定し、プロファイル・レジストリーを更新します。 2. DB2 を Sybase クライアント・ソフトウェアにリンクします。(AIX および Solaris の場合のみ) 3. DB2 インスタンスを再生します。 4. interfaces ファイルを作成し、セットアップします。 5. ラッパーを作成します。 6. オプション: DB2_DJ_COMM 環境変数を設定します。 7. サーバーを作成します。 8. オプション: CONNECTSTRING サーバー・オプションを設定します。 9. ユーザー・マッピングを作成します。 10. 表および視点のニックネームを作成します。 上記のステップは、このセクションで詳しく説明されています。 5.5.1.1 ステップ 1: 環境変数の設定およびプロファイル・レジストリーの更新 データ・ソース環境変数を、db2dj.ini ファイルを変更し、 db2set コマンドを実 行することで設定します。 db2dj.ini ファイルには、 統合サーバーにインストー ルされている Sybase クライアント・ソフトウェアについての構成情報がありま す。db2set コマンドは、DB2 プロファイル・レジストリーを あなたの設定で更新 します。 区分データベース・システムでは、特定インスタンスのすべてのノードに対して 単 一の db2dj.ini ファイルを使用、または 特定インスタンスの 1 つ以上のノードに 対して固有の db2dj.ini ファイルを 使用することができます。 非区分データベー ス・システムでは、 保持できる db2dj.ini ファイルはインスタンスごとに 1 つで す。 環境変数を設定するには: 1. sqllib/cfg にある db2dj.ini ファイルを 編集し、次の環境変数を設定しま す。 SYBASE="" ここで、 は Sybase クライアントがインストールさ れている ディレクトリーです。 2. Sybase 環境変数を使用して、DB2 インスタンスの .profile ファイルを 更新 します。 次のコマンドを出すことによって、これを行います。 export PATH="$SYBASE/bin:$PATH" export SYBASE="" ここで、 は Sybase クライアントがインストール されている ディレクトリーです。 3. 次のコマンドを入力して、DB2 インスタンス .profile を実行します。 . .profile 4. db2set コマンドを実行して、DB2 プロファイル・レジストリーに 変更を適用 します。 このコマンド db2set の構文は、使用しているデータベース・シス テムによって 異なります。 このステップは、以下のデータベース・システム 構造のいずれかで db2dj.ini ファイルを使用している場合のみ必要です。 非区分データベース・システムで db2dj.ini ファイルを 使用しているか、 db2dj.ini ファイルを現行ノードにだけ適用したい場合、 次のコマンドを実 行します。 db2set DB2_DJ_INI = sqllib/cfg/db2dj.ini 区分データベース・システムで db2dj.ini ファイルを 使用していて、 db2dj.ini ファイルの値をこのインスタンス内の すべてのノードに適用した い場合、次のコマンドを実行します。 db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini 区分データベース・システムで db2dj.ini ファイルを使用していて、 db2dj.ini ファイルの値を特定ノードに適用したい場合、 次のコマンドを実 行します。 db2set -i INSTANCEX 3 DB2_DJ_INI = sqllib/cfg/node3.ini 説明: INSTANCEX インスタンスの名前です。 3 db2nodes.cfg ファイルにリストされているノード番号です。 node3.ini 内容と名前が変更されたバージョンの db2dj.ini ファイルです。 5.5.1.2 ステップ 2: Sybase クライアント・ソフトウェアへの DB2 のリンク (AIX および Solaris の場合のみ) Sybase データ・ソースにアクセスできるようにするには、DB2 統合サーバーが ク ライアント・ライブラリーにリンク・エディットされていなければなりません。 リ ンク・エディット処理は、統合サーバーが通信するデータ・ソースごとに ラッパー を作成します。 djxlink スクリプトを実行すると、ラッパー・ライブラリーが 作 成されます。 djxlink スクリプトを実行するには: djxlink 5.5.1.3 ステップ 3: DB2 インスタンスの再生 環境変数がプログラムに設定されていることを確実にするには、DB2 インスタンス を再生してください。 インスタンスを再生すると、変更を受け入れられるよう DB2 インスタンスはリフレッシュされます。 DB2 インスタンスを再生するには、以下のコマンドを実行します。 DB2 (Windows NT サーバー版) の場合: NET STOP instance_name NET START instance_name DB2 (AIX および Solaris サーバー版) の場合: db2stop db2start 5.5.1.4 ステップ 4: interfaces ファイルの作成およびセットアップ interfaces ファイルを作成およびセットアップするには、そのファイルを 作成 し、アクセス可能にしなければなりません。 1. Sybase 提供のユーティリティーを使用して、アクセスしたいすべての Sybase Open Server の データを含む interfaces ファイルを作成します。 このユー ティリティーの使用法については、Sybase のインストール資料を参照してく ださい。 Windows NT では通常、このファイルの名前は sql.ini になります。 すべて のプラットフォームに共通の名前にするには、 作成したファイルの名前を sql.ini から interfaces に 変更してください。 名前を sql.ini から interfaces に 変更しない場合、IFILE パラメーター、またはステップ 8 で 説明されている CONNECTSTRING オプションを 使用しなければなりません。 AIX および Solaris システムの場合、このファイルの名前は /sqllib/interfaces になります。 2. この interfaces ファイルを、DB2 にアクセス可能にします。 DB2 (Windows NT サーバー版) の場合: このファイルを DB2 インスタンスの %DB2PATH% ディレクトリーに置き ます。 DB2 (AIX および Solaris サーバー版) の場合: このファイルを DB2 インスタンスの $HOME/sqllib ディレクトリーに 置きます。 ln コマンドを使用して、 DB2 インスタンスの $HOME/sqllib ディレクトリーから そのファイルにリンクします。 例: ln -s -f /home/sybase/interfaces /home/db2djinst1/sqllib 5.5.1.5 ステップ 5: ラッパーの作成 CREATE WRAPPER ステートメントを使用して、Sybase データ・ソースへのアクセス に 使用されるラッパーを指定します。 ラッパーとは、データ・ソースとの通信お よびデータ・ソースからの データ検索に統合サーバーが使用するメカニズムのこと です。 DB2 には、Sybase 用の 2 つのラッパー CTLIB と DBLIB があります。 CREATE WRAPPER ステートメントの例: CREATE WRAPPER CTLIB ここで CTLIB は、 Sybase Open Client ソフトウェアで使用されるデフォルト・ラ ッパー名です。 CTLIB ラッパーは Windows NT、AIX、および Solaris サーバーで 使用できます。 デフォルト・ラッパー名は、選択した名前で置換することができます。 ただし、こ れを行う場合、LIBRARY パラメーターおよび統合サーバーのラッパー・ ライブラリ ー名も CREATE WRAPPER ステートメントに組み込まなければなりません。 ラッパ ー・ライブラリー名について詳しくは、 「DB2 SQL 解説書」 で CREATE WRAPPER ステートメントを調べてください。 5.5.1.6 ステップ 6: オプション: DB2_DJ_COMM 環境変数の設定 Sybase データ・ソースにアクセスしているときのパフォーマンスを向上させるに は、 DB2_DJ_COMM 環境変数を設定してください。 この変数は、統合サーバーが初 期設定されるときにラッパーをロードするかどうかを 決定します。 DB2_DJ_COMM 環境変数を設定して、前のステップで指定したラッパーに対応する ラッパー・ライ ブラリーを組み込みます。例: DB2 (Windows NT サーバー版) の場合: db2set DB2_DJ_COMM='ctlib.dll' DB2 (AIX サーバー版) の場合: db2set DB2_DJ_COMM='libctlib.a' DB2 (Solaris サーバー版) の場合: db2set DB2_DJ_COMM='libctlib.so' 等号 (=) の両端にスペースがないことを確認します。 ラッパー・ライブラリー名について詳しくは、 「DB2 SQL 解説書」を 参照してく ださい。 DB2_DJ_COMM 環境変数について詳しくは、 「管理の手引き」を 参照して ください。 5.5.1.7 ステップ 7: サーバーの作成 CREATE SERVER ステートメントを使用して、アクセスしたいデータ・ソースを持つ Sybase サーバーを それぞれ定義します。例: CREATE SERVER SYBSERVER TYPE SYBASE VERSION 12.0 WRAPPER CTLIB OPTIONS (NODE 'sybnode', DBNAME'sybdb') 説明: SYBSERVER Sybase サーバーに割り当てる名前です。 この名前は固有でなければなりませ ん。 SYBASE アクセスを構成するデータ・ソースのタイプです。 サポートされているデー タ・ソースは Sybase のみです。 12.0 アクセスする Sybase のバージョンです。 サポートされているバージョンは 10.0、11.0、11.1、11.5、11.9、および 12.0 です。 CTLIB CREATE WRAPPER ステートメントで指定したラッパー名です。 'sybnode' SYBSERVER があるノードの名前です。 interfaces ファイルからノードの値を 取得してください。 この値では、大文字小文字が区別されます。 ノードの名前がオプションとして指定されていても、 Sybase データ・ソース にはノード名が必要です。 その他のオプションの詳細については、「DB2 SQL 解説書」を参照してください。 'sybdb' アクセスしたい Sybase データベースの名前です。 5.5.1.8 オプション: ステップ 8: CONNECTSTRING サーバー・オプションの設定 タイムアウトしきい値、interfaces ファイルのパスと名前、および interfaces フ ァイルの パケット・サイズを指定します。 Sybase Open Client は、タイムアウト しきい値を使用して、長期間実行される照会および 応答に割り込みます。 CREATE SERVER OPTION DDL ステートメントの CONNECTSTRING オプションを 使用して、こ のしきい値を DB2 に設定することができます。 CONNECTSTRING オプションで、以 下の項目を指定します。 * SQL 照会のタイムアウト期間 * ログイン応答のタイムアウト期間 * interfaces ファイルのパスと名前 * パケット・サイズ .-;----------------------------------. V | >>----+------------------------------+--+---------------------->< +-TIMEOUT-- = --seconds--------+ +-LOGIN_TIMEOUT-- = --seconds--+ +-IFILE-- = --"string"---------+ +-PACKET_SIZE-- = --bytes------+ '-;----------------------------' TIMEOUT SQL ステートメントで、Sybase Open Client からの 応答を DB2 ユニバーサ ル・データベースが待機する秒数を指定します。 seconds の値は、DB2 ユニ バーサル・データベースの整数範囲にある正の整数です。 指定するタイムア ウトの値は、使用しているラッパーによって異なります。 Windows NT、AIX、 および Solaris サーバーはすべて、DBLIB ラッパーを使用することができま す。 DBLIB ラッパーのデフォルト値は 0 です。 Windows NT、AIX、および Solaris サーバーの場合、この DBLIB のデフォルト値によって、 DB2 ユニバ ーサル・データベースは応答が返されるまで無期限に待ち続けます。 LOGIN_TIMEOUT ログイン要求に対する Sybase Open Client からの 応答を DB2 ユニバーサ ル・データベースが待機する秒数を指定します。 デフォルト値は TIMEOUT の 場合と同じです。 IFILE Sybase Open Client の interfaces ファイルのパスと名前を指定します。 string で示されるパスは二重引用符 (") で囲む必要があります。 Windows NT サーバーの場合、デフォルトは %DB2PATH% です。 AIX および Solaris サ ーバーの場合、デフォルト値は DB2 ユニバーサル・データベース・インスタ ンスの ホーム・ディレクトリーにある sqllib/interfaces です。 PACKET_SIZE interfaces ファイルのパケット・サイズをバイト単位で指定します。 デー タ・ソースが、指定されたパケット・サイズをサポートしていない場合、 接 続は失敗します。 各レコードのサイズが非常に大きいとき (たとえば、大き な表に行を挿入するとき) に パケット・サイズを増やすと、パフォーマンス は大幅に向上します。 byte は数値です。 詳しくは、Sybase 解説書を参照し てください。 例 Windows NT サーバーで、タイムアウト値を 60 秒に設定し、 interfaces ファイル を C:\etc\interfaces に設定するには、 以下のステートメントを使用します。 CREATE SERVER OPTION connectstring FOR SERVER sybase1 SETTING 'TIMEOUT=60;LOGIN_TIMEOUT=5;IFILE="C:\etc\interfaces";' AIX および Solaris サーバーで、タイムアウト値を 60 秒に設定し、 interfaces ファイルを /etc/interfaces に設定するには、 以下のステートメントを使用しま す。 CREATE SERVER OPTION connectstring FOR SERVER sybase1 SETTING 'TIMEOUT=60;PACKET_SIZE=4096;IFILE="/etc/interfaces";' 5.5.1.9 ステップ 9: ユーザー・マッピングの作成 統合サーバーのユーザー ID またはパスワードが Sybase データ・ソースのユーザ ー ID または パスワードと異なる場合、CREATE USER MAPPING ステートメントを使 用して、Sybase データ・ソースで 定義されたユーザー ID とパスワードにローカ ル・ユーザー ID をマップします。 例: CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'dayl1te') 説明: DB2USER Sybase データ・ソースで定義されたユーザー ID にマップされるローカル・ ユーザー ID です。 SYBSERVER CREATE SERVER ステートメントで定義した Sybase データ・ソースの名前で す。 'sybuser' DB2USER のマップ先である、Sybase データ・ソースでのユーザー ID です。 この値では、大文字小文字が区別されます。 'dayl1te' 'sybuser' に関連付けられているパスワードです。 この値では、大文字小文 字が区別されます。 その他のオプションの詳細については、 「DB2 SQL 解説書」を 参照してくださ い。 5.5.1.10 ステップ 10: 表および視点のニックネームの作成 Sybase データ・ソースにある視点または表ごとにニックネームを割り当てます。 Sybase データ・ソースを照会するとき、これらのニックネームを使用します。 Sybase ニックネームでは、大文字小文字が区別されます。 スキーマ名と表名はど ちらも二重引用符 (") で囲んでください。 CREATE NICKNAME ステートメントの例: CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe" 説明: SYBSALES Sybase 表または視点の固有のニックネームです。 SYBSERVER."salesdata"."europe" 以下の形式に従う、3 つの部分からなる ID です。 data_source_name."remote_schema_name"."remote_table_name" ニックネームを作成したい表または視点ごとに、このステップを繰り返してくださ い。 ニックネームが作成されると、DB2 は接続を使用してデータ・ソース・カタロ グを照会します。 この照会によって、データ・ソースへの接続がテストされます。 接続が失敗した場合、エラー・メッセージが表示されます。 CREATE NICKNAME ステートメントの詳細については、 「DB2 SQL 解説書」を 参照 してください。 一般的なニックネームの詳細、およびデータ・タイプ・マッピング の検証については、 「DB2 管理の手引き」を 参照してください。 5.5.2 Sybase コード・ページの指定 このステップは、DB2 統合サーバーと Sybase サーバーが異なるコード・ページを 使用している場合のみ必須です。 DB2 と同じコード・セットを使用しているデー タ・ソースでは、変換は必要ありません。 以下の表は、NLS (各国語サポート) の 共通コード・ページと 同等の Sybase オプションを示しています。 Sybase デー タ・ソースが、これらの同等の値に対応するよう構成されている必要があります。 あるいは、クライアント・コードが一致しない部分を見つけ、エラーとしてフラグ を立てるか、 データ自体の意味を使用してデータをマップすることができなければ なりません。 ソース・コード・ページからターゲット・コード・ページへの変換表 が見つからない場合、 DB2 はエラー・メッセージを出します。 詳しくは、Sybase の資料を参照してください。 表 1. Sybase コード・ページ・オプション コード・ページ 同等の Sybase オプション 850 cp850 897 sjis iso_1 912 iso_2 1089 iso_6 813 iso_7 916 iso_8 920 iso_9 ------------------------------------------------------------------------ 5.6 ODBC による Microsoft SQL Server データ・ソースへのアクセス (新しい章) Microsoft SQL Server データ・ソースを DB2 統合サーバーに追加する前に、 ODBC ドライバーを統合サーバーにインストールし、構成しておく必要があります。 ODBC ドライバーのインストール方法については、ODBC ドライバーに 付属の資料に記述 されているインストール手順を参照してください。 統合サーバーをセットアップして、Microsoft SQL Server データ・ソースに保管さ れている データにアクセスするには: 1. ODBC ドライバーを統合サーバーにインストールし、構成します。 ODBC ドラ イバーのインストール方法については、ODBC ドライバーに 付属の資料に記述 されているインストール手順を参照してください。 DB2 (Windows NT サーバー版) の場合: ODBC デバイス・マネージャーでシステム DSN を構成します。 DB2 (AIX サーバー版) の場合: MERANT によって提供されているライブラリーのスレッド化バージョンを インストールし、 LIBPATH の最初の項目として MERANT ライブラリー・ ディレクトリーを指定し、 .odbc.ini ファイルをセットアップします。 .odbc.ini ファイルは、ホーム・ディレクトリーに作成してください。 2. DB2 リレーショナル・コネクト バージョン 7.2 をインストールします。 「 5.3.2, DB2 リレーショナル・コネクトのインストール」を参照してくださ い。 3. Microsoft SQL Server データ・ソースを統合サーバーに追加します。 4. Microsoft SQL Server コード・ページを指定します。 この章では、ステップ 3 および 4 が説明されています。 この章での説明は、Windows NT および AIX プラットフォームに適用されます。 プ ラットフォーム固有の違いは、その都度示されています。 5.6.1 統合サーバーへの Microsoft SQL Server データ・ソースの追加 ODBC ドライバーと DB2 リレーショナル・コネクトをインストールした後、 以下の ステップにしたがって Microsoft SQL Server データ・ソースを統合サーバーに 追 加します。 1. 環境変数を設定します。(AIX の場合のみ) 2. シェル・スクリプトを実行します。(AIX の場合のみ) 3. オプション: DB2_DJ_COMM 環境変数を設定します。 4. DB2 インスタンスを再生します。(AIX の場合のみ) 5. ラッパーを作成します。 6. サーバーを作成します。 7. ユーザー・マッピングを作成します。 8. 表および視点のニックネームを作成します。 9. オプション: ODBC トレースを取得します。 上記のステップは、以下のセクションで詳しく説明されています。 5.6.1.1 ステップ 1: 環境変数の設定 (AIX の場合のみ) データ・ソース環境変数を、db2dj.ini ファイルを変更し、 db2set コマンドを実 行することで設定します。 db2dj.ini ファイルには、 Microsoft SQL Server デー タ・ソースに接続するための構成情報が含まれています。 db2set コマンドは、DB2 プロファイル・レジストリーを あなたの設定で更新します。 区分データベース・システムでは、特定インスタンスのすべてのノードに対して 単 一の db2dj.ini ファイルを使用、または 特定インスタンスの 1 つ以上のノードに 対して固有の db2dj.ini ファイルを 使用することができます。 非区分データベー ス・システムでは、 保持できる db2dj.ini ファイルはインスタンスごとに 1 つで す。 環境変数を設定するには: 1. $HOME/sqllib/cfg/ にある db2dj.ini ファイルを 編集し、次の環境変数を設 定します。 ODBCINI=$HOME/.odbc.ini DJX_ODBC_LIBRARY_PATH=/lib LIBPATH=/lib DB2ENVLIST=LIBPATH db2set コマンドを実行して、DB2 プロファイル・レジストリーに 変更を適用しま す。 db2set の構文は、使用しているデータベース・システムによって 異なりま す。 * 非区分データベース・システムで db2dj.ini ファイルを 使用しているか、区 分データベース・システムで db2dj.ini ファイルを 使用していて、 db2dj.ini ファイルの値を現行ノードにだけ 適用したい場合、次のコマンド を実行します。 db2set DB2_DJ_INI=/db2dj.ini * 区分データベース・システムで db2dj.ini ファイルを 使用していて、 db2dj.ini ファイルの値をこのインスタンス内の すべてのノードに適用した い場合、次のコマンドを実行します。 db2set -g DB2_DJ_INI=/db2dj.ini * 区分データベース・システムで db2dj.ini ファイルを使用していて、 db2dj.ini ファイルの値を特定ノードに適用したい場合、 次のコマンドを実 行します。 db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini 説明: INSTANCEX インスタンスの名前です。 3 db2nodes.cfg ファイルにリストされているノード番号です。 node3.ini 内容と名前が変更されたバージョンの db2dj.ini ファイルです。 5.6.1.2 ステップ 2: シェル・スクリプトの実行 (AIX の場合のみ) djxlink.sh シェル・スクリプトは、クライアント・ライブラリーを ラッパー・ラ イブラリーにリンクします。 シェル・スクリプトを実行するには: djxlink 5.6.1.3 ステップ 3: オプション: DB2_DJ_COMM 環境変数の設定 Microsoft SQL Server データ・ソースへのアクセスにかかる時間が長すぎる場合、 データ・ソースにアクセスを試みるときではなく、統合サーバーが初期設定される ときに ラッパーをロードするよう DB2_DJ_COMM 環境変数を設定することによって パフォーマンスを向上させることができます。 DB2_DJ_COMM 環境変数を設定して、 ステップ 5 で指定したラッパーに対応する ラッパー・ライブラリーを組み込みま す。例: DB2 (Windows NT サーバー版) の場合: db2set DB2_DJ_COMM=djxmssql3.dll DB2 (AIX サーバー版) の場合: db2set DB2_DJ_COMM=libmssql3.a 等号 (=) の両端にスペースがないことを確認します。 ラッパー・ライブラリー名についての詳しくは、 「DB2 SQL 解説書」を参照してく ださい。 5.6.1.4 ステップ 4: DB2 インスタンスの再生 (AIX の場合のみ) 環境変数がプログラムに設定されていることを確実にするには、DB2 インスタンス を再生してください。 インスタンスを再生すると、変更を受け入れられるよう DB2 インスタンスはリフレッシュされます。 DB2 インスタンスを再生するには、次のコ マンドを実行してください。 db2stop db2start 5.6.1.5 ステップ 5: ラッパーの作成 DB2 ユニバーサル・データベースには、Microsoft SQL Server データ・ソースへの アクセスに使用できる 2 つの異なるプロトコル (ラッパー) があります。 ラッパ ーとは、データ・ソースとの通信およびデータ・ソースからのデータ検索に 統合シ ステムが使用するメカニズムのことです。 使用するラッパーは、DB2 ユニバーサ ル・データベースが稼動しているプラットフォームに よって異なります。 適切な ラッパーを選択するためのガイドとして、表 2を使用してください。 表 2. ODBC ドライバー ODBC ドライバー プラットフォー ラッパー名 ム ODBC 3.0 (またはそれ以降) ドライバー Windows NT DJXMSSQL3 MERANT DataDirect Connect ODBC 3.6 AIX MSSQLODBC3 ドライバー CREATE WRAPPER ステートメントを使用して、Microsoft SQL Server データ・ソー スへの アクセスに使用されるラッパーを指定します。 CREATE WRAPPER ステートメ ントの例: CREATE WRAPPER DJXMSSQL3 ここで DJXMSSQL3 は、DB2 (Windows NT サーバー版) で使用されるデフォルト・ラ ッパー名です (ODBC 3.0 ドライバー使用)。 DB2 (AIX サーバー版) を使用してい る場合、MSSQLODBC3 ラッパー名を指定します。 デフォルト・ラッパー名は、選択した名前で置換することができます。 ただし、こ れを行う場合、LIBRARY パラメーターおよび統合サーバー・プラットフォームのラ ッパー・ ライブラリー名を CREATE WRAPPER ステートメントに組み込まなければな りません。 例: DB2 (Windows NT サーバー版) の場合: CREATE WRAPPER wrapper_name LIBRARY 'djxmssql3.dll' ここで wrapper_name はラッパーに付ける名前で、 'djxmssql3.dll' はライ ブラリー名です。 DB2 (AIX サーバー版) の場合: CREATE WRAPPER wrapper_name LIBRARY 'libmssql3.a' ここで wrapper_name はラッパーに付ける名前で、 'libdjxmssql.a' はライ ブラリー名です。 ラッパー・ライブラリー名について詳しくは、 「DB2 SQL 解説書」 で CREATE WRAPPER ステートメントを調べてください。 5.6.1.6 ステップ 6: サーバーの作成 CREATE SERVER ステートメントを使用して、接続したい Microsoft SQL Server デ ータ・ソースを それぞれ定義します。 例: CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 OPTIONS (NODE 'sqlnode', DBNAME 'database_name') 説明: sqlserver Microsoft SQL Server サーバーに割り当てる名前です。 この名前は固有でな ければなりません。 MSSQLSERVER アクセスを構成するデータ・ソースのタイプです。 7.0 アクセスする Microsoft SQL Server のバージョンです。 DB2 ユニバーサ ル・データベースは、バージョン 6.5 と 7.0 の Microsoft SQL Server を サポートしています。 DJXMSSQL3 CREATE WRAPPER ステートメントで定義したラッパー名です。 'sqlnode' Microsoft SQL Server を参照するシステム DSN 名です。 この値では、大文 字小文字が区別されます。 version of Microsoft SQL Server that you are accessing. DB2 ユニバーサル・データベースは、バージョン 6.5 と 7.0 の Microsoft SQL Server を サポートしています。 ノードの名前 (システム DSN 名) が CREATE SERVER のオプションとして指定 されていても、 Microsoft SQL Server データ・ソースにはノード名が必要で す。 CREATE WRAPPER ステートメントで使用できるその他のオプションについて は、 「DB2 SQL 解説書」を 参照してください。 'database_name' 接続するデータベースの名前です。 データベースの名前が CREATE SERVER ステートメントの オプションとして指 定されていても、Microsoft SQL Server データ・ソースには データベース名 が必要です。 5.6.1.7 ステップ 7: ユーザー・マッピングの作成 統合サーバーのユーザー ID またはパスワードが Microsoft SQL Server データ・ ソースの ユーザー ID またはパスワードと異なる場合、CREATE USER MAPPING ステ ートメントを 使用して、Microsoft SQL Server データ・ソースで定義されたユー ザー ID と パスワードにローカル・ユーザー ID をマップします。 例: CREATE USER MAPPING FOR db2user SERVER server_name OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'dayl1te') 説明: db2user Microsoft SQL Server データ・ソースで定義されたユーザー ID にマップす るローカル・ユーザー ID です。 server_name CREATE SERVER ステートメントで定義したサーバーの名前です。 'mssqluser' db2user のマップ先である、Microsoft SQL Server データ・ソースでのユー ザー ID です。 この値では、大文字小文字が区別されます。 'dayl1ite' 'mssqluser' に関連付けられているパスワードです。 この値は大文字小文字 を区別します。 CREATE USER MAPPING ステートメントで使用できるその他のオプションについて は、 「DB2 SQL 解説書」を参照してください。 5.6.1.8 ステップ 8: 表および視点のニックネームの作成 アクセスしたい Microsoft SQL Server データ・ソースにある視点または表ごとに ニックネームを割り当てます。 Microsoft SQL Server データ・ソースを照会する とき、これらのニックネームを使用します。 ニックネームを割り当てるには、 CREATE NICKNAME ステートメントを使用してください。 ニックネームでは、大文字 小文字が区別されます。 CREATE NICKNAME ステートメントの例: CREATE NICKNAME mssqlsales FOR server_name.salesdata.europe 説明: mssqlsales Microsoft SQL Server 表または視点の固有のニックネームです。 server_name.salesdata.europe 以下の形式に従う、3 つの部分からなる ID です。 data_source_server_name.remote_schema_name.remote_table_name ニックネームの remote_schema_name および remote_table_name の部分には 二重引用符を使用するようお勧めします。 ニックネームが作成されると、DB2 はデータ・ソース・カタログ表にアクセスを試 みます (Microsoft SQL Server は このカタログ表をシステム表として参照しま す)。 これで、データ・ソースへの接続がテストされます。 接続が失敗した場合、 エラー・メッセージが表示されます。 ニックネームを作成したいデータベース表および視点すべてついて、このステップ を 繰り返してください。 CREATE NICKNAME ステートメントの詳細については、 「DB2 SQL 解説書」を 参照 してください。 一般的なニックネームの詳細、およびデータ・タイプ・マッピング の検証については、 「DB2 管理の手引き」を 参照してください。 5.6.1.9 ステップ 9: オプション: ODBC トレースの取得 データ・ソースへのアクセス時に問題が発生する場合、その問題の分析と解決のた め、 ODBC トレース情報を取得することができます。 ODBC トレースが正しく機能 していることを確認するには、 ODBC データ・ソース管理者により提供されている トレース・ツールを使用します。 トレースの活動化はシステム・パフォーマンスに 影響するため、 問題が解決したらトレースをオフにしてください。 5.6.2 Microsoft SQL Server コード・ページの検討 Microsoft SQL Server は、DB2 UDB がサポートしている NLS (各国語サポート) 共 通コード・ページの 多くをサポートしています。 DB2 と同じコード・セットを使 用しているデータ・ソースでは、変換は必要ありません。 表 3 には、DB2 ユニバ ーサル・データベースと Microsoft SQL Server がどちらも サポートしているコー ド・ページがリストされています。 表 3. DB2 UDB および Microsoft SQL Server コード・ページ・オプション コード・ページ サポートされている言語 1252 ISO 文字セット 850 マルチリンガル 437 米国英語 874 タイ語 932 日本語 936 中国語 (簡体字) 949 韓国語 950 中国語 (繁体字) 1250 中央ヨーロッパ言語 1251 キリル文字 1253 ギリシャ語 1254 トルコ語 1255 ヘブライ語 1256 アラビア語 DB2 統合サーバーと Microsoft SQL Server が異なる NLS (各国語サポート) コー ド・ページを 使用している場合、Microsoft SQL Server データ・ソースが、これ らの同等の値に対応するように 構成されている必要があります。 あるいは、クラ イアント・コードが一致しない部分を見つけて、エラーとしてフラグを立てるか、 データ自体の意味を使用してデータをマップすることができなければなりません。 ソース・コード・ページからターゲット・コード・ページへの変換表が見つからな い場合、 DB2 はエラー・メッセージを出します。 詳しくは、Microsoft SQL Server の資料を参照してください。 ------------------------------------------------------------------------ 管理 部分目次 * 管理の手引き: 計画 o 6.1 第 8 章 物理データベース設計 + 6.1.1 区分化キー o 6.2 ノード・グループの設定 o 6.3 第 9 章 分散データベースの設計 + 6.3.1 複数のデータベースの更新 o 6.4 第 13 章 Windows NT 環境での高可用性 + 6.4.1 DB2MSCS ユーティリティーの実行前にマシンのリブートが必 要 o 6.5 第 14 章 DB2 および Sun クラスター 2.2 上での高可用性 o 6.6 Solaris での Veritas サポート o 6.7 付録 B. 命名規則 + 6.7.1 8 文字より長いユーザー ID とスキーマ名に関する注意点 + 6.7.2 ユーザー ID およびパスワード o 6.8 付録 D. リリース間の非互換性 + 6.8.1 Windows NT DLFS は Norton のユーティリティーと非互換 + 6.8.2 SET CONSTRAINTS が SET INTEGRITY に置き換えられる o 6.9 付録 E. ナショナル・ランゲージ・サポート + 6.9.1 DB2 バージョン 7 の各国語版 + 6.9.1.1 コントロール・センターと資料のファイル・セット + 6.9.2 DB2 管理サーバーのロケール設定 + 6.9.3 DB2 UDB は Baltic Rim コード・ページ (MS-1257) を Windows プラットフォームでサポートします + 6.9.4 コード・ページ値の取得 + 6.9.5 国別コードおよびコード・ページのサポート + 6.9.6 文字セット * 管理の手引き : インプリメンテーション o 7.1 DMS コンテナーの追加または拡張 (新規プロセス) o 7.2 第 1 章 GUI ツールによる DB2 の管理 o 7.3 第 3 章 データベースの作成 + 7.3.1 表スペースの作成 + 7.3.1.1 Linux でのロー入出力の使用 + 7.3.2 シーケンスの作成 + 7.3.3 IDENTITY 列とシーケンスの比較 + 7.3.4 索引の作成、索引拡張子、または索引の指定 o 7.4 第 4 章 データベースの変更 + 7.4.1 区分内の SMS 表スペースへのコンテナーの追加 + 7.4.2 識別列の変更 + 7.4.3 シーケンスの変更 + 7.4.4 シーケンスのドロップ + 7.4.5 表スペース状況の切り換え + 7.4.6 DMS 表スペース内のコンテナーの変更 o 7.5 第 5 章 データベース・アクセスの制御 + 7.5.1 シーケンス特権 + 7.5.2 データ暗号化 o 7.6 第 8 章 データベースの回復 + 7.6.1 中断入出力の使用法 + 7.6.2 増分バックアップおよびリカバリ + 7.6.2.1 増分バックアップ・イメージからの復元 + 7.6.3 並列リカバリ + 7.6.4 名前付きパイプへのバックアップ + 7.6.5 分割イメージからのバックアップ + 7.6.6 オンデマンド・ログ・アーカイブ + 7.6.7 ログ・ミラーリング + 7.6.8 Sun Solaris および HP における、プラットフォーム間のバ ックアップおよびリストア・サポート + 7.6.9 DB2 データ・リンク・マネージャーに関する考慮事項/バッ クアップ・ユーティリティーに関する考慮事項 + 7.6.10 DB2 データ・リンク・マネージャーに関する考慮事項/リス トアおよびロールフォワード・ ユーティリティーに関する考慮事 項 + 7.6.11 ロールフォワードなしで、オフライン・バックアップから データベースを復元 + 7.6.12 データベースと表スペースを復元、およびログの最後まで ロールフォワード + 7.6.13 DB2 データ・リンク・マネージャーとリカバリの相互作用 + 7.6.14 調整を必要とする状態の検出 o 7.7 付録 C. データベース・リカバリの終了 o 7.8 付録 D. 複数のデータベース区分サーバーへのコマンド実行 o 7.9 付録 I. 高速内部ノード通信 + 7.9.1 VI を 使用して DB2 を実行するためのイネーブリング * 管理の手引き : パフォーマンス o 8.1 第 3 章 アプリケーション考慮事項 + 8.1.1 分離レベルの指定 + 8.1.2 最適化クラスの調整 + 8.1.3 動的複合ステートメント o 8.2 第 4 章 環境考慮事項 + 8.2.1 より大きな索引キーの使用 o 8.3 第 5 章 システム・カタログ統計 + 8.3.1 分配統計の収集と使用 + 8.3.2 カタログ統計の更新規則 + 8.3.3 サブエレメント統計 o 8.4 第 6 章 SQL コンパイラーの知識 + 8.4.1 複製要約表 + 8.4.2 データ・アクセス概念および最適化 o 8.5 第 8 章 操作パフォーマンス + 8.5.1 データベース・バッファー・プールの管理 + 8.5.2 複数のデータベース・バッファー・プールの管理 o 8.6 第 9 章 管理プログラムの使用 o 8.7 第 13 章 DB2 の構成 + 8.7.1 ソート・ヒープ・サイズ (sortheap) + 8.7.2 ヒープしきい値のソート (sheapthres) + 8.7.3 エスカレーション前のロック・リストの最大パーセント (maxlocks) + 8.7.4 DB2 構成/データ・リンク・マネージャー/データ・リンク・ アクセス・トークン期限切れの 間隔 (dl_expint) + 8.7.5 MIN_DEC_DIV_3 データベース構成パラメーター + 8.7.6 アプリケーション制御ヒープ・サイズ (app_ctl_heap_sz) + 8.7.7 データベース・システム・モニター・ヒープ・サイズ (mon_heap_sz) + 8.7.8 活動アプリケーションの最大数 (maxappls) + 8.7.9 復元範囲およびソフト・チェックポイント間隔 (softmax) + 8.7.10 変更されたページの追跡を可能にする (trackmod) + 8.7.11 データベース・ログ・パスの変更 (newlogpath) + 8.7.12 ログ・ファイルのロケーション (logpath) + 8.7.13 ロック・リスト用最大記憶域 (locklist) o 8.8 付録 A DB2 レジストリーと環境変数 + 8.8.1 新規およびレジストリー変数を変更した表 o 8.9 付録 C SQL 説明ツール * サテライト管理 手引きおよび解説書 o 9.1 バージョン 7.2 DB2 パーソナル・エディションおよび DB2 ワーク グループ・エディションを サテライトとしてセットアップ + 9.1.1 前提条件 + 9.1.1.1 インストール上の考慮事項 + 9.1.2 同期化のためのバージョン 7.2 システムの構成 + 9.1.3 エンタープライズ・エディション・システムでのフィックス パック 2 以上の インストール + 9.1.3.1 DB2 制御サーバーとして使用するためにバージョン 6 DB2 エンタープライズ・エディションを アップグレード + 9.1.4 バージョン 6 コントロール・センター および サテライト 管理センター のアップグレード * コマンド解説書 o 10.1 db2batch - ベンチマーク・ツール o 10.2 db2cap (新規コマンド) + db2cap - CLI/ODBC 静的パッケージ・バインディング・ツール o 10.3 db2ckrst (新規コマンド) + db2ckrst - 増分復元イメージ順序の検査 o 10.4 db2gncol (新規コマンド) + db2gncol - 生成した列の値を更新します o 10.5 db2inidb - ミラーリングされたデータベースの初期化 o 10.6 db2look - DB2 統計抽出ツール o 10.7 db2updv7 - データベースをバージョン 7 現行修正レベルに更新 o 10.8 新規コマンド行プロセッサー・オプション (-x, 列見出しの印刷を 抑止します。) o 10.9 DB2 CLP が必要とする True Type フォント o 10.10 ADD DATALINKS MANAGER o 10.11 ARCHIVE LOG (新規コマンド) + Archive Log o 10.12 BACKUP DATABASE + 10.12.1 構文図 + 10.12.2 DB2 データ・リンク・マネージャーの考慮事項 o 10.13 BIND o 10.14 CALL o 10.15 DROP DATALINKS MANAGER (新規コマンド) + DROP DATALINKS MANAGER o 10.16 EXPORT o 10.17 データベース構成の更新 o 10.18 GET ROUTINE (新規コマンド) + GET ROUTINE o 10.19 GET SNAPSHOT o 10.20 IMPORT o 10.21 LIST HISTORY o 10.22 LOAD o 10.23 PING (新規コマンド) + PING o 10.24 PUT ROUTINE (新規コマンド) + PUT ROUTINE o 10.25 RECONCILE o 10.26 REORGANIZE TABLE o 10.27 RESTORE DATABASE + 10.27.1 構文 + 10.27.2 DB2 データ・リンク・マネージャーの考慮事項 o 10.28 ROLLFORWARD DATABASE o 10.29 CLP 戻りコードに関する文書の誤り * データ移動ユーティリティー 手引きおよび解説書 o 11.1 第 2 章 インポート + 11.1.1 バッファー挿入を行うインポートを使用 o 11.2 第 3 章 ロード + 11.2.1 ロード操作後の保留状態 + 11.2.2 ロード制約事項と制限 + 11.2.3 totalfreespace ファイル・タイプ修飾子 o 11.3 第 4 章 オートローダー + 11.3.1 認証を YES に設定したときにオートローダーの実行を必要 とする rexecd * DB2 レプリケーションの手引きおよび解説書 o 12.1 レプリケーションおよび非 IBM サーバー o 12.2 Windows 2000 上のレプリケーション o 12.3 SQL ファイルの保管時に知られているエラー o 12.4 DB2 保守 o 12.5 Web 上の Data Difference Utility o 12.6 第 3 章 データ・レプリケーション・シナリオ + 12.6.1 レプリケーションのシナリオ o 12.7 第 5 章 レプリケーションの計画 + 12.7.1 表および列名 + 12.7.2 DATALINK レプリケーション + 12.7.3 LOB の制約事項 + 12.7.4 レプリケーションの計画 o 12.8 第 6 章 レプリケーション環境のセットアップ + 12.8.1 任意の場所で更新 (Update-anywhere) の前提条件 + 12.8.2 レプリケーション環境のセットアップ o 12.9 第 8 章 問題判別 o 12.10 第 9 章 キャプチャー・プログラムおよびアプライ・プログラム (AS/400 版) o 12.11 第 10 章 キャプチャー・プログラムおよびアプライ・プログラム (OS/390 版) + 12.11.1 DB2 DataPropagator (OS/390 版) の前提条件 + 12.11.2 OS/390 での UNICODE および ASCII エンコード・スキー ム + 12.11.2.1 エンコード・スキームの選択 + 12.11.2.2 エンコード・スキームの設定 o 12.12 第 11 章 キャプチャー・プログラムおよびアプライ・プログラム (UNIX 版) + 12.12.1 UNIX および Windows でのキャプチャー・プログラムとア プライ・プログラムの環境変数の設定 o 12.13 第 14 章 表の構造 o 12.14 第 15 章 キャプチャー・プログラムとアプライ・プログラムのメ ッセージ o 12.15 付録 A 収集およびアプライ・プログラムをアプリケーション内で 開始する * システム・モニター 手引きおよび解説書 o 13.1 db2ConvMonStream * 問題判別の手引き o 14.1 ユーザーがログオンしていないときに DB2 を Windows 95、 Windows 98、 または Windows ME で開始 o 14.2 第 2 章 DB2 ユニバーサル・データベース・サーバーの障害追及 * 64 ビット・プラットフォームで DB2 ユニバーサル・データベースを使用する o 15.1 第 5 章 構成 + 15.1.1 LOCKLIST + 15.1.2 shmsys:shminfo_shmmax o 15.2 第 6 章 制約事項 * XML エクステンダー 管理およびプログラミング * MQSeries o 17.1 DB2 MQSeries 関数のインストールおよび構成 + 17.1.1 MQSeries のインストール + 17.1.2 MQSeries AMI のインストール + 17.1.3 DB2 MQSeries 関数を使用可能にする o 17.2 MQSeries メッセージ・スタイル o 17.3 メッセージ構造 o 17.4 MQSeries 関数の概説 + 17.4.1 制約事項 + 17.4.2 エラー・コード o 17.5 使用のシナリオ + 17.5.1 基本メッセージング + 17.5.2 メッセージの送信 + 17.5.3 メッセージの取り出し + 17.5.4 アプリケーション間接続 + 17.5.4.1 要求/応答通信 + 17.5.4.2 発行/サブスクリプション o 17.6 enable_MQFunctions + enable_MQFunctions o 17.7 disable_MQFunctions + disable_MQFunctions ------------------------------------------------------------------------ 管理の手引き: 計画 ------------------------------------------------------------------------ 6.1 第 8 章 物理データベース設計 6.1.1 区分化キー 「"ノード・グループの設計"」セクションの「"ノード・グループ設計上の考慮事項 "」 サブセクションで、区分化キーの定義時に考慮すべきポイントを述べる 「"区 分化キー"」サブセクションは、DB2_UPDATE_PART_KEY=ON の場合のみ 削除する必要 があります。 注: DB2_UPDATE_PART_KEY=OFF でも、制約事項は適用されます。 注: フィックスパック 3 またはそれ以降では、デフォルト値は ON です。 * 表内の行について区分化キー列の値を更新することはできません。 * 区分化キー列の値は削除または挿入のみが可能です。 ------------------------------------------------------------------------ 6.2 ノード・グループの設定 「"ノード・グループの設計"」セクション内の「"ノード・グループ設計上の 考慮 事項"」サブセクションと「"複製された要約表"」サブセクションで、2 番目のパラ グラフの最後の文に 十分な注意が払われていませんでした。 REPLICATED キーワードは、REFRESH DEFERRED オプションで定義された要約表にの み指定できます。 ------------------------------------------------------------------------ 6.3 第 9 章 分散データベースの設計 6.3.1 複数のデータベースの更新 「複数のデータベースの更新」セクションの セットアップ・ステップのリストに は、不確かな記述があります。 ステップ 4 は、現在次の記述になっています。 「アプリケーション開発の手引き」で説明しているように アプリケーション・プログラムをプリコンパイルし、タイプ 2 接続を指定 (つまり PRECOMPILE PROGRAM コマンドで CONNECT 2 を指定) して、 1 フェーズ・コミットを指定 (つまり、PRECOMPILE PROGRAM コマンドで SYNCPOINT ONEPHASE を指定) する。 これは、次のように変わります: アプリケーション開発の手引き」で説明しているように アプリケーション・プログラムをプリコンパイルし、タイプ 2 接続を指定して、 (つまり PRECOMPILE PROGRAM コマンドで CONNECT 2 を指定) および 2 フェーズ・コミットを指定 (つまり、PRECOMPILE PROGRAM コマンドで SYNCPOINT TWOPHASE を指定) する。 ------------------------------------------------------------------------ 6.4 第 13 章 Windows NT 環境での高可用性 6.4.1 DB2MSCS ユーティリティーの実行前にマシンのリブートが必要 DB2MSCS ユーティリティーは、DB2 が Microsoft Cluster Service 環境下で フェ ールオーバー・サポートを使用可能にするために必要なセットアップを実行するた めに使用されます。 DB2MSCS ユーティリティーを 正常に実行するためには、 Cluster Service がリソース DLL db2wolf.dll を見つけられるようにして おかな ければなりません。この DLL は %ProgramFiles%\SQLLIB\bin ディレクトリーに あ ります。 DB2 UDB バージョン 7 インストール・プログラムは PATH システム環境変数を、 %ProgramFiles%\SQLLIB\bin ディレクトリーを指すように設定します。 ただし、 Windows 2000 オペレーティング・システムで実行する場合は、インストール後に マシンをリブートする必要はありません。 DB2MSCS ユーティリティーを実行したい場合は、PATH 環境変数が Cluster Service のために 更新されるように、マシンをリブートする必要があります。 ------------------------------------------------------------------------ 6.5 第 14 章 DB2 および Sun クラスター 2.2 上での高可用性 以下のような場合、DB2 の接続は Sun クラスター 2.2 でサポートされています: * ホストとのプロトコルが TCP/IP (SNA でなく) である。 * 2 フェーズ・コミットが使用されていない。 この制限は、ユーザーが共有デ ィスク上で SPM を構成する場合 (これは、 spm_log_path データベース管理 構成パラメーターで実行可能)、 また、フェールオーバー・マシンが同一の TCP/IP 構成 (同じホスト名、IP アドレスなど) を 持つ場合、緩和されま す。 ------------------------------------------------------------------------ 6.6 Solaris での Veritas サポート 現在、DB2 は Veritas をサポートします。Veritas は Solaris での DB2 高可用性 のクラスターを サポートします。 説明 オンラインとオフラインを切り替え、DB2 UDB インスタンスをモニターしま す。 エントリー・ポイント オンライン db2start を使用してインスタンスを開始します。 オフライン db2stop を使用してインスタンスを停止します。 モニター 指定された DB2 インスタンスが開始されているかどうか判別します。 該当するプロセス・モニターおよびデータベース・モニター (オプショ ン) を使用します。 クリーン DB2 インスタンス・リソースを除去します。 属性 タイプ 定義 probeDatabase ストリング モニターされるデータベース instanceOwner ストリング インスタンス所有者名 instanceHome ストリング インスタンス所有者のホーム・ディレクトリー probeTable ストリング モニターする probeDatabase の表 monitorLevel 整数 1 はプロセス・モニター、2 は db mon を暗黙 指定 nodeNumber 整数 開始するインスタンスのノード番号 (未設定は EE) タイプ定義 type DB2UDB ( static int CleanTimeout = 240 static int MonitorTimeout = 30 static int OfflineTimeout = 240 static int OnlineRetryLimit = 2 static int OnlineTimeout = 120 static int OnlineWaitLimit = 1 static int RestartLimit = 3 static int ToleranceLimit = 1 static str ArgList[] = { probeDatabase, instanceOwner, instanceHome, probeTable, monitorLevel, nodeNumber } NameRule = resource.db2udb str probeDatabase str instanceOwner str instanceHome str probeTable int monitorLevel int nodeNumber ) サンプル構成 DB2UDB db2_resource_n0 ( probeDatabase = sample probeTable = vcstable instanceOwner = stevera instanceHome = "/export/home/stevera" monitorLevel = 2 ) インストール o ディレクトリー /opt/VRTSvcs/bin/DB2UDB を作成する。 o ファイル online、offline、monitor、clean、DB2UDBAgent を /opt/VRTSvcs/bin/DB2UDB に コピーし、これらのファイルに実行可能の マークが付いていることを確認する。 o ファイル db2udb.type.cf を /etc/VRTSvcs/conf/config にコピーす る。 o クラスターを停止する。(たとえば hastop -all) o ファイル main.cf で、 行 include db2udb.type.cf を行 include types.cf の後に追加する。 o クラスター構成が /opt/VRTSvcs/bin/hacf -verify /etc/VRTSvcs/conf/config で 有効であることを確認する。 これで、DB2 インスタンスを制御するために必要な DB2 リソースを作成でき るようになりました。 ------------------------------------------------------------------------ 6.7 付録 B. 命名規則 6.7.1 8 文字より長いユーザー ID とスキーマ名に関する注意点 * Windows 32 ビット・プラットフォームの DB2 バージョン 7 製品は、 30 文 字までのユーザー ID をサポートします。ただし、Windows NT および Windows 2000 の固有サポートのために、 ユーザー ID の実際の制限は 20 文 字です。 * ユーザー ID とパスワードを明示的に指定している場合、DB2 バージョン 7 は、 8 文字より長いユーザー ID を指定して Windows NT と Windows 2000 に接続している Windows 32 ビット以外のクライアントをサポートします。こ れはクライアントまたは DCE 認証を使用している接続を除外します。 * すべてのプラットフォームにおける DCE 認証は、8 文字のユーザー ID 制限 をそのまま続行します。 * CONNECT または ATTACH が成功した場合の SQLCA から戻る authid は、8 文 字に切り捨てられます。 SQLWARN フィールドには切り捨てが発生した時の警 告が含まれます。 詳細については、「SQL 解説書」の CONNECT ステートメン トの記述を参照してください。 * CONNECT または ATTACH が成功した場合のコマンド行プロセッサー (CLP) か ら戻る authid は、8 文字に切り捨てられます。 切り捨てを示す省略記号 (...) が、authid に付けられます。 * DB2 バージョン 7 は、スキーマ名を 30 バイトまでサポートしますが、以下 の例外があります。 o 18 バイトより長いスキーマ名のある表は複製できません。 o ユーザーの定義したタイプ (UDT) には 8 バイトより長いスキーマ名を 使用できません。 6.7.2 ユーザー ID およびパスワード 「"ユーザー ID およびパスワード"」セクションの「"A から Z"」という個所を 以 下のように変更します。 単一バイトの大文字および小文字のアルファベット (A...Z、a...z)。 その他の文 字および記号がサポートされるかどうかは、使用されるコード・ページによって異 なります。 コード・ページ・サポートの詳細については、付録の 「"ナショナル・ ランゲージ・サポート (NLS)"」を参照してください。 ------------------------------------------------------------------------ 6.8 付録 D. リリース間の非互換性 6.8.1 Windows NT DLFS は Norton のユーティリティーと非互換 Windows NT データ・リンク・ファイル・システムは、Norton ユーティリティーと 互換性がありませんん。ファイルが DLFS により制御されているドライブから削除 されると、 次のカーネル例外が発生します: エラー 0x1E (カーネル・モード例外 は扱えません)。 例外は 0xC00000005 (アクセス違反) になります。このアクセス 違反は、Norton ユーティリティー・ ドライバーが DLFS フィルター・ドライバー のロード後にロードされるために起きます。 一時的な回避策としては、Norton ユーティリティー・ドライバーがロードされた後 に DLFSD ドライバーを ロードする方法があります。この回避策は、DLFSD ドライ バー設定を手操作で変更することで 行うことができます。「スタート」をクリック し、 「設定--> コントロール パネル--> 装置--> DLFSD」を 選択して、これを手 操作で設定します。 始動フォルダーに追加可能なバッチ・ファイルを作成して、システム始動時に DLFSD ドライバー および DLFM サービスをロードすることができます。バッチ・フ ァイルの内容は次のようになります。 net start dlfsd net start "dlfm service" このバッチ・ファイルを start_dlfs.bat という名前にし、これを C:\WINNT\Profiles\Administrator\Start Menu\Programs\Startup ディレクトリー にコピーします。 管理者のみが DLFS フィルター・ドライバーおよび DLFS サービスをロードする権 限を持っています。 6.8.2 SET CONSTRAINTS が SET INTEGRITY に置き換えられる SET CONSTRAINTS ステートメントは SET INTEGRITY ステートメントに置き換えられ ました。 互換性については、どちらのステートメントも DB2 UDB V7 では受け入れ られます。 ------------------------------------------------------------------------ 6.9 付録 E. ナショナル・ランゲージ・サポート 6.9.1 DB2 バージョン 7 の各国語版 DB2 バージョン 7 の各国語版には、英語、フランス語、ドイツ語、イタリア語、ス ペイン語、 ブラジル・ポルトガル語、日本語、韓国語、中国語 (簡体字)、中国語 (繁体字)、 デンマーク語、フィンランド語、ノルウェー語、スウェーデン語、チェ コ語、オランダ語、 ハンガリー語、ポーランド語、トルコ語、ロシア語、ブルガリ ア語、スロベニア語があります。 UNIX ベースのプラットフォームでは、DB2 製品メッセージとライブラリーは 異な る言語のインストールが可能です。DB2 インストール・ユーティリティーは、 メッ セージ・カタログ・ファイル・セットを、次の表で示すプラットフォームの 最もよ く使用されるローカル・ディレクトリーに用意しています。 表 4 は AIX、HP-UX、 および Solaris の情報を提供します。 表 5 は Linux、Linux/390、SGI、および Dynix の情報を提供します。 表 4. AIX、HP-UX、Solaris オペレーティン AIX HP-UX Solaris グ・システム 言語 ロケール コー ロケール コー ロケール コー ド・ ド・ ド・ ペー ペー ペー ジ ジ ジ フランス語 fr_FR 850 fr_FR.iso88591 1051 fr Fr_FR fr_FR.roman8 ドイツ語 de_DE 850 de_DE.iso88591 1051 de De_DE de_DE.roman8 イタリア語 it_IT 850 it_IT.iso88591 1051 it It_IT it_IT.roman8 スペイン語 es_ES 850 es_ES.iso88591 1051 Es_ES es_ES.roman8 Brazilian Portu-pt_BR pt_BR guese 日本語 ja_JP 954 ja_JP.eucJP 954 ja 954 Ja_JP 932 韓国語 ko_KR 970 ko_KR.eucKR 970 ko 970 中国語 (簡体字) zh_CN 1383 zh_CN.hp15CN 1383 zh 1383 Zh_ 1386 CN.GBK 中国語 (繁体字) zh_TW 964 zh_TW.eucTW 964 zh_TW 964 Zh_TW 950 zh_TW.big5 950 zh_TW.BIG5 950 デンマーク語 da_DK 850 da_DK.iso88591 1051 da Da_DK da_DK.roman8 フィンランド語 fi_FI 850 fi_FI.iso88591 1051 fi Fi_FI fi_FI.roman8 ノルウェー語 no_NO 850 no_NO.iso88591 1051 no No_NO no_NO.roman8 スウェーデン語 sv_SE 850 sv_SE.iso88591 1051 sv Sv_SE sv_SE.roman8 チェコ語 cs_CZ 912 ハンガリー語 hu_HU 912 ポーランド語 pl_PL 912 オランダ語 nl_NL 850 Nl_NL トルコ語 tr_TR 920 ロシア語 ru_RU 915 ブルガリア語 bg_BG 915 bg_BG.iso88595 915 スロベニア語 sl_SI 912 sl_SI.iso88592 912 sl_SI 912 表 5. Linux、Linux/390、SGI、Dynix オペレー Linux Linux/390 SGI Dynix ティン グ・シス テム 言語 ロケール コー ロケール コー ロケール コ ロケール コ ド・ ド・ ー ー ペー ペー ジ ジ ド・ ド・ ペ ペ ー ー ジ ジ フランス fr fr fr 語 ドイツ語 de de de イタリア 語 スペイン 語 ブラジ ル・ポル トガル語 日本語 ja_JP.ujis 954 ja_JP.ujis 954 ja_JP.EUC 954 韓国語 ko 970 ko 970 ko_KO.euc 970 中国語 zh zh_CN.GBK 1386 zh 1386 (簡体字) zh_CN.GBK 中国語 zh_TW.Big5 950 zh_TW.Big5 950 (繁体字) デンマー ク語 フィンラ ンド語 ノルウェ ー語 スウェー デン語 チェコ語 ハンガリ ー語 ポーラン ド語 オランダ nl 語 トルコ語 ロシア語 ブルガリ ア語 スロベニ ア語 ご使用のシステムで、上記と同じコード・ページで異なったロケール名を使用して いる場合でも、 適切なメッセージ・ディレクトリーにリンクをはれば、翻訳された メッセージを 見ることができます。 たとえば、お使いの AIX マシンで、デフォルト・ロケールが ja_JP.IBM-eucJP で ja_JP.IBM-eucJP のコード・ページが 954 の場合、以下のコマンドを 実行すると /usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP から /usr/lpp/db2_07_01/msg/ja_JP へ リンクをはる ことができます。 ln -s /usr/lpp/db2_07_01/msg/ja_JP /usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP このコマンドを実行後、DB2 の全メッセージは日本語で表示されるようになりま す。 6.9.1.1 コントロール・センターと資料のファイル・セット コントロール・センター、コントロール・センター・ヘルプ、および資料のファイ ル・セットは ターゲット・ワークステーション上の以下のディレクトリーに置かれ ています。 * DB2 (AIX 版): o /usr/lpp/db2_07_01/cc/%L o /usr/lpp/db2_07_01/java/%L o /usr/lpp/db2_07_01/doc/%L o /usr/lpp/db2_07_01/qp/$L o /usr/lpp/db2_07_01/spb/%L * DB2 (HP-UX 版): o /opt/IBMdb2/V7.1/cc/%L o /opt/IBMdb2/V7.1/java/%L o /opt/IBMdb2/V7.1/doc/%L * DB2 (Linux 版): o /usr/IBMdb2/V7.1/cc/%L o /usr/IBMdb2/V7.1/java/%L o /usr/IBMdb2/V7.1/doc/%L * DB2 (Solaris 版): o /opt/IBMdb2/V7.1/cc/%L o /usr/IBMdb2/V7.1/java/%L o /opt/IBMdb2/V7.1/doc/%L コントロール・センターのファイル・セットは、ユニコード・コード・ページの中 にあります。 資料とコントロール・センター・ヘルプのファイル・セットはブラウ ザーが認識するコード・セットの中にあります。 お使いのシステムが 提供されて いるものとは異なるロケール名を使用している場合は、適切な言語ディレクトリー に リンクをはることで、翻訳されたバージョンのコントロール・センターを実行 し、 翻訳されたバージョンのヘルプをみることができます。 たとえば、お使いの AIX マシンのデフォルト・ロケールが ja_JP.IBM-eucJP の場 合、以下のコマンドを実行すると /usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP から /usr/lpp/db2_07_01/cc/ja_JP へ、また /usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP から /usr/lpp/db2_07_01/doc/ja_JP へのリンクを作成することができます。 * ln -s /usr/lpp/db2_07_01/cc/ja_JP /usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP * ln -s /usr/lpp/db2_07_01/doc/ja_JP /usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP これらのコマンドの実行後、コントロール・センターおよびヘルプ・テキストは 日 本語で表示されるようになります。 注: Web コントロール・センターは、Linux/390 または NUMA-Q での ネイティブ 実行をサポートしていません。 これらのプラットフォームでのデータベース を管理するため、クライアント・ワークステーションから 実行できます。 6.9.2 DB2 管理サーバーのロケール設定 DB2 管理サーバーのインスタンスのロケールが、DB2 インスタンスのロケールに対 して 互換性があるか確認してください。 そうでなければ、DB2 インスタンスは DB2 管理サーバーと通信することができません。 DB2 管理サーバーのユーザー・プロファイルで、LANG 環境変数が設定されていない と DB2 管理サーバーはデフォルトのシステム・ロケールで始動します。 デフォル トのシステム・ロケールが定義されていないと、DB2 管理サーバーはコード・ペー ジ 819 で 始動します。 DB2 インスタンスが DBCS ロケールの 1 つを使用し、DB2 管理サーバーがコード・ページ 819 で始動された場合、 そのインスタンスは DB2 管理サーバーと通信することができません。 DB2 管理サーバーのロケールと DB2 インスタンスのロケールは 互換性がある必要があります。 たとえば、中国語 (簡 体字) システムで 「LANG=zh_CN」 は、DB2 管理サーバーの ユーザー・プロファイ ルで設定されている必要があります。 6.9.3 DB2 UDB は Baltic Rim コード・ページ (MS-1257) を Windows プラットフ ォームでサポートします DB2 UDB は、Baltic Rim コード・ページ MS-1257 を Windows 32 ビット・オペレ ーティング・システムで サポートします。このコード・ページは、ラトビア語、リ トアニア語、エストニア語に使用されます。 6.9.4 コード・ページ値の取得 「"コード・ページ値の取得"」セクションの最初の段落 (下の文) を変更してくだ さい。 ただし、DB2 が適切なコード・ページをオペレーティング・システムから判別する ため、 DB2CODEPAGE レジストリー変数を設定する必要はありません。 修正後: 通常、DB2 がオペレーティング・システムからコード・ページ情報を 自動 的に取得するため、DB2CODEPAGE レジストリー変数を設定する必要はありません。 6.9.5 国別コードおよびコード・ページのサポート 「"国別コードおよびコード・ページのサポート"」セクションで、次の情報を表に 追加します。 コード・ 国別 ページ グループ コード・セット Tr. コード ロケール OS 国名 ---- ----- -------- -- --- ----- ---- --------------- 943 D-1 IBM-943 JP 81 ja_JP.PCK Sun Japan 6.9.6 文字セット 「"文字セット"」セクションの「"ID の文字セット"」サブセクションで、 最初の 段落の最後の 2 つの文を以下の文に置き換えます。 特殊文字 #、@、および $ は NLS ホスト (EBCDIC) 不変文字セットに 組み込まれ ていないため、これらを NLS 環境で使用する場合は注意してください。 使用され ているコード・ページに応じて、拡張文字セットの文字も使用できます。 複数コー ド・ページ環境でデータベースを使用している場合、使用する拡張文字セットの ど のエレメントもすべてのコード・ページによってサポートされていることを確認す る必要があります。 ------------------------------------------------------------------------ 管理の手引き : インプリメンテーション ------------------------------------------------------------------------ 7.1 DMS コンテナーの追加または拡張 (新規プロセス) 追加または拡張 (表スペース作成中または作成後) される DMS コンテナー (ファイ ル・コンテナーと ロー・デバイス・コンテナーの両方) は、プリフェッチャーを通 じて並列に追加または拡張される ようになりました。このような作成/サイズ変更 コンテナー操作の並列性を高めるために、 システムで実行されるプリフェッチャー の数を増やすことができます。並列で行われないプロセスは、 これらのアクション のロギングと、コンテナーの作成の場合は、コンテナーのタグ付けだけです。 注: CREATE TABLESPACE / ALTER TABLESPACE の並列性 (新しいコンテナーの既存 の 表スペースへの追加に関して) は、プリフェッチャー数が追加されるコン テナー数と等しいときは 増加しなくなりました。 ------------------------------------------------------------------------ 7.2 第 1 章 GUI ツールによる DB2 の管理 「"アラート・センター"」セクションの最後の 2 文を除去してください。 「"パフォーマンス・モニター"」セクションで、「"指定時刻のパフォーマンスのモ ニター"」 サブセクションの「"パフォーマンス変数の定義"」リストの 2 番目の項 目を除去してください。 また、同じサブセクションの後半のいくつかの段落を、以下のように訂正します。 さまざまな種類のパフォーマンス変数をそれぞれモニターすることができます。 ど のスナップショット・モニター・ウィンドウの「ヘルプ」メニューからでも アクセ スできるパフォーマンス変数参照ヘルプに、パフォーマンス変数すべての説明が用 意されています。 これらの変数はカテゴリーごとに編成されています。 以下のカ テゴリーがあります。 * インスタンス: エージェント、接続、ソート * データベース: ロックおよびデッドロック、バッファー・プールおよび入出 力、接続、 ソート、SQL ステートメント活動 * 表: 表 * 表スペース: バッファー・プールおよび入出力 * データベース接続: バッファー・プールおよび入出力、ロックおよびデッドロ ック、 ソート、SQL ステートメント活動 スナップショット生成について詳しくは、オンライン・ヘルプを参照してくださ い。 同じセクションで、「"アラート・センターにオブジェクトが表示された場合のアク ション"」 サブセクションの最後の文を除去してください。 ------------------------------------------------------------------------ 7.3 第 3 章 データベースの作成 7.3.1 表スペースの作成 7.3.1.1 Linux でのロー入出力の使用 Linux には、ブロック・デバイスにバインドしなければロー入出力を実行できな い、 ロー・デバイス・ノードのプールがあります。 ロー・デバイスをブロック・ デバイスにバインドするための情報の中央リポジトリーとして 機能するロー・デバ イス・コントローラーがあります。 バインドは、一般的に Linux ディストリビュ ーターによって提供されている ユーティリティー raw を使用して実行されます。 Linux でロー入出力をセットアップするには、以下が必要になります。 * 1 つ以上の IDE または SCSI 空きディスク区分 * Linux カーネル 2.4.0 以降 (ただし、Linux 配布版によってはカーネル 2.2 でも ロー入出力が提供されている場合があります。) * ロー・デバイス・コントローラー /dev/rawctl または /dev/raw。 これらの コントローラーがない場合、次のようにしてシンボリック・リンクを作成して ください。 # ln -s /dev/your_raw_dev_ctrl /dev/rawctl * 通常、Linux 配布版で提供される raw ユーティリティー * DB2 バージョン 7.1 フィックスパック 3 以降 注: ロー・デバイス・ノード名は、 現在ロー入出力をサポートしている配布版に よって異なります。 配布版 ロー・デバイス・ノード ロー・デバイス・コントローラー ------------ -------------------- --------------------- RedHat 6.2 /dev/raw/raw1 〜 255 /dev/rawctl SuSE 7.0 /dev/raw1 〜 63 /dev/raw DB2 は、これら 2 つのロー・デバイス・コントローラー、および ロー・デバ イス・ノードのその他ほとんどの名前をサポートしています。 ロー・デバイ スは、Linux/390 での DB2 ではサポートされていません。 Linux でロー入出力を構成するには: この例では、使用されるロー区分は /dev/sda5 です。 この区分には、重要なデー タは含まれていないと想定します。 ステ この区分の 4 096 バイト・ページの数を計算します。端数が出た場合は切 ップ り捨てます。 例: 1. # fdisk /dev/sda Command (m for help): p Disk /dev/sda: 255 heads, 63 sectors, 1106 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 1 523 4200997 83 Linux /dev/sda2 524 1106 4682947+ 5 Extended /dev/sda5 524 1106 4682947 83 Linux Command (m for help): q # /dev/sda5 のページ数: num_pages = floor( ((1106-524+1)*16065*512)/4096 ) num_pages = 11170736 ステ 未使用のロー・デバイス・ノードをこの区分にバインドします。 マシンを ップ リブートするたびに行う必要があり、ルート・アクセスが必要です。 raw 2. -a を使用して、どのロー・デバイス・ノードが使用されているかを調べま す。 # raw /dev/raw/raw1 /dev/sda5 /dev/raw/raw1: bound to major 8, minor 5 ステ ロー装置コントローラーおよびディスク区分にグローバル読み取りアクセ ップ ス権を設定します。 ロー・デバイスには、グローバル読み取り/書き込み 3. アクセス権を設定します。 # chmod a+r /dev/rawctl # chmod a+r /dev/sdb1 # chmod a+rw /dev/raw/raw1 ステ ディスク区分ではなくロー・デバイスを指定して、DB2 に表スペースを作 ップ 成します。 例: 4. CREATE TABLESPACE dms1 MANAGED BY DATABASE USING (DEVICE '/dev/raw/raw1' 11170736) ロー・デバイスの表スペースは、DB2 でサポートされているその他すべてのペー ジ・サイズでも サポートされています。 7.3.2 シーケンスの作成 「"新しい表に識別列を定義"」セクションの後に、以下の「シーケンスの作成」セ クションを追加してください。 シーケンス とは、値の自動生成を可能にするデータベース・オブジェクトです。 シーケンスは、固有キー値を生成するタスクに最も適しています。 アプリケーショ ンはシーケンスを使用し、データベースの外部に固有カウンターを生成したことに よって 発生する可能性のある、並列性およびパフォーマンスの問題を回避すること ができます。 識別列属性とは異なり、シーケンスは特定の表列に関連付けられたり、固有の表列 にバインドされることはなく、 その表列からのみアクセス可能です。 以下の方法のいずれかでシーケンスが値を生成するよう、シーケンスを作成または 変更することができます。 * バインドなしで単調増分または減分する * ユーザー定義の制限まで単調増分または減分して終了する * ユーザー定義の制限まで単調増分または減分し、先頭に戻って循環する シーケンス・オブジェクト作成の例: CREATE SEQUENCE order_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE CACHE 24 この例で、シーケンスは order_seq です。 1 から始まり、上限なしで 1 ずつ増え ていきます。 上限が割り当てられていないため、先頭に戻って循環することはあり ません。 CACHE パラメーターに関連する数値は、データベース・マネージャーが事 前割り当てし、 メモリーに保管するシーケンス値の最大数を指定します。 生成されるシーケンス番号のプロパティー: * 値は位取りがゼロの数値データ・タイプになります。 このようなデータ・タ イプは SMALLINT、BIGINT、INTEGER、および DECIMAL です。 * 連続値は、指定される整数増分によって異なります。 デフォルト増分値は 1 です。 * カウンター値は回復可能です。 カウンター値は、リカバリが要求されたとき にログから再構成されます。 * パフォーマンスを上げるため、値をキャッシュに入れることができます。 値 を事前に割り当ててキャッシュに保管することにより、シーケンスについて値 を生成するときの ログへの同期入出力を減らすことができます。 システム障 害イベントが発生した場合、コミットされていないキャッシュ値はすべて使用 されなくなり、 失われたものと見なされます。 CACHE に指定された値は、失 われる可能性のあるシーケンス値の最大数です。 シーケンスを含むデータベースを以前の状態にリカバリすると、いくつかのシーケ ンスで 値が重複する場合があります。 値の重複を回避するため、シーケンスを含 むデータベースを以前の状態にリカバリしないでください。 シーケンスは単一ノード・データベースでのみサポートされています。 シーケンスで使用される式には、以下の 2 つがあります。 PREVVAL 式は、現行セッション内の直前のステートメントに指定されたシーケンス について 最後に生成された値を返します。 NEXTVAL 式は、指定されたシーケンスの次の値を返します。 NEXTVAL 式がシーケン スの名前を指定していれば、新しいシーケンス番号が生成されます。 ただし、照会 の中に同じシーケンス名を指定している NEXTVAL 式のインスタンスが 複数ある場 合、シーケンスのカウンターは結果の行ごとに 1 つずつ増えていきます。 同じシーケンス番号は、先頭の表の NEXTVAL 式およびその他の表の PREVVAL 式を 使用してシーケンス番号を参照することによって、2 つの異なる表内の固有キー値 として使用することができます。 たとえば: INSERT INTO order (orderno, custno) VALUES (NEXTVAL FOR order_seq, 123456); INSERT INTO line_item (orderno, partno, quantity) VALUES (PREVVAL FOR order_seq, 987654, 1) NEXTVAL または PREVVAL 式は、以下の項目で使用することができます。 * INSERT ステートメント、VALUES 文節 * SELECT ステートメント、SELECT リスト * SET 割り当てステートメント * UPDATE ステートメント、SET 文節 * VALUES または VALUES INTO ステートメント 7.3.3 IDENTITY 列とシーケンスの比較 「"シーケンスの作成"」セクションの後に、以下のセクションを追加します。 IDENTITY 列とシーケンスは類似していますが、異なる点もあります。 それぞれの 特性は、データベースおよびアプリケーションの設計時に利用することができま す。 識別列の特性: * 識別列は、表の作成時にのみ、表の一部として定義することができます。 表 を作成した後、変更して識別列を追加することはできません。 (ただし、既存 の識別列の特性を変更することはできます。) * 識別列は、1 つの表の値を自動的に生成します。 * 識別列が GENERATED ALWAYS として定義されている場合、使用される値は常に データベース・マネージャーによって生成されます。 表の内容の変更中にア プリケーションで独自の値を指定することはできません。 シーケンス・オブジェクトの特性: * シーケンス・オブジェクトとは、どの表にも関連付けられていないデータベー ス・オブジェクトです。 * シーケンス・オブジェクトは、SQL ステートメントで使用可能な順次値を生成 します。 * シーケンス・オブジェクトはどのアプリケーションでも使用できるため、 指 定されたシーケンス内の次の値、およびステートメントの実行前に生成された 値の 検索を制御するための 2 つの式があります。 PREVVAL 式は、現行セッ ション内の直前のステートメントに指定されたシーケンスについて 最後に生 成された値を返します。 NEXTVAL 式は、指定されたシーケンスの次の値を返 します。 これらの式を使用すると、複数の表内の複数の SQL ステートメント で同じ値を使用できるようになります。 以上がこれら 2 つの特性のすべてではありませんが、このような特性を考慮するこ とによって、 データベース設計やデータベースで使用するアプリケーションに応じ てどちらを使用すればよいか 判断するために役立ちます。 7.3.4 索引の作成、索引拡張子、または索引の指定 「"索引の作成、索引拡張子、または索引の指定"」セクションで、 文章「"索引キ ーに含まれる列は 255 バイトに制限されています。"」で始まる段落に以下の注釈 を 追加します。 注: DB2_INDEX_2BYTEVARLEN レジストリー変数を使用すると、 255 バイトを超え る長さの列を索引キーの一部として指定することができます。 ------------------------------------------------------------------------ 7.4 第 4 章 データベースの変更 セクション「"表スペースの変更"」の下に、以下の新しいセクションを追加しま す。 7.4.1 区分内の SMS 表スペースへのコンテナーの追加 現行でコンテナーを所有していない区分 (もしくはノード) の SMS 表スペースに コンテナーを追加することができます。 表スペースの内容は、すべてのコンテナーを通して再調整されます。 表スペースへ の接続は、再調整の間、制限を受けません。 複数のコンテナーを追加する場合は、 すべてを同じに追加する必要があります。 コマンド行を使用して、SMS 表スペースにコンテナーを追加するには、以下のよう に入力します: ALTER TABLESPACE ADD ('') ON NODE () 番号で指定された区分、および区分の範囲内のすべての区分 (もしくはノード) は、 表スペースが定義されているノード・グループに存在していなくてはなりませ ん。 partition_number は、ステートメントのただ 1 つの on-nodes-clause で、 明示的にのみ、または範囲で表される場合もあります。 以下の例では、UNIX ベースのオペレーティング・システム上で、表スペース "plans"が使用している ノード・グループの 3 番区分にどのように新規のコンテナ ーを追加するかを 示しています: ALTER TABLESPACE plans ADD ('/dev/rhdisk0') ON NODE (3) 「"表属性の変更"」セクションの後に、以下のセクションを追加します。 7.4.2 識別列の変更 ALTER TABLE ステートメントで、既存の識別列の属性を変更します。 このステート メントの詳細 (構文など) については、SQL 解説書 を参照してください。 シーケンスの特性を持つように識別列を変更するためには、いくつかの方法があり ます。 ALTER TABLE および識別列には、以下のような固有のタスクがあります。 * RESTART は、識別列に関連付けられたシーケンスを、識別列が最初に 作成さ れたときに明示的または暗黙的に指定された値にリセットします。 * RESTART WITH は、識別列に関連付けられたシーケンスを 数値定数にリセットします。 数値定数は、識別列に割り当てることができ る、小数点以下に非ゼロ桁がない正または負の値です。 7.4.3 シーケンスの変更 ALTER SEQUENCE ステートメントで、既存のシーケンスの属性を変更します。 この ステートメントの詳細 (構文など) については、SQL 解説書 を参照してください。 変更可能なシーケンスの属性: * 今後の値の間の増分を変更 * 新しい最小値または最大値を確立 * キャッシュ済みシーケンス番号の数を変更 * シーケンスが循環するかどうかを変更 * 要求の順序でシーケンス番号が生成されるかどうかを変更 * シーケンスを再始動 シーケンス作成の一部ではないタスクが 2 つあります。 そのステートメントは以 下の通りです。 * RESTART。 シーケンスを、そのシーケンスの作成時に開始値として明示的また は暗黙的に指定された値にリセットします。 * RESTART WITH numeric-constant。 シーケンスを数値定数にリセットします。 数値定数は、小数点以下に非ゼロ桁がない正または負の値です。 シーケンスを再始動、または CYCLE に変更した後、重複するシーケンス番号が 生 成される可能性があります。 今後のシーケンス番号だけが ALTER SEQUENCE ステー トメントによって影響を受けます。 シーケンスのデータ・タイプは変更できません。 その代わり、現行シーケンスをド ロップして、新しいデータ・タイプを指定した 新しいシーケンスを作成する必要が あります。 シーケンスが変更されると、DB2 で使用されていないキャッシュ済みの値はすべて 失われます。 7.4.4 シーケンスのドロップ シーケンスを削除するには、DROP ステートメントを使用します。 このステートメ ントの詳細 (構文など) については、SQL 解説書 を参照してください。 以下を実行すると、特定のシーケンスをドロップすることができます。 DROP SEQUENCE sequence_name sequence_name はドロップするシーケンス名で、ここには、 既存のシーケンスを正 しく識別するための暗黙的または明示的なスキーマ名が入ります。 IDENTITY 列のためにシステム作成されたシーケンスは、DROP SEQUENCE ステートメ ントを使用して ドロップすることはできません。 シーケンスをドロップすると、そのシーケンスの特権もすべてドロップされます。 7.4.5 表スペース状況の切り換え コンテナーがアクセス可能になった表スペースに関連付けられていた場合、 ALTER TABLESPACE ステートメントの SWITCH ONLINE 文節は、オフライン状態から オンラ イン状態まで表スペースを移動させることができます。 その表スペースは、データ ベースがまだ起動し、作動している間に、オンライン状態に 移行させます。 この文節を使用する代わりに、データベースからすべてのアプリケーションを切断 し、 再びアプリケーションをデータベースに接続しなおすこともできます。 これ は表スペースをオフライン状態からオンライン状態に移行させます。 コマンド行を使用して表スペースをオンライン状態に切り換えるには、以下のよう に入力します。 ALTER TABLESPACE SWITCH ONLINE 7.4.6 DMS 表スペース内のコンテナーの変更 DMS 表スペースは並行して作成およびサイズ変更されるようになり、パフォーマン スが向上しました。 並列性の度合いは、プリフェッチャーの数に 1 を足した数と 等しくなります。 ------------------------------------------------------------------------ 7.5 第 5 章 データベース・アクセスの制御 セクション「"索引特権"」の後に、以下のセクションを追加します。 7.5.1 シーケンス特権 シーケンスの作成者には、自動的に USAGE 特権が与えられます。 USAGE 特権は、 シーケンスで NEXTVAL および PREVVAL 式を使用する場合に必要になります。 他の ユーザーに NEXTVAL および PREVVAL 式の使用を許可するには、 シーケンス特権を PUBLIC に付与しなければなりません。 これで、すべてのユーザーが指定されたシ ーケンスでこれらの式を使用できるようになります。 「"監査機能によるデータ・アクセスのモニター"」セクションの後に、以下のセク ションを追加します。 7.5.2 データ暗号化 セキュリティ計画の一環として、データの暗号化があります。 これを行うため、暗 号化および暗号化解除組み込み関数: ENCRYPT、DECRYPT_BIN、 DECRYPT_CHAR、およ び GETHINT を使用することができます。 これらの関数の詳細 (構文など) につい ては、リリース情報の「SQL 解説書」セクションを参照してください。 ENCRYPT 関数は、パスワード・ベースの暗号化メソッドでデータを暗号化します。 これらの関数によって、パスワード・ヒントをカプセル化することもできます。 パ スワード・ヒントは、暗号化データに組み込まれています。 暗号化したデータの暗 号化を解除するには、正しいパスワードを使用する必要があります。 これらの関数 を使用する開発者は、パスワードを忘れた場合の管理や使用できないデータの 管理 について考慮しなければなりません。 ENCRYPT 関数の結果は、最初の引き数と同じデータ・タイプになります。 VARCHAR のみ暗号化することができます。 宣言された結果の長さは、以下のいずれかです。 * オプションのヒント・パラメーターが指定されている場合、データ引き数の長 さプラス 42 * オプションのヒント・パラメーターが指定されていない場合、データ引き数の 長さプラス 10 DECRYPT_BIN および DECRYPT_CHAR 関数は、パスワード・ベースの暗号化解除を使 用して、 データの暗号化を解除します。 DECRYPT_BIN および DECRYPT_CHAR 関数の結果は、最初の引き数と同じデータ・タ イプになります。 宣言された結果の長さは、オリジナル・データの長さです。 GETHINT 関数は、カプセル化されたパスワード・ヒントを返します。 パスワード・ ヒントとは、データ所有者がパスワードを思い浮かべるために役立つフレーズで す。 たとえば、パスワード "Pacific" を思い浮かべるために、ワード "Ocean" を ヒントとして使用することができます。 データの暗号化に使用するパスワードは、以下のいずれかの方法で決定されます。 * パスワード引き数。 パスワードは、ENCRYPT 関数が呼び出されるときに明示 的に渡されるストリングです。 データは、与えられたパスワードで暗号化お よび暗号化解除されます。 * 特殊レジスター・パスワード。 SET ENCRYPTION PASSWORD ステートメントは パスワード値を暗号化し、その暗号化された パスワードをデータベース・マ ネージャーに送信して、特殊レジスターに保管します。 パスワード・パラメ ーターなしで呼び出された ENCRYPT、DECRYPT_BIN、および DECRYPT_CHAR 関 数は、 ENCRYPTION PASSWORD 特殊レジスターの値を使用します。 特殊レジスターの初期値 (デフォルト値) は空ストリングです。 パスワードに有効な長さは 6 〜 127 文字です。 ヒントに有効な長さは 0 〜 32 文字です。 ENCRYPTION PASSWORD 特殊レジスターがクライアントによって設定されている場 合、 パスワードはクライアント側で暗号化された後、データベース・サーバーに送 信されて暗号化解除されます。 パスワードを読めない状態に保つため、データベー ス・サーバーでも再暗号化されます。 DECRYPT_BIN および DECRYPT_CHAR 関数は、 使用する前に特殊レジスターを暗号化解除する必要があります。 ENCRYPTION PASSWORD に見つかった値も読めない状態になっています。 ゲートウェイ・セキュ リティはサポートされていません。 ------------------------------------------------------------------------ 7.6 第 8 章 データベースの回復 7.6.1 中断入出力の使用法 第 8 章「"データベース・リカバリ"」に、中断入出力関数の使用法に関するセクシ ョンを追加します。 注: db2inidb ユーティリティーに関する下記の情報を、「バージョン 7.2 新着情 報」に 記載されている情報と置き換えてください。 db2inidb は DB2 に添付された新しいツールで、クラッシュ・リカバリを実行で き、また データベースをロールフォワード保留状態にすることができます。 中断入出力は、連続的なシステム使用可能性を、オンライン分割ミラー・ハンドリ ングの フル・インプリメンテーション (つまりデータベースをシャットダウンせず にミラーを 分割) を提供することでサポートします。大きなデータベースでバック アップをオンラインまたは オフラインにすることが難しい場合は、中断入出力と分 割ミラーを使用してミラー・イメージから バックアップまたはシステム・コピーを 行うことができます。 ストレージ装置のミラーリングの度合いによって、db2inidb の使用法は変わりま す。 以下の使用法では、データベース全体がストレージ・システムを通じて一貫し てミラーリングされていることを 想定しています。 マルチノード環境で、いずれかの区分から分割イメージを使用できるようにするに は、 db2inidb ツールを区分それぞれで実行する必要があります。 db2inidb ツー ルは、すべての区分で同時に実行することができます。 1. レプリケーション・データベースを作成する この目的は、1 次データベースの レプリケーションを読み取りに使用するこ とです。 レプリケーション・データベースの作成手順は以下の通りです。 a. 次のコマンドを入力して、1 次システムで入出力を中断します。 db2 set write suspend for database b. オペレーティング・システム・レベル・コマンドを使用して、1 次デー タベースから ミラーを分割します。 c. 次のコマンドを入力して、1 次システムで入出力を再開します。 db2 set write resume for database コマンドの実行後、1 次システムの データベースは正常な状態に戻るは ずです。 d. ミラーリングされたデータベースに別のマシンから接続します。 e. 次のコマンドを入力して、データベース・インスタンスを開始します。 db2start f. 次のコマンドを入力して、DB2 クラッシュ・リカバリを開始します。 db2inidb database_name AS SNAPSHOT 注: このコマンドは、 分割時に未了であったトランザクションによる 変更をロールバックします。 この処理はオフライン・バックアップにも使用することができますが、 1 次 システムに復元する場合、ログ・チェーンが一致しないために、このバックア ップを ロールフォワードに使用することはできません。 2. 分割ミラーをスタンドバイ・データベースとして使用する ミラーリングされた (スタンドバイ) データベースは ログを通じて連続的に ロールフォワードするため、1 次データベースで作成されている新しいログ は、 1 次システムから絶えずフェッチされます。分割ミラーをスタンドバ イ・データベースとして使用する 方法は以下の通りです。 a. 1 次データベースで入出力書き込みを中断します。 b. 1 次システムからミラーを分割します。 c. 1 次データベースで入出力書き込みを再開し、1 次データベースが正常 処理に戻るようにします。 d. ミラーリングされたデータベースを別のインスタンスに接続します。 e. ミラーをロールフォワード保留状態にして、ミラーをロールフォワード します。 db2inidb ツール (db2inidb as standby) を実行 して、書き込み中断状態を除去し、 ミラーリングされたデータベースを ロールフォワード保留状態にします。 f. ユーザー出口プログラムをセットアップしてログをコピーし、1 次シス テムから ログ・ファイルを検索します。これにより、このミラーリング されたデータベースで 最新ログを使用できるようにします。 g. データベースをログの終わりまでロールフォワードします。 h. ステップ f に戻り、1 次データベースがダウンするまでこのプロセスを 繰り返します。 3. 分割ミラーをバックアップ・イメージとして使用する ミラーリングされた システムを 1 次システムに対して復元するためのバック アップ・イメージとして 使用する方法は、以下の通りです。 a. オペレーティング・システム・コマンドを使用してミラーリングされた データを コピーし、1 次システムの最上部にログオンします。 b. 次のコマンドを入力して、データベース・インスタンスを開始します。 db2start c. 次のコマンドを実行して、ミラーリングされたデータベースをロールフ ォワード保留状態にし、 書き込み中断状態を除去します。 db2inidb database_alias AS MIRROR d. データベースをログの終わりまでロールフォワードします。 7.6.2 増分バックアップおよびリカバリ 第 8 章「"データベース・リカバリ"」に、増分バックアップおよびリカバリに関す る 以下のセクションを追加します。 データベース (特にウェアハウス) のサイズがテラバイトからペタバイトの 範囲に 展開するにつれて、これらのデータベースのバックアップおよびリカバリに 必要な 時間とハードウェア・リソースも大幅に増加します。 大規模なデータベースを扱っ ている場合、データベースおよび表スペースの 全バックアップを実行することは、 データベースの複数コピーのストレージ要件が 巨大になるため、最適なアプローチ とはいえません。 以下の点に注意してください。 * ウェアハウス内で変更されたデータのパーセンテージが小さい場合、 データ ベース全体をバックアップする必要はありません。 * 表スペースを既存のデータベースに追加して、その表スペースのみをバックア ップするのは危険です。 これは、バックアップされた表スペース以外のデー タも変更されている可能性があるためです。 DB2 は現在、増分バックアップおよびリカバリをサポートしています (ただし、 大 きなフィールドおよびラージ・オブジェクト・データはサポートしません)。 増分 バックアップは、直前のバックアップが取られた後で 更新されたページのみを含む バックアップ・イメージです。 増分バックアップ・イメージそれぞれには、更新さ れたデータと索引ページに加え、 通常、全バックアップ・イメージに保管される初 期データベース・メタデータ (データベース構成、 表スペース定義、データベー ス・ヒストリーなど) も含まれます。 以下の 2 つのタイプの増分バックアップがサポートされています。 * 増分。 増分バックアップ・イメージは、最新の全バックアップ処理が正常に 完了した後で 変更されたすべてのデータベース・データのコピーです。 時間 の経過とともに取られた一連の増分バックアップに、以前の増分バックアッ プ・イメージの内容が 含まれるため、これは累積バックアップ・イメージと も呼ばれます。 前の増分バックアップ・イメージは常に、正常に実行された 同じオブジェクトの最後の全バックアップです。 * デルタ。 デルタ (つまり増分デルタ) バックアップ・イメージは、最後に正 常に実行された 該当する表スペースの (全、増分、またはデルタ) バックア ップ後に変更されたすべての データベース・データのコピーです。 これは、 差分または非累積バックアップ・イメージとも呼ばれます。 前のデルタ・バ ックアップ・イメージは、最後に正常に実行された、デルタ・バックアップ・ イメージ内の 各表スペースのコピーを含むバックアップです。 増分バックアップ・イメージとデルタ・バックアップ・イメージとの主な相違点 は、 時間の経過とともに変化するオブジェクトの連続バックアップを取るときの動 作です。 連続増分イメージそれぞれには、以前の増分イメージの内容全体に加え、 直前の バックアップが作成された後で変更されたデータや追加されたデータも含ま れます。 デルタ・バックアップ・イメージには、直前のイメージが作成された後で 変更されたページのみが含まれます。 データベースおよび表スペース増分バックアップの組み合わせは、 オンライン・モ ードとオフライン・モードの両方で許可されています。 バックアップについて計画 する場合、データベースおよび表スペース増分バックアップを 組み合わせると、前 のデータベース・バックアップは必ずしも 1 つのイメージではなく、 別の機会に 取られた以前のデータベースおよび表スペース・バックアップの 固有セットになる 場合があるため、注意してください。 データベースまたは表スペースを一貫性のある状態に再作成するには、 復元するオ ブジェクト全体 (データベースまたは表スペース) の一貫性のある イメージを使用 してリカバリ処理を開始し、以下に説明する順序 (「リストア・メソッド」 セクシ ョンを参照) でそれぞれの適切な増分バックアップ・イメージを適用する必要があ ります。 データベース更新のトラッキングを可能にするため、DB2 は、 以下の 2 つの値を 設定できる新しいデータベース構成パラメーター TRACKMOD をサポートしていま す。 * NO - この構成で増分バックアップは許可されません。 データベース・ページ の更新はトラッキングまたは記録されません。 * YES - この構成で増分バックアップが許可されます。 更新のトラッキングが 可能になると、インスタンス内のデータベースへの 最初の接続が完了した時 点で、変更が有効になります。 増分バックアップを取るには、データベース の全バックアップを実行する必要があります。 デフォルト TRACKMOD 設定は、既存のデータベースであれば NO、 新しいデータベ ースであれば YES です。 トラッキングの細分度は、SMS および DMS 表スペースの両方の表スペース・レベル です。 データベースへの更新のトラッキングは、データを更新または挿入するトランザク ションの 実行時パフォーマンスに、わずかながら影響を与えることがあります。 7.6.2.1 増分バックアップ・イメージからの復元 増分バックアップ・イメージからのリストア操作は常に、以下のステップで構成さ れています。 1. 増分ターゲット・イメージを識別します。 DBA は、まず復元される最終イメ ージを決定し、DB2 リストア・ユーティリティーからの 増分リストア処理を 要求します。 このイメージは、復元される最終イメージとなるため、増分リ ストアのターゲット・イメージとも呼ばれます。 このイメージに対して増分 リストア・コマンドを実行すると、 このターゲット・イメージからの構成お よび表スペース定義で、新しい データベースを作成することができます。 増 分ターゲット・イメージは、RESTORE DATABASE コマンドに TAKEN AT パラメ ーターを 使用することによって指定されます。 2. 最新の全データベースまたは表スペース・イメージを復元し、適用可能な 連 続増分バックアップ・イメージのベースラインを確立します。 3. 要求された全データベースまたは表スペース増分バックアップ・イメージを、 ステップ 2 で復元されたベースライン・イメージの上に、作成された順にそ れぞれ復元します。 4. ステップ 1 によるターゲット・イメージが 2 回読み取られるまで、ステップ 3 を繰り返します。 ターゲット・イメージは、増分リストア処理が完了する までに 2 回アクセスされます。 最初のアクセスでは、イメージから初期デー タのみが読み取られます。ユーザー・データは読み取られません。 2 回目の アクセスでは、完了イメージのみが読み取られて処理されます。 リストア操作中に作成されるデータベースの正しいヒストリー、データベース 構成、 および表スペース定義でデータベースが確実に構成されるようにする ため、 増分リストア操作のターゲット・イメージは 2 回アクセスされなけれ ばなりません。 データベースの全バックアップ・イメージが最初に取られれ た後で、表スペースが ドロップされている場合、そのイメージの表スペー ス・データはバックアップ・イメージから 読み取られますが、増分リストア 操作中には無視されます。 例: 1. db2 restore database sample incremental taken at 説明: は、復元される最後の増分バックアップ・イメージを示しています。 2. db2 restore database sample incremental taken at 説明: は、最初の全データベース (または表スペース) イメージを 示しています。 3. db2 restore database sample incremental taken at 説明: は、作成シーケンス内の各増分バックアップ・イメージを 示しています。 4. ステップ 3 を繰り返し、増分バックアップ・イメージそれぞれを復元し、 イメージ を組み込みます。 データベース・リストア操作を試みる場合、表スペース増分バックアップ・イメー ジが すでに作成されているときは、表スペース・イメージをバックアップ・タイ ム・スタンプの 順に復元する必要があります。 7.6.3 並列リカバリ DB2 は現在、複数のエージェントを使用して、クラッシュ・リカバリと データベー ス・ロールフォワード・リカバリの両方を実行します。 その結果、これらの処理の パフォーマンスはさらに向上しました。 特に対称型マルチプロセッサー (SMP) マ シンの場合、データベース・リカバリ中に 複数のエージェントを使用することによ って、使用可能な追加 CPU を利用できるため、 パフォーマンスがより一層向上し ます。 この拡張によって導入された新しいエージェント・タイプは db2agnsc です。 DB2 は、マシンの CPU の数に基づいて、データベース・リカバリに使用する エージェ ントの数を選択します。 SMP マシンの場合、使用されるエージェントの数は CPU の数 + 1 になります。 CPU が 1 つのマシンでは、ログの読み取り、ログ・レコー ドの処理、およびデータ・ページの プリフェッチをより効率的に行うため、3 つの エージェントが使用されています。 DB2 はログ・レコードをこれらのエージェントに配布し、可能であれば、ログ・レ コードを 同時に再適用できるようにします。 ログ・レコードの処理はページ・レ ベルで並列的に行われる (同じデータ・ページ上の ログ・レコードは同じエージェ ントによって処理される) ため、すべての処理が 1 つの表で 実行された場合でも パフォーマンスは向上します。 7.6.4 名前付きパイプへのバックアップ UNIX ベース・システムでローカル名前付きパイプへのデータベース・バックアップ (および 名前付きパイプからのデータベース・リストア) がサポートされるように なりました。 名前付きパイプの作成側および使用側は、ともに同じマシン上になけ ればなりません。 パイプはローカル・ファイル・システム上にある必要がありま す。 名前付きパイプはローカル装置として処理されるため、ターゲットが名前付き パイプであることを 指定する必要はありません。 AIX での例: 1. 名前付きパイプを作成します。 mkfifo /u/dbuser/mypipe 2. データベース・バックアップ操作のターゲットとして、このパイプを使用します。 db2 backup db sample to /u/dbuser/mypipe 3. データベースを復元します。 db2 restore db sample into mynewdb from /u/dbuser/mypipe 7.6.5 分割イメージからのバックアップ DB2 は現在、データベースの分割ミラー・コピーへの全オフライン・データベー ス・バックアップを サポートしています。 オンライン・バックアップはサポート されておらず、ロールフォワード保留状態のデータベースは 使用できないため、そ の必要はありません。 分割ミラー・バックアップ・イメージを復元する場合、分割 を行うときに 活動トランザクションがあった可能性があるため、そのイメージをロ ールフォワードする必要があります。 注: DB2 バージョン 7.1 フィックスパック 3 および DB2 バージョン 7.2 では、 このサポートは DMS 表スペースのみを含むデータベースにのみ制限されま す。 分割後、データベースのバックアップを試み、そのデータベースに SMS 表スペースが 含まれている場合、バックアップは失敗します。 データベースを分割した後、db2inidb ユーティリティーを使用して、 以下のいず れかのオプションを指定する必要があります。 * スナップショット。 クラッシュ・リカバリを開始して、データベースに一貫 性を持たせます。 新しいログ・チェーンが開始され、データベースは、オリ ジナル・データベースのログによる ロールフォワードを実行できなくなりま す。 データベースは、バックアップを含むいずれの操作にも使用可能です。 * スタンドバイ。 データベースをロールフォワード保留状態にします。 クラッ シュ・リカバリは実行されず、データベースは不整合のままです。 * ミラー。 データベースのミラー・コピーでオリジナル・データベースを置換 します。 データベースはロールフォワード保留状態になり、WRITE SUSPEND 状態はオフになります。 クラッシュ・リカバリは実行されず、データベース は不整合のままです。 使用シナリオは以下の通りです。 * レプリケーション・データベースを作成します。 たとえば報告書の作成に使用する 1 次データベースの読み取り専用レプリケ ーションを作成することが目的です。 これを行うには、以下のステップにし たがってください。 1. 1 次システムでの入出力を中断します。 db2 set write suspend for database 2. ミラーを分割します。 オペレーティング・システム・レベル・コマンド を使用して、1 次データベースからミラーを分割します。 3. 1 次システムでの入出力を再開します。 db2 set write resume for database これで、1 次システムのデータベースは正常な状態に戻ります。 4. データベースの分割ミラーを別のホストにマウントします。 5. インスタンスを開始します。 db2start 6. DB2 クラッシュ・リカバリを開始します。 db2inidb as snapshot この処理はオフライン・バックアップにも使用することができますが、 1 次システムに復元する場合、ログ・チェーンが一致しないために、こ のバックアップを ロールフォワードに使用することはできません。 * 分割ミラーをスタンドバイ・データベースとして使用します。 ミラーリングされた (スタンドバイ) データベースはログを通じて連続的に ロールフォワードし、1 次データベースで作成される新しいログも 1 次シス テムから連続的にフェッチされます。 分割ミラーをスタンバイ・データベー スとして使用するには、以下のステップにしたがってください。 1. 1 次システムでの入出力を中断します。 db2 set write suspend for database 2. ミラーを分割します。 オペレーティング・システム・レベル・コマンド を使用して、1 次データベースからミラーを分割します。 3. 1 次システムでの入出力を再開します。 db2 set write resume for database これで、1 次システムのデータベースは正常な状態に戻ります。 4. データベースの分割ミラーを別のホストにマウントします。 5. 中断書き込み状態を除去し、ミラーリングされたデータベースをロール フォワード保留状態にします。 db2inidb as standby 6. ログをコピーします。 ユーザー出口プログラムをセットアップして、1 次システムのアーカイブ・ロケーションで ログ・ファイルを検索し、こ のミラーリングされたデータベースで最新ログを使用できるようにしま す。 7. ミラーをログの終わりまでロールフォワードします。 db2 rollforward db to end of logs 8. 1 次データベースがダウンするまで、ステップ 6 から処理を繰り返しま す。 * 分割ミラーを使用して、1 次システムを復元します。 ミラーリングされたシステムをバックアップ・イメージとして使用し、1 次シ ステムを 回復する方法: 1. 上書きコピーします。 オペレーティング・システム・コマンドを使用し て、ミラーリングされたデータおよび ログを 1 次システムの上にコピ ーします。 2. インスタンスを開始します。 db2start 3. 復元されたミラーをロールフォワード保留状態にして、 ログの最後まで ミラーをロールフォワードします。 db2inidb as mirror * クラッシュ・リカバリを実行せず、バックアップを取ります。 クラッシュ・リカバリなしで分割ミラーのオフライン・バックアップを実行す るということは、 バックアップ・イメージを 1 次システムの上に復元するこ とができるということです。 これを行うには、以下のステップにしたがって ください。 1. 1 次システムでの入出力を中断します。 db2 set write suspend for database 2. ミラーを分割します。 オペレーティング・システム・レベル・コマンド を使用して、1 次データベースからミラーを分割します。 3. 1 次システムでの入出力を再開します。 db2 set write resume for database これで、1 次システムのデータベースは正常な状態に戻ります。 4. データベースの分割ミラーを別のホストにマウントします。 5. インスタンスを開始します。 db2start 6. ミラーリングされたデータベースをロールフォワード保留状態にしま す。 db2inidb as standby 7. データベース・バックアップ処理を呼び出します。 db2 backup database これで、暗黙的なデータベース接続が行われますが、DB2 クラッシュ・ リカバリは開始されません。 7.6.6 オンデマンド・ログ・アーカイブ DB2 では現在、回復可能データベースのアクティブ・ログをいつでも クローズ (ユ ーザー出口オプションが使用可能であれば、アーカイブ) できます。 ある時点まで のログ・ファイルの完全なセットを収集し、それらのログ・ファイルを 使用してス タンドバイ・データベースを更新することができます。 注: オンデマンド・ログ・アーカイブは、ログ・ファイルが すぐにアーカイブさ れることを保証しているわけではありません。 ログ・ファイルを切り捨てて アーカイブ要求を出しますが、ユーザー出口プログラムに 関連する遅延が発 生する場合もあります。 オンデマンド・ログ・アーカイブは、新しい DB2 ARCHIVE LOG コマンド、 または 新しい db2ArchiveLog API を呼び出すことによって開始できます。 7.6.7 ログ・ミラーリング 第 8 章「"データベース・リカバリ"」に、中断入出力関数の使用法に関するセクシ ョンを追加します。 DB2 は現在、データベース・レベルでのログ・ミラーリングをサポートしていま す。 ログ・ファイルのミラーリングは、以下の状況からデータベースを保護するた めに役立ちます。 * 意図しないアクティブ・ログの削除 * ハードウェア障害によるデータ破壊 アクティブ・ログの損傷 (ディスク破損の結果として) が考えられる場合、 新しい DB2 レジストリー変数 DB2_NEWLOGPATH2 を使用し、データベースの 2 次パスを指 定して アクティブ・ログのコピーを管理し、ログが保管されているボリュームをミ ラーリングすることを 考慮しなければなりません。 DB2_NEWLOGPATH2 レジストリー変数によって、データベースは、ログ・ファイルの 同一コピーを別のパスに書き込むことができます。 物理的に別のディスク (可能で あれば、別のディスク・コントローラー上のディスク) に 2 次ログ・パスを 設定 するようお勧めします。 これで、ディスク・コントローラーが障害の原因になるこ とはありません。 注: Windows NT および OS/2 では任意のパス名に装置をマウントできないため、 これらのプラットフォームで 2 次パスを別の装置に指定することはできませ ん。 DB2_NEWLOGPATH2 を使用可能 (1) または使用不可 (0) に することができます。 デフォルト値は 0 です。 この変数が 1 に設定されている場合、2 次パス名は文字 2 に 連結されている LOGPATH 変数の現行値になります。 たとえば、SMP 環境で LOGPATH が /u/dbuser/sqllogdir/logpath である場合、 2 次ログ・パスは /u/dbuser/sqllogdir/logpath2 になります。 MPP 環境で LOGPATH が /u/dbuser/sqllogdir/logpath である場合、 DB2 はノード標識をパスに追加して、 1 次ログ・パスとして /u/dbuser/sqllogdir/logpath/NODE0000 を使用します。 こ の場合、2 次ログ・パスは /u/dbuser/sqllogdir/logpath2/NODE0000 になります。 DB2_NEWLOGPATH2 が最初に使用可能になったとき、実際に使用できるようになるの は、 次のデータベースの始動で現行ログ・ファイルが完了した後です。 これは、 NEWLOGPATH の現在の使用方法と同様です。 1 次または 2 次ログ・パスのいずれかで書き込みエラーが発生した場合、データベ ースは 問題のあるパスを「不良」とマークし、db2diag.log ファイルにメッセージ を書き込み、 後続のログ・レコードを問題のない「良好」ログ・パスにのみ書き込 みます。 DB2 は、現行ログ・ファイルが完了するまで「不良」パスの使用を再び試 みません。 DB2 は、次のログ・ファイルを開かなければならない場合、そのパスが 有効であることを確認します。 有効であれば、パスの使用を開始します。 有効で なければ、次のログ・ファイルが初めてアクセスされるまで、そのパスの使用を再 び試みません。 ログ・パスの同期化は試みられませんが、DB2 は、発生したアクセ ス・エラーに関する 情報を保管し、ログ・ファイルのアーカイブ時に正しいパスを 使用できるようにします。 問題のない「良好」パスへの書き込み中に障害が発生し た場合、データベースは異常終了します。 7.6.8 Sun Solaris および HP における、プラットフォーム間のバックアップおよ びリストア・サポート Sun Solaris と HP において、プラットフォーム間のバックアップおよびリストア がサポートされています。 バックアップ・イメージをシステム間で転送するには、 バイナリー・モードで行う必要があります。 ターゲット・システムのデータベース は、オリジナル・データベースが作成されたシステムと同じ コード・ページ/領域 で作成されなければなりません。 7.6.9 DB2 データ・リンク・マネージャーに関する考慮事項/バックアップ・ユーテ ィリティーに関する考慮事項 このセクションの 2 番目の段落を以下の段落で置き換えます。 ファイルがリンクされている場合、データ・リンク・サーバーは、それらの ファイルが ADSM のようなアーカイブ・サーバーまたはディスクに非同期的に コピーされるようスケジュールします。バックアップ・ユーティリティーを 実行する場合、DB2 は、コピーするようにスケジュールされているすべての ファイルがコピーされていることを確認します。バックアップ処理の開始時に、 DB2 は DB2 構成ファイルで指定されたすべてのデータ・リンク・サーバーに 連絡します。データ・リンク・サーバーに 1 つ以上のリンク・ファイルが含まれ、 そのサーバーが稼動していない場合、またはバックアップ処理中に稼動が停止した 場合、バックアップには完全な DATALINK 情報は含まれません。 バックアップ処理自体は、正常に完了します。データ・リンク・サーバーが そのデータベースに対して有効であることをマークし直すには、未解決のすべての バックアップのバックアップ処理を正常に完了する必要があります。 データ・リンク・サーバーでの完了を待機している未解決のバックアップが、 num_db_backups の値の 2 倍に達しているときに (以下参照) バックアップが 開始された場合、バックアップ処理は失敗します。データ・リンク・サーバーを 再始動して、未解決のバックアップを完了しないと、追加のバックアップを 実行することはできません。 7.6.10 DB2 データ・リンク・マネージャーに関する考慮事項/リストアおよびロー ルフォワード・ ユーティリティーに関する考慮事項 以下の 2 つの文: データベースまたは表スペースを復元するときに WITHOUT DATALINK を 指定しないと... および データベースまたは表スペースを復元するときに WITHOUT DATALINK を 指定すると... で始まる段落を以下の段落で置き換えます。 データベースまたは表スペースを復元する場合、そのリストア操作を正常に 完了するには、以下の条件が満たされている必要があります。 o バックアップ・ファイルに記録されているデータ・リンク・サーバーが 稼動していない場合でも、リストア操作は正常に完了します。 見つからないデータ・リンク・サーバーに影響を受ける DATALINK 列情報を 持つ表は、リストア操作 (使用されていれば、ロールフォワード操作) の 完了後、データ・リンク調整保留状態になります。 このリストア処理が正常に完了しないと、データベースに対して使用可能な ものとしてデータ・リンク・サーバーを再びマークすることはできません。 o リストア処理中に、バックアップ・ファイルに記録されているデータ・リンク・ サーバーが稼動が停止した場合、リストア操作は失敗します。データ・リンク・ サーバーをダウンすると、リストア操作を再開できます (上の説明を参照)。 o いずれかのデータ・リンク・サーバーで、前のデータベース・リストア操作が 完了していない場合、後続のデータベースまたは表スペース・リストア操作は、 それらのデータ・リンク・サーバーが再始動され、未完了のリストア操作が 完了するまで、正常に完了することはありません。 o バックアップ・ファイルに記録された DATALINK 列に関する情報はすべて、 該当するデータ・リンク・サーバーの登録表に存在していなければ なりません。 DATALINK 列に関するすべての情報が登録表に記録されていない場合、 見つからない DATALINK 列情報を持つ表は、リストア操作 (使用されて いれば、ロールフォワード操作) の完了後、データ・リンク調整不能状態に なります。 登録表にバックアップが記録されていない場合、与えられたバックアップ・ ファイルが num_db_backups の値より前のもので、すでに「ガーベッジ・ コレクション」されていると考えられます。つまり、この以前の バックアップからのアーカイブ・ファイルは、すでに除去されており、 復元できません。DATALINK 列を持つ表はすべて、データ・リンク調整保留 状態になります。 登録表にバックアップが記録されていない場合、データ・リンク・サーバーが 稼動していないために、バックアップ処理が完了していないと考えられます。 DATALINK 列を持つ表はすべて、データ・リンク調整保留状態になります。 データ・リンク・サーバーが再始動されると、リストア処理の前にバック アップ処理が完了します。 ユーザーが表を使用することはできますが、DATALINK 列内の値はファイルを 正しく参照しない場合があります (たとえば、DATALINK 列の値と一致する ファイルが見つからない場合があります)。このような問題を回避するには、 "SET CONSTRAINTS for tablename TO DATALINK RECONCILE PENDING" ステートメントを出すことによって、表をチェック・ペンディング状態にすることができます。 リストア処理の後、データ・リンク調整不能状態の表がある場合、 「表を Datalink_Reconcile_Not_Possible 状態から解除」で説明されているいずれかの方 法で、 DATALINK 列データを修正することができます。 最初の段落の最後の注釈はそのまま適用されます。 このセクションの最後に以下を追加してください。 データベース・バックアップ・イメージ内の datalink.cfg ファイルには、 バックアップの時点の datalink.cfg だけが反映されているため、あまり 一般的ではないリカバリにも備えて datalink.cfg をアーカイブするよう強く お勧めします。すべてのリカバリに備えるには、最新の datalink.cfg ファイルが必要です。そのため、ADD DATALINKS MANAGER または DROP DATALINKS MANAGER コマンド呼び出しの後、常に datalink.cfg ファイルを バックアップしなければなりません。最新の datalink.cfg ファイルが ディスク上にない場合、この datalink.cfg ファイルを取り出すために 役立ちます。 最新の datalink.cfg ファイルがディスク上ない場合、(バックアップ・イメージ から復元された) 既存の datalink.cfg ファイルを、ロールフォワード操作の 実行前にアーカイブされた最新の datalink.cfg ファイルで置き換えます。 7.6.11 ロールフォワードなしで、オフライン・バックアップからデータベースを復 元 ロールフォワードを伴わないリストアは、データベース・レベルでのみ実行できま す。 表スペース・レベルでは実行できません。 ロールフォワードなしでデータベ ースを復元するには、回復不能データベース (循環ログを 使用するデータベース) を復元するか、 RESTORE DATABASE コマンドに WITHOUT ROLLING FORWARD パラメー ターを指定してください。 WITHOUT DATALINK オプションでリストア・ユーティリティーを使用する場合、 DATALINK 列を持つ表はすべてデータ・リンク調整保留 (DRP) 状態になり、リスト ア操作中に データ・リンク・サーバーによる調整は実行されません。 WITHOUT DATALINK オプションを使用せず、バックアップ・ファイルに記録された データ・リンク・サーバーがデータベースに定義されていない (DROP DATALINKS MANAGER コマンドで ドロップされている) 場合、ドロップされたデータ・リンク・ サーバーを 参照している DATALINK データを持つ表は、リストア・ユーティリティ ーによって データ・リンク調整保留状態になります。 WITHOUT DATALINK オプションを使用し、すべてのデータ・リンク・サーバーが 使 用可能で、DATALINK 列に関するすべての情報が登録表に完全に記録されている場 合、 バックアップ・ファイルに記録されている各データ・リンク・サーバーについ て以下の項目が発生します。 * データベース・リストア操作に使用されたバックアップ・イメージの後で リ ンクされたファイルはすべて、リンク解除されているものとして (リンクされ ているものとして バックアップ・イメージに記録されていないため) マーク されます。 * バックアップ・イメージの後にリンク解除され、バックアップ・イメージが取 られる前に リンクされていたファイルはすべて、リンクされているものとし て (リンクされているものとして バックアップ・イメージに記録されている ため) マークされます。 ファイルが別のデータベース内の別の表で続けてリ ンクされている場合、 復元された表はデータ・リンク調整保留状態になりま す。 注: データ・リンク・サーバーが 1 つも稼動していないときに、 データベース・ リストア操作に使用されたバックアップ・イメージが取られた場合、 このバ ックアップ内の DATALINK 情報が不完全なため、前述の処理は行われません。 また、ロールフォワードの有無にかかわらず、データベース・リストア後に、 データベース・リストア操作に使用されたバックアップ・イメージが取られた 場合も、 前述の処理は行われません。 いずれの場合も、DATALINK 列を持つ 表はすべてデータ・リンク調整保留状態になり、 リストア操作中にデータ・ リンク・サーバーによる調整は実行されません。 7.6.12 データベースと表スペースを復元、およびログの最後までロールフォワード データベースまたは表スペースを復元し、ログの最後までロールフォワード (つま り、すべての ログが提供されている) する場合、バックアップ・ファイル内に記録 されている データ・リンク・サーバーの少なくとも 1 つがリストア操作中に稼動 していない場合を除き、 調整検査は必要ありません。 ロールフォワード操作用に すべてのログが提供されているかどうかが確かでない場合、 または DATALINK 値を 調整する必要があるを考えられる場合、以下の処理を行ってください。 1. 関連する表に、次の SQL ステートメントを出します。 SET CONSTRAINTS FOR tablename TO DATALINK RECONCILE PENDING これで、表がデータ・リンク調整保留状態およびチェック・ペンディング状態 になります。 2. 表をチェック・ペンディング状態にしたくない場合、次の SQL ステートメン トを出してください。 SET CONSTRAINTS FOR tablename IMMEDIATE CHECKED これで、表のチェック・ペンディング状態が解除されますが、データ・リンク 調整保留状態は解除されません。 データ・リンク調整保留状態を解除するに は、調整ユーティリティーを使用してください。 バックアップ・ファイルに、データベースからドロップされた DB2 データ・リン ク・マネージャーを 参照している DATALINK データが含まれている (つまり、バッ クアップが取られたときに、 DB2 データ・リンク・マネージャーがデータベースに 登録されていた) 場合があります。 ドロップされた DB2 データ・リンク・マネー ジャーを参照している DATALINK データを持つ 表を少なくとも 1 つ含む、ロール フォワードされている表スペースそれぞれについて、 すべての表はロールフォワー ド・ユーティリティーによって DRP 状態になります。 7.6.13 DB2 データ・リンク・マネージャーとリカバリの相互作用 以下の表は、実行可能なリカバリのタイプ、リストアおよびロールフォワードの実 行中に 発生する DB2 データ・リンク・マネージャー処理、およびリカバリ完了後 に調整ユーティリティーを実行する必要性の有無を示したものです。 リカバリ リストア中の DB2 データ・リ ロールフォワード中の DB2 デ 調整 のタイプ ンク・マネージャー処理 ータ・リンク・マネージャー 処理 回復不能 データベース (logretain=NO) 完全バッ 高速調整を実行 N/A ファイル・リンクの問 クアップ 題が考えられる場合、 のデータ オプションで実行可能 ベース・ リスト ア、 デー タベー ス・リン ク・サー バーはす べて稼動 WITHOUT 表を N/A 必須 DATALINK Datalink_Reconcile_Pending オプショ 状態にする ンによる データベ ース・リ ストア 完全バッ ダウンしているデータ・リン なし ダウンしているデー クアップ ク・サーバーへのリンクを持 タ・リンク・サーバー のデータ たない 表スペース内の表での へのリンクを持つ 表 ベース・ み高速調整を実行。それ以外 スペース内の表で必須 リスト の表を ア、 少なDatalink_Reconcile_Pending くとも 1 状態にする つのデー タベー ス・リン ク・サー バーがダ ウン 不完全バ 高速調整は実行されない。 なし 必須 ックアッ DATALINK 列を持つ表すべてを プのデー Datalink_Reconcile_Pending タベー 状態にする ス・リス トア、 デ ータベー ス・リン ク・サー バーはす べて稼動 回復可能 データベース (logretain=YES) WITHOUT 高速調整を実行 N/A オプション ROLLING FORWARD オプショ ンによる 完全バッ クアップ の データ ベース・ リスト ア、デー タベー ス・リン ク・サー バーはす べて稼動 WITHOUT 表を N/A 必須 ROLLING Datalink_Reconcile_Pending FORWARD 状態にする および WITHOUT DATALINK オプショ ンによる 完全また は不完全 バックア ップのデ ータベー ス・リス トア、デ ータベー ス・リン ク・サー バーは稼 動または ダウン WITHOUT ダウンしているデータ・リン N/A ダウンしているデー ROLLING ク・サーバーへのリンクを持 タ・リンク・サーバー FORWARD たない 表スペース内の表での へのリンクを持つ 表 オプショ み高速調整を実行。それ以外 スペース内の表で必須 ンによる の表を 完全バッ Datalink_Reconcile_Pending クアップ 状態にする の データ ベース・ リスト ア、少な くとも 1 つのデー タベー ス・リン ク・サー バーがダ ウン WITHOUT 高速調整は実行されない。 N/A 必須 ROLLING DATALINK 列を持つ表すべてを FORWARD Datalink_Reconcile_Pending オプショ 状態にする ンによる 不完全バ ックアッ プの デー タベー ス・リス トア、デ ータベー ス・リン ク・サー バーは稼 動または ダウン 完全バッ アクションなし アクションなし オプオプション クアップ のデータ ベース・ リスト ア、ログ の 最後ま でロール フォワー ド、デー タベー ス・リン ク・サー バーはす べて稼動 完全バッ アクションなし アクションなし オプション クアップ のデータ ベース・ リスト ア、ログ の最後ま で ロール フォワー ド、ロー ルフォワ ードの処 理中に少 なくとも 1 つのデ ータ・リ ンク・サ ーバーが ダウン 完全また アクションなし DATALINK 列を持つ表すべてを DATALINK 列を持つ表 は不完全 Datalink_Reconcile_Pending すべてに必須 バックア 状態にする ップのデ ータベー ス・リス トア、ロ グの最後 まで ロー ルフォワ ード、リ ストア中 にいずれ かのデー タ・リン ク・サー バーがダ ウン 不完全バ アクションなし アクションなし オプション ックアッ プのデー タベー ス・リス トア、ロ グの最後 まで ロー ルフォワ ード、リ ストア中 にデー タ・リン ク・サー バーがす べて稼動 完全また アクションなし 不明なバックアップを持つデ 必須 は不完全 ータ・リンク・サーバーへの バックア リンクを持つ表スペース内の ップのデ 表すべてを ータベー Datalink_Reconcile_Pending ス・リス 状態にする トア、 ロ グの最後 までロー ルフォワ ード、デ ータ・リ ンク・サ ーバーは すべて稼 動、いず れかの デ ータ・リ ンク・サ ーバーで バックア ップ不明 完全バッ アクションなし アクションなし オプション クアップ の表スペ ース・リ ストア、 ログの最 後まで ロ ールフォ ワード、 データベ ース・リ ンク・サ ーバーは すべて稼 動 完全バッ アクションなし アクションなし オプション クアップ の表スペ ース・リ ストア、 ログの最 後まで ロ ールフォ ワード、 ロールフ ォワード の処理中 に少なく とも 1 つ のデー タ・リン ク・サー バーがダ ウン 完全また アクションなし ダウンしているデータ・リン ダウンしているデー は不完全 ク・サーバーへのリンクを持 タ・リンク・サーバー バックア つ 表スペース内の表すべてを へのリンクを持つ 表 ップの表 Datalink_Reconcile_Pending スペース内の表で必須 スペー 状態にする ス・リス トア、ロ グの最後 まで ロー ルフォワ ード、リ ストアの 処理中に いずれか のデー タ・リン ク・サー バーがダ ウン 不完全バ アクションなし アクションなし オプション ックアッ プの表ス ペース・ リスト ア、ログ の最後ま で ロール フォワー ド、デー タベー ス・リン ク・サー バーはす べて稼動 完全また アクションなし 表を 必須 は不完全 Datalink_Reconcile_Pending バックア 状態にする ップのデ ータベー ス・リス トア、指 定時刻ま で ロール フォワー ド、リス トア/ロー ルフォワ ードの処 理中にデ ータ・リ ンク・サ ーバーが 稼動また はダウン 完全また アクションなし 表を 必須 は不完全 Datalink_Reconcile_Pending バックア 状態にする ップの表 スペー ス・リス トア、指 定時刻ま で ロール フォワー ド、リス トア/ロー ルフォワ ードの処 理中にデ ータ・リ ンク・サ ーバーが 稼動また はダウン ロールフ 表を Datalink_Reconcile N/A オプション。 ただ ォワード _Not_Possible 状態にする し、 なしで、 Datalink_Reconcile 異なるデ _Not_Possible 状態の ータベー 表は手操作で修正する ス名、別 必要あり 名、 ホス ト名、ま たはイン スタンス にデータ ベース・ リストア (NOTE1) 異なるデ アクションなし 表を Datalink_Reconcile オプション。 ただ ータベー _Not_Possible 状態にする し、 ス名、別 Datalink_Reconcile 名、ホス _Not_Possible 状態の ト名、ま 表は手操作で修正する たはイン 必要あり スタンス に データ ベース・ リスト ア、ロー ルフォワ ード WITHOUT 表を アクションなし 必須 DATALINK Datalink_Reconcile_Pending オプショ 状態にする ンを指定 または指 定せず に、 ロー ルフォワ ードなし で、不要 なバック アップ (イメージ はデー タ・リン ク・サー バー上で ガーベッ ジ・コレ クション 済み) か らデータ ベース・ リストア (NOTE1) WITHOUT アクションなし 表を 必須 DATALINK Datalink_Reconcile_Pending オプショ 状態にする ンを指定 または指 定せず に、 不要 なバック アップ (イメージ はデー タ・リン ク・サー バー上で ガーベッ ジ・コレ クション 済み) か ら データ ベース・ リスト ア、ロー ルフォワ ード 不要なバ アクションなし 表を 必須 ックアッ Datalink_Reconcile_Pending プ (イメ 状態にする ージはデ ータ・リ ンク・サ ーバー上 で ガーベ ッジ・コ レクショ ン済み) から表ス ペース・ リスト ア、ロー ルフォワ ードする 注: 1. オフライン・バックアップおよび WITHOUT ROLLING FORWARD オプションによ る リストア (logretain がオン)、またはオフライン・バックアップによる リストア (logretain がオフ)。 2. 完全バックアップとは、必要なデータ・リンク・サーバーすべてが 稼動して いるときに取られたバックアップのことです。 不完全バックアップとは、稼 動していないデータ・リンク・サーバーが 少なくとも 1 つあるときに取られ たバックアップのことです。 3. データベース・リストア操作に使用されたバックアップ・イメージがデータベ ース・リストアの 後で取られたものである場合、ロールフォワードの有無に かかわらず、高速調整処理は実行されません。 この場合、DATALINK 列を持つ 表すべてが Datalink_Reconcile_Pending 状態になります。 7.6.14 調整を必要とする状態の検出 調整ユーティリティーを実行しなければならない状態: * データベース全体がリストアされ、指定時刻までロールフォワードされる場 合。 データベース全体が、コミットされたトランザクションにロールフォワ ードされるため、 (参照制約またはチェック制約のために) いずれの表もチェ ック・ペンディング状態になりません。 データベース内のデータはすべて、 貫性のある状態になります。 ただし、DATALINK 列は DB2 データ・リンク・ マネージャーのメタデータと 同期化されていない可能性があるため、調整が 必要になります。 この場合、DATALINK データを持つ表はデータ・リンク調整保留状態になりま す。 このような表それぞれに対して、調整ユーティリティーを呼び出さなけ ればなりません。 * DB2 データ・マネージャーを稼動している特定のデータ・リンク・サーバー が、 そのメタデータのトラックを失っている場合。 いくつかの原因が考えら れます。例: o データ・リンク・サーバーがコールド・スタートされた。 o データ・リンク・サーバー・メタデータがバックレベル状態に復元され た。 状況によっては、SQL UPDATE および DELETE の処理中など、データ・リン ク・サーバー内の メタデータに関する問題を DB2 が検出することがありま す。 このような場合、SQL ステートメントは失敗します。 SET CONSTRAINTS ステートメントで表を DRP 状態にしてから、その表で調整ユーティリティー を実行します。 * ファイル・システムが使用不能 (たとえばディスク破損が原因) で、現在の状 態に復元できない場合。 このような場合、ファイルが欠落している可能性が あります。 * DB2 データ・リンク・マネージャーがデータベースからドロップされていて も、 その DB2 データ・リンク・マネージャーを参照している DATALINK FILE LINK CONTROL 値がある場合。 このような表に対して、調整ユーティリティー を実行する必要があります。 ------------------------------------------------------------------------ 7.7 付録 C. データベース・リカバリの終了 「"保存およびリトリーブ条件"」セクションで、 以下の段落はもはや事実ではない ため、一覧から除くべきものです: リモート・クライアントが DB2 サーバーとの接続を失うと、ユーザー出口が 割り込まれる場合があります。つまり、ユーザー出口に伴うログの保存ハンドリングを する一方で、他の SNA 接続クライアントのいずれかとの接続が切れたり、 サーバーに送られる信号 (SIGUSR1) が原因で電源が切れる場合があります。 サーバーは障害が原因のユーザー出口に対して信号を送ります。 ユーザー出口プログラムは、割り込みの検査のために変更し、その後 継続することもできます。 エラー処理セクションには、注 3 に以下の情報を加えた内容で 置き換えるべき注 の一覧があります。 * ユーザー出口プログラム要求は 5 分間中断されます。 この時間注、戻りコー ドに起因するログ・ファイル要求も含め、 すべての要求は無視されます。 プロセッシング要求での 5 分間のサスペンションの後、次の要求が処理され ます。 この要求の処理でエラーが発生しなければ、新規の ユーザー出口プロ グラム要求の処理が続き、DB2 は、すでに保存に失敗したり、 中断していた ログ・ファイルに保存要求を再発行します。 再試行中に 8 より大きい戻りコ ードが生成された場合、 要求はさらに 5 分間中断されます。 この 5 分間の サスペンションは、問題が訂正されるかデータベースが停止し、 再始動する まで継続します。 1 度すべてのアプリケーションがデータベースから切断され、データベースが 再オープンすると、 DB2 は、直前にデータベースを使用した際、正常に保存 されなかったあらゆるログ・ファイルの保存要求を 発行します。 ユーザー出口プログラムがログ・ファイルの保存に失敗すると、お使いのディ スクがログ・ファイルでいっぱいになり、 これらのログ・ファイルをフォー マットするという余分な作業のために、パフォーマンスが落ちてしまう場合が あります。 1 度ディスクがいっぱいになると、そのデータベース・マネージ ャーは、 それ以後、データベース変更のアプリケーション要求を受信しませ ん。 ユーザー出口プログラムがログ・ファイルを検索するために呼ばれると、ロー ルフォワード回復は ROLLFORWARD DATABASE ユーティリティーの中で停止が指 定されていない限り、停止はせずに、中断します。 停止が指定されていない 場合は、問題を訂正し、回復を再開することができます。 ------------------------------------------------------------------------ 7.8 付録 D. 複数のデータベース区分サーバーへのコマンド実行 「"実行するコマンドの指定"」のセクションの下に、以下を追加してください。 バックグラウンドで stdin から読み取るための論理が含まれている Korn シェルの シェル・スクリプトを実行するときには、プロセスが端末上で停止されずに読み取 ることができる ソースへ stdin を明示的にリダイレクトする必要があります (SIGTTIN メッセージ)。stdin を リダイレクトするには、次の形式でスクリプトを 実行します。 shell_script 8.5 AND C <= 10 に関する記述があります。 線形補間が利用している r_2 値の 見積もりは、以下のように 変更してある必要があります: 10 - 8.5 r_2 *= ---------- x (number of rows with value > 8.5 and <= 100.0) 100 - 8.5 10 - 8.5 r_2 *= ---------- x (10 - 7) 100 - 8.5 1.5 r_2 *= ---- x (3) 91.5 r_2 *= 0 また、この新規の例に続く段落は読むためには、以下のように変更してある必要が あります。 最終見積もりは r_1 + r_2 *= 7 で、 エラーは -12.5% のみです。 8.3.2 カタログ統計の更新規則 「"列統計の更新規則"」というセクション内で、 最初のリスト項目にある最後の黒 丸付きリスト項目を次の内容に置き換えます。 HIGH2KEY は、対応する列に異なる値が 4 つ以上含まれるときは必ず LOW2KEY より も 大きい値にする必要があります。列に含まれる値のうち異なる値が 3 つ以下の 場合、 HIGH2KEY は LOW2KEY と同じにすることができます。 8.3.3 サブエレメント統計 フィックスパック 1 では、サブエレメント統計を収集して使用するため、オプショ ンが提供されます。 ブランクで区切られた一連のサブフィールドまたはサブエレメ ントの フォームに構造がある場合、データ内容に関する統計が列にあります。 たとえば、データベースに、行ごとに文書の記述がある表 DOCUMENTS が含まれ、 DOCUMENTS には KEYWORDS という列があり、この列には、テキスト検索用に 文書に 関連するキーワードのリストが 含まれているものとします。 KEYWORDS の値として は次のものがある可能性があります。 'database simulation analytical business intelligence' 'simulation model fruitfly reproduction temperature' 'forestry spruce soil erosion rainfall' 'forest temperature soil precipitation fire' この例では、各列の値は 5 個のサブエレメントから構成され、 それぞれのエレメ ントにブランクで区切られたワード (キーワード) が あります。 For queries that specify LIKE predicates on such columns using the % match_all character: SELECT .... FROM DOCUMENTS WHERE KEYWORDS LIKE '%simulation%' 次の用語のような列のサブエレメント構造に 関して、最適化プログラムが基本統計 を認識することが有効な場合がよくあります。 SUB_COUNT サブエレメントの平均数。 SUB_DELIM_LENGTH サブエレメントを区切っている区切り文字の平均長。 区切り文字は、ここで は 1 つ以上の 連続するブランク文字です。 KEYWORDS 列の例では、SUB_COUNT は 5 で、SUB_DELIM_LENGTH は 1 と なります。 これは、区切り文字が 1 個のブランク文字であるためです。 フィックスパック 1 では、システム管理者は、 DB2_LIKE_VARCHAR レジストリー変 数の拡張により、 この統計の収集と使用の制御を行います。 このレジストリー変 数は、次の書式の述部を DB2 UDB 最適化プログラム が処理する方法に影響しま す。 COLUMN LIKE '%xxxxxx' xxxxxx には任意のストリングが入ります。つまり、この場合は、LIKE 述部の検索 値は % 文字で始まります。 (% 文字で終了しないこともあります。) 下記の "wildcard LIKE predicates" として述べられます。 すべての述部に対して、最適 化プログラムが 述部に一致する行の数を見積もる必要があります。 ワイルドカー ド LIKE 述部では、最適化プログラムは 一致する COLUMN に連結する一連のエレメ ントの構造があると推定し、 前後の % 文字を含まないストリングの長さに 基づい たエレメントの長さを見積もり ます。 新規構文は次の通りです。 db2set DB2_LIKE_VARCHAR=[Y|N|S|num1][,Y|N|num2] ここで、 - 最初の用語 (コンマの前まで) は、次の意味を持ちますが、 正の値のサブエレメント統計のない列に限ります。 S アルゴリズムを DB2 バージョン 2 で使用されていたように使用する。 N 固定長サブエレメント・アルゴリズムを使用する。 Y (デフォルト) アルゴリズム・パラメーター用のデフォルト値を指定して 可変長サブエレメント・アルゴリズムを使用する。 num1 可変長サブエレメント・アルゴリズムを使用し、 num1 をアルゴリズム・パラメーターとして使用する。 - 2 番目の用語 (コンマの次) は、次の意味を持ちます。 N (デフォルト) サブエレメント統計を収集あるいは使用しない。 Y サブエレメント統計を収集する。 正の値のサブエレメント統計を持つ列の場合に、 アルゴリズム・パラメーターのデフォルト値と 一緒に、この統計を使用する 可変長サブエレメント・アルゴリズムを使用する。 num2 サブエレメント統計を収集する。 正の値のサブエレメント統計を持つ列の場合に、 アルゴリズム・パラメーターとしての num2 と 一緒に、この統計を使用する 可変長サブエレメント・アルゴリズムを使用する。 DB2_LIKE_VARCHAR が、最初の用語にのみ含まれていると、 サブエレメント統計は 収集されず、前に収集されていた 統計は無視されます。 指定された値は、以前と 同じように、ワイルドカード LIKE 述部 の選択肢の計算方法に影響を与えます。次 の例で説明します。 * 値が S の場合、最適化プログラムは DB2 バージョン 2 で使用された アルゴ リズムと同じアルゴリズムを使用します。これはサブエレメント・モデルを想 定しません。 * 値が N の場合、最適化プログラムは、サブエレメント・モデルを想定するア ルゴリズムを 使用し、COLUMN が可変長として定義されていても、固定長 で あると推定します。 * 値が Y (デフォルト) または浮動小数点定数の場合、最適化プログラムは、サ ブエレメント・モデルを想定するアルゴリズムを 使用し、COLUMN が可変長と して定義されている場合、可変長 を認識します。 データからよりも、照会自 体からのサブエレメントの推測も行います。 このアルゴリズムは、エレメン トが、% 文字で囲まれたストリングより どれくらい長いかを指定するパラメ ーター (アルゴリズム・パラメーター) を含みます。 * 値が Y の場合、最適化プログラムは アルゴリズム・パラメーター用の 1.9 のデフォルト値を使用します。 * 値が浮動小数点定数の場合、最適化プログラムは アルゴリズム・パラメータ ー用に指定された値を使用します。 この定数は 0 から 6.2 の範囲にあるよ うにしてください。 DB2_LIKE_VARCHAR の値に 2 つの用語が含まれ、2 番目が Y または 浮動小数点定 数であると、CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC の 1 バイト文字セッ ト・ ストリング列にあるサブエレメント統計は、RUNSTATS 操作中に収集され、ワ イルドカード LIKE 述部を含む照会のコンパイル中に 使用されます。 最適化プロ グラムがサブエレメント・モデルを想定するアルゴリズムを使用して SUB_COUNT と SUB_DELIM_LENGTH 統計と、アルゴリズム・パラメーターも 使用して述部長さお選 択肢を計算します。 アルゴリズム・パラメーターは、次の例のように、推測される アルゴリズムが 指定されるのと同じように指定されます。 * 値が Y の場合、最適化プログラムは アルゴリズム・パラメーター用の 1.9 のデフォルト値を使用します。 * 値が浮動小数点定数の場合、最適化プログラムは アルゴリズム・パラメータ ー用に指定された値を使用します。 この定数は 0 から 6.2 の範囲にあるよ うにしてください。 最適化プログラムが、サブエレメント統計が照会に含まれる 列に収集されていない ことをコンパイル中に検出した場合、 最適化プログラムは「推論上の」サブエレメ ント・アルゴリズムを使用します。 つまり、DB2_LIKE_VARCHAR の最初の用語のみ が指定されている時に使用されるアルゴリズムです。 こうして、サブエレメント統 計が最適化プログラムで使用されるには、 DB2_LIKE_VARCHAR の 2 番目の用語が RUNSTATS およびコンパイルの両方で設定されている必要があります。 サブエレメント統計の値は、 SYSIBM.SYSCOLUMNS を照会して表示されます。 例: select substr(NAME,1,16), SUB_COUNT, SUB_DELIM_LENGTH from sysibm.syscolumns where tbname = 'DOCUMENTS' SUB_COUNT と SUB_DELIM_LENGTH 列が SYSSTAT.COLUMNS 統計表示にはないため、更 新できません。 注: このオプションが使用されると、RUNSTATS には時間がかかる可能性がありま す。 たとえば、DETAILED および DISTRIBUTION オプションを使用していない と、RUNSTATS は 5 文字の列のある表では 15 から 40% 長く時間がかかる可 能性があります。 DETAILED または DISTRIBUTION オプションを指定している と、オーバーヘッドの絶対量が 同じでも、パーセントのオーバーヘッドは少 なくなります。 このオプションの使用を考える場合、 照会パフォーマンスの 改善に対して、このオーバーヘッドを評価する必要があります。 ------------------------------------------------------------------------ 8.4 第 6 章 SQL コンパイラーの知識 以下のセクションを変更する必要があります: 8.4.1 複製要約表 以下の情報はこのセクションにすでにある情報と置き換えるか 追加されます: 複製要約表は結合の並びの中で補助機構として使用することができます。 たとえ ば、ノードが 20 を超える大規模なファクト表スプレッドがあるスタースキーマを 所有していた場合、これらの表が連結されていると、ファクト表間の結合と ディメ ンション表が最も影響を受けます。 同一のノード・グループ内にすべての表を配置しようとすると、連結された結合の 場合、多くても、正しく分割された一次元の表になります。 すべての他のディメン ション表は連結された結合の中では使用することができません。 それは、ファクト 表上の結合列がファクト表の区分化キーと対応している ためです。 たとえば、以下のようにコールされた表を所有することができます。 C1 で区分に 分割された FACT (C1, C2, C3, ...) 表、C1 で区分に分割された DIM1 (C1, dim1a, dim1b, ...) 表、C2 で区分に分割された DIM2 (C2, dim2a, dim2b, ...) 表、など。 この例から、述部の DIM1.C1 = FACT.C1 が連結できるので、FACT と DIM1 間の結 合が 完全であることがご覧いただけます。 これら表の両方は C1 列上で区分に分 割されています。 述部 WHERE DIM2.C2 = FACT.C2 による DIM2 間の結合は連結できません。 これは FACT が C1 列上で分割されており、C2 列上ではないからです。 このケースで、ファクト表のノード・グループ内で DIM2 を複製することは 適して います。 この方法でそれぞれの区分をローカルで結合できるようになります。 注: ここで述べられている、複製済み要約表は、 データベース内レプリケーショ ンと関係しています。 データベース間レプリケーションはサブスクリプショ ン、制御表、異なったデータベース、 および異なったオペレーティング・シ ステムに配置されたデータと関連しています。 データベース間レプリケーシ ョンにご興味をお持ちの場合は、 詳しくは DB2 レプリケーションの手引きお よび解説書 を参照してください。 複製要約表を作成する際に、ソース表は、シングル・ノード・グループか マルチ・ ノード・グループが可能です。 ほとんどのケースで、表は小さく、シングル・ノー ド・グループ内に配置することができます。 以下のような方法で複製するデータに 対して制限がかけられます。表から列まで サブセットのみ指定する方法、述部で使 用された番号を通して行番号に制限をかける 方法、複製要約表を作成する際に、2 つの方法を利用する 方法です。 注: データ・キャプチャー・オプションは複製要約表の機能を 必要としません。 複製要約表はマルチ・ノード・グループでも生成することができます。 ノード・グ ループは、ユーザーの大規模な表のノード・グループと 同じです。 この場合、ソ ース表のコピーはノード・グループのすべての区分に作成 されます。 大規模なフ ァクト表とディメンション表間の結合は、全区分に対し、ソース表を ブロードキャ ストするよりも、この環境内で、ローカルで行うことのできる よい機会になりま す。 複製された表の索引は、自動的に作成されません。 索引が作成されるとソース表で 確認されているものとは異なる場合があります。 注: 複製された表では、固有索引の作成 (または制約の作成) をすることは でき ません。 これはソース表上で、現在時が異なるなどの制約違反を防ぐためで す。 これらの制約はソース表上で同じ制約があっても許可され ません。 REFRESH ステートメントを使用した後は、他の表と同様に複製表で RUNSTATS を実 行する必要があります。 複製表は照会で直接参照することができます。 ただし、特殊な区分で表データを参 照するために複製表と一緒に 述部 NODENUMBER() を使用することはできません。 参照するために複製要約表が使用されている場合 (ソース表を参照した照会がある 場合) は、EXPLAIN 機能を使用することができます。 始めに、EXPLAIN 表が存在す ることを確認します。 それから、実行しようとしている SELECT ステートメントの 説明計画を 立てます。 最後に、EXPLAIN 出力をフォーマットするため db2exfmt ユーティリティーを使用します。 最適化プログラムによって選択されたアクセス・プランは、結合する必要がある、 などの 情報に依存する複製要約表を使用する場合としない場合があります。 最適 化プログラムが、他の区分に対してオリジナル・ソース表をブロードキャストする ほうが より安価であると決定した場合、複製要約表は使用されないことも ありま す。 8.4.2 データ・アクセス概念および最適化 「"索引スキャン概念"」の下の「"重複索引アクセス"」セクション は変更されまし た。 そのセクションの終わりの注の前に、次の情報を追加します: 重複索引走査時の、ダイナミック・ビットマップのパフォーマンスを 認識するに は、ソート・ヒープ・サイズ (sortheap) データベース構成パラメーターと、 ソー ト・ヒープのしきい値 (sheapthres) データベース・マネージャー構成パラメータ ーとの値を 変更する必要のある場合があります。 動的ビットマップがアクセス・プランの中で使用されている場合は、 追加のソー ト・ヒープ・スペースが必要になります。 sheapthres が比較的、sortheap に近い (つまり、並列問い合わせの割合が 2、3 回の係数よりも少ない) 場合、 重複索引 アクセスに伴う動的ビットマップは、最適化プログラムが 想定した値よりずっと少 ないメモリーで作動しなくてはなりません。 これを解決するには、sheapthres の値を sortheap と比較して増加させます。 「"述部用語"」の下の「"スター型結合の検索ストラテジー"」のセクションは 変更 されました。 そのセクションの終わりに、次の情報を追加します: スター型結合技法の一部によって、作成、使用された動的ビットマップは ソート・ ヒープ・メモリーを使用します。 ソート・ヒープ・サイズ (sortheap) データベー ス構成パラメーターについて 詳しくは、管理の手引き: パフォーマンス マニュア ルの第 13 章、「DB2 の構成」を ご覧ください。 ------------------------------------------------------------------------ 8.5 第 8 章 操作パフォーマンス 8.5.1 データベース・バッファー・プールの管理 「"データベース・バッファー・プールの管理"」というセクション内で、 「"バッ ファー・プールを作成するとき、ページ・サイズはデフォルトで 4 KB です。"」で 始まる段落の後に以下の情報を追加します。 Windows 2000 を使用する場合、DB2 とオペレーティング・システムのサイズよりも 小さいサイズの範囲で、64 GB までのバッファー・プール・サイズがサポートされ ます。 (これは、DB2 がシステム上の基本製品であることを想定しています。) こ のサポートは、Microsoft Address Windowing Extensions (AWE) を通じて得ること ができます。 AWE はバッファー・プールのサイズに関係なく使用することができますが、 より大 きなバッファー・プールで AWE を使用しなければならない場合には 別の Windows 製品をお勧めします。 Windows 2000 Advanced Server は 8 GB までのメモリーを サポートします。 Windows 2000 Data Center Server は 64 GB までのメモリーを サポートします。 DB2 および Windows 2000 は、AWE バッファー・プールをサポートするように 正し く構成されている必要があります。 AWE を利用するバッファー・プールはデータベ ースに存在していなければなりません。 3 GB のユーザー・スペースを割り振るには、/3GB Windows 2000 ブート・オプショ ンを 使用します。 これにより、より大きなサイズの AWE ウィンドウを使用できま す。 AWE メモリー・インターフェース経由で 4 GB を超えるメモリーにアクセスで きる ようにするには、/PAE Windows 2000 ブート・オプションを使用します。 正 しいブート・オプションが選択されていることを確認するには、 「システム」を選 んでから「"起動/回復"」を選択してださい。 ドロップダウン・リストから、使用 可能なブート・オプションを 確認することができます。 使用したいブート・オプ ション (/3GB または /PAE) が選択されていれば、 AWE サポート・セットアップの 次の作業に進むことができます。 使用したいオプションが選択項目にない場合、シ ステム・ドライブの boot.ini ファイルに そのオプションを追加してください。 boot.ini ファイルには、オペレーティング・システムの開始時に実行するアクショ ンの リストが含まれています。 既存パラメーターのリストの最後に /3GB か /PAE、または その両方 (ブランクで区切る) を追加してください。 この変更ファ イルを保管しておくと、前述のように正しいブート・オプションを確認および 選択 することができます。 また、Windows 2000 では、DB2 をインストールしたユーザーに「"メモリ内のペー ジのロック"」権利を 関連付けるように変更する必要があります。 「"メモリ内の ページのロック"」権利を設定するには、 DB2 をインストールしたユーザーとして Windows 2000 にログオンし、 Windows 2000 の「スタート」メニューにある「"管 理ツール"」フォルダーを選択して、 「"ローカル セキュリティ ポリシー"」プロ グラムを選択します。 「ローカル ポリシー」で、「ユーザー権利の割り当て」を 選んで、 「"メモリ内のページのロック"」権利を選択してください。 DB2 は DB2_AWE レジストリー変数の設定を必要とします。 このレジストリー変数 を正しく設定するには、AWE のサポートを許可したい バッファー・プールのバッフ ァー・プール ID を知っておく必要があります。 また、割り振る物理ページとアド レス・ウィンドウ・ページの数も 認識していなければなりません。 割り振る物理 ページの数は、使用可能な物理ページの合計よりも小さい値にします。 実際に選択 する数は作業環境によって異なります。 たとえば、DB2 とデータベース・アプリケ ーションだけがシステムで使用される環境の場合、 DB2_AWE 変数で使用する値とし て、物理ページの合計サイズよりも小さい、 0.5 GB から 1 GB までの範囲から選 択することができます。 その他の非データベース・アプリケーションがシステムを 使用している環境の場合、 より多くの物理ページを他のアプリケーションに対して 許可するために 合計から減算する値を増やす必要があります。 DB2_AWE レジスト リー変数で使用される数は、AWE のサポートに使用され、 また DB2 によって使用 される物理ページの数です。 アドレス・ウィンドウ・ページの上限は、/3GB Windows 2000 ブート・オプションが 有効になっているときは 1.5 GB または 2.5 GB です。 DB2 レジストリー変数 DB2_AWE の設定についての詳細は、 このセクションの「"付 録 A DB2 レジストリーと環境変数"」の 新規および変更レジストリー変数の表を参 照してください。 8.5.2 複数のデータベース・バッファー・プールの管理 「"複数のデータベース・バッファー・プールの管理"」というセクションで、 「" データベース設計を行っているときに、ページ・サイズが 8 KB の表が最善である と 判断する場合があります。"」で始まる段落の後に次の段落を追加します。 Windows 2000 を使用している場合、カタログ・ファイルと構成ファイルの バッフ ァー・プール・サイズ設定をオーバーライドするために、 DB2_AWE レジストリー変 数を使用することができます。 このレジストリー変数を使用すると、約 64 GB ま でのバッファー・プール・サイズが 許可されます。 同じセクション内で、注釈の直前の段落を次の内容に置き換えます。 データベース・マネージャーを最小サイズの値で開始する理由は、 データベースに 接続できるようにするためです。 これで、バッファー・プール・サイズを再編成す るか、他の重要なタスクを実行して、 正しいバッファー・プール・サイズでデータ ベースを再始動できます。 このような状態でデータベースを長時間操作しないでく ださい。 「"カタログとユーザー表の再編成"」というセクション内の 「"REORG ユーティリ ティーを使用すると、一時表スペースを指定することができます..."」で 始まる段 落の最後の文は、次の内容に置き換えることができます。 複数の表の再編成に同じ表スペースを使用すると、処理は高速化されますが、 ロギ ングの回数が増え、再編成する表のための十分なスペースが必要となります。 一時 表スペースを指定する場合は、一般に、SMS 一時表スペースを指定することをお勧 めします。 このタイプの表スペースでしか REORG を実行できないため、 DMS 一時 表スペースはお勧めしません。 「"メモリーの拡張"」というセクション内で、 このセクションの 3 番目の段落の 後に次の段落を追加します。 DB2_AWE レジストリー変数を使用して Windows 2000 Address Windowing Extensions (AWE) の バッファー・プールを割り振るときは、拡張記憶域キャッシ ュは使用できません。 ------------------------------------------------------------------------ 8.6 第 9 章 管理プログラムの使用 「"管理プログラム構成ファイルの作成"」というセクション内で、 スケジュール・ アクションの説明に続く最初の段落の最初の文を次の内容に置き換えます。 複数の規則がアプリケーションに適用される場合、そのすべての規則が適用されま す。 設定されている規則と制限に応じて、最初に見つかった規則制限に関連付けら れたアクションが 最初に適用されるアクションとなります。 ------------------------------------------------------------------------ 8.7 第 13 章 DB2 の構成 以下のパラメーターの変更は必須です: 8.7.1 ソート・ヒープ・サイズ (sortheap) 「"推奨"」セクションは変更されました。 この情報はすぐお読みください: ソート・ヒープの作動中、次のような判断が必要になります: * 検索処理でソート・ヒープの使用を最小限にすることができます。 * ハッシュ結合バッファーおよび動的ビットマップ (索引 ANDing およびスター 型結合に使用) が ソート・ヒープを使用します。 これらの技法が使用される 場合、このパラメーターのサイズを増やしておきます。 * 頻繁に大量データのソートの要求がある場合はこのパラメーターのサイズを増 やしておきます。 * ... (その項目が変更しなかった残りの部分) 8.7.2 ヒープしきい値のソート (sheapthres) このパラメーターの記述で最後から 2 番目の段落が変更されました。 この段落は ここでお読みください: ソート、動的ビットマップ (索引 ANDing およびスター型結合に使用)、 および、 メモリーに表のある操作などを含むソート・ヒープを使用する 操作の例。 次の情報がこのパラメーターの記述に追加されます。 シングル・ノードからマルチ・ノード環境に移行した際、このパラメーターの値を 増加させる 理由はありません。 一度、シングル・ノード (DB2 EE で) 環境のデー タベースとデータベース・マネージャー構成パラメーターを 調整すると、多くのケ ースでは、調整した値は、複数ノード (DB2 EE で) 環境でも 問題なく作動しま す。 ヒープしきい値パラメーターのソートはデータベース・マネージャー構成パラメー ターと同様に、 全 DB2 インスタンスを対象として適用します。 このパラメーター を異なったノードや区分で、異なった値に設定するには 複数の DB2 インスタンス を作成します。 これにより異なったノード・グループを超え、異なった DB2 デー タベースを管理する必要が出てきます。 そのような調整は区分に分割されたデータ ベース環境の多くの利点という目的に 反します。 8.7.3 エスカレーション前のロック・リストの最大パーセント (maxlocks) 以下の変更が、「エスカレーション前のロック・リストの最大パーセント (maxlocks)」 データベース構成パラメーターの「推奨」セクションに適用されま す。 推奨: maxlocks を設定して、 平均の 2 倍のロック数をアプリケーションに保持さ せるために、次の公式を 使用することができます。 maxlocks = 2 * 100 / maxappls 2 は平均の 2 倍を表し、100 は許される 最大パーセント値を表しています。並列 で実行されるアプリケーションが少ない場合は、 上記の公式の代わりに次の公式を 使用できます。 maxlocks = 2 * 100 / (並列で 実行されるアプリケーションの平均数) maxlocks の設定時の考慮事項の 1 つに、これをロック・リストの サイズとともに 使用するというポイントがあります (locklist )。 ロック自動調整が行われる前に アプリケーションが保持するロック数の実際の 限界は次のようになります。 maxlocks * locklist * 4096 / (100 * 36) 4096 はページ内のバイト数、100 は maxlocks に 許された最大パーセント値、36 はロックあたりのバイト数です。 アプリケーションの 1 つが 1000 ロックを必要 としていることが分かっていて、 ロック自動調整を行いたい場合は、結果が 1000 を超えるように、 maxlocks と locklist の値を 選択してください。(maxlocks に 10、 locklist に 100 を使用すると、この公式の結果は 必要とされる 1000 ロッ クを超えます。) maxlocks の値が小さすぎる場合、他の並列アプリケーションの ためのロック・ス ペースがまだ十分にあるときはロック自動調整が行われます。 maxlocks の値が大 きすぎる場合、少数のアプリケーションが ロック・スペースの大部分を占有し、他 のアプリケーションはロック自動調整を行う必要が あります。この場合、ロック自 動調整が必要であるために、並列性が低くなります。 この構成パラメーターを追跡および調整するための支援として、データベース・シ ステム・モニター を 使用することができます。 8.7.4 DB2 構成/データ・リンク・マネージャー/データ・リンク・アクセス・トー クン期限切れの 間隔 (dl_expint) 資料の記載とは逆で、dl_expint が "-1" に設定されている場合、アクセス制御ト ークンは 有効期限が切れます。これを回避する方法は、dl_expint をその最大値 31536000 (秒) に 設定することです。これは 1 年の有効期限に相当し、すべての アプリケーションに 適合するはずです。 8.7.5 MIN_DEC_DIV_3 データベース構成パラメーター MIN_DEC_DIV_3 データベース構成パラメーターが、SQL での 10 進数除算の位取り の計算に対する 変更を使用可能にする手早い方法として追加されました。 MIN_DEC_DIV_3 は YES または NO に設定できます。 MIN_DEC_DIV_3 のデフォルト 値は NO です。 MIN_DEC_DIV_3 データベース構成パラメーターは、除算を含む 10 進算術演算の位 取りを 変更します。値が NO の場合は、位取りは 31-p+s-s' として計算されま す。詳しくは、 「SQL 解説書」の第 3 章、「SQL での 10 進数演算」を 参照して ください。YES に設定した場合、位取りは MAX(3, 31-p+s-s') として計算されま す。 これにより、10 進数の除算の結果は常に、少なくとも 3 の位取りを持ちま す。 精度は常に 31 です。 このデータベース構成パラメーターを変更すると、既存のデータベースについて ア プリケーションが変更される可能性があります。これは、10 進数除算の結果の位取 りが、 このデータベース構成パラメーターの変更によって影響を受けたときに起き ます。 下のリストは、アプリケーションに影響する可能性のあるいくつかのシナリ オを 示したものです。これらのシナリオは、既存のデータベースを持つデータベー ス・ サーバーで MIN_DEC_DIV_3 を変更する前に考慮しておくべきです。 * 視点の列の 1 つの結果の位取りが変更された場合、ある設定で環境で定義さ れた 視点は、データベース構成パラメーターが変更された後で参照される と、 SQLCODE -344 でエラーになります。メッセージ SQL0344N は再帰的共通 表式について 述べていますが、オブジェクト名 (最初のトークン) が視点の 場合は、このエラーを 避けるために視点をドロップして再作成する必要があ ります。 * 静的パッケージは、パッケージが暗黙的または明示的に再バインドされるま で、 振る舞いを変えません。たとえば、値を NO から YES に変更した後、再 バインドが 行われるまで、追加の位取りは組み込まれません。変更された静 的パッケージはどれも、 再バインドを強制するために使用できます。 * 10 進数に関するチェック制約は、以前に受け入れられた値を制限する可能性 があります。 このような行は制約違反になりますが、チェック制約行が含ま れる列のいずれかが更新されるか、 IMMEDIATE CHECKED オプション指定の SET INTEGRITY コマンドが 処理されるまで検出されません。このような制約 の検査を強制するには、 ALTER TABLE コマンドを実行してチェック制約を削 除し、 次に ALTER TABLE コマンドを実行して再び 制約を追加します。 注: DB2 バージョン 7 にはさらに以下の制限があります。 1. コマンド GET DB CFG FOR DBNAME は MIN_DEC_DIV_3 設定を 表示しませ ん。現在の設定を判別する最も良い方法は、10 進数の除算結果の副次作 用を モニターすることです。たとえば、次のステートメントを考えてみ てください: VALUES (DEC(1,31,0)/DEC(1,31,5)) このステートメントが sqlcode SQL0419N を 返す場合、データベースは MIN_DEC_DIV_3 サポートを持っていないか、または OFF に設定 されて います。ステートメントが 1.000 を返す場合、MIN_DEC_DIV_3 は ON に 設定されています。 2. MIN_DEC_DIV_3 は、次のコマンドを実行したときは構成キーワードのリ ストに 示されません: ? UPDATE DB CFG 8.7.6 アプリケーション制御ヒープ・サイズ (app_ctl_heap_sz) このパラメーターのテキストは以下のように解釈してください。 並列処理内を使用可能 (intra_parallel=ON) にした区分データベースおよび 非区 分データベースの場合、これは、アプリケーション制御ヒープに割り振られた 共有 メモリー域のサイズです。 並列処理内を使用不可 (intra_parallel=OFF) にした非 区分データベースの場合、 これは、ヒープに割り振られる最大専用メモリーです。 1 つの区分に 1 つの接続が存在し、 1 つの接続に 1 つのアプリケーション制御ヒ ープが存在します。 アプリケーション制御ヒープは、主に、同じ要求のために機能する エージェント間 で情報を共有するために必要となり、また、 区分データベース環境の場合には、 SQL ステートメントを表す実行可能なセクションを 保管するために必要となりま す。 並列処理が 1 以下の照会を実行しているとき、非区分データベースに対する このヒープの使用量は最小となります。 このヒープは、宣言された一時表の記述子情報を保管するためにも使用されます。 明示的にドロップされていない宣言された一時表の記述子情報はこのヒープのメモ リーに 保持され、宣言された一時表がドロップされるまでドロップできません。 「"推奨"」の部分は変更されません。 8.7.7 データベース・システム・モニター・ヒープ・サイズ (mon_heap_sz) ローカル・クライアントとリモート・クライアントを持つ OS/2 および Windows NT データベース・サーバー、および、 ローカル・クライアントを持つサテライト・デ ータベース・サーバーのデフォルトが、 24 から 32 に変更されました。 範囲は変 更されていません。 8.7.8 活動アプリケーションの最大数 (maxappls) すべてのプラットフォームの範囲の上限が 64 000 から 60 000 に 変更されまし た。 デフォルト値は変更されていません。 8.7.9 復元範囲およびソフト・チェックポイント間隔 (softmax) 計測単位は 1 次ログ・ファイルのサイズの割合に応じて変更されます。 8.7.10 変更されたページの追跡を可能にする (trackmod) 構成タイプ: データベース パラメーター・タイプ: 構成可能 デフォルト [範囲]: Off [ On; Off ] このパラメーターを ON に設定すると、 データベース・マネージャーは、最後に全 バックアップを行った後に変更された データベースのページを追跡します。 これ により、バックアップ・ユーティリティーは、各ページを個々に調べることなく、 増分バックアップに含むページを判別することができます。 SMS 表スペースに関し ては、この追跡の細分度は表スペース・レベルになります。 DMS 表スペースに関し ては、データ・ページおよび索引ページの細分度は エクステント・レベルになり、 他のページ・タイプの細分度は表スペース・レベルになります。 このパラメーター を ON に設定した後は、 増分バックアップを行うためのベースラインを得るために 全データベース・バックアップを行う必要があります。 8.7.11 データベース・ログ・パスの変更 (newlogpath) 構成タイプ: データベース パラメーター・タイプ: 構成可能 デフォルト [範囲]: NULL [ 有効なパスまたは装置] 関連パラメーター: ログ・ファイルのロケーション (logpath); 整合したデータベ ース (database_consistent) このパラメーターを使用すると、242 バイトまでのストリングを指定して、 ログ・ ファイルが保管されているロケーションを変更できます。 ストリングによって、パ ス名またはロー・デバイスを示すことができます。 ストリングでパス名を指示する 場合は、相対パス名ではなく、 完全修飾パス名を指定してください。 注: 区分データベース環境では、ノード番号がパスに自動的に付加されます。 こ れは、複数の論理ノード構成でパスを固有にするために行われます。 装置を指定するには、オペレーティング・システムが装置として認識するストリン グを 指定してください。 たとえば、Windows NT では \\.\d: または \\.\PhysicalDisk5 注: などになります。装置へのログの書き込みを可能にするには、 Windows NT バ ージョン 4.0 (サービス・パック 3) をインストールしてください。 UNIX ベースのプラットフォームでは /dev/rdblog8 注: となります。装置の指定は、AIX、Windows 2000、Windows NT、Solaris、 HP-UX、NUMA-Q、および Linux のプラットフォームでのみ可能です。 新しい設定は、以下の両方の状況になるまで logpath の値にはなりません。 * database_consistent パラメーターによって指示されるように、 データベー スの整合性が保たれている。 * すべてのユーザーがデータベースから切断されている。 データベースへの新しい接続が初めて行われると、 データベース・マネージャー は、logpath によって指定されたロケーションにログを移動します。 古いログ・パスにログ・ファイルが存在する可能性があります。 また、このログ・ ファイルはアーカイブされていない可能性があります。 このようなログ・ファイル は手操作でアーカイブする必要があります。 このデータベースで複製を実行する場 合、 変更前のログ・パスのログ・ファイルが複製に必要になる場合があります。 "Yes" に設定されたユーザー出口使用可能 (userexit) データベース構成パラメー ターで データベースが構成されている場合、および、すべてのログ・ファイルが DB2 によって自動的に、または 手操作によってアーカイブされている場合、DB2 は ログ・ファイルを検索して 複製処理を完了できます。 それ以外の場合は、ファイ ルを古いログ・パスから新しいログ・パスにコピーできます。 推奨:: ログ・ファイルは、 入出力の頻度の低い物理ディスクに置くことが理想的で す。 たとえば、ログをオペレーティング・システムまたは大きなボリューム の データベースと同じディスクに置くことは避けてください。 これにより、 入出力待ちなどのオーバーヘッドを最小にし、効率的なロギング活動が可能に なります。 データベース・ロギングに関連する入出力の数を追跡するために、 データベース・ システム・モニターを使用できます。 詳細については、「システム・モニター 手引きと解説書」の以下の モニター・エ レメントの記述を参照してください。 * log_reads (読み取られたログ・ページの数) * log_writes (書き込まれたログ・ページの数) 先行するデータ・エレメントは、 データベース・ロギングに関連する入出力活動の 量を返します。 他のディスク入出力活動に関する情報を収集し、2 つのタイプの入 出力活動を比較するには、 オペレーティング・システムのモニター・ツールを使用 できます。 8.7.12 ログ・ファイルのロケーション (logpath) 構成タイプ: データベース パラメーター・タイプ: 通知 関連パラメーター: データベース・ログ・パスの変更 (newlogpath) このパラメーターには、ロギングに使用される現行パスが含まれます。 このパラメ ーターは、newlogpath パラメーターに対する変更が有効になった後に データベー ス・マネージャーによって設定されるため、直接変更することができません。 デー タベースが作成されると、そのデータベースの回復ログ・ファイルは、 データベー スを含むディレクトリーのサブディレクトリーに作成されます。 デフォルトは、デ ータベース用に作成されたディレクトリーの下にある SQLOGDIR という サブディレ クトリーです。 8.7.13 ロック・リスト用最大記憶域 (locklist) 最大値が 60 000 から 524 288 に増えました。 ------------------------------------------------------------------------ 8.8 付録 A DB2 レジストリーと環境変数 以下のレジストリー変数は新規、もしくは変更の必要があるものです: 8.8.1 新規およびレジストリー変数を変更した表 表 6. レジストリー変数 変数名 オペレーティン 値 グ・システム 記述 DB2MAXFSCRSEARCH すべて デフォルト=5 値: -1, 1 to 33554 表にレコードが追加された場合、 検索のために、Specifies フリー・スペース制 御レコードの数を指定します。 デフォルトは、フリー・スペース制御レコードを 5 つ検索します。 この値の変更は、スペース再利用で挿入速度の平衡を取れるよ うにします。 スペース再利用の最適化のため大きな値を使用します。 挿入速度 の最適化のため小さな値を使用します。 値を -1 に設定するとデータベース・マ ネージャーはすべてのフリー・スペース制御レコードを強制的に 検索します。 DLFM_TSM_MGMTCLASS AIX、Windows デフォルト: デフォルト TSM NT、Solaris 管理クラス 値: 有効 TSM 管理クラス リンクしたファイルを保存、検索するために使用する TSM 管理クラスを指定しま す。 この変数の値セットがない場合は、デフォルト TSM 管理クラスが 使用され ます。 DB2_CORRELATED_PREDICATES すべて デフォルト=YES 値: YES または NO この変数の デフォルトは YES です。 結合内の相関列上に固有索引があり、この レジストリー変数が YES の場合、 この最適化プログラムは、結合条件の相関を 検出し、補正しようとします。 このレジストリー変数が YES の場合、 最適化プ ログラムは相関しているケースを検出するため固有索引統計の KEYCARD 情報を 使用し、結合された、関連する述部の選び方を動的に調整します。 こうすること で、結合するサイズやコスト面で、より正確な 見積もりを立てることができま す。 DB2_VI_DEVICE Windows NT デフォルト=ヌル 値: nic0 / VINIC 装置の記号名、もしくは ネットワーク・インターフェース・カード (NIC) に関 連した仮想インターフェース・プロバイダー・インスタンスを 指定します。各独 立ハードウェア販売会社 (IHV) はそれぞれの NIC を 製造しています。 Windows NT マシン では、一種類のみの NIC が許可されています; 物理的に同じマシン上 では マルチ論理ノードは同じ NIC を共有します。 装置記号名 "VINIC" は、 Synfinity インター・コネクトで使用する場合、 大文字かつ単一である必要があ ります。 他の現在サポートされている、すべてのインプリメンテーションは、装 置記号名として "nic0" を 使用します。 DB2_SELECTIVITY すべて デフォルト=NO 値: YES または NO このレジストリー変数は、SELECTIVITY 文節が使用できるかどうかを 制御しま す。SELECTIVITY 文節について詳しくは、「SQL 解説書」、 言語エレメント、検 索条件を参照してください。 このレジストリー変数が YES に設定された場合、 述部が、少なくとも 1 つの式 がホスト変数を含む基本述部であるときは、SELECTIVITY 文節を設定可能です。 DB2_UPDATE_PART_KEY すべて デフォルト=YES 値: YES または NO フィックスパック 3 以降の場合、 デフォルト値は YES です。このレジストリー 変数は、区分化キーの更新が 許されるかどうかを指定します。 DB2_BLOCK_ON_LOG_DISK_FULL すべて デフォルト=NO 値: YES または NO この DB2 レジストリー変数の設定によって、 活動状態のログ・パスに DB2 が新 しいログ・ファイルを作成できないときに ディスク・フル・エラーが生成される のを防ぐことができます。 代わりに、DB2 は成功するまで 5 分ごとにログ・ファイルを作成しようとしま す。 DB2 は作成を試みるたびにメッセージを db2diag.log ファイルに 書き込み ます。 ログ・ディスクがいっぱいの状態であるためアプリケーションがハングし ていることを 確認する唯一の方法は、db2diag.log ファイルを モニターするこ とです。 ログ・ファイルが正常に作成されるまで、 表データを更新しようとするユーザ ー・アプリケーションはトランザクションをコミットできません。 読み取り専用 の照会が直接影響を受けることはありませんが、更新要求により ロックされてい るデータへのアクセス、または、更新アプリケーションにより バッファー・プー ルに固定されているデータ・ページへのアクセスが照会で必要になった場合に は、 読み取り専用照会もハングしているように見えます。 DB2_INDEX_2BYTEVARLEN すべて デフォルト=NO 値: YES または NO このレジストリー変数を使用すると、 255 バイトよりも長い列を索引キーの一部 として指定することができます。 このレジストリー変数を YES にする前にすで に作成された索引には、 引き続き 255 キー制限があります。 このレジストリー 変数を YES にした後に作成された索引は、レジストリー変数を 再び NO にした としても、2 バイトの索引として扱われます。 このレジストリー変数を 変更することにより、CREATE TABLE、CREATE INDEX、お よび ALTER TABLE を含む いくつかの SQL ステートメントが影響を受けます。 これらのステートメントについての詳細は、「SQL 解説書 」に 記述された変更 を参照してください。 DB2_FORCE_FCM_BP AIX デフォルト=NO 値: YES または NO 高速コミュニケーション・マネージャー (FCM) の リソースをどこから割り振る のかを指定します。 このリソースは、データベース・マネージャー共有メモリ ー・セグメントまたは別のセグメントから 割り振ることができます。 複数の論 理ノードが 1 つのマシンにある場合には、このレジストリー変数を使用してくだ さい。 対称型マルチプロセッサー (SMP) が使用可能な区分データベース・シス テムでは、 このレジストリー変数を設定しても、通信方法には影響ありません。 この場合、通信では必ず共有メモリーが使用されます。 ただし、DB2 が使用する 共有メモリー・セグメントの数は影響を受けます。 DB2_AWE Windows 2000 デフォルト=NULL 値: [; ;...] (=<バッファー・プー ル ID>、<物理ページの数>、< アドレス・ウィンドウの数>) Windows 2000 の DB2 UDB では、 バッファー・プールに 64 GB までのメモリー を割り振ることができます。 Windows 2000 は、Address Windowing Extensions (AWE) バッファー・プールを サポートするように正しく構成されている必要があ ります。 これには、「"メモリ内のページのロック"」権利を Windows 2000 のユ ーザーに関連付け、 DB2 でこのレジストリー変数を設定する作業が含まれます。 この変数を設定するには、AWE サポートに使用するバッファー・プール ID を 知 っておく必要があります。 また、割り振る物理ページの数とアドレス・ウィンド ウの数も決定しなければなりません。 割り振る物理ページの数とアドレス・ウィンドウの数の決定について詳しくは、 このセクションの前にある「"第 8 章 操作パフォーマンス"」の 「"データベー ス・バッファー・プールの管理"」セクションを参照してください。 注: AWE サポートが 使用可能になっている場合には、拡張記憶域 (ESTORE) を データベースのバッファー・プールに対して 使用することはできません。 この変数により参照されるバッファー・プールは、SYSIBM.SYSBUFFERPOOLS にあらかじめ 存在していなければなりません。 DB2_STPROC_LOCKUP_FIRST すべて デフォルト=NO 値: YES または NO このレジストリー変数は DB2_DARI_LOOKUP_ALL から名前が変更されました。 DB2MEMDISCLAIM AIX デフォルト=YES 値: YES または NO AIX では、DB2 処理が使用するメモリーに、 関連するページング・スペースを存 在させることができます。 このページング・スペースは、関連するメモリーが 解放された後も予約されたままになる場合があります。 ページング・スペースの 予約は、 AIX システムの調整可能な仮想メモリー管理割り振りポリシーによって 異なります。 このレジストリー変数は、解放されたメモリーと予約ページング・ スペースとの 関連付けを AIX で解除する要求を DB2 エージェントが明示的に出 すかどうかを制御します。 "YES" を設定すると、ページング・スペースの所要量が少なくなり、 ページング のディスク活動も減ります。 "NO" を設定すると、ページング・スペースの所要 量は多くなり、 ページングのディスク活動も増えます。 ページング・スペース が多い場合や、ページングが行われないほど実メモリーが十分にある場合など は、 NO を設定してもパフォーマンスはわずかしか向上しません。 DB2MEMMAXFREE すべて デフォルト=8 388 608 バイト 値: 0 〜 232-1 バイト このレジストリー変数は、DB2 の処理により 保存された未使用メモリーの最大量 をバイト単位で制御します。 DB2_ANTIJOIN すべて デフォルト=NO (EEE 環境) デフォルト=YES (EEE 環境以 外) 値: YES または NO DB2 ユニバーサル・データベース EEE 環境の場合に YES が指定されていると、 最適化プログラムは、機会があるたびに、DB2 がより効率的に 処理できる非結合 に NOT EXISTS 副照会をトランスフォームします。 非 EEE 環境 で NO が指定さ れていると、最適化プログラムは NOT EXISTS 副照会を非結合に ほとんどトラン スフォームしません。 NEWLOGPATH2 UNIX デフォルト=NO 値: YES または NO このパラメーターを使用すると、 重複ロギングを行うために別のパスを使用する かどうかを指定できます。 使用されるパスは、文字 '2' を 'LOGPATH' の現行値 に付加することにより生成されます。 DB2DOMAINLIST Windows NT デフォルト=NULL 値: 1 つ以上の有効な Windows NT 定義域 (各値はコンマで区切 る) 1 つ以上の Windows NT 定義域を定義します。 この定義域に属しているユーザー の接続要求のみが受け入れられます。 このレジストリー変数は、DB2 ユニバーサル・データベース・バージョン 7.1 (またはそれ以降) が稼動する DB2 サーバーおよびクライアントの 純粋な Windows NT 定義域環境下でのみ使用してください。 DB2_LIKE_VARCHAR すべて デフォルト=Y、N 値: Y、N、S、0 から 6.2 まで の浮動小数点定数 サブエレメント統計の収集と使用を制御します。 ブランクで区切られた一連のサ ブフィールドまたはサブエレメントの フォームに構造がある場合、データ内容に 関する統計が列にあります。 このレジストリー変数は、次の形式の述部を最適化プログラムが処理する方法に 影響します。 COLUMN LIKE '%xxxxxx%' xxxxxx は文字のストリングです。 このレジストリー変数の使用方法を示す 構文は次の通りです。 db2set DB2_LIKE_VARCHAR=[Y|N|S|num1] [,Y|N|S|num2] 説明 * コンマの前にある用語、または述部の右にある唯一の用語は、 正の値のサ ブエレメント統計を持たない列に対してのみ、以下の意味になります。 o S - % 文字で囲まれたストリングの長さに基づいて、 列を形成するた めに連結する一連のエレメントの各エレメントの長さを見積もりま す。 o Y - デフォルト。 アルゴリズム・パラメーターのデフォルト値 1.9 を使用します。 アルゴリズム・パラメーターで可変長サブエレメン ト・アルゴリズムを使用します。 o N - 固定長サブエレメント・アルゴリズムを使用します。 o num1 - 可変長サブエレメント・アルゴリズムにより、 アルゴリズ ム・パラメーターとして num1 の値を使用します。 * コンマの後の用語は次のような意味があります。 o N - デフォルト。 サブエレメント統計を収集も使用もしません。 o Y - サブエレメント統計を収集します。 正の値のサブエレメント統計 を持つ列の場合に、アルゴリズム・パラメーターのデフォルト値 1.9 と 一緒に収集した統計を使用する可変長サブエレメント・アルゴリズ ムを使用します。 o num2 - サブエレメント統計を収集します。 正の値のサブエレメント 統計を持つ列の場合に、アルゴリズム・パラメーターとして num2 の 値と 一緒に収集した統計を使用する可変長サブエレメント・アルゴリ ズムを使用します。 DB2_PINNED_BP AIX、HP-UX デフォルト=NO 値: YES または NO この変数は、 一部の AIX オペレーティング・システムで、データベースに関連 する データベース・グローバル・メモリー (バッファー・プールを含む) を メ イン・メモリーに保持するために使用されます。 データベース・グローバル・メ モリーをシステム・メイン・メモリーに保持することにより、 データベース・パ フォーマンスがより一貫性のあるものになります。 たとえば、バッファー・プールがシステム・メイン・メモリーからスワップアウ トされた場合、 データベース・パフォーマンスは低下します。 バッファー・プ ールをシステム・メモリーに保持することによってディスク入出力が減ると、 デ ータベース・パフォーマンスは改善されます。 別のアプリケーションがより多く のメイン・メモリーを要求した場合、 システム・メイン・メモリー所要量に応じ て、データベース・グローバル・メモリーを メイン・メモリーからスワップアウ トできます。 64 ビット環境で HP-UX を使用するときは、このレジストリー環境を変更する他 に、 DB2 インスタンス・グループに MLOCK 特権を与えなければなりません。 こ れを行うには、root のアクセス権限を持つユーザーに対して、次の作業を依頼し てください。 1. DB2 インスタンス・グループを /etc/privgroup ファイルに追加します。 たとえば、DB2 インスタンス・グループが db2iadm1 グループに属している 場合、 次の行を /etc/privgroup ファイルに追加します。 db2iadm1 MLOCK 2. 次のコマンドを実行します。 setprivgrp -f /etc/privgroup DB2_RR_TO_RS すべて デフォルト=NO 値: YES または NO 次のキー・ロック によって、 すべての INSERT ステートメントと DELETE ステ ートメントの次のキー、および SELECT ステートメントの 結果セットの上にある 次に大きいキー値が自動的にロックされて、反復可能読み取り (RR) 分離レベル が 保証されます。索引のキー部分を変更する UPDATE ステートメントの場合は、 元の索引キーが削除され、 新しいキー値が挿入されます。次のキー・ロックは、 キー挿入時とキー削除時の両方で行われます。 次のキー・ロックは、ANSI およ び SQL92 標準 RR を保証するために必要であり、DB2 のデフォルトです。 アプリケーションが停止またはハングしている可能性がある場合は、アプリケー ションの スナップショット情報を調べる必要があります。 次のキー・ロックに 問題があると考えられる場合は、2 つの条件に基づいて DB2_RR_TO_RS レジスト リー変数を 設定できます。どのアプリケーションも反復可能読み取り (RR) 動作 を信頼していない場合、および コミットされていない削除をスキャン時にスキッ プすることが許される場合は、DB2_RR_TO_RS を オンにします。スキップ動作は RR、読み取り固定 (RS)、およびカーソル固定 (CS) 分離レベルに 影響します。 (非コミット読み取り (UR) 分離レベルの行ロックはありません。) DB2_RR_TO_RS がオンになっていると、ユーザー表での RR のスキャン動作は保証 されません。 これは、索引キーの挿入時と削除時には次のキー・ロックが行われ ないためです。このオプションは カタログ表には影響しません。 動作上のもう 1 つの変更点は、DB2_RR_TO_RS がオンに なっていると、削除され たがコミットされていない行は、スキャンに適している場合でも、 スキャン時に スキップされることです。 ------------------------------------------------------------------------ 8.9 付録 C SQL 説明ツール セクション名「"db2expln および dynexpln の実行"」は最終段落を 以下と置き換 える必要があります。 db2expln を実行させるには、ユーザーは、db2expln パッケージ の実行権限と同様 にシステム・カタログ表示の選択特権を所有している 必要があります。 dynexpln を実行するには、データベースへの BINDADD 権限を所有し、 データベースに接続 する際に使用するスキーマが存在しているか、もしくは データベースへの EXPLICIT_SCHEMA 権限を所有している必要があります。 また、 SQL ステートメン トを説明するために必要な特権も 必要です。 (SYSADM や DBADM 権限を所有してい る場合、 これらの権限レベルは自動的に付与されますのでご注意ください。) ------------------------------------------------------------------------ サテライト管理 手引きおよび解説書 ------------------------------------------------------------------------ 9.1 バージョン 7.2 DB2 パーソナル・エディションおよび DB2 ワークグループ・ エディションを サテライトとしてセットアップ 以下のセクションでは、Windows ベースのバージョン 7.2 DB2 パーソナル・エディ ション および DB2 ワークグループ・エディション・システムを、サテライト環境 で 完全機能サテライトとして使用できるようにセットアップする方法について説明 します。 以下の情報の中で使用されている用語と概念については、サテライト管理 手引きおよび解説書 を 参照してください。このブックは次の URL にあります。 http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v6pubs.d2w/en_main サテライト管理 手引きおよび解説書 の情報を補足する Technotes については、次 の URL を 参照してください。 http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/browse.d2w/ report?type=tech5udb&tech5udb=Y 9.1.1 前提条件 DB2 パーソナル・エディションまたは DB2 ワークグループ・エディションを サテ ライトとしてセットアップするには、次のものが必要です。 1. DB2 制御サーバー DB2 制御サーバーとは、Windows NT または AIX 上で 実行される DB2 エンタ ープライズ・エディション・システムのことで、 制御サーバー・コンポーネ ントがインストールされています。 使用する DB2 エンタープライズ・エディ ション・システムは、フィックスパック 2 以上 付きバージョン 6、またはバ ージョン 7 (フィックスパック・レベルは任意) です。 o DB2 制御サーバーとして使用したいバージョン 6 エンタープライズ・エ ディション・ システムがある場合は、9.1.3, エンタープライズ・エデ ィション・システムでのフィックスパック 2 以上の インストール を参 照してください。 o バージョン 7 を持っているが、制御サーバー・コンポーネントをインス トールして いない場合は、このコンポーネントをインストールし、すで にインストールされている フィックスパックを再インストールして、 DB2 制御サーバー・インスタンスと サテライト制御データベースを作成 します。これらのオブジェクトの作成手順については、 サテライト管理 手引きおよび解説書 を参照してください。 注: バージョン 7.2 のエンタープライズ・エディション・システムを DB2 制御サーバーとして 使用するために Windows NT にインストールする場 合、応答ファイル・インストールを 実行したいときは、応答ファイルに 指定するキーワードについて、 「DB2 制御サーバーの応答ファイルのキ ーワード」 という Technote を参照してください。 2. DB2 制御サーバー・インスタンスとサテライト制御データベース DB2 制御サーバー・インスタンスは一般に DB2CTLSV という名前で、サテライ ト制御 データベースは SATCTLDB という名前です。DB2 制御サーバー・イン スタンスと サテライト制御データベースは、エンタープライズ・エディショ ン・システム上にあり、 Windows NT に制御サーバー・コンポーネントととも に DB2 をインストールすると自動的に 作成されます。AIX 上に DB2 をイン ストールする場合は、DB2 制御サーバー・インスタンスと サテライト制御デ ータベースの作成方法について、サテライト管理 手引きおよび解説書 を参照 してください。 3. サテライト管理センター サテライト管理センター は、サテライト環境をセットアップおよび管理する ために 使用する GUI ツールのセットです。このツールのセットには コント ロール・センター からアクセス します。サテライト管理センター とサテラ イト環境の詳細について詳しくは、サテライト管理 手引きおよび解説書、 お よび サテライト管理センター から入手できるオンライン・ヘルプを参照して ください。 バージョン 6 の コントロール・センター を実行する場合は、 9.1.4, バージョン 6 コントロール・センター および サテライト管理センタ ー のアップグレード を参照して ください。 サテライト管理センター を使用してサテライト環境をまだセットアップして おらず、 サテライト管理センター で新しいサテライトを表すオブジェクトを 作成していない場合は、 サテライトをインストールする前にまずこれらを終 えておきます。詳しくは、 サテライト管理 手引きおよび解説書 にあるサテ ライト環境のセットアップとテストの方法に関する 説明を参照してくださ い。 4. サテライトとして使用したいバージョン 7.2 パーソナル・エディションまた は ワークグループ・エディション・システム。 9.1.1.1 インストール上の考慮事項 DB2 パーソナル・エディションまたは DB2 ワークグループ・エディションを イン ストールするときは、いずれかのシステムを同期できるように特別な コンポーネン トを選択する必要はありません。応答ファイル・インストールを実行する 場合は、 バージョン 7.2 システムをインストールするときに指定するキーワードに つい て、応答ファイル・インストールの実行 を参照してください。バージョン 7.2 シ ステムの 対話式インストールを実行する場合は、同期を可能にするためにバージョ ン 7.2 システムで 設定する必要のある値について、DB2 のインストール完了後に 9.1.2, 同期化のためのバージョン 7.2 システムの構成 を 参照してください。 応答ファイル・インストールの実行 バージョン 7.2 の DB2 パーソナル・エディションまたは DB2 ワークグループ・ エディションの応答ファイル・インストールを実行する場合は、応答ファイルに次 の キーワードを設定できます。 応答ファイル・インストール時に 1 つ以上のキーワードを指定しないと決めた場合 は、 バージョン 7.2 システムを同期できるように DB2 のインストール後に実行す る必要の ある追加のステップについて、9.1.2, 同期化のためのバージョン 7.2 シ ステムの構成 を参照してください。 またこのセクションの指示は、応答ファイル のインストール時に指定された値を 変更したい場合に使用することもできます。 db2.db2satelliteid システム上のサテライト ID を設定します。 注: このキーワードを 指定しないと、サテライト ID が、DB2 をインストー ルするために使用された ユーザー ID に自動的に設定されます。このユ ーザー ID をサテライト ID として 使用したい場合は、このキーワード の値を指定する必要はありません。 db2.db2satelliteappver システム上のアプリケーションのバージョンを設定します。 注: この キーワードを指定しないと、サテライト上のアプリケーションのバ ージョンが 自動的に V1R0M00 に設定されます。この値をアプリケーシ ョンのバージョンとして 使用したい場合は、このキーワードの値を指定 する必要はありません。 db2.satctldb_username サテライト制御データベースに接続するためにシステムに使用するユーザー名 を 設定します。 db2.satctldb_password ユーザー名がサテライト制御データベースに接続するときに、ユーザー名が DB2 制御サーバーに渡すパスワードを設定します。 応答ファイル・インストールを完了すると、バージョン 7.2 システムを同期化する 準備は完了です。サテライト上で db2sync -t コマンドを 実行して、サテライト上 で指定された値が正しいこと、およびサテライトが サテライト制御データベースに 接続できることを検査します。 応答ファイルのインストール実行の詳細については、サテライト管理 手引きおよび 解説書 を 参照してください。 注: 1. バージョン 7 では、Windows NT と Windows 2000 上ですべてのサービスを作 成する ためにはユーザー ID とパスワードが必要です。これらのユーザー ID とパスワードは、 キーワード対によって応答ファイル内で指定されます。応 答ファイルにある最初の キーワード対が、すべてのサービスのデフォルトの ユーザー ID とパスワードに なります。これは、そのサービスの特定のキー ワード対を指定することによって サービスのオーバーライドを提供しない限 り、変わりません。 バージョン 6 では、 リモート・コマンド・サービスによって使用されるユー ザー ID とパスワードを指定する ために、DB2 サテライト・エディションの 応答ファイル・インストール中 に admin.useridおよび admin.password キー ワードを指定できます。バージョン 7.2 のパーソナル・エディションおよび ワークグループ・エディションの場合は、これらのキーワードを指定すると、 バージョン 7.2 システム上で DB2DAS00 インスタンスに使用されます。 DB2 バージョン 7.2 システムの場合は、システム上の DB2 インスタンスが使用す る ユーザー ID とパスワードが、リモート・コマンド・サービスによって使 用されます。 db2.userid および db2.password の 値を指定しないと、上記 のデフォルト設定ルールが適用されます。 2. バージョン 6 では、応答ファイル・インストールを使用して DB2 サテライ ト・ エディションをインストールするときに、データベースを作成できま す。サテライトとして 使用する予定のバージョン 7.2 パーソナル・エディシ ョンまたはワークグループ・ エディション・システム上に応答ファイルをイ ンストールしているときは、 データベースを作成できません。以下のキーワ ード (説明については サテライト管理 手引きおよび解説書 を 参照) はサポ ートされていません。 o db2.userdb_name o db2.userdb_recoverable o db2.userdb_rep_src 9.1.2 同期化のためのバージョン 7.2 システムの構成 バージョン 7.2 システムを対話式にインストールする場合、DB2 のインストール 後、 システムの同期化前に、DB2 パーソナル・エディションまたは DB2 ワークグ ループ・ エディションでいくつかの値を設定する必要があります。 注: サテライトが 制御データベースとの接続に使用するユーザー ID とパスワー ドを除き、サテライトでの すべての値を設定するために、システムでオペレ ーティング・システム・スクリプトを 実行することができます (ステップ 4 を参照してください)。 1. db2set コマンドを使用してサテライト ID を設定します。 DB2 パーソナル・エディションまたは DB2 ワークグループ・エディションを 対話式に インストールする場合、サテライト ID は、DB2 をインストールす るために使用された ユーザー ID に自動的に設定されます。このユーザー ID をサテライト ID として 使用したい場合は、このステップを実行する必要は ありません。サテライト ID の設定に ついては、サテライト管理 手引きおよ び解説書 を参照してください。 2. db2sync -s コマンドを使用して、サテライト上の アプリケーション・バージ ョンを設定します。 DB2 パーソナル・エディション または DB2 ワークグループ・エディションを 対話式にインストールする場合、 サテライト上のアプリケーション・バージ ョンは、自動的に V1R0M00 に設定されます。 この値をアプリケーションのバ ージョンとして使用したい場合は、このステップを 実行する必要はありませ ん。 サテライトで db2sync -g コマンドを 使用して、アプリケーション・バージ ョンの現在の設定を表示することができます。この値を 変更したい場合は、 db2sync -s コマンドを実行してください。 アプリケーション・バージョンの 新しい値を指定するようにプロンプトが出されます。 アプリケーション・バ ージョンの設定について詳しくは、サテライト管理 手引きおよび解説書 を 参照してください。 3. catalog node および catalog database コマンドを使用して、DB2 制御デー タベース・インスタンスと サテライト制御データベース SATCTLDB をサテラ イトでカタログします。 また、サテライトで db2sync -t コマンドを使用して、 DB2 シンクロナイザ ー・アプリケーションをテスト・モードでオープンすることが できます。コ マンドを実行したときに SATCTLDB データベースがサテライトで カタログさ れていない場合は、「制御データベースのカタログ」ウィンドウが オープン します。「制御データベースのカタログ」ウィンドウから使用できる DB2 デ ィスカバリー機能を 使用して DB2 制御サーバーと SATCTLDB データベースを カタログするか、または このウィンドウでホスト名とサーバー名を入力する ことができます。また、 ステップ 4 に記されているように、サテライトがサ テライト制御 データベースとの接続に使用するユーザー ID とパスワードの 入力もプロンプトされます。 注: バージョン 7.2 パーソナル・エディションまたは DB2 ワークグルー プ・ エディションを対話式にインストールした後、DB2 シンクロナイザ ーは自動的に テスト・モードで開始されることはありません (バージョ ン 6 サテライト・エディションの 場合)。 4. サテライトで db2sync -t コマンドを 実行して、以下を行います。 o サテライトがサテライト制御データベースとの接続に使用するユーザー ID と パスワードを指定します。 同期化証明書がまだサテライトで保管されていない場合は、 「制御デー タベースの接続」ウィンドウがオープンします。 このウィンドウを使用 して、サテライトがサテライト制御データベースとの接続に 使用するユ ーザー ID とパスワードを指定する必要があります。 o サテライトで設定される値が正しいかを検証します。 o サテライトがサテライト制御データベースに接続可能であることを検証 します。 構成ラスクを完了すると、バージョン 7.2 システムを同期化する準備は完了です。 9.1.3 エンタープライズ・エディション・システムでのフィックスパック 2 以上の インストール 以下のセクションでは、バージョン 6 エンタープライズ・エディションを Windows NT または AIX で DB2 制御サーバーとして使用するために実行する必要のある、 アップグレードのタスクについて説明します。バージョン コントロール・センター を使用している場合は、 9.1.4, バージョン 6 コントロール・センター および サ テライト管理センター のアップグレード のステップも実行して、サテライト環境 を管理するために 正しいレベルの コントロール・センター および サテライト管 理センター を持っているかを確認してください。 9.1.3.1 DB2 制御サーバーとして使用するためにバージョン 6 DB2 エンタープライ ズ・エディションを アップグレード バージョン 6 DB2 エンタープライズ・エディション・システムを DB2 制御システ ム として使用するためには、これを制御サーバー構成要素とともにインストールす ることが 必要であり、また DB2 エンタープライズ・エディションはフィックスパ ック 2 以上の サービス・レベルでなければなりません。DB2 制御サーバー構成要 素がインストールされて いるかどうか、および DB2 エンタープライズ・エディシ ョンのサービス・レベルに応じて、 以下のいずれかを実行することが必要になりま す。 * DB2 制御サーバー構成要素を既存の DB2 エンタープライズ・エディション V6.1 システム にインストールし、フィックスパック 2 以上をインストール します。次にシステムの サテライト制御データベース (SATCTLDB) を更新し ます。 * すでにインストールされている DB2 制御サーバーをフィックスパック 2 レベ ル以上に アップグレードします。 以下の情報を使用して、2 つの先行タスクのどちらを実行する必要があるかを 識別 し、状況に適合するステップを識別します。以下は、実行するステップのサマリー です。 1. まず、DB2 エンタープライズ・エディション・インストールの現在の状況を 確認します。 制御サーバー構成要素がインストールされているかどうかと、 DB2 のサービス・レベルを 判別します。 2. 2 番目に、入手した状態情報に基づいて、何を行う必要があるかを判別しま す。 3. 3 番目に、Db2 エンタープライズ・エディションをアップグレードするために 必要なステップを実行します。 DB2 制御サーバーは DB2 エンタープライズ・エディション (Windows NT 版および AIX 版) で のみ実行が可能です。プラットフォームに適した指示にしたがって次に 進んでください。 * Windows NT での DB2 エンタープライズ・エディションのアップグレード * AIX での DB2 エンタープライズ・エディションのアップグレード Windows NT での DB2 エンタープライズ・エディションのアップグレード 以下のセクションの情報を使用してバージョン 6 DB2 エンタープライズ・ エディ ション・システムの現在のサービス・レベルと、システムを フィックスパック 2 サービス・レベル以上に更新するために実行する必要のある ステップを判別してく ださい。以下のセクションの 1 つまたは複数のステップを 実行する必要がありま す。 * Windows NT での DB2 エンタープライズ・エディションの確認 * 実行が必要な項目の判別 * Windows NT での制御サーバーのインストール * Windows NT でのフィックスパック 2 以上のインストール * Windows NT での SATCTLDB のアップグレード Windows NT での DB2 エンタープライズ・エディションの確認 Windows NT に DB2 エンタープライズ・エディションがインストールされている場 合は、 以下のステップを実行してください。 1. 制御サーバー構成要素がインストールされているかどうかを調べます。 レジ ストリー・エディターを使用して、インストールされた構成要素のリストを 表示します。 a. コマンド・プロンプトに regedit を入力します。 b. HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\Components レジストリー・キー を使用して、 制御サーバーがリストされているかどうかを確認します。 リストされていない場合は、 制御サーバーはインストールされていませ ん。 2. DB2 エンタープライズ・エディションのサービス・レベルを判別します。 コ マンド・プロンプトから db2level コマンドを実行してください。 下の表を 使用して、出力を解釈します。 db2level 出力のキー・フィールドの値 DB2 システムの リリース レベル 通知トークン レベル: SQL06010 01010104 db2_v6, n990616 バージョン 6.1 ベース SQL06010 01020104 DB2 V6.1.0.1, n990824, バージョン 6.1 WR21136 プラス FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, バージョン 6.1 WR21163 または DB2 プラス FixPak V6.1.0.9, s000101, 2 WR21173 注: レベルが 01030104 より上の場合、システムはフィックスパック 2 より 上のレベルにあります。 3. 入手した情報を記録して、実行が必要な項目の判別 に進んでください。 実行が必要な項目の判別 収集した情報を使用して、状況に合った表内の行を探し、フィックスパック 2 の レベル以上で DB2 制御サーバーをサポートするために、DB2 エンタープライズ・ エディション・システムの準備に必要なステップにしたがってください。 表に続くセクションに、必要なステップを実行するための指示があります。 実行し たステップをチェックしてください。状況に合ったステップだけを実行する ように してください。 インストールされた制御 DB2 エンタープライズ・エ DB2 エンタープライズ・エ サーバー構成要素 ディション・システムのサ ディション・システムの準 ービス・レベル 備に必要なステップ No バージョン 6.1 ベース、 以下のステップを実行して またはバージョン 6.1 プ ください。 ラス FixPak 1、または バ ージョン 6.1 プラス 1. Windows NT での制御 FixPak 2 以上 サーバーのインスト ール 2. Windows NT でのフィ ックスパック 2 以上 のインストール 3. Windows NT での SATCTLDB のアップグ レード Yes バージョン 6.1 ベース、 以下のステップを実行して またはバージョン 6.1 プ ください。 ラス FixPak 1 1. Windows NT でのフィ ックスパック 2 以上 のインストール 2. Windows NT での SATCTLDB のアップグ レード Yes バージョン 6.1、プラス 以下のステップを実行して FixPak 2 以上 ください。 1. Windows NT での SATCTLDB のアップグ レード Windows NT での制御サーバーのインストール Windows NT で制御サーバーをインストールするには: 1. 先に進む前に、システムのすべてのデータベース・アクティビティーが完了し ている ことを確認します。 2. DB2 ユニバーサル・データベース・エンタープライズ・エディション バージ ョン 6.1 CD を CD ドライブに入れます。 インストール・プログラムが自動的に開始されない場合は、 setup コマンド を CD のルートで実行して、インストール・プロセスを 開始します。 3. プロンプトが出されたら、DB2 を使用しているすべてのプロセスをシャットダ ウン します。 4. ウェルカム・ウィンドウで「次へ」を選択します。 5. 「製品の選択」ウィンドウで、DB2 エンタープライズ・エディションが選択さ れていることを 確認します。 6. 「インストール・タイプの選択」パネルで、「カスタム」を クリックしま す。 7. 「構成要素の選択」パネルで、制御サーバー構成要素が選択されていることを 確認し、「次へ」をクリックします。 注: システムにまだインストールされていないその他の構成要素を選択した 場合、 これらの構成要素もインストールされます。DB2 がインストール されているドライブまたは ディレクトリーを変更することはできませ ん。 8. 「DB2 サービスの構成」パネルで、制御サーバー・インスタンスのプロトコル 値と 始動オプションを変更するか、またはデフォルト値を使用することがで きます。 デフォルトを変更して「次へ」をクリックするか、 または「次へ」 をクリックしてデフォルトを使用 してください。 9. 「ファイルのコピーを開始」ウィンドウで「次へ」を クリックして、インス トール・プロセスを開始します。 10. ファイル・コピー処理が完了すると、システムをリブートするオプションが 示されます。この時点でリブートを行います。制御サーバーのためにシステム に行った 変更は、システムがリブートされるまで有効になりません。 インストール・プロセスが完了してシステムをリブートすると、 コントロール・セ ンター および サテライト管理センター をシステムでローカルに使用したい場合 は、制御サーバー・ インストールの一部として作成されたサテライト制御データベ ース (SATCTLDB) が カタログされている必要があります。SATCTLDB データベース をカタログするには: 1. 「スタート>プログラム>DB2 (Windows NT 版)> コマンド・ウィンドウ」を選 択して、DB2 コマンド・ウィンドウをオープンします。 2. DB2 インスタンスにいることを確認します。 set コマンドを実行して、 db2instance の値をチェックします。値が db2 で はない場合は、次の コマンドを実行してください。 set db2instance=db2 3. 次のコマンドを入力して、db2ctlsv インスタンスをカタログします。 db2 catalog local node db2ctlsv instance db2ctlsv 4. 次のコマンドを入力して、SATCTLDB データベースをカタログします。 db2 catalog database satctldb at node db2ctlsv 5. 次のコマンドを入力して、カタログ・アクションをコミットします。 db2 terminate 6. DB2 コマンド・ウィンドウをクローズします。 Windows NT でのフィックスパック 2 以上のインストール 既存のバージョン 6 DB2 エンタープライズ・エディション・システムを Windows NT で フィックスパック 2 以上にアップグレードするには、以下のいずれかを行い ます。 * DB2 エンタープライズ・エディション (Windows NT 版) V6.1 の最新 フィッ クスパックを、readme とともに Web からダウンロードします。フィックスパ ックは 次の URL の指示にしたがってダウンロードすることができます。 http://www-4.ibm.com/software/data/db2/db2tech/version61.html readme.txt ファイルの指示にしたがってフィックスパックをインストールし ます。 * フィックスパック 2 以上の DB2 ユニバーサル・データベース バージョン 6.1 フィックスパック (Windows NT 版) CD を 使用し、CD の WINNT95 ディ レクトリーの readme.txt ファイルの指示にしたがって インストールを完了 します。 Windows NT での SATCTLDB のアップグレード Windows NT で SATCTLDB データベースをアップグレードするには:  1. SATCTLDB データベースのレベルを判別します。 a. Windows NT システムのローカル管理権限を持つユーザー ID でログオン します。 b. 「スタート>プログラム>DB2 (Windows NT 版)> コマンド・ウィンドウ」 を選択して、DB2 コマンド・ウィンドウをオープンします。 c. 次のコマンドを入力して、SATCTLDB に接続します。 db2 connect to satctldb d. トリガー I_BATCHSTEP_TRGSCR がデータベースに存在するかどうかを、 次の照会を実行して判別します。 db2 select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR' 返された行の数を記録します。 e. 次のコマンドを入力してデータベースへの接続をクローズします。 db2 connect reset ステップ 1d が 1 行を返した場合、 データベースが正しいレベルにあ ります。この状況では、ステップ 2 をスキップして、3 に進みます。ゼ ロ (0) 行が 返行するされた場合、データベースは正しいレベルにな く、ステップ 3 を 実行するためには、ステップ 2 で説明されているよ うにアップグレード する必要があります。 2. SATCTLDB データベースをアップグレードするには、以下のステップを 実行し てください。DB2 コマンド・ウィンドウにすべてのコマンドを入力します。 a. ディレクトリー \misc に切り替えます。 は たとえ ば c:\sqllib のようなインストール・ドライブおよびパスです。 b. db2ctlsv インスタンスにいることを確認します。 set コマンドを実行して、 db2instance の値をチェックします。値が db2ctlsv ではない場合は、次の コマンドを実行してください。 set db2instance=db2ctlsv c. 次のコマンドを入力して、SATCTLDB データベースをドロップします。 db2 drop database satctldb d. 次のコマンドを入力して、新しい SATCTLDB データベースを作成しま す。 db2 -tf satctldb.ddl -z satctldb.log e. 次のコマンドを実行する。 db2 terminate 3. db2satcs.dll ストアード・プロシージャーを SATCTLDB データベースに バイ ンドします。 以下のステップを実行してください。 a. 次のコマンドを入力して、SATCTLDB データベースに接続します。 db2 connect to satctldb b. ディレクトリー \bnd に切り替えます。 は たとえ ば c:\sqllib のようなインストール・ドライブおよびパスです。 c. 次のバインド・コマンドを実行します。 db2 bind db2satcs.bnd 4. 次のコマンドを入力してデータベースへの接続をクローズします。 db2 connect reset 5. DB2 コマンド・ウィンドウをクローズします。 AIX での DB2 エンタープライズ・エディションのアップグレード 以下のセクションの情報を使用してバージョン 6 DB2 エンタープライズ・ エディ ション・システムの現在のサービス・レベルと、システムを フィックスパック 2 サービス・レベル以上に更新するために実行する必要のある ステップを判別してく ださい。以下のセクションの 1 つまたは複数のステップを 実行する必要がありま す。 * AIX での DB2 エンタープライズ・エディションの確認 * 実行が必要な項目の判別 * AIX での制御サーバーのインストール * AIX でのフィックスパック 2 以上のインストール * AIX での SATCTLDB データベースのアップグレード AIX での DB2 エンタープライズ・エディションの確認 AIX にバージョン 6 DB2 エンタープライズ・エディションがインストールされてい る 場合は、以下のステップを実行してください。 1. 制御サーバー構成要素がインストールされているかどうかを調べます。 次の コマンドを入力してください。 lslpp -l | grep db2_06_01.ctsr データが返されない場合は、制御サーバー構成要素はインストールされていま せん。 2. DB2 エンタープライズ・エディションのサービス・レベルを判別します。 DB2 インスタンス所有者としてログオンし、db2level コマンドを実行します。 下 の表を使用して、出力を解釈します。 db2level 出力のキー・フィールドの値 DB2 システムの リリース レベル 通知トークン レベル: SQL06010 01010104 db2_v6, n990616 バージョン 6.1 ベース SQL06010 01020104 DB2 V6.1.0.1, n990824, バージョン 6.1 U465423 プラス FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, バージョン 6.1 U468276 または DB2 プラス FixPak V6.1.0.9, s000101, 2 U469453 注: レベルが 01030104 より上の場合、システムはフィックスパック 2 より 上のレベルにあります。 3. 入手した情報を記録して、実行が必要な項目の判別 に進んでください。 実行が必要な項目の判別 収集した情報を使用して、状況に合った表内の行を探し、フィックスパック 2 の レベルで DB2 制御サーバーをサポートするために、バージョン 6 DB2 エンタープ ライズ・ エディション・システムの準備に必要なステップにしたがってください。 表に続くセクションに、必要なステップを実行するための指示があります。 実行し たステップをチェックしてください。状況に合ったステップだけを実行する ように してください。 インストールされた制御 DB2 エンタープライズ・エ DB2 エンタープライズ・エ サーバー構成要素 ディション・システムのサ ディション・システムの準 ービス・レベル 備に必要なステップ No バージョン 6.1 ベース、 以下のステップを実行して またはバージョン 6.1 プ ください。 ラス FixPak 1、または バ ージョン 6.1 プラス 1. AIX での制御サーバ FixPak 2 以上 ーのインストール 2. AIX でのフィックス パック 2 以上のイン ストール 3. AIX での SATCTLDB データベースのアッ プグレード Yes バージョン 6.1 ベース、 以下のステップを実行して またはバージョン 6.1 プ ください。 ラス FixPak 1 1. AIX でのフィックス パック 2 以上のイン ストール 2. AIX での SATCTLDB データベースのアッ プグレード Yes バージョン 6.1、プラス 以下のステップを実行して FixPak 2 以上 ください。 1. AIX での SATCTLDB データベースのアッ プグレード AIX での制御サーバーのインストール AIX で制御サーバーをインストールするには: 1. ルート権限を持つユーザーでログオンします。 2. DB2 ユニバーサル・データベース・エンタープライズ・エディション バージ ョン 6.1 CD を CD ドライブに入れます。 3. CD-ROM がマウントされているディレクトリー (たとえば cd /cdrom) に 移動 します。 4. 次のコマンドを入力して、DB2 インストーラーを開始します。 ./db2setup 5. 「DB2 インストーラー」ウィンドウがオープンしたら、タブ・キーを使用して インストール・オプションを選択し、Enter を 押します。 6. エンタープライズ・エディションの行を探し、タブ・キーを使用してその横の カスタマイズ・オプションを選択します。Enter を 押してください。 7. DB2 制御サーバー構成要素を選択して、了解にタブで移動し、Enter を押して ください。 8. 残りのウィンドウの指示にしたがって DB2 制御サーバー構成要素のインスト ールを 完了します。 インストール・プロセスが完了したら、DB2CTLSV インスタンスと SATCTLDB データ ベースを 作成します。これらのタスクを実行するには、サテライト管理 手引きお よび解説書 の第 13 章、 「AIX での DB2 制御サーバーのセットアップ」の詳細な 指示にしたがってください。 AIX でのフィックスパック 2 以上のインストール 既存の DB2 エンタープライズ・エディション・システムを AIX で フィックスパッ ク 2 以上にアップグレードするには、以下のいずれかを行います。 * DB2 エンタープライズ・エディション (AIX 版) V6.1 の最新フィックスパッ クを、 Fixpak.Readme とともに Web からダウンロードします。フィックスパ ックは 次の URL の指示にしたがってダウンロードすることができます。 http://www-4.ibm.com/software/data/db2/db2tech/version61.html Fixpak.Readme ファイルの指示にしたがってフィックスパックをインストール します。 * フィックスパック 2 以上の DB2 ユニバーサル・データベース バージョン 6.1 フィックスパック (AIX 版) CD を 使用し、CD の readme ディレクトリ ーにある指示にしたがってインストールを完了します。 FixPak.Readme ファイルで指示されているように、db2iupdt コマンドを 実行して DB2CTLSV インスタンスを更新したことを確認してください。 AIX での SATCTLDB データベースのアップグレード AIX で SATCTLDB データベースをアップグレードするには: 1. SATCTLDB データベースのレベルを判別します。 a. db2ctlsv としてログインします。 b. データベース・サーバーが開始されていることを確認します。サーバー が開始されて いない場合は、db2start コマンドを実行してください。 c. 次のコマンドを入力して SATCTLDB データベースに接続します。 db2 connect to satctldb d. トリガー I_BATCHSTEP_TRGSCR がデータベースに存在するかどうかを、 次の照会を実行して判別します。 db2 "select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR'" 返された行の数を記録します。 e. 次のコマンドを入力してデータベースへの接続をクローズします。 db2 connect reset ステップ 1d が 1 行を返した場合、 データベースが正しいレベルにあ ります。 この状況では、ステップ 2 をスキップして、3 に進みます。 ゼロ (0) 行が 返行するされた場合、データベースは正しいレベルにな く、ステップ 3 を 実行するためには、ステップ 2 で説明されているよ うにアップグレード する必要があります。 2. SATCTLDB データベースをフィックスパック 2 レベルにアップグレード する には、以下のステップを実行してください。DB2 コマンド・ウィンドウにすべ ての コマンドを入力します。 a. $HOME/sqllib/misc ディレクトリーに切り替えます。 b. 次のコマンドを入力して、SATCTLDB データベースをドロップします。 db2 drop database satctldb c. 次のコマンドを入力して、新しい SATCTLDB データベースを作成しま す。 db2 -tf satctldb.ddl -z $HOME/satctldb.log d. 次のコマンドを実行する。 db2 terminate 3. db2satcs.dll ストアード・プロシージャーを SATCTLDB データベースに バイ ンドします。 以下のステップを実行してください。 a. 次のコマンドを入力して、SATCTLDB データベースに接続します。 db2 connect to satctldb b. ディレクトリーを $HOME/sqllib/bnd に変更します。 c. 次のバインド・コマンドを実行します。 db2 bind db2satcs.bnd 4. 次のコマンドを入力してデータベースへの接続をクローズします。 db2 connect reset 9.1.4 バージョン 6 コントロール・センター および サテライト管理センター の アップグレード バージョン 6 コントロール・センター および サテライト管理センター を、フィ ックスパック 2 以上に アップグレードされたバージョン 6 DB2 制御サーバーおよ びサテライト制御 データベース (SATCTLDB) とともに使用するには、ツールもフィ ックスパック 2 以上に アップグレードする必要があります。 コントロール・センター および サテライト管理センター が DB2 制御サーバーと 同じシステムで実行されている 場合、DB2 エンタープライズ・エディション・シス テムがフィックスパック 2 に アップグレードされたときにこれらもアップグレー ドされています。ただし、これらの ツールを別のシステムで実行する場合は、この システムをフィックスパック 2 以上に アップグレードすることが必要です。 このシステムをフィックスパック 2 以上にアップグレードするには: * 製品の V6.1 レベルの最新フィックスパックを、readme とともに Web から ダウンロードします。フィックスパックは次の URL の指示にしたがってダウ ンロードする ことができます。 http://www-4.ibm.com/software/data/db2/db2tech/version61.html readme ファイルの指示にしたがってフィックスパックをインストールしま す。 * ご使用のオペレーティング・システム版の DB2 ユニバーサル・ データベース バージョン 6.1 フィックスパック CD を使用し、 readme にある指示にした がってインストールを完了します。 ------------------------------------------------------------------------ コマンド解説書 ------------------------------------------------------------------------ 10.1 db2batch - ベンチマーク・ツール PERF_DETAIL パラメーターの説明の最後の文を読みます。 1 より大きい値は DB2 バージョン 2 と DB2 UDB サーバーでのみ有効です。 また、ホスト・マシンではサポートされていません。 ------------------------------------------------------------------------ 10.2 db2cap (新規コマンド) db2cap - CLI/ODBC 静的パッケージ・バインディング・ツール キャプチャー・ファイルを 1 つ以上の静的パッケージにバインドします。キャプチ ャー・ファイルは、 CLI/ODBC/JDBC アプリケーションの静的プロファイル作成セッ ション中に生成され、 アプリケーションの実行中に取り込まれた SQL ステートメ ントを含みます。このユーティリティーはキャプチャー・ファイルを処理するの で、アプリケーションの静的 SQL を 実行するための CLI/ODBC/JDBC ドライバーで 使用することができます。 CLI/ODBC/JDBC アプリケーションでの静的 SQL の使用方法についての詳細は、 CLI ガイドおよび解説書 の静的プロファイル・フィーチャーをご覧ください。 権限 * SQL ステートメントにより参照される、データベース・オブジェクトへのアク セス権は キャプチャー・ファイルの中に記録されています。 * db2cap コマンドを呼び出すための 接続 ID が、それらと異なる場合は、 OWNER や QUALIFIER といった バインド・オプションを設定すれば十分な権限 になります。 * そのパッケージが最初からバインドされている場合、BINDADD 権限になりま す。 そうでなければ、BIND 権限が要求されます。 コマンド構文 >>-db2cap----+----+--bind--capture-file----d--database_alias----> +--h-+ '--?-' >-----+--------------------------------+----------------------->< '--u--userid--+---------------+--' '--p--password--' コマンド・パラメーター -h/-? コマンド構文のヘルプ・テキストを表示します。 bind capture-file キャプチャー・ファイルからステートメントをバインドし、1 つ以上のパッケ ージを生成します。 -d database_alias 1 つ以上のパッケージを含んでいるデータベースに、 データベース別名を指 定します。 -u userid データ・ソースに接続するために使うユーザー ID を指定します。 注: ユーザー ID が指定されていない場合は、承認許可 ID をシステムから 取得します。 the system. -p password データ・ソースに接続するためにパスワードを指定します。 使用上の注意 UNIX プラットフォーム上では、コマンドは小文字で入力する必要がありますが、 Windows オペレーティング・システム および OS/2 では、小文字も大文字も入力す ることができます。 このユーティリティーは、キャプチャー・ファイルの中で検索できる 多くのユーザ ー指定バインド・オプションをサポートしています。 パフォーマンスとセキュリテ ィの理由から、 これらのオプションを変更するためにテキスト・エディターで編 集、検査することができます。 SQLERROR(CONTINUE) および VALIDATE(RUN) バインド・オプションはパッケージを 生成するために 使用することができます。 パッケージを作成するために、このユーティリティーを使う場合、静的プロファイ ルは使用不可にしておきます。 作成されるパッケージの数は、キャプチャー・ファイルで記録される SQL ステート メントに使用される分離レベルによって変わります。パッケージ名は キャプチャ ー・ファイルからのパッケージ・キーワードの最初の 7 文字 と、次の 1 文字の接 尾部から構成されます。 * 0 - アンコミット読み取り (UR) * 1 - カーソル固定 (CS) * 2 - 読み取り固定 (RS) * 3 - 反復可能読み取り (RR) * 4 - コミットなし (NC) パッケージに関する特定の情報を獲得するには、ユーザーは以下の手順が必要で す。 * キャプチャー・ファイルにある COLLECTION および PACKAGE キーワードを使 用して、適切な SYSIBM カタログ表を照会する。 * キャプチャー・ファイルを表示する。 ------------------------------------------------------------------------ 10.3 db2ckrst (新規コマンド) db2ckrst - 増分復元イメージ順序の検査 データベース履歴を照会して、増分復元に必要なバックアップ・イメージの タイ ム・スタンプのリストを生成します。 手作業の増分復元の単純な restore 構文も 生成されます。 権限 なし 必須な接続 なし コマンド構文 >>-db2ckrst----d--database name----t--timestamp-----------------> >-----+---------------------+---+-----------------------------+-> | .-database---. | | .--------------------. | '--r--+-tablespace-+--' | V | | '--n-----tablespace name---+--' >-----+----+--------------------------------------------------->< +--h-+ +--u-+ '--?-' コマンド・パラメーター -d database namefile-name 復元するデータベースの別名を指定します。 -t timestamp 増分を復元するバックアップ・イメージのタイム・スタンプを指定します。 -r 実行する復元のタイプを指定します。 デフォルトはデータベースです。 注: tablespace を選択していながら表スペース名を指定しなかった場合、 ユーティリティーは指定のイメージの履歴項目内を探索して、 復元を行 うためにリストされた表スペース名を使用します。 -n tablespace name 復元する 1 つ以上の表スペースの名前を指定します。 注: データベース復元タイプを選択して、表スペース名のリストを 指定した 場合、ユーティリティーは指定の表スペース名を使用して tablespace restore を続行します。 -h/-u/-? Displays help information. このオプションを指定すると、他のすべての オ プションは無視され、ヘルプ情報のみが表示されます。 例 db2ckrst -d mr -t 20001015193455 -r database db2ckrst -d mr -t 20001015193455 -r tablespace db2ckrst -d mr -t 20001015193455 -r tablespace -n tbsp1 tbsp2 > db2 backup db mr バックアップは成功しました。このバックアップ・イメージのタイム・スタンプは 20001016001426 です。 > db2 backup db mr incremental バックアップは成功しました。このバックアップ・イメージのタイム・スタンプは 20001016001445 です。 > db2ckrst -d mr -t 20001016001445 データベース mr のタイム・スタンプ 20001016001445 を使用した、推奨されるイメージの復元順序。 =================================================================== db2 restore db mr incremental taken at 20001016001445 db2 restore db mr incremental taken at 20001016001426 db2 restore db mr incremental taken at 20001016001445 =================================================================== > db2ckrst -d mr -t 20001016001445 -r tablespace -n userspace1 データベース mr のタイム・スタンプ 20001016001445 を使用した、推奨されるイメージの復元順序。 =================================================================== db2 restore db mr tablespace ( USERSPACE1 ) incremental taken at 20001016001445 db2 restore db mr tablespace ( USERSPACE1 ) incremental taken at 20001016001426 db2 restore db mr tablespace ( USERSPACE1 ) incremental taken at 20001016001445 =================================================================== 使用上の注意 このユーティリティーを使用するには、データベース履歴が存在していなければな りません。 データベース履歴が存在しない場合は、このユーティリティーを使用す る前に、 RESTORE コマンドで HISTORY FILE オプションを指定してください。 PRUNE HISTORY コマンドの FORCE オプションを使用した場合は、 最新の完全なデ ータベース・バックアップ・イメージから、復元に必要となる 項目が削除されるお それがあります。 PRUNE HISTORY コマンドのデフォルト操作は、必要な項目が削除 されるのを防ぎます。 PRUNE HISTORY コマンドの FORCE オプションは使用しない ことをお勧めします。 バックアップには有用なレコードを収め、ガイドとしてこのユーティリティーを 使 用することをお勧めします。 ------------------------------------------------------------------------ 10.4 db2gncol (新規コマンド) db2gncol - 生成した列の値を更新します チェック・ペンディング・モード、およびログ・スペースに制限のある表で、生成 した表を 更新します。 このツールは、式により生成された列を持つ表で、 SET INTEGRITY ステートメントを作成するために使用します。 権限 以下のいずれか * sysadm * dbadm コマンド構文 >>-db2gncol----d--database----s--schema_name----t--table_name---> >-----c--commit_count----+---------------------------+----------> '--u--userid---p--password--' >-----+-----+-------------------------------------------------->< '--h--' コマンド・パラメーター -d database 表を配置しているデータベースの別名を指定します。 -s schema_name 表名のスキーマを指定します。 スキーマは大文字小文字を区別します。 -t table_name 計算した式で生成された新しい列の値のある表を 指定します。 表名は大文字 小文字を区別します。 -c commit_count コミットの間に更新された行数を指定します。 このパラメーターは 列の値を 生成するのに必須なログ・スペースのサイズに 影響します。 -u userid システム管理者、またはデータベース管理者権限を持つ ユーザー ID を指定 します。 このオプションが省略できるのは、現ユーザーを前提としていま す。 -p password ユーザー ID を指定したパスワードを指定します。 -h ヘルプ情報を表示します。 このオプションを指定すると、他のすべての オプ ションは無視され、ヘルプ情報のみが表示されます。 使用上の注意 表が大きく、以下の条件があてはまる場合、SET INTEGRITY ステートメントで、 FORCE GENERATED オプションの代わりにこのツールを使用する必要がある場合も あ ります: * 列を生成した生成式の変更後、すべての列の値を再生成する 必要がある場合 がある。 * 多くの列の値を変更するため、生成された列で使用した外部 UDF が 変更され た。 * 生成された列が表に追加された。 * 大規模なロード、またはロード追加が行われたため、生成された列に 値を入 れることができなかった。 * 並列トランザクションを長い間実行したため、または表のサイズのため、 ロ グ・スペースが小さすぎる。 このツールは式を基にして作成されたすべての列値を 再生成します。 表の更新中 に、ログ・スペースが不足しないよう、 断続的コミットを行います。 db2gncol が 一度実行されると、SET INTEGRITY ステートメントを使用するチェック・ペンディ ング・モードを 抜けます。 ------------------------------------------------------------------------ 10.5 db2inidb - ミラーリングされたデータベースの初期化 分割ミラー環境で、このコマンドはさまざまな目的で、ミラーリングされたデータ ベースを 初期化するために使用されます。 許可 以下のいずれかでなければなりません: o sysadm o sysctrl o sysmaint 必須な接続 なし コマンド構文 >>-db2inidb----database_alias----AS----+-SNAPSHOT-+------------>< +-STANDBY--+ '-MIRROR---' コマンド・パラメーター database_alias 初期設定するデータベースの別名を指定します。 SNAPSHOT ミラーリングされたデータベースが 1 次データベースのクローンとして 初期化されることを指定します。このデータベースは 読み取り専用で す。 STANDBY データベースがロールフォワード保留状態に置かれることを指定しま す。 1 次データベースからの新しいログをフェッチして、このスタンド バイ・データベースに 適用することが可能です。これによりスタンドバ イ・データベースは、1 次データベースがダウンした場合には、 その代 わりに使用することができます。 MIRROR ミラーリングされたデータベースが、1 次データベースを復元するため の バックアップ・イメージとして使用されることを指定します。 ------------------------------------------------------------------------ 10.6 db2look - DB2 統計抽出ツール 構文図は次のようになります。 >>-db2look---d--DBname----+--------------+---+-----+---+-----+--> '--u--Creator--' '--s--' '--g--' >-----+-----+---+-----+---+-----+---+-----+---+-----+-----------> '--a--' '--h--' '--r--' '--c--' '--p--' >-----+------------+---+-------------------+--------------------> '--o--Fname--' '--e--+----------+--' '--t Tname-' >-----+-------------------+---+-----+---+-----+-----------------> '--m--+----------+--' '--l--' '--x--' '--t Tname-' >-----+---------------------------+---+-----+------------------>< '--i--userid---w--password--' '--f--' -td x パラメーターには -c パラメーターが追加されました。 定義は次の通りで す。 db2look によって生成される SQL ステートメントの ステートメント区切り文字を 指定します。 このオプションが指定されていない場合のデフォルトはセミコロン ';' です。 このオプションは、-e オプションを指定した場合に使用することをお 勧めします。 この場合、抽出されたオブジェクトにはトリガーまたは SQL ルーチ ンが含まれる 可能性があります。 以下の例も追加されます。 データベース DEPARTMENT のすべてのユーザーによって作成された オブジェクトの DDL ステートメントを生成します。 db2look 出力はファイル db2look.sql に送ら れます。 db2look -d department -a -e -td % -o db2look.sql db2 -td% -f db2look.sql ------------------------------------------------------------------------ 10.7 db2updv7 - データベースをバージョン 7 現行修正レベルに更新 このコマンドは以下の方法で、データベース内のシステム・カタログを、現行フィ ックスパックを サポートするレベルに更新します。 * 新しい組み込み関数 (ABS、DECRYPT_BIN、DECRYPT_CHAR、ENCRYPT、GETHINT、 MULTIPLY_ALT および ROUND) を使用できるようにする。 * 新しい組み込みプロシージャー (GET_ROUTINE_SAR および PUT_ROUTINE_SAR) の使用を 可能にする。 * Windows および OS/2 データベースの WEEK_ISO および DAYOFWEEK_ISO 関数 に 修正を追加または適用する。 * バージョン 2 からバージョン 6 へ移行された表のテーブル・パック記述子に 修正を適用する。 * 視点 SYSCAT.SEQUENCES を作成する。 許可 sysadm 必須な接続 データベース。このコマンドは、指定されたデータベースへの接続を自動的に 確立します。 コマンド構文 >>-db2updv7----d---database_name--------------------------------> >-----+---------------------------+---+-----+------------------>< '--u--userid---p--password--' '--h--' コマンド・パラメーター -d database-name 更新するデータベースの名前を指定します。 -u userid ユーザー ID を指定します。 -p password ユーザーのパスワードを指定します。 -h ヘルプ情報を表示します。 このオプションを指定すると、他のすべての オプションは無視され、ヘルプ情報のみが表示されます。 例 フィックスパックのインストール後、次のコマンドを実行することでサンプ ル・データベース内の システム・カタログを更新します。 db2updv7 -d sample 使用上の注意 このツールは、少なくともフィックスパック 2 がインストールされた DB2 バ ージョン 7.1 または バージョン 7.2 を実行するデータベースでのみ使用で きます。コマンドが複数回実行された場合、エラーは 報告されず、各カタロ グは一度だけ適用されます。 新しい組み込み関数を使用可能に するには、すべてのアプリケーションがこ のデータベースから切断されていなければならず、 データベースが活動状態 にされていた場合はこれを非活動状態にしなければなりません。 ------------------------------------------------------------------------ 10.8 新規コマンド行プロセッサー・オプション (-x, 列見出しの印刷を抑止しま す。) 新規オプション、-x は、ヘッダーや含まれる列名などのないデータをコマンド行プ ロセッサーに 返します。 このコマンド・オプションのデフォルトの設定値は OFF です。 ------------------------------------------------------------------------ 10.9 DB2 CLP が必要とする True Type フォント DB2 コマンド行プロセッサー (CLP) ウィンドウから単一バイト (SBCS) 言語の 国 別文字を正しく表示するには、True Type フォントに変更します。 ------------------------------------------------------------------------ 10.10 ADD DATALINKS MANAGER このコマンドには、以下のいずれかの許可レベルが必要です。 * sysadm * sysctrl * sysmaint 以下のような使用上の注意があります。 このコマンドは、データベースからすべてのアプリケーションが 切断された後にの み有効です。 追加される DB2 データ・リンク・マネージャーは、このコマンドを 成功させるために、 完全にセットアップされて実行されている必要があります。 また、dlfm add_db コマンドを使用してデータベースを DB2 データ・リンク・マネ ージャーに登録しなければなりません。 データベースに追加できる DB2 データ・ リンク・マネージャーの最大数は 16 です。 ------------------------------------------------------------------------ 10.11 ARCHIVE LOG (新規コマンド) Archive Log 回復可能データベースのアクティブ・ログ・ファイルをクローズして切り捨てま す。 ユーザー出口が使用可能な場合にはアーカイブ要求を実行します。 権限 以下のいずれかとなります。 * sysadm * sysctrl * sysmaint * dbadm 必須な接続 このコマンドは、指定されたデータベースへの接続を自動的に確立します。 データ ベースへの接続が すでに存在する場合、エラーが返されます。 コマンド構文 >>-ARCHIVE LOG FOR----+-DATABASE-+--database-alias--------------> '-DB-------' >-----+---------------------------------------+-----------------> '-USER--username--+------------------+--' '-USING--password--' >-------| On Node 文節 |--------------------------------------->< On Node 文節 |---ON----+-| Node List 文節 |-------------------------+--------| '-ALL NODES--+-----------------------------+-' '-EXCEPT--| Node List 文節 |--' Node List 文節 .-,-----------------------------------. V | |---+-NODE--+--(-----node number--+------------------+--+---)---| '-NODES-' '-TO--node number--' コマンド・パラメーター DATABASE database-alias アーカイブするアクティブ・ログを持つデータベースの別名を指定します。 USER username 接続を試みるユーザー名を識別します。 USING password ユーザー名を認証するためのパスワードを指定します。 ON ALL NODES db2nodes.cfg ファイルにあるすべてのノードでコマンドを実行するように 指 定します。これは、node 文節が指定されていない場合のデフォルトになりま す。 EXCEPT db2nodes.cfg ファイルにあるすべてのノードでコマンドを実行するように 指 定します。ただし、ノード・リストに指定されたノードを除きます。 ON NODE/ON NODES 指定されたデータベースのログをノードのセットでアーカイブすることを指定 します。 node number ノード・リストのノード番号を指定します。 TO node number ログをアーカイブするノードの範囲を指定するときに使用されます。 指定さ れた最初のノード番号から 2 番目のノード番号までのすべてのノードが ノー ド・リストに含まれます。 使用上の注意 このコマンドを使用すると、ある時点までのログ・ファイルの完全なセットを 収集 します。収集すると、それらのログ・ファイルを使用してスタンドバイ・データベ ースを 更新することができます。 この関数は、指定されたデータベースへのデータベース接続がないときにしか 実行 できません。 これにより、コミットされていないトランザクションでユーザーがコ マンドを 実行するのを防ぎます。 実際に、ARCHIVE LOG コマンドは、ユーザーの 不完全なトランザクションを コミットしません。 指定されたデータベースへのデ ータベース接続がすでに存在し、 このコマンドを実行すると、コマンドは終了して エラーを返します。 このコマンドを実行したときに、指定されたデータベースで進 行中の トランザクションが別のアプリケーションにあった場合には、 コマンドが ログ・バッファーをディスクにフラッシュするため、 パフォーマンスがやや低下す る可能性があります。 ログ・レコードをバッファーに書き込む別のトランザクショ ンは、 フラッシュが完了するまで待機しなければなりません。 MPP 環境で使用する場合は、node 文節を使用してノードのサブセットを指定できま す。 node 文節が指定されていない場合、このコマンドのデフォルトの振る舞い は、 クローズしてすべてのノードのアクティブ・ログをアーカイブすることです。 このコマンドを使用すると、データベースの LSN スペースの一部を失い、 有効な LSN を使い果たすのを早めることになります。 ------------------------------------------------------------------------ 10.12 BACKUP DATABASE 10.12.1 構文図 BACKUP DATABASE の構文は、新しい INCREMENTAL パラメーターおよび オプション の DELTA 引き数を反映させるために更新されます。 INCREMENTAL オプションを単 独で指定すると、累積バックアップ・イメージが 作成されます。 非累積バックア ップ・イメージの作成を指定するには、オプションの DELTA 引き数を 使用してく ださい。 >>-BACKUP----+-DATABASE-+---database-alias----------------------> '-DB-------' >-----+---------------------------------------+-----------------> '-USER--username--+------------------+--' '-USING--password--' >-----+--------------------------------------------+------------> | .-,------------------. | | V | | '-TABLESPACE--(-----tablespace-name---+---)--' >-----+---------+---+--------------------------+----------------> '-ONLINE--' '-INCREMENTAL--+--------+--' '-DELTA--' >-----+-------------------------------------------------------+-> +-USE TSM--+-------------------------------+------------+ | '-OPEN--num-sessions--SESSIONS--' | | .-,--------. | | V | | +-TO----+-dir-+--+--------------------------------------+ | '-dev-' | '-LOAD--library-name--+-------------------------------+-' '-OPEN--num-sessions--SESSIONS--' >-----+-----------------------------+---------------------------> '-WITH--num-buffers--BUFFERS--' >-----+----------------------+---+-----------------+------------> '-BUFFER--buffer-size--' '-PARALLELISM--n--' >----+-------------------+------------------------------------->< '-WITHOUT PROMPTING-' 10.12.2 DB2 データ・リンク・マネージャーの考慮事項 1 つ以上のデータ・リンク・サーバーがデータベースに対して構成されている場合 は、 1 つのデータ・リンク・サーバーが使用不可能であってもバックアップ操作は 成功します。 データ・リンク・サーバーが再始動すると、データベースで再び 使 用可能になる前に、そのデータ・リンク・サーバーでバックアップ処理が完了しま す。 注: データベースの履歴ファイルに保存されている数 (データベース構成パラメー ター num_db_backups) の 2 倍のバックアップが 使用不可のデータ・リン ク・サーバーを待機している場合、 バックアップ操作は失敗します。 ------------------------------------------------------------------------ 10.13 BIND DB2 のコマンド構文は次のように、統合されたパラメーターを示すために変更され ます。 FEDERATED--+--NO--+-- '-YES--' FEDERATED パッケージ内の静的 SQL ステートメントがニックネームまたは統合された視 点を 参照するかどうかを指定します。このオプションが指定されず、パッケ ージ内の 静的 SQL ステートメントがニックネームまたは統合された視点を参 照する場合は、 警告が返され、パッケージは作成されます。 NO ニックネームまたは統合された視点は、パッケージ内の静的 SQL ステー トメントで 参照されません。ニックネームまたは統合された視点がこの パッケージの準備またはバインド中に 静的 SQL ステートメントで見つ かった場合、エラーが返され、パッケージは作成 されません。 YES ニックネームまたは統合された視点は、パッケージ内の静的 SQL ステー トメントで 参照が可能です。ニックネームまたは統合された視点がこの パッケージの準備またはバインド中に 静的 SQL ステートメントで見つ からなかった場合、エラーまたは警告は返されず、パッケージは 作成さ れます。 注: バージョン 7 フィックスパック 2 では、FEDERATED オプションの値を指定せ ずに ソース・ファイルをプリコンパイル、またはバインド・ファイルをバイ ンドすると、 SQL1179W 警告メッセージがサーバーによって生成されます。ソ ース・ファイルまたは バインド・ファイルにニックネームに対する静的 SQL 参照が含まれているときも、 同じメッセージが生成されます。これには次の 2 つの例外があります。 o バージョン 7 フィックスパック 2 以前のフィックスパック・レベルに あるクライアント、または 下位レベル・クライアントの場合、 sqlaprep() API はメッセージ・ファイルに この SQL1179W 警告を報告 しない。コマンド行プロセッサー PRECOMPILE コマンドも、 この場合は 警告を出力しません。 o バージョン 7 フィックスパック 2 以前のフィックスパック・レベルに あるクライアント、または 下位レベル・クライアントの場合、sqlabndx API はメッセージ・ファイルに この SQL1179W 警告を報告する。ただ し、メッセージ・ファイルには、パッケージが 作成されなかったことを 示す SQL0092N が組み込まれてしまいます。パッケージは 実際には作成 されているため、これは間違いです。コマンド行プロセッサー BIND コ マンドも、 同じ警告を誤って返します。 ------------------------------------------------------------------------ 10.14 CALL CALL コマンドの構文は以下のように表記します: .-,---------------. V | >>-CALL--proc-name---(-----+-----------+--+---)---------------->< '-argument--' argument パラメーターの説明は以下のように変更になりました。 ストアード・プロシージャーに対して 1 つ以上の引き数を指定します。 入出力引き数はすべて、プロシージャーによって定義される順序で 指定されなければなりません。出力引き数は "?" 文字を使用して指定されます。 たとえば、1 つの整数入力パラメーターと 1 つの出力パラメーターを持つ ストアード・プロシージャー foo は、"call foo (4, ?)" として呼び出されます。 注: 1. オペレーティング・システム・プロンプトからこのユーティリティーを呼び出 す際は、 コマンドを以下のように区切る必要があります: "call DEPT_MEDIAN (51)" 単一引用符 (') も使用することができます。 2. 呼び出されたストアード・プロシージャーはデータベース内で一意的に名付け られている必要があります。 3. ストアード・プロシージャーはカタログされている必要があります。 カタロ グされていないプロシージャーが呼び出されると、DB21036 エラー・メッセー ジが戻ります。 4. ストアード・プロシージャー定義のため、コマンド行に不十分なパラメーター を指定したり、 コマンド行のパラメーターの配列が正しくない (入力、出力) 場合、 DB21101E メッセージが戻ります。 5. 結果列には、最大 1023 文字入ります。 6. LOBS および バイナリー・データ (FOR BIT DATA、VARBINARY、 LONGVARBINARY、GRAPHIC、 VARGAPHIC、または LONGVARGRAPHIC) はサポート していません。 7. サポート結果セットを呼び出します。 8. サポートされないタイプの出力変数を持つ SP が呼び出されると、 CALL は失 敗し、メッセージ DB21036 が戻されます。 9. CALL の入力パラメーターの最大長は 1024 です。 ------------------------------------------------------------------------ 10.15 DROP DATALINKS MANAGER (新規コマンド) DROP DATALINKS MANAGER DB2 データ・リンク・マネージャーを、指定されたデータベースの 登録済み DB2 データ・リンク・マネージャーのリストからドロップします。 権限 以下のいずれかとなります: * sysadm * sysctrl * sysmaint コマンド構文 >>-DROP DATALINKS MANAGER FOR----+-DATABASE-+--dbname---USING---> '-DB-------' >----name------------------------------------------------------>< コマンド・パラメーター DATABASE dbname データベース名を指定します。 USING name LIST DATALINKS MANAGER コマンドによって表示された通りに DB2 データ・リ ンク・マネージャー・サーバーの名前を指定します。 例 例 1 いくつかのデータベース表に micky.almaden.ibm.com へのリンクがあるときに、 ホスト bramha.almaden.ibm.com に存在するインスタンス妥当性検査の下で、 デー タベース TEST から DB2 データ・リンク・マネージャー micky.almaden.ibm.com を ドロップします。DB2 データ・リンク・マネージャーをドロップするときは、 以下のステップを行うことが極めて重要です。 1. データベース TEST のデータベース・バックアップを取る。 2. micky.almaden.ibm.com へのリンクがある場合は、そのリンクを解除する。 a. SYSADM_GROUP に属するユーザー ID でログオンして、データベース TEST への 排他モード接続を取得する。 connect to test in exclusive mode この接続が、上記のユーザー ID を使用してテストを行う唯一の接続で あることを 確実にします。 これにより、リンクが新たに作成されるの を防ぎます。 b. すべての FILE LINK CONTROL DATALINK 列のリストと、 その列を含むデ ータベース内の表を取得する。 select tabname, colname from syscat.columns where substr(dl_features, 2, 1) = 'F' c. リスト内の FILE LINK CONTROL DATALINK 列ごとに SQL SELECT を実行 して、 micky.almaden.ibm.com へのリンクが存在するかどうかを判別す る。 たとえば、表 t の DATALINK 列 c の場合、SELECT ステートメン トは 次のようになります。 select count(*) from t where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' d. このようなリンクを含む FILE LINK CONTROL DATALINK 列ごとに SQL UPDATE を実行して、 micky.almaden.ibm.com にリンクされている値を リンク解除する。 たとえば、表 t の DATALINK 列 c の場合、UPDATE ステートメントは次のようになります。 update t set t.c = null where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' t.c が NULL 可能でない場合は、代わりに以下を使用できます。 update t set t.c = dlvalue('') where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' e. この SQL UPDATE をコミットする。 commit 3. DROP DATALINKS MANAGER コマンドを実行する。 drop datalinks manager for db test using node micky.almaden.ibm.com 4. 変更を有効にしてデータベースへの他の接続を許可するために、 排他モード 接続を終了する。 terminate 5. micky.almaden.ibm.com にある TEST のバックアップ情報のリンク解除処理と ガーベッジ・コレクションを開始する。DB2 データ・リンク・マネージャー管 理者として、 micky.almaden.ibm.com で次のコマンドを実行してください。 dlfm drop_dlm test validate bramha.almaden.ibm.com これにより、ステップ 3 を呼び出す前のリンク解除をユーザーが忘れた場合 に備え、 データベース TEST にまだリンクされているすべてのファイルがリ ンク解除されます。 前にデータベース TEST にリンクされていたファイルの バックアップ情報 (たとえば、アーカイブ・ファイル、メタデータなど) が micky.almaden.ibm.com にある場合、 このコマンドはバックアップ情報のガ ーベッジ・コレクションを 開始します。実際のリンク解除とガーベッジ・コ レクションは非同期で実行されます。 例 2 micky.almaden.ibm.com という DB2 データ・リンク・マネージャーが データベー ス TEST からすでにドロップされているときに、 その DB2 データ・リンク・マネ ージャーのファイルへのリンクである DATALINK 値を 削除します。これは、 micky.almaden.ibm.com のドロップで 例 1 のステップが行われなかった場合に必 要となる可能性があります。 このような DATALINK 値の場合には、 SQL DELETE、 SELECT、および UPDATE ステートメントは成功しません (SQL0368)。 ユーザーは、 このような DATALINK 値を含む各表に対して、 調整操作を実行しなければなりませ ん。 micky.almaden.ibm.com へのリンクである各 DATALINK 値は、 ヌルまたはゼ ロ長の DATALINK 値に更新されます。 このような値を含む行は例外表に挿入されま す (例外表が指定されている場合)。 ただし、DATALINK 値には接頭部名は組み込ま れません。 micky.almaden.ibm.com がドロップされているため、オリジナルの DATALINK 値の接頭部名は この時点では取得できません。 たとえば、オリジナルの DATALINK 値が 'http://host.com/dlfs/x/y/a.b' で 接頭部名が '/dlfs' の場合、 例外表の DATALINK 値には 'http://host.com/x/y/a.b' が 含まれます。 これらの DATALINK 値によって参照させるファイルは、 DB2 データ・リンク・マネージャー ではリンクされたままの状態になります。 これらのファイルのリンク解除処理を開 始するには、 micky.almaden.ibm.com に対して dlfm drop_dlm コマンドを実行し てください。 前にデータベース TEST にリンクされていたファイルのバックアップ 情報 (たとえば、アーカイブ・ファイル、メタデータなど) が micky.almaden.ibm.com にある場合、 このコマンドはバックアップ情報のガーベッ ジ・コレクションを開始します。実際のリンク解除とガーベッジ・コレクションは 非同期で実行されます。 例 3 1 つのデータベース・テストに対して複数の DB2 データ・リンク・マネージャー micky.almaden.ibm.com を作成します。このシナリオでは、DB2 データ・リンク・ マネージャーをドロップ後に再登録できることと、 それを新しい完全な DB2 デー タ・リンク・マネージャーとして扱えることを説明します。 以下のステップは、考 えられるシナリオの唯一の解説です。 micky.almaden.ibm.com をドロップするため に推奨通りに例 1 のステップを行った場合には、 micky.almaden.ibm.com の古い 実体へのリンクはすでに存在しません。 つまり、下記のステップ 7 のエラー SQL0368 は発生しません。 1. micky.almaden.ibm.com をデータベース TEST に登録する。 add datalinks manager for db test using node micky.almaden.ibm.com port 14578 2. micky.almaden.ibm.com のファイルへのリンクを作成する。 connect to test create table t(c1 int, c2 datalink linktype url file link control mode db2options) insert into t values(1, dlvalue('file://micky.almaden.ibm.com/pictures/yosemite.jpg')) commit terminate 3. micky.almaden.ibm.com をデータベース TEST からドロップする。 drop datalinks manager for db test using micky.almaden.ibm.com 4. DATALINK 値を選択する。 connect to test select * from t terminate ユーザーに対しては以下が表示されます。 SQL0368N DB2 データ・リンク・マネージャー "MICKY.ALMADEN.IBM.COM" がデータベースに登録されていません。SQLSTATE=55022 5. micky.almaden.ibm.com をもう一度データベース TEST に登録する。 add datalinks manager for db test using node micky.almaden.ibm.com port 14578 6. DATALINK 値をさらに追加する。 connect to test insert into t values(2, dlvalue('file://micky.almaden.ibm.com/pictures/tahoe.jpg')) commit 7. DATALINK 値を選択する。 select c2 from t where c1 = 2 これは、選択されている値が 現在登録されている micky.almaden.ibm.com の 実体へのリンクのため成功します。 select c2 from t where c1 = 1 以下が返されます。 SQL0368N DB2 データ・リンク・マネージャー "MICKY.ALMADEN.IBM.COM" がデータベースに登録されていません。SQLSTATE=55022 これは、 選択されている値が、上記のステップ 3 でドロップされた micky.almaden.ibm.com の実体への リンクであることが原因です。 使用上の注意 DROP DATALINKS MANAGER コマンドによる影響はロールバックできません。 DROP DATALINKS MANAGER コマンドを使用するときは、例 1 で示したステップを行うこと が 極めて重要です。 このコマンドは、データベースからすべてのアプリケーションが 切断された後にの み有効です。 コマンドが正常に完了すると、DB2 データ・リンク・マネージャーで何も処理が 行 われていないことがユーザーに対して通知されます (DB210201I)。 DB2 データ・リ ンク・マネージャーをドロップする前に、 ユーザーは、その DB2 データ・リン ク・マネージャーのファイルへのリンクが データベースに含まれていないことを確 認する必要があります。 DB2 データ・リンク・マネージャーのドロップ後もデータ ベースにリンクが存在した場合、 ユーザーはそれを削除するために調整ユーティリ ティーを実行しなければなりません。 調整ユーティリティーはこれらのリンクをヌ ルに設定するか (DATALINK 列が NULL 可能な場合)、 DATALINK 値をゼロ長にしま す。 データ・リンク・マネージャーとドロップされた DB2 データ・リンク・マネージャ ーとの間の リンクに対応するファイルは、リンクされた状態のままです。 つま り、これらのファイルには、読み取り、書き込み、名前変更、削除、許可の変更、 または所有権の変更などの操作ではアクセスできません。 DB2 データ・リンク・マネージャーでリンク解除されたファイルの アーカイブされ たコピーに対するガーベッジ・コレクションは、このコマンドでは行われません。 ただしユーザーは、DB2 データ・リンク・マネージャーで dlfm drop_dlm コマンド を使用して、 リンク解除処理とガーベッジ・コレクションを明示的に開始すること ができます。 DB2 データ・リンク・マネージャーをドロップする前に、 データベースのバックア ップを取っておくことをお勧めします。 さらに、すべての複製サブスクリプション によって DB2 データ・リンク・マネージャーに関連する すべての変更が複製され ていることを確認してください。 DB2 データ・リンク・マネージャーをデータベースからドロップする前に バックア ップを取り、そのバックアップ・イメージを DB2 データ・リンク・マネージャーの ドロップ後の復元に使用した場合には、復元またはロールフォワード処理によって 特定の表がデータ・リンク調整保留 (DRP) 状態になる可能性があります。 ------------------------------------------------------------------------ 10.16 EXPORT 「DB2 データ・リンクテーブル考慮事項」のセクションで、 一貫性のある表のコピ ーと、エクスポートのために コピーされた、DATALINK に参照される対応ファイル を 保証する手順の 3 ステップは以下のように読み取ります : 3. 各データ・リンク・サーバーで、dlfm_export ユーティリティーを実行します。 dlfm_export ユーティリティーに入力されるのは制御ファイル名で、エクスポート・ユーティリティー によって生成されます。これにより、制御ファイルにリストされているファイルの tar (あるいは同等の) アーカイブが生成されます。 分散ファイル・システム (DFS) の場合、dlfm_export ユーティリティーは、 制御ファイルにリストされているファイルをアーカイブする前に DCE ネットワーク・ ルート認証を得ます。dlfm_export はアーカイブされているファイルの ACL 情報を 取り込みません。 同じセクションで、中黒に続く、「EXPORT の実行が成功すると以下のファイルが 生成されます」 は以下のように変更する必要があります: 最初の中黒の 2 番目の文は以下のように読み取ります: このファイルの DATALINK 列値は、インポートおよびロード・ユーティリティーによって 使用される形式と同じです。 2 番目の中黒の 最初の文は以下のように読み取ります: server_name は、各データ・リンク・サーバー用に生成される制御ファイルです。 (Windows NT オペレーティング・システムでは、単一制御ファイル、 ctrlfile.lst がすべてのデータ・リンク・サーバーによって使用されます。 DFS の場合、各セルに 1 つの制御ファイルがあります。) 以下の文は表 5 の前の段落に追加する必要があります: dlfm_export に関する詳細情報については、「エクスポートを使用した DB2 データ・リンク・マネージャー・データの移動」の下の 「データ移動ユーティリティー 手引きおよび解説書」を参照してください。 ------------------------------------------------------------------------ 10.17 データベース構成の更新 DL_TIME_DROP 構成パラメーターの説明は、 以下のように変更されます。 DB2 データ・リンク・マネージャーにのみ適用されます。 このパラメーターは、日数ファイルが DROP DATABASE コマンドの実行後にアーカイブ・サーバー (たとえば TSM サーバー) 上で保存されることを指定します。 GET DATABASE CONFIGURATION コマンドに新しいパラメーター TRACKMOD が 追加さ れました。 構文は以下の通りです。 >>-GET----+-DATABASE-+---+-CONFIGURATION-+--FOR-----------------> '-DB-------' +-CONFIG--------+ '-CFG-----------' .-NO--. >----database-alias---TRACKMOD--+-YES-+------------------------>< 以下のパラメーター説明が追加されます。 TRACKMOD 増分バックアップを取ることを可能にするために DB2 が データベース内の変 更されたページを追跡するかどうかを示します。 OFF 変更されたページを追跡しないことを指定します。 これは、バージョン 7.1 フィックスバック 3 よりも前に作成された データベースのデフォ ルトです。 ON 変更されたページを追跡することを指定します。 このパラメーターが設 定されていると、データベースの増分バックアップを 行うことができま す。 これは、バージョン 7.1 フィックスパック 3、またはそれ以降の デフォルトです。 ------------------------------------------------------------------------ 10.18 GET ROUTINE (新規コマンド) GET ROUTINE 指定された SQL ルーチンのルーチン SQL アーカイブ (SAR) ファイルを検索しま す。 権限 dbadm 必須な接続 データベース。暗黙的接続が使用可能な場合、デフォルト・データベースへの接続 が 確立されます。 コマンド構文 >>-GET ROUTINE--INTO---file_name----FROM----+-----------+-------> '-SPECIFIC--' >-------PROCEDURE----routine_name------------------------------>< コマンド・パラメーター INTOfile-name ルーチン SQL アーカイブ (SAR) が保管されているファイルの名前。 FROM 検索するルーチンの仕様の開始を示します。 SPECIFIC 指定された routine-name を特定の名前として与えます。 PROCEDURE ルーチンは SQL プロシージャーです。 routine-name プロシージャーの名前。 SPECIFIC が指定された場合、これは特定の名前のプ ロシージャーになります。 名前がスキーマ名で修飾されていない場合には、 CURRENT SCHEMA がルーチンの スキーマ名として使用されます。 routine-name は、SQL プロシージャーとして定義された 既存のプロシージャ ーでなければなりません。 例 GET ROUTINE INTO procs/proc1.sar FROM PROCEDURE myappl.proc1; ------------------------------------------------------------------------ 10.19 GET SNAPSHOT FCM FOR ALL NODES パラメーターの説明は、以下のように現れます。 GET SNAPSHOT コマンドの実行対象のノードと EEE インスタンスの他のノードとの 間の 高速コミュニケーション・マネージャー (FCM) 統計を提供します。 ------------------------------------------------------------------------ 10.20 IMPORT 「DB2 データ・リンク・マネージャー考慮事項」のセクションで、以下の文を ステ ップ 3 に追加する必要があります: 分散ファイル・システム (DFS) の場合、必要に応じて URL のセル名の情報 (DATALINK 列の) を、SQL 表のエクスポート・データで更新します。 以下の文はステップ 4 に追加する必要があります: DFS の場合、DB2 データ・リンク・マネージャー構成ファイルの ターゲット構成でセルを定義します。 ステップ 4 に続く段落は以下のように読み取る必要があります: インポート・ユーティリティーがターゲット・データベースに対して実行される場合、 DATALINK 列データによって参照されるファイルは、適切なデータ・リンク・サーバー上で リンクされます。 ------------------------------------------------------------------------ 10.21 LIST HISTORY LIST HISTORY コマンドに CREATE TABLESPACE パラメーターが追加されます。 構文 図は以下の通りです。 >>-LIST HISTORY----+-------------------+------------------------> +-BACKUP------------+ +-ROLLFORWARD-------+ +-ALTER TABLESPACE--+ +-DROPPED TABLE-----+ +-LOAD--------------+ +-RENAME TABLESPACE-+ '-CREATE TABLESPACE-' >-----+-すべて-----------------------------+--------------------> +-SINCE--timestamp-------------------+ '-CONTAINING--+-_schema.objectname-+-' '-_objectname--------' >----FOR--+----------+---database-alias------------------------>< +-DATABASE-+ '-DB-------' 以下のパラメーター説明が追加されます。 CREATE TABLESPACE すべての CREATE TABLESPACE 操作と DROP TABLESPACE 操作をリストします。 使用上の注意が以下のように更新されます。 以下の記号がレポートの「操作」セクションに追加されます。 * A - 表スペースの作成 * O - 表スペースのドロップ * U - アンロード レポートの「タイプ」セクションの下の記号は、次のように再編成されます。 * バックアップ・タイプ o F - オフライン o N - オンライン o I - 増分オフライン o O - 増分オンライン o D - 差分オフライン o E - 差分オンライン * ロールフォワード・タイプ o E - ログの終わり o P - 時刻指定 * ロード・タイプ o I - 挿入 o R - 置換 * 表スペース・タイプの変更 o C - コンテナーの追加 o R - 再平衡 * 静止タイプ o S - 静止共有 o U - 静止更新 o X - 静止排他 o Z - 静止リセット ------------------------------------------------------------------------ 10.22 LOAD FILE LINK CONTROL に定義されている DATALINK 列を含む表に データを追加する場 合、「DB2 データ・リンク・マネージャー考慮事項」のセクションで ロード・ユー ティリティーを呼び出す前に実行する手順のステップ 1 に以下の文を追加します。 分散ファイル・システム (DFS) の場合、ターゲット・セル内の DB2 データ・リンク・ マネージャーが登録されていることを確認してください。 以下の文はステップ 5 に追加する必要があります: DFS の場合、DB2 データ・リンク・マネージャー構成ファイルの (ロードされる) DATALINK データによって参照されているターゲット構成で、 セルを登録してください。 「入力ファイルでのデータ・リンク情報の表記」のセクションで、URL 名のパラメ ーターに 続く注釈は以下のように読み取る必要があります: 現在 "http"、"file"、"unc"、"dfs" などはスキーマ名としてのみ許可されています。 2 番目の注釈の最初の文は以下のように読み取ります: URL 名の接頭部 (スキーマ、ホスト、およびポート) はオプションです。 DFS の場合、接頭部は、スキーマ・セル名、ファイル・スペース接合部分のことです。 区切られた ASCII (DEL) ファイル形式と非 ASCII (DEL) ファイル形式の 両方の例 で、三番目の例題を除去する必要があります。 DL_URL_DEFAULT_PREFIX のようになると想定されている列に、ロード、 またはイン ポート指定する DATALINK のデータ例は以下のように除去や置き換えを 行う必要が あります: 以下は DL_URL_REPLACE_PREFIX ("http://qso") のようになると想定されている列 に、 ロード、またはインポート指定する DATALINK のデータ例です: * http://www.almaden.ibm.com/mrep/intro.mpeg このサンプル URL は以下の部分ごとに保存されます。 o スキーマ = http o サーバー = qso o パス = /mrep/intro.mpeg o コメント = NULL 文字 * /u/me/myfile.ps これは以下の部分ごとに保存されています: o スキーマ = http o サーバー = qso o パス = /u/me/myfile.ps o コメント = NULL 文字 ------------------------------------------------------------------------ 10.23 PING (新規コマンド) PING DB2 コネクトが接続を確立するために使用されるクライアントとデータベース・サ ーバーの間の基礎接続のネットワーク応答時間 をテストします。 権限 なし 必須な接続 データベース コマンド構文 .-time-. .-1--+------+---------------------. >>-PING---db_alias----+-+-----------------------------+-+------>< '-number_of_times--+-------+--' +-times-+ '-time--' コマンド・パラメーター db_alias ping が設定されている DRDA サーバーのデータベース用別名を 指定します。 注: このパラメーターは必須ですが 現在使用されていません。将来の利用の ために予約してあります。 有効なデータベース別名を指定します。 number of times このテストの反復数を指定します。値は、 1 から 32767 までにしてくださ い。デフォルトは 1 です。1 個のタイミングが、反復ごとに 戻ります。 例 ホスト・データベース・サーバー hostdb への 1 回の接続に対するネットワーク応 答時間を テストするには、次のように行います。 db2 ping hostdb 1 または: db2 ping hostdb コマンドは、次の例と類似した出力を表示します。 Elapsed time: 7221 microseconds ホスト・データベース・サーバー hostdb への 5 回の接続に対するネットワーク応 答時間を テストするには、次のように行います。 db2 ping hostdb 5 または: db2 ping hostdb 5 times コマンドは、次の例と類似した出力を表示します。 Elapsed time: 8412 microseconds Elapsed time: 11876 microseconds Elapsed time: 7789 microseconds Elapsed time: 10124 microseconds Elapsed time: 10988 microseconds 使用上の注意 データベース接続は、このコマンドを呼び出す前に存在している必要があります。 存在して いない場合、エラーが起きます。 戻される経過時間は、DB2 コネクトを経由するクライアントと DRDA サーバー・デ ータベースの間の接続に対するものです。 ------------------------------------------------------------------------ 10.24 PUT ROUTINE (新規コマンド) PUT ROUTINE 指定されたルーチン SQL アーカイブ (SAR) ファイルを使用して、データベースに ルーチンを定義します。 権限 dbadm 必須な接続 データベース。暗黙的接続が使用可能な場合、デフォルト・データベースへの接続 が 確立されます。 コマンド構文 >>-PUT ROUTINE----FROM----file-name-----------------------------> >-----+---------------------------------------+---------------->< '-OWNER--new-owner--+----------------+--' '-USE REGISTERS--' コマンド・パラメーター FROM file-name ルーチン SQL アーカイブ (SAR) が保管されているファイルの名前。 OWNERnew-owner ルーチンの許可検査に使用するルーチンの新しい許可名を指定します。 new-owner は、定義されるルーチンに必要な権限を持っていなければなりませ ん。 OWNER 文節が指定されない場合は、始めにルーチンを定義した許可名が 使用されます。 USE REGISTERS CURRENT SCHEMA および CURRENT PATH 特殊レジスターをルーチンの定義に使 用することを 指示します。この文節が指定されない場合、ルーチンがはじめ に定義されるときは デフォルト・スキーマと SQL パスの設定が使用されま す。ルーチン定義 (ルーチンの名前を 含む) の非修飾オブジェクト名のスキ ーマ名として CURRENT SCHEMA が使用され、ルーチン定義の 非修飾ルーチン とデータ・タイプを解決するために CURRENT PATH が使用されます。 例 PUT ROUTINE FROM procs/proc1.sar; 使用上の注意 指定のスキーマの下で、複数のプロシージャーが 並行してインストールされること はありません。 ------------------------------------------------------------------------ 10.25 RECONCILE 以下の使用上の注意がコマンド説明に追加されます。 調整中、表データに応じて存在するファイルにリンクを作成しようとします。 ただ し他に矛盾がない場合には、これはデータ・リンク・マネージャー・メタデータに 応じては存在しません。 必要な DB2 データ・リンク・マネージャーは、表で参照 される DATALINK 値を 持っています。 調整は、データベースに対して構成されて いてデータ表の一部ではない 必須 DB2 データ・リンク・マネージャーの可用性を 許容します。 例外表が指定されている場合、例外レポート・ファイル (filename.exp) には、 フ ァイル参照が再確立できなかった各 DATALINK 列値の ホスト名、ファイル名、列 ID、および理由コードが入ります。 DROP DATALINKS MANAGER コマンドで DB2 デー タ・リンク・マネージャー自体が データベースからドロップされたことが原因でフ ァイル参照を再確立できなかった場合、 例外レポート・ファイルで報告されるファ イル名は完全なファイル名ではありません。 このファイル名には接頭部がありませ ん。 ドロップされたか、または使用できない DB2 データ・リンク・マネージャー になっている DATALINK 値の例外表では、DATALINK 値のファイル名は完全なファイ ル名ではありません。 接頭部がありません。たとえば、オリジナルの DATALINK 値 が 'http://host.com/dlfs/x/y/a.b' の場合、例外表で報告される値は 'http://host.com/x/y/a.b' になります。つまり、接頭部 'dlfs' は含まれませ ん。 この場合の例外レポート・ファイルは 'x/y/a.b' を含みます。 つまり、接頭 部 'dlfs' は含まれません。 調整プロセスの終了時、すべての必須 DB2 データ・リンク・マネージャーで 調整 処理が完了した場合にのみ、表がデータ・リンク調整保留 (DRP) 状態になります。 必須 DB2 データ・リンク・マネージャーのいずれかで (その必須 DB2 データ・リ ンク・マネージャーが使用できないことが原因で) 調整処理が 保留になっている場 合、表は DRP 状態になります。 以下は、考えられる違反のリストに追加されています。 00010-DB2 DATALINK 値によって参照される DB2 データ・リンク・マネージャーが、 DROP DATALINKS MANAGER コマンドを使ってデータベースからドロップされています。 この場合、例外表の対応する DATALINK 値には接頭部が含まれません。 たとえば、オリジナルの DATALINK 値が 'http://host.com/dlfs/prfx/x/y/a.b' で接頭部名が '/dlfs/prfx' の 場合、例外表には 'http://host.com/x/y/a.b' が含まれます。 ------------------------------------------------------------------------ 10.26 REORGANIZE TABLE 以下の文が使用上の注意に追加されます。 REORGANIZE TABLE は、索引拡張子に基づく索引を使用できません。 ------------------------------------------------------------------------ 10.27 RESTORE DATABASE 10.27.1 構文 以下のオプションは、TABLESPACE/TABLESPACE ONLINE/HISTORY FILE オプションの 後の RESTORE DATABASE コマンドの構文に追加されます。 >>-+-------------------------+--------------------------------->< '-INCREMENTAL--+-------+--' '-ABORT-' 以下のパラメーター説明が追加されます。 INCREMENTAL 手操作によるデータベースの累積復元が行われます。 ユーザーは復元コマン ドのそれぞれを実行します。 ABORT このパラメーターは、増分復元を完了前に終了するために使用します。 以下の例も追加されます。 以下は、回復可能データベースでの増分バックアップの週間予定のサンプルです。 完全なバックアップは週 1 回、差分は毎日、増分は週半ばに スケジュールされま す。 (Sun) backup db kdr use adsm (Mon) backup db kdr online incremental delta use adsm (Tue) backup db kdr online incremental delta use adsm (Wed) backup db kdr online incremental use adsm (Thu) backup db kdr online incremental delta use adsm (Fri) backup db kdr online incremental delta use adsm (Sat) backup db kdr online incremental use adsm 金曜日の朝に作成されるイメージの手操作によるデータベース復元については、 以 下のコマンドを実行してください。 restore db kdr incremental taken at (Thu) restore db kdr incremental taken at (Sun) restore db kdr incremental taken at (Wed) restore db kdr incremental taken at (Thu) 注: db2 restore db 形式の RESTORE コマンドは、 復元しているイメージ がデータベース・イメージであるか表スペース・イメージであるかに関係な く、 全データベース復元を実行します。db2 restore db tablespace 形式の RESTORE コマンドは、イメージで検出される表スペースの表スペース 復元を実行します。表スペースの リストが指定される RESTORE コマンドは、 明示的にリストされている表スペースの復元を 実行します。 10.27.2 DB2 データ・リンク・マネージャーの考慮事項 「DB2 データ・リンク・マネージャー考慮事項」セクションの 2 番目の段落は、 以下のように置き換えられます。 1 つ以上のデータ・リンク・サーバーがデータベースに対して構成されている場合は、 1 つのデータ・リンク・サーバーが使用不可能であっても復元操作は成功します。 データ・リンク・サーバーが再始動すると、データベースで再び使用可能になる前に、 そのデータ・リンク・サーバーで復元処理が完了します。 注: データベース復元操作が使用不可能なデータ・リンク・サーバーを待機している場合、 後続のデータベースまたは表スペース復元操作は失敗します。 ------------------------------------------------------------------------ 10.28 ROLLFORWARD DATABASE 「DB2 データ・リンク・マネージャー考慮事項」セクションの 2 番目の段落は、 以下のように置き換えられます。 1 つ以上のデータ・リンク・サーバーがデータベースに対して構成されている場合は、 1 つのデータ・リンク・サーバーが使用不可能であってもロールフォワード操作は成功します。 データ・リンク・サーバーが再始動すると、データ・リンク・サーバーでロールフォワード処理が 完了し、データベースで再び使用できるようになります。 ------------------------------------------------------------------------ 10.29 CLP 戻りコードに関する文書の誤り 第 2 章の「コマンド行プロセッサーの戻りコード」セクションの 2 番目の段落に は、 以下のように示されています。 たとえば、次の Bourne シェル・スクリプトは GET DATABASE MANAGER CONFIGURATION コマンドを実行し、 CLP 戻りコードを検査します。 db2 get database manager configuration if [ "$?" = "0" ] then echo "OK!" fi ------------------------------------------------------------------------ データ移動ユーティリティー 手引きおよび解説書 ------------------------------------------------------------------------ 11.1 第 2 章 インポート 11.1.1 バッファー挿入を行うインポートを使用 このセクションの最後の注を次のようにしてください。 注: EEE を除くすべての環境で、 INSERT_UPDATE パラメーターが指定されたイン ポート操作を行う間は、 バッファー挿入機能が使用不可になります。 ------------------------------------------------------------------------ 11.2 第 3 章 ロード 11.2.1 ロード操作後の保留状態 この節の最後の段落の最初の 2 文が、以下のように変更されました。 ロード・プロセスに関連した第 4 の状態 (チェック・ペンディング状態) は、参照制約とチェック制約、 DATALINKS 制約、AST 制約、または生成列制約に関係しています。 たとえば、既存の表が親表であり、そこに含まれる 1 次キーが従属表内の 外部キーによって参照されている場合、その親表の中のデータを置き換えると その両方の表 (表スペースではない) はチェック・ペンディング状態になります。 11.2.2 ロード制約事項と制限 生成された列およびロード・ユーティリティーには、以下の制約事項が適用されま す。 * 生成された列が索引の 「組み込み列」でなければ、あるいは generatedoverride ファイル・タイプ修飾子が使用されていなければ、生成さ れた列を固有索引に持つ表を ロードすることはできません。この修飾子が使 用されている場合は、列のすべての値が入力データ・ファイルに 提供される ことが予想されます。 * generatedoverride ファイル・タイプ修飾子が使用されていなければ、 生成 された列を区分化キーに持つ表をロードすることはできません。 この修飾子 が使用されている場合は、列のすべての値が入力データ・ファイルに 提供さ れることが予想されます。 11.2.3 totalfreespace ファイル・タイプ修飾子 totalfreespace ファイル・タイプ修飾子 (LOAD) が、 0 から 2 147 483 647 まで の範囲の値を受け入れるように変更されました。 ------------------------------------------------------------------------ 11.3 第 4 章 オートローダー 11.3.1 認証を YES に設定したときにオートローダーの実行を必要とする rexecd 「オートローダー・オプション」セクションの AUTHENTICATION および PASSWORD パラメーターの 説明に、次の文が追加されます。 Linux 環境で認証オプションを YES に設定してオートローダーを実行する場合、 rexecd をすべてのマシンで使用可能にしておく必要があります。 rexecd が使用可 能でない場合は、次のエラー・メッセージが生成されます。 openbreeze.torolab.ibm.com: 接続が拒否されました SQL6554N 処理をリモート実行しようとしたときに、エラーが発生しました。 次のエラー・メッセージが db2diag.log ファイルに生成されます。 2000-10-11-13.04.16.832852 Instance:svtdbm Node:000 PID:19612(db2atld) Appid: oper_system_services sqloRemoteExec Probe:31 ------------------------------------------------------------------------ DB2 レプリケーションの手引きおよび解説書 ------------------------------------------------------------------------ 12.1 レプリケーションおよび非 IBM サーバー 非 IBM サーバー (Informix、Microsoft SQL Server、Oracle、Sybase、 および Sybase SQL Anywhere など) にデータを複製する場合、あるいはそれらから データ を複製する場合には、DataJoiner バージョン 2 以降を使用しなければなりませ ん。 リレーショナル・コネクト バージョン 7 には更新機能がないため、 このタ イプのレプリケーションにリレーショナル・コネクト機能を使用することはできま せん。 また、すべてのプラットフォーム (AS/400、OS/2、OS/390、 UNIX、および Windows) 上において、既存の DB2 または DataJoiner に対して 異種レプリケーシ ョンを管理するには、DJRA (DataJoiner Replication Administration) を使用する 必要があります。 ------------------------------------------------------------------------ 12.2 Windows 2000 上のレプリケーション DB2 DataPropagator バージョン 7 には、Windows 2000 オペレーティング・システ ムとの互換性があります。 ------------------------------------------------------------------------ 12.3 SQL ファイルの保管時に知られているエラー DB2 コネクト パーソナル・エディションのコントロール・センターを使用している 場合、 SQL ファイルを保管することはできません。 SQL ファイルを保管しようと 試みたとき、データベース管理サーバー (DAS) が活動状態にないことを示す エラ ー・メッセージが表示されます。 これは実際、DAS が DB2 コネクト PE とともに 出荷されていないため、DAS を使用できない場合に 起こります。 ------------------------------------------------------------------------ 12.4 DB2 保守 レプリケーション環境で使用する各種 DB2 製品について、最新の DB2 保守をイン ストールするよう お勧めします。 ------------------------------------------------------------------------ 12.5 Web 上の Data Difference Utility Data Difference Utility (DDU) は、Web (ftp://ftp.software.ibm.com/ps/products/datapropagator/fixes/) から ダウン ロードできます。 DDU は、同じファイルの 2 つのバージョンを比較し、その差が 記録された出力ファイルを 生成するためのサンプル・ユーティリティーです。 詳 細については、サンプル・ユーティリティーに付属の README ファイルを参照して ください。 ------------------------------------------------------------------------ 12.6 第 3 章 データ・レプリケーション・シナリオ 12.6.1 レプリケーションのシナリオ 新しい異質のレプリケーション・シナリオについては、DataPropagator Web サイト のライブラリー・ページ (http://www.ibm.com/software/data/dpropr/) を参照し てください。そのシナリオのステップにしたがって、AIX の Oracle データベース にあるレプリケーションのソース表から、 DB2 (Windows NT 版) のデータベースに あるターゲット表へのコピーを行います。このシナリオは、DB2 DataJoiner レプリ ケーション管理 (DJRA) ツール、トリガーのキャプチャー、アプライ・プログラ ム、および DB2 DataJoiner を使用します。 ブックの 44 ページにある、パスワード・ファイル作成のステップ 6 の説明は 次 のように訂正してください。 ステップ 6: パスワード・ファイルの作成 アプライ・プログラムはソース・サーバーへの接続を必要としているため、 ユーザ ー認証用に、パスワード・ファイルを作成する必要があります。アプライ・プログ ラムを 実行するユーザー ID は、パスワード・ファイルを読み取ることができるこ とを確認してください。 パスワード・ファイルを作成するには、以下の手順で行います。 1. Windows NT のコマンド・プロンプト・ウィンドウで、C:\scripts ディレクト リーに移動します。 2. DEPTQUAL.PWD というディレクトリーに、新規ファイルを作成します。このフ ァイルは Notepad などのテキスト・エディターで作成してください。 パスワ ード・ファイルの命名規則は、applyqual.pwd です。 applyqual は、サブス クリプション・セットを作成した時にアプライ修飾子の大文字小文字と値に一 致する必要のある 大文字小文字の区別をするストリングです。このシナリオ では、アプライ修飾子は DEPTQUAL です。 注: DB2 DataPropagator のバージョン 5 も サポートされます。 3. パスワード・ファイルの内容には、次の形式があります。 SERVER= server USER=userid PWD=password それぞれ次の意味があります。 server ソース、ターゲット、または制御サーバーの名前で、 サブスクリプショ ン・セット表で現れます。このシナリオでは、これらの名前は SAMPLE と COPYDB です。 userid 特殊なデータベースを管理するために使用する予定のユーザー ID。 こ の値は、Windows NT および UNIX オペレーティング・システムで大文字 小文字の区別があります。 password ユーザー ID に関連したパスワード。この値は、Windows NT および UNIX オペレーティング・システムで大文字小文字の区別があります。 このファイルにはブランク行または注釈行を書き込まないでください。サーバ ー名、 ユーザー ID、およびパスワード情報のみを追加してください。 4. パスワード・ファイルの内容は、次の内容に類似しています。 SERVER=SAMPLE USER=subina PWD=subpw SERVER=COPYDB USER=subina PWD=subpw DB2 認証およびセキュリティに関しての詳細については、 「IBM DB2 管理の手引き 」 を参照してください。 ------------------------------------------------------------------------ 12.7 第 5 章 レプリケーションの計画 12.7.1 表および列名 レプリケーションは、表および列名のブランクをサポートしません。 12.7.2 DATALINK レプリケーション DATALINK レプリケーションは、バージョン 7.1 フィックスパック 1 の一部として Solaris で 使用可能です。これにはソースおよびターゲット DATALINK ファイル・ システムで動作する FTP デーモンが 必要で、MDTM (modtime) コマンドをサポート します。このコマンドは、提供されたファイルの 最終変更時間を表示します。 Solaris オペレーティング・システム バージョン 2.6 あるいは MDTM 用の FTP サ ポートが含まれないその他のバージョンを使用している場合、WU-FTPD のような追 加のソフトウェアが必要です。 AS/400 上の DB2 データベースと他のプラットフォーム上の DB2 データベース間で DATALINK 列を複製することはできません。 AS/400 プラットフォームでは、DATALINK 値の「注釈」属性のレプリケーションは サポートされていません。 AIX 4.2 を稼働中の場合は、デフォルトのユーザー出口プログラム (ASNDLCOPY) を 実行する前に、APAR IY03101 (AIX 4210-06 RECOMMENDED MAINTENANCE FOR AIX 4.2.1) の PTF をインストールしなければなりませせん。 この PTF には、FTP デ ーモンの "modtime/MDTM" コマンドの Y2K 修正が 含まれます。この修正を検査す るには、"modtime " コマンドから戻される 最終変更日付を確認してくださ い ( は January 1, 2000 以降に修正されたファイル)。 ターゲット表が外部 CCD 表の場合は、DB2 DataPropagator は DATALINK ファイル を 複製するために ASNDLCOPY ルーチンを呼び出します。 ASNDLCOPY および ASNDLCOPYD プログラムの使用方法に関する最新情報については、 各プログラムの ソース・コードのプロローグ・セクションを参照してください。 以下の制約事項が 適用されます。 * 内部 CCD 表には DATALINK 標識を含めることができますが、DATALINK 値には 含めることはできません。 * 圧縮された外部 CCD 表には DATALINK 値を含めることができます。 * 圧縮されていない CCD ターゲット表には DATALINK 列を含めることはできま せん。 * ソースおよびターゲット・サーバーが同じである場合、サブスクリプション・ セットに DATALINK 列を持つメンバーを含めることはできません。 12.7.3 LOB の制約事項 圧縮された内部 CCD 表には LOB 列または LOB 標識への参照を 含めることはでき ません。 12.7.4 レプリケーションの計画 65 ページで、「コネクティビティー」には次のような意味が含まれます。 アプライ・プログラムが制御サーバーに接続できない場合は、 アプライ・プログラムは終了します。 AS/400 版のデータ・ブロッキングを使用する場合、インターバル中に複製する デ ータ量の合計が、ブックの 69 ページに記載されている "4 MB" ではなく、 "4,000,000 行" を超えないように注意してください。 ------------------------------------------------------------------------ 12.8 第 6 章 レプリケーション環境のセットアップ 12.8.1 任意の場所で更新 (Update-anywhere) の前提条件 任意の場所で更新するレプリケーションを、競合検出および 150 以上の サブスク リプション・セット・メンバーでサブスクリプション・セットに セットアップする には、以下の DDL を実行して制御サーバー上に ASN.IBMSNAP_COMPENSATE 表を作成 する必要があります。 CREATE TABLE ASN.IBMSNAP_COMPENSATE ( APPLY_QUAL char(18) NOT NULL, MEMBER SMALLINT, INTENTSEQ CHAR(10) FOR BIT DATA, OPERATION CHAR(1)); 12.8.2 レプリケーション環境のセットアップ 95 ページで、「CD テーブル、索引、および表スペースのカスタマイズ」で DPREPL.DFT ファイルは \sqllib\bin ディレクトリーまたは \sqllib\java ディレ クトリーのいずれかにあると述べています。 実際は DPREPL.DFT は \sqllib\cc デ ィレクトリーにあります。 128 ページの保存制限に関する説明で、キャプチャー・プログラムがウォーム・ス タート したとき、またはキャプチャー・プログラムのプルーン・コマンドが使用さ れたときのみ、行を絞り込むために 保存制限が使用されると述べられています。 自動プルーニング・オプション付きでキャプチャー・プログラムを開始した場合、 キャプチャー・プログラムは 行を絞り込むために保存制限を使用しません。 ------------------------------------------------------------------------ 12.9 第 8 章 問題判別 レプリケーション・アナライザーは Windows 32 ビット・システムおよび AIX 上で 起動します。 AIX 上でアナライザーを実行する場合、/usr/local/bin/analyze と の競合を回避するために、sqllib/bin ディレクトリーがご使用の PATH 環境変数の /usr/local/bin よりも前にあることを確認してください。 レプリケーション・アナライザーには次の追加のオプションのキーワードがありま す: CT および AT。 CT=n n 日前以降のキャプチャー・トレース表の項目のみを 表示します。キーワー ドはオプションです。このキーワードを指定しない場合、 デフォルトは 7 日 となります。 AT=n n 日前以降のアプライ・トレール表の項目のみを 表示します。キーワードは オプションです。このキーワードを指定しない場合、 デフォルトは 7 日とな ります。 例: analyze mydb1 mydb2 f=mydirectory ct=4 at=2 deepcheck q=applyqual1 レプリケーション・アナライザーで、以下のキーワード情報が更新されました。 deepcheck アナライザーが、以下の情報を含むより完全な分析を実施することを指定しま す: 変更データ (CD) および作業単位 (UOW) 表のプルーニング情報、 DB2 (OS/390 版) 区分表スペースおよび圧縮の詳細、サブスクリプション・キーと 関連する ターゲット索引の分析、サブスクリプション予定表、およびサブス クリプション・セットの SQL ステートメント・エラー。分析にはすべてのサ ーバーが含まれます。 キーワードはオプションです。 lightcheck 以下の情報が報告書から除外されます: ASN.IBMSNAP_SUBS_COLS 表のすべての 列の詳細、 サブスクリプションのエラー、変則性、省略、および 誤ったある いは非効率的索引。この情報の縮小により、 リソースが節約され、より小さ な HTML 出力ファイルが作成されます。 このキーワードはオプションで、 deepcheck キーワードと相互に排他的です。 アナライザー・ツールは AS/400 プラットフォームのレプリケーションの PTF で 入手可能です。これらのツールはレプリケーション環境に関する情報を収集し、 HTML ファイルが作成されて IBM サービス技術員に送られ、 問題判別の手助けとな ります。AS/400 版のツールを入手するには、適切な PTF (たとえば、製品 5769DP2 には、PTF SF61798 のそれに代わる最新のもの) をダウンロードしてください。 「トラブルシューティング」セクションに以下の問題と解決を追加してください。 問題: アプライ・プログラムが変更の複製を行わずにループ; アプライ・トレール表は STATUS=2 を示します。 サブスクリプション・セットに複数のソース表が含まれています。このセット内にある ソース表のホットスポット処理を向上させるため、そのソース表に内部 CCD 表が 定義されていますが、その内部 CCD 表は別のサブスクリプション・セットにあります。 ソース表は更新されますが、内部 CCD 表を取り込むアプライ・プロセスは非同期で 実行されます (たとえば、アプライ・プログラムが開始されない、またはイベントが トリガーされないなどの可能性があります)。ソース表からターゲット表に更新を 複製するアプライ・プログラムは、内部 CCD 表の更新を待っているためにループします。 このループを停止するには、内部 CCD 表に対してアプライ・プログラムを開始 (または レプリケーションを引き起こすイベントをトリガー) します。アプライ・プログラムは 内部 CCD 表を取り込み、ループしているアプライ・プログラムがすべてのソース表からの 変更を処理できるようにします。 似たような状態が、複数のアプライ・プログラムによって取り込まれた 内部 CCD 表を持つソース表を含むサブスクリプション・セットで起きる場合があります。 ------------------------------------------------------------------------ 12.10 第 9 章 キャプチャー・プログラムおよびアプライ・プログラム (AS/400 版) 178 ページの「実行管理機能に関する注意事項」は以下のように解釈してくださ い。 デフォルト定義を変更したり、独自の定義を提供したりすることができます。 独自のサブシステム記述を作成する場合は、サブシステムの名前を QZSNDPR にし、それを QDPR 以外のライブラリーに作成する必要があります。 これらの定義の変更に関する詳細については、SD88-5009「AS/400e シリーズ 実行管理の手引き V4R3」を参照してください。 178 ページの「DB2 DataPropagator/400 のインストールの検査とカスタマイズ」に 以下を追加してください。 トランザクションのボリュームが大きいためにロック競合の問題が発生する場合は、 デフォルトの待ちタイムアウト値を 30 から 120 に増やすことができます。 取り込みジョブの開始ごとにジョブを変更することができます。または、以下の手順で、 ご使用のサブシステム上で実行されているすべてのジョブのデフォルト待ちタイムアウト値を 変更することもできます。 1. QGPL/QBATCH を重複させて新規のクラス・オブジェクトを作成するには、以下のコマンドを実行します。 CRTDUPOBJ OBJ(QBATCH) FROMLIB(QGPL) OBJTYPE(*CLS) TOLIB(QDPR) NEWOBJ(QZSNDPR) 2. 新規に作成されたクラスの待ちタイムアウト値を変更します (たとえば、300 秒に変更します)。 CHGCLS CLS(QDPR/QZSNDPR) DFTWAIT(300) 3. 新規に作成したクラスを使用するには、サブシステム記述 QDPR/QZSNDPR 内の ルーティング項目を更新してください。 CHGRTGE SBSD(QDPR/QZSNDPR) SEQNBR(9999) CLS(QDPR/QZSNDPR) 194 ページの「ジャーナル・レシーバー削除出口ルーチンの使用」には、 「ジャー ナル・レシーバー削除出口ルーチンの登録を除去する場合、ソース表に 使用されて いるすべてのジャーナルに DLTRCV(*NO) があることを確認してください。」 とい う文があります。 195 ページで、ADDEXITPGM コマンド・パラメーターは以下のようになります。 ADDEXITPGM EXITPNT(QIBM_QJO_DLT_JRNRCV) FORMAT(DRCV0100) PGM(QDPR/QZSNDREP) PGMNBR(*LOW) CRTEXITPNT(*NO) PGMDTA(65535 10 QSYS) ------------------------------------------------------------------------ 12.11 第 10 章 キャプチャー・プログラムおよびアプライ・プログラム (OS/390 版) 第 10 章で、以下の段落を更新します。 12.11.1 DB2 DataPropagator (OS/390 版) の前提条件 DB2 DataPropagator (OS/390 版) バージョン 7 (V7) を実行するには、 DB2 (OS/390 版) バージョン 5、DB2 (OS/390 版) バージョン 6、または DB2 (OS/390 版) バージョン 7 が必要です。 12.11.2 OS/390 での UNICODE および ASCII エンコード・スキーム DB2 DataPropagator (OS/390 版) V7 は、UNICODE および ASCII エンコード・スキ ームを サポートしています。 この新しいエンコード・スキームを活用するには、 DB2 (OS/390 版) V7 が必要で、 下のセクションで説明されているように DB2 DataPropagator ソース表、ターゲット表、 および制御表を手操作で作成または変 換しなければなりません。 ただし、エンコード・スキームを変更しなくても、 既 存のレプリケーション環境は DB2 DataPropagator (OS/390 版) V7 では動作しませ ん。 12.11.2.1 エンコード・スキームの選択 ソース、CD、およびターゲット表が同じエンコード・スキームを使用している場 合、 レプリケーション環境でデータを変換する必要性を最小にすることができま す。 表のエンコード・スキームを選択するとき、表スペースの文字データは ASCII、UNICODE、 または EBCDIC でエンコードできるという、単一 CCSID 規則に したがってください。 表スペース内のテーブルはすべて、同じエンコード・スキー ムを使用しなければなりません。 SQL ステートメントの表すべてのエンコード・ス キームは同じでなければなりません。 また、視点および結合に使用される表もすべ て、同じエンコード・スキームを使用する必要があります。 単一 CCSID 規則にしたがっていないと、DB2 はバインド時または実行時に違反を検 出し、SQLCODE -873 を返します。 どの表が ASCII になり、どの表が UNICODE に なるかは、 使用しているクライアント/サーバー構成によって異なります。 特に、 表のエンコード・スキームを選択するときには以下の規則にしたがってください。 * DB2 (OS/390 版) のソース表またはターゲット表は EBCDIC、ASCII、または UNICODE に することができます。 この表は、サポートされている DBMS (DB2 ファミリー、または DataJoiner 付きの非 DB2) に 同じ、または異なるエン コード・スキームを持つ表との間でコピーできます。 * DB2 (OS/390 版) ソース・サーバーでは、同じサーバー上の CD、UOW、レジス ター、 および prune 制御表はすべて、同じエンコード・スキームを使用しな ければなりません。 この整合性を確実にするには、常にエンコード・スキー ムを明示的に指定してください。 * 同じ制御サーバー上の制御表 (ASN.IBMSNAP_SUBS_xxxx) はすべて、同じエン コード・スキームを 使用しなければなりません。 * その他の制御表はどのエンコード・スキームでも使用できますが、 ASN.IBMSNAP_CRITSEC 表は EBCDIC のままにしておくようお勧めします。 12.11.2.2 エンコード・スキームの設定 表に適切なエンコード・スキームを指定するには、表の生成に使用されている SQL を変更します。 * 新しいソース表とターゲット表を適切なエンコード・スキームで作成するか、 既存のターゲット表とソース表のエンコード・スキームを変更してください。 既存の表のエンコード・スキームを変更する前にキャプチャー・プログラムと アプライ・プログラムを 停止してから、キャプチャー・プログラムをコール ド・スタートしてアプライ・プログラムを 再始動するようお勧めします。 既 存の表のエンコード・スキームを変更するには: 1. Reorg ユーティリティーを使用して既存の表をコピーします。 2. 既存の表をドロップします。 3. 新しいエンコード・スキームを指定して、表を再作成します。 4. Load ユーティリティーを使用して、古いデータを新しい表にロードしま す。 Load ユーティリティーと Reorg ユーティリティーについて詳しくは、 「DB2 Universal Database for OS/390 Utility Guide and Reference」を 参照して ください。 * 新しい制御表を適切なエンコード・スキームで作成するか、既存の制御表の エンコード・スキームを変更します。 DPCNTL.MVS は DB2 (OS/390 版) とともに出荷され、sqllib\samples\repl に あります。 このファイルには、制御表を作成するいくつかの CREATE TABLE ステートメントが含まれています。 ASCII または UNICODE でなければならな い表 (ASN.IBMSNAP_REGISTER、ASN.IBMSNAP_PRUNCNTL など) の場合、 以下の 例に示されているように、CCSID ASCII または CCSID UNICODE キーワードを 追加してください。 CREATE TABLE ASN.IBMSNAP_PRUNCNTL ( TARGET_SERVER CHAR( 18) NOT NULL, TARGET_OWNER CHAR( 18) NOT NULL, TARGET_TABLE CHAR( 18) NOT NULL, SYNCHTIME TIMESTAMP, SYNCHPOINT CHAR( 10) FOR BIT DATA, SOURCE_OWNER CHAR( 18) NOT NULL, SOURCE_TABLE CHAR( 18) NOT NULL, SOURCE_VIEW_QUAL SMALLINT NOT NULL, APPLY_QUAL CHAR( 18) NOT NULL, SET_NAME CHAR( 18) NOT NULL, CNTL_SERVER CHAR( 18) NOT NULL, TARGET_STRUCTURE SMALLINT NOT NULL, CNTL_ALIAS CHAR( 8) ) CCSID UNICODE DATA CAPTURE CHANGES IN TSSNAP02; 既存の制御表および CD 表を変更するには、 Reorg ユーティリティーと Load ユーティリティーを使用します。 * 新しいレプリケーション・ソースまたはサブスクリプション・セットを作成す るとき、 管理ツールによって生成された SQL ファイルを変更し、適切なエン コード・スキームを 指定してください。 この SQL には、レプリケーショ ン・ソースおよびサブスクリプション・セットそれぞれについて、 CD および ターゲット表を作成するために使用される複数の CREATE TABLE ステートメン トが含まれています。 必要に応じて、キーワード CCSID ASCII または CCSID UNICODE を追加してください。 例: CREATE TABLE user1.cdtable1 ( employee_name varchar, employee_age decimal ) CCSID UNICODE; CCSID の詳細については、 「DB2 UDB for OS/390 SQL Reference」を参照し てください。 ------------------------------------------------------------------------ 12.12 第 11 章 キャプチャー・プログラムおよびアプライ・プログラム (UNIX 版) 12.12.1 UNIX および Windows でのキャプチャー・プログラムとアプライ・プログ ラムの環境変数の設定 ソース・データベースをデフォルト・コード・ページ値以外のコード・ページで 作 成した場合、DB2CODEPAGE 環境変数を該当するコード・ページに設定してくださ い。 DB2CODEPAGE を設定する前のコード・ページ値を取得する際の情報について は、 「DB2 管理の手引き」を 参照してください。 キャプチャー・プログラムは、 データの取り込み元のデータベースと同じコード・ページで実行する必要がありま す。 DB2 は、キャプチャー・プログラムが実行されている活動状態の環境から キ ャプチャー・プログラムのコード・ページを取得します。 DB2CODEPAGE が設定され ていない場合、DB2 はコード・ページ値をオペレーティング・システムから取得し ます。 オペレーティング・システムから取得される値は、データベースの作成時に デフォルト・コード・ページを使用した場合、キャプチャー・プログラムには正し い値になります。 ------------------------------------------------------------------------ 12.13 第 14 章 表の構造 339 ページで、値 "2" の STATUS 列の記述に、以下の文章を追加してください。 内部 CCD 表を使用してアプライ・トレール表の STATUS 列内の "2" の値を繰り返し取得する場合、 「第 8 章: 問題判別機能」で、「問題: アプライ・プログラムが複製の変更を行わずにループし、 アプライ・トレール表が STATUS=2 を示す」を参照してください。 ------------------------------------------------------------------------ 12.14 第 15 章 キャプチャー・プログラムとアプライ・プログラムのメッセージ メッセージ ASN0017E は以下のようになります。 ASN0017E キャプチャー・プログラムが重大な内部エラーを検出し、正しいエラー・メッセー ジを発行できませんでした。 ルーチン名は "routine" です。 戻りコードは "return_code" です。 メッセージ ASN1027S が追加されます。 ASN1027S ラージ・オブジェクト (LOB) 列の指定が多すぎます。エラー・コードは "" です。 説明:サブスクリプション・セット・メンバーに指定されている ラージ・オブジェ クト (BLOB、CLOB、または DBCLOB) 列が多すぎます。 許可されている列の最大数 は 10 です。 ユーザーの応答: 超過したラージ・オブジェクト列を サブスクリプション・セッ ト・メンバーから除去してください。 メッセージ ASN1048E は以下のようになります。 ASN1048E 適用循環の実行が失敗しました。詳細については、アプライ・トレール表を参照し てください: "" 説明:適用循環に失敗しました。 メッセージでは、"" は ""、""、および "" を示しています。 ユーザーの応答: 適用循環が失敗した理由を調べるには、 監査トレール表の APPERRM フィールドをチェックしてください。 ------------------------------------------------------------------------ 12.15 付録 A 収集およびアプライ・プログラムをアプリケーション内で開始する ブックの 399 ページで、収集およびアプライ・プログラムを開始する サンプル・ ルーチンの注釈にいくつかエラーが記載されていますが、 サンプル内のコードは正 しいです。サンプルの後半は適用パラメーターに 関する内容ですが、注釈では収集 パラメーターに関することとなっています。 収集およびアプライ・プログラム API のサンプルと、それぞれの MAKE ファイル を、 以下のディレクトリーのから入手できます: NT の場合 - sqllib\samples\repl UNIX の場合 - sqllib/samples/repl ------------------------------------------------------------------------ システム・モニター 手引きおよび解説書 ------------------------------------------------------------------------ 13.1 db2ConvMonStream 使用上の注意の中で、スナップショット・データ・ストリーム・タイプの構造は、 SQLM_ELM_SUBSECTION は sqlm_subsection である必要があります。 ------------------------------------------------------------------------ 問題判別の手引き ------------------------------------------------------------------------ 14.1 ユーザーがログオンしていないときに DB2 を Windows 95、Windows 98、 ま たは Windows ME で開始 db2start コマンドを Windows 95、Windows 98、または Windows Millennium Edition (ME) 環境で 正常に機能させるには、以下のどちらかを行う必要がありま す。 * Windows ログオン・ウィンドウまたは Microsoft ネットワーキング・ ログオ ン・ウィンドウを使用してログオンします。 * db2logon コマンドを実行します (db2logon コマンドについては、(NOTE_1) を 参照してください)。 さらに、ログオン中、または db2logon コマンドで指定される ユーザー ID は、 DB2 の要件を満たしている必要があります ((NOTE2) を参照)。 db2start コマンドが開始されると、 ユーザーがログオンされていることをチェッ クします。ユーザーがログオンされている場合は、 db2start コマンドはそのユー ザーの ID を使用します。 ユーザーがログオンされていない場合は、db2start コ マンドは、db2logon コマンドが実行されたかどうか、 実行されている場合は、 db2start コマンドが db2logon コマンドで指定されているユーザー ID を 使用し ているかどうかをチェックします。db2start コマンドが有効なユーザー ID を見つ けることができない場合は、 コマンドは終了します。 DB2 ユニバーサル・データベース バージョン 7 を Windows 95、Windows 98、また は Windows ME にインストール中に インストール・ソフトウェアは、システムのブ ート時に db2start コマンドを 実行するショートカットを「スタートアップ」フォ ルダーにデフォルトで追加します (詳しくは、(NOTE_1) を参照してください)。 シ ステムの ユーザーが一度もログオンしたことがない場合、または db2logon コマン ドを実行したことがない場合は、db2start コマンドは終了します。 ユーザーが Windows やネットワークにログオンする機会が少ない場合は、 以下の ようにバッチ・ファイルからコマンドを実行することにより、 db2start コマンド の前に db2logon コマンドを実行する要求を隠すことができます。 1. db2start.exe コマンドに続いて db2logon コマンドを実行するバッチ・ファ イルを作成してください。 例: @echo off db2logon db2local /p:password db2start cls exit 2. バッチ・ファイルの名前を db2start.bat とし、 DB2 をインストールしたド ライブおよびパスの下の /bin ディレクトリーに保管してください。バッチ・ ファイルをこの場所に置くことにより、 オペレーティング・システムがバッ チ・ファイルへのパスを検索できるようになります。 DB2 がインストールされているドライブおよびパスは、DB2 レジストリー変数 DB2PATH に保管されます。DB2 がインストールされているドライブとパスを検 出するには、 次のコマンドを実行してください。 db2set -g db2path db2set コマンドにより、c:\sqllib という値が戻されるとします。 この場 合、バッチ・ファイルを以下に保管します。 c:\sqllib\bin\db2start.bat 3. システムのブート時に DB2 を開始するには、スタートアップ・フォルダー内 の ショートカットからバッチ・ファイルを実行する必要があります。2 つの オプションがあります。 o DB2 インストール・プログラムで作成されたショートカットを変更し、 db2start.exe の代わりにバッチ・ファイルを実行するようにします。前 の例では、ショートカットは db2start.bat バッチ・ファイルを 実行し ます。DB2 インストール・プログラムで作成されたショートカットは DB2 - DB2.lnk と呼ばれ、ほとんどのシステムで、 c:\WINDOWS\Start Menu\Programs\Start\DB2 - DB2.lnk に位置します。 o バッチ・ファイルを実行する独自のショートカットを追加し、DB2 イン ストール・プログラムで 追加されたショートカットを削除してくださ い。DB2 ショートカットを削除するには、 次のコマンドを使用してくだ さい。 del "C:\WINDOWS\Start Menu\Programs\Startup\DB2 - DB2.lnk" 独自で作成したショートカットを使用する場合は、ショートカットの 終 了時にクローズ 属性を設定する必要があります。この属性を設定しない と、 db2start コマンドが完了した後も、DOS コマンド・プロンプトが タスクバーに残ったままになります。db2start 処理中に DOS ウィンド ウが開かないようにするには、このショートカット (およびショートカ ットが 実行中の DOS ウィンドウ) を最小化にして実行するよう設定し て作成できます。 注: システムのブート時に DB2 を開始する代わりに、 DB2 を使用する アプリケーションの実行の前に DB2 を開始させることができま す。 詳細については、(NOTE5) を参照してください。 db2start コマンドの前に db2logon コマンドを実行するバッチ・ファイルを使用す る場合で、ユーザーが頻繁にログオンする場合は、 db2start コマンドは機能し続 けますが、DB2 はログオン・ユーザーの ユーザー ID を使用するという点が異なり ます。追加の詳細については、(NOTE_1) を参照してください。 注: 1. db2logon コマンドはユーザー・ログオンを シミュレートします。db2logon コマンドの形式は、次の通りです。 db2logon userid /p:password コマンドに指定されるユーザー ID は、DB2 の命名要求を 満たす必要があり ます (詳細については、(NOTE2) を参照)。 ユーザー ID とパスワードなしで コマンドを実行すると、ユーザー ID とパスワード用の プロンプトのウィン ドウがオープンします。指定されたパラメーターがユーザー ID のみの 場合 は、ユーザーに対してパスワードのプロンプトは出されません。ある条件の下 では、 以下に述べるようにパスワードが要求されます。 db2logon コマンドによって設定されるユーザー ID とパスワードの値は、ユ ーザーが Windows ログオン・ウィンドウあるいは Microsoft ネットワークの ログオン・ウィンドウの いずれも使用せずにログオンした場合にのみ使用さ れます。 ユーザーがログオンし、db2logon コマンドが 実行された場合、 db2logon コマンドからのユーザー ID は すべての DB2 アクションで使用さ れますが、db2logon コマンドで指定されたパスワードは無視されます。 ユーザーが Windows ログオン・ウィンドウあるいは Microsoft ネットワーク のログオン・ウィンドウを使用してログオンしなかった場合、 db2logon コマ ンドは次のように使用されます。 o db2start コマンドは開始時にユーザー ID を 使用しますが、パスワー ドを必要としません。 o 表の作成のようなアクションで高水準修飾子がない場合は、 高水準修飾 子としてユーザー ID が使用されます。例: 1. 次を実行します: db2logon db2local 2. その後、次を実行します: create table tab1 db2local.tab1 という高水準修飾子で表が作成されます。 表やその他のオブジェクトのスキーマ名に相当するユーザー ID を 使用 してください。 o システムがサーバーへのクライアントとして機能する場合は、 ユーザー ID とパスワードなしで CONNECT ステートメントを実行し (たとえば、 CONNECT TO TEST)、認証は server に設定され、 db2logon コマンドか らのユーザー ID と パスワードが、リモート・サーバーのユーザーの妥 当性検査に使用されます。ユーザーが明示的ユーザー ID およびパスワ ード (たとえば、 CONNECT TO TEST USER userID USING password) を使 用して 接続すると、CONNECT ステートメントで指定されている値が使用 されます。 2. バージョン 7 では、ログオンに使用される、または db2logon コマンドで指 定されるユーザー ID は、 次の DB2 要件を満たさなければなりません。 o 次の語は使用できません: USERS、ADMINS、GUESTS、PUBLIC、LOCAL、 ま たは SQL 解説書 にリストされている SQL 予約語。 o SQL, SYS または IBM で開始することはできません。 o 以下の文字を含めることができます: + A から Z (Windows 95、Windows 98、および Windows ME では、ユ ーザー ID の 大文字小文字が区別されます) + 0 から 9 + @, #, または $ 3. カスタマイズされた対話式インストール中に、あるいは応答ファイル・ イン ストールを実行中の場合は、DB2.AUTOSTART=NO オプションを指定して、 スタ ートアップ・フォルダー内に db2start ショートカットを作成しないようにす ることができます。 これらのオプションを使用すると、スタートアップ・フ ォルダー内に db2start ショートカットは作成されず、独自のショートカット を追加して db2start.bat ファイルを実行する必要があります。 4. Windows 98 と Windows ME では、 Windows 98 または Windows ME の始動時 に常にログオンするユーザー ID を指定するオプションを使用できます。 こ の場合、Windows ログオン・ウィンドウは表示されません。このオプションを 使用すると、ユーザー ID が DB2 要件 (詳細については (NOTE2) を参照) を 満たしていると、ログオンが行われ、db2start コマンドが続きます。このオ プションを使用しないと、常にログオン・ウィンドウが 現れます。ログオン せずにこのウィンドウを取り消すと、上記で述べたように 事前に db2start コマンドが実行されているか、 あるいはバッチ・ファイルから呼び出されて いるかのいずれかでなければ、 db2logon コマンドは失敗します。 5. システム・ブート中に DB2 を開始しない場合は、 DB2 をアプリケーションか ら開始することができます。DB2 を使用する アプリケーションの初期設定の 一部として、db2start.bat ファイルを実行することができます。この方法を 使用すると、これを使用している アプリケーションが開始されたときにのみ DB2 は開始されます。 アプリケーションを終了すると、db2stop コマンドが 実行され、DB2 を停止します。このようにして、 システム・ブート時に DB2 が開始されない場合でも、 ビジネス・アプリケーションで DB2 を開始するこ とができます。 DB2 シンクロナイザー・アプリケーションを使用するには、あるいは アプリ ケーションから同期化 API を呼び出すには、実行用にダウンロードされたス クリプトが ローカル・インスタンスまたはローカル・データベースのいずれ かに対して操作する コマンドを含む場合は、DB2 を開始させる必要がありま す。 これらのコマンドは、データベース・スクリプトまたはインスタンス・ スクリプトに 含めるか、あるいはオペレーティング・システム (OS) スクリ プトに組み込むことが できます。OS スクリプトにコマンド行プロセッサー、 あるいは インスタンスまたはデータベースを使用する DB2 API が含まれない 場合は、 DB2 を開始しなくても実行することができます。どのコマンドが同 期化処理中に スクリプトから実行されるかを事前に判別するのは難しいの で、 通常は同期化の開始前に DB2 を開始しておきます。 db2sync コマンドまたは同期化 API の いずれかをアプリケーションから呼び 出さない場合は、アプリケーションの 初期設定中に DB2 を開始します。同期 化を開始するのに DB2 内の DB2 シンクロナイザーのショートカットを使用す る場合は、 db2sync.bat ファイルを実行するよう DB2 シンクロナイザーのシ ョートカットを変更する必要があります。同期化の開始前に DB2 が実行され ていることを確認するために、 バッチ・ファイルに以下のコマンドを含めて ください。 @echo off db2start.bat db2sync.exe db2stop.exe cls exit この例では、上記で述べたように、db2start.bat ファイルで db2logon およ び db2start コマンドが呼び出されると想定しています。 アプリケーションの開始時に DB2 を開始することに決めたら、 DB2 のインス トールにおいて DB2 を開始するスタートアップ・フォルダーへの ショートカ ットが追加されないよう確認してください。詳細については、(NOTE3) を参照 してください。 ------------------------------------------------------------------------ 14.2 第 2 章 DB2 ユニバーサル・データベース・サーバーの障害追及 「"ロックおよびデッドロック"」セクションの「"遅い、またはハングしたように見 えるアプリケーション"」 サブセクションにある「"次のキー・ロックによってロッ ク待機またはデッドロックは起こりません"」の 下の説明を次のように変更しま す。 次のキー・ロック は、すべての INSERT および DELETE ステートメントの次のキ ー、 および SELECT ステートメントの結果セットを超える、次に大きなキー値を自 動的にロックすることによって、 反復可能読み取り (RR) 分離レベルを保証しま す。 索引のキー部分を更新する UPDATE ステートメントの場合、元の索引キーは削 除され、新しいキー値が挿入されます。 次のキー・ロックは、キー挿入とキー削除 の両方で行われます。 これは、ANSI および SQL92 標準 RR を保証するために必要 で、DB2 デフォルトです。 アプリケーションのスナップショット情報を調べてください。 次のキー・ロックに 問題があると思われる場合、どのアプリケーションも 反復可能読み取り (RR) の振 る舞いに依存せず、走査がコミットされていない削除をスキップしても 問題なけれ ば、DB2_RR_TO_RS オプションをオンに設定できます。 DB2_RR_TO_RS がオンであれば、索引キーの挿入および削除で次のキー・ロックが行 われないため、 ユーザー表に対する走査で RR の振る舞いは保証されません。 カ タログ表はこのオプションの影響を受けません。 その他の振る舞いの変更は、DB2_RR_TO_RS がオンであれば、走査の対象となってい る行であっても、 削除済みでコミットされていない行は走査でスキップされること です。 たとえば、トランザクション A が column1=10 の行を削除し、 トランザクション B が column1>8 かつ column1<12 を走査するとします。 DB2_RR_TO_RS がオフであれば、トランザクション B は、トランザクション A がコ ミット またはロールバックを行うのを待ちます。 トランザクション A がロールバ ックした場合、column1=10 の行はトランザクション B の 照会の結果セットに組み 込まれます。 DB2_RR_TO_RS がオンであれば、トランザクション B は、トランザクション A がコ ミット またはロールバックを行うのを待ちません。 トランザクション B は、削除 された行が含まれていない照会結果をすぐに受け取ります。 ANSI および SQL92 標準 RR が必要な場合、またはコミットされていない削除を走 査にスキップさせたくない場合、 このオプションを使用しないでください。 ------------------------------------------------------------------------ 64 ビット・プラットフォームで DB2 ユニバーサル・データベースを使用する ------------------------------------------------------------------------ 15.1 第 5 章 構成 15.1.1 LOCKLIST 次の情報を表 2 に追加する必要があります。 パラメーター 前の上限 現在の上限 LOCKLIST 60000 524288 15.1.2 shmsys:shminfo_shmmax 64 ビット Solaris オペレーティング・システム上の DB2 ユーザーは、 必要に応 じて /etc/system にある "shmsys:shminfo_shmmax" の値を増やし、 ラージ・デー タベースの共有メモリー設定を割り振ることができるようにしてください。 「DB2 (UNIX 版) 概説およびインストール」ブックでは、このパラメーターを 「マシンの 物理 RAM の 90% (バイト数)」に設定するよう推奨しています。この推奨は、64 ビ ット実装マシンでも有効です。 ただし、 「DB2 (UNIX 版) 概説およびインストール」ブックでは、次の推奨には問 題があります。 4 GB より大きい RAM (Solaris オペレーティング・システムで は、合計 64 GB まで) の 32 ビット・システムでは、ユーザーが shmmax の値を 4 GB より大きい数に設定し、 32 ビット・カーネルを使用している場合、カーネルは この数の下位 32 ビットのみ を参照し、その結果、shmmax が非常に小さい値にな ることが あります。 ------------------------------------------------------------------------ 15.2 第 6 章 制約事項 64 ビット・オペレーティング・システムでは、現在 LDAP サポートはありません。 32 ビットおよび 64 ビット・データベースを、同じパスに作成することはできませ ん。 たとえば、32 ビット・データベースが にある場合には、次のよ うになります。 db2 create db on これが 64 ビット・インスタンスから実行されると、「SQL10004C データベース・ ディレクトリー にアクセス中に入出力エラーが発生しました。」となり、失敗しま す。 ------------------------------------------------------------------------ XML エクステンダー 管理およびプログラミング IBM DB2 XML エクステンダーのリリース・ノートは、DB2 XML Web サイト http://www-4.ibm.com/software/data/db2/extenders/xmlext/library.html に あ ります。 ------------------------------------------------------------------------ MQSeries このセクションでは、DB2 と MQSeries を使用して、メッセージングとデータベー ス・アクセスを 結合するアプリケーションを構成する方法について説明します。こ のセクションで取り上げているのは、 ユーザー定義関数 (UDF) に似た関数のセッ トで、これは DB2 ユニバーサル・データベース バージョン 7.2 では オプション で使用可能にすることができます。これらの基本的な関数を使用すると、単純なイ ベント通知から データウェアハウスに至るまで、広範囲なアプリケーションをサポ ートできます。 データウェアハウス・アプリケーションの詳細については、22.15, MQSeries とデ ータウェアハウスセンターの統合 を参照してください。 ------------------------------------------------------------------------ 17.1 DB2 MQSeries 関数のインストールおよび構成 このセクションでは、DB2 MQSeries 関数を利用するために DB2 環境を構成する方 法について 説明します。次の手順を正常に完了すると、SQL 内から DB2 MQSeries 関数を利用できます。各関数に ついては、「リリース情報」の「SQL 解説書」セク ションで説明しています。最新マニュアルや ヒントなどの追加情報は、 http://www.ibm.com/software/data/integration/MQSeriesから 入手できます。 DB2 MQSeries 関数を構成し、使用可能にする基本的な手順は、以下の通りです。 1. MQSeries をインストールします。 2. MQSeries AMI をインストールします。 3. DB2 MQSeries 関数を使用可能にし、構成します。 さらに、DB2 MQSeries 関数から提供される発行/サブスクリプション機能を利用す るためには、 MQSeries Integrator または MQSeries 発行/サブスクリプション機 能もインストールする 必要があります。MQSeries Integrator に関する情報は、 http://www.ibm.com/software/ts/mqseries/integratorから入手できます。 MQSeries 発行/サブスクリプション機能に関する情報は、 http://www.ibm.com/software/ts/mqseries/txppacsのカテゴリー 3 に 記載されて います。 17.1.1 MQSeries のインストール 最初のステップは、MQSeries バージョン 5.2 が DB2 サーバーにインストールされ て いることを確認する作業です。このバージョンの MQSeries がすでにインストー ルされて いる場合は、次のステップ「MQSeries AMI のインストール」へ進んでく ださい。 DB2 バージョン 7.2 には、DB2 で使用される MQSeries サーバーのコピ ーが含まれて います。MQSeries をインストールするため、または既存の MQSeries インストールを アップグレードするための、プラットフォーム別の手順が、 http://www.ibm.com/software/ts/mqseries/library/manualsの プラットフォーム 別「概説およびインストール」マニュアルに記載されています。 インストール・プ ロセスを進めていく中で、必ずデフォルトのキュー・マネージャーを セットアップ してください。 17.1.2 MQSeries AMI のインストール 次のステップは、MQSeries Application Messaging Interface (AMI) をインストー ル する作業です。これは、管理およびプログラミングのタスクを完全に 分離する MQSeries プログラミング・インターフェースの拡張です。DB2 MQSeries 関数は、 このインターフェースのインストールを必要とします。MQSeries AMI がすでに DB2 サーバーに インストールされている場合は、次のステップ「DB2 MQSeries 関数を 使用可能にする」へ 進んでください。MQSeries AMI がまだインストールされてい ない場合は、DB2 7.2 に 添付されているインストール・パッケージからインストー ルするか、 または MQSeries Support Pacs の Web サイト http://www.ibm.com/software/ts/mqseries/txppacs から AMI の コピーをダウン ロードしてインストールします。AMI は、「カテゴリー 3 - 製品拡張機能」に あ ります。便宜上、DB2 には MQSeries AMI のコピーを添付してあります。このファ イルは、 sqllib/cfg ディレクトリー内にあります。ファイルの名前は、以下のよ うに オペレーティング・システムによって異なります。 AIX バージョン 4.3 以上 ma0f_ax.tar.Z HP-UX ma0f_hp.tar.Z Solaris 稼動環境 ma0f_sol7.tar.Z Windows 32 ビット ma0f_nt.zip 圧縮されたインストール・イメージに含まれている AMI readme ファイルに、 通常 の AMI インストール・プロセスが記載されているので、それにしたがってくださ い。 17.1.3 DB2 MQSeries 関数を使用可能にする このステップでは、DB2 MQSeries 関数のデータベースを構成し、使用可能にしま す。 enable_MQFunctions ユーティリティーは柔軟なコマンドで、 まずセットアッ プされている MQSeries 環境が適切であるかを調べ、次に DB2 MQSeries 関数の デ フォルト構成をインストールおよび作成し、これらの関数を使用して指定のデータ ベースを 使用可能にし、最後に構成が機能することを確認します。 1. Windows NT または Windows 2000 の場合は、ステップ 5 へ進みます。 2. UNIX でのグループの設定: これらの関数を UNIX 上で使用可能にする場合 は、 まず DB2 インスタンス所有者 (多くの場合、db2inst1) と隔離された UDF に関連付けられている ユーザー ID (多くの場合、db2fenc1) を MQSeries グループ mqm に追加する必要があります。 これは、DB2 関数が MQSeries にアクセスするために必要です。 3. UNIX 上で DB2 環境変数を設定する: AMT_DATA_PATH 環境変数を DB2 が認識 できる リストに追加します。ファイル $INSTHOME/sqllib/profile.env を編 集する ことによって、AMT_DATA_PATH を DB2ENVLIST に追加できます。 db2set コマンドを使用することもできます。 4. UNIX 上でデータベース・インスタンスを再始動する: 環境変数の変更を有効 にする には、データベース・インスタンスを再始動する必要があります。 5. UNIX の場合は $INSTHOME/sqllib/cfg に、 Windows の場合は %DB2PATH%/cfg にディレクトリーを変更します。 6. コマンド enable_MQFunctions を実行して、 DB2 MQSeries 関数のデータベー スを構成し、使用可能にします。このコマンドの詳細に ついては、17.6, enable_MQFunctions を参照してください。いくつかの一般的な例を 後述しま す。正常に完了すると、指定されたデータベースが使用可能になり、構成が テストされます。 7. コマンド行処理プログラムを使用してこれらの関数をテストするには、使用可 能に なったデータベースに接続した後で次のコマンドを実行します。 values DB2MQ.MQSEND('a test') values DB2MQ.MQRECEIVE() 最初のステートメントでは「a test」という メッセージを DB2MQ_DEFAULT_Q キューへ送り、2 番目のステートメントではそれを 受け取ります。 注: enable_MQFunctions を実行した結果として、 デフォルトの MQSeries 環境が 確立されます。MQSeries キュー・マネージャー DB2MQ_DEFAULT_MQM と デフ ォルト・キュー DB2MQ_DEFAULT_Q が作成されます。 ファイル amt.xml、 amthost.xml、および amt.dtd が、 AMT_DATA_PATH が指しているディレクト リーにまだ存在していない場合は、作成されます。 amthost.xml ファイルが 存在しているが、connectionDB2MQ の定義が含まれて いない場合は、該当す る情報を伴ってファイルに行が追加されます。元のファイルの コピーは DB2MQSAVE.amthost.xml として保管されます。 ------------------------------------------------------------------------ 17.2 MQSeries メッセージ・スタイル DB2 MQSeries 関数では、データグラム、発行/サブスクリプション (p/s)、および 要求/応答 (r/r) の 3 つのメッセージング・モデルをサポートしています。 データグラムとして送信されるメッセージは、応答を要求せずに単一の宛先に 送ら れます。 p/s モデルでは、1 つ以上のパブリッシャーがパブリケーション・サービ スへ メッセージを送信し、パブリケーション・サービスがそのメッセージを 1 つ 以上の サブスクライバーに配布します。要求/応答はデータグラムと似ています が、送信側が 応答の受け取りを要求します。 ------------------------------------------------------------------------ 17.3 メッセージ構造 MQSeries では、送信するメッセージの特定の構造化をそれ自体で指示したり、サポ ート したりすることはありません。 MQSeries Integrator (MQSI) などの他の製品は、C または Cobol、あるいは XML ストリングの 形式のメッセージをサポートします。MQSI 内の構造化メッセージ は、メッセージ・リポジトリーに よって定義されます。XML メッセージには一般的 に、自己記述のメッセージ構造があり、 リポジトリーによって管理可能です。メッ セージは構造化されていないこともあり、 その場合はユーザー・コードでメッセー ジの内容を解析または構成する必要があります。 このようなメッセージは多くの場 合、半構造化メッセージで、メッセージ内のフィールドを 区切るためにバイト位置 または固定区切り文字を使用します。このような半構造化メッセージの サポート は、MQSeries Assist Wizardによって提供されます。XML メッセージのサポート は、 DB2 XML Extender の新機能によって提供されます。 ------------------------------------------------------------------------ 17.4 MQSeries 関数の概説 MQSeries 関数のセットは、SQL ステートメントにメッセージング操作を組み込むた めに、 DB2UDB バージョン 7.2 によって提供されるものです。つまり、このサポー トは、 データベース・インターフェースを使用して C、Java、SQL などのサポート されている言語で 作成されたアプリケーションに使用できるということです。下記 の例はすべて SQL で記述されて います。この SQL は、他のプログラム言語からも すべて標準の方法で使用できます。上記の すべての MQSeries メッセージ・スタイ ルがサポートされています。MQSeries 関数の詳細に ついては、「リリース情報」 の「SQL 解説書」セクションを参照してください。 基本構成では、MQSeries サーバーが DB2 とともにデータベース・サーバー・マシ ン上に 置かれます。MQSeries 関数は、DB2 にインストールされ、MQSeries サーバ ーへのアクセスを 提供します。DB2 クライアントは、DB2 サーバーへアクセス可能 なマシン上に置かれます。 MQSeries 関数には、複数のクライアントがデータベー スを介して同時にアクセスできます。 DB2 クライアントは、提供された関数を使用 して、SQL ステートメント内のメッセージング操作を 実行します。これらのメッセ ージング操作を使用して、DB2 アプリケーションは相互に、または 他の MQSeries アプリケーションと通信することができます。 MQSeries 関数の DB2 データベースを使用可能にするときには、 enable_MQFunctions コマンドを使用します。このコマンドは、 クライアント・ア プリケーションが他の管理アクションを実行せずに使用できる単純な デフォルト構 成を自動的に確立します。このコマンドの説明については、 enable_MQFunctions および disable_MQFunctions を参照してください。デフォルト構成では、 アプリ ケーション・プログラマーに、簡単な使い方と、開発用のシンプルなインターフェ ースが 提供されます。必要に応じて、追加の機能を構成できます。 例 1: デフォルト構成を使用して単純なメッセージを送信するには、次のような SQL ステートメントを 使用します: VALUES DB2MQ.MQSEND('simple message') これにより、simple message というメッセージが、デフォルト構成で 指定されて いる MQSeries キュー・マネージャーとキューへ送られます。 MQSeries の Application Message Interface (AMI) では、メッセージング・アク ションと、 そのアクションの実行方法を示す定義が、完全に分離されています。こ れらの定義は、 外部リポジトリー・ファイルに保持され、AMI 管理ツールを使用し て管理されます。これにより、 AMI アプリケーションの開発と保守が容易になりま す。DB2 で提供される MQSeries 関数は、 AMI MQSeries インターフェースに基づ いています。AMI は、構成情報を保管するために、 AMI リポジトリーと呼ばれる外 部構成ファイルの使用をサポートしています。デフォルト構成には、 DB2 とともに 使用されるように構成されている MQSeries AMI リポジトリーが含まれています。 MQSeries AMI の 2 つの重要な概念であるサービス・ポイントとポリシーは、 DB2 MQSeries 関数にも引き継がれています。サービス・ポイントとは、メッセージを送 受信する 論理エンドポイントのことです。各サービス・ポイントは、AMI リポジト リーに、 MQSeries キュー名およびキュー・マネージャーとともに定義されていま す。 ポリシーは、指定されたメッセージング操作に使用するサービス・オプション の品質を 定義します。サービスの重要な品質としては、メッセージ優先順位や持続 性などが あります。デフォルトのサービス・ポイントとポリシー定義が提供される ので、開発者は それを利用してアプリケーションを単純化させることができます。 例 1 は、デフォルトの サービス・ポイントとポリシー名を明示的に指定して、次 のように書き換えることができます。 例 2: VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY', 'simple message') キューは、そのキューとアプリケーションが常駐するサーバーにある 1 つ以上の アプリケーションによってサービスされます。多くの構成では、各種アプリケーシ ョンと用途を サポートするために、複数のキューが定義されます。このため多くの 場合、MQSeries 要求を 作成するときには、さまざまなサービス・ポイントを定義 することが重要になります。次に例を示します。 例 3: VALUES DB2MQ.MQSEND('ODS_Input', 'simple message') 注: この例では、ポリシーが指定されていないので、デフォルト・ポリシーが使用 されます。 17.4.1 制約事項 MQSeries は、メッセージ操作とデータベース操作をアトミック・トランザクション として 1 つの作業単位に結合する機能を提供します。この機能は、UNIX および Windows では、 MQSeries 関数によって最初からサポートされているわけではあり ません。 送信または受信機能を使用するときのメッセージの最大長は 4000 文字です。これ はまた、 MQPublish を使用してメッセージを発行するときの最大メッセージ・サイ ズでもあります。 17.4.2 エラー・コード MQSeries 関数から戻される戻りコードは、「MQSeries アプリケーション・メッセ ージング・インターフェース」 マニュアルの「付録 B」に記載されています。 ------------------------------------------------------------------------ 17.5 使用のシナリオ MQSeries 関数は、さまざまなシナリオで使用できます。このセクションでは、 基 本メッセージング、アプリケーション接続、およびデータ・パブリケーションなど の 一般的なシナリオについて検討します。 17.5.1 基本メッセージング すべてのデータベース・アプリケーションが同じ DB2 サーバーに接続すると、 MQSeries DB2 関数によって最も基本的な形式のメッセージングが行われます。クラ イアントは、 データベース・サーバーに対してローカルである場合と、ネットワー ク環境に分散している場合が あります。 単純なシナリオでは、クライアント A が MQSEND 関数を呼び出して、ユーザー定義 の ストリングをデフォルトのサービス・ロケーションに送ります。次に、データベ ース・サーバー上 の DB2 内で MQSeries 関数が実行されます。その後、クライア ント B が MQRECEIVE 関数を 呼び出して、デフォルト・サービスに定義されている キューの先頭にあるメッセージを除去し、 それをクライアントへ戻します。再び、 この作業を行うための MQSeries 関数が DB2 によって 実行されます。 データベース・クライアントでは、多数の方法で単純なメッセージングを使用でき ます。 一般的なメッセージングの使用法には次のようなものがあります。 * データ収集 -- 情報が、1 つ以上の情報源からメッセージ形式で受け取られま す。情報源は、 SAP や社内で開発されたアプリケーションのような商用アプ リケーションです。 このようなデータがキューから受け取られ、後から行う 処理や分析のためにデータベース表に 保管されます。 * ワークロード分散 -- 作業要求は、同じアプリケーションの複数のインスタン スによって 共用されるキューに送られます。インスタンスが作業を実行する 準備が整うと、実行する 作業要求が含まれているキューの一番上からメッセ ージを受け取ります。この技法によって、 複数のインスタンスが、プールさ れた要求の単一のキューで表されるワークロードを共用できます。 * アプリケーション・シグナリング -- いくつかのプロセスが共同作業を行う状 況では、 プロセスの作業を調整するためにメッセージが使用されることがよ くあります。このような メッセージには、コマンドや実行する作業の要求が 含まれています。一般的に、この種の シグナリングは一方通行です。つま り、メッセージを開始する側は応答を期待していません。 詳しくは、 17.5.4.1, 要求/応答通信 を参照してください。 * アプリケーション通知 -- 通知は、応答を期待していない開始側からデータが 送られる シグナリングと似ています。ただし、通知には一般に、発生したビ ジネス・イベントに関する データが含まれています。17.5.4.2, 発行/サブス クリプション は、通知の拡張形式です。 次のシナリオでは、上記の単純なシナリオを拡張して、リモート・メッセージング を 組み込みます。つまり、メッセージがマシン A とマシン B 間で送信されます。 以下の ようなステップがあります。 1. DB2 クライアントが、マシン B 上のリモート・キューを表すように定義され た ターゲット・サービスを指定して、MQSEND 呼び出しを実行します。 2. MQSeries DB2 関数が、メッセージを送信するための実際の MQSeries 作業を 実行します。マシン A 上の MQSeries サーバーが、メッセージを受け入れ、 マシン A の サービス・ポイント定義と現行 MQSeries 構成に定義されている 宛先へ送ることを 保証します。サーバーは、これがマシン B 上のキューであ ることを判別します。 次にマシン B 上の MQSeries サーバーへメッセージを 送り、必要に応じて再試行します。 3. マシン B 上の MQSeries サーバーが、マシン A 上のサーバーからのメッセー ジを 受け入れ、マシン B 上の宛先キューに入れます。 4. マシン B 上の MQSeries クライアントが、キューの先頭にあるメッセージを 要求します。 17.5.2 メッセージの送信 DB2 ユーザーまたは開発者は、MQSEND を使用して、送信するデータ、送信先、およ び 送信日時を選択します。業界では、これを「送信および喪失」と呼びます。これ は、 送信側が、メッセージを必ず宛先に届ける MQSeries の保証された送達プロト コルを 信頼して、単純にメッセージを送ることを意味しています。この例を次に示 します。 例 4: ポリシー highPriority を使用してユーザー定義のストリングを サービス・ ポイント myplace に送るには: VALUES DB2MQ.MQSEND('myplace','highPriority','test') ここでは、ポリシー highPriority が、AMI リポジトリーに定義されているポリシ ーを 参照します。このポリシーは、MQSeries の優先順位を最高レベルに設定し、 サービスのその他の 品質 (たとえば、持続性など) を調整するものです。 メッセージの内容は、SQL とユーザー指定データの有効な組み合わせから成りま す。 これには、ネストされた関数、演算子、およびキャストが含まれます。たとえ ば、 表 EMPLOYEE に VARCHAR 列の LASTNAME、FIRSTNAME、および DEPARTMENT が あるとします。 DEPARTMENT 5LGA の各従業員の情報が含まれているメッセージを送 信するには、次のようにします。 例 5: SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' この表に整数の AGE 列も含まれていた場合は、次のように組み込まれます。 例 6: SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT|| ' ' || char(AGE)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' 最後に、次の例では、有効な SQL 式を使用してメッセージ内容を取得できる方法を 示します。2 番目の表 DEPT に varchar 列の DEPT_NO とDEPT_NAME が含まれてい ると します。従業員の LASTNAME と DEPT_NAME が含まれているメッセージを送る ことが できます。 例 7: SELECT DB2MQ.MQSEND(e.LASTNAME || ' ' || d.DEPTNAME) FROM EMPLOYEE e, DEPT d WHERE e.DEPARTMENT = d.DEPTNAME 17.5.3 メッセージの取り出し MQSeries DB2 関数を使用すると、メッセージの受信または読み取りが可能です。 読み取りと受信の違いは、読み取りではキューの先頭にあるメッセージをキューか ら 除去せずに戻す一方、受信操作ではメッセージがキューから除去されます。受信 操作を 使用してメッセージを取り出した場合は、1 度しかメッセージを取り出すこ とが できませんが、読み取り操作を使用してメッセージを取り出した場合は、同じ メッセージを何度も取り出すことができます。この例を次に示します。 例 8: VALUES DB2MQ.MQREAD() この例では、デフォルト品質のサービス・ポリシーを使用して、デフォルト・サー ビスに 定義されているキューの先頭にあるメッセージを含む VARCHAR ストリング を戻します。 読み取るメッセージがない場合は、NULL 値が戻されることに注意し てください。キューは この操作では変更されません。 例 9: VALUES DB2MQ.MQRECEIVE('Employee_Changes') 上記の例では、デフォルト・ポリシーを使用して、Employee_Changes サービスに 定義されているキューのヘッドからメッセージを除去する方法を示しています。 DB2 の非常に強力な機能の 1 つに、ユーザー定義の (またはDB2 提供の) 関数から 表を 生成する機能があります。この表関数機能を活用すると、キューの内容を DB2 表として 実体化することができます。次の例は、これを最も単純な形式で示してい ます。 例 10: SELECT t.* FROM table ( DB2MQ.MQREADALL()) t この照会によって、デフォルト・サービスに定義されているキューの中のすべての メッセージと、これらのメッセージに関するメタデータから構成された表が戻され ます。 戻される表の構造の完全な定義は「付録」にありますが、最初の列はメッセ ージの内容を 反映し、残りの列にはメタデータが格納されます。メッセージだけを 戻すには、例を 次のように書き換えます。 例 11: SELECT t.MSG FROM table (DB2MQ.MQREADALL()) t 表関数によって戻される表は、データベースから直接取り出される表と何ら 変わり ありません。つまり、この表をさまざまな方法で利用できるということです。 たと えば、表の内容を別の表と結合したり、キューの中のメッセージの数をカウントし たり することができます。 例 12: SELECT t.MSG, e.LASTNAME FROM table (DB2MQ.MQREADALL() ) t, EMPLOYEE e WHERE t.MSG = e.LASTNAME 例 13: SELECT COUNT(*) FROM table (DB2MQ.MQREADALL()) t この場合も、表関数で視点を作成することによって、表のソースがキューであると いう 事実を隠すことができます。たとえば、次の例では、NEW_EMPLOYEES という名 前の サービスが参照しているキューに、NEW_EMP という名前の視点を作成します。 例 14: CREATE VIEW NEW_EMP (msg) AS SELECT t.msg FROM table (DB2MQ.MQREADALL()) t この場合、視点はメッセージ全体を含む 1 つの列だけで定義されています。メッセ ージの 構造が単純な場合、たとえば固定長のフィールドが 2 つある場合などは、 DB2 の組み込み関数を 使用して、メッセージを解析し、2 つの列に分けるのが順当 な方法です。たとえば、特定の キューに送られるメッセージに必ず 18 文字のラス トネームが含まれており、その後に 18 文字の ファーストネームが続く場合は、各 フィールドを含むビューを別々の列に次のように定義できます。 例 15: CREATE VIEW NEW_EMP2 AS SELECT left(t.msg,18) AS LNAME, right(t.msg,18) AS FNAME FROM table(DB2MQ.MQREADALL()) t DB2 ストアード・プロシージャー・ビルダーの新機能である MQSeries Assist Wizard を 使用すると、区切られたメッセージ構造を列にマップする、新しい DB2 表関数と視点を 作成できます。 最後に、メッセージの内容をデータベースに保管しておくとよいでしょう。メッセ ージ 内容を操作および保管するには、SQL のすべての能力を使用すれば行うことが できます。 この最も単純な例を次に示します: 例 16: INSERT INTO MESSAGES SELECT t.msg FROM table (DB2MQ.MQRECEIVEALL()) t 表 MESSAGES に 1 つの列 VARCHAR(2000) があるとします。上記のステートメント に よって、デフォルト・サービス・キューからのメッセージが表に挿入されます。 この技法は、さまざまな状況に応じて変化させることができます。 17.5.4 アプリケーション間接続 アプリケーション統合は、多くのソリューションの共通要素です。購入した アプリ ケーションを既存のインフラストラクチャーに統合するか、または新しく開発され た アプリケーションを既存の環境に統合するかにかかわらず、さまざまな種類のサ ブシステムの コレクションをつなぎ合わせて作業全体を形成するというタスクに直 面することがよくあります。 MQSeries は一般に、アプリケーションを統合するた めの不可欠なツールであるという 評価を受けています。MQSeries は、ほとんどの ハードウェア、ソフトウェア、および 言語環境プログラムにアクセス可能で、さま ざまな種類のアプリケーションのコレクションに 相互接続する手段を提供します。 このセクションでは、いくつかのアプリケーション統合のシナリオと、DB2 でのそ の 使用法について説明します。トピックが非常に広範囲なので、アプリケーション 統合を 包括的に扱うのは、この作業の目的とするところではありません。したがっ てここでは、 2 つの単純なトピック、つまり要求/応答通信、および MQSeries Integrator と 発行/サブスクリプションだけを取り上げます。 17.5.4.1 要求/応答通信 要求/応答 (R/R) 通信方式は、あるアプリケーションが別のアプリケーションの サ ービスを要求するという、非常に一般的な技法です。これを行うために、要求側が サービス提供側に、何らかの作業の実行を求めるメッセージを送る方法がありま す。作業が 完了したら、提供側は、結果 (または単に完了の確認) を要求側へ戻す かどうかを 決めることができます。しかし、上記の基本的なメッセージング技法を 使用した場合、 送信側の要求をサービス提供側の応答に接続するものが何もありま せん。要求側が 続行する前に応答を待機しない限りは、各応答をその要求に関連付 けるためにいくつかの メカニズムを使用する必要があります。開発者にこのような メカニズムの作成を強いる ことなく、MQSeries は、メッセージの交換時にメッセ ージを相関させることを可能に する相関 ID を提供します。 このメカニズムはさまざまな方法で使用できますが、最も単純な方法は、要求側が 既知の 相関 ID を使用してメッセージにマークを付ける方法です。この例を次に示 します。 例 17: DB2MQ.MQSEND ('myRequester','myPolicy','SendStatus:cust1','Req1') このステートメントでは、最後のパラメーター Req1 を MQSEND ステートメントに 上方から追加して、要求の相関 ID を指示しています。 この特定の要求に対する応答を受け取るには、次のように、対応する MQRECREIVE ステートメントを 使用して、指示されたサービスに定義されている最初のメッセー ジを選択的に取り出してください。 例 18: DB2MQ.MQRECEIVE('myReceiver','myPolicy','Req1') 要求をサービスするアプリケーション・サービスがビジー状態であるときに、応答 が 送られる前に要求側が上記の MQRECEIVE を発行すると、この相関 ID に一致す る メッセージは見つかりません。 サービス要求と相関 ID の両方を受け取るには、次のようなステートメントを使用 します。 例 19: SELECT msg, correlid FROM table (DB2MQ.MQRECEIVEALL('aServiceProvider','myPolicy',1)) t これにより、最初の要求のメッセージと相関 ID がサービス aServiceProvider か ら 戻されます。 サービスが実行されたら、aRequester に記述されているキューへ応答メッセージを 送ります。一方、サービス要求側は他の作業を行うことが可能です。実際、初期サ ービス 要求へ、設定された時間内に応答する保証はありません。このようなアプリ ケーション・ レベルのタイムアウトは、開発者が管理する必要があります。また、 要求側は、応答の存在を 検出するためにポーリングする必要があります。 このような時間に依存しない非同期処理の利点は、要求側とサービス提供者が相互 に 完全に独立して実行する点です。この方法は、アプリケーションが断続的に接続 される環境と、 複数の要求または応答が処理前に集約されるバッチ指向性の高い環 境の両方に適合します。 この種の集約は多くの場合、データウェアハウスまたは操 作可能なデータ保管を定期的に 更新するために、データウェアハウス環境で使用さ れます。 17.5.4.2 発行/サブスクリプション 単純なデータ発行 アプリケーション統合のもう 1 つの一般的なシナリオは、1 つのアプリケーション が 別のアプリケーションへインタレストのイベントについて通知するというもので す。これは、 別のアプリケーションがモニターしているキューへメッセージを送る という簡単な方法で 行うことができます。メッセージの内容は、ユーザー定義スト リングにすることも、 データベース列から構成することもできます。多くの場合、 単純なメッセージとは、 MQSEND 関数を使用して送る必要があるものすべてを指し ます。このようなメッセージを 複数の受信側に同時に送る必要があるときには、 MQSeries AMI の配布先リスト機能を 使用できます。 配布先リストは、AMI 管理ツールを使用して定義します。配布先リストは、個々の サービスのリストで構成されます。配布先リストに送られるメッセージは、リスト に 定義されているあらゆるサービスに転送されます。これは特に、いくつかのサー ビスが 常にすべてのメッセージに関与することが分かっているときに役立ちます。 次の例では、 配布先リスト interestedParties にメッセージを送信します。 例 20: DB2MQ.MQSEND('interestedParties','information of general interest'); 特定のサービスが受け取るメッセージに対してより多くの制御が必要な場合は、 発 行/サブスクリプション機能が必要です。発行/サブスクリプション・システムは一 般に、 多くのサブスクライバーが複数のパブリッシャーからのメッセージを受け取 るために 登録できる、スケーラブルで安全な環境を提供します。この機能をサポー トするために、 MQSeries Integrator または MQSeries 発行/サブスクリプション 機能とともに、 MQPublish インターフェースを使用できます。 MQPublish を使用すると、ユーザーは、メッセージに関連付けるトピックをオプシ ョンで 指定できます。トピックによって、サブスクライバーは、受け入れるメッセ ージをより 明確に指定できます。手順は以下の通りです。 1. MQSeries 管理者が、MQSeries Integrator 発行/サブスクリプション機能を構 成します。 2. 関係するアプリケーションが、MQSI 構成に定義されているサブスクリプショ ン・ ポイントにサブスクライブし、オプションで関係するトピックを指定し ます。 各サブスクライバーは関連のあるトピックを選択し、また内容に基づ いて MQSeries Integrator V2 の サブスクリプション技法を使用することも できます。サービス名で表されているキューが サブスクライバーを定義して いることに注意してください。 3. DB2 アプリケーションが、サービス・ポイント Weather へメッセージを発行 します。 メッセージは、天候が Sleet でトピックが Austin であることを示 しているため、 関係するサブスクライバーへ Austin の天候が Sleet である ことを通知します。 4. 実際にメッセージを発行するメカニズムが、DB2 提供の MQSeries 機能に よ って処理されます。メッセージが、Weather という名前のサービスを使用して MQSeries Integrator へ送られます。 5. MQSI は Weather サービスからメッセージを受け入れ、MQSI 構成に定義され ている 処理を実行し、メッセージが満たしているサブスクリプションを判別 します。MQSI は次に、 メッセージが基準を満たしているサブスクライバー・ キューへ、メッセージを転送します。 6. Weather サービスにサブスクライブし、Austin 内のインタレストを登録した アプリケーションが、受信サービスの中でメッセージ Sleet を受け取りま す。 すべてのデフォルトとヌル・トピックを使用してこのデータを発行するには、 次の ステートメントを使用します。 例 21: SELECT DB2MQ.MQPUBLISH(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT|| ' ' ||char(AGE)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' すべてのパラメーターを完全に指定し、LASTNAME だけを含むようにメッセージを 単純化すると、ステートメントは次のようになります。 例 22: SELECT DB2MQ.MQPUBLISH('HR_INFO_PUB', 'SPECIAL_POLICY', LASTNAME, 'ALL_EMP:5LGA', 'MANAGER') FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' このステートメントは、SPECIAL_POLICY サービスを使用して、 HR_INFO_PUB パブ リケーション・サービスへメッセージを発行します。メッセージは、 送信側が MANAGER トピックであることを示しています。トピック・ストリングから、 「:」 で連結することによって複数のトピックを指定できることがわかります。この例で は、 2 つのトピックが使用されているため、サブスクライバーは、ALL_EMP または 5LGA の どちらかについて登録し、これらのメッセージを受け取ることができま す。 発行されたメッセージを受け取るには、まず指定されたトピックが含まれている 関 係するメッセージを登録し、メッセージを送るサブスクライバー・サービスの名前 を 指示する必要があります。AMI サブスクライバー・サービスは、ブローカー・サ ービスと 受信側サービスを定義することに注意してください。ブローカー・サービ スとは、 サブスクライバーが発行/サブスクリプション・ブローカーと通信する方 法のことで、 受信側サービスとは、サブスクリプション要求と一致するメッセージ の宛先のことです。 次のステートメントでは、トピック ALL_EMP 内のインタレス トを登録します。 例 23: DB2MQ.MQSUBSCRIBE('aSubscriber', 'ALL_EMP') アプリケーションがサブスクライブすると、トピック ALL_EMP とともに発行される メッセージは、サブスクライバー・サービスによって定義されている受信側サービ スに 転送されます。アプリケーションには、並列サブスクリプションが複数存在す ることが あります。サブスクリプションに適合するメッセージを取得するには、通 常のメッセージ 検索機能を使用できます。たとえば、サブスクライバー・サービス aSubscriber に、 受信側サービスが aSubscriberReceiver であると定義されてい る場合は、次の ステートメントで最初のメッセージが非破壊的に読み取られます。 例 24: DB2MQ.MQREAD('aSubscriberReceiver') メッセージと、メッセージが発行されたトピックの両方を判別するには、表関数を 使用します。次のステートメントでは、最初の 5 つのメッセージを aSubscriberReceiver から 受け取り、メッセージとトピックの両方を表示します。 例 25: SELECT t.msg, t.topic FROM table (DB2MQ.MQRECEIVEALL('aSubscriberReceiver',5)) t トピック ALL_EMP のメッセージをすべて読み取るには、発行する SQL の能力を 次 のように調整します。 例 26: SELECT t.msg FROM table (DB2MQ.MQREADALL('aSubscriberReceiver')) t WHERE t.topic = 'ALL_EMP' 注: MQRECEIVEALL が制限付きで使用され、トピック ALL_EMP で発行された メッ セージだけでなく、キュー全体が占有されるかどうかを確認することは重要で す。 これは、制限が適用される前に表関数が実行されるためです。 それ以上特定のトピックにサブスクリプションしない場合は、次のようなステート メントを 使用して、明示的にアンサブスクリプションする必要があります。 例 27: DB2MQ.MQUNSUBSCRIBE('aSubscriber', 'ALL_EMP') このステートメントが実行されると、発行/サブスクリプション・ブローカーは そ れ以上、このサブスクリプションに一致するメッセージを送信しません。 自動発行 データベース・メッセージングでのもう 1 つの重要な技法は、自動発行です。 DB2 内でトリガー機能を使用すると、トリガー呼び出しの一部として自動的にメッセー ジを 発行できます。データ発行を自動化する技法はほかにもありますが、このトリ ガー・ベースの 方法では、管理者または開発者に、メッセージ内容の構成における 自由度と、 トリガー・アクションの定義における柔軟性が与えられます。トリガー の使用と同様に、 実行の頻度とコストにも注意を払う必要があります。下の例で は、トリガーを MQSeries DB2 関数とともに使用する方法を示します。 次の例では、新しい従業員が雇用されるたびにメッセージを発行する簡単な方法を 示します。NEW_EMP の登録済みインタレストとともに HR_INFO_PUB サービスに サ ブスクリプションするユーザーまたはアプリケーションはいずれも、新しい従業員 の 日付、名前、および部署が含まれたメッセージを受け取ります。 例 28: CREATE TRIGGER new_employee AFTER INSERT ON employee REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL VALUES DB2MQ.MQPUBLISH('HR_INFO_PUB&', 'NEW_EMP', current date || ' ' || LASTNAME || ' ' || DEPARTMENT) ------------------------------------------------------------------------ 17.6 enable_MQFunctions enable_MQFunctions 指定されたデータベースの DB2 MQSeries 関数を使用可能にして、DB2 MQSeries 関 数を 正しく実行できることを検査します。このコマンドは、MQSeries および MQSeries AMI が インストールおよび構成されていない場合は失敗します。 権限 以下のいずれかとなります。 * sysadm * dbadm * 関数の暗黙的または明示的なスキーマ名が存在しない場合は、データベース上 の IMPLICIT_SCHEMA * スキーマ名 DB2MQ が存在する場合は、スキーマ上の CREATEIN 特権 コマンド構文 >>-enable_MQFunctions----n--database----u--userid---------------> >-----p--password----+--------+---+-------------+-------------->< '-force--' '-noValidate--' コマンド・パラメーター -n database 使用可能にするデータベースの名前を指定します。 -u userid データベースに接続するユーザー ID を指定します。 -p password ユーザー ID のパスワードを指定します。 -force 再インストール時に出された警告を無視するように指定します。 -noValidate DB2 MQSeries 関数の妥当性検査を実行しないように指定します。 例 次の例では、DB2MQ 関数が作成されます。ユーザーはデータベース SAMPLE に 接続 します。デフォルト・スキーマ DB2MQ が使用されています。 enable_MQFunctions -n sample -u user1 -p password1 使用上の注意 DB2 MQ 関数は、このコマンドによって自動的に作成されるスキーマ DB2MQ の下で 実行されます。 このコマンドの実行前に: * MQ と AMI がインストールされていること、および MQSeries のバージョンが 5.2 以降で あることを確認します。 * 環境変数 $AMT_DATA_PATH が定義されていることを確認します。 * ディレクトリーを DB2PATH の cfg サブディレクトリーに変更します。 UNIX の場合: * db2set を使用して AMT_DATA_PATH を DB2ENVLIST へ追加します。 * UDF 実行に関連付けられているユーザー・アカウントが mqm グループのメン バーで あることを確認します。 * このコマンドを呼び出すユーザーが mqm グループのメンバーであることを確 認します。 注: AIX 4.2 は MQSeries 5.2 ではサポートされていません。 ------------------------------------------------------------------------ 17.7 disable_MQFunctions disable_MQFunctions 指定されたデータベースの DB2 MQSeries 関数を使用不可にします。 権限 以下のいずれかとなります。 * sysadm * dbadm * 関数の暗黙的または明示的なスキーマ名が存在しない場合は、データベース上 の IMPLICIT_SCHEMA * スキーマ名 DB2MQ が存在する場合は、スキーマ上の CREATEIN 特権 コマンド構文 >>-disable_MQFunctions----n--database----u--userid--------------> >-----p--password---------------------------------------------->< コマンド・パラメーター -n database データベースの名前を指定します。 -u userid データベースに接続するために使用するユーザー ID を指定します。 -p password ユーザー ID のパスワードを指定します。 例 次の例では、DB2MQ 関数がデータベース SAMPLE に関して使用不可になります。 disable_MQFunctions -n sample -u user1 -p password1 ------------------------------------------------------------------------ 管理ツール 部分目次 * コントロール・センター o 18.1 DB2 サーバー (VSE および VM 版) の管理化 o 18.2 コントロール・センターの Java 1.2 サポート o 18.3 Windows オペレーティング・システムでオンライン・ヘルプを使用 時の 「無効なショートカット」エラー o 18.4 OS/2 版 Java コントロール・センター o 18.5 Windows オペレーティング・システム上のジャーナルで完了したジ ョブを表示する際の 「ファイル・アクセスが拒否されました」エラー o 18.6 複数サイト更新テスト接続 o 18.7 DB2 (OS/390 版) のコントロール・センター o 18.8 DB2 (OS/390 版) コントロール・センターの修正 o 18.9 「地理情報層の作成」ダイアログへの変更点 o 18.10 DB2 コントロール・センターの障害追及情報 o 18.11 UNIX ベース・システム上でのコントロール・センターの障害追及 o 18.12 OS/2 上での infopop の問題 o 18.13 jdk11_path 構成パラメーターのヘルプ o 18.14 スクリプト・センターまたはジャーナルを使用中の Solaris シス テム・エラー (SQL10012N) o 18.15 DPREPL.DFT ファイルのヘルプ o 18.16 複数のコントロール・センター・アプレットの立ち上げ o 18.17 アプレットとして実行中のコントロール・センターのオンライ ン・ヘルプ o 18.18 コントロール・センターをアプレット・モードで実行 (Windows 95) o 18.19 大きな照会結果の操作 * インフォメーション・センター o 19.1 Windows オペレーティング・システムでの「無効なショートカッ ト」エラー o 19.2 Netscape がすでにオープンしているときに、Netscape Navigator の外部 Web リンクをオープンする (UNIX ベース・システム) o 19.3 インフォメーション・センター開始時の問題 * ウィザード o 20.1 データベース作成ウィザードの拡張サイズの設定 o 20.2 MQSeries Assist ウィザード o 20.3 OLE DB Assist ウィザード ------------------------------------------------------------------------ コントロール・センター ------------------------------------------------------------------------ 18.1 DB2 サーバー (VSE および VM 版) の管理化 DB2 ユニバーサル・データベース バージョン 7 コントロール・センターでは、 DB2 サーバー (VSE および VM 版) データベースのサポート機能が拡張されていま す。 すべての DB2 サーバー (VSE および VM 版) データベース・オブジェクトを コントロール・センターから表示することができます。 CREATE INDEX、REORGANIZE INDEX、UPDATE STATISTICS ステートメント、 および REBIND コマンドもサポート します。 REORGANIZE INDEX および REBIND では、DB2 が DB2 サーバー (VSE およ び VM 版) ホストで稼働しているストアード・プロシージャーを必要とします。 こ のストアード・プロシージャーは、DB2 サーバー (VSE および VM 版) の VSE およ び VM 機能のコントロール・センターによって提供されます。 完全に組み込まれたコントロール・センターでは、DB2 サーバーが稼働している プ ラットフォームに関係なく、ユーザーが DB2 を管理することが許可されています。 DB2 サーバー (VSE および VM 版) オブジェクトは、DB2 ユニバーサル・データベ ース・ オブジェクトと一緒にコントロール・センターのメイン・ウィンドウに表示 されます。 オブジェクトを選択すると、これらのオブジェクトを管理するための対 応する アクションやユーティリティーが呼び出されます。 たとえば、特定のデー タベースの索引をリストし、索引の 1 つを選択し、 再編成することができます。 データベースの表をリストし統計の更新を実行したり、 表をレプリケーション・ソ ースとして定義したりすることもできます。 DB2 サーバー (VSE および VM 版) オブジェクト上で管理タスクを実行するよう コ ントロール・センターを構成する情報については、 DB2 コネクト 使用者の手引き または インストールおよび構成補足 を参照してください。 ------------------------------------------------------------------------ 18.2 コントロール・センターの Java 1.2 サポート コントロール・センターは、Java 1.2 の bi-di サポートを使用して、 アラビア語 やヘブライ語といった両方向言語をサポートします。 このサポートは、Windows NT プラットフォームでのみ提供されます。 このサポートを認識し使用するには、コントロール・センター用に Java 1.2 がイ ンストールされていなければなりません。 1. JDK 1.2.2 は DB2\bidi\NT ディレクトリー下の DB2 UDB CD で入手可能で す。 ibm-inst-n122p-win32-x86.exe はインストール・プログラムで、 ibm-jdk-n122p-win32-x86.exe は JDK 配布です。 両方のファイルをご使用の ハード・ディスクの一時ディレクトリーにコピーし、 そこからインストー ル・プログラムを実行してください。 2. これを、\java\Java12 にインストールしてください。 は DB2 のインストール・パスです。 3. JDK/JRE インストールにおいてプロンプトが出された際に、 JDK/JRE を System VM として選択しないようにしてください。 Java 1.2 が正しくインストールされた後に通常の方法で コントロール・センター を開始すると、Java 1.2 が使用されます。 Java 1.2 の使用を停止するには、\java\Java12 から JDK/JRE をアンイ ンストールするか、あるいは \java\Java12 サブディレクトリーを別の名 前に変更してください。 注: \java\Java12 と \Java12 を 混同しないようにしてくだ さい。 \Java12 は DB2 インストールの一部であり、 Java 1.2 の JDBC サポートを含みます。 ------------------------------------------------------------------------ 18.3 Windows オペレーティング・システムでオンライン・ヘルプを使用時の 「無 効なショートカット」エラー コントロール・センターのオンライン・ヘルプを使用時に、 次のようなエラーが出 される場合があります: 「無効なショートカット」。 最近、新規の Web ブラウザ ーあるいは新しいバージョンの Web ブラウザーを インストールした場合、HTML お よび HTM 文書が正しいブラウザーで 関連付けられていることを確認してくださ い。 Windows ヘルプのトピック 「ファイルを開くときに起動するプログラムを変 えるには」を参照してください。 ------------------------------------------------------------------------ 18.4 OS/2 版 Java コントロール・センター コントロール ・センターは、HPFS 形式のドライブにインストールする必要があり ます。 ------------------------------------------------------------------------ 18.5 Windows オペレーティング・システム上のジャーナルで完了したジョブを表示 する際の 「ファイル・アクセスが拒否されました」エラー DB2 ユニバーサル・データベース (Windows NT 版) で、スクリプト・センターで 作成されたジョブの詳細を表示するジャーナルをオープンしようとする際に、 「フ ァイル・アクセスが拒否されました」エラーが出されます。 ジョブ状況は完了を示 します。この状況は、スクリプト・センターで作成された ジョブが START コマン ドを含むときに起こります。 これを回避するには、バッチ・ファイルおよびジョブ それ自体の両方で、 START の代わりに START/WAIT を使用してください。 ------------------------------------------------------------------------ 18.6 複数サイト更新テスト接続 バージョン 7 コントロール・センターの複数サイト更新テスト接続機能は、 ター ゲット・インスタンスのバージョンによって制限されています。 「リモート」テス ト接続機能を実行するには、ターゲット・インスタンスが少なくともバージョン 7 でなければなりません。 バージョン 6 で複数サイト更新テスト接続機能を実行す るには、 コントロール・センターをターゲット・インスタンス上にローカルに立ち 上げ、 そこから実行しなければなりません。 ------------------------------------------------------------------------ 18.7 DB2 (OS/390 版) のコントロール・センター OS/390 版 の DB2 UDB コントロール・センターでは、IBM DB2 の ライセンス・ユ ーティリティーの使用を管理することができます。 DB2 UDB (OS/390 版) の別個に 注文可能な部品であるユーティリティー機能は、 DB2 コントロール・センターで管 理する前に、ご使用の環境内でライセンス登録し、 インストールする必要がありま す。 DB2 (OS/390 版) サブシステムを構成する際にコントロール・センターで定義され る "CC390" データベースは、コントロール・センターの内部サポートとして使用さ れます。 このデータベースを変更しないでください。 DB2 (OS/390 版) バージョン 7.1 については、コントロール・センターの目次や インフォメーション・センターのタスク情報では特に記載されていませんが、 マニ ュアルでは DB2 (OS/390 版) バージョン 7.1 の機能をサポートしてます。 DB2 (OS/390 版) バージョン 6 特有の機能の多くは DB2 (OS/390 版) バージョン 7.1 にも関連しており、 また、特にバージョンについて述べていない DB2 (OS/390 版) バージョン 7.1 特有の機能が目次にいくつかあります。 コントロール・センター で DB2 (OS/390 版) バージョン 7.1 サブシステムを構成した場合、 このバージョ ンのすべての文書にアクセスすることができます。 DB2 (OS/390 版) のコントロール・センターから DDL の生成機能にアクセスし、 使用するには、以下の DDL の生成機能をインストールする必要があります。 * バージョン 5 の場合、DB2 (OS/390 版) バージョン 5 と一緒に DB2Admin 2.0 をインストールします。 * バージョン 6 の場合、DB2 (OS/390 版) バージョン 6 の DB2 管理機能の PTF として使用する 小規模なプログラミング機能強化をインストールする必 要があります。 * バージョン 7.1 の場合、DDL の生成機能は、DB2 (OS/390 版) バージョン 7.1 の DB2 管理機能と別価格の部品です。 コントロール・センターからストアード・プロシージャー・ビルダーにアクセスす ることができますが、 DB2 UDB コントロール・センターの開始前にインストール済 みである必要があります。 これは DB2 アプリケーション開発クライアントの部品 です。 DB2 (OS/390 版) サブシステムをワークステーション上で直接カタログ化するに は、 クライアント構成アシスタント・ツールを使用するよう選択してください。 1. ソース・ページで、「データベースへの接続を手動で構成する」ラジオ・ボタ ンを 指定します。 2. プロトコル・ページで、適切な通信情報を完成させます。 3. データベース・ページで、「データベース名」フィールドにサブシステム名を 指定します。 4. ノード・オプション・ページで、 「(オプション) ノード・オプションの構成 」チェック・ボックスを選択します。 5. 「オペレーティング・システム」フィールドでリストから MVS/ESA、OS/390 を選択します。 6. 「終了」をクリックして構成を完了します。 ゲートウェイ・マシンを使用して DB2 (OS/390 版) サブシステムをカタログ化する には、 ゲートウェイ・マシンで上記 1-6 のステップを行い、その後に以下を行っ てください。 1. クライアント・マシンで、コントロール・センターを開始します。 2. 「システム」フォルダー上で右クリックし、追加を 選択します。 3. 「システムの追加」ダイアログで、「システム名」フィールドに ゲートウェ イ・マシン名を入力します。 4. DB2DAS00 を「リモート・インスタンス」フィールドに 入力します。 5. TCP/IP プロトコルの場合、プロトコル・パラメーターで、「ホスト名」フィ ールドに ゲートウェイ・マシンのホスト名を指定します。 6. 523 を「サービス名」フィールドに 入力します。 7. 「了解」をクリックしてシステムを追加します。 「システム」フォルダーに ゲートウェイ・マシンが追加されているのがご覧になれます。 8. ゲートウェイ・ゲートウェイ名を展開します。 9. 「インスタンス」フォルダー上で右クリックし、追加を 選択します。 10. 「インスタンスの追加」ダイアログで「最新表示」を クリックして、ゲート ウェイ・マシンで使用可能なインスタンスをリストします。 ゲートウェイ・ マシンが Windows NT システムである場合は、DB2 (OS/390 版) サブシステム はインスタンス DB2 の下にカタログ化されるでしょう。 11. インスタンスを選択します。プロトコル・パラメーターがこのインスタンス用 に自動的に埋められます。 12. 「了解」をクリックしてインスタンスを追加します。 13. 「インスタンス」フォルダーをオープンして、追加したばかりのインスタンス を表示します。 14. インスタンスを展開します。 15. 「データベース」フォルダー上で右クリックし、 追加を選択します。 16. 「最新表示」プッシュボタンをクリックして、ゲートウェイ・マシン上の ロ ーカル・データベースを表示します。「データベースの追加」ダイアログで DB2 サブシステムを追加している場合は、 「データベース名」フィールドに サブシステム名を入力します。 オプション: サブシステム (またはデータベ ース) のローカル別名を入力します。 17. 「了解」をクリックする。 これで、サブシステムをコントロール・センターに正常に追加しました。 データベ ースをオープンすると、DB2 (OS/390 版) サブシステムが表示されます。 セクション「"コントロール・センター 390"」の最初の段落に次の記載がありま す。 OS/390 版 DB2 UDB コントロール・センターでは、IBM DB2 のライセンス・ユーティリティーの 使用を管理することができます。DB2 UDB (OS/390 版) で個別に注文可能な要素である ユーティリティー機能は、DB2 コントロール・センターで管理する前に、ご使用の環境内で ライセンス登録し、インストールする必要があります。 このセクションは次のように変更されました。 OS/390 版 DB2 コントロール・センターでは、IBM DB2 のライセンス・ユーティリティーの 使用を管理することができます。個別に注文可能な製品の要素であるユーティリティー機能は、 DB2 コントロール・センターで管理するためには、ご使用の環境内でライセンス登録し、 インストールする必要があります。 ------------------------------------------------------------------------ 18.8 DB2 (OS/390 版) コントロール・センターの修正 バージョン 7 で DB2 UDB コントロール・センターを使用してこれらのサブシステ ムを管理するには、 DB2 (OS/390 版) バージョン 5 および DB2 (OS/390 版) バー ジョン 6 の 390 Enablement 機能に APAR PQ36382 を 適用する必要があります。 この修正なしでは、これらのサブシステムに対してユーティリティーを実行するた めに、 バージョン 7 で DB2 UDB コントロール・センターを使用することはできま せん。 APAR は以下の FMID に適用されます: DB2 (OS/390 版) バージョン 5 390 Enablement: FMID JDB551D DB2 (OS/390 版) バージョン 6 390 Enablement: FMID JDB661D ------------------------------------------------------------------------ 18.9 「地理情報層の作成」ダイアログへの変更点 「<<」および「>>」ボタンが、「地理情報層の作成」ダイアログから除去されまし た。 ------------------------------------------------------------------------ 18.10 DB2 コントロール・センターの障害追及情報 概説およびインストールのブックの 「コントロール・センター インストールおよ び構成」の章の 「トラブルシューティング情報」というセクションで、コントロー ル・センターをアプレットとして 起動中に問題があった場合、クライアント・ブラ ウザーの CLASSPATH をコマンド・ウィンドウから 設定解除するよう記載されてい ます。 このセクションではまた、ブラウザーをコマンド・ウィンドウから開始する よう 述べています。ところが、ブラウザー開始のコマンドは提供されていません。 Internet Explorer を立ち上げるには、start iexplore と入力し、 Enter を押し てください。Netscape を立ち上げるには、start netscape と入力し、 Enter を押 してください。これらのコマンドは、ブラウザーが PATH に設定されていると想定 しています。 設定されていない場合は、PATH に追加するか、あるいはブラウザー の インストール・ディレクトリーに移動し、start コマンドを再実行してくださ い。 ------------------------------------------------------------------------ 18.11 UNIX ベース・システム上でのコントロール・センターの障害追及 UNIX ベース・システム上でコントロール・センターを開始できない場合は、 JAVA_HOME 環境変数を Java のインストール先に位置付けるよう設定してくださ い。 * Java が /usr/jdk118 の下にインストールされている場合は、JAVA_HOME を /usr/jdk118 にします。 * sh、ksh、または bash シェルの場合: export JAVA_HOME=/usr/jdk118 * csh または tcsh シェルの場合: setenv JAVA_HOME /usr/jdk118 ------------------------------------------------------------------------ 18.12 OS/2 上での infopop の問題 OS/2 上でコントロール・センターを実行する際、画面解像度 1024x768 で 256 色 を使用し、 「ワークプレース・シェル・パレットを考量する」がチェックされてい ると、 現行ウィンドウの枠に広がる infopop が、黒の背景に黒のテキストで表示 される場合があります。 この問題を修正するには、画面解像度の設定を 256 色以 上にするか、 あるいは「ワークプレース・シェル・パレットを考量する」を未チェ ックにしてください。 ------------------------------------------------------------------------ 18.13 jdk11_path 構成パラメーターのヘルプ コントロール・センターのヘルプで、Java 開発キット 1.1 インストール・パス (jdk11_path) 構成パラメーターに関する 1 行 (副見出し 適用 の下) が欠落して います。適用 の下の完全なリストは次のようになります。 * データベース・サーバー (ローカルおよびリモート・クライアント) * クライアント * データベース・サーバー (ローカル・クライアント) * 区分データベース・サーバー (ローカルおよびリモート・クライアント) * サテライト・データベース・サーバー (ローカル・クライアント) ------------------------------------------------------------------------ 18.14 スクリプト・センターまたはジャーナルを使用中の Solaris システム・エラ ー (SQL10012N) Solaris システムをスクリプト・センターまたはジャーナルから選択した場合、 以 下のエラーが起きる場合があります。 SQL10012N - 指定されたライブラリー "/udbprod/db2as/sqllib/function/unfenced/ db2scdar!ScheduleInfoOpenScan" のロード中に予期しないオペレーティング・システム・エラーを 受け取りました。SQLSTATE=42724 これは、Solaris ランタイム・リンカーのバグによるものです。 この問題を訂正す るには、次のパッチを適用します。 105490-06 (107733 は 105490 より新しいパッチ) (Solaris 2.6 用) ------------------------------------------------------------------------ 18.15 DPREPL.DFT ファイルのヘルプ コントロール・センターで、「ツール設定」ノートブックのレプリケーション・ペ ージの ヘルプのステップ 5d で、次のような記載があります。 ファイルをコントロール・センターの作業ディレクトリー (たとえば SQLLIB\BIN) に保管し、システムでデフォルト・ファイルとして 使用できるようにしてください。 ステップ 5d は以下のように訂正されます。 ファイルをコントロール・センターの作業ディレクトリー (たとえば SQLLIB\CC) に保管し、システムでデフォルト・ファイルとして 使用できるようにしてください。 ------------------------------------------------------------------------ 18.16 複数のコントロール・センター・アプレットの立ち上げ 同じマシンで複数のコントロール・センター・アプレットを同時に立ち上げること はできません。 この制限は、サポートされている任意のブラウザー上で実行してい るコントロール・センター・アプレットに適用されます。 ------------------------------------------------------------------------ 18.17 アプレットとして実行中のコントロール・センターのオンライン・ヘルプ コントロール・センターがアプレットとして起動中に、 F1 キーは infopops を持 つウィンドウまたはノートブックでのみ機能します。 F1 キーを押して、以下の構成要素で infopops を 表示することができます。 * DB2 ユニバーサル・データベース (OS/390 版) * ウィザード コントロール・センターの残りの構成要素では、 F1 キーにより何のヘルプも表示 されません。 その他の構成要素のヘルプを表示するには、「ヘルプ」プッシュボタ ンを 使用するか、あるいはヘルプ・プルダウン・メニューを使用してください。 ------------------------------------------------------------------------ 18.18 コントロール・センターをアプレット・モードで実行 (Windows 95) スクリプト・センターを開こうとする際に、無効なユーザー ID または パスワード を指定すると、失敗する場合があります。 コントロール・センターにサインオンす る場合は、有効なユーザー ID およびパスワードを入力するよう注意してくださ い。 ------------------------------------------------------------------------ 18.19 大きな照会結果の操作 ユーザーは、いくつもの行を返す照会を簡単に作成できます。 ただし、実際に返さ れる行数をユーザーが予測することは容易ではありません。 数千 (または数百万) の行を返す可能性のある照会には、以下の 2 つの問題があります。 1. 結果の検索に時間がかかる可能性がある。 2. 結果を保管するために、大量のクライアント・メモリーが必要になる可能性が ある。 このプロセスを簡単にするために、DB2 は大きな結果セットを分割します。 DB2 は、一度に 1 つのチャンクの照会結果を検索して表示します。 この結果、以下のようになります。 1. 最初の照会のチャンクを残りのチャンクの検索中に表示できるため、表示時間 が削減されます。 2. 1 つのチャンクの照会結果のみが指定の時刻にクライアントに保管されるた め、 クライアントのメモリー所要量が削減されます。 メモリー内の照会結果の行数を制御するには: 1. 「ツール設定」ノートブックの「一般」ページをオープンします。 2. 「最大サイズ」セクションで、以下を選択します。 o 「サンプル・コンテンツ」ウィンドウに表示される結果行の数を制限す るための 「サンプル・コンテンツ」。 結果セットのチャンク・サイズ (行数) を入力フィールドに指定してください。 o コマンド・センターの「照会結果」ページに表示される結果行の数を制 限するための 「コマンド・センター」。 結果セットのチャンク・サイ ズ (行数) を入力フィールドに指定してください。 「サンプル・コンテンツ」ウィンドウまたはコマンド・センターの「照会結果」ペ ージの 照会の結果を操作すると、照会でメモリーに保持されている行数が 「メモ リー内の行」フィールドに示されます。 この数が、最大サイズ・セットを超えるこ とはありません。 結果セットの次のチャンクを検索するには、「次へ」をクリック します。 「次へ」が非アクティブであれば、最後の結果セットに到達したというこ とです。 ------------------------------------------------------------------------ インフォメーション・センター ------------------------------------------------------------------------ 19.1 Windows オペレーティング・システムでの「無効なショートカット」エラー インフォメーション・センターを使用する場合、 次のようなエラーが出される場合 があります: 「無効なショートカット」。最近、新規の Web ブラウザーあるいは新 しいバージョンの Web ブラウザーを インストールした場合、HTML および HTM 文 書が正しいブラウザーで 関連付けられていることを確認してください。 Windows ヘルプのトピック 「ファイルを開くときに起動するプログラムを変えるには」を参 照してください。 ------------------------------------------------------------------------ 19.2 Netscape がすでにオープンしているときに、Netscape Navigator の外部 Web リンクをオープンする (UNIX ベース・システム) Netscape Navigator がすでに開いて、ローカル DB2 HTML ドキュメントか、外部の Web サイトを 表示している場合、インフォメーション・センターから外部の Web サイトを開こうとすると Netscape でエラーが発生します。エラーは次のように表 示されます。「Netscape は <外部サイト> というファイルまたはディレクトリーを 見つけることができません。」 この問題に対処するには、外部の Web サイトを開く前に 開いている Netscape ブ ラウザーを閉じます。 Netscape が再起動し、外部の Web サイトが表示されます。 このエラーはすでに開いている Netscape で、ローカルの DB2 HTML ドキュメント を開こうとしても 起こりませんのでご注意ください。 ------------------------------------------------------------------------ 19.3 インフォメーション・センター開始時の問題 いくつかのシステムで、スタート・メニュー、ファースト・ステップ、または db2ic コマンドを使用してインフォメーション・センターを 呼び出すと、開始が遅 い場合があります。この問題が発生した場合は、コントロール・センターを開始 し、 ヘルプ --> インフォメーション・センター を開始します。 ------------------------------------------------------------------------ ウィザード ------------------------------------------------------------------------ 20.1 データベース作成ウィザードの拡張サイズの設定 データベース作成ウィザードを使用して、新規データベースの ユーザー表スペース (カタログまたは一時表以外) の拡張サイズおよび プリフェッチ・サイズ・パラメ ーターを設定することができます。 この機能は、ウィザードの「ユーザー表」ペー ジのユーザー表スペースに 少なくとも 1 つのコンテナーが含まれている場合にの み使用できます。 ------------------------------------------------------------------------ 20.2 MQSeries Assist ウィザード DB2 バージョン 7.2 では新しい MQSeries Assist ウィザードが利用できます。 こ のウィザードは、 DB2 MQSeries 関数を使って MQSeries キューから読み取る表関 数を作成します。 DB2 MQSeries 関数も バージョン 7.2 に新規に追加されたもの です。このウィザードは、 それぞれの MQSeries メッセージを、ユーザーの指定に よって、区切られたストリング または固定長列として処理できます。処理された表 関数はユーザーの指定にしたがって構文解析し、 それぞれの MQSeries メッセージ をその表関数の行として返します。このウィザードでは、 表関数の上部に視点を作 成したり、MQSeries メッセージや表関数の結果をプレビューする こともできま す。このウィザードは、ストアード・プロシージャー・ビルダーまたは データウェ アハウス・センターから立ち上げることができます。 このウィザードの要件は以下の通りです。 * MQSeries バージョン 5.2 * MQSeries アプリケーション・メッセージング・インターフェース (AMI) * DB2 MQSeries 関数 上記の要件の詳細は、MQSeries を参照してください。 サンプルおよび MQSeries Assist ウィザード・チュートリアルについては、 http://www.ibm.com/software/data/db2/udb/ide のチュートリアル・セクションを 参照してください。 ------------------------------------------------------------------------ 20.3 OLE DB Assist ウィザード このウィザードのガイドに従うと、Microsoft OLE DB 標準をサポートする別の デ ータベース・プロバイダーのデータを読み取る表関数を作成することが できます。 オプションとして、OLE DB 表機能で読み取られるデータで DB2 表を 作成するこ と、および OLE DB 表機能の視点を作成することが できます。このウィザードは、 ストアード・プロシージャー・ビルダーまたは データウェアハウス・センターから 立ち上げることができます。 このウィザードの要件は以下の通りです。 * OLE DB プロバイダー (Oracle、Microsoft SQL Server など) * OLE DB サポート関数 サンプルおよび OLE DB Assist ウィザード・チュートリアルについては、 http://www.ibm.com/software/data/db2/udb/ide の チュートリアル・セクション を参照してください。 ------------------------------------------------------------------------ ビジネス・インテリジェンス 部分目次 * ビジネス・インテリジェンス・チュートリアル o 21.1 改訂されたビジネス・インテリジェンス・チュートリアル * データウェアハウスセンター管理の手引き o 22.1 障害追及 o 22.2 Excel を ウェアハウス・ソースとしてセットアップ o 22.3 プロセスの定義と実行 o 22.4 「メタデータのエクスポート」ダイアログ o 22.5 Submit OS/390 JCL jobstream (VWPMVS) プログラムに関する値の 定義 o 22.6 データウェアハウス・サンプル付録の変更 o 22.7 データウェアハウスセンター・メッセージ o 22.8 DB2 OLAP Integration Server でのアウトラインの作成およびデー タのロード o 22.9 データウェアハウスセンターでのクラシック・コネクトの使用 o 22.10 データウェアハウスセンター環境構造 o 22.11 逆転トランスフォーマーの使用 o 22.12 DB2 バージョン 7 ウェアハウス・エージェントでの DB2 バージ ョン 5 データへのアクセス + 22.12.1 DB2 バージョン 5 サーバーの移行 + 22.12.2 エージェント構成の変更 + 22.12.2.1 UNIX ウェアハウス・エージェント + 22.12.2.2 Microsoft Windows NT、Windows 2000、および OS/2 ウェアハウス・エージェント o 22.13 IBM ERwin メタデータ抽出プログラム + 22.13.1 内容 + 22.13.2 ソフトウェア要件 + 22.13.3 プログラム・ファイル + 22.13.4 タグ言語ファイルの作成 + 22.13.5 データウェアハウスセンターへのタグ言語ファイルのイン ポート + 22.13.6 情報カタログ・マネージャーへのタグ言語ファイルのイン ポート + 22.13.7 障害追及 + 22.13.8 DB2 データウェアハウスセンターへの ERwin のマッピン グ + 22.13.8.1 情報カタログ・マネージャーへの ERwin のマッピ ング o 22.14 データウェアハウスセンターでの名前およびアドレスのクレンジ ング + 22.14.1 + 22.14.1.1 要件 + 22.14.1.2 Trillium Software System コンポーネント + 22.14.1.3 データウェアハウスセンターでの Trillium バッ チ・システムの使用 + 22.14.1.4 Trillium メタデータのインポート + 22.14.1.5 メタデータのマッピング + 22.14.1.6 制約事項 + 22.14.2 Trillium バッチ・システム JCL ファイルの作成 + 22.14.3 UNIX および Windows での Trillium バッチ・システム・ スクリプト・ファイルの作成 + 22.14.4 Trillium バッチ・システム・ステップの定義 + 22.14.5 Trillium バッチ・システム・ユーザー定義プログラムの 使用 + 22.14.6 エラー処理 + 22.14.6.1 エラー戻りコード + 22.14.6.2 ログ・ファイル o 22.15 MQSeries とデータウェアハウスセンターの統合 + 22.15.1 MQSeries メッセージの視点の作成 + 22.15.1.1 要件 + 22.15.1.2 制約事項 + 22.15.1.3 MQSeries メッセージの視点の作成 + 22.15.2 MQSeries メッセージおよび XML メタデータのインポート + 22.15.2.1 要件 + 22.15.2.2 制約事項 + 22.15.2.3 MQSeries メッセージおよび XML メタデータのイ ンポート + 22.15.2.4 MQSeries ユーザー定義プログラムの使用 + 22.15.2.5 エラー戻りコード + 22.15.2.6 エラー・ログ・ファイル o 22.16 Microsoft OLE DB および Data Transaction Services サポート + 22.16.1 OLE DB 表関数の視点の作成 + 22.16.2 DTS パッケージの視点の作成 o 22.17 置換での増分コミットの使用 o 22.18 構成要素トレース・データ・ファイル名 o 22.19 AIX および Solaris 操作環境の Sybase ソースに必要な Open Client o 22.20 サンプル項目の訂正 o 22.21 第 3 章 ウェアハウス・ソースのセットアップ + 22.21.1 ウェアハウス・ソースに Microsoft Access のメモ・フィ ールドをマッピング o 22.22 第 10 章 ウェアハウス・データベースの保守 + 22.22.1 DB2 UDB RUNSTATS プログラムのステップ・サブタイプに 表をリンク o 22.23 デフォルト・ウェアハウス・コントロール・データベース o 22.24 「ウェアハウス・コントロール・データベース管理」ウィンドウ o 22.25 活動ウェアハウス・コントロール・データベースの変更 o 22.26 ウェアハウス・コントロール・データベースの作成および初期化 o 22.27 改訂された SQL ステップの作成 o 22.28 「プロセス・モデル」ウィンドウでのソースおよびターゲットの 変更 o 22.29 データウェアハウスセンター・オブジェクトへの記述の追加 o 22.30 サンプル・コンテンツの実行 o 22.31 「DDL の作成」SQL ステートメントの編集 o 22.32 Visual Warehouse ビジネス・ビューの移行 o 22.33 ターゲット表および 1 次キーの生成 o 22.34 Merant ODBC ドライバーの使用 o 22.35 新しい ODBC ドライバー o 22.36 OS/2 データベースのウェアハウス・ソースまたはターゲットの定 義 o 22.37 ウェアハウス・コントロール・データベースの状況のモニター o 22.38 TBC_MD サンプル・データベースでの SQL Assist の使用 o 22.39 FormatDate 関数の使用 o 22.40 言語設定の変更 o 22.41 キー表生成トランスフォーマーの使用 o 22.42 データベースへの接続の保守 o 22.43 リモート・データウェアハウスセンター・クライアントのセット アップ o 22.44 DB2 (VM 版) ウェアハウス・ソースの定義 o 22.45 DB2 (VM 版) または DB2 (VSE 版) ターゲット表の定義 o 22.46 区切り識別子サポートの使用可能化 o 22.47 バインドの問題を示す DataJoiner エラー o 22.48 データウェアハウスセンターのレプリケーションのセットアップ および実行 o 22.49 障害追及のヒント o 22.50 ソースおよびターゲットへのアクセス o 22.51 その他のサポートされる IBM 以外のデータベース・ソース o 22.52 データウェアハウスセンターでの手操作によるデータ・ソースの 作成 o 22.53 共通ウェアハウス・メタデータ交換 (CWMI) を使用したインポー トおよびエクスポート + 22.53.1 入門 + 22.53.2 メタデータのインポート + 22.53.3 インポート・ユーティリティー実行後のメタデータの更新 + 22.53.4 メタデータのエクスポート o 22.54 OS/390 Runstats ユーティリティー・ステップ o 22.55 OS/390 Load ユーティリティー・ステップ o 22.56 共通ウェアハウス・メタモデル (CWM) XML サポート o 22.57 プロセス・モデラー o 22.58 スキーマ・モデラー o 22.59 必須フィールド o 22.60 データウェアハウスセンター・ランチパッド機能強化 o 22.61 ファイルへのステップ情報の印刷 * データウェアハウスセンター アプリケーション統合の手引き o 23.1 その他のメタデータ・テンプレート + 23.1.1 Commit.tag + 23.1.1.1 トークン + 23.1.1.2 値の例 + 23.1.2 ForeignKey.tag + 23.1.2.1 トークン + 23.1.2.2 値の例 + 23.1.3 ForeignKeyAdditional.tag + 23.1.3.1 トークン + 23.1.3.2 値の例 + 23.1.4 PrimaryKey.tag + 23.1.4.1 トークン + 23.1.4.2 値の例 + 23.1.5 PrimaryKeyAdditional.tag + 23.1.5.1 トークン + 23.1.5.2 値の例 * データウェアハウスセンター・オンライン・ヘルプ o 24.1 レプリケーション用に表またはビューを定義 o 24.2 AS/400 エージェントでの Essbase VWP の実行 o 24.3 「データウェアハウスセンター・メタデータの発行」ウィンドウお よび「関連プロパティー」ウィンドウの使用 o 24.4 外部キー o 24.5 「レプリケーション」ノートブック o 24.6 タグ言語のインポート o 24.7 「データの追加」のリンク o 24.8 表のインポート o 24.9 RUNSTATS および REORGANIZE TABLE オンライン・ヘルプの訂正 o 24.10 通知ページ (ウェアハウス・プロパティー・ノートブックおよび スケジュール・ノートブック) o 24.11 エージェント・サイト・ノートブックのエージェント・モジュー ル・フィールド * DB2 OLAP スターター・キット o 25.1 OLAP Server Web サイト o 25.2 サポートされるオペレーティング・システム・サービス・レベル o 25.3 UNIX での DB2 OLAP スターター・キットを完了する o 25.4 ODBC を OLAP スターター・キット用に構成 + 25.4.1 UNIX システムでのデータ・ソースの構成 + 25.4.1.1 環境変数の構成 + 25.4.1.2 odbc.ini ファイルの編集 + 25.4.1.3 odbc.ini ファイルへのデータ・ソースの追加 + 25.4.1.4 DB2 の ODBC 設定の例 + 25.4.1.5 Oracle の ODBC 設定の例 + 25.4.2 UNIX システムでの OLAP メタデータ・カタログの構成 + 25.4.3 Windows システムでのデータ・ソースの構成 + 25.4.4 Windows システムでの OLAP メタデータ・カタログの構成 + 25.4.5 データ・ソースを構成したら o 25.5 OLAP スターター・キット・デスクトップからのログイン + 25.5.1 スターター・キットのログインの例 o 25.6 OLAP スターター・キットのサンプル・データベースを手動で作成 および構成する o 25.7 アプリケーションを OLAP スターター・キット・バージョン 7.2 に移行 o 25.8 既知の問題および制限事項 o 25.9 OLAP スプレッドシート・アドイン EQD ファイルの欠落 * 情報カタログ・マネージャー管理の手引き o 26.1 情報カタログ・マネージャー初期設定ユーティリティー + 26.1.1 + 26.1.2 ライセンス交付の問題 + 26.1.3 インストールの問題 o 26.2 DB2 バージョン 7 情報カタログ・マネージャーによる DB2 バージ ョン 5 情報カタログへのアクセス o 26.3 情報カタログのセットアップ o 26.4 別の製品とのメタデータの交換 o 26.5 flgnxoln コマンドでのメタデータの交換 o 26.6 MDISDGC コマンドでのメタデータの交換 o 26.7 プログラムの呼び出し * 情報カタログ・マネージャー・プログラミングの手引きおよび解説書 o 27.1 情報カタログ・マネージャー理由コード * 情報カタログ・マネージャー 使用者の手引き * 情報カタログ・マネージャー: オンライン・メッセージ o 29.1 メッセージ FLG0260E o 29.2 メッセージ FLG0051E o 29.3 メッセージ FLG0003E o 29.4 メッセージ FLG0372E o 29.5 メッセージ FLG0615E * 情報カタログ・マネージャー: オンライン・ヘルプ o 30.1 Web 用情報カタログ・マネージャー * DB2 ウェアハウス・マネージャー インストールの手引き o 31.1 ウェアハウス・トランスフォーマーのソフトウェア要件 o 31.2 SAP R/3 用コネクター + 31.2.1 インストール前提条件 o 31.3 Web 用コネクター + 31.3.1 インストール前提条件 * 照会パトローラー管理の手引き o 32.1 DB2 照会パトローラー・クライアントの分離構成要素 o 32.2 dqpmigrate を使用した DB2 照会パトローラーのバージョン 6 か らの移行 o 32.3 照会管理の使用可能化 o 32.4 制御表の表スペースのロケーション o 32.5 dqpstart コマンドの新しいパラメーター o 32.6 iwm_cmd コマンドの新しいパラメーター o 32.7 新しいレジストリー変数: DQP_RECOVERY_INTERVAL o 32.8 Query Administrator の開始 o 32.9 ユーザー管理 o 32.10 ジョブ・キューの作成 o 32.11 コマンド行インターフェースの使用 o 32.12 照会イネーブラー注意事項 o 32.13 ブランク列ページを返すことができる DB2 照会パトローラー・ト ラッカー o 32.14 照会パトローラーおよびレプリケーション・ツール o 32.15 付録 B. DB2 照会パトローラー・クライアントのトラブルシュー ティング ------------------------------------------------------------------------ ビジネス・インテリジェンス・チュートリアル ------------------------------------------------------------------------ 21.1 改訂されたビジネス・インテリジェンス・チュートリアル フィックスパック 2 には、バージョン 7.1 に存在したさまざまな問題が訂正され た、 改訂版のビジネス・インテリジェンス・チュートリアルとデータウェアハウス センター・ サンプル・データベースが組み込まれています。改訂されたデータウェ アハウスセンター・ サンプル・データベースを適用するには、以下を行ってくださ い。 サンプル・データベースをまだインストールしていない場合は、「ファースト・ス テップ」 ランチ・パッドを使用して新しいサンプル・データベースを作成します。 「スタート」をクリックし、 「プログラム --> IBM DB2 --> ファースト・ステッ プ」を 選択してください。 以前にサンプル・データベースをインストールした場合は、 サンプル・データベー ス DWCTBC、TBC_MD、および TBC をドロップしてください。 保存したいデータをサ ンプル・データベースに追加してあった場合は、ドロップする前に バックアップを 取っておいてください。3 つのサンプル・データベースをドロップするには、 次の ようにします。 1. DB2 コマンド・ウィンドウをオープンするために、「スタート」を クリック し、「プログラム --> IBM DB2 --> コマンド・ウィンドウ」を 選択します。 2. DB2 コマンド・ウィンドウで、次の 3 つのコマンドをそれぞれ入力して、 Enter を押します。 db2 drop database dwctbc db2 drop database tbc_md db2 drop database tbc 3. DB2 コマンド・ウィンドウをクローズします。 4. 「ファースト・ステップ」ランチ・パッドを使用して新しいサンプル・データ ベースを 作成します。「スタート」をクリックし、 「プログラム --> IBM DB2 --> ファースト・ステップ」を 選択してください。 ------------------------------------------------------------------------ データウェアハウスセンター管理の手引き ------------------------------------------------------------------------ 22.1 障害追及 データウェアハウスセンターの障害追及情報は 「DB2 問題判別の手引き」に移動し ました。 ------------------------------------------------------------------------ 22.2 Excel を ウェアハウス・ソースとしてセットアップ 「第 3 章 ウェアハウス・ソースのセットアップ」の セクション「Window NT での 非 DB2 データベース・ウェアハウス・ソースのセットアップ」の Microsoft Excel に関するセクションに、ステップが 1 つ足りません。 新しいステップは以下に示 したステップ 3 です。 Microsoft Excel 95/97 ODBC ドライバーを使用して Excel スプレッドシートにア クセスする場合、スプレッドシート内の 各ワークシートについて、名前付きの表を 作成する必要があります。 各ワークシートに名前付きの表を作成するには、以下を 行います。 1. 必要な列および行を選択します。 2. 「Excel」--->「挿入」--->「名前」--->「定義」をクリックします。 3. 「名前の定義」ウィンドウの「参照範囲」フィールドに、 ステップ 1 で選択 したセルが入っていることを確認します。 入っていない場合、「参照範囲」 フィールドの右端にあるアイコンをクリックし、 選択したすべてのセルが 「参照範囲」フィールドに含まれるようにします。 4. マークされたデータの名前を入力します (またはデフォルトの名前を使用しま す)。 5. 「OK」をクリックします。 ------------------------------------------------------------------------ 22.3 プロセスの定義と実行 「第 5 章 プロセスの定義と実行」の「データウェアハウスセンターの 外部からの ステップ開始」セクションでは、2 バイトの名前があるステップを開始する場合に は、 ウェアハウス・サーバー・ワークステーションおよびエージェント・サイト で、JDK 1.1.8 以降が必要です。 ------------------------------------------------------------------------ 22.4 「メタデータのエクスポート」ダイアログ 第 12 章の「データウェアハウスセンター・メタデータのエクスポートおよびイン ポート」セクションの 「タグ言語ファイルへのメタデータのエクスポート」サブセ クションで、 ステップ 5 は以下のようになります。 エクスポートするプロセスに関連するスケジュール情報をエクスポートしたくない 場合、 「スケジュールの組み込み」チェック・ボックスをクリアしてください。 ------------------------------------------------------------------------ 22.5 Submit OS/390 JCL jobstream (VWPMVS) プログラムに関する値の定義 219 ページでは、セクション「Submit OS/390 JCL jobstream (VWPMVS) プログラム に 関する値の定義」のステップ 8 で、JES ファイルと同じディレクトリーに .netrc ファイルを 定義する必要があることを述べています。代わりに、プログラ ムは .netrc ファイルを作成します。 そのファイルが存在しない場合、プログラム はホーム・ディレクトリーにファイルを作成します。 すでにホーム・ディレクトリ ーに .netrc ファイルが存在している場合は、プログラムは 既存ファイルをリネー ムし、新規ファイルを作成します。プログラムが処理を終了したら、 作成され、元 ファイルから .netrc ファイルへリネームされた新規 .netrc ファイルは削除され ます。 ------------------------------------------------------------------------ 22.6 データウェアハウス・サンプル付録の変更 * データウェアハウス・サンプル付録、セクション「サンプル・メタデータの表 示および変更」で、 GEOGRAPHIES 表がソース表のリストに含まれる可能性が あります。 * データウェアハウス・サンプル付録、実動モードにステップをプロモートする プロシージャーの セクション「ステップのプロモート」では、テスト・モー ドにステップをプロモートした場合、 ターゲット表が作成されるので、以下 のステートメントは誤りです: データウェアハウスセンターはターゲット表の作成を開始し、 処理ウィンドウを表示します。 ------------------------------------------------------------------------ 22.7 データウェアハウスセンター・メッセージ Microsoft Windows NT および Windows 2000 では、データウェアハウスセンター・ ログ・イベントはシステム・イベント・ログになります。 イベント ID は データ ウェアハウスセンター・メッセージ番号に対応します。 データウェアハウスセンタ ー・メッセージ情報に関しては、以下を参照してください:メッセージ解説書 ------------------------------------------------------------------------ 22.8 DB2 OLAP Integration Server でのアウトラインの作成およびデータのロード 315 ページの図 20 はエラーの例です。以下のコマンドは 正しいです: "C:\IS\bin\olapicmd" < "C:\IS\Batch\my_script.script" > "C:\IS\Batch\my_script.log" パスのディレクトリー名がプログラム・ファイルのようなブランクを含む 場合は、 "C:\IS\bin\olapicmd" にある二重引用符は必要です。 ------------------------------------------------------------------------ 22.9 データウェアハウスセンターでのクラシック・コネクトの使用 * 「付録 F データウェアハウスセンターでのクラシック・コネクトの使用」の 「CROSS ACCESS ODBC ドライバーのインストール」セクションでは、465 ペー ジにある 情報を次のように差し替える必要があります。 DB2 ウェアハウス・マネージャー バージョン 7 のカスタム・インストール を実行して、CROSS ACCESS ODBC ドライバーをインストールし、 クラシック・コネクト・ドライバー・コンポーネントを選択します。 このドライバーは、DB2 ウェアハウス・マネージャーの 通常インストールの一部としてはインストールされません。 CROSS ACCESS ODBC ドライバーは、SQLLIB ディレクトリーの ODBC32 サブディレクトリーに インストールされます。インストールの完了後、ドライバーのパス (たとえば、 C:\Program Files\SQLLIB\ODBC32) を PATH システム環境変数に手操作で追加する必要があります。 別のバージョンの CROSS ACCESS ODBC ドライバーがすでにインストールされている場合は、 別のバージョンのパスの前に ...\SQLLIB\ODBC32\ パスを入れてください。 オペレーティング・システムは、CROSS ACCESS ODBC ドライバーが含まれている パスの最初のディレクトリーを使用します。 * 次のプロシージャーを、 「付録 F データウェアハウスセンターでのクラシッ ク・コネクトの使用」に追加してください。 クラシック・コネクト ODBC ドライバーをインストールするには、次の手順で 行います。 1. ウェアハウス・マネージャーの CD-ROM を CD-ROM ドライブに挿入しま す。 ランチパッドが開きます。 2. ランチパッドから「インストール」をクリックします。 3. 「製品の選択」ウィンドウで、「DB2 ウェアハウス・ マネージャー」チ ェック・ボックスが選択されていることを確認し、「次」をクリックし ます。 4. 「インストール・タイプの選択」ウィンドウで、「カスタム」を選択 し、「次」をクリックします。 5. 「構成要素の選択」ウィンドウで「クラシック・コネクト・ ドライバー 」と「ウェアハウス・エージェント」を選択し、 その他のチェック・ボ ックスはすべてクリアして、「次」をクリックします。 6. 「ファイルのコピー開始」ウィンドウで、選択内容を確認します。選択 の変更を 行いたい場合は、「戻る」をクリックして 選択の変更を行う ウィンドウに戻ります。インストールを始めるには、「次」をクリック します。 ------------------------------------------------------------------------ 22.10 データウェアハウスセンター環境構造 「付録 G データウェアハウスセンター環境構造」の 481 ページには 表に誤った項 目があります。 C:\Program Files\SQLLIB\ODBC32 は PATH 環境変数に追加されま せん。 PATH 環境変数の更新は、C:\Program Files\SQLLIB\BIN のみです。 ------------------------------------------------------------------------ 22.11 逆転トランスフォーマーの使用 ブックでは、逆転トランスフォーマーがパラメーターに基づいてターゲット表を 作 成することができると記述していますが、生成されたターゲット表には、 この表で 明白に作成されるべきものである、希望の出力列がないという点が抜けています。 ------------------------------------------------------------------------ 22.12 DB2 バージョン 7 ウェアハウス・エージェントでの DB2 バージョン 5 デー タへのアクセス DB2 バージョン 7 ウェアハウス・エージェント (DB2 バージョン 7 インストー ル・プロセスによって 構成) は DB2 バージョン 6 および DB2 バージョン 7 デー タへのアクセスをサポートします。 DB2 バージョン 5 データにアクセスする必要 がある場合、 以下の 2 つのうちいずれかのアプローチを行なってください。 * DB2 バージョン 5 サーバーを DB2 バージョン 6 または DB2 バージョン 7 に移行します。 * 該当するオペレーティング・システムのエージェント構成を修正して、 DB2 バージョン 5 データにアクセスできるようにします。 DB2 バージョン 7 ウェアハウス・エージェントは DB2 バージョン 2、 あるいは他 の前バージョンからのデータへのアクセスはサポートしません。 22.12.1 DB2 バージョン 5 サーバーの移行 DB2 バージョン 5 サーバーの移行に関する詳細は、各オペレーティング・システム 版の「DB2 ユニバーサル・データベース 概説およびインストール 」を参照してく ださい。 22.12.2 エージェント構成の変更 以下の情報は、それぞれのオペレーティング・システムで、エージェント構成を変 更する 方法を説明しています。DB2 サーバーを DB2 バージョン 6、またはそれ以 降のバージョンに 移行する場合、構成に行なった変更を除去します。 22.12.2.1 UNIX ウェアハウス・エージェント UNIX ウェアハウス・エージェントを、CLI または ODBC アクセスを持つ DB2 バー ジョン 5 からのデータにアクセスできるようセットアップするには: 1. DB2 バージョン 6 ランタイム・クライアントをインストールします。次の URL からクライアント・ダウンロードを選択することによって、ランタイム・ クライアントを獲得できます: http://www.ibm.com/software/data/db2/udb/support 2. DB2INSTANCE 環境変数が DB2 バージョン 6 インスタンスを示すように、 ウ ェアハウス・エージェントの構成ファイルを更新します。 3. ウェアハウス・エージェントがアクセスするこの DB2 バージョン 6 インスタ ンス内の すべてのデータベースをカタログします。 4. エージェント・デーモン処理 ID を指定して kill コマンドを実行することに よって、 エージェント・デーモン・プロセスを停止します。エージェント・ デーモンは自動的に再開します。 プロセスを強制終了する root 権限が必要 です。 22.12.2.2 Microsoft Windows NT、Windows 2000、および OS/2 ウェアハウス・エ ージェント Microsoft NT、Windows 2000 または OS/2 ウェアハウス・エージェントを DB2 バ ージョン 5 からのデータにアクセスできるようセットアップするには: 1. DB2 コネクト エンタープライズ・エディション バージョン 6 を、 DB2 バー ジョン 7 ウェアハウス・エージェントがインストールされているワークステ ーション以外の ワークステーションにインストールします。 DB2 コネクト エンタープライズ・エディションは、DB2 ユニバーサル・デー タベース・エンタープライズ・エディション および DB2 ユニバーサル・デー タベース・エンタープライズ - 拡張エディションの一部として組み込まれて います。 これらの DB2 製品のいずれかのバージョン 6 がインストールされ ていれば、 別に DB2 コネクトをインストールする必要はありません。 制約事項: 同じ Windows NT または OS/2 ワークステーションに、DB2 の複数バー ジョンを インストールすることはできません。DB2 コネクトを別の Windows NT ワークステーション、 OS/2 または UNIX ワークステーショ ンにインストールすることは可能です。 2. DB2 バージョン 5 のデータにアクセスするため、ウェアハウス・エージェン トおよび DB2 コネクト バージョン 6 を構成します。詳しくは、「DB2 コネ クト 使用者の手引き 」を参照してください。以下のステップは必要なステッ プの概説です。 a. DB2 バージョン 5 システムで、DB2 コマンド行プロセッサーを使用し て、 ウェアハウス・エージェントがアクセスするバージョン 5 データ ベースをカタログします。 b. DB2 コネクト・システムで、DB2 コマンド行プロセッサーを使用して、 以下をカタログします。 + DB2 バージョン 5 システムの TCP/IP ノード + DB2 バージョン 5 システムのデータベース + DB2 バージョン 5 システムの DCS 項目 c. ウェアハウス・エージェント・ワークステーションで、DB2 コマンド行 プロセッサーを使用して、 以下をカタログします。 + DB2 コネクト・システムの TCP/IP ノード + DB2 コネクト・システムのデータベース データベースのカタログに関する詳細は、「DB2 ユニバーサル・データベース インストールおよび構成補足 」を参照してください。 3. ウェアハウス・エージェント・ワークステーションで、DB2 CLI パッケージを DB2 コネクトを介してアクセスされる各データベースにバインドします。 以下の DB2 コマンドは v5database、仮想の DB2 バージョン 5 データベース の例を示します。 DB2 コマンド行プロセッサーを使用して、以下のコマンド を実行します。 db2cli.lst および db2ajgrt は \sqllib\bnd ディレクトリ ーにあります。 db2 connect to v5database user userid using password db2 bind db2ajgrt.bnd db2 bind @db2cli.lst blocking all grant public ここで、userid は v5 データベースのユーザー ID で、password はそのユー ザー ID のパスワードです。 db2cli.list が DB2 バージョン 5 データベースにバインドされた時、エラー が起こります。このエラーは、ラージ・オブジェクト (LOB) がこの構成では サポートされていないために起こります。このエラーは、DB2 バージョン 5 データベースへのウェアハウス・エージェントのアクセスには影響しません。 DB2 ユニバーサル・ データベース バージョン 5 のフィックスパック 14 (2000 年 6 月、使用可能) は、 DB2 コネクトを介して DB2 バージョン 5 デ ータにアクセスする場合には必要です。 そのフィックスパックの APAR 番号 JR14507 を参照してください。 ------------------------------------------------------------------------ 22.13 IBM ERwin メタデータ抽出プログラム 22.13.1 内容 ソフトウェア要件 プログラム・ファイル タグ言語ファイルの作成 データウェアハウスセンターへのタグ言語ファイルのインポート 情報カタログ・マネージャーへのタグ言語ファイルのインポート 障害追及 データウェアハウスセンターへの ERwin のマッピング 情報カタログ・マネージャーへの ERwin のマッピング このセクションでは、IBM ERwin メタデータ抽出プログラムを使用して ER1 ファイ ルからメタデータを抽出し、 DB2 データウェアハウスセンターまたは情報カタロ グ・マネージャー (DataGuide) タグ言語ファイルを 作成する方法を説明します。 メタデータ抽出プログラムは、入力 ER1 ファイルに保管されているデータベース、 表、 および列などの物理オブジェクトをすべて抽出し、メタデータ・モデルを デ ータウェアハウスセンターまたは情報カタログ・マネージャー・タグ言語ファイル に書き込みます。 情報カタログ・マネージャーの論理モデル (エンティティーと属 性で構成される) も抽出され、作成されます。 これで、オブジェクト間 (データベ ースと表との間、表とエンティティーとの間など) の関係タグで 関連のあるものす べてが作成されます。 データベースのない表であれば、DATABASE という名前のデ フォルト・データベースが作成されます。 スキーマのない表であれば、デフォル ト・スキーマ USERID が使用されます。 モデル名には、ER1 ファイル名が使用され ます。 データウェアハウスセンター・タグまたは情報カタログ・マネージャー・タ グへの ER1 属性の マッピングについて詳しくは、「DB2 データウェアハウスセン ターへの ERwin のマッピング」 および「情報カタログ・マネージャーへの ERwin のマッピング」を参照してください。 メタデータ抽出プログラムは DB2、Informix、Oracle、Sybase、ODBC データ・ソー ス、 および Microsoft SQL Server など、リレーショナル・データベースを持つす べての ER1 モデルをサポートします。 22.13.2 ソフトウェア要件 メタデータ抽出プログラムを実行するには、以下のソフトウェア要件が満たされて いなければなりません。 * Windows NT 4.0 またはそれ以降 * サービス・パック 3 ビルド 466 の ERwin 3.5.2 ERwin タグ言語ファイルをインポートするには、以下のソフトウェア要件が満たさ れていなければなりません。 データウェアハウスセンターの場合: IBM DB2 ユニバーサル・データベース バージョン 7.2 情報カタログ・マネージャーの場合: IBM DB2 ウェアハウス・マネージャー 7.2 テンプレート・タグ言語ファイル (.tag) は、VWS_TEMPLATES 環境変数によって指 定されている ディレクトリーになければなりません。 タイプ・タグ言語ファイル (.typ) は、DGWPATH 環境変数によって指定されている ディレクトリーになければなりません。 22.13.3 プログラム・ファイル メタデータ抽出プログラムは、IBM DB2 ディレクトリーの sqllib\bin サブディレ クトリーに インストールされています。 このプログラムは、ディレクトリーに以 下のファイルをインストールします。 flgerwin.exe メイン移行プログラム erwext.dll タグ言語ファイル生成 DLL cdmerwsn.dll ERwin API ラッパー・クラス DLL プログラムの抽出を開始するには、コマンド・プロンプトから flgerwin コマンド を出してください。 22.13.4 タグ言語ファイルの作成 データウェアハウスセンター・タグまたは情報カタログ・マネージャー・タグ言語 ファイルを作成するには、 flgerwin.exe プログラムを実行して、2 つのメイン・ パラメーターを指定します。 最初のパラメーターはメタデータ抽出元の ER1 ファ イルです。 2 番目のパラメーターは出力タグ言語ファイルの名前です。 デフォル トで抽出プログラムは、データウェアハウスセンター・タグ言語ファイルに MERGE パラメーターを追加します。 コマンド構文: flgerwin inputFile.er1 outputFile.tag [-dwc] [-icm] [ -m] [-u] [-a] [-d] スタースキーマを作成したい場合のコマンド構文: flgerwin inputFile.er1 outputFile.tag [-dwc] [-starschema] -dwc データウェアハウスセンター・タグ言語ファイルを作成します。 -dwc で使用 可能なオプション・パラメーターは -m と -starschema です。 -icm 情報カタログ・マネージャー・タグ言語ファイルを作成します。 -icm で使用 可能なオプション・パラメーターは -m、-u、-a、および -d です。 -starschema ERwin モデル・スタースキーマ・タグ言語ファイルを作成します。 -m オブジェクトに対するアクションを MERGE として指定します。 -u オブジェクトに対するアクションを UPDATE として指定します。 -a オブジェクトに対するアクションを ADD として指定します。 -d オブジェクトに対するアクションを DELETE として指定します。 メタデータ抽出プログラムは、データではなくメタデータを操作します。 ERwin タ グ言語ファイルのインポートを完了したら、ターゲット表を使用する前に、 パスワ ードおよびユーザー ID を一致させる必要があります。 メタデータを既存のデータ ベース・データにマージするには: 「プロパティー」-->「データベース」-->「ユーザー ID」で データウェアハウス センターのユーザー ID およびパスワードを変更し、マージされる データベースの ユーザー ID およびパスワードと同じにします。 メタデータ抽出プログラムを使用すると、タグ言語ファイルをターゲットとしてイ ンポートできます。 新しくインポートされたメタデータでは、表はまだ移植されて いません。 これらの表を論理または物理表現として表示し、ERwin からインポート される表定義を移植するための ウェアハウス・ステップを作成することができま す。 入力 ER1 ファイルは書き込み可能状態でなければなりません。 メタデータ抽出プ ログラムを実行すると、ER1 ファイルは読み取り専用になります。 ファイルを読み 取り/書き込みモードに変更するには、次の例のようなコマンドを使用します。 attrib -r erwinsimplemode.er1 ここで erwinsimplemode.er1 は ERwin フラット・ファイルの名前です。 ER1 ファイルが現行 ERwin セッションで使用されている場合、またはエラー条件が 検出された場合、 メタデータ抽出プログラムはその ER1 ファイルを読み取り専用 状態で保管します。 ER1 ファイルが読み取り専用状態であれば、プログラム異常終 了エラー・メッセージが出される場合があります。 メタデータ抽出プログラムは、 処理中の表名を表示します。 メタデータ抽出プログラムが処理を完了すると、情報 メッセージが出されます。 次元表をファクト表に自動結合することによってスタースキーマを作成するとき、 使用する表の数によっては処理に時間がかかることがあります。 処理中、自動結合 行は緑色になっています。 保管されると、行は黒に変わります。 自動生成制約名を使用して、制約名を固有なものにしてください。 処理中に「重複した列が見つかりました。列は抽出されません。」というメッセー ジを受け取ることがあります。 これは情報メッセージで、抽出プログラムの正常終 了には影響しません。 このメッセージは、外部キーの物理名が、処理されている表 の列の物理名と同じときに表示されます。 22.13.5 データウェアハウスセンターへのタグ言語ファイルのインポート タグ言語ファイルをデータウェアハウスセンターにインポートするには、2 つの方 法があります。 データウェアハウスセンターまたはコマンド行を使用できます。 データウェアハウスセンターを使用して、タグ言語ファイルをインポートするには: 1. 「スタート」-->「プログラム」-->「IBM DB2」--> 「コントロール・センタ ー」をクリックします。 DB2 コントロール・センターがオープンします。 2. データウェアハウスセンターをオープンし、ログオンします。 3. ウェアハウスを右クリックします。 「インポート」ウィンドウがオープンし ます。 4. 「メタデータのインポート」->「ERwin」をクリックします。 「メタデータの インポート」ウィンドウがオープンします。 5. 「入力ファイル」フィールドに入力タグ言語ファイルの名前を入力し、 「了 解」をクリックします。 6. 「スタースキーマの抽出」チェック・ボックスを選択して、 ERwin スタース キーマ・メタデータ・モデルをウェアハウス・スキーマとして定義します。 インポートが完了したら、「表示」-->「最新表示」をクリックして 新しいステッ プを表示できます。 コマンド行を使用してタグ言語ファイルをインポートするには、次のコマンドを入 力します。 iwh2imp2 tag-filename log-pathname target-control-db userid password tag-filename タグ言語ファイルの全パスおよびファイル名。 log-pathname ログ・ファイルの全パス名。 target-control-db インポートのターゲット・データベース名。 userid コントロール・データベースへのアクセスに使用するユーザー ID。 password コントロール・データベースへのアクセスに使用するパスワード。 データウェアハウスセンターのソースにするために DB2 データベース定義を変更す るため、 以下のようにしてタグ言語ファイルを変更できます。 * ソースにしたいデータベースごとに、ISWH タグを ISWH(Y) から ISWH(N) に 変更します。 * ソースにしたいデータベースごとに、 関係タグを :RELTYPE.TYPE(LINK) SOURCETYPE(SCGTARIR) TARGETYPE(DATABASE) から :RELTYPE.TYPE(LINK) SOURCETYPE(SCGSRCIR) TARGETYPE(DATABASE) に変更します。 タグ言語ファイルをインポートするとき、次のメッセージを受け取る場合がありま す。 メッセージ: DWC13238E "DBNAME(___) OWNER(___) TABLE(___) COLUMNS(___)" が示 す タイプ "COLUMN" のオブジェクトが、タグ言語ファイルに 2 回定義されています。 これは情報メッセージで、インポートは正常に完了しています。 同じ名前の外部キ ーを持つエンティティーがある場合、あるいは同じような名前の列で、 切り捨てま たはこれと同様の状況による影響を受けたものを持つエンティティーがある場合 に、 このメッセージを受け取る可能性があります。 重複する列名がないかどうか モデルを調べ、必要であれば調整してください。 22.13.6 情報カタログ・マネージャーへのタグ言語ファイルのインポート タグ言語ファイルを情報カタログ・マネージャーにインポートするには、2 つの方 法があります。 情報カタログ・マネージャーまたはコマンド行を使用できます。 情報カタログ・マネージャーを使用して、タグ言語ファイルをインポートするには: 1. 「スタート」-->「プログラム」-->「DB2」--> 「情報カタログ・マネージャ ー」をクリックします。 2. 「カタログ」-->「インポート」をクリックします。 「インポート」ウィンド ウがオープンします。 3. 「検索」をクリックしてタグ言語ファイルを検索し、 「インポート」をクリ ックします。 インポートが完了したら、「サブジェクト」アイコンをダブルクリックできます。 これで、インポートされたモデルおよびデータベースがすべて表示されるウィンド ウがオープンします。 コマンド・インターフェースを使用して、タグ言語ファイルをインポートするには: DGUIDE /USERID userid /PASSWORD password /DGNAME dgname /IMPORT filename /LOGFILE filename /ADMIN /RESTART (B|C) /USERID コントロール・データベースへのアクセスに使用するユーザー ID。 /PASSWORD このユーザー ID のパスワード。 /DGNAME 情報カタログ・マネージャー名。 /IMPORT タグ言語ファイルの全パスおよびファイル名。 /LOGFILE ログ・ファイルの全パス名。 /ADMIN 管理者としてログインすることを指示します。 /RESTART タグ言語ファイルの先頭 (B) から、または最後のコミット・ポイントから (C、デフォルト) インポートを 開始することを指示します。 22.13.7 障害追及 エラー・メッセージを受け取った場合、エラーを解決するために行うことができる 処置については、 ここでメッセージを調べてください。 ER1 入力ファイルまたはタグ出力ファイルがありません。 メタデータ抽出プログラムでは、2 つのパラメーターを特定の順序に並べる必要が あります。 最初のパラメーターは ER1 ファイルの名前で、2 番目のパラメーター はタグ出力ファイルの名前です。 既存のタグ言語ファイルの名前を指定した場合、 ファイルは上書きされます。 Windows システムでプログラムの異常終了 入力 ER1 ファイルが読み取り専用状態だと思われます。 ER1 ファイルを保管した ときに問題が発生し、メタデータ抽出プログラムがこのファイルを 読み取り専用モ ードにした場合、このエラーが起こることがあります。 コマンド・シェルでコマン ド attrib -r inputFile.er1 を出して、 ER1 ファイルの読み取り/書き込みの状態を変更します。 タグ言語ファイル ... をオープンできませんでした。 現在のドライブでファイルの作成またはオープンを妨げる可能性のある、システム の問題があるかどうか確認します。 テンプレート・ファイルへのパスが見つかりません。 環境変数 VWS_TEMPLATES が設定されていません。 データウェアハウスセンターが インストールされているかどうか調べてください。 タイプ・ファイルへのパスが見つかりません。 環境変数 DGWPATH が設定されていません。 データウェアハウスセンターがインス トールされているかどうか調べてください。 サポートされていないサーバー・バージョンです: ... 抽出元の入力 ER1 ファイルが、プログラムがサポートしていないターゲット・サー バーに保管されています。 ERwin を開始して ER1 ファイルをオープンし、「サー バー」--> 「ターゲット・サーバー」、次に該当するバージョンをクリックします [ソフトウェア要件を参照]。 ER1 ファイルを保管します。 不明な ERwAPI エラー ERwin API エラーが発生し、プログラムがエラーの詳細情報を取得できませんでし た。 ERwin 3.5.2 がインストールされていることを確認してください。 ERwin API を登録する必要があります。 ERwin API を登録するには、ERwin プログラム・ファイルがインストールされてい るディレクトリーから、 コマンド regsvr32 er2api32.dll を実行します。 「er2api32.dll の DllRegisterServer が成功しました。」というメッセージが表 示されます。 データウェアハウスセンターから、またはコマンド・シェルで flgerwin コマンドを出すことによって 抽出プログラムを開始できます。 抽出プログラム・エラー: ... エラー・メッセージを調べて、適切な処置を行ってください。 これは内部抽出プロ グラム・エラーだと思われ、問題を IBM 担当員に報告する必要があります。 不明な抽出プログラム・エラー 不明なエラーが発生しました。 これは内部エラーだと思われ、問題を IBM 担当員 に報告する必要があります。 エラーのため、抽出プログラムが終了しました。 抽出プログラムの完了を妨げるエラーが発生しました。 その他のエラー・メッセー ジを調べて問題を解決するか、あるいは IBM 担当員に連絡してください。 22.13.8 DB2 データウェアハウスセンターへの ERwin のマッピング このセクションでは、主な ERwin オブジェクト属性がデータウェアハウスセンタ ー・タグに どのように対応しているかを説明します。 データベース - WarehouseDatabase.tag または SourceDatabase.tag ERwin コマンド行タグ データウェアハウスセンタ ー ダイアグラムの名前 NAME ウェアハウス・ソースまた はウェアハウス・ターゲッ トの名前 ダイアグラムの作成 RESPNSBL コンタクト 者 データベース名 DBNAME データベース名 データベースのバー DBTYPE データベースのタイプ ジョン ダイアグラムの説明 SHRTDESC 記述 表 - Table.tag ERwin コマンド行タグ データウェアハウスセンタ ー 表名 NAME 表名 表名 TABLES 表名 データベース名 DBNAME n/a 表の所有者 OWNER 表スキーマ 表の注釈 SHRTDESC 記述 列 - Column.tag ERwin コマンド行タグ データウェアハウス・セン ター 列名 NAME 列名 データ・タイプ NATIVEDT データ・タイプ 長さ LENGTH 長さ 位取り SCALE 位取り ヌル・オプション NULLABLE ヌルの許可 (チェック・ボ ックス) 位置 POSNO n/a 1 次キー KEYPOSNO n/a データベース名 DBNAME n/a 表の所有者 OWNER n/a 表名 TABLES n/a 列の注釈 SHRTDESC 記述 22.13.8.1 情報カタログ・マネージャーへの ERwin のマッピング このセクションでは、主な ERwin オブジェクト属性が情報カタログ・マネージャ ー・タグに どのように対応しているかを説明します。 データベース - Database.tag ERwin コマンド行タグ 情報カタログ・マネージャー・イ ンターフェース ダイアグラムの名 NAME データベース名 前 ダイアグラムの作 RESPNSBL データベースの所有者 成者 データベース名 DBNAME データベース名 データベースのバ DBTYPE データベース・タイプ ージョン ダイアグラムの説 SHRTDESC 簡略記述 明 表 - TableOrView.tag ERwin コマンド行タグ 情報カタログ・マネージャー・ インターフェース 表名 NAME 表名 表名 TABLES 表名 データベース名 DBNAME データベース名 表の所有者 OWNER 表の所有者 表の注釈 SHRTDESC 簡略記述 ERwin API TABLVIEW 定義が視点を表す 列 - ColumnOrField.tag ERwin コマンド行タグ 情報カタログ・マネージャー・ インターフェース 列名 NAME 列名 データ・タイプ DATATYPE 列のデータ・タイプ 長さ LENGTH 列の長さ 位取り SCALE 列の位取り ヌル・オプション NULLS 列をヌルにできるか (?) 位置 POSNO 列の位置 1 次キー KEYPOSNO 1 次キーの列の位置 ERwin API ISKEY 列がキーの一部か (?) ERwin API UNIQKEY 列が固有なキーか (?) データベース名 DBNAME データベース名 表の所有者 OWNER 表の所有者 表名 TABLES 表名 列の注釈 SHRTDESC 簡略記述 ERwin ISTEXT データがテキストか (?) ERwin API IDSRES データの解決 モデル - Model.tag ERwin コマンド行タグ 情報カタログ・マネージャー・イ ンターフェース ER1 ファイル名 NAME モデル名 ダイアグラムの作成 RESPNSBL さらに詳しい情報... 者 ダイアグラムの説明 SHRTDESC 簡略記述 エンティティー - Entity.tag ERwin コマンド行タグ 情報カタログ・マネージャー・イ ンターフェース エンティティー名 NAME エンティティー名 注釈 SHRTDESC 簡略記述 定義 LONGDESC 詳細記述 エンティティー所 RESPNSBL さらに詳しい情報... 有者 属性 - Attribute.tag ERwin コマンド行タグ 情報カタログ・マネージャー・イ ンターフェース 属性名 NAME 属性名 注釈 SHRTDESC 簡略記述 定義 LONGDESC 詳細記述 データ・タイプ DATATYPE メンバーのデータ・タイプ 長さ LENGTH メンバーの長さ ------------------------------------------------------------------------ 22.14 データウェアハウスセンターでの名前およびアドレスのクレンジング 22.14.1 データウェアハウスセンターおよび Trillium ソフトウェア・システムを使用し て、 名前およびアドレス・データをクレンジングします。 Trillium Software System は、名前およびアドレス・データの再フォーマット、 標準化、および検査 を行う、名前およびアドレスのクレンジング製品です。 データウェアハウスセンタ ーの Trillium Software System は、 ユーザ定義プログラムから Trillium バッ チ・システム・プログラムを開始することによって使用できます。 ユーザー定義プ ログラムは、Trillium バッチ・システム・スクリプトまたは JCL から メタデータ をインポートするとウェアハウス・ツリーに追加されます。 データウェアハウスセンターでは、 Vality and Evolutionary Technologies Inc. のツールとの統合が行われています。 22.14.1.1 要件 * Trillium Software System をウェアハウス・エージェント・サイトまたは リ モート・ホストにインストールしなければなりません。 * UNIX および Windows プラットフォームでは、 Trillium Software System の bin ディレクトリーのパスをシステム環境変数 PATH に追加して、 エージェ ントのプロセスが Trillium バッチ・システム・プログラムを実行できるよう にする必要があります。 UNIX では、vwdaemon プロセスを開始する前に、 PATH 環境変数を IWH.environment ファイルに 追加することによって、これ を行います。 * ユーザーは、Trillium ソフトウェアについて理解しておかなければなりませ ん。 次の表は、ソフトウェア要件を示しています。 オペレーティング・システム 必須ソフトウェア UNIX Trillium Software System バージョン 4.0 データウェアハウス・ マネージャー バ ージョン 7.2 ウェアハウス・エージェン ト Windows NT および Windows 2000 Trillium Software System バージョン 4.0 データウェアハウス・ マネージャー バ ージョン 7.2 ウェアハウス・エージェン ト リモート・アクセスの場合、ホストに ftpd および rexecd デーモンを インス トールしておく必要があります。 OS/390 リモート OS/390 ホストにインストール されている Trillium Software System バージョン 4.0 UNIX、Windows NT にインストールされて いるデータウェアハウス・ マネージャー バージョン 7.2 ウェアハウス・エージェ ント TCP/IP 3.2 またはそれ以降 OS/390 オペレーティング・システムはリ モート・ホストとしてのみサポートされ ています。 22.14.1.2 Trillium Software System コンポーネント Trillium Software System は、4 つの主要コンポーネント: コンバーター、 パー サー、ジオコーダー、およびマッチャーで構成されています。 コンポーネントを機 能の集合として使用し、名前およびアドレスのクレンジング操作を行います。 コン ポーネントは、ユーザー定義プログラムである Trillium バッチ・システムから実 行できます。 コンバーター コンバーターを使用し、ソース・データを標準化して指定の出力形式に変換し ます。 パーサー パーサーを使用して、名前およびアドレス・ソース・データを解釈し、 ソー ス・データについてのメタデータを作成します。 ジオコーダー ジオコーダーを使用し、ソース・データを郵便サービス・データと比較して、 配達会社や ZIP+4 コードなどの情報で欠落しているものを補充します。 ジオ コーダーは、アメリカ合衆国の国勢調査データとの突き合わせ処理も行いま す。 マッチャー マッチャーを使用して、似ている名前およびアドレスを比較して重複レコード を調べます。 マッチャーを使用して 1 つのレコードをレコード・グループと 比較し、 参照突き合わせを行うことができます。 22.14.1.3 データウェアハウスセンターでの Trillium バッチ・システムの使用 データウェアハウスセンターでは、Trillium バッチ・システム・メタデータを使用 して、 ユーザー定義プログラム・ステップを作成できます。 このステップは、ロ ーカル・ウェアハウス・エージェント・サイト、またはリモート・ウェアハウス・ エージェント・サイトで Trillium バッチ・システム・スクリプトを呼び出しま す。 データウェアハウスセンターでは、Trillium バッチ・システム・スクリプト は ソースおよびターゲット・ファイルを持つステップです。 ソース・ファイルと は、最初の Trillium バッチ・システム・コマンドで使用される 入力データ・ファ イルです。 ターゲット・ファイルとは、スクリプトの最後の Trillium コマンドに よって作成される 出力データ・ファイルです。 また、ステップを別のプロセスに コピーして、他のステップで使用することができます。 以下のデータは、Trillium バッチ・システムの入力および出力データ・ファイルと データウェアハウスセンターのソースおよびターゲット・ファイルとの関係を示し ています。 図 1. サンプル Trillium スクリプト・ファイル REM Running the converter pfcondrv -parmfile c:\tril40\us_proj\parms\pfcondrv.par REM Running the parser pfprsdrv -parmfile c:\tril40\us_proj\parms\pfprsdrv.par REM Running the Matcher cfmatdrv -parmfile c:\tril40\us_proj\parms\pfmatdrv.par 図 2. pfcondrv.par ファイルの内容 INP_FNAME01 c:\tril40\us_proj\data\convinp INP_DDL01 c:\tril40\us_proj\dict\input.ddl 図 3. pfmatdrv.par ファイルの内容 OUT_DDNAME c:\tril40\us_proj\data\maout DDL_OUT_FNAME c:\tril40\us_proj\dict\parseout.ddl 図 4. Trillium バッチ・システム・ステップの定義 c:\Tril40\us_proj\data\convinp (ソース・ファイル) --> Trillium バッチ・システム・ステップ --> c:\tril40\us_proj\data\maout (ターゲット・ファイル) 22.14.1.4 Trillium メタデータのインポート Trillium メタデータをデータウェアハウスセンターにインポートするには: 1. Trillium バッチ・システムのスクリプトまたは JCL を作成します。 スクリ プトまたは JCL ファイルは、任意のスクリプトまたは JCL 書き込みツールを 使用して作成できます。 2. ウェアハウスを右クリックし、 「メタデータのインポート」-->「Trillium」 をクリックして 「Trillium バッチ・システム」ウィンドウをオープンしま す。 3. 「スクリプトまたは JCL」フィールドに、 実行したい Trillium バッチ・シ ステムのスクリプトまたは JCL ファイルの名前を入力します。 4. 「入力ファイル」フィールドに、指定のスクリプト または JCL ファイルで最 初に実行する Trillium バッチ・システム・プログラムの 入力データ・ファ イル名を入力します。 5. 「入力 DDL」フィールドに、入力データ・ファイルを記述する 入力 DDL ファ イルの名前を入力します。 このファイルは、ウェアハウス・エージェント・ サイトに存在していなければなりません。 6. 「出力ファイル」フィールドに、スクリプト または JCL ファイルにある最後 の Trillium バッチ・システム・プログラムの 出力データ・データ・ファイ ル名を入力します。 7. 「出力 DDL」フィールドに、出力データ・ファイルを記述する 出力 DDL ファ イルの名前を入力します。 このファイルは、ウェアハウス・エージェント・ サイトに存在していなければなりません。 8. オプション: 「出力エラー・ファイル」フィールドに、 使用したい出力エラ ー・ファイルの名前を入力します。 このエラー・ファイルは、Trillium バッ チ・システム・プログラムからの ランタイム・エラーを取り込みます。 これ らのエラーは stderr ログに記録されます。 ローカル・ホストでは、ここで 名前を指定しなかった場合、デフォルト出力エラー・ファイルが 作成されま す。 出力エラー・ファイルについて詳しくは、 トピック「エラー処理」を参 照してください。 9. 「接続」タブをクリックします。 10. インポートする Trillium メタデータがウェアハウス・エージェント・サイト にある場合、 「ローカル・ホスト」をクリックします。 インポートする Trillium メタデータがウェアハウス・エージェント・サイト にない場合は、 「リモート・ホスト」をクリックします。 このセクションで 後述される「リモート・ホストの指定」を参照してください。 11. 「了解」をクリックして、Trillium メタデータをインポートし、 ノートブッ クをクローズします。 12. スクリプトまたは JCL をデフォルト・エージェント・サイトから実行しない 場合、 使用するウェアハウス・エージェント・サイトを Trillium バッチ・ システム・ステップの 「プロパティー」ノートブックに指定してください。 インポート操作が完了すると、以下のウェアハウス・オブジェクトが ウェアハウ ス・ツリーに追加されます。 * Trillium Bch System.scriptName テンプレート。 scriptName はスクリプト または JCL ファイルの名前です。 * Trillium バッチ・システム・プロセス。 * ユーザー定義プログラムを実行する Trillium バッチ・システム・ステップ。 * メタデータをインポートしたときに指定したウェアハウス・ファイル・ソース およびウェアハウス・ファイル・ターゲット。 このファイル・ソースとファ イル・ターゲットは固定ファイルです。 * Trillium バッチ・システム・プログラム・グループ。 リモート・ホストの指定 リモート・ホストを指定するには: 1. 「リモート・ホスト」をクリックして、インポートする メタデータが入って いるリモート・システムの TCP/IP ホスト名を入力します。 リモート・ホス トを選択した場合、リモート・ターゲット・ファイルがサポートされないた め、 ターゲット・ファイルはローカル・ファイルとして作成されます。 リモ ート・ファイルを取得するための FTP ステップを、指定の ローカル・ターゲ ット・ファイルに追加できます。 2. 「リモート・オペレーティング・システム」リストで、 アクセスするリモー ト・ホストのオペレーティング・システムをクリックします。 3. 「リモート・ユーザー ID」フィールドに、 アクセスするリモート・ホスト用 のユーザー ID を入力します。 4. 「パスワード・オプション」リストで、アクセスしている リモート・ホスト で使用したいパスワード・オプションを選択します。 パスワード不要 リモート・ホスト上のメタデータにアクセスするためにパスワードが 必 要ないことを指定します。 パスワードの検索 パスワードをユーザー定義プログラムから検索することを指定します。 「パスワード・プログラム」フィールドに、 パスワードを検索するパス ワード・プログラムの名前を入力します。 プログラムはウェアハウス・ エージェント・サイトになければならず、出力ファイルの 最初の行にパ スワードを書き込みます。 「プログラム・パラメーター」フィールドに、 パスワード・プログラム のパラメーターを入力します。 最初のパラメーターは、パスワードが書 き込まれる出力ファイルにする必要があります。 パスワードを後で入力 パスワードを後で入力することを指定します。 Trillium バッチ・システム・プログラムを実行するステップの 「プロ パティー」ノートブックにパスワードを入力します。 22.14.1.5 メタデータのマッピング ソースおよびターゲット・ファイルのメタデータを作成するため、 Trillium は Trillium DDL ファイルを読み取ります。 DDL ファイルは、以下のデータウェアハ ウスセンター・データ・タイプに変換されます。 UNIX、Windows NT およびオペレーティ ング・システムの DDL データ・タイプ ウェアハウス・データ・タイプ ASCII CHARACTER CHARACTER(n) ASCII NUMERIC EBCDIC CHARACTER EBCIDIC NUMERIC その他のタイプ NUMERIC 注: EBCDIC CHARACTER および EBCIDIC NUMERIC データ・タイプは、 Trillium Software System が OS/390 オペレーティング・システム上で稼働している 場合にのみサポートされます。 変数 n はストリング内の文字数です。 22.14.1.6 制約事項 Trillium DDL を持つ入出力 DDL ファイルとデータウェアハウスセンターの メタデ ータのインポート操作で重複フィールドを指定できます。 ただし、対応するウェア ハウス・ソースおよびウェアハウス・ターゲット・ファイルを SQL ステップを 持 つデータウェアハウスセンター、またはサンプル・コンテンツで使用することはで きません。 メタデータのインポート操作ではレコード全体にわたって重複フィール ドが無視されるため、 重複フィールドを指定することができますが、結果のソース およびターゲット・ファイルでは、 これらのフィールドは列として使用されませ ん。 エラー・ファイルを指定する場合、スクリプトの名前にブランク・スペースを入れ ることはできません。 22.14.2 Trillium バッチ・システム JCL ファイルの作成 Trillium バッチ・システム JCL ファイルを作成する場合、次の要件が満たされて いる必要があります。 * ジョブ名は、ユーザー ID に 1 文字を加えた名前でなければなりません。 * ジョブ名は、保留出力クラスに経路指定されなければなりません。 * Trillium バッチ・システム・プログラムを実行する各ジョブ・ステップに は、 永続データ・セットを定義している SYSTERM DD ステートメントが組み 込まれている必要があります。 このデータ・セットには、Trillium バッチ・ システム・プログラムからのエラーが含まれます。 このデータ・セットは、 JCL が実行依頼される前に自動的に削除されます。 エラー処理および報告に ついて詳しくは、トピック「エラー処理」を参照してください。 スクリプトまたは JCL をリモート・ホストで実行するとき、 出力エラー・ファイ ルを指定する必要があります。 指定しなければ、エラー・メッセージは取り込まれ ず、データウェアハウスセンターに返されません。 UNIX または Windows におい て、エラー・メッセージを取り込む最も簡単な方法は、 Trillium バッチ・システ ム・スクリプトを呼び出す別のスクリプトを作成し、 標準エラー出力を出力ファイ ルにパイピングする方法です。 図 5. SYSTERM DD ステートメントを含むジョブ・ステップの例 //SYSTERM DD UNIT=&UNIT, // DISP=(MOD,CATLG,KEEP), // SPACE=(400,(20,20),,,ROUND), // DSN=&PROJPREF.&TRILVER.&PROJECT.STDERR; 22.14.3 UNIX および Windows での Trillium バッチ・システム・スクリプト・フ ァイルの作成 Trillium バッチ・システム・スクリプトまたはパラメーター・ファイルに 入力フ ァイルの相対パスが含まれている場合、ユーザーはスクリプト・ファイルの ディレ クトリーの cd ステートメントをスクリプト・ファイルの先頭に 入れる必要があり ます。 22.14.4 Trillium バッチ・システム・ステップの定義 Trillium バッチ・システム・ステップを定義する前に、 プロセスで使用したい Trillium メタデータをインポートする必要があります。 Trillium バッチ・システ ム・ステップをプロセスに追加するには: 1. プロセス・モデラーのプロセスをオープンします。 2. パレットで「Trillium バッチ・システム」アイコンをクリックします。 3. 「Trillium バッチ・システム・プログラム」--> programName をクリックし ます。 programName は使用したい Trillium バッチ・システム・プログラム の名前です。 4. キャンバスでステップを表示したい場所をクリックします。 5. 「DB2 ユニバーサル・データベース・ヘルプ 」の トピック「ユーザー定義プ ログラムを実行するステップの定義」に記述されているステップを行います。 22.14.5 Trillium バッチ・システム・ユーザー定義プログラムの使用 Trillium バッチ・システム・ユーザー定義プログラムは、 DB2 データウェアハウ スセンター バージョン 7.2 (Windows および UNIX 版) に含まれています。 Trillium メタデータをインポートすると作成される Trillium バッチ・システム・ ステップが、 Trillium バッチ・システム・ユーザー定義プログラムを実行しま す。 ユーザー定義プログラムは、Trillium バッチ・システム・スクリプトまたは JCL を呼び出します。 次の表は、Trillium バッチ・システム・スクリプトまたは JCL のパラメーターを示しています。 パラメーター 値 リモート・ホスト * localhost がデフォルト値です。 Trillium バッチ・システムがウェ アハウス・エージェント・サイトに インストールされている場合、 こ の値を使用します。 * Trillium バッチ・システムがリモ ート・オペレーティング・システム に インストールされている場合、 リモート・ホストの名前になりま す。 スクリプトまたは JCL スクリプトまたは JCL の名前 リモート・オペレーティング・システムリモート・ホストのオペレーティング・ システムの名前。 リモート・ホスト・パ ラメーターが localhost であれば、この パラメーターは無視されます。 有効な値 は以下の通りです。 * OS/390 オペレーティング・システ ムでは MVS * AIX、SUN Solaris、HP-UX、および NUMA/Q オペレーティング・システ ムでは UNIX * Windows NT または 2000 オペレー ティング・システムでは WIN リモート・ユーザー ID リモート・コマンドを実行する権限を持 つユーザー ID。 RemotehostName の値が localhost であれば、このパラメーター は無視されます。 パスワード・オプション パスワードを取得するためのメソッド。 有効な値は以下の通りです。 ENTERPASSWORD パスワードが次のパラメーターに渡 される場合、この値を使用します。 PASSWORDNOTREQUIRED パスワードが必要ない場合、この値 を使用します。 GETPASSWORD プログラム名が次のパラメーターに 渡される場合、この値を使用しま す。 制限事項: * プログラムはエージェント・サイト になければならず、パスワードを出 力ファイルの 最初の行に書き込 み、正常に実行された場合、0 を返 します。 * パスワード・パラメーターの値はパ スワード・プログラムの名前でなけ ればなりません。 * プログラム・パラメーターの値は、 二重引用符に囲まれたストリングで なければなりません。 * ストリング内の最初のパラメーター は、パスワードが書き込まれる出力 ファイルの名前でなければなりませ ん。 パスワード 有効な値はパスワードまたはパスワー ド・プログラム名です。 パスワード・プ ログラムはウェアハウス・エージェン ト・サイトに対してローカルでなければ なりません。 プログラム・パラメーター パスワード・プログラムのパラメータ ー。 出力エラー・ファイル 出力エラー・ファイルの名前。 注: この表にあるパラメーターの データ・タイプはすべて CHARACTER です。 22.14.6 エラー処理 Trillium バッチ・システム・プログラムはエラー・メッセージを、 Windows NT お よび UNIX オペレーティング・システムでは標準エラー出力 (stderr) ファイル に、 OS/390 オペレーティング・システムでは SYSTERM データ・セットに書き込み ます。 Windows NT または UNIX オペレーティング・システム上で Trillium バッチ・シス テム・プログラムからの エラーを取り込むには、標準エラー出力が出力エラー・フ ァイルにリダイレクトされていなければなりません。 OS/390 オペレーティング・システム上で Trillium バッチ・システム・プログラム からの エラーを取り込むには、JCL に SYSTERM DD ステートメントが組み込まれて いなければなりません。 「メタデータのインポート」ウィンドウで出力エラー・ファイル名を指定した場 合、 標準エラー出力をエラー・ファイルにリダイレクトまたは保管する必要があり ます。 データウェアハウスセンターはそのファイルを読み取り、ストリング ERROR を含む すべての行をエラー・メッセージとして報告します。 すべての Trillium バッチ・システム・プログラム・エラー・メッセージに、 ストリング ERROR が含 まれています。 ウェアハウス・エージェント・サイトで実行されているスクリプトまたは JCL に 出力エラー・ファイルが指定されていない場合、データウェアハウスセンターは自 動的に、 ファイル名を作成して、標準エラー出力をそのファイルにリダイレクトし ます。 エラーが見つかった場合、エラー・ファイルは削除されません。 エラー・ ファイルは、環境変数 VWS_LOGGING によって指定されているディレクトリーに保管 されます。 ファイル名は tbsudp-date- time.err です。 date はファイルが作成 されたシステム日付で、 time はファイルが作成されたシステム時刻です。 次のフ ァイル名は出力エラー・ファイル名の形式を示します。 tbsudp-021501-155606.err 22.14.6.1 エラー戻りコード エラー番号 説明 0 成功 4 警告。 Trillium バッチ・システム・ユ ーザー定義プログラムが一時ファイルに アクセス中、 パスワード・ファイルを消 去できなかったか、または内部エラーが 発生しました。 パスワード・ファイルの状況、または環 境変数 VWS_LOGGING によって指定されて いる ディレクトリーの下に作成されたす べての一時ファイルの状況を調べてくだ さい。 8 パラメーターの数または値が正しくあり ません。 正しい構文については、ログ・ ファイルまたは資料を読んでください。 12 Trillium バッチ・システム・ユーザー定 義プログラムが FTP 経由で リモート・ ホストに接続しようとして問題が発生し ました。 FTP 接続、またはホスト名、ユ ーザー ID、およびパスワードを確認して ください。 16 Trillium バッチ・システム・ユーザー定 義プログラムがログ または内部ファイル を作成できません。 ユーザーが正しい許可を持っているかど うか、およびディスクが いっぱいでない かどうか確認してください。 20 OS/390 JCL を実行できないか、 または Trillium バッチ・システム・ユーザー定 義プログラムが FTP 経由で OS/390 から ファイルを削除または取得しているとき にエラーが発生しました。 JESLogFile を参照して、原因を調べてく ださい。 48 環境変数 VWS_LOGGING が見つからない か、 またはログ・ファイルを作成できま せん。 詳しくは、ログ・ファイルを調べ てください。 56 Windows NT または UNIX スクリプトを実 行できないか、 または Trillium バッ チ・システム・ユーザー定義プログラム がリモート・ホストに 接続しようとして エラーが発生しました。 接続、またはホ スト名、ユーザー ID、およびパスワード を確認してください。 500 スクリプトか JCL ファイルがエラーを返 すか、 またはエラーを返さなくてもエラ ー・ファイルにデータが入っています。 詳しくは、ログ・ファイルを調べてくだ さい。 OS/390 の場合、JESLogFile も調 べてください。 22.14.6.2 ログ・ファイル Trillium バッチ・システム・ユーザー定義プログラムが実行されると、 データウ ェアハウスセンターはすべての診断情報をログ・ファイルに保管します。 ログ・フ ァイルの名前は tbsudp-date-time.log です。 date はファイルが作成されたシス テム日付で、 time はファイルが作成されたシステム時刻です。 ログ・ファイル は、エージェント・サイトの環境変数 VWS_LOGGING によって 指定されているディ レクトリーに作成されます。 Trillium バッチ・システム・ユーザー定義プログラ ムが正常に実行された場合、 ログ・ファイルは削除されます。 ------------------------------------------------------------------------ 22.15 MQSeries とデータウェアハウスセンターの統合 データウェアハウスセンターを使用すると、 DB2 データベース視点として MQSeries メッセージ・キューからデータにアクセスできます。 DB2 表関数、およ びデータへのアクセスを可能にする DB2 視点を作成するため、 ウィザードが提供 されています。 MQSeries メッセージはそれぞれ、指定にしたがって構文解析さ れ、結果行として返される 区切りストリングとして扱われます。 さらに、XML 文 書である MQSeries メッセージにウェアハウス・ソースとしてアクセスできます。 データウェアハウスセンターを使用して、MQSeries メッセージ・キュー および DB2 XML エクステンダー文書アクセス定義 (DAD) ファイルからデータをインポート できます。 22.15.1 MQSeries メッセージの視点の作成 22.15.1.1 要件 DB2 ユニバーサル・データベース バージョン 7.2 DB2 ウェアハウス・マネージャー バージョン 7.2 MQSeries サポート。 MQSeries の要件について詳しくは、MQSeries を参照してく ださい。 ウェアハウス・ソースのセットアップについては、ユーザー定義機能の セットアップ・セクションを参照してください。 22.15.1.2 制約事項 * ウェアハウス・ソース・データベースをカタログすると、 データベース別名 がエージェント・マシンでカタログされます。 ただし、MQSeries および XML 視点を作成すると、データウェアハウスセンターは データベース別名がクラ イアント・マシンにも定義されると想定し、 ウェアハウス・ソース・データ ベースのユーザー ID およびパスワードを使用して クライアント・マシンに 接続しようとします。 成功した場合、ウィザードが呼び出され、視点を作成 することができます。 成功しなかった場合、警告メッセージが表示され、 ウ ィザードで別のデータベース別名をカタログまたは選択する必要があります。 * MQ メッセージの最大長については、「リリース・ノート」の 「SQL 解説書」 セクションを参照してください。 22.15.1.3 MQSeries メッセージの視点の作成 MQSeries メッセージの視点を作成するには: 1. 「データウェアハウスセンター」ウィンドウから ウェアハウス・ソース・ツ リーを展開します。 2. 視点を含むことになるウェアハウス・ソースを展開します。 3. 「視点」フォルダーを右クリックして、 「MQSeries メッセージ用に作成 ...」をクリックします。 MQSeries ウィザードがオープンします。 ウィザードを完了したら、新しい視 点がデータウェアハウスセンターに作成されます。 視点を選択すると、 MQSeries キューがアクセスされ、ウィザードでの指定にしたがって 各メッセ ージが区切りストリングとして構文解析されます。 22.15.2 MQSeries メッセージおよび XML メタデータのインポート 22.15.2.1 要件 DB2 ユニバーサル・データベース バージョン 7.2 DB2 XML エクステンダー バージョン 7.2 MQSeries サポート。 MQSeries の要件について詳しくは、MQSeries を参照してく ださい。 ウェアハウス・ソースのセットアップについては、ユーザー定義機能の セットアップ・セクションを参照してください。 22.15.2.2 制約事項 1 次または外部キーを持つターゲット表が存在する場合、インポートは失敗しま す。 インポートの前に、データウェアハウスセンターでこれらのキーの定義を手操 作で削除する必要があります。 22.15.2.3 MQSeries メッセージおよび XML メタデータのインポート MQSeries メタデータをデータウェアハウスセンターにインポートするには: 1. ウェアハウス・ターゲット・データベースを準備します。 o トランスフォーマーを登録して使用可能にするだけでなく、ウェアハウ ス・ターゲットを 定義しなければなりません。 o DB2 XML エクステンダーのウェアハウス・ターゲットを使用可能にする 必要があります。 詳しくは、DB2 XML エクステンダー バージョン 7.2 のリリース・ノートを参照してください。 o XML エクステンダー・データ・アクセス定義 (DAD) ファイルを作成し て、 XML 文書の内容をウェアハウス表にマッピングする方法をデータウ ェアハウスセンターに指示します。 データベースの DAD ファイルを使 用して XML コレクションを使用可能にします。 詳しくは、DB2 XML エ クステンダー バージョン 7.2 のリリース・ノートを参照してくださ い。 2. ウェアハウスを右クリックし、「メタデータのインポート」 -->「MQSeries」 をクリックして「メタデータのインポート」ウィンドウを オープンします。 3. 「AMI サービス」フィールドに、メッセージの送信先 または検索元となるサ ービス・ポイントを入力します。 4. 「AMI ポリシー」フィールドに、メッセージング・システムが 操作を行うた めに使用するポリシーを入力します。 5. 「DAD ファイル」フィールドに、XML エクステンダー DAD ファイルの名前を 入力するか、または省略符号 (...) をクリックして選択するファイルを検索 します。 このファイルはローカルでなければなりません。 6. 「ウェアハウス・ターゲット」フィールドで、 ステップを実行するウェアハ ウス・ターゲットの名前をコンボ・ボックスから選択します。 ウェアハウ ス・ターゲットが定義されていなければなりません。 7. 「スキーマ」フィールドに、修飾子を持っていない、 DAD ファイル内の表名 を修飾するためのスキーマ名を入力します。 デフォルト・スキーマは、前に 選択したウェアハウス・ターゲットの ログオン・ユーザー ID になります。 8. ターゲット・オプションを選択します。 ステップで実行時にターゲット表の内容を置換したい場合、 「表の内容の置 換」ラジオ・ボタンをクリックします。 ステップで実行時にターゲット表の内容に追加したい場合、 「表の内容に追 加」ラジオ・ボタンをクリックします。 9. 「了解」をクリックします。 「メタデータのインポート」ウィンドウがクローズします。 インポート操作が完了すると、以下のウェアハウス・オブジェクトが ウェアハウ ス・ツリーに追加されます。 * MQSeries および XML と名付けられたサブジェクト・エリア。 * MQSeries および XML と名付けられたプロセス。 * MQSeries および XML と名付けられたユーザー定義プログラム。 * DAD ファイルに記述されているすべてのウェアハウス・ターゲット表の定義。 * .. ステップ。 * . プログラム・テンプレート。 ウェアハウス・ターゲット・エージェント・サイトがローカル・マシンではない場 合、 ステップ・パラメーターを変更する必要があります。 1. ステップを右クリックして、「プロパティー」を選択します。 「プロパティ ー」ノートブックで「パラメーター」タブをクリックします。 2. DAD ファイル・パラメーターの名前を、リモート・ウェアハウス・ターゲッ ト・エージェント・サイト上の 同じ DAD ファイルの名前に変更します。 3. 「処理オプション」タブの「エージェント・サイト」に、目的の エージェン ト・サイトが含まれていることを確認してください。 22.15.2.4 MQSeries ユーザー定義プログラムの使用 MQSeries および XML ストアード・プロシージャーは MQXMLXF と 呼ばれ、DB2 デ ータウェアハウスセンター バージョン 7.2 (Windows NT および UNIX 版) に 含ま れています。 MQSeries および XML メタデータをインポートしたときに作成される ステップが、 ストアード・プロシージャーを実行します。 パラメーターを次の表 で説明します。 パラメーター 値 MQSeries ServiceName メッセージの送信先または検索元となる サービス・ポイントの名前。 MQSeries PolicyName メッセージング・システムが操作を行う ために使用するポリシーの名前。 DAD ファイル名 DB2 XML エクステンダー DAD ファイル の名前。 TargetTableList コンマで区切られたステップのターゲッ ト表のリスト オプション REPLACE または APPEND RUN ID ステップのエディション番号 (ログに記 録するため) 注: この表にあるパラメーターの データ・タイプはすべて CHARACTER です。 オプションの値が REPLACE であれば、 ストアード・プロシージャーはターゲット 表からすべての行を削除します。 また、ストアード・プロシージャーは DB2 XML エクステンダー・ストアード・プロシージャーを呼び出して、 すべての既存の MQSeries メッセージのターゲット表を移植します。 22.15.2.5 エラー戻りコード ステップの実行時、ストアード・プロシージャーがエラー・コード SQLCODE -443 および SQLSTATE 38600 を 返す場合があります。 エラーを診断するためには、次 の表を参照してください。 エラー番号 説明 AMIRC=xxxxx; xxxxx は、AMI 層からの戻りコードで す。 詳しくは、MQSeries の資料を参照 してください。 はロ グ・ファイルのロケーションを示してい ます。 XMLRC=xxxxx; xxxxx は、DB2 XML エクステンダーから の戻りコードです。 戻りコードの説明 については、DB2 XML エクステンダーの 資料を参照してください。 はログ・ファイルのロケーション を示しています。 SQLCODE=xxxxx; xxxxx は、SQL 要求が実行されたときに 返される非ゼロの SQLCODE です。 はログ・ファイルのロケー ションを示しています。 すべてのエラーについて詳しくは、ログ・ファイルを調べてください。 22.15.2.6 エラー・ログ・ファイル MQXMLXF が実行されると、データウェアハウスセンターはすべての診断情報を ロ グ・ファイルに保管します。 ログ・ファイルの名前は mqxf.log です。 ここで は、ストアード・プロシージャーに渡された 実行 ID です。 データウェアハウスセンターは、VWS_LOGGING 環境変数によって指定されているデ ィレクトリーに ファイルを作成します。 この環境が定義されていない場合、ロ グ・ファイルは一時ディレクトリーに作成されます。 VWS_LOGGING 環境変数を UNIX プラットフォームのストアード・プロシージャーか ら 見えるようにするには、db2start コマンドの前に db2set コマンドを 使用し、 DB2ENVLIST 環境変数に VWS_LOGGING を追加する必要があります。 環境コマンドの 例: 図 6. 環境変数コマンドの例 db2set DB2ENVLIST="AMT_DATA_PATH VWS_LOGGING" ステップが正常に実行された場合、ログ・ファイルは削除されます。 ------------------------------------------------------------------------ 22.16 Microsoft OLE DB および Data Transaction Services サポート データウェアハウスセンターを使用すると、DB2 データベース視点として OLE DB プロバイダーから データにアクセスできます。 データウェアハウスセンターで用 意されている OLE DB Assist ウィザードを使用して、 DB2 OLE DB 表関数、および データへのアクセスを可能にする DB2 視点を作成できます。 Microsoft Data Transformation Service (DTS) を使用すると、OLE DB ソースおよ びターゲットの間で データのインポート、エクスポート、およびトランスフォーム が可能になり、データウェアハウスおよび データマートを作成することができま す。 DTS は Microsoft SQL Server とともにインストールされます。 DTS タスク はすべて、Microsoft OLE DB Provider for DTS Packages を使用して実行および アクセス可能な DTS パッケージに保管されています。 OLE DB ソースとして DTS からパッケージにアクセスできるため、OLE DB データ・ソースの 場合と同様、DTS パッケージの OLE DB Assist ウィザードで視点を作成することもできます。 実行 時に視点にアクセスすると、DTS パッケージが実行され、 DTS パッケージ内のタス クのターゲット表が作成済みの視点になります。 データウェアハウスセンターで視点を作成すると、それを別の視点のように使用で きます。 たとえば、SQL ステップで DB2 表と OLE DB ソースを結合することがで きます。 SQL ステップで作成済み視点を使用すると、DTS プロバイダーが呼び出さ れ、 DTS パッケージが実行されます。 ソフトウェア要件: * ウェアハウス・ターゲット・データベースとして DB2 ユニバーサル・データ ベース (Windows NT 版) バージョン 7.2 * DB2 ウェアハウス・マネージャー バージョン 7.2 * バージョン 7.2 の前にウェアハウス・ターゲット・データベースが作成され た場合、 DB2 UDB (Windows NT 版) バージョン 7.2 をインストールした後、 db2updv7 コマンドを実行する必要があります。 * ウェアハウス・ソース・データベースをカタログすると、 ウェアハウス・エ ージェント・サイトでデータベース別名がカタログされます。 ただし、ウィ ザードを開始すると、データウェアハウスセンターは、 データベース別名が クライアント・ワークステーションにも定義されていると想定し、 ウェアハ ウス・ソース・データベースのユーザー ID およびパスワードを使用して ワ ークステーションに接続しようとします。 接続が成功した場合、ウィザード が開始され、視点を作成することができます。 接続が成功しなかった場合、 警告メッセージが表示され、 ウィザードで別のデータベース別名をカタログ または選択しなければなりません。 * DTS パッケージから特定の表を識別するには、ターゲット表を作成する DataPumpTask の 「ワークフロー・プロパティー」ウィンドウの「オプショ ン」タブにある 「DSO 行セット・プロバイダー」チェック・ボックスを選択 する必要があります。 複数の DSO 行セット・プロバイダー属性をオンにした 場合、最初に選択されたステップの 結果のみが使用されます。 視点を選択す ると、そのターゲット表の行セットが返され、後続のステップで作成する そ の他の行セットはすべて無視されます。 * ウィザードに表名を入力するとき、タスクの「ワークフロー・プロパティー」 ノートブックの 「オプション」ページに示されている表名を使用してくださ い。 * DTS パッケージ接続ストリングには、dtsrun コマンドと同じ構文がありま す。 22.16.1 OLE DB 表関数の視点の作成 OLE DB 表関数の視点を作成するには: 1. 「データウェアハウスセンター」ウィンドウから ウェアハウス・ソース・ツ リーを展開します。 2. 視点を含むことになるウェアハウス・ソースを展開します。 3. 「視点」フォルダーを右クリックして、 「OLE DB 表関数用に作成」をクリッ クします。 OLE DB Assist ウィザードがオープンします。 このウィザードは、ウェアハ ウス・ソース・データベースに新しい視点を作成するタスクについて指示しま す。 22.16.2 DTS パッケージの視点の作成 DTS パッケージの視点を作成するには: 1. 「データウェアハウスセンター」ウィンドウから ウェアハウス・ソース・ツ リーを展開します。 2. 視点を含むことになるウェアハウス・ソースを展開します。 3. 「視点」フォルダーを右クリックし、 「DTS パッケージの Microsoft OLE DB プロバイダー」をクリックします。 OLE DB Assist ウィザードがオープンします。 このウィザードは、ウェアハ ウス・ソース・データベースに新しい視点を作成するタスクについて指示しま す。 DTS の詳細については、Microsoft Platform SDK 2000 の資料を参照してくださ い。 この資料では、ウィザードで DTS プロバイダーに接続するために必要な プロ バイダー・ストリングの作成方法について詳しく説明されています。 ------------------------------------------------------------------------ 22.17 置換での増分コミットの使用 移植タイプが「置換」であるステップでは、増分コミットは新しいデータが挿入さ れる ときにのみ使用されます。 単一のコミット有効範囲内の古いデータは削除さ れます。 ログ・レコードを作成せずにデータを削除しなければならない場合、 付 加移植タイプの SQL ステップを実行する前に、空のファイルをロードするステップ を実行します。 ------------------------------------------------------------------------ 22.18 構成要素トレース・データ・ファイル名 Windows NT では、データウェアハウスセンターは以下のファイルを書き込みます。 AGNTnnnn.Log には、 トレース情報が入っています。 nnnn はウェアハウス・エー ジェントの数値プロセス ID で、 オペレーティング・システムに応じて 4 または 5 桁になります。 AGNTnnnn.Set には、 エージェントの環境設定が入っています。 nnnn はウェアハ ウス・エージェントの数値プロセス ID で、 オペレーティング・システムに応じて 4 または 5 桁になります。 デフォルト・ディレクトリーは x:\program files\sqllib\logging (x は DB2 がイ ンストールされているドライブ) です。 ------------------------------------------------------------------------ 22.19 AIX および Solaris 操作環境の Sybase ソースに必要な Open Client 第 3 章「ウェアハウス・ソースのセットアップ (AIX)」 の 表 3 「AIX でサポー トされるデータ・ソース、および Solaris 操作環境の接続要件」、 および表 4 「Solaris 操作環境でサポートされるデータ・ソースの接続要件」で、 Sybase の 項目の "接続方法:" 列に追加のステップを入れる必要があります。 追加のステッ プは以下に示したステップ 3 です。 3. Open Client のインストール Open Client は、Windows NT または Windows 2000 プラットフォーム上の Sybase ソースに 接続するために必要です。 ------------------------------------------------------------------------ 22.20 サンプル項目の訂正 「データウェアハウスセンター 管理の手引き」の 第 3 章「ウェアハウス・ソース のセットアップ」にある図 6、8、10、および 11 には、 Driver 属性に正しくない パスが含まれています。 正しいパスは以下の通りです。 図 6 Driver=/home/db2_07_01/3.6/odbc/lib/ivinf12.so 図 8 Driver=/home/db2_07_01/3.6/odbc/lib/ivsyb1112.so 図 10 Driver=/home/db2_07_01/3.6/lib/ivor814.so 図 11 Driver=/home/db2_07_01/3.6/odbc/lib/ivmsss14.so ------------------------------------------------------------------------ 22.21 第 3 章 ウェアハウス・ソースのセットアップ 22.21.1 ウェアハウス・ソースに Microsoft Access のメモ・フィールドをマッピ ング Microsoft Access データベースのメモ・フィールドは、 データウェアハウスセン ター・ソースでは 1 GB を超える 列を持つデータ・タイプ LONG VARCHAR として表 されます。 実用的なシステム構成をサポートするために、 データウェアハウスセ ンターは 128 KB を超える値を切り捨てます。 ウェアハウス・ソースのメモ・フィ ールド値が切り捨てられないようにするには、 ステップで表を使用する前に、メ モ・フィールドのデータを受け取る列のデータ・タイプを LONG VARCHAR から CLOB に変更します。 列のデータ・タイプを変更しない場合、128 KB より大きい値は切 り捨てられます。 OS/390 と OS/400 では、CLOB データ・タイプの DRDA サポートが必要です。 OS/390 では、DB2 バージョン 6 以降で CLOB データ・タイプがサポートされま す。 OS/400 では、DB フィックスパック 4 以降 (PTF SF99104) を持つ DB2 バー ジョン 4、リリース 4 以降で CLOB データ・タイプがサポートされます。 OS/400 の場合、1999 年 2 月の日付のインストール・ディスク・バージョン 4、 リリース 4 に CLOB データ・タイプのサポートが組み込まれています。 ------------------------------------------------------------------------ 22.22 第 10 章 ウェアハウス・データベースの保守 22.22.1 DB2 UDB RUNSTATS プログラムのステップ・サブタイプに表をリンク RUNSTATS プログラムのステップ・サブタイプは、 ウェアハウス・ターゲットの読 み取りおよび書き込みを行います。 ステップの値を定義する前に、「プロセス・モ デル」ウィンドウで ターゲットをステップ・サブタイプにリンクしてください。 ------------------------------------------------------------------------ 22.23 デフォルト・ウェアハウス・コントロール・データベース Windows NT または Windows 2000 で、通常 DB2 インストール中、 Windows NT レ ジストリーで識別される活動ウェアハウス・コントロール・データベースがない場 合、 DB2 はデータウェアハウスセンターのデフォルト・ウェアハウス・コントロー ル・データベースを 作成して初期化します。 初期化 は、データウェアハウスセン ターが データウェアハウスセンター・メタデータを保管する必要のある制御表を作 成するプロセスです。 デフォルト・ウェアハウス・コントロール・データベースには DWCTRLDB という名 前が付けられます。ログオン時に、 データウェアハウスセンターはデフォルトでウ ェアハウス・コントロール・データベースとして DWCTRLDB を指定します。使用さ れるウェアハウス・コントロール・データベースの名前を参照するには、 「データ ウェアハウスセンター・ログオン」ウィンドウで「拡張」ボタンをクリックしま す。 ------------------------------------------------------------------------ 22.24 「ウェアハウス・コントロール・データベース管理」ウィンドウ 「ウェアハウス・コントロール・データベース管理」ウィンドウは、 Windows NT または Windows 2000 に通常 DB2 インストール中にインストールされます。このウ ィンドウを使用して、 活動ウェアハウス・コントロール・データベースを変更した り、 新規のウェアハウス・コントロール・データベースを作成して初期化したり、 IBM Visual Warehouse で使用されているウェアハウス・コントロール・データベー スを移行したりできます。 以下のセクションでは、これらの活動のそれぞれについ て検討します。 「ウェアハウス・コントロール・データベース管理」ウィンドウを使用する前に、 ウェアハウス・サーバーを停止します。 ------------------------------------------------------------------------ 22.25 活動ウェアハウス・コントロール・データベースの変更 活動ウェアハウス・コントロール・データベース以外のウェアハウス・コントロー ル・ データベースを使用する場合、「ウェアハウス・コントロール・データベース 管理」ウィンドウを使用して、 活動コントロール・データベースとしてデータベー スを登録します。データウェアハウスセンターに ログオン時、活動ウェアハウス・ コントロール・データベース以外の名前を指定すると、 指定したデータベースがウ ェアハウス・サーバーが指定したデータベースと一致しないという エラーを受け取 ることになります。 データベースを登録するには: 1. スタート --> プログラム --> IBM DB2 --> ウェアハウス・コントロール・デ ータベース管理をクリックします。 2. 「新規コントロール・データベース」フィールドに、 使用するコントロー ル・データベースの名前を入力します。 3. 「スキーマ」フィールドに、 データベースに使用するスキーマの名前を入力 します。 4. 「ユーザー ID」フィールドに、 データベースにアクセスするために必要なユ ーザー ID の名前を入力します。 5. 「パスワード」フィールドに、 ユーザー ID のパスワードの名前を入力しま す。 6. 「パスワードの確認」フィールドに、 再度パスワードを入力します。 7. 「了解」をクリックする。 ウィンドウは開いたままです。「メッセージ」フィールドには、登録処理の状 況を示すメッセージが表示されます。 8. 処理の完了後、ウィンドウをクローズします。 ------------------------------------------------------------------------ 22.26 ウェアハウス・コントロール・データベースの作成および初期化 デフォルト以外のウェアハウス・コントロール・データベースを作成する場合、 イ ンストール処理中、またはインストール後に、 「ウェアハウス・コントロール・デ ータベース管理」ウィンドウを使用して作成できます。 インストール処理を使用し て、ウェアハウス・サーバーと同じワークステーション、 または別のワークステー ションに、データベースを作成できます。 インストール中に作成されるウェアハウス・コントロール・データベースの名前を 変更するには、 カスタム・インストールを実行し、「ローカル・ウェアハウス・コ ントロール・データベースの定義」 ウィンドウで名前を変更する必要があります。 インストール処理では、 指定する名前でデータベースを作成し、データウェアハウ スセンターで使用するためにデータベースを初期化し、 活動ウェアハウス・コント ロール・データベースとしてデータベースを登録します。 ウェアハウス・サーバーがインストールされているワークステーション以外のワー クステーションに インストール中にウェアハウス・コントロール・データベースを 作成するには、カスタム・インストール中に ウェアハウス・ローカル・コントロー ル・データベースを選択します。インストール処理では、 データベースを作成しま す。インストール後、22.25, 活動ウェアハウス・コントロール・データベースの変 更 のステップにしたがって、 ウェアハウス・サーバー・ワークステーションで、 「ウェアハウス・コントロール・データベース管理」 ウィンドウを使用する必要が あります。インストール中に指定したデータベース名を指定します。そのデータベ ースは、データウェアハウスセンターで使用するために初期化され、 活動ウェアハ ウス・コントロール・データベースとして登録されます。 インストール処理後にウェアハウス・コントロール・データベースを作成し初期化 するには、 ウェアハウス・サーバー・ワークステーションの「ウェアハウス・コン トロール・データベース管理」 ウィンドウを使用します。新規ウェアハウス・コン トロール・データベースがウェアハウス・ サーバー・ワークステーション上にない 場合、最初にデータベースを作成し、それをウェアハウス・ サーバー・ワークステ ーションにカタログする必要があります。次に 22.25, 活動ウェアハウス・コント ロール・データベースの変更 のステップにしたがってください。 インストール中 に指定したデータベース名を指定します。 データウェアハウスセンターにログオン時、「拡張」ボタンをクリックし、活動ウ ェアハウス・コントロール・データベースの 名前を入力してください。 ------------------------------------------------------------------------ 22.27 改訂された SQL ステップの作成 使用法に基づいて改訂された SQL ステップを作成中、エディションを削除する パ フォーマンスのスピードを上げるために、エディション列の固有でない索引の作成 を 考慮に入れる場合があります。挿入のパフォーマンスは少ない行数を挿入する際 にも 影響するので、削除に関しては大きなウェアハウス表の場合のみを考慮して ください。 ------------------------------------------------------------------------ 22.28 「プロセス・モデル」ウィンドウでのソースおよびターゲットの変更 「プロセス・モデル」ウィンドウで、ソースまたはターゲットを変更する場合、 行 った変更は自動的に即座に保管されます。他の変更 (ステップを追加する、など) を 行う場合、変更を永久的なものにするために、変更を明示的に保管する必要が あります。変更を保管するには、「処理 --> 保管」をクリックしてください。 ------------------------------------------------------------------------ 22.29 データウェアハウスセンター・オブジェクトへの記述の追加 データウェアハウスセンターのノートブックの記述フィールドには 254 文字まで指 定できます。この最大はオンライン・ヘルプに指定された最大長に 取って代わりま す。 ------------------------------------------------------------------------ 22.30 サンプル・コンテンツの実行 * フラット・ファイル・ソース上で AS/400 エージェントを使用するサンプル・ コンテンツ要求を正常に実行できません。フラット・ファイル・ソースを作成 し、 sampleContent 要求を実行するために AS/400 エージェントを使用しよ うとすることは できますが、その要求は失敗します。 * 処理モデラーのウェアハウス・ターゲットでサンプル・コンテンツを実行した 時に エラーを受け取る可能性があります。このエラーは、ウェアハウス・ソ ース、 ウェアハウス・ターゲットおよび処理中のステップに共通のエージェ ント・サイトの可用性に関係します。 ステップに使用可能なエージェント・ サイトのリストは、ウェアハウス・ソース IR エージェント・サイト、ウェア ハウス・ターゲット IR エージェント・サイト、 およびこの特殊なステップ (ステップはエージェント・サイト・プロパティー・ノートブックの 最終ペー ジで選択されます。) の共通部分から得られます。たとえば、FTP Put プログ ラム (VWPRCPY) を実行する処理のサンプル・コンテンツを表示すると しま す。処理で使用されるステップは、エージェント・サイト定義で そのエージ ェント・サイトに対して選択されている必要があります。ターゲット・ ファ イルに対してサンプル・コンテンツを実行する場合、選択したリストの 最初 のエージェント・サイトが通常使用されます。ただし、データベース保守操作 は リストされたエージェント・サイトの順番に影響する可能性があります。 サンプル・コンテンツは、選択されたエージェント・サイトがソース、または ターゲット・ファイルと同じシステムに存在しない場合に失敗します。 ------------------------------------------------------------------------ 22.31 「DDL の作成」SQL ステートメントの編集 作成モードのステップに対して、ターゲット表の「DDL の作成」SQL ステートメン トを編集しようとした時、次のような誤った印象を与えるメッセージが表示されま す :『"「DDL の作成」SQL ステートメントへの変更は、表定義または実際の物理表 では 反映されません。続行しますか?"』 変更は実際の物理表で 反映されます。メッセージを無視し、「DDL の作成」ステー トメントの変更を 続行してください。 作成モードのステップに対するこのメッセージの訂正メッセージは、 次のように解 釈してください。『"「DDL の作成」SQL ステートメントへの変更は、 表定義では 反映されません。 続行しますか?"』 テストまたは実動モードのステップの場合、 そのメッセージは正しいです。データ ウェアハウスセンターは、テスト・モードへの ステップを促した時に作成された物 理ターゲット表を変更することはしません。 ------------------------------------------------------------------------ 22.32 Visual Warehouse ビジネス・ビューの移行 ビジュアル・ウェアハウス・メタデータ同期ビジネス・ビューを データウェアハウ スセンターへ移行したい場合、ウェアハウス・コントロール・データベースを 移行 する前に、ビジネス・ビューを実動状況にプロモートしてください。 ビジネス・ビ ューが 実動状況の場合、スケジュールはデータウェアハウスセンターへ移行されま す。 ビジネス・ビューが実動状況でない場合、スケジュールなしで テスト状況に 移行されます。実動状況へ移行されたステップを プロモートすることはできませ ん。データウェアハウスセンターに 同期ステップを再作成して、移行されたステッ プを削除してください。 ------------------------------------------------------------------------ 22.33 ターゲット表および 1 次キーの生成 データウェアハウスセンターがステップ用にターゲット表を生成する場合、 ターゲ ット表の 1 次キーは生成されません。移動平均のようなトランスフォーマーのいく つかは、 ソース表のような生成された表を使用し、同じくソース表が 1 次キーを 持つことを必要とします。 トランスフォーマーで生成された表を使用する前に、 DB2 コントロール・センターの表を右クリックして表の 1 次キーを定義し、「変更 」 をクリックしてください。 ------------------------------------------------------------------------ 22.34 Merant ODBC ドライバーの使用 Merant ODBC ドライバーを使用して Windows NT の Microsoft SQL サーバーにアク セスするには、 システム・パスが sqllib\odbc32 ディレクトリーを含んでいるか 検証してください。 ------------------------------------------------------------------------ 22.35 新しい ODBC ドライバー リンクされたデータウェアハウスセンター AIX または Sun エージェントを使用し て、 Merant ODBC ソースにアクセスし、DB2 データベースにもアクセスする場合、 .odbc.ini ファイルの DB2 ソース・セクションにある "Driver=" 属性の値を 以下 のように変更します。 AIX: ドライバー名 /usr/lpp/db2_07_01/lib/db2_36.o AIX 用サンプル ODBC ソース項目: [SAMPLE] Driver=/usr/lpp/db2_07_01/lib/db2_36.o Description=DB2 ODBC Database Database=SAMPLE Sun: ドライバー名 /opt/IBMdb2/V7.1/lib/libdb2_36.so Sun 用サンプル ODBC ソース項目: [SAMPLE] Driver=/opt/IBMdb2/V7.1/lib/libdb2_36.so Description=DB2 ODBC Database Database=SAMPLE ------------------------------------------------------------------------ 22.36 OS/2 データベースのウェアハウス・ソースまたはターゲットの定義 OS/2 データベースのウェアハウス・ソースあるいはウェアハウス・ターゲットを定 義する 場合は、英大文字でデータベース名を入力してください。 ------------------------------------------------------------------------ 22.37 ウェアハウス・コントロール・データベースの状況のモニター ウェアハウス・コントロール・データベースを指示する DB2 コントロール・センタ ー あるいはコマンド行プロセッサーは矛盾状態にあります。この状態は、 ウェア ハウス・サーバーがウェアハウス・ロガーに初期始動メッセージをコミットできな かったことを 指示したと予測されます。 ------------------------------------------------------------------------ 22.38 TBC_MD サンプル・データベースでの SQL Assist の使用 TBC_MD データベースに含まれているデータウェアハウス・サンプルでは、 SQL Assist によって生成された後、SQL が編集されるので、 SQL ステップのシナリオ の選択の SQL を変更するために SQL Assist を使用することはできません。 ------------------------------------------------------------------------ 22.39 FormatDate 関数の使用 FormatDate 関数を使用する場合は、SQL ステップのプロパティー・ノートブックの SQL ステートメント・ページで「 SQL のビルド」をクリックしてください。 FormatDate 関数の出力は、データ・タイプ varchar(255) の出力です。 関数パラ メーター - FormatDate ページで「 カテゴリー」リスト から日付、時間あるいは 日時の選択によってデータ・タイプは変更できません。 ------------------------------------------------------------------------ 22.40 言語設定の変更 AIX および Solaris 操作環境では、インストール処理は言語を情報カタログに設定 し、 OLAP Integration Server にエクスポートします。インストール中に設定した 言語以外の言語で 関数を使用したい場合は、以下の 1 行を入力することによって 以下のソフト・リンクを作成してください: AIX /usr/bin/ln -sf /usr/lpp/db2_07_01/msg/locale /flgnxolv.str /usr/lpp/db2_07_01/bin/flgnxolv.str locale xx_yy 形式の言語のロケール名 Solaris 操作環境 /usr/bin/ln -sf /opt/IBMdb2/V7.1/msg/locale/flgnxolv.str /opt/IBMdb2/V7.1/bin/flgnxolv.str locale xx_yy 形式の言語のロケール名 ------------------------------------------------------------------------ 22.41 キー表生成トランスフォーマーの使用 キー表生成トランスフォーマーのキー列の値の変更 オプションを使用すると、トラ ンスフォーマーはキー値を持たない表の列のみを 更新します。(その値は NULL で す。) 追加行を表に挿入する場合は、 再びトランスフォーマーを実行するまで、そ のキー値は NULL です。 この問題を回避するには、以下の方法のいずれかを使用してください: * トランスフォーマーの初期実行の後、すべての行に対して再作成を行う 「す べての値の置き換え」オプションを使用してください。 ------------------------------------------------------------------------ 22.42 データベースへの接続の保守 データベースを管理する DB2 サーバーが停止され、再始動する際、 ウェアハウ ス・サーバーはローカルあるいはリモート・データベースの接続を 保守しません。 DB2 を停止して再始動した後、ウェアハウス・サービスも同じように停止して再始 動して ください。 ------------------------------------------------------------------------ 22.43 リモート・データウェアハウスセンター・クライアントのセットアップ ウェアハウス・サーバーを含むワークステーションから別のワークステーションに データウェアハウスセンター管理クライアントをセットアップするために DB2 管理 クライアントおよびデータウェアハウス・ツールをインストールする場合、 ウェア ハウス・サーバー・ワークステーションがクライアント・ワークステーション用に サービス・ファイルを listen する TCP/IP ポート番号を追加する必要がありま す。 以下のようにサービス・ファイルに記入項目を 追加してください: vwkernel 11000/tcp ------------------------------------------------------------------------ 22.44 DB2 (VM 版) ウェアハウス・ソースの定義 DB2 (VM 版) データベースのウェアハウス・ソースを定義する場合、 それは DRDA ゲートウェイを通ってアクセスされ、CLOB や BLOB データ・タイプ の使用につい て制限があります: * CLOB や BLOB データ・タイプのデータを表示するサンプル・コンテンツ関数 を使用できません。 * SQL ステップで CLOB や BLOB データ・タイプ列を使用できません。 この制約事項は、LOB オブジェクトが DRDA を使用して DB2 バージョン 7 クライ アントに 送信できない VM バージョン 5.2 サーバーの DB2 では既知の制約事項で す。 ------------------------------------------------------------------------ 22.45 DB2 (VM 版) または DB2 (VSE 版) ターゲット表の定義 データウェアハウスセンターで DB2 (VSE 版) または DB2 (VSE 版) ターゲット表 を 定義する場合、「共通付与」チェック・ボックスを選択しないでください。 デ ータウェアハウスセンターが生成する GRANT コマンド構文は、DB2 (VM 版) および DB2 (VSE 版) では サポートされていません。 ------------------------------------------------------------------------ 22.46 区切り識別子サポートの使用可能化 Windows NT の Sybase および Microsoft SQL サーバーの区切り ID サポートを 使 用可能にするには: ODBC ドライバー・セットアップ・ノートブックの拡張ページで 「区切り ID を使用可能にする」チェック・ボックスを選択してください。 UNIX で Sybase の区切り ID サポートを使用可能にするには、接続属性 EQI=1 を 含む .odbc.ini ファイルで Sybase データ・ソースを編集してください。 ------------------------------------------------------------------------ 22.47 バインドの問題を示す DataJoiner エラー DB2 バージョン 7.1 + フィックスパック 2 以降と DataJoiner を使用するお客様 は、 バインドの問題を示すエラーを受け取ることがあります。 たとえば、DataJoiner ソースとデータウェアハウスセンター V7 エージェントを一 緒に使用すると、 次のようなエラーを受け取る場合があります。 DWC07356E エージェントはステップ "?" のエディション "0" に対してコマンド・タイプ "importTableNames" を処理していましたが、失敗しました。 SQL0001N バインド、またはプリコンパイルが失敗しました。 SQL0805N パッケージ "NULLID.SQLL6D05" が見つかりませんでした。 SQLSTATE=51002 RC = 7356 RC2 = 8600 問題を訂正するには、db2cli.ini ファイルに以下の行を追加してください。 [COMMON] DYNAMIC=1 UNIX システムの場合、db2cli.ini ファイルは .../sqllib/cfg ディレクトリーに あります。 Windows NT の場合、db2cli.ini ファイルは .../sqllib ディレクトリ ーにあります。 ------------------------------------------------------------------------ 22.48 データウェアハウスセンターのレプリケーションのセットアップおよび実行 1. データウェアハウスセンターのレプリケーションのセットアップおよび実行で は、 レプリケーション制御表がウェアハウス・コントロール・データベース および ウェアハウス・ターゲット・データベースの両方に存在することを必 須とします。 レプリケーションは、レプリケーション制御表がコントロールおよび ターゲ ット・データベースの両方に存在することを必須とします。レプリケーション 制御表は、 ASN スキーマで検出され、IBMSNAP を用いてすべて開始します。 レプリケーション制御表は、 制御表がすでに存在していない場合、コントロ ール・センターを介してレプリケーション・ソースを 定義する時にデータベ ース上に自動的に作成されます。制御表もターゲット DB に存在する必要があ ることに 注意してください。コントロール・センターを使用してレプリケー ション・ソースを作成できる ターゲット DB に作成された制御表の設定を得 るには、それからレプリケーション・ソースを除去し、 制御表だけ残しま す。 あるいは DJRA、 Data Joiner Replication Administration、つまり制 御表のみ定義するための製品を使用できます。 2. DJRA のインストールおよび使用 制御表を定義するために DJRA を使用したい、 あるいは使用する必要がある 場合、最初にインストールする必要があります。DJRA は、 DB2 の一部として 出荷されます。DJRA をインストールするには、d:\sqllib\djra ディレクトリ ー (DB2 がインストールされている) に移動し、djra.exe パッケージをクリ ックします。これによって、 ご使用のシステムに DJRA がインストールされ ます。その後で Windows NT の「スタート」メニューから DJRA にアクセスす るには、DB2 (Windows NT 版) 選択をクリックし、「レプリケーション」を選 択し、 次に「レプリケーション管理ツール」を選択します。DJRA インターフ ェースは、 通常の NT アプリケーションと少し異なります。実行するそれぞ れに機能ごとに、 実行される SQL のセットを作成しますが、それを実行する ことはしません。ユーザーは、 手動で生成された SQL を保管し、SQL の実行 機能を選択して、SQL を実行します。 3. 収集およびアプライ・プログラムの実行のセットアップ テスト中のシステムの場合、 収集およびアプライ・プログラムを実行するた めに、ご使用のシステムを構成する説明については、 「レプリケーションの 手引きおよび解説書」を参照してください。使用するそれぞれのデータベース に、 収集およびアプライ・プログラムをバインドする必要があります。パス ワード・ファイルを 作成する必要がないことに注意してください。データウ ェアハウスセンターは自動的に レプリケーション・サブスクリプションのパ スワード・ファイルを作成します。 4. コントロール・センターでのレプリケーション・ソースの定義 コントロール・センターを使用して、 レプリケーション・ソースを定義しま す。 データウェアハウスセンターは 5 つのタイプの レプリケーションをサ ポートします: ユーザー・コピー、時刻指定、基礎集約、変更集約、 および ステージング表 (CCD 表) です。ユーザー・コピー、時刻指定、 および圧縮 ステージング表のタイプの場合、レプリケーション・ソース表に 1 次キーが 必要です。他のレプリケーション・タイプでは必要ありません。このことは、 レプリケーション・ソースとして定義される入力表を選ぶ際に注意してくださ い。レプリケーション・ ソースは実際、元のソース表および、データ変更を ターゲット表に移動する前に保留しておくために 作成された CD (変更デー タ) 表の定義です。 コントロール・センターでレプリケーション・ソースを 定義する時、 ソースおよびその CD 表を定義するために、レコードが ASN.IBMSNAP_REGISTER に書き出されます。CD 表は同時に作成されますが、最 初にデータは入っていません。レプリケーション・ソースを定義する時、 変 更後イメージ列のみを含めるか、変更前イメージ列と変更後イメージ列の両方 を含めるか選ぶことができます。 これらの選択は、コントロール・センター のレプリケーション・ソース・インターフェースの チェック・ボックスで行 なわれます。変更前イメージ列と変更後イメージ列の選択は、 新規 CD 表で 作成される列に変換されます。CD 表で、変更後イメージ列には、 元のソース 表列名と同じ名前が付きます。変更後イメージ列には、列名の最初の文字とし て 'X' が付きます。 5. データウェアハウスセンターへのレプリケーション・ソースのインポート コントロール・センターで、 一度レプリケーション・ソースを作成すると、 それをデータウェアハウスセンターへインポートできます。 ソースをインポ ートする場合、「複製可能な表」というチェック・ボックスをクリックしてく ださい。これは、 レプリケーション・ソースとして定義された表が何である かを参照するために、 データウェアハウスセンターに ASN.IBMSNAP_REGISTER 表内のレコードを検索するよう指示します。 6. データウェアハウスセンターでのレプリケーション・ステップの定義 プロセス・ モデラーで、レプリケーション・タイプのいずれかを選択します: 基礎集約、変更集約、 時刻指定、ステージング表、ユーザー・コピーです。 基礎集約、または変更集約の レプリケーション・タイプを定義する場合、デ ータウェアハウスセンター内で基礎集約、 または変更集約レプリケーション をセットアップする方法について、 下記のセクションを参照してください。 レプリケーション・タイプに適切なレプリケーション・ソースを 選択しま す。上記で述べたように、レプリケーション・タイプのユーザー・コピー、時 刻指定、 および圧縮ステージング表では、入力ソースに 1 次キーが必要で す。 レプリケーション・ソースをレプリケーション・ステップに接続しま す。レプリケーション・ステップの プロパティーをオープンします。「パラ メーター」タブに移動します。必要な列を選択します。 ターゲット表を作成 するようチェック・ボックスを選択します。ウェアハウス・ターゲットを選択 します。 処理オプションに進み、パラメーターを埋めます。「了解」を押し ます。 7. 収集プログラムの開始 DOS ウィンドウで、次のように入力します: ASNCCP source-database COLD PRUNE COLD パラメーターは、コールド・スタートを示し、CD 表内の既存データを 削除します。PRUNE パラメーターは、収集プログラムに IBMSNAP_PRUNCNTL 表 を 保守するよう指示します。収集プログラムを実行したままにします。 終了 する時間になると、DOS ウィンドウから Ctrl-Break でそれを停止できます。 アプライ・プログラムを開始する前に、収集プログラムを開始する必要がある ことに 注意してください。 8. レプリケーション・ステップのテストにプロモート データウェアハウスセンターに戻り、 (定義されたレプリケーション・ステッ プの場合) テスト・モードにステップをプロモートします。これによって、 レプリケーション・サブスクリプション情報がレプリケーション制御表に書き 込まれることになります。 サブスクリプションをサポートするために、 IBMSNAP_SUBS_SET、IBMSNAP_SUBS_MEMBR、 IBMSNAP_SUBS_COLS、および IBMSNAP_SUBS_EVENT に追加されたレコードを参照します。 ターゲット表もま たターゲット・データベースに作成されます。レプリケーション・タイプが ユーザー・コピー、時刻指定、または圧縮ステージング表の場合、ターゲット 表で 1 次キーが必要です。 コントロール・センターで、1 次キーを作成しま す。 いくつかのレプリケーション・ターゲット表もまたさまざまな列で固有 索引を必要とします。 これらの固有索引を自身で作成する必要がないよう に、表が作成された時に、 これらの固有索引も作成されるよう、コードがデ ータウェアハウスセンターに存在します。 コントロール・センターで 1 次キ ーを定義し、固有索引がすでにその列に対して存在する場合、 1 次キーを作 成した時に警告メッセージを受け取りますが、注意してください。 この警告 メッセージは無視してください。 9. レプリケーション・ステップの実動にプロモート 製品へのプロモートの間、 作成されるレプリケーション・サブスクリプトの 変更はありません。これは他のステップと同種の厳密な データウェアハウス センター操作です。 10. レプリケーション・ステップの実行 レプリケーション・ステップがテスト・モードへプロモート した後、実行で きます。ソース表に変更を作成する前に、初期実行を行ってください。 Work-in-Progress (WIP) セクションへ進み、レプリケーション・ステップを 選択してください。 実行します。ステップが実行したら、 IBMSNAP_SUBS_EVENT 表のイベント・レコードは 更新され、IBMSNAP_SUBS_SET のサブスクリプション・レコードは活動状態であることを 通知します。サブ スクリプションは即時に実行する必要があります。サブスクリプションが実行 したら、 アプライ・プログラムは活動サブスクリプションを処理するエージ ェントによって呼び出されます。 その後元ソース表を更新する場合、CD 表に その変更データが移動されます。 レプリケーション・ステップが以下のよう に、アプライ・プログラムが再実行するように実行する場合、 変更データは CD 表からターゲット表に移動されます。 11. レプリケーション・ステップのテストにデモート テストへのデモートの間、 作成されるレプリケーション・サブスクリプトの 変更はありません。 これは他のステップと同種の厳密な データウェアハウス センター操作です。 12. レプリケーション・ステップの実動にデモート 開発にレプリケーション・ステップをデモートする場合、 サブスクリプショ ン情報はレプリケーション制御表から除去されます。 開発へのデモートが終 了した後、特定のサブスクリプション用のレプリケーション制御表に 残って いるレコードはありません。ターゲット表も この時点で削除されます。レプ リケーション・ソースの定義に依存しているので、 CD 表は残ります。 13. データウェアハウスセンターでの基礎集約または変更集約レプリケーションの セットアップ方法。 o 入力表。 GROUP BY ステートメントで使用可能な入力表を選択します。 たとえば、これらの列: SALES、REGION、DISTRICT を持っている入力表 を使用します。 o レプリケーション・ステップ。基礎集約あるいは変更集約を選択しま す。ステップ・プロパティーをオープンします。 + アプライ・プログラムの実行時、次のような SELECT ステートメン トを実行する必要があります: SELECT SUM(SALES), REGION, DISTRICT GROUP BY REGION, DISTRICT。 そのため、選択出力列で は、REGION, DISTRICT を選択し、計算による列の SUM(SALES) を 選択する必要があります。「計算列の追加」ボタンを使用します。 たとえば「式」フィールドに以下のように入力します: SUM(SALES) 保管します。 + Where 文節。GROUP BY 文節のみ必須のレプリケーション・ステッ プをセットアップする場合、 それはレプリケーション要件にあり ます。1=1 のような DUMMY Where 文節も提供する必要がありま す。 WHERE 文節に "WHERE" を含まないでください。 したがっ て、基本集約のデータウェアハウスセンター GUI では、 WHERE 文 節入力フィールドのみがあります。このフィールドでは、たとえば 変更集約に対して: 入力: 1=1 GROUP BY REGION, DISTRICT、WHERE 文節および GROUP BY 入力フィールドの両方があります: WHERE 文 節フィールドには以下を入力: 1=1、GROUP BY フィールドには以下 を入力: GROUP BY REGION、DISTRICT + 他のどのレプリケーション・タイプにも行なうように、ステップ・ プロパティーの残りをセットアップします。 「了解」を押して、 ステップを保管し、ターゲット表オブジェクトを作成します。 o ターゲット表オブジェクトのオープン。ここで、計算された列の式の出 力列名を、 有効な列名に変更する必要があり、その列の有効なデータ・ タイプを指定する必要があります。 ターゲット表オブジェクトを保管し ます。 o レプリケーション・ステップでのテストにプロモートの実行。ターゲッ ト表が作成されます。 1 次キーは必要ありません。 o 他のレプリケーション・ステップと類似したステップの実行。 ------------------------------------------------------------------------ 22.49 障害追及のヒント * アプライ・プログラムのトレースをオンにするには、ウェアハウス・プロパテ ィー・パネルで、 エージェント・トレース値 = 4 と設定します。エージェン ト・トレース = 4 の場合、 エージェントは変更適用に関して完全トレースを 行ないます。 CD 表の中に何もデータがない場合、 収集プログラムが開始されていないか、 いくつかの変更データを作成するために、元のソース表を 更新しなかったこ とのいずれかの可能性が高いです。 * 「スケジュール」ノートブックの 「通知」ページのメール・サーバー・フィ ールドがオンライン・ヘルプから抜けています。 * メール・サーバーは、データウェアハウスセンターが作動するために、ESMTP をサポートする必要があります。「進行中の作業」ウィンドウ・ヘルプをオー プンするには、 「ウェアハウス・センター --> 進行中の作業」よりも「ウェ アハウス --> 進行中の作業」を クリックしてください。 ------------------------------------------------------------------------ 22.50 ソースおよびターゲットへのアクセス 以下の表は、データウェアハウスセンターがサポートするソースおよびターゲット の バージョンおよびリリースのレベルをリストしています。 表 7. サポートされている IBM ウェアハウス・ソースのバージョンおよびリリース ソース バージョン/リリース IMS 5.1 DB2 ユニバーサル・データベース 5.2 - 7.1 (Windows NT 版) DB2 ユニバーサル・データベース エンタ5.2 - 7.1 ープライズ拡張エディション DB2 ユニバーサル・データベース (OS/2 5.2 - 7.1 版) DB2 ユニバーサル・データベース 3.7 - 4.5 (AS/400 版) DB2 ユニバーサル・データベース (AIX 5.2 - 7.1 版) DB2 ユニバーサル・データベース 5.2 - 7.1 (Solaris 版) DB2 ユニバーサル・データベース 4.1 - 7.1 (OS/390 版) DB2 DataJoiner 2.1.1 DB2 (VM 版) 5.3.4 以降 DB2 (VSE 版) 7.1 ソース Windows NT AIX Informix 7.2.2 - 8.2.1 7.2.4 - 9.2.0 Oracle 7.3.2 - 8.1.5 8.1.5 Microsoft SQL Server 7.0 Microsoft Excel 97 Microsoft Access 97 Sybase 11.5 11.9.2 表 8. サポートされている IBM ウェアハウス・ターゲットのバージョンおよびリリ ースのレベル ターゲット バージョン/リリース DB2 ユニバーサル・データベース 6 - 7 (Windows NT 版) DB2 ユニバーサル・データベース エンタ6 - 7 ープライズ拡張エディション DB2 ユニバーサル・データベース (OS/2 6 - 7 版) DB2 ユニバーサル・データベース 3.1-4.5 (AS/400 版) DB2 ユニバーサル・データベース (AIX 6 -7 版) DB2 ユニバーサル・データベース 6 -7 (Solaris 版) DB2 ユニバーサル・データベース 4.1 - 7 (OS/390 版) DB2 DataJoiner 2.1.1 DB2 DataJoiner/Oracle 8 DB2 (VM 版) 3.4 - 5.3.4 DB2 (VSE 版) 3.2, 7.1 CA/400 3.1.2 ------------------------------------------------------------------------ 22.51 その他のサポートされる IBM 以外のデータベース・ソース 以下の表には、その他のサポートされる IBM 以外のデータベース・ソースが含まれ ています。 オペレーティング・シス データベース・クライアン データベース テム ト要件 Informix AIX Informix-Connect および ESQL/C バージョン 9.1.4 あるいは最新版 Informix Solaris 操作環境 Informix-Connect および ESQL/C バージョン 9.1.3 あるいは最新版 Informix Windows NT Informix-Connect (Windows 版) プラットフ ォーム 2.x あるいは Informix-Client ソフトウ ェア開発者キット (Windows 版) プラットフ ォーム 2.x Oracle 7 AIX Oracle7 SQL および Oracle7 SQL*Net 共有ライ ブラリー (genclntsh スク リプトによるビルド) Oracle 7 Solaris 操作環境 Oracle7 SQL および Oracle7 SQL*Net 共有ライ ブラリー (genclntsh スク リプトによるビルド) Oracle 7 Windows NT 適切な DLL SQL*Net の現 行バージョン、プラス OCIW32.DLL。たとえば、 SQL*Net 2.3 は ORA73.DLL、 CORE35.DLL、 NLSRTL32.DLL、 CORE350.DLL および OCIW32.DLL を必須としま す。 Oracle 8 AIX Oracle8 Net8 および Oracle8 SQL*Net 共有ライ ブラリー (genclntsh8 ス クリプトによるビルド) Oracle 8 Solaris 操作環境 Oracle8 Net8 および Oracle8 SQL*Net 共有ライ ブラリー (genclntsh8 ス クリプトによるビルド) Oracle 8 Windows NT バージョン 8.0.3 あるい は最新のレベルで Oracle8 データベース・サーバーに リモート・アクセスするに は、バージョン 7.3.4.x、 8.0.4 あるいは 最新の Oracle Net8 Client をイ ンストールしてください。 Intel システムでは、パス に Oracle Net8 Client (Ora804.DLL、PLS804.DLL および OCI.DLL のような) 用の適切な DLL をインス トール してください。 Sybase AIX 非 DCE 環境 (ibsyb15 ODBC ドライバー): libct library DCE 環境 (ibsyb1115 ODBC ドライバー): Sybase 11.1 client library libct_r Sybase Solaris 操作環境 非 DCE 環境 (ibsyb15 ODBC ドライバー): libct library DCE 環境 (ibsyb1115 ODBC ドライバー): Sybase 11.1 client library libct_r Sybase Windows NT Sybase Open Client-Library 10.0.4 あ るいは最新および適切な Sybase Net-Library。 ------------------------------------------------------------------------ 22.52 データウェアハウスセンターでの手操作によるデータ・ソースの作成 データ・ソースがリレーショナル・コネクトおよび「"ニックネームの作成"」ステ ートメントを 使用して作成されると、データ・ソースはデータウェアハウスセンタ ーでの表のインポートに 関連する機能では使用可能になりません。データ・ソース をソースまたはターゲット表として 使用するには、以下のステップを実行してくだ さい。 1. 表をインポートせずにソース/ターゲットを定義します。 2. データウェアハウスセンターのメイン・ウィンドウから ウェアハウス・ソー ス・ターゲット・ツリーを展開して、必要なソース/ターゲットについて 「" 表"」を右クリックします。 3. 「定義」をクリックします。 4. オープンしたノートブックでデータ・ソースを定義し、列が各データ・ソース について 定義されているかを確認します。 詳しくは、インフォメーション・センターの「"ウェアハウス・ソース表の定義"」 または 「"ウェアハウス・ターゲット表の定義"」を参照してください。 ------------------------------------------------------------------------ 22.53 共通ウェアハウス・メタデータ交換 (CWMI) を使用したインポートおよびエ クスポート 22.53.1 入門 タグ言語ファイルの既存のサポートに加えて、データウェアハウスセンターは、 共 通ウェアハウス・メタモデル (CWM) 標準に準拠する XML ファイルとの間で メタデ ータをインポートおよびエクスポートできるようになりました。 これらの CWM 準 拠 XML ファイルのインポートおよびエクスポートは、 共通ウェアハウス・メタデ ータ交換 (CWMI) と 呼ばれます。 次のデータウェアハウスセンター・オブジェクトからメタデータをインポートおよ び エクスポートできます。 * ウェアハウス・ソース * ウェアハウス・ターゲット * プロセス、ソース、ターゲット、およびステップを含むサブジェクト・エリア * ユーザー定義プログラム CWMI インポートおよびエクスポート・ユーザーは現在、次の種類のメタデータを サポートしています: スケジュール、ウェアハウス・スキーマ、ショートカット・ ステップ、 カスケード関係、ユーザー、およびグループ。 データウェアハウスセンターは、インポートおよびエクスポート・プロセスの 結果 を含むログ・ファイルを作成します。一般にログ・ファイルは、 x:\program files\sqllib\logging ディレクトリー (x: は DB2 が インストールされているド ライブ) または VWS_LOGGING 環境変数として指定された ディレクトリーに作成さ れます。ログ・ファイルはプレーン・テキストです。 テキスト・エディターで表示 することができます。 22.53.2 メタデータのインポート メタデータは、データウェアハウスセンターから、またはコマンド行から インポー トすることができます。 インポート・プロセスを通じて作成された新しいオブジェクトは、デフォルトの デ ータウェアハウスセンター・セキュリティ・グループに割り当てられます。 詳しく は、リリース情報の「インポート後のセキュリティの更新」を 参照してください。 ステップに関するメタデータをインポートしている場合は、複数のファイルを ステ ップに関連付けることができます。ステップに関するメタデータは XML ファイルに 保管されますが、ステップは BLOB として保管された関連データを持っている場合 が あります。BLOB メタデータは XML ファイルと同じファイル名を持っています が、 これは番号の拡張子の付いた個別のファイルです。関連ステップ・ファイルは すべて、 インポート時には同じディレクトリーになければなりません。 テストまたは実動モード時のステップの更新 データウェアハウスセンターがステップのメタデータを更新するためには、 ステッ プが開発モードになければなりません。ステップがテストまたは実動モードに ある 場合は、メタデータをインポートする前にステップを開発モードにデモートして く ださい。 1. データウェアハウスセンターにログオンします。 2. デモートしたいステップを右クリックし、「モード」を クリックします。 3. 「開発」をクリックします。 これでステップが開発モードになります。メタデータのインポート後、 ステップを テストまたは実動モードに戻してください。 データウェアハウスセンターからのデータのインポート メタデータをデータウェアハウスセンターからインポートすることができます。 1. データウェアハウスセンターにログオンします。 2. 左のペインで「ウェアハウス」をクリックします。 3. 「選択」--> 「メタデータのインポート」--> 「ファイルの交換」をクリック します。 4. 「メタデータのインポート」ウィンドウで、インポートしたいメタデータを含 む ファイル名を指定します。ファイル名を入力するか、またはファイルをブ ラウズして 探すことができます。 o 場所が分かっている場合は、インポートしたいファイルの完全修飾パス とファイル名を 入力します。メタデータを XML 形式でインポートした いことを指定するために、 必ず .xml ファイル拡張子を指定してくださ い。 o ファイルをブラウズするには: a. 省略符号 (...) プッシュボタンをクリックします。 b. 「ファイル」ウィンドウで、ファイルの種類を XML に変更しま す。 c. 正しいディレクトリーに変更し、インポートしたいファイルを選択 します。 注: ファイルの拡張子は .xml でなければなりません。 d. 「了解」をクリックする。 5. 「メタデータのインポート」ウィンドウで、 「了解」をクリックして終了し ます。 データウェアハウスセンターがファイルをインポートしている間、 「 進行」ウィンドウが表示されます。 コマンド行を使用してメタデータをインポート コマンド行を使用してメタデータをインポートすることもできます。 インポート・ コマンドの構文は次の通りです: CWMImport XML_file dwcControlDB dwcUserId dwcPW [PREFIX = DWCtbschema] XML_file インポートしたい XML ファイルの 完全 修飾パスとファイル名 (ドライブ名とデ ィレクトリーを含む)。 このパラメータ ーは必須です。 dwcControlDB メタデータをインポートしたい ウェア ハウス・コントロール・データベースの 名前。このパラメーターは必須です。 dwcUserId ウェアハウス・コントロール・データベ ースに ログオンするために使用するユ ーザー ID。このパラメーターは必須で す。 dwcPW ウェアハウス・コントロール・データベ ースに ログオンするために使用するパ スワード。このパラメーターは必須で す。 [PREFIX=DWCtbschema] データウェアハウスセンター・システム 表の データベース・スキーマ名。表接 頭部 とも呼ばれます。 PREFIX= に値が 指定されない場合、デフォルトのスキー マ名は IWH になります。 このパラメー ターはオプションです。 22.53.3 インポート・ユーティリティー実行後のメタデータの更新 インポート後のセキュリティの更新 セキュリティ上の観点から、データウェアハウスセンターはパスワードを インポー トまたはエクスポートしません。新しいオブジェクトに対して、必要に応じて パス ワードを更新する必要があります。インポートの考慮事項について詳しくは、 「デ ータウェアハウスセンター管理の手引き 」、第 12 章、 「データウェアハウスセ ンター・メタデータのエクスポートおよびインポート」を 参照してください。 メタデータをインポートすると、すべてのオブジェクトがデフォルト・セキュリテ ィ・グループ に割り当てられます。 オブジェクトに対してアクセス権を持つグル ープを変更することができます。 1. データウェアハウスセンターにログオンします。 2. 変更したいオブジェクトを含むフォルダーを右クリックします。 3. 「プロパティー」をクリックし、次に 「セキュリティ」タブをクリックしま す。 4. 「選択ウェアハウス・グループ」リストから グループを除去するか、または 「使用可能ウェアハウス・グループ」リストから グループを追加します。 5. 「了解」をクリックする。 22.53.4 メタデータのエクスポート メタデータは、データウェアハウスセンターから、またはコマンド行から エクスポ ートすることができます。 一部のステップは、BLOB として保管されたメタデータを持っています。 BLOB メタ データは、ステップの XML と同じファイル名を持つ個別のファイルにエクスポート されますが、 拡張子には番号が付けられます (.1、.2、以下同様)。 データウェアハウスセンターからのデータのエクスポート メタデータをデータウェアハウスセンターからエクスポートすることができます: 1. データウェアハウスセンターにログオンします。 2. 左のペインで「ウェアハウス」をクリックします。 3. 「選択 --> メタデータのエクスポート--> ファイルの交換」を クリックしま す。 4. 「メタデータのエクスポート」ウィンドウで、エクスポートしたいメタデータ を含む ファイル名を指定します。ファイル名を入力するか、またはファイル をブラウズして 探すことができます。 o 使用したいファイルの完全修飾パスとファイル名が分かっている場合 は、 「ファイル名」入力フィールドに入力します。 メタデータを XML 形式でエクスポートしたいことを指定するために、 必ず .xml ファイル 拡張子を指定してください。 o ファイルをブラウズするには: a. 省略符号 (...) プッシュボタンをクリックします。 b. 「ファイル」ウィンドウで、 ファイルの種類を XML に変更しま す。 c. 正しいディレクトリーに変更し、エクスポートしたいファイルを選 択します。 注: 選択した既存ファイルは、いずれもエクスポートされるメタ データで 上書きされます。 d. 「了解」をクリックする。 5. 「メタデータのエクスポート」ウィンドウに正しいファイル名が表示された ら、 「使用可能オブジェクト」リストでエクスポートしたい メタデータを持 つオブジェクトをクリックします。 6. > 記号をクリックして、選択したオブジェクトを 「使用可能オブジェクト」 リストから 「選択オブジェクト」リストへ移動します。 エクスポートしたい オブジェクトがすべて「選択オブジェクト」リストに リストされるまで、上 記を繰り返してください。 7. 「了解」をクリックする。 データウェアハウスセンターは、エクスポートすることを選択した データウェアハ ウスセンター・オブジェクトに関する情報を含む 入力ファイルを作成し、次に こ れらのオブジェクトに関するメタデータをエクスポートします。 データウェアハウ スセンターがファイルをエクスポートしている間、 進行ウィンドウが表示されま す。 エクスポート・プロセスが完了すると、エクスポート・プロセスに関する通知メッ セージを 受け取ります。戻りコード 0 は、エクスポートが正常に行われたことを 示します。 また、詳細情報をログ・ファイルで見ることもできます。 コマンド行を使用してメタデータをエクスポート メタデータをコマンド行からエクスポートするには、まず 入力ファイルを作成して おかなければなりません。 入力ファイルは拡張子が .INP のテキスト・ファイル で、エクスポートしたい オブジェクト・タイプごとにすべてのオブジェクトをリス トします。データウェアハウスセンターから エクスポートするときは、入力ファイ ルは自動的に作成されますが、コマンド行からエクスポートする には入力ファイル を最初に作成しておく必要があります。入力ファイルはテキスト・エディターで 作 成できます。データウェアハウスセンターに示される順に、オブジェクト名をすべ て 入力してください。ファイルは必ず、読み取り/書き込みディレクトリーに作成 してください。 エクスポート・ユーティリティーを実行すると、データウェアハウ スセンターは、 入力ファイルのあるディレクトリーに XML ファイルを書き込みま す。 入力ファイルの例を以下に示します。 Tutorial Fact Table Process Tutorial file source Tutorial target New Program group (processes) セクションで、エクスポートしたいプロセスを すべてリスト します。 (information resources) セクションで、 エクスポートしたいウェ アハウス・ソースおよびターゲットをすべてリストします。 データウェアハウスセ ンターは自動的に、これらのソースとターゲットに関連付けられた 表と列を組み込 みます。 (user defined programs) セクションで、 エクスポートしたいプロ グラム・グループをすべてリストします。 メタデータをエクスポートするには、次のコマンドを DOS コマンド・プロンプトに 入力してください: CWMExport INPcontrol_file dwcControlDB dwcUserID dwcPW [PREFIX=DWCtbschema] INPcontrol_file エクスポートしたいオブジェクトを 含 む .INP ファイルの完全修飾パスとファ イル名 (ドライブおよび ディレクトリ ーを含む)。このパラメーターは必須で す。 dwcControlDB エクスポート元となる ウェアハウス・ コントロール・データベースの名前。こ のパラメーターは必須です。 dwcUserID ウェアハウス・コントロール・データベ ースに ログオンするために使用するユ ーザー ID。このパラメーターは必須で す。 dwcPW ウェアハウス・コントロール・データベ ースに ログオンするために使用するパ スワード。このパラメーターは必須で す。 [PREFIX=DWCtbschema] データウェアハウスセンター・システム 表の データベース・スキーマ名。表接 頭部 とも呼ばれます。 PREFIX= に値が 指定されない場合、デフォルト値は IWH になります。 このパラメーターはオプ ションです。 ------------------------------------------------------------------------ 22.54 OS/390 Runstats ユーティリティー・ステップ DWC に OS/390 Runstats ユーティリティー・ステップを定義するとき、 「ステッ プ・プロパティー」ダイアログの「パラメーター」タブについて、 以下に注意して ください。 表スペース・フィールドには、名前を英大文字で入力する必要がありま す。 表スペースがデータベース DSNDB04 にない場合、 表スペース名は、その表ス ペースがあるデータベースで修飾する必要があります。 たとえば、 SAMPLE.EMPLOYEE を入力します。 現在このフィールドのヘルプはありません。 ------------------------------------------------------------------------ 22.55 OS/390 Load ユーティリティー・ステップ DWC に OS/390 Load ユーティリティー・ステップを定義するとき、 「ステップ・ プロパティー」ダイアログの「パラメーター」タブについて、 以下に注意してくだ さい。 ロードを機能させるには、必ず「拡張」ボタンを選択してください。 これ を選択しないと、実行したときに、load ステートメントの INTO 文節が生成され ず、 ロードが失敗します。 さらに、フィックスパック 3 には、ロード・データ・セット名を囲む二重引用符を 除去する修正が含まれています。 この修正が行われなければ、ロードは機能しませ ん。 ------------------------------------------------------------------------ 22.56 共通ウェアハウス・メタモデル (CWM) XML サポート バージョン 7.2 CWM ツールキットは Java 開発キット (JDK) 1.2.2 または 1.3 で 機能します。 以下の CWM XML オブジェクトをインポートおよびエクスポートできるようになりま した。 他のプロセスからのショートカット・ステップ 別のプロセス内のステップに関連するステップ (ショートカット) を含むプロセス を エクスポートすると、両方のプロセスがエクスポートされ、関係が維持されま す。 条件付きカスケード関係 CHILD、SUCCESS、FAILURE、および UNCONDITIONAL を含む、ステップ間のさまざま な カスケード関係をインポートおよびエクスポートできるようになりました。 視点オブジェクトとしてのウェアハウス・ソース エクスポートすると、ウェアハウス・ソースを視点オブジェクトとして 定義できる ようになります。 視点オブジェクトは表オブジェクトと同様に処理されます。 列およびフィールドの SQLDataType 列およびフィールドで SQLDataType を使用できます。 同じ表の多重相関名 インポートまたはエクスポートで、同一の表に対してそれぞれが独自の列マッピン グを持つ 多重相関名を使用することができます。 新しい SAP および WebSphere Site Analyzer (WSA) ソースのサポート 新しいソース・サポート・タグが追加されたため、ウェアハウスに保管されている SAP および WSA 情報を エクスポートできるようになりました。 ------------------------------------------------------------------------ 22.57 プロセス・モデラー プロセス・モデラー・パレットのサイズを変更して、画面に合わせることができま す。 パレット上のアイコンの位置は自動的に変更され、複数列のパレットになりま す。 パレット・アイコンをクリックすると、パレット・オブジェクトに見出しが表示さ れます。 「表示」メニューの 「ビジネス名の表示」オプションを選択することによって、 ビジネス名ごとに表およびファイル・オブジェクトを表示できるようになりまし た。 また「ズーム」オプションを選択して、 パーセント設定を調整し、プロセス 表示の大きさを変更できます。 パレット内でオブジェクトが重なっている場合、オブジェクトをクリックして画面 の 前に移動できます。 さらに、オブジェクト名が折り返されて複数行になるた め、パレットのスペースを節約できます。 Delete キーを使用してオブジェクトを除去できるようになりました。 プロセスを 保管すると、表の変更が保管されます。 選択は自動的には行われません。 表、フ ァイル、または視点をウェアハウス・ソースあるいはターゲット、およびプロセス から除去したい場合、 オブジェクトがウェアハウス・ソースにある場合は「ソース から除去」アクションを、 オブジェクトがウェアハウス・ターゲットにある場合は 「ターゲットから除去」アクションを 右クリックして選択できます。 これで、カーソルはパレット選択状態を示します。 さらに、状況表示行には、カー ソルが置かれているオブジェクトの名前が表示されます。 ------------------------------------------------------------------------ 22.58 スキーマ・モデラー スキーマ・モデラー内の表を最小化または最大化できるようになりました。 表を最 小化すると、アイコンに変わります。 より正確に表示できるように、スタースキー マ・レイアウトを作成することが可能です。 ------------------------------------------------------------------------ 22.59 必須フィールド データウェアハウスセンターは必須フィールドに赤い枠を表示します。 赤い枠は、 データベース名、ユーザー ID 、またはパスワードなど、 データウェアハウスセン ター・オブジェクトを定義するために必要な必須情報について 警告を出します。 必須情報を入力すると、枠は消えます。 ------------------------------------------------------------------------ 22.60 データウェアハウスセンター・ランチパッド機能強化 ランチパッドからデータウェアハウスセンター・オブジェクトを作成すると、 ナビ ゲーション・ツリーが展開され、新しいオブジェクトのロケーションが表示されま す。 ------------------------------------------------------------------------ 22.61 ファイルへのステップ情報の印刷 ステップについての情報 (サブジェクト・エリア、ソース表名、および ターゲット 表名など) をテキスト・ファイルに印刷できるようになりました。 ステップ情報を ファイルに印刷するには、プロセス・モデラーのステップ・アイコンを 右クリック して「印刷」-->「ファイルに印刷」をクリックし、 情報を送りたいファイルの名 前を指定します。 ------------------------------------------------------------------------ データウェアハウスセンター アプリケーション統合の手引き 「第 5 章 メタデータ・テンプレート」の表 16 には、 列タグ・トークンについて の説明があります。 マニュアルの情報にある "*ColumnPositionNumber" が "1" で 始まっている必要があります。 マニュアルでは先頭の文字が "0" になっています が、これは誤りです。 第 5 章の後半にある表 42 で、対応する SourceDataBase.tag の DatabaseType ト ークンに 対して指定されたタイプが ISV_IR_FFLan の場合、TableTypeIfFile トー クンが必要です。 このトークンが指定されていない場合、エラーが検出されます。 「第 6 章 データウェアハウスのメタデータ」の POSNO COLUMN オブジェクト・プ ロパティーの説明を次のように変更してください。 表またはファイルの行における列または フィールドの索引 (1 から始まる)。 第 8 章「情報カタログ・マネージャー・オブジェクト・タイプ」、 オブジェク ト・タイプの定義にタグ・ファイルを組み込む .TYP ファイルを 見つけることがで きるディレクトリーは \SQLLIB\DGWIN\TYPES に変更されました。 ------------------------------------------------------------------------ 23.1 その他のメタデータ・テンプレート 第 5 章「メタデータ・テンプレート」に、以下のメタデータ・テンプレートを 入 れる必要があります。 表 9. データウェアハウスセンターで用意されている 新しいメタデータ・テンプレ ート テンプレート 説明 参照: commit.tag 23.1.1, "Commit.tag" Foreignkey.tag 23.1.2, ForeignKey.tag Foreignkeyadditional.tag 23.1.3, ForeignKeyAdditional.tag Primarykey.tag 23.1.4, PrimaryKey.tag Primarykeyadditional.tag 23.1.5, PrimaryKeyAdditional.tag 23.1.1 Commit.tag このテンプレートを使用して、大きなタグ言語ファイルを使用しているときの パフ ォーマンスを向上させます。 コミット・テンプレートは、ここで記載されているテ ンプレート・グループの 間であれば、どこにでも挿入できます。 コミット・テン プレートは、グループ内のテンプレートの間には挿入できません。 たとえば、 AgentSite.tag と VWPGroup.tag の間にコミット・テンプレートを挿入することは 有効ですが、VWPProgramTemplate.tag と VWPProgramTemplateParameter.tag の間 に コミット・テンプレートを挿入することは無効です。 コミット・テンプレート を不正に使用した場合、インポートでエラーが報告される場合があります。 * AgentSite.tag * VWPGroup.tag * VWPProgramTemplate.tag, VWPProgramTemplateParameter.tag * SourceDatabase.tag * WarehouseDatabase.tag * Table.tag, Column.tag * SubjectArea.tag * Process.tag * Step.tag, StepInputTable.tag, StepOutputTable.tag, StepVWPOutputTable.tag, StepVWPProgramInstance.tag, VWPProgramInstanceParameter.tag * StepCascade.tag * StarSchema.tag, StarSchemaInputTable.tag * PrimaryKey.tag, PrimaryKeyAdditional.tag * ForeignKey.tag, ForeignKeyAdditional.tag コミット・テンプレートの使用はオプションです。 23.1.1.1 トークン 「表 10」には、テンプレートの各トークンについての情報があります。 表 10. Commit.tag トークン トークン 説明 許可値 関係パラメーター *CurrentCheckPointID++トークンで置き換えられ 数値 るたびに増加する、0 で 始まる索引 このトークンは必須で す。 23.1.1.2 値の例 「表 11」には、トークンごとに値の例が示され、 各トークンに指定できるメタデ ータの種類が説明されています。 表 11. Commit.tag トークンの値の例 トークン 値の例 *CurrentCheckPointID++ 1 23.1.2 ForeignKey.tag このテンプレートを使用して、表に対して外部キー制約を定義します。 ForeignKey.tag テンプレートは、制約が定義されている表および列に対する関係を 定義します。 このテンプレートはまた、参照されている 1 次 キーの表および列に 対する関係も定義します。 ForeignKey.tag テンプレートを使用する前に、1 次キ ー制約 (PrimaryKey.tag テンプレートを 使用) と、外部キー制約を定義したい表 および列 (Table.tag および Column.tag テンプレートを使用) を 定義する必要が あります。 23.1.2.1 トークン 「表 12」には、テンプレートの各トークンについての情報があります。 表 12. ForeignKey.tag トークン トークン 説明 許可値 エンティティー・パラメーター *ConstraintName 制約の名前 80 バイトまでのテキスト・ ストリング 名前は、表またはフィ ールド内で固有でなけ ればなりません。 このトークンは必須で す。 *ForeignColumnKeyName 外部キー制約が定義さ 254 バイトまでのテキスト・ れている列の名前 ストリング *ForeignKeyID 外部キーを一意的に識 数値 別するキー。 このキ ーは、タグ言語ファイ ル内のその他のキーす べてに対して固有でな ければなりません。 ヒント: キーの値を大 きくする前に、 ForeignKey.tag テン プレートの 処理を完 了してください。 このトークンは必須で す。 *MapID 交換ファイル内のその 数値 他のキーすべてに対し て 固有な任意の数値 ヒント: このトークン の値を大きくする前 に、ForeignKey.tag テンプレートの 処理 を完了してください。 このトークンは必須で す。 *PrimaryColumnKeyName 参照されている列の列 80 バイトまでのテキスト・ 名 ストリング *ReferencedPrimaryKeyID 1 次キーを一意的に識 数値 別するキー。 このキ ーは、タグ言語ファイ ル内のその他のキーす べてに対して固有でな ければなりません。 ヒント: キーの値を大 きくする前に、 ForeignKey.tag テン プレートの 処理を完 了してください。 このトークンは必須で す。 関係パラメーター *DatabaseName ウェアハウス・ソース 40 バイトまでのテキスト・ またはウェアハウス・ ストリング ターゲットのビジネス 名 このトークンは必須で す。 *ForeignTablePhysicalName別の表のキーを参照す 254 バイトまでのテキスト・ る外部キーを含む、物 ストリング 理表の データベース 定義の名前 *PrimaryTablePhysicalName外部キーによって参照 80 バイトまでのテキスト・ されるキーを含む、物 ストリング 理表の データベース 定義の名前 *PrimaryTableOwner 参照されている 1 次 128 バイトまでのテキスト・ キー列を含む表の 所 ストリング 有者、高水準修飾子、 コレクション、または スキーマ このトークンは必須で す。 *ForeignTableOwner 外部キー制約列を含む 128 バイトまでのテキスト・ 表の所有者、高水準修 ストリング 飾子、 コレクショ ン、またはスキーマ このトークンは必須で す。 23.1.2.2 値の例 「表 13」には、トークンごとに値の例が示され、 各トークンに指定できるメタデ ータの種類が説明されています。 表 13. ForeignKey.tag トークンの値の例 トークン 値の例 *ConstraintName Department *DatabaseName Finance Warehouse *ForeignColumnKeyName Country_code *ForeignKeyID 07011 *ForeignTablePhysicalName Geography *MapID 02568 *PrimaryColumnKeyName State_code *Referenced PrimaryKeyID Name *PrimaryTablePhysicalName City *PrimaryTableOwner DB2ADMIN *ForeignTableOwner IWH 23.1.3 ForeignKeyAdditional.tag このテンプレートを使用して、複合外部キーを定義します。 ForeignKeyAdditional.tag テンプレートを使用する前に、 (ForeignKey.tag テン プレートを使用して) 最初の列の制約を定義する必要があります。 これで、追加し たい列ごとにこのテンプレートを使用することによって 列を追加できるようになり ます。 23.1.3.1 トークン 「表 14」には、テンプレートの各トークンについての情報があります。 表 14. ForeignKeyAdditional.tag トークン トークン 説明 許可値 エンティティー・パラメーター *ForeignColumnKeyName 外部キー制約が定義されて 80 バイトまでのテキス いる列の名前 ト・ストリング *ForeignKeyID 外部キーを一意的に識別す 数値 るキー。 このキーは、タグ 言語ファイル内のその他の キーすべてに対して固有で なければなりません。 ヒント: キーの値を大きく する前に、ForeignKey.tag テンプレートの 処理を完了 してください。 このトークンは必須です。 *MapID 交換ファイル内のその他の 数値 キーすべてに対して 固有な 任意の数値 ヒント: このトークンの値 を大きくする前に、 ForeignKeyAdditional.tag テンプレートの処理を完了 してください。 このトークンは必須です。 *MapSeqNo 複合キーの一部として外部 2 から始まって連続する キー制約に追加される、追 固有の番号 加列それぞれを表す番号 *PrimaryColumnKeyName 参照されている列の列名 80 バイトまでのテキス ト・ストリング 関係パラメーター *DatabaseName ウェアハウス・ソースまた 40 バイトまでのテキス はウェアハウス・ターゲッ ト・ストリング トのビジネス名 このトークンは必須です。 *ForeignTablePhysicalName別の表のキーを参照する外 80 バイトまでのテキス 部キーを含む、物理表の デ ト・ストリング ータベース定義の名前 *PrimaryTablePhysicalName外部キーによって参照され 80 バイトまでのテキス るキーを含む、物理表の デ ト・ストリング ータベース定義の名前 *PrimaryTableOwner 参照されている 1 次キー列 128 バイトまでのテキス を含む表の 所有者、高水準 ト・ストリング 修飾子、コレクション、ま たはスキーマ このトークンは必須です。 *ForeignTableOwner 外部キー制約列を含む表の 128 バイトまでのテキス 所有者、高水準修飾子、 コ ト・ストリング レクション、またはスキー マ このトークンは必須です。 23.1.3.2 値の例 「表 15」には、トークンごとに値の例が示され、 各トークンに指定できるメタデ ータの種類が説明されています。 表 15. ForeignKeyAdditional.tag トークンの値の例 トークン 値の例 *DatabaseName Finance Warehouse *ForeignColumnKeyName Country_code *ForeignKeyID 07011 *ForeignTablePhysicalName Geography *MapID 22578 *MapSeqNo 2 *PrimaryColumnKeyName State_code *PrimaryTablePhysicalName City *PrimaryTableOwner DB2ADMIN *ForeignTableOwner IWH 23.1.4 PrimaryKey.tag このテンプレートを使用して、表に対して 1 次キー制約を定義します。 このテン プレートは、制約が定義されている表および列に対する関係も定義します。 PrimaryKey.tag テンプレートを使用する前に、1 次 キー制約を定義したい表およ び 列を (Table.tag および Column.tag テンプレートを使用して) 定義する必要が あります。 23.1.4.1 トークン 「表 16」には、テンプレートの各トークンについての情報があります。 表 16. PrimaryKey.tag トークン トークン 説明 許可値 エンティティー・パラメーター *ColumnName 列またはフィールドの 80 バイトまでのテキスト・スト 名前 リング 名前は、表またはフィ ールド内で固有でなけ ればなりません。 このトークンは必須で す。 *MapID 交換ファイル内のその 数値 他のキーすべてに対し て 固有な任意の数値 ヒント: このトークン の値を大きくする前 に、 PrimaryKey.tag テンプレートの処理を 完了してください。 このトークンは必須で す。 *PrimaryKeyID 1 次キーを一意的に識 数値 別するキー。 このキ ーは、タグ言語ファイ ル内のその他のキーす べてに対して固有でな ければなりません。 ヒント: キーの値を大 きくする前に、 ForeignKey.tag テン プレートの 処理を完 了してください。 このトークンは必須で す。 関係パラメーター *DatabaseName ウェアハウス・ソース 40 バイトまでのテキスト・スト またはウェアハウス・ リング ターゲットのビジネス 名 このトークンは必須で す。 *TableOwner 列を含む表の所有者、 128 バイトまでのテキスト・ス 高水準修飾子、コレク トリング ション、またはスキー マ このトークンは必須で す。 *TablePhysicalName データベース・マネー 80 バイトまでのテキスト・スト ジャーまたはファイ リング ル・システムに対して 定義された、 列を含 む表またはファイルの 物理名 このトークンは必須で す。 23.1.4.2 値の例 「表 17」には、トークンごとに値の例が示され、 各トークンに指定できるメタデ ータの種類が説明されています。 表 17. PrimaryKey.tag トークンの値の例 トークン 値の例 *ColumnName Country_code *DatabaseName Finance Warehouse *MapID 54627 *PrimaryKeyID 74622 *TableOwner DB2ADMIN *TablePhysicalName GEOGRAPHY 23.1.5 PrimaryKeyAdditional.tag このテンプレートを使用して、複合 1 次キーを定義します。 PrimaryKeyAdditional.tag テンプレートを使用する前に、PrimaryKey.tag テンプ レートを 使用して最初の列の制約を定義する必要があります。 これで、このテン プレートを使用してその他の列を追加できるようになります。 またこのテンプレー トは、PrimaryKey.tag を使用して、 定義される最初の 1 次キーに別の 1 次キー を関連させます。 23.1.5.1 トークン 「表 18」には、テンプレートの各トークンについての情報があります。 表 18. PrimaryKeyAdditional.tag トークン トークン 説明 許可値 エンティティー・パラメーター *ColumnName 列またはフィールドの名前 80 バイトまでのテキスト・ ストリング 名前は、表またはフィール ド内で固有でなければなり ません。 このトークンは必須です。 *FirstPrimaryKeyID 1 次キーを一意的に識別す 数値 るキー。 このキーは、タグ 言語ファイル内のその他の キーすべてに対して固有で なければなりません。 ヒント: キーの値を大きく する前に、ForeignKey.tag テンプレートの 処理を完了 してください。 このトークンは必須です。 *MapID 交換ファイル内のその他の 数値 キーすべてに対して 固有な 任意の数値 ヒント: このトークンの値 を増やす前に、 PrimaryKeyAdditional.tag テンプレートの処理を完了 してください。 このトークンは必須です。 *MapSeqNo 複合キーの一部として 1 次 2 から始まって連続する固 キー制約に追加されるそれ 有の番号 ぞれの追加列を表す番号。 関係パラメーター *DatabaseName ウェアハウス・ソースまた 40 バイトまでのテキスト・ はウェアハウス・ターゲッ ストリング トのビジネス名 このトークンは必須です。 *TableOwner 列を含む表の所有者、高水 15 バイトまでのテキスト・ 準修飾子、コレクション、 ストリング またはスキーマ このトークンは必須です。 *TablePhysicalName データベース・マネージャ 80 バイトまでのテキスト・ ーまたはファイル・システ ストリング ムに対して定義された、 列 を含む表またはファイルの 物理名 このトークンは必須です。 23.1.5.2 値の例 「表 19」には、トークンごとに値の例が示され、 各トークンに指定できるメタデ ータの種類が説明されています。 表 19. PrimaryKeyAdditional.tag トークンの値の例 トークン 値の例 *ColumnName Country_code *DatabaseName Finance Warehouse *MapID 99542 *MapSeqNo 2 *FirstPrimaryKeyID 07801 *TableOwner DB2ADMIN *TablePhysicalName GEOGRAPHY ------------------------------------------------------------------------ データウェアハウスセンター・オンライン・ヘルプ ------------------------------------------------------------------------ 24.1 レプリケーション用に表またはビューを定義 表またはビューは、データウェアハウスセンターのレプリケーション・ソースとし て 使用する前に、DB2 コントロール・センターを使用してレプリケーション用に 定義しておく必要があります。 ------------------------------------------------------------------------ 24.2 AS/400 エージェントでの Essbase VWP の実行 Essbase VWP を AS/400 エージェントで実行する前に、ARBORLIB および ARBORPATH を *sys 環境変数として設定する必要があります。これらを設定するには、ユーザ ー ID は *jobctl 権限を持つ必要があります。これらの環境変数は Essbase がイ ンストールされている ライブラリーを示すようにする必要があります。 ------------------------------------------------------------------------ 24.3 「データウェアハウスセンター・メタデータの発行」ウィンドウおよび「関連 プロパティー」ウィンドウの使用 タスク・ヘルプのステップ 10 に、 しきい値 1 (ツリー内のオブジェクトのレベル を制限) を指定してプロセスを発行した場合、 そのプロセスから 1 ステップのみ 発行され表示される、 ということを示している例があります。 この例は、すべて の状況において正しいとは限りません。 ステップ 8 では (2 番目の中黒項目)、最 初の文は正しくありません。 「情報カタログのソース列とターゲット列の間でトラ ンスフォーメーション・ オブジェクトを生成するには、列レベルをクリックしま す。」と解釈してください。 ------------------------------------------------------------------------ 24.4 外部キー オンライン・ヘルプ内の「外部キー」に対する言及は、 「ウェアハウス外部キー」 と解釈してください。 ------------------------------------------------------------------------ 24.5 「レプリケーション」ノートブック オンライン・ヘルプ内の「レプリケーションの定義ノートブック」に対する言及 は、 「レプリケーション・ステップ・ノートブック」と解釈してください。 ------------------------------------------------------------------------ 24.6 タグ言語のインポート 「タグ言語ファイルをインポートする」オンライン・ヘルプ: 共通のインポート・ エラーを 示す中黒のリストで、リスト内の 1 項目は「正しくエクスポートされな かった タグ言語ファイルをインポートする」です。 この項目は共通入力エラーの リストには適用できません。 ------------------------------------------------------------------------ 24.7 「データの追加」のリンク オンライン・ヘルプの 「"データの追加"」トピックでは、「プロセスへの ソース 表の追加」および 「プロセスへのターゲット表の追加」へリンクしているトピック は 壊れています。これらのトピックはヘルプ索引で検出できます。 ------------------------------------------------------------------------ 24.8 表のインポート ヘルプ・トピック「ソース表および視点をウェアハウス・ソースにインポートす る」および 「ターゲット表をウェアハウス・ターゲットにインポートする」には、 ワイルドカード文字に関する情報に誤りがあります。 次の文: たとえば、XYZ* は、この文字で始まるスキーマのある 表および視点を戻します。 は、次のように訂正してください。 たとえば、XYZ% この文字で始まるスキーマのある 表および視点を戻します。 ------------------------------------------------------------------------ 24.9 RUNSTATS および REORGANIZE TABLE オンライン・ヘルプの訂正 これらのユーティリティーのオンライン・ヘルプは、統計を実行するか、 または再 編成しようとしている表がソースおよびターゲットの両方としてリンクされている 必要がある、と述べています。 ただし、そのステップはソースへ書き込むため、ソ ースからステップへのリンクが必要です。 ------------------------------------------------------------------------ 24.10 通知ページ (ウェアハウス・プロパティー・ノートブックおよびスケジュー ル・ノートブック) ウェアハウス・プロパティー・ノートブックの通知ページに、以下のステートメン トがあります: 送信側の入力フィールドはストリング <現行のユーザー・ログオン ID> で初期化されます。 これは、次のように変わります: 送信側の入力フィールドはストリング <現行のログオン・ユーザー E メール・アドレス>で初期化されます。 スケジュール・ノートブックの通知ページに、ウェアハウス・プロパティー・ノー トブックで 設定されるものを送信側は初期化します。 何も設定されない場合、現 行のログオン・ユーザー E メール・アドレスに初期化されます。 ログオン・ユー ザーに関連する E メール・アドレスがない場合、 送信側はログオン・ユーザー ID に設定されます。 ------------------------------------------------------------------------ 24.11 エージェント・サイト・ノートブックのエージェント・モジュール・フィー ルド 「エージェント・サイト」ノートブックの「エージェント・モジュール」フィール ドは、 ウェアハウス・デーモンがウェアハウス・エージェントを作成した時に実行 されるプログラムの 名前を提供します。弊社が指示しない限り、フィールドの名前 は変更しないでください。 ------------------------------------------------------------------------ DB2 OLAP スターター・キット IBM DB2 OLAP スターター・キットを使用すれば、特定のオペレーティング・システ ム・プラットフォームでの Oracle、MS-SQL、Sybase、および Informix リレーショ ナル・データベース管理システム (RDBMS) の サポートが 追加されます。バージョ ン 7.2 には、DB2 をはじめ、サポートされるすべての RDBMS のスクリプトおよび ツールが 含まれます。制限事項があります。詳細については、25.8, 既知の問題お よび制限事項 を参照してください。 DB2 ユニバーサル・データベース・バージョン 7.2 の DB2 OLAP スターター・キッ トの サービス・レベルは、Hyperion Essbase 6.1 のパッチ 2 と Hyperion Integration Server 2.0 の パッチ 2 と同じです。 ------------------------------------------------------------------------ 25.1 OLAP Server Web サイト DB2 OLAP スターター・キットの最新インストールおよび使用上のヒントについて は、 DB2 OLAP Server Web サイトのライブラリー・ページを参照してください。 http://www.ibm.com/software/data/db2/db2olap/library.html ------------------------------------------------------------------------ 25.2 サポートされるオペレーティング・システム・サービス・レベル OLAP スターター・キット・バージョン 7.2 のサーバー・コンポーネントは、以下 の オペレーティング・システムとサービス・レベルをサポートします。 * Windows NT 4.0 サーバー (サービス・パック 5) および Windows 2000 * AIX バージョン 4.3.3 またはそれ以降 * Solaris オペレーティング・システム・バージョン 2.6、7、および 8 (Sun OS 5.6、5.7、または 5.8) クライアント・コンポーネントは、Windows 95、Windows 98、Windows NT 4.0 SP5、および Windows 2000 で起動します。 ------------------------------------------------------------------------ 25.3 UNIX での DB2 OLAP スターター・キットを完了する DB2 OLAP スターター・キットのインストールは、DB2 ユニバーサル・データベース を UNIX にインストールする際の基本プロシージャーにしたがって行います。製品 ファイルは、 インストール・プログラムによってシステム・ディレクトリーに 置 かれます (AIX の場合は、/usr/lpp/db2_07_01、 Solaris の場合は、 /opt/IBMdb2/V7.1)。 インスタンス作成段階で、2 つの DB2 OLAP ディレクトリー (essbase および is) が sqllib 下のインスタンス・ユーザーのホーム・ディレクトリーに 作成されま す。OLAP Server のインスタンスのみマシンで一度に実行できます。 セットアップ を完了するには、ユーザーは is/bin ディレクトリーをシステムの is/bin ディレ クトリーにリンクしないように、手動で設定する 必要があります。インスタンスの ホーム・ディレクトリーで writable ディレクトリーにリンクする必要がありま す。 Solaris でセットアップを完了するには、インスタンス ID を使用してログオン し、 sqllib/is ディレクトリーへ変更して、 以下を入力します: rm bin mkdir bin cd bin ln -s /opt/IBMdb2/V7.1/is/bin/ismesg.mdb ismesg.mdb ln -s /opt/IBMdb2/V7.1/is/bin/olapicmd olapicmd ln -s /opt/IBMdb2/V7.1/is/bin/olapisvr olapisvr ln -s /opt/IBMdb2/V7.1/is/bin/essbase.mdb essbase.mdb ln -s /opt/IBMdb2/V7.1/is/bin/libolapams.so libolapams.so ------------------------------------------------------------------------ 25.4 ODBC を OLAP スターター・キット用に構成 IBM DB2 OLAP スターター・キット 7.2 は、OLAP Integration Server から OLAP Metadata Catalog への Open Database Connectivity (ODBC) 接続操作で、 ODBC.ini ファイルが必要です。 * Windows システムで、このファイルは HKEY_LOCAL_MACHINE/SOFTWARE/ODBC の 下のレジストリーにあります。リレーショナル・データ・ソースとの接続方法 についての情報を 保管するには、ODBC データ・ソース管理者を使用します。 * UNIX システムでインストール・プログラムを実行すると、モデル odbc.ini ファイルが 作成されます。リレーショナル・データ・ソースに接続する方法 についての情報を 格納するには、適切なエディターを使用してファイルを編 集します。 ODBC.ini ファイルは ODBC ソフトウェア・パッケージにあり、Microsoft Office に 添付されています。ODBC ドライバーまたは ODBC 管理者をインストールする ア プリケーションの詳細については、次の Web サイトを参照してください: http://support.microsoft.com/support/kb/articles/Q113/1/08.asp。 AIX マシンでの Oracle ユーザーの場合: ODBC を Oracle 用に構成するには、 MERANT 3.6 ドライバーを指すように ODBC.ini ファイルを 更新する必要がありま す。 バージョン 7.2 では、OLAP スターター・キットは、リレーショナル・データ・ソ ースおよび OLAP メタデータ・カタログとの ODBC 接続を管理します。これらの ODBC 接続に対応するため、 OLAP スターター・キットは、Windows NT 4.0、 Windows 2000、AIX、および Solaris で ODBC ドライバーを使います。 * DB2 ユニバーサル・データベース・バージョン 6 データベース・クライアン トの場合: Windows NT 4.0 SP5 または Windows 2000、AIX 4.3.3、および Solaris オペレーティング・システム 2.6, 7、 または 8 (Sun OS 5.6、 5.7、または 5.8) で DB2 バージョン 6 ODBC ドライバー。 * DB2 ユニバーサル・データベース 7.1 データベース・クライアントの場合: Windows NT 4.0 SP5 または Windows 2000、AIX 4.3.3、および Solaris オペ レーティング・システム 2.6, 7、 または 8 (Sun OS 5.6、5.7、または 5.8) で DB2 バージョン 7 ODBC ドライバー。 * Oracle 8.04 および 8i SQL*Net 8.0 データベース・クライアントの場合: Windows NT 4.0 SP5 または Windows 2000、AIX 4.3.3、Solaris オペレーテ ィング・システム 2.6、 7 または 8 (Sun OS 5.6、5.7、または 5.8) で MERANT 3.6 ODBC ドライバー。 * MS SQL サーバー 6.5.201 (データベース・クライアント不要) の場合: Windows NT 4.0 SP5 または Windows 2000 で MS SQL サーバー 6.5 ODBC ド ライバー。 * MS SQL Server 7.0 (データベース・クライアント不要) の場合: Windows NT 4.0 SP5 または Windows 2000 で MS SQL Server 7.0 ODBC ドライバー 25.4.1 UNIX システムでのデータ・ソースの構成 AIX および Solaris では、環境変数を ODBC 用に手動で設定し、 odbc.ini ファイ ルを編集して、リレーショナル・データ・ソース および OLAP メタデータ・カタロ グを構成する必要があります。新規にドライバーまたは データ・ソースを追加する 場合、あるいはドライバーまたはデータ・ソースを変更する場合は、 odbc.ini フ ァイルを必ず編集してください。 25.4.1.1 環境変数の構成 UNIX システムでは、環境変数を設定して、ODBC コア・コンポーネントへのアクセ スを可能にする 必要があります。必須変数を設定する is.sh および is.csh シェ ル・スクリプトがスターター・キット・ホーム・ ディレクトリーにあります。ODBC データ・ソースに接続する前に、これらのスクリプトの 1つを実行しなければなり ません。OLAP スターター・キットの実行に使用するユーザー名の ログイン・スク リプトに、これらのスクリプトを組み込んでください。 25.4.1.2 odbc.ini ファイルの編集 odbc.ini ファイルでデータ・ソースを構成するには、ODBC データ・ソースの名前 と記述を追加し、 またデータ・ソース名のために作成する別のセクションでは、 ODBC ドライバー・パス、ファイル名、 およびその他のドライバー設定値を入力す る必要があります。インストール・プログラムは、 サンプルの odbc.ini ファイル を ISHOME ディレクトリーに インストールします。このファイルには、サポートさ れている ODBC ドライバーに関する 汎用の ODBC 接続および構成情報が含まれてい ます。リレーショナル・データ・ソースおよび OLAP メタデータ・カタログに対し て、使用する ODBC ドライバーをマップするための開始点として このファイルを使 用してください。 odbc.ini ファイル以外の別のファイルを使用する場合は、 使用するファイルの名 前に ODBCINI 環境変数を必ず設定してください。 25.4.1.3 odbc.ini ファイルへのデータ・ソースの追加 1. OLAP スターター・キット・サーバーを実行しているシステムで、vi などの テキスト・エディターを使用して odbc.ini ファイルを開きます。 2. [ODBC Data Sources] で始まっているセクションを見つけて、 mydata=data source for analysis など、 データ・ソースの名前と説明を記述する新しい 行を追加します。なるべく混乱しないように、データ・ソースの名前は、 RDBMS にあるデータベースの名前と一致させます。 3. [mydata] など、大括弧で囲まれた新しいデータ・ソースの名前を記述する新 しい行を 作成して、ファイルに新しいセクションを追加します。 4. データ・ソース名に続く行で、このデータ・ソースおよびその他の必須の ODBC ドライバー情報に 対する全パスとファイル名を追加します。以下のセク ションで紹介する例をガイドラインとして使用して、 RDBMS のデータ・ソー スにマップしてください。Driver= 設定に指定するロケーションに ODBC ドラ イバー・ファイルが実際に存在することを確認してください。 5. odbc.ini の編集を終了したら、ファイルを保存し、 テキスト・エディターを 終了させます。 25.4.1.4 DB2 の ODBC 設定の例 次の例で、odbc.ini を編集して、IBM DB2 固有の ODBC ドライバーを使い、AIX で DB2 ユニバーサル・データベース・バージョン 6.1 の リレーショナル・データ・ ソース db2data に接続する方法を 説明します。vi エディターで $ODBCINI コマン ドを使い、odbc.ini を 編集して、以下のステートメントを挿入します。 [ODBC Data Sources] db2data=DB2 Source Data on AIX ... [db2data] Driver=/home/db2inst1/sqllib/lib/db2.o Description=DB2 Data Source - AIX, native 25.4.1.5 Oracle の ODBC 設定の例 次の例で、odbc.ini を編集して、MERANT バージョン 3.6 ODBC ドライバーを 使 い、Oracle バージョン 8 (Solaris で) のリレーショナル・データ・ソース oradata に 接続する方法を説明します。この例では、LogonID および Password は、 OLAP スターター・キットのユーザー名およびパスワードで使用する実際の値 でオーバーライドされます。 [ODBC データ・ソース] oradata=Oracle8 Source Data on Solaris ... [myoracle] ドライバー= /export/home/users/dkendric/is200/odbclib/ARor815.so Description=my oracle source 25.4.2 UNIX システムでの OLAP メタデータ・カタログの構成 AIX および Solaris での OLAP メタデータ・カタログの構成は、データ・ソースの 構成と 類似しています。OLAP メタデータ・カタログ・データベースの場合、 25.4.1.2, odbc.ini ファイルの編集 での説明の ように、データ・ソースの名前と セクションを odbc.ini ファイルに 追加します。そのほかに必要な変更はありませ ん。 OLAP メタデータ・カタログ・データベースを ODBC データ・ソースとして構成する 前に、 サポートされている RDBMS に作成する必要があります。 次の例で、odbc.ini を編集して、固有の ODBC ドライバーを 使い、DB2 バージョ ン 6.1 (Solaris で) OLAP メタデータ・カタログ TBC_MD に接続する方法を 説明 します。 [ODBC データ・ソース] ocd6a5a=db2 v6 ... [ocd6a5a] Driver=/home/db2instl/sqllib/lib/db2.0 Description=db2 25.4.3 Windows システムでのデータ・ソースの構成 Windows NT または Windows 2000 システムで リレーショナル・データ・ソースを 構成するには、ODBC Administrator を実行してから、OLAP モデルおよびメタアウ トラインの 作成に使用するデータ・ソースとの接続を作成する必要があります。 Windows コントロール・パネルから ODBC Administrator ユーティリティーを実行 します。次の例で DB2 データ・ソースを作成します。 ほかの RDBMS のダイアロ グ・ボックスは異なることがあります。 ODBC Administrator でリレーショナル・データ・ソースを構成するには、 以下の ステップを実行します。 1. Windows デスクトップで、「コントロール・パネル」ウィンドウを開く。 2. 「コントロール・パネル」ウィンドウで、以下のステップの 1 つを実行す る。 a. Windows NT で、ODBC アイコンをダブルクリックし、 「ODBC Data Source Administrator」ダイアログ・ボックスを開く。 b. Windows 2000 で、Administrative Tools アイコンを ダブルクリックし てから、データ・ソース (ODBC) アイコンを ダブルクリックし、「ODBC Data Source Administrator」ダイアログ・ボックスを開く。 3. 「ODBC Data Source Administrator」ダイアログ・ボックスで、 「System DSN」タブをクリックする。 4. 「追加」をクリックして、 「データ・ソースの新規作成」ダイアログ・ボッ クスが開く。 5. ODBC Administrator の「データ・ソースの新規作成」ダイアログ・ボックス で、 IBM DB2 ODBC Driver などの適切なドライバーを選択し、 「完了」をク リックして、 「ODBC IBM DB2 ドライバー - 追加」 ダイアログ・ボックスを 開く。 6. 「ODBC IBM DB2 ドライバー - 追加」 ダイアログ・ボックスの 「データベー ス別名」ドロップダウン・リストで、 適切なリレーショナル・ソース・デー タのデータベースの名前 (たとえば、サンプル・アプリケーションの TBC) を 選択する。 7. 「説明」テキスト・ボックスで、 このドライバーの使用方法を示す任意の説 明を入力し、「追加」を クリックする。たとえば、My Business データベー スを示すには次のような説明を 入力します: お客様、製品、取引 など 。次のような説明を入力すれば、 サンプル・アプリケーション・データ ベースを記述できるでしょう: リレーショナル・データ・ソースのサンプル 説明の中には、 ★OLAP Starter Kit Desktop★ から接続するとき、選択可能 なデータ・ソースを 特定するヒントがあります。 8. 「了解」をクリックし、「ODBC Data Source Administrator」ダイアログ・ボ ックスに 戻る。入力したデータ・ソース名およびデータ・ソース名にマップ したドライバーが 「System DSN」タブの 「システム・データ・ソース」リス ト・ボックスに 表示されます。 データ・ソースの構成情報を編集するには、以下の通りにします。 1. データ・ソース名を選択し、「構成」をクリックして、 「ODBC IBM DB2 - 追 加」ダイアログ・ボックスを開く。 2. 変更したい情報を訂正する。 3. 「了解」を 2 回クリックし、終了する。 25.4.4 Windows システムでの OLAP メタデータ・カタログの構成 Windows NT または Windows 2000 で OLAP メタデータ・カタログを構成するには、 ODBC Administrator を実行してから、OLAP メタデータ・カタログ・データベース が 含まれるデータ・ソースとの接続を作成します。 次の例で DB2 データ・ソースを作成します。 ほかの RDBMS のダイアログ・ボック スは異なることがあります。OLAP メタデータ・カタログの データ・ソースを作成 するには、次のステップを実行します。 1. デスクトップで、「コントロール・パネル」ウィンドウを開く。 2. 「コントロール・パネル」ウィンドウで、以下のステップの 1 つを実行す る。 a. Windows NT で、ODBC アイコンをダブルクリックし、 「ODBC Data Source Administrator」ダイアログ・ボックスを開く。 b. Windows 2000 で、Administrative Tools アイコンを ダブルクリックし てから、データ・ソース (ODBC) アイコンを ダブルクリックし、「ODBC Data Source Administrator」ダイアログ・ボックスを開く。 3. 「ODBC Data Source Administrator」ダイアログ・ボックスで、 「System DSN」タブをクリックする。 4. 「追加」をクリックして、 「データ・ソースの新規作成」ダイアログ・ボッ クスが開く。 5. ODBC Administrator の「データ・ソースの新規作成」ダイアログ・ボックス で、 IBM DB2 ODBC Driver などの適切なドライバーを選択し、 「完了」をク リックして、 「ODBC IBM DB2 ドライバー - 追加」 ダイアログ・ボックスを 開く。 6. 「データベース別名」ドロップダウン・リストの、 「ODBC IBM DB2 ドライバ ー - 追加」 ダイアログ・ボックスで、 適切な OLAP メタデータ・カタログ の データベースの名前 (たとえば、サンプル・アプリケーションの TBC_MD) を選択する。選択したデータベースの 名前は、「データ・ソース名」テキス ト・ボックスに 自動的に表示されます。 7. データ・ソースの名前を変更したいときには、 「データ・ソース名」テキス ト・ボックスに 表示されている名前を選択して、このドライバーの使用方法 を示す名前を入力し、 「追加」をクリックする。たとえば、次のような名前 を 入力すれば、最初の OLAP メタデータ・カタログに接続するためにそのド ライバーを 使用していることを示せるでしょう: 最初の OLAP カタログ サンプル・アプリケーション OLAP メタデータ・カタログの データベースに 接続していることを示すには、次の名前を入力すればよいでしょう: TBC_MD 8. 「説明」テキスト・ボックスで、 このドライバーの使用方法を示す説明を入 力する。たとえば、OLAP メタデータ・カタログを説明するには、 次のような 記述を入力します: 最初のモデルとメタアウトライン 次のような説明を入力すれば、サンプル・アプリケーション OLAP メタデー タ・カタログ・データベースを 記述できるでしょう: サンプルのモデルとメタアウトライン 上記のような説明は、OLAP スターター・キット・デスクトップから OLAP メ タデータ・カタログに接続するときに選択する対象のカタログを特定する ヒ ントとなります。 9. 「了解」をクリックし、「ODBC Data Source Administrator」ダイアログ・ボ ックスに 戻る。入力したデータ・ソース名およびデータ・ソース名にマップ したドライバーが 「System DSN」タブの 「システム・データ・ソース」リス ト・ボックスに 表示されます。 データ・ソースの構成情報を編集するには、以下の通りにします。 1. データ・ソース名を選択し、「構成」をクリックして、 「ODBC IBM DB2 - 追 加」ダイアログ・ボックスを開く。 2. 変更したい情報を訂正する。 3. 「了解」を 2 回クリックし、終了する。 25.4.5 データ・ソースを構成したら リレーショナル・データ・ソースおよび OLAP メタデータ・カタログの構成が完了 すると、 OLAP スターター・キットから接続することができます。次に、OLAP モデ ルおよび メタアウトラインの作成、変更、および保存を行うことができます。 SQL サーバー ODBC ドライバーは、SQL サーバー・データベースを呼び出す間に タ イムアウトになる可能性があります。データベースが使用中でないときに 再試行し てください。ドライバー・タイムアウト期間を長くすれば、この問題を回避できる 場合があります。詳しくは、ご使用のドライバーの ODBC 文書を参照してくださ い。 ODBC 接続の問題およびソリューションの詳細については、 「OLAP Integration Server System Administrator's Guide」 を参照してください。 ------------------------------------------------------------------------ 25.5 OLAP スターター・キット・デスクトップからのログイン OLAP Starter Kit Desktop を使用して OLAP モデルおよびメタアウトラインを 作 成するには、DB2 OLAP Integration Server および DB2 OLAP Server という 2 つ のサーバー・コンポーネントにクライアント・ソフトウェアを接続する 必要があり ます。ログイン・ダイアログで、 これらの 2 つのサーバーに接続するために Desktop で必要な情報のプロンプトが出されます。 ダイアログの左方で、DB2 OLAP Integration Server に関する情報を入力します。 右方で、DB2 OLAP Server に関 する情報を入力します。 DB2 OLAP Integration Server に接続するには: * サーバー: Integration Server のホスト名または IP アドレスを入力しま す。 Integration Server を Desktop と同じワークステーション上にインス トールしている場合、 値は通常、"localhost" または "127.0.0.1" です。 * OLAP メタデータ・カタログ: OLAP Integration Server に接続する場合、 メ タデータ・カタログも指定する必要があります。OLAP Integration Server は、 リレーショナル・データベースで作成した OLAP モデルとメタアウトラ インに関する情報を メタデータ・カタログとして保管します。このリレーシ ョナル・データベースを ODBC に登録する必要があります。カタログ・データ ベースには、OLAP Integration Server が 認識するリレーショナル表の特定 のセットが含まれます。ログイン・ダイアログで Integration Server を指定 し、「OLAP メタデータ・カタログ」フィールドのプルダウンを 展開して、 OLAP Integration Server として知られる ODBC データ・ソース名のリストを 参照することができます。 メタデータ・カタログ表を含む ODBC データベー スを選択してください。 * ユーザー名およびパスワード: OLAP Integration Server は、このパネルで指 定する ユーザー名とパスワードを使用して、メタデータ・カタログに接続し ます。 これは、サーバー上 (同じマシンでサーバーとクライアントが実行さ れているのでなければ クライアント上ではない) に存在するログイン・アカ ウントです。 ユーザー名は OLAP メタデータ・カタログを作成したユーザー でなければなりません。 作成ユーザーでなければ、表スキーマ名が異なるた め、OLAP Integration Server は カタログ内でリレーショナル表を検索する ことができません。 DB2 OLAP Server 情報はオプションであるため、ログイン・ダイアログの 右方の入 力フィールドはブランクのままにできます。ただし、 Desktop および Administration Manager で、DB2 OLAP Server に接続するために いくつかの操作 が必要となります。これらのフィールドをブランクのままにすると、 要求した操作 を完了するために Integration Server が DB2 OLAP Server に 接続する必要があ る場合、Desktop はログイン・ダイアログを再び表示します。 ログイン・ダイアロ グの DB2 OLAP Server フィールドを常に埋めることをお勧めします。 DB2 OLAP Server に接続するには: * サーバー: DB2 OLAP Server のホスト名または IP アドレスを入力します。 OLAP スターター・キットを実行中の場合は、OLAP Server と Integration Server は 同じです。Integration Server と OLAP Server が別々のホストに インストール されている場合は、OLAP Integration Server で定義されてい るホスト名と IP アドレスを 入力してください。 * ユーザー名およびパスワード: OLAP Integration Server は、このパネルで指 定する ユーザー名とパスワードを使用して、DB2 OLAP Server に接続しま す。 このユーザー名とパスワードは、DB2 OLAP Server に対して定義済みの ものでなければなりません。 OLAP Server は、このユーザー名とパスワード をホスト・オペレーティング・システムとは 別に管理します。 25.5.1 スターター・キットのログインの例 以下の例は、OLAP サンプルを作成済みで、OLAP スターター・キットのインストー ル中に 管理者ユーザー ID として db2admin を、 管理者パスワードとして password を選択したと想定しています。 * OLAP Integration Server の場合: サーバーは localhost 、 OLAP メタデー タ・カタログは TBC_MD 、ユーザー名は db2admin、パスワードは password です * DB2 OLAP Server の場合: サーバーは localhost 、 ユーザー名は db2admin です ------------------------------------------------------------------------ 25.6 OLAP スターター・キットのサンプル・データベースを手動で作成および構成 する サンプル・データベースは OLAP スターター・キットをインストールするときに 自 動的に作成されます。以下の説明は、必要な場合に、カタログおよびサンプル・デ ータベースの セットアップを手動で行う方法を示します。 1. Windows 上で、「スタート --> プログラム --> DB2 (Windows NT 版) --> コ マンド・ウィンドウ」を開きます。 2. 実動カタログ・データベースを作成します: a. 次のように入力: db2 create db OLAP_CAT b. 次のように入力: db2 connect to OLAP_CAT 3. データベースに表を作成します: a. \SQLLIB\IS\ocscript\ocdb2.sql に移動します b. 次のように入力: db2 -tf ocdb2.sql 4. サンプル・ソース・データベースを作成します: a. 次のように入力: db2 connect reset b. 次のように入力: db2 create db TBC c. 次のように入力: db2 connect to TBC 5. データベースに表を作成します: a. \SQLLIB\IS\samples\ に移動します b. tbcdb2.sql を \SQLLIB\samples\db2sampl\tbc にコピーします c. lddb2.sql を \SQLLIB\samples\db2sampl\tbc にコピーします d. \SQLLIB\samples\db2sampl\tbc に移動します e. 次のように入力: db2 -tf tbcdb2.sql f. db2 - vf lddb2.sql と入力して、 サンプル・ソース・データを表にロ ードします。 6. サンプル・カタログ・データベースを作成します: a. 次のように入力: db2 connect reset b. 次のように入力: db2 create db TBC_MD c. 次のように入力: db2 connect to TBC_MD 7. データベースに表を作成します: a. \SQLLIB\IS\samples\tbc_md に移動します b. ocdb2.sql を \SQLLIB\samples\db2sampl\tbcmd にコピーします c. lcdb2.sql を \SQLLIB\samples\db2sampl\tbcmd にコピーします d. \SQLLIB\samples\db2sampl\tbcmd に移動します e. 次のように入力: db2 -tf ocdb2.sql f. db2 -vf lcdb2.sql と入力して、 サンプル・メタデータを表にロードし ます。 8. ODBC を TBC_MD、TBC、および OLAP_CAT 用に構成します: a. 「スタート --> 設定 --> コントロール パネル」をクリックして NT コ ントロール パネルを開きます b. リストから ODBC (または ODBC データ・ソース) を選択します。 c. 「システム DSM」タブを選択します。 d. 「追加」をクリックします。「データ・ソースの新規作成」ウィンドウ が開きます。 e. リストから「IBM DB2 ODBC DRIVER」を選択します。 f. 「完了」をクリックします。「ODBC IBM DB2 ドライバー - 追加」 ウィ ンドウが開きます。 g. データ・ソースの名前 (OLAP_CAT) を「データ・ソース名」フィールド に入力します。 h. 別名を「データベース別名」フィールドに入力するか、 あるいは下矢印 をクリックして、リストから「OLAP_CAT」を選択してください。 i. 「了解」をクリックします。 j. これらのステップを TBC_MD および TBC データベースに対して繰り返し てください。 ------------------------------------------------------------------------ 25.7 アプリケーションを OLAP スターター・キット・バージョン 7.2 に移行 インストール・プログラムは、OLAP スターター・キットのサンプル・アプリケーシ ョン、 データベース、およびデータ・ファイルを再インストールしません。既存の アプリケーションや データベースは何の影響も受けません。ただし、インストール を行う前に、アプリケーションや データベースのバックアップを忘れずに行ってく ださい。 アプリケーションを開くと、アプリケーションは自動的に バージョン 7.2 に 移行 されます。 ------------------------------------------------------------------------ 25.8 既知の問題および制限事項 このセクションでは、DB2 OLAP スターター・キットでの既知の制限事項を リスト します。 Windows プラットフォームでの Informix RDBMS と Merant ドライバーの互換性 Windows プラットフォーム用の Merant ドライバーを Informix RDBMS で動作 させるには、 以下の 2 行を PATH ステートメントに追加する必要がありま す。 o C:\Informix o C:\Informix\bin これらの 2 行とも、PATH の先頭に入力してください。 OLAP モデルと、関連するメタアウトラインのディメンションに矛盾が生じる ある条件のもとでは、OLAP モデルで対応するディメンションがないメタアウ トラインに、 ディメンションを作成することができます。このディメンショ ンの矛盾は以下のシナリオで起こりえます。 1. 新しい OLAP モデルを作成し、それを保存する。 2. このモデルをベースにメタアウトラインを作成し、そのメタアウトライ ンを保存しない。 3. OLAP モデルに戻り、上記のメタアウトラインのディメンションのうちの 1 つのベースとなっている ディメンションを削除する。 4. メタアウトラインに戻り、それを保存し、クローズしてから、再オープ ンする。メタアウトラインには、 OLAP モデルでは対応するディメンシ ョンが存在しないディメンションが含まれます。 OLAP スターター・キットは、このような方法で作成されたディメンション と、 メタアウトラインのユーザー定義のディメンションとの矛盾を見分ける ことができません。したがって、 矛盾するディメンションがメタアウトライ ンに表示されますが、OLAP モデルには対応する ディメンションが存在しない ため、メタアウトラインはそれをユーザー定義のディメンションと 見なしま す。 Windows 2000 プラットフォームで TMP 環境変数が原因で、メンバーおよび データ のロードが失敗する Windows 2000 と Windows NT の間では、TMP のデフォルト・システムおよび ユーザー環境設定値が異なります。そのため、OLAP スターター・キットが Windows 2000 プラットフォームで実行しているとき、メンバーおよびデータ のロードが 失敗します。その結果として、一時ファイルが作成できなかった ことを示す エラー・メッセージが表示されます。以下のステップを実行する と、Windows 2000 での この制限を回避することができます。 1. ディレクトリー C:\TEMP を作成する 2. システムおよびユーザーの環境変数 TMP を TMP=C:\TEMP に設定する ODBC をインストールしても、既存の Merant ドライバーが置き換えられない ODBC をインストールしても、既存の 3.6 Merant ODBC ドライバーは 更新さ れません。OLAP スターター・キット・バージョン 7.1、フィックスパック 2 以前のバージョンから アップグレードする場合には、以前にインストールし た ODBC ドライバーを継続して使用してください。 UNIX プラットフォームで Merant Informix ODBC ドライブを使用する UNIX プラットフォームで Merant Informix ODBC ドライバーを使用するに は、 以下のいずれかを実行する必要があります。 o スターター・キットを起動する前に、LANG 環境変数を "en_US" に 設定 する。たとえば、Korn シェルの場合、次のように入力します。 export LANG='en_US' OLAP スターター・キットを起動するたびに、この変数を設定します。 o LANG 環境変数がすでに別の値に設定されている場合は、インストール後 に 次の記号リンクを作成する: ln -s $ISHOME/locale/en_US $ISHOME/locale/$LANG 異なるサービス・レベルの OLAP クライアントとサーバーを混合して使用する IBM は、OLAP スターター・キットのクライアントおよびサーバー・コンポー ネントをともに、 同一バージョンおよび同一フィックスパック・レベルにし ておくことをお勧めします。ただし、 ある状況下では、異なるサービス・レ ベルのクライアントとサーバー・コンポーネントを 混合することができま す。 あるバージョンでクライアントとサーバーを異なるサービス・レベルで使用す る より新しいクライアントと、より古いサーバーを組み合わせて使用する 場合、 IBM はこれについてサポートはいたしませんので、そのように使 用しないことをお勧めします。 ただし、より古いクライアントと、より 新しいサーバーを組み合わせて使用できることは あります。ただしこの 場合も、IBM はサポートしません。この場合は、問題が発生する可能性 があります。 例: + サーバーからのメッセージが誤っている。クライアント側の message.MDB ファイルを アップグレードしてサーバー側のレベル に一致させることによって、この問題を 回避することができま す。 + 新しいサーバー機能が機能しない。新しい機能を使用しようと試み ると、 クライアント側、サーバー側、または両方の側で失敗す る。 + クライアントがサーバーに正しく接続されていない可能性がある。 あるバージョンで、単一のクライアントで複数のサーバーを使用する 単一のクライアントを異なるマシンまたはオペレーティング・システム にある いくつかの OLAP サーバーに接続する必要がある場合、それらを すべて同一のバージョン およびサービス・レベルにすることを IBM は お勧めします。クライアントは、少なくとも、 最低レベルのサーバーと 同じレベルにしてください。問題が発生する場合には、 適切なホストに 適応させるために異なるクライアント・マシンを使用したり、 すべての クライアントおよびサーバーを同じサービス・レベルにアップグレード しなければならない場合があります。 異なるバージョンのクライアントとサーバーを混合して使用する バージョン 7.1 の OLAP スターター・キット・クライアントおよびサー バーと バージョン 7.2 のクライアントおよびサーバーを混合して使用 する場合、IBM は サポートしません。IBM OLAP 製品が新しいバージョ ン・レベルにアップグレードされるとき、 ネットワークの更新やデー タ・フォーマットの変更を伴うことがよくあり、その場合には、 クライ アントとサーバーもそれと同一のレベルにすることが必要となります。 IBM 製品 (DB2 OLAP スターター・キット) と Hyperion 製品 (Hyperion Essbase と Hyperion Integration Server) を混合して使用する IBM の OLAP クライアントおよびサーバーと Hyperion Solutions の OLAP クライアント およびサーバーを混合して使用する場合、IBM はサ ポートしません。一部の環境では上記のコンポーネントを混合して 使用 しても動作しますが、機構的に違いがあるために問題が発生する可能性 があります。 ------------------------------------------------------------------------ 25.9 OLAP スプレッドシート・アドイン EQD ファイルの欠落 DB2 OLAP スターター・キットでは、スプレッドシート・アドインは Query Designer (EQD) と呼ばれる構成要素を持っています。 チュートリアル と呼ばれる ボタンを含む EQD のオンライン・ヘルプ・メニューは どれも表示しません。 EQD チュートリアルで表示される資料は 「OLAP スプレッドシート・アドイン使用者の 手引き (Excel 版) 」、および「OLAP スプレッドシート・アドイン使用者の手引き (1-2-3 版) 」の第 2 章のサブセットです。EQD チュートリアルのすべての情報は インフォメーション・センターの ブックの HTML バージョン および PDF バージョ ンで使用可能です。 ------------------------------------------------------------------------ 情報カタログ・マネージャー管理の手引き ------------------------------------------------------------------------ 26.1 情報カタログ・マネージャー初期設定ユーティリティー 26.1.1 情報カタログ・マネージャー (ICM) の初期化ユーティリティーでは、 以下のコマ ンドを使用して、CREATE TABLE ステートメントの終わりに SQL ステートメントを 付加できるようになりました。 CREATEIC \DBTYPE dbtype \DGNAME dgname \USERID userid \PASSWORD password \KA1 userid \TABOPT "directory:\tabopt.file" DB2 がインストールされているディレクトリーからは、 CREATEIC ユーティリティ ーで TABOPT キーワードを指定できます。 TABOPT キーワードの次の値は、全パス を含むファイル名 tabopt.file です。 ディレクトリー名にブランクが含まれてい る場合は、その名前を引用符で囲んでください。 tabopt.file ファイルの内容に は、 CREATE TABLE ステートメントに付加する情報が含まれていなければなりませ ん。 この tabopt.file ファイルへの書き込むを行うには、 下記の SQL ステート メントを使用してください。 ICM ユーティリティーはこのファイルを読み込み、 次にそれを CREATE TABLE ステートメントに付加します。 表 20. SQL ステートメント IN MYTABLESPACE MYTABLESPACE のデータを持つを表を作成します DATA CAPTURE CHANGES 表を作成して、SQL の変更を拡張形式でログに記 録します IN ACCOUNTING INDEX IN ACCOUNTING 内のデータおよび ACCOUNT_IDX 内の ACCOUNT_IDX 索引を持つ表を作成します コンテンツ・ファイルの最大サイズは 1 バイト文字にして 1000 文字です。 この新しい機能は Windows および UNIX システムでのみ使用可能です。 26.1.2 ライセンス交付の問題 以下のメッセージを受け取った場合: FLG0083E: IBM 情報カタログ・マネージャーに対して有効なライセンスを持っていません。 初期設定ユーティリティー。ソフトウェア販売店あるいは IBM に連絡してください。 営業担当員。 DB2 ウェアハウス・マネージャーあるいは IBM DB2 OLAP Server を 購入して、情 報カタログ・マネージャー構成要素をインストールする必要があります。 それは情 報カタログ・マネージャー初期設定ユーティリティーを含んでいます。 26.1.3 インストールの問題 DB2 ウェアハウス・マネージャーあるいは IBM DB2 OLAP Server をインストールす る場合、 また同じワークステーションに別の情報カタログ・マネージャー管理者構 成要素 (DB2 ユニバーサル・データベース CD-ROM を使用) をインストールする場 合は、情報カタログ初期設定 ユーティリティーを上書きする必要があります。 こ の場合、 \sqllib\bin ディレクトリーから、ファイル createic.bak および flgnmwcr.bak を検出し、createic.exe および flgnmwcr.exe をおのおのリネーム します。 DB2 ユニバーサル・データベースから追加情報カタログ・マネージャー構成要素を インストール する場合、その構成要素はデータウェアハウス・マネージャーをイン ストールしたワークステーションとは別のワークステーション である必要がありま す。詳しくは、「DB2 ウェアハウス・マネージャー・インストールの手引き」の 第 3 章、情報カタログ・マネージャー・コンポーネントのインストールを参照してく ださい。 ------------------------------------------------------------------------ 26.2 DB2 バージョン 7 情報カタログ・マネージャーによる DB2 バージョン 5 情 報カタログへのアクセス DB2 バージョン 7 情報カタログ・マネージャー副構成要素 (DB2 バージョン 7 イ ンストール・プロセスに よって構成) は DB2 バージョン 6 および DB2 バージョ ン 7 データベースに格納された情報カタログへの アクセスをサポートしていま す。 副構成要素の構成を修正して、DB2 バージョン 5 データベースに保管されて いる情報カタログにアクセスできます。 DB2 バージョン 7 情報カタログ・マネー ジャーの 副構成要素は、DB2 バージョン 2 またはそれ以前のバージョンからのデ ータへの アクセスをサポートしません。 情報カタログ管理者、情報カタログ・ユーザー、および DB2 バージョン 5 データ ベースに 格納されている情報カタログにアクセスするための情報カタログ初期化ユ ーティリティーを セットアップするには: 1. DB2 コネクト エンタープライズ・エディション バージョン 6 を、 DB2 バー ジョン 7 情報カタログ・マネージャーがインストールされているワークステ ーション以外の ワークステーションにインストールします。 DB2 コネクト エンタープライズ・エディションは、DB2 ユニバーサル・デー タベース・エンタープライズ・エディション および DB2 ユニバーサル・デー タベース・エンタープライズ - 拡張エディションの一部として組み込まれて います。 これらの DB2 製品のいずれかのバージョン 6 がインストールされ ていれば、 別に DB2 コネクトをインストールする必要はありません。 制約事項: 同じ Windows NT または OS/2 ワークステーションに、DB2 の複数バー ジョンを インストールすることはできません。DB2 コネクトを別の Windows NT ワークステーション、 OS/2 または UNIX ワークステーショ ンにインストールすることは可能です。 2. DB2 バージョン 5 のデータにアクセスするため、情報カタログ・マネージャ ー、 および DB2 コネクト バージョン 6 を構成します。詳しくは、「DB2 コ ネクト 使用者の手引き 」を参照してください。以下のステップは必要なステ ップの概説です。 a. DB2 バージョン 5 システムで、DB2 コマンド行プロセッサーを使用し て、 情報カタログ・マネージャーがアクセスするバージョン 5 データ ベースをカタログします。 b. DB2 コネクト・システムで、DB2 コマンド行プロセッサーを使用して、 以下をカタログします。 + DB2 バージョン 5 システムの TCP/IP ノード + DB2 バージョン 5 システムのデータベース + DB2 バージョン 5 システムの DCS 項目 c. 情報カタログ・マネージャーを持つワークステーションで、DB2 コマン ド行プロセッサーを使用して、 以下をカタログします。 + DB2 コネクト・システムの TCP/IP ノード + DB2 コネクト・システムのデータベース データベースのカタログに関する詳細は、「DB2 ユニバーサル・データベース インストールおよび構成補足 」を参照してください。 3. 情報カタログ・マネージャーを持つウェアハウスで、DB2 CLI パッケージを DB2 コネクトを介してアクセスされる各データベースにバインドします。 以下の DB2 コマンドは v5database、仮想の DB2 バージョン 5 データベース の例を示します。 DB2 コマンド行プロセッサーを使用して、以下のコマンド を実行します。 db2cli.lst および db2ajgrt は \sqllib\bnd ディレクトリ ーにあります。 db2 connect to v5database user userid using password db2 bind db2ajgrt.bnd db2 bind @db2cli.lst blocking all grant public ここで、userid は v5database のユーザー ID で、password はそのユーザー ID のパスワードです。 db2cli.list が DB2 バージョン 5 データベースにバインドされた時、エラー が起こります。このエラーは、ラージ・オブジェクト (LOB) がこの構成では サポートされていないために起こります。このエラーは、DB2 バージョン 5 データベースへのウェアハウス・エージェントのアクセスには影響しません。 DB2 ユニバーサル・ データベース バージョン 5 のフィックスパック 14 (2000 年 6 月、使用可能) は、 DB2 コネクトを介して DB2 バージョン 5 デ ータにアクセスする場合には必要です。 そのフィックスパックの APAR 番号 JR14507 を参照してください。 ------------------------------------------------------------------------ 26.3 情報カタログのセットアップ 第 1 章の最初のセクションにあるステップ 2 「情報カタログの設定」には次の記 述があります。 DB2 ウェアハウス・マネージャーか DB2 OLAP Server をインストール する場合、デフォルトの情報カタログがユニバーサル・データベース (Windows NT 版) に作成されます。 この記述は誤りです。 新規情報カタログを定義する必要があります。 詳しくは、 「情報カタログの作成」セクションを参照してください。 ------------------------------------------------------------------------ 26.4 別の製品とのメタデータの交換 第 6 章「別の製品とのメタデータ交換」の 「発行する OLAP オブジェクトの識 別」セクションの 2 番目の段落に、次の記述があります。 DB2 OLAP Integration Server メタデータを発行する場合、リンクされる関係は情報カタログ 「複数ディメンション・データベースのディメンション」オブジェクト・タイプと OLAP Integration Server 表オブジェクトの間で作成されます。 記述: DB2 OLAP Integration Server メタデータを発行する場合、リンクされる関係は情報カタログ 「複数ディメンション・データベース・オブジェクトと表オブジェクト」の間で作成されます。 この記述は、 付録 C 「メタデータ・マッピング」の「情報カタログ・マネージャ ーおよび OLAP Server 間のメタデータ・マッピング」 セクションにもあります。 ------------------------------------------------------------------------ 26.5 flgnxoln コマンドでのメタデータの交換 第 6 章「メタデータ交換」に 「発行する OLAP オブジェクトの識別」というセク ションがあります。 このセクションの終わりに、flgnxoln コマンドを使用して OLAP Server メタデータを情報カタログに 発行する例があります。 誤った例え は、 db2olap.ctl および db2olap.ff ファイル用ディレクトリーを x:\Program Files\sqllib\logging として表示することです。 ディレクトリー名は x:\Program Files\sqllib\exchange です。ページ 87 で述べ られています。 ------------------------------------------------------------------------ 26.6 MDISDGC コマンドでのメタデータの交換 第 6 章 他の製品でメタデータの交換: 「タグ言語ファイルで MDIS 規格合致メタ データの変換」、ページ 97。 MS-DOS コマンド・プロンプトから MDISDGC コマン ドを実行できません。 DB2 コマンド・ウィンドウから MDISDGC コマンドを実行す る必要があります。セクションの 最初の文、「MDIS 規格合致メタデータのタグ言 語ファイルの変換」も同様に MS-DOS コマンド・プロンプトから DGMDISC コマンド を実行する必要があると書かれています。 DB2 コマンド・ウィンドウから DGMDISC コマンドを実行する必要があります。 ------------------------------------------------------------------------ 26.7 プログラムの呼び出し 「情報カタログ 管理の手引き」の例には、 ディレクトリー名 Program Files が含 まれるコマンドを示すものがあります。 パス名の一部として、Program Files が含 まれるプログラムを呼び出す時、 プログラム呼び出しを二重引用符で囲む必要があ ります。 付録 B 「事前定義の情報カタログ・マネージャーのオブジェクト・タイ プ」の、 「事前定義のオブジェクト・タイプで情報カタログを初期化する」 セク ションに、この例が含まれています。このセクションの例を使用すると、 DOS プロ ンプトからこれを実行する場合に、次のエラーを 受け取ります。次の例が正しいで す。 "X:Program Files\SQLLIB\SAMPLES\SAMPDATA\DGWDEMO" /T userid password dgname ------------------------------------------------------------------------ 情報カタログ・マネージャー・プログラミングの手引きおよび解説書 ------------------------------------------------------------------------ 27.1 情報カタログ・マネージャー理由コード 付録 D: 情報カタログ・マネージャー理由コードについて、 いくつかのテキストが 以下の理由コードで右方に離れた列が切り捨てられる可能性があります: 31014, 32727, 32728, 32729, 32730, 32735, 32736, 32737, 33000, 37507, 37511, 39206. テキストが切り捨てられた場合、完全な列を表示するブックの HTML バージ ョンを 参照してください。 ------------------------------------------------------------------------ 情報カタログ・マネージャー 使用者の手引き 第 2 章には、「サーバー・ノードおよびリモート情報カタログの 」というセクシ ョンがあります。 このセクションは、情報カタログ・マネージャーを使用して、リ モート情報カタログを 登録する前に、DB2 コントロール・センターから完了するこ とができる ステップをリストしています。セクションの最後の段落では、DB2 コン トロール・センターからの ステップが (システムの追加、インスタンスの追加、お よびデータベースの追加) が完了した 後で、情報カタログ・マネージャーを開く前 に、コントロール・センターを シャットダウンする必要があるとなっています。こ れは誤りです。 情報カタログ・マネージャー を開く前に、コントロール・センタ ーをシャットダウンする必要はありません。 同じ訂正が、オンライン・ヘルプのタスク「サーバー・ノードおよび リモート情報 カタログの登録」と、「サーバー・ノードおよび情報カタログ」ウィンドウの オン ライン・ヘルプにも該当します。 ------------------------------------------------------------------------ 情報カタログ・マネージャー: オンライン・メッセージ ------------------------------------------------------------------------ 29.1 メッセージ FLG0260E メッセージ説明の 2 番目の文: そのエラーは情報カタログのロールバックが原因で失敗しました。 その情報カタログは安定した状況ではありません。作成される変更はありません。 ------------------------------------------------------------------------ 29.2 メッセージ FLG0051E メッセージ説明の 2 番目の中黒: 情報カタログにオブジェクトあるいはオブジェクト・タイプが多すぎます。 管理者応答: 現行の情報カタログからインポート・ファンクションを使用して いくつかのオブジェクトあるいはオブジェクト・タイプを削除してください。 ------------------------------------------------------------------------ 29.3 メッセージ FLG0003E メッセージ説明: 情報カタログを使用する前に登録してください。 情報カタログが正しく登録されていません。 ------------------------------------------------------------------------ 29.4 メッセージ FLG0372E メッセージ説明の最初の文: オブジェクトは接続オブジェクトなので、 ATTACHMENT-IND 値はオブジェクトに対して無視されました。 ------------------------------------------------------------------------ 29.5 メッセージ FLG0615E メッセージの 2 番目の文は次のように訂正してください。 情報カタログ・マネージャーが予期しないデータベース・エラーを 検出したか、現行ディレクトリーまたはパスで、バインド・ファイル を見つけることができません。 ------------------------------------------------------------------------ 情報カタログ・マネージャー: オンライン・ヘルプ 情報カタログ・ウィンドウ: 誤った選択メニュー・オープン・アイテムのオンライ ン・ヘルプは「選択済みオブジェクトのオープン」となっています。 それは「定義 検索ウィンドウのオープン」となります。 ------------------------------------------------------------------------ 30.1 Web 用情報カタログ・マネージャー DB2 UDB (OS/390 版) システムの情報カタログを使用する場合、大文字小文字を区 別しない検索は 利用できません。 これは単純検索および拡張機能検索のどちらに も当てはまります。 DB2 UDB (OS/390 版) 情報カタログですべての説明ができない オンライン・ヘルプは、 単純検索で大文字小文字を区別します。 さらに、たとえ 基礎オブジェクトがない場合でも、 すべてのグループ区分されているオブジェクト は拡張可能です。 ------------------------------------------------------------------------ DB2 ウェアハウス・マネージャー インストールの手引き ------------------------------------------------------------------------ 31.1 ウェアハウス・トランスフォーマーのソフトウェア要件 Java 開発者キット (JDK) バージョン 1.1.8 またはそれ以降を、 ウェアハウス・ トランスフォーマーを使用したいデータベースにインストールする必要がありま す。 ------------------------------------------------------------------------ 31.2 SAP R/3 用コネクター SAP R/3 ビジネス・オブジェクトのフィールドから DB2 表に列をマッピングする と、 生成された列名が 30 文字を超える場合があります。 この場合、生成された 列名には、SAP フィールド名の最初の 30 文字のみが反映されます。 生成された名 前が希望する名前と異なる場合、表の「プロパティー」ノートブックを 使用して変 更することができます。 31.2.1 インストール前提条件 RFC_INI 環境変数を設定します。 たとえば、RFC_INI=c:\rfcapl.ini に設定しま す。 この変数を設定した後、マシンをリブートしなければなりません。 ------------------------------------------------------------------------ 31.3 Web 用コネクター Web 用コネクターを実行中に問題があった場合、コネクターのトレースを送るよう IBM サービスが要求することがあります。 Web 用コネクターのトレースを可能にするには、 ウェアハウス・センター・エージ ェント・トレースを 0 よりも大きいレベルに設定します。 トレース・ファイルの 名前は WSApid.log (pid は エージェントの Windows プロセス ID) です。 トレー ス・ファイルは \sqllib\logging ディレクトリーに作成されます。 31.3.1 インストール前提条件 Java ランタイム環境 (JRE) または Java 仮想計算機 (JVM) バージョン 1.2.2 ま たはそれ以降を インストールし、デフォルトにします。 この JRE のバージョンを デフォルトにするには、1.2.2 JRE パスを システム PATH 変数に追加します (たと えば、C:\JDKs\IBM\java12\bin;)。 デフォルト JRE を変更した後、マシンをリブ ートしなければなりません。 Java をインストールしていない場合、データウェア ハウス・コネクター・インストール CD から インストールできます。 ------------------------------------------------------------------------ 照会パトローラー管理の手引き ------------------------------------------------------------------------ 32.1 DB2 照会パトローラー・クライアントの分離構成要素 DB2 照会パトローラー・クライアントは、DB2 管理クライアントの部品では ない分 離構成要素です。 これは、「照会パトローラー・インストールの手引き」に指示さ れているように、 DB2 管理クライアントのインストール中にはインストールされな いことを意味します。 その代わり、照会パトローラー・クライアントを別々にイン ストールする必要があります。 照会パトローラー・クライアントと照会パトローラー・サーバーの バージョンおよ びレベルは同じでなければなりません。 ------------------------------------------------------------------------ 32.2 dqpmigrate を使用した DB2 照会パトローラーのバージョン 6 からの移行 dqpmigrate コマンドは、バージョン 7 照会パトローラー・サーバーが バージョン 6 照会パトローラー・サーバーの上にインストールされた場合に 使用する必要があ ります。フィックスパック 2 以降については、フィックスパックのインストールが このコマンドを実行するときに dqpmigrate を手操作で実行する必要はありませ ん。 このコマンドを使用しないと、v6 で定義された既存のユーザーは、バージョ ン 7 で 追加されたいくつかの新しいストアード・プロシージャーに対して EXECUTE 権限を 持ちません。 注: dqpmigrate.bnd は sqllib/bnd ディレクトリーに あり、dqpmigrate.exe は sqllib/bin ディレクトリーにあります。 dqpmigrate を手操作で使用し、EXECUTE 権限を付与するには、 フィックスパック の実行後に以下を実行してください。 1. 次のコマンドを入力して、/sqllib/bnd/dqpmigrate.bnd パッケージ・ファイ ルを、 照会パトローラー・サーバーがインストールされているデータベース にバインドします。 db2 bind dqpmigrate.bnd 2. 次を入力して、dqpmigrate を実行します。 dqpmigrate dbalias userid passwd ------------------------------------------------------------------------ 32.3 照会管理の使用可能化 「照会管理の使用可能化」の「概説およびインストール」の章では、テキストは以 下の通りです: データベース構成パラメーターを設定するためにデータベースの所有者になるか、 あるいは SYSADM、SYSCTRL または SYSMAINT 権限を持つ必要があります。 ------------------------------------------------------------------------ 32.4 制御表の表スペースのロケーション 第 1 章「システム概説」の「DB2 照会パトローラー制御表」で、 次のテキストを セクションの最初の段落の終わりに追加してください。 DB2 照会パトローラー制御表の表スペースが単一ノードのノード・グループに なけ れば、DB2 照会パトローラーは正常に機能しません。 ------------------------------------------------------------------------ 32.5 dqpstart コマンドの新しいパラメーター 第 2 章「概説およびインストール」の「DB2 照会パトローラーの開始および停止」 で、 最後の段落の後に次のテキストを追加してください。 dqpstart コマンドの新しいパラメーターは、以下の通りです。 RESTART パラメーター: dqpnodes.cfg ファイルにある指定のノードの ホスト名またはノード・タイ プ、あるいはその両方の置換をユーザーに許可します。 DB2 照会パトローラ ーはこのノードで開始されます。 注: DQPSTART コマンドを RESTART パラメーターを指定して実行する前に、 以下の項目を確認してください。 1. DB2 照会パトローラーが、置換されるホストですでに停止されてい る。 2. DB2 照会パトローラーが新しいホストでまだ実行されていない。 構文は次の通りです。 dqpstart nodenum node_num restart hostname server | agent | none ADDNODE パラメーター: dqpnodes.cfg ファイルへの新しいノードの追加をユーザーに許可します。 新 しいノード項目が dqpnodes.cfg ファイルに追加された後、このノードで DB2 照会パトローラーが開始されます。 構文は次の通りです。 dqpstart nodenum node_num addnode hostname server | agent | none DROPNODE パラメーター: dqnodes.cfg ファイルからのノードの削除をユーザーに許可します。 ノード 項目が dqpnodes.cfg ファイルから削除される前に、このノードで DB2 照会 パトローラーが停止されます。 構文は次の通りです。 dqpstop nodenum node_num dropnode ------------------------------------------------------------------------ 32.6 iwm_cmd コマンドの新しいパラメーター 新しい -v パラメーターが iwm_cmd コマンドに追加され、 指定のノードで実行さ れていたジョブの状況をリカバリできるようになりました。 非アクティブ・ノード のジョブのみリカバリ可能です。 このコマンドは、ノード障害があり、そのノード でジョブが実行されているか、 またはその時点で取り消し中のジョブがあるときに 実行してください。 「実行」状態だったジョブは再実行依頼され、「キュー」状態 に戻ります。 「取り消し中」状態だったジョブは「取り消し済み」状態に設定され ます。 構文の一部は次の通りです。 >>-iwm_cmd----+---------------------------------+---------------> '--u--user_id--+---------------+--' '--p--password--' >-----v--node_id_to_recover------------------------------------>< node_id_to_recover ジョブがリカバリされるノードを指定します。 ------------------------------------------------------------------------ 32.7 新しいレジストリー変数: DQP_RECOVERY_INTERVAL iwm_scheduler がリカバリ・ファイルを検索する間隔を分単位で設定するために使 用される、 DQP_RECOVERY_INTERVAL という新しいレジストリー変数があります。 デフォルトは 60 分です。 ------------------------------------------------------------------------ 32.8 Query Administrator の開始 「DB2 照会パトローラーを管理する QueryAdministrator の使用」章では、 Windows のスタート・メニューから QueryAdministrator の開始の手順を 提供して います。最初のステップは以下のテキストを提供します: Windows を使用している場合、IBM DB2 プログラム・グループから DB2 照会パトローラー --> QueryAdministrator を選択できます。 テキストは以下の通りです: DB2 照会パトローラー --> QueryAdmin。 ------------------------------------------------------------------------ 32.9 ユーザー管理 「 DB2 照会パトローラーを管理する QueryAdministrator の使用」 章の「ユーザ ー管理」 セクションでは、最大経過時間のパラメーター定義において、値が 0 あ るいは -1 に設定されている場合、照会は常に完了まで実行することを示します。 このパラメーターは負の値にセットできません。 このテキストは、値が 0 にセッ トされる場合、照会は常に 完了まで実行することを示します。 最大照会パラメーターは DB2 照会パトローラーが同時に実行する ジョブの最大数 を指定します。 最大照会は 0 から 32767 の範囲の整数である必要があります。 ------------------------------------------------------------------------ 32.10 ジョブ・キューの作成 「DB2 照会パトローラーを管理する QueryAdministrator の使用」章の 「ジョブ・ キュー管理」セクションでは、「ジョブ・キューの作成」ステップの画面取りは 第 2 ステップ後に表示されます。 QueryAdministrator ツールのジョブ・キュー管理 ページで、 「新規」をクリックする場合、新しい「ジョブ・キュー」ウィンドウ についての情報が開きます。 ジョブ・キュー・ページあるいはジョブ・キュー・タブを参照するには、それぞれ ジョブ・キュー管理ページ あるいはジョブ・キュー管理タブを読んでください。 ------------------------------------------------------------------------ 32.11 コマンド行インターフェースの使用 DB2 照会パトローラー・システムで照会を実行以来および結果表を 作成するための ユーザー権限を持っている場合は、データベース上で CREATETAB 権限が必要と な ります。DQP_RES_TBLSPC プロファイル変数が未設定の場合か、あるいは DQP_RES_TBLSPC プロファイル変数がデフォルト表スペースの名前に設定されている 場合、 ユーザーはデータベースの CREATETAB 権限を必要としません。 ユーザーは デフォルト表スペースに表を作成するための権限を持っているので、 この場合は結 果表の作成は成功します。 ------------------------------------------------------------------------ 32.12 照会イネーブラー注意事項 * キーセット・カーソルを使用する第三者の照会ツールを使用する場合、照会は インターセプトされません。 照会イネーブラーに対して照会をインターセプ トするためには、 以下を含むために db2cli.ini ファイルを変更する必要が あります: [common] DisableKeySetCursor=1 * AIX クライアントの場合、環境変数 LIBPATH がセットされないことを確認し てください。 JDK で出荷されているライブラリー libXext.a は、 /usr/lib/X11 サブディレクトリーの ライブラリーと互換性がありません。 照会イネーブラー GUI で問題が起こります。 ------------------------------------------------------------------------ 32.13 ブランク列ページを返すことができる DB2 照会パトローラー・トラッカー フィックスパック 3 には DB2 照会パトローラー・トラッカーの修正が含まれてい ます。 トラッカーは、列にヒットしない照会を正しくレポートします。 このよう な照会の例としては、"SELECT COUNT(*) FROM ..." などがあります。 この種の照 会は、表にあるいずれの列にもヒットしません。 トラッカーは列ページとしてブラ ンク・ページを表示します。 このブランク列ページは不良とは見なされません。 ------------------------------------------------------------------------ 32.14 照会パトローラーおよびレプリケーション・ツール 照会パトローラー バージョン 7 はレプリケーション・ツール (asnapply、 asnccp、djra、 および analyze) の照会をインターセプトし、これらのツールに誤 動作を発生させます。 この問題を回避するには、これらのツールを実行するときは 動的照会管理を使用不可にします。 ------------------------------------------------------------------------ 32.15 付録 B. DB2 照会パトローラー・クライアントのトラブルシューティング 付録 B 「DB2 照会パトローラー・クライアントのトラブルシューティング」の 「照会イネーブラーの一般的な問題」章の問題 2 に記述されている 最初の中黒の テキストを次のテキストに置き換えてください。 パス設定に jre が組み込まれていること確認します。 ------------------------------------------------------------------------ アプリケーション開発 部分目次 * 管理 API 解説書 o 33.1 db2ArchiveLog (新規 API) + db2ArchiveLog o 33.2 db2ConvMonStream o 33.3 db2DatabasePing (新規 API) + db2DatabasePing - データベースの Ping o 33.4 db2HistData o 33.5 db2HistoryOpenScan o 33.6 db2XaGetInfo (新規 API) + db2XaGetInfo - リソース・マネージャー用情報の取得 o 33.7 db2XaListIndTrans (sqlxphqr を 入れ替える新規 API) + db2XaListIndTrans - 未確定トランザクションをリストする o 33.8 db2GetSnapshot - スナップショットの取得 o 33.9 ログ・レコードの喪失 o 33.10 sqlaintp - エラー・メッセージの取得 o 33.11 sqlbctcq - 表スペース・コンテナー照会のクローズ o 33.12 sqlubkp - データベースのバックアップ o 33.13 sqlureot - 表の再編成 o 33.14 sqlurestore - データベースの復元 o 33.15 AIX 拡張共有メモリー・サポートに関するドキュメンテーショ ン・エラー (EXTSHM) o 33.16 SQLFUPD + 33.16.1 locklist o 33.17 SQLEDBDESC o 33.18 SQLFUPD ドキュメンテーション・エラー * DB2 アプリケーション構築の手引き o 34.1 第 1 章 概要 + 34.1.1 サポートするソフトウェア + 34.1.2 サンプル・プログラム o 34.2 第 3 章 DB2 アプリケーションの構築に関する一般情報 + 34.2.1 ファイルの構築、Makefiles、および エラー・チェック・ ユーティリティー o 34.3 第 4 章 Java アプレットの構築と アプリケーション + 34.3.1 環境設定 + 34.3.1.1 OS/2 上での JDK レベル + 34.3.1.2 HP-UX 上の Java2 o 34.4 第 5 章 SQL プロシージャーの構築 + 34.4.1 SQL プロシージャー環境の設定 + 34.4.2 コンパイラー環境変数の設定 + 34.4.3 コンパイル・コマンドのカスタマイズ + 34.4.4 中間ファイルを保存 + 34.4.5 バックアップと復元 + 34.4.6 SQL プロシージャーの作成 + 34.4.7 ストアード・プロシージャーの呼び出し + 34.4.8 コンパイルされた SQL プロシージャーの配布 o 34.5 第 7 章 HP-UX アプリケーションの構築 + 34.5.1 HP-UX C + 34.5.2 HP-UX C++ o 34.6 第 9 章 OS/2 アプリケーションの構築 + 34.6.1 VisualAge C++ (OS/2 版) バージョン 4.0 o 34.7 第 10 章 PTX アプリケーションの構築 + 34.7.1 ptx/C++ o 34.8 第 12 章 Solaris アプリケーションの構築 + 34.8.1 SPARCompiler C++ o 34.9 第 13 章 Windows 32-bit オペレーティング・システムのアプリケ ーションの構築 + 34.9.1 VisualAge C++ バージョン 4.0 * アプリケーション開発の手引き o 35.1 第 2 章 DB2 アプリケーションのコーディング + 35.1.1 IBM DB2 ユニバーサル・データベース・プロジェクトおよ びツール Microsoft Visual C++ のアドイン o 35.2 第 6 章 一般的な DB2 アプリケーション技法 + 35.2.1 順次値の生成 + 35.2.1.1 シーケンスの振る舞いの制御 + 35.2.1.2 シーケンス・オブジェクトによるパフォーマンスの 向上 + 35.2.1.3 シーケンス・オブジェクトと識別列の比較 o 35.3 第 7 章 ストアード・プロシージャー + 35.3.1 DECIMAL タイプは Linux Java ルーチンで失敗する + 35.3.2 再帰的ストアード・プロシージャーでのカーソルの使用 + 35.3.3 OLE 自動化ストアード・プロシージャーに関する記述 o 35.4 第 12 章 複合オブジェクトでの作業: ユーザー定義構造化タイプ + 35.4.1 構造化タイプ属性を列に挿入する o 35.5 第 13 章 ラージ・オブジェクト (LOB) の使用 + 35.5.1 連合データベース・システムでのラージ・オブジェクト (LOB) サポート + 35.5.1.1 DB2 による LOB の検索方法 + 35.5.1.2 アプリケーションでの LOB ロケーターの使用方法 + 35.5.1.3 LOB の制限 + 35.5.1.4 LOB データ・タイプおよび LOB 以外のデータ・タ イプ間のマッピング + 35.5.2 システムの調整 o 35.6 第 5 部 DB2 プログラミングに関する考慮事項 + 35.6.1 IBM DB2 OLE DB Provider o 35.7 第 20 章 C および C++ でのプログラミング + 35.7.1 C/C++ ストアード・プロシージャー、関数、およびメソッ ドのタイプ o 35.8 第 21 章 Java でのプログラミング + 35.8.1 PARAMETER STYLE JAVA プロシージャーおよび関数の Java メソッド・シグニチャー + 35.8.2 JDBC アプレット・サーバーに接続中 o 35.9 付録 B サンプル・プログラム * CLI の手引きおよび解説書 o 36.1 ランタイム・クライアントを使用するデータベース・ユーティリテ ィーのバインド o 36.2 CLI アプリケーションで静的 SQL の使用 o 36.3 JDBC/ODBC/CLI 静的プロファイル の制限 o 36.4 ADT トランスフォーム o 36.5 第 3 章 拡張フィーチャーの使用法 + 36.5.1 マルチスレッド・アプリケーションの書き込み + 36.5.2 スクロール可能カーソル + 36.5.2.1 サーバー側のスクロール可能カーソル・サポート (OS/390) + 36.5.3 複合 SQL の使用 + 36.5.4 ストアード・プロシージャーの使用 + 36.5.4.1 CLI でのストアード・プロシージャーの記述 + 36.5.4.2 CLI ストアード・プロシージャーおよび自動バイン ド o 36.6 第 4 章 CLI/ODBC の構成とサンプル・アプリケーションの実行 + 36.6.1 構成キーワード o 36.7 第 5 章 DB2 CLI 関数 + 36.7.1 SQLBindFileToParam - LOB ファイル参照を LOB パラメー ターにバインド + 36.7.2 SQLNextResult - 次の結果セットを別のステートメント・ ハンドルに関連付ける + 36.7.2.1 目的 + 36.7.2.2 構文 + 36.7.2.3 関数の引き数 + 36.7.2.4 使用法 + 36.7.2.5 戻りコード + 36.7.2.6 診断 + 36.7.2.7 制約事項 + 36.7.2.8 参照 o 36.8 付録 D 拡張スカラー関数 + 36.8.1 日時関数 o 36.9 付録 K DB2 CLI/ODBC/JDBC トレース機能の使用 * メッセージ解説書 o 37.1 メッセージおよび SQLSTATE ヘルプの表示 o 37.2 DB2 コネクトの SQLCODE 再マップ変更 o 37.3 新規メッセージおよび変更メッセージ + 37.3.1 コール・レベル・インターフェース (CLI) メッセージ + 37.3.2 DB2 メッセージ + 37.3.3 DBI メッセージ + 37.3.4 データウェアハウスセンター (DWC) メッセージ + 37.3.5 SQL メッセージ o 37.4 訂正された SQLSTATE * SQL 解説書 o 38.1 SQL 解説書は 1 つの PDF ファイルで提供されます o 38.2 第 3 章 言語エレメント + 38.2.1 命名規則および暗黙的オブジェクト名の修飾 + 38.2.2 DATALINK 割り当て + 38.2.3 式 + 38.2.3.1 構文図 + 38.2.3.2 OLAP 機能 + 38.2.3.3 シーケンス参照 o 38.3 第 4 章 関数 + 38.3.1 新しい関数とプロシージャーの使用可能化 + 38.3.2 スカラー関数 + 38.3.2.1 ABS または ABSVAL + 38.3.2.2 DECRYPT_BIN および DECRYPT_CHAR + 38.3.2.3 ENCRYPT + 38.3.2.4 GETHINT + 38.3.2.5 IDENTITY_VAL_LOCAL + 38.3.2.6 LCASE および UCASE (ユニコード) + 38.3.2.7 MQPUBLISH + 38.3.2.8 MQREAD + 38.3.2.9 MQRECEIVE + 38.3.2.10 MQSEND + 38.3.2.11 MQSUBSCRIBE + 38.3.2.12 MQUNSUBSCRIBE + 38.3.2.13 MULTIPLY_ALT + 38.3.2.14 REC2XML + 38.3.2.15 ROUND + 38.3.2.16 WEEK_ISO + 38.3.3 表関数 + 38.3.3.1 MQREADALL + 38.3.3.2 MQRECEIVEALL + 38.3.4 プロシージャー + 38.3.4.1 GET_ROUTINE_SAR + 38.3.4.2 PUT_ROUTINE_SAR o 38.4 第 5 章 照会 + 38.4.1 select-statement/構文図 + 38.4.2 select-statement/fetch-first-clause o 38.5 第 6 章 SQL ステートメント + 38.5.1 区分化キーの更新がサポートされるようになりました + 38.5.1.1 ステートメント: ALTER TABLE + 38.5.1.2 ステートメント: CREATE TABLE + 38.5.1.3 ステートメント: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (column-name,...) + 38.5.1.4 ステートメント: UPDATE + 38.5.2 ユニコード・データベースのより大きな索引キー + 38.5.2.1 ALTER TABLE + 38.5.2.2 CREATE INDEX + 38.5.2.3 CREATE TABLE + 38.5.3 ALTER SEQUENCE + ALTER SEQUENCE + 38.5.4 ALTER TABLE + 38.5.5 複合 SQL (組み込み) + 38.5.6 複合ステートメント (動的) + 複合ステートメント (動的) + 38.5.7 CREATE FUNCTION (ソースまたはテンプレート) + 38.5.8 CREATE FUNCTION (SQL スカラー、表または行) + 38.5.9 CREATE METHOD + CREATE METHOD + 38.5.10 CREATE SEQUENCE + CREATE SEQUENCE + 38.5.11 CREATE TRIGGER + CREATE TRIGGER + 38.5.12 CREATE WRAPPER + 38.5.13 DECLARE CURSOR + 38.5.14 DELETE + 38.5.15 DROP + 38.5.16 GRANT (シーケンス特権) + GRANT (シーケンス特権) + 38.5.17 INSERT + 38.5.18 SELECT INTO + 38.5.19 SET ENCRYPTION PASSWORD + SET ENCRYPTION PASSWORD + 38.5.20 SET transition-variable + SET 変数 + 38.5.21 UPDATE o 38.6 「第 7 章 SQL プロシージャー」から「第 7 章 SQL 制御ステート メント」への変更 + 38.6.1 SQL プロシージャー・ステートメント + SQL プロシージャー・ステートメント + 38.6.2 FOR + FOR + 38.6.3 「複合ステートメント」から「複合ステートメント (プロ シージャー)」への変更 + 38.6.4 RETURN + RETURN + 38.6.5 SIGNAL + SIGNAL o 38.7 付録 A SQL の制限 o 38.8 付録 D カタログ視点 + 38.8.1 SYSCAT.SEQUENCES * DB2 ストアード・プロシージャー・ビルダー o 39.1 DB2 ストアード・プロシージャー・ビルダーの Java 1.2 サポート o 39.2 DB2 ストアード・プロシージャーのリモート・デバッグ o 39.3 Windows、OS/2、または UNIX プラットフォームでの SQL プロシー ジャーの作成 o 39.4 Solaris プラットフォームでの DB2 ストアード・プロシージャ ー・ビルダーを使用する o 39.5 既知の問題および制限事項 o 39.6 中国語 (繁体字) ロケールでの DB2 ストアード・プロシージャ ー・ビルダーの使用 o 39.7 UNIX (AIX、Sun Solaris、Linux) インストールおよびストアー ド・プロシージャー・ビルダー o 39.8 OS/390 での SQL ストアード・プロシージャーの作成 o 39.9 SQL ストアード・プロシージャーのデバッグ o 39.10 Java ストアード・プロシージャーのエクスポート o 39.11 OS/390 でのストアード・プロシージャーの挿入 o 39.12 ワークステーション・サーバーで SQL ストアード・プロシージャ ーの作成オプションを設定 o 39.13 OS/390 に作成されたストアード・プロシージャーの WLM アドレ ス空間を自動的にリフレッシュ o 39.14 OS/390 での Java ストアード・プロシージャーの開発 o 39.15 MQ Series および OLE DB 用の DB2 表ユーザー定義関数 (UDF) の作成 * ユニコード更新 o 40.1 入門 + 40.1.1 DB2 ユニコード・データベースおよびアプリケーション + 40.1.2 資料の更新 o 40.2 SQL 解説書 + 40.2.1 第 3 章 言語エレメント + 40.2.1.1 データ・タイプのプロモーション + 40.2.1.2 データ・タイプ間のキャスト + 40.2.1.3 割り当てと比較 + 40.2.1.4 結果データ・タイプの規則 + 40.2.1.5 ストリング変換の規則 + 40.2.1.6 式 + 40.2.1.7 述部 + 40.2.2 第 4 章 関数 + 40.2.2.1 スカラー関数 o 40.3 CLI の手引きおよび解説書 + 40.3.1 第 3 章 拡張フィーチャーの使用法 + 40.3.1.1 DB2 CLI ユニコード・アプリケーションの作成 + 40.3.2 付録 C. DB2 CLI および ODBC + 40.3.2.1 ODBC ユニコード・アプリケーション o 40.4 データ移動ユーティリティー 手引きおよび解説書 + 40.4.1 付録 C. エクスポート/インポート/ロード・ユーティリテ ィー・ファイル形式 ------------------------------------------------------------------------ 管理 API 解説書 ------------------------------------------------------------------------ 33.1 db2ArchiveLog (新規 API) db2ArchiveLog 回復可能データベースのアクティブ・ログ・ファイルをクローズして切り捨てま す。 ユーザー出口が使用可能な場合にはアーカイブ要求を実行します。 権限 以下のいずれかとなります。 * sysadm * sysctrl * sysmaint * dbadm 必須な接続 この API は、指定されたデータベースへの接続を自動的に確立します。 指定され たデータベースへの接続がすでに確立されている場合、 API はエラーを返します。 版 db2ApiDf.h C API 構文 /* File: db2ApiDf.h */ /* API: Archive Active Log */ SQL_API_RC SQL_API_FN db2ArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } 汎用 API 構文 /* File: db2ApiDf.h */ /* API: Archive Active Log */ SQL_API_RC SQL_API_FN db2gArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { db2Uint32 iAliasLen; db2Uint32 iUserNameLen; db2Uint32 iPasswordLen; char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } API パラメーター version 入力。2 番目のパラメーターとして渡される変数 pDB2ArchiveLogStruct の バージョンおよびリリース・レベルを指定します。 pDB2ArchiveLogStruct 入力。db2ArchiveLogStruct 構造へのポインター。 pSqlca 出力。 sqlca 構造へのポインター。 iAliasLen 入力。4 バイトの符号なし整数で、データベース別名の長さをバイト数で表し ます。 iUserNameLen ユーザー名の長さ (バイト単位) を表す 4 バイトの符号なし整数。 ユーザー 名を使用しない場合は、ゼロに設定してください。 iPasswordLen 入力。パスワードの長さ (バイト単位) を表す 4 バイトの符号なし整数。 パ スワードを使用しない場合、0 を設定します。 piDatabaseAlias 入力。アクティブ・ログのアーカイブが作成されるデータベースの データベ ース別名 (システム・データベース・ディレクトリーにカタログされているも の) を 含むストリング。 piUserName 入力。接続時に使用されるユーザー名を含むストリング。 piPassword 入力。接続時に使用されるパスワードを含むストリング。 iAllNodeFlag MPP のみ。入力。操作を db2nodes.cfg ファイルにリストされている すべて のノードに適用するかどうかを示すフラグ。 有効な値は以下の通りです。 DB2ARCHIVELOG_NODE_LIST piNodeList に渡されるノード・リストのノードに適用されます。 DB2ARCHIVELOG_ALL_NODES すべてのノードに適用されます。 piNodeList は NULL です。これがデ フォルト値です。 DB2ARCHIVELOG_ALL_EXCEPT piNodeList に渡されるノード・リストのノードを除くすべてのノードに 適用されます。 iNumNodes MPP のみ。入力。piNodeList 配列のノード数を指定します。 piNodeList MPP のみ。入力。アーカイブ・ログ操作を適用するノード番号の配列を指すポ インター。 iOptions 入力。将来の使用のために予約されています。 ------------------------------------------------------------------------ 33.2 db2ConvMonStream 使用上の注意の中で、スナップショット・データ・ストリーム・タイプの構造は、 SQLM_ELM_SUBSECTION は sqlm_subsection である必要があります。 ------------------------------------------------------------------------ 33.3 db2DatabasePing (新規 API) db2DatabasePing - データベースの Ping クライアントとデータベース・サーバーの間の基礎接続の ネットワーク応答時間を テストします。 この API は、ホスト・データベース・サーバーが、 直接またはゲ ートウェイ経由で DB2 コネクトからアクセスされるときに アプリケーションによ って使用されます。 権限 なし 必須な接続 データベース 版 db2ApiDf.h C API 構文 /* File: db2ApiDf.h */ /* API: Ping Database */ /* ... */ SQL_API_RC SQL_API_FN db2DatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca * pSqlca); /* ... */ typedef SQL_STRUCTURE db2DatabasePingStruct { char iDbAlias[SQL_ALIAS_SZ + 1]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } 汎用 API 構文 /* File: db2ApiDf.h */ /* API: Ping Database */ /* ... */ SQL_API_RC SQL_API_FN db2gDatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca * pSqlca); /* ... */ typedef SQL_STRUCTURE db2gDatabasePingStruct { db2Uint16 iDbAliasLength; char iDbAlias[SQL_ALIAS_SZ]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } API パラメーター versionNumber 入力。アプリケーションが使用している DB2 ユニバーサル・データベースま たは DB2 コネクト製品の バージョンとリリース番号を示します。 注: 定数 db2Version710 あるいは それ以降が、DB2 バージョン 7.1 あるい はそれ以降に対して使用されます。 iDbAliasLength 入力。データベース別名の長さを示します。 注: このパラメーターは 現在使用されていません。 将来の利用のために予 約してあります。 iDbAlias 入力。データベース別名を示します。 注: このパラメーターは 現在使用されていません。 将来の利用のために予 約してあります。 iNumIterations 入力。テスト要求反復数を示します。値は、 1 から 32767 までにしてくださ い。 poElapsedTime 出力。 エレメントの数が iNumIterations に等しい 32 ビット配列 へのポイ ンターを示します。配列の各エレメントには、 1 つのテスト要求反復用に、 マイクロ秒単位の経過時間が含まれます。 注: アプリケーションは、この API を呼び出す前に、この配列への メモリ ー割り振りについての責任を負います。 pSqlca 出力。 sqlca 構造へのポインター。 この構造体の詳細について詳しくは、管 理 API 解説書 をご覧ください。 使用上の注意 データベース接続は、この API を呼び出す前に存在している必要があります。存在 して いない場合、エラーが起きます。 この関数は、PING コマンドを使用して呼び出すこともできます。この コマンドの 説明については、コマンド解説書 をご覧ください。 ------------------------------------------------------------------------ 33.4 db2HistData 以下の項目を表 11 に追加する必要があります。 db2HistData 構造のフィールド: フィールド名 データ・タイプ 記述 oOperation char 表 12 を参照。 oOptype char 表 13 を参照。 以下の表が表 11 の後に追加されます。 表 12。db2HistData 構造内の oOperation の有効なイベント値。 値 記述 C 定義 COBOL/FORTRAN 定義 A 表ペースの DB2HISTORY_OP_ADD_TABLESPACE DB2HIST_OP_ADD_TABLESPACE 追加 B バックアッ DB2HISTORY_OP_BACKUP DB2HIST_OP_BACKUP プ C ロード・コ DB2HISTORY_OP_LOAD_COPY DB2HIST_OP_LOAD_COPY ピー D ドロップさ DB2HISTORY_OP_DROPPED_TABLE DB2HIST_OP_DROPPED_TABLE れた表 F ロールフォ DB2HISTORY_OP_ROLLFWD DB2HIST_OP_ROLLFWD ワード G 表の再編成 DB2HISTORY_OP_REORG DB2HIST_OP_REORG L ロード DB2HISTORY_OP_LOAD DB2HIST_OP_LOAD N 表スペース DB2HISTORY_OP_REN_TABLESPACE DB2HIST_OP_REN_TABLESPACE の名前変更 O 表スペース DB2HISTORY_OP_DROP_TABLESPACEDB2HIST_OP_DROP_TABLESPACE のドロップ Q 静止 DB2HISTORY_OP_QUIESCE DB2HIST_OP_QUIESCE R リストア DB2HISTORY_OP_RESTORE DB2HIST_OP_RESTORE S 統計の実行 DB2HISTORY_OP_RUNSTATS DB2HIST_OP_RUNSTATS T 表スペース DB2HISTORY_OP_ALT_TABLESPACE DB2HIST_OP_ALT_TBS の変更 U アンロード DB2HISTORY_OP_UNLOAD DB2HIST_OP_UNLOAD 以下の表も追加されます。 表 13。db2HistData 構造内の有効な oOptype 値。 oOperationoOptype 記述 C/COBOL/FORTRAN 定義 B F オフライン DB2HISTORY_OPTYPE_OFFLINE N オンライン DB2HISTORY_OPTYPE_ONLINE I 増分オフライン DB2HISTORY_OPTYPE_INCR_OFFLINE O 増分オンライン DB2HISTORY_OPTYPE_INCR_ONLINE D 差分オフライン DB2HISTORY_OPTYPE_DELTA_OFFLINE E 差分オンライン DB2HISTORY_OPTYPE_DELTA_ONLIN F E ログの終わり DB2HISTORY_OPTYPE_EOL P 時刻指定 DB2HISTORY_OPTYPE_PIT L I 挿入 DB2HISTORY_OPTYPE_INSERT R 置換 DB2HISTORY_OPTYPE_REPLACE Q S 静止共有 DB2HISTORY_OPTYPE_SHARE U 静止更新 DB2HISTORY_OPTYPE_UPDATE X 静止排他 DB2HISTORY_OPTYPE_EXCL Z 静止リセット DB2HISTORY_OPTYPE_RESET R F オフライン DB2HISTORY_OPTYPE_OFFLINE N オンライン DB2HISTORY_OPTYPE_ONLINE I 増分オフライン DB2HISTORY_OPTYPE_INCR_OFFLINE O 増分オンライン DB2HISTORY_OPTYPE_INCR_ONLINE T C コンテナーの追加 DB2HISTORY_OPTYPE_ADD_CONT R 再平衡 DB2HISTORY_OPTYPE_REB ------------------------------------------------------------------------ 33.5 db2HistoryOpenScan 以下の値が iCallerAction パラメーターに追加されます。 DB2HISTORY_LIST_CRT_TABLESPACE 他のフィルターを通過する CREATE TABLESPACE および DROP TABLESPACE レコ ードのみを選択します。 ------------------------------------------------------------------------ 33.6 db2XaGetInfo (新規 API) db2XaGetInfo - リソース・マネージャー用情報の取得 特定リソース・マネージャーの抽出情報は、一度 xa_open コールが行われました。 権限 なし 必須な接続 データベース 版 sqlxa.h C API 構文 /* File: sqlxa.h */ /* API: リソース・マネージャーの情報を取得する */ /* ... */ SQL_API_RC SQL_API_FN db2XaGetInfo ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaGetInfoStruct { db2int32 iRmid; struct sqlca oLastSqlca; } db2XaGetInfoStruct; API パラメーター versionNumber 入力。2 番目のパラメーター pParmStruct で切られている構造の バージョン とリリース・レベルを指定します。 pParmStruct 入力。db2XaGetInfoStruct 構造へのポインター。 pSqlca 出力。 sqlca 構造へのポインター。 この構造体の詳細について詳しくは、管 理 API 解説書 をご覧ください。 iRmid 入力。情報が必要なリソース・マネージャーを指定します。 oLastSqlca 出力。 最後の XA API 呼び出しの sqlca を含んでいます。 注: 最後に失敗した XA API から、結果として sqlca のみ検索することがで きます。 ------------------------------------------------------------------------ 33.7 db2XaListIndTrans (sqlxphqr を 入れ替える新規 API) db2XaListIndTrans - 未確定トランザクションをリストする 現在接続されているデータベースの全未確定トランザクションのリストを 提供しま す。 効力範囲 この API は、発行されたノードにだけ影響します。 権限 以下のいずれかとなります: * sysadm * dbadm 必須な接続 データベース 版 db2ApiDf.h C API 構文 /* File: db2ApiDf.h */ /* API: 未確定トランザクションのリスト */ /* ... */ SQL_API_RC SQL_API_FN db2XaListIndTrans ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaListIndTransStruct { db2XaRecoverStruct * piIndoubtData; db2Uint32 iIndoubtDataLen; db2Uint32 oNumIndoubtsReturned; db2Uint32 oNumIndoubtsTotal; db2Uint32 oReqBufferLen; } db2XaListIndTransStruct; typedef SQL_STRUCTURE db2XaRecoverStruct { sqluint32 timestamp; SQLXA_XID xid; char dbalias[SQLXA_DBNAME_SZ]; char applid[SQLXA_APPLID_SZ]; char sequence_no[SQLXA_SEQ_SZ]; char auth_id[SQL_USERID_SZ]; char log_full; char connected; char indoubt_status; char originator; char reserved[8]; } db2XaRecoverStruct; API パラメーター versionNumber 入力。2 番目のパラメーター pParmStruct で切られている構造の バージョン とリリース・レベルを指定します。 pParmStruct 入力。db2XaListIndTransStruct 構造へのポインター。 pSqlca 出力。 sqlca 構造へのポインター。 この構造体の詳細について詳しくは、管 理 API 解説書 をご覧ください。 piIndoubtData 入力。未確定データのバッファーを提供したアプリケーションへのポインター が、 返されます。 未確定データは db2XaRecoverStruct の形式です。 アプ リケーションは db2XaRecoverStruct 構造のサイズを使用し、このパラメータ ーにより提供されたアドレスで始動することで 未確定トランザクションのリ ストを traverse することができます。 その値が NULL の場合、DB2 は必要なバッファーのサイズを計算し、 oReqBufferLen でのこの値を返します。oNumIndoubtsTotal は未確定トランザ クションの数の合計を 含んでいます。 このアプリケーションは、必要なバッ ファー・サイズを割り振り、 API を再度発行します。 oNumIndoubtsReturned 出力。 未確定トランザクション・レコードの数は、pIndoubtData で指定され た バッファーに返されます。 oNumIndoubtsTotal 出力。 未確定トランザクション・レコードの合計数は、API 呼び出し時に 使 用可能です。 piIndoubtData バッファーがすべてのレコードを含めるのに小 さすぎる 場合は、oNumIndoubtsTotal が oNumIndoubtsReturned の合計を 超 えます。 アプリケーションはすべてのレコードを取得するために、API を再 発行 する場合があります。 注: この数は、未確定トランザクションが自動的に、もしくは試行錯誤的に 繰り返し同期化しようとした結果、または他のトランザクションが未確 認状態に入った結果として、 API 呼び出しの間で変化する場合がありま す。 oReqBufferLen 出力。 API 呼び出し時に、すべての未確定トランザクション・レコードを保 留できる バッファー長が要求されました。 アプリケーションはこの値を、 pIndoubtData の設定を NULL にした API 呼び出しにより、必要なバッファ ー・サイズを決定するために使用します。 この値は、その結果、必要なバッ ファーを割り振るために使用できるので、割り振られた バッファーのアドレ スへの pIndoubtData 設定で、API を発行することができます。 注: 必須のバッファー・バッファー・サイズは、未確定トランザクションが 自動的に、もしくは試行錯誤的に 繰り返し同期化しようとした結果、ま たは他のトランザクションが未確認状態に入った結果として、 API 呼び 出しの間で変化する場合があります。アプリケーションは これらを計算 に入れて大規模なバッファーを割り振る場合があります。 timestamp 出力。 トランザクションが未確定状態に入った時点で、時刻を 指定します。 xid 出力。 グローバル・トランザクションを一意的に識別するためのトランザク ション・マネージャーにより 割り当てられた XA ID を指定します。 dbalias 出力。 未確定トランザクションが検出されたデータベースの別名を指定 しま す。 applid 出力。 このトランザクションのデータベース・マネージャーにより割り当て られた アプリケーション ID を指定します。 sequence_no 出力。 applid の拡張版としてデータベース・マネージャーに割り当てられた シーケンス番号を指定します。 auth_id 出力。 トランザクションを実行するユーザーの許可 ID を指定します。 log_full 出力。 ログのフル状態がこのトランザクションが原因かどうか指示 します。 有効な値は 以下の通りです: SQLXA_TRUE この未確定トランザクションがログのフル状態の原因となっています。 SQLXA_FALSE この未確定トランザクションはログのフル状態の原因になっていませ ん。 connected 出力。 アプリケーションが接続されているかどうか指示します。有効な値は 以下の通りです: SQLXA_TRUE このトランザクションは、通常同期点処理を実行中で、2 フェーズ・コ ミットの 第 2 フェーズを待機しています。 SQLXA_FALSE このトランザクションは、早期の障害により未確定のままであり、現在 は トランザクション・マネージャーからの再同期化を待機しています。 indoubt_status 出力。 この未確定トランザクションの状況を指示します。 有効な値は 以下 の通りです: SQLXA_TS_PREP このトランザクションは準備済みです。 この接続パラメーターは、トラ ンザクションが 通常コミット・プロセスの第 2 フェーズを待機してい るのか、エラーが発生し、 トランザクション・マネージャーが要求した 再同期化を行っているのか 判定するために使用することができます。 SQLXA_TS_HCOM このトランザクションは、試行錯誤的にコミットされました。 SQLXA_TS_HROL このトランザクションは試行錯誤的にロールバックされました。 SQLXA_TS_MACK このトランザクションは区分に分割されたデータベース内の 1 つのノー ドから コミットの承認が未着です。 SQLXA_TS_END このトランザクションはこのデータベースで終了しています。 このトラ ンザクションは 後で再活動化、コミット、ロールバックなどをする場合 があります。またトランザクションが エラーになった場合、トランザク ションが完了しなかった場合でも 可能です。これがそのケースの場合、 このトランザクションは、試行錯誤の処置を要求します。 それは、トラ ンザクションがロックしたままになったり、データ・アクセスが他のア プリケーションの妨げ になる場合があるためです。 使用上の注意 通常のアプリケーションは、データベースもしくは 分割データベース座標ノードへ の現行接続を設定した後、以下のステップを実行 します: 1. piIndoubtData に NULL をセットして db2XaListIndTrans をコールします。 これは oReqBufferLen と oNumIndoubtsTotal で値を返します。 2. バッファーを割り振るため、oReqBufferLen で戻り値を使用します。 このバ ッファーは 追加の未確定トランザクションがあると、大きさが十分でない場 合があります。それは、 oReqBufferLen を取得するための API の初期呼び出 しのためです。このアプリケーションは oReqBufferLen より大きなバッファ ーを提供する場合があります。 3. すべての未確定トランザクション・レコードが取得されたか決定します。 こ れは oNumIndoubtsReturned と oNumIndoubtTotal の比較により行うことがで きます。oNumIndoubtsTotal が oNumIndoubtsReturned より大きい場合、アプ リケーションは以上のステップを繰り返すことが できます。 参考記述 管理 API 解説書 に「sqlxhfrg - トランザクション状態の喪失」、「sqlxphcm - 未確定トランザクションのコミット」、 および「sqlxphrl - 未確定トランザクシ ョンのロールバック」があります。 ------------------------------------------------------------------------ 33.8 db2GetSnapshot - スナップショットの取得 db2GetSnapshot API の構文は以下のように表記します。 int db2GetSnapshot( unsigned char version; db2GetSnapshotData *data, struct sqlca *sqlca); データに記述されるパラメーターは以下の通りです。 typedef struct db2GetSnapshotData{ sqlma *piSqlmaData; sqlm_collected *poCollectedData void *poBuffer; db2uint32 iVersion; db2int32 iBufferSize; db2uint8 iStoreResult; db2uint16 iNodeNumber; db2uint32 *poOutputFormat; }db2GetSnapshotData; ------------------------------------------------------------------------ 33.9 ログ・レコードの喪失 以下の情報は、「MPP 従属ノードの準備」セクションの「付録 F」に追加されま す。 このログ・レコードは、未確定トランザクションのロールバック後、または 2 フェ ーズ・コミットの コミット後に書き込まれます。ログ・レコードは、トランザクシ ョンの終わりにマークを付けるために 書き込まれ、保持されているログ・リソース を解放します。トランザクションを喪失するためには、 トランザクションが手操作 で完了した状態になっている必要があります。 表 21. ログ・レコード構造の喪失 記述 タイプ オフセット (バイト単位) ログ・ヘッダー LogManagerLogRecordHeader 0(20) time sqluint64 20(8) 全長: 28 バイト ------------------------------------------------------------------------ 33.10 sqlaintp - エラー・メッセージの取得 以下の使用上の注意はこの API の説明に追加されます: マルチスレッド・アプリケーションでは、sqlaintp は有効なコンテキストに付加されている必要があります; 一方、SQLCODE -1445 のメッセージ・テキストは取得できませんでした。 ------------------------------------------------------------------------ 33.11 sqlbctcq - 表スペース・コンテナー照会のクローズ ロードはこの API の有効な許可レベルではありません。 ------------------------------------------------------------------------ 33.12 sqlubkp - データベースのバックアップ BackupType パラメーターの場合、 SQLUB_FULL 値が SQLUB_DB に置き換えられま す。 データベース内のすべての表スペースのバックアップが行われます。 新しい増分バックアップ機能をサポートするために、 SQLUB_INCREMENTAL および SQLUB_DELTA パラメーターも追加されます。 増分バックアップ・イメージとは、最 新の正常な全バックアップ以降に変更された すべてのデータベース・データのコピ ーです。 差分バックアップ・イメージとは、任意のタイプについての最新の正常な バックアップ以降に 変更されたすべてのデータベース・データのコピーです。 ------------------------------------------------------------------------ 33.13 sqlureot - 表の再編成 以下の文が使用上の注意に追加されます。 REORGANIZE TABLE は、索引拡張子に基づく索引を使用できません。 ------------------------------------------------------------------------ 33.14 sqlurestore - データベースの復元 RestoreType パラメーターの場合、 SQLUD_FULL 値が SQLUD_DB に置き換えられま す。 データベース内のすべての表の復元が行われます。これはオフラインで実行さ れます。 新しい増分復元機能をサポートするために、 SQLUD_INCREMENTAL パラメーターも追 加されます。 増分バックアップ・イメージとは、最新の正常な全バックアップ以降に変更された すべてのデータベース・データのコピーです。 ------------------------------------------------------------------------ 33.15 AIX 拡張共有メモリー・サポートに関するドキュメンテーション・エラー (EXTSHM) 「付録 E 並行アクセスを行うスレッド化アプリケーション」の注 2 は 次のように 変更されます。 2. デフォルトでは、AIX は 32 ビット・アプリケーションがプロセスあたり 11 を 超えるメモリー・セグメントに接続することを許可していません。ローカル DB2 接 続に使用できるのは 最大 10 までです。 DB2 で EXTSHM を使用するには、次のようにします。 クライアント・セッション内: export EXTSHM=ON DB2 の開始時: export EXTSHM=ON db2set DB2ENVLIST=EXTSHM db2start EEE 上で、sqllib/db2profile に以下の行を追加してください。 EXTSHM=ON export EXTSHM ------------------------------------------------------------------------ 33.16 SQLFUPD 33.16.1 locklist トークンの名前は SQLF_DBTN_LOCKLIST から SQLF_DBTN_LOCK_LIST に変更されまし た。 locklist パラメーターは SMALLINT から 64 ビットの符号なし INTEGER に変 更されました。 更新可能データベース構成パラメーターの表に以下が追加されまし た。 パラメーター名 トークン トークン値 データ・タイプ locklist SQLF_DBTN_LOCK_LIST704 Uint64 このパラメーターの新しい最大値は 524 288 です。 ------------------------------------------------------------------------ 33.17 SQLEDBDESC SQLDBCSS (sqlenv に定義された) の有効値のリストに 2 つの値が追加されます。 追加される値は以下の通りです。 SQL_CS_SYSTEM_NLSCHAR 文字タイプに対して NLS バージョンの比較ルーチンを使用するシステムから の照合シーケンス。 SQL_CS_USER_NLSCHAR 文字タイプに対して NLS バージョンの比較ルーチンを使用するユーザーから の照合シーケンス。 ------------------------------------------------------------------------ 33.18 SQLFUPD ドキュメンテーション・エラー 「"第 3 章 データ構造"」の表 53、更新可能データベース構成パラメーターに リ ストされた dbheap のトークン値 701 は正しくありません。 正しい値は 58 で す。 ------------------------------------------------------------------------ DB2 アプリケーション構築の手引き ------------------------------------------------------------------------ 34.1 第 1 章 概要 34.1.1 サポートするソフトウェア 注: PHP。PHP は、Web ベース・アプリケーションから DB2 をアクセスするメソッ ドとして使用することができます。PHP は、サーバー側で使用される、HTML 組み込み用のプラットフォーム間 スクリプト言語です。PHP は、 Unified-ODBC アクセス方式を使用する DB2 アクセスをサポートします。この アクセス方法では、 ユーザー・レベル PHP は ODBC 呼び出しを使用する DB2 と通信します。標準 ODBC と異なり、Unified-ODBC 方式の場合、 通信は、 ODBC レイヤーを経由せずに直接 DB2 CLI レイヤーに対して行われます。DB2 での PHP の使用の詳細は、 次の DB2 サポート・サイトで検索してくださ い。URL は www.ibm.com/software/data/db2/udb/winos2unix/support です。 AIX C および C++ コンパイラーとしてリストされているバージョンは以下の通りです: IBM C and C++ Compilers for AIX Version 3.6.6 (Version 3.6.6.3 for 64-bit) IBM C for AIX 4.4 IBM VisualAge C++ Version 4.0 注: 次の場所から、上記コンパイラー・バージョンの最新のフィックスパックをダ ウンロードしてください。 http://www.ibm.com/software/ad/vacpp/service/csd.html Micro Focus COBOL コンパイラーとしてリストされているバージョンは以下の通り です。 AIX 4.2.1 Micro Focus COBOL バージョン 4.0.20 (PRN 12.03 またはそれ以降) Micro Focus COBOL バージョン 4.1.10 (PRN 13.04 またはそれ以降) AIX 4.3 Micro Focus COBOL Server Express バージョン 1.0 注: DB2 がサポートする Micro Focus COBOL ストアード・プロシージャーおよび UDF (AIX 4.3 版) の情報は、DB2 アプリケーション開発 Web ページをご覧く ださい: http://www.ibm.com/software/data/db2/udb/ad IBM XL Fortran (AIX バージョン 5.1.0 版) で、64 ビット・アプリケーションを 作成 するには、コンパイルおよびリンク・ステップで、"-q64" オプションを使用 してください。 64 ビット・アプリケーションは、このコンパイラーの前の バージ ョンではサポートされていません。 HP-UX C++ コンパイラーとしてリストされているバージョンは以下の通りです: HP aC++, バージョン A.03.25 注: HP は、新旧のコンパイラーでコンパイルされたオブジェクト間の バイナリー 互換性をサポートしていません。そのため、これは DB2 (HP-UX 版) で アク セスするために構築された、あらゆる C++ アプリケーションを強制的に再コ ンパイルします。 C++ アプリケーションは、この新コンパイラーで、例外を 扱えるようにも構築されている必要があります。 これは aCC 変換ガイドの URL です: http://www.hp.com/esy/lang/cpp/tguide C++ の非互換性はこの部分です: http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.1.2 http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3 C 対 C++ の部分はここです: http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3.1 C と aCC が互換であっても、2 つの別のオブジェクト・タイプを使用する場 合は、 「main」 を含むオブジェクトを aCC でコンパイルし、また、最後に 実行するオブジェクトを aCC でリンクする必要があります。 Linux DB2 (Linux 版) は、次の REXX バージョンをサポートします: Object REXX Interpreter for Linux バージョン 2.1 Linux/390 DB2 (Linux/390 版) は、Java、C、および C++ のみをサポートします。 OS/2 C/C++ コンパイラーとしてリストされているバージョンは以下の通りです: IBM VisualAge C++ for OS/2 バージョン 3.6.5 およびバージョン 4.0 注: 次の場所から、上記コンパイラー・バージョンの最新のフィックスパックをダ ウンロードしてください。 http://www.ibm.com/software/ad/vacpp/service/csd.html 上記 VisualAge C++ コンパイラーに対する今後の保守サポートの制限については、 次の URL でニュース・セクションを参照してください。 http://www-4.ibm.com/software/ad/vacpp/ Solaris Micro Focus COBOL コンパイラーとしてリストされているバージョンは以下の通り です。 Micro Focus COBOL Server Express バージョン 1.0 Windows 32-bit オペレーティング・システム IBM VisualAge C++ コンパイラーとしてリストされているバージョンは以下の通り です: IBM VisualAge C++ (Windows 版) バージョン 3.6.5 および 4.0 注: 次の場所から、上記コンパイラー・バージョンの最新のフィックスパックをダ ウンロードしてください。 http://www.ibm.com/software/ad/vacpp/service/csd.html 上記 VisualAge C++ コンパイラーに対する今後の保守サポートの制限については、 次の URL でニュース・セクションを参照してください。 http://www-4.ibm.com/software/ad/vacpp/ Micro Focus COBOL コンパイラーとしてリストされているバージョンは以下の通り です。 Micro Focus COBOL バージョン 4.0.20 Micro Focus COBOL Net Express バージョン 3.0 34.1.2 サンプル・プログラム 以下は、「オブジェクトのリンクと埋め込みサンプル」セクションに追加されてい ます: salarycltvc Visual Basic ストアード・プロシージャー、salarysrv という Visual C++ DB2 CLI サンプル。 SALSVADO OLE 自動化ストアード・プロシージャー・サンプル (SALSVADO) および SALCLADO クライアント (SALCLADO) は、32-bit Visual Basic と ADO で実装 されており、 staff2 表内の給与の中央値を計算します。 以下は「ログ管理ユーザー出口管理」のセクションに追加されています: AIX で ADSM API クライアントの 3.1.6 版かそれ以上を使用する アプリケーショ ンは、たとえそのアプリケーションがシングル・スレッドだと しても、xlc や xlC ではなく xlc_r または xlC_r コンパイラーで 作成されている必要があります。 これによりライブラリーがスレッド・セーフであることが保証されます。 これはロ グ管理ユーザー出口サンプル、db2uext2.cadsm に適用します。 非スレッド・セーフ・ライブラリーでコンパイルされたアプリケーションを お持ち の場合は、フィックス・テスト IC21925E を適用するかアプリケーション・ プロバ イダーに 連絡します。 このフィックス・テストは、匿名 ftp サーバーの index.storsys.ibm.com で 使用可能です。これにより ADSM API レベルは 3.1.3 レベルに戻ります。 ------------------------------------------------------------------------ 34.2 第 3 章 DB2 アプリケーションの構築に関する一般情報 34.2.1 ファイルの構築、Makefiles、および エラー・チェック・ユーティリティー 表 16 の bldevm の入力を読み取る必要があります: bldevm イベント・モニター・サンプル・プログラム、evm (AIX、OS/2、および Windows 32-bit オペレーティング・システムのみで有効)。 表 17 には以下の項目が含まれている必要があります: bldmevm イベント・モニター・サンプル・プログラム、evm、Microsoft Visual C++ コ ンパイラー。 bldvevm イベント・モニター・サンプル・プログラム、evm、VisualAge C++ コンパイ ラー。 ------------------------------------------------------------------------ 34.3 第 4 章 Java アプレットの構築と アプリケーション 34.3.1 環境設定 SQLJ プログラムの作成をサポートしているプラットフォームで、IBM JDK 1.1.8 を お使いの場合、 JDK 作成日が 1999/11/24 (または、それ以降) のものが必要で す。そうしないと、コンパイル中に JNI パニック・エラーが出る場合があります。 SQLJ プログラムの作成をサポートしているプラットフォームで、IBM JDK 1.2.2 を お使いの場合、 JDK 作成日が 2000/4/17 (または、それ以降) のものが必要です。 そうしないと、コンパイル中に 無効な Java タイプ・エラーが出る場合がありま す。 AIX、HP-UX、Linux、 および Solaris のサブセクションについては、 JDBC 2.0 の 情報を以下の情報に置き換えます。 Java アプリケーション で JDBC 2.0 ドライバーを使用する JDBC 1.22 ドライバーは、いまだ、すべてのオペレーティング・システムのデフォ ルト・ドライバーです。 JDBC 2.0 の新機能を利用するには、JDK 1.2 サポートを インストールする必要があります。 JDBC 2.0 の新機能を利用するアプリケーショ ンを実行する前に、 sqllib/java12 ディレクトリーから usejdbc2 コマンドを実行 し、 お使いの環境を設定する必要があります。ご使用のアプリケーションで常に JDBC 2.0 ドライバーを 使用したい場合は、お使いの .profile などのプロファイ ルや .bashrc、.cshrc、 または .kshrc などのシェル初期化スクリプトに以下の行 を追加するよう、ご検討ください: . sqllib/java12/usejdbc2 usejdbc2 を db2profile の後で実行するのと同様に、db2profile を実行するため に、このコマンドが そのコマンドの後に位置していることを確認してください。 JDBC 1.22 ドライバーへスイッチバックするには、sqllib/java12 ディレクトリー から以下のコマンドを実行します: . usejdbc1 Java ストアード・プロシージャーおよび UDFs とともに JDBC 2.0 ドライバーを使 用します Java ストアード・プロシージャーおよび UDFs とともに JDBC 2.0 ドライバーを使 用するには インスタンスのユーザー ID を分離するため環境設定を行う必要があり ます。 デフォルトの 分離したユーザー ID は、db2fenc1 です。分離したユーザー ID の環境設定を行うには、 以下のステップを実行します: 1. .profile などの分離したユーザー ID プロファイルや、また は、.bashrc、.cshrc、または .kshrc などのような分離したユーザー ID シ ェル初期化スクリプトに、以下の行を追加 する: . sqllib/java12/usejdbc2 2. CLP から以下のコマンドを実行する: db2set DB2_USE_JDK12=1 Java UDF およびストアード・プロシージャー・サポートの JDBC 1.22 ドライバー にスイッチバック するには、以下のステップを実行します: 1. .profile などの分離したユーザー ID プロファイルや、 .bashrc、.cshrc、 または .kshrc などのような分離した ユーザー ID シェル初期化スクリプト から、以下の行を除去する: . sqllib/java12/usejdbc2 2. CLP から以下のコマンドを実行する: db2set DB2_USE_JDK12= ご使用のアプリケーションで常に JDBC 2.0 ドライバーを使用したい場合は、 お使 いの .profile などのプロファイルや .bashrc、.cshrc、または .kshrc などの シ ェル初期化スクリプトに以下の行を追加することができます。 . sqllib/java12/usejdbc2 usejdbc2 を db2profile の後で実行するのと同様に、db2profile を実行するため に、このコマンドが そのコマンドの後に位置していることを確認してください。 HP-UX Java ストアード・プロシージャーおよびユーザー定義関数は、 DB2 for HP-UX with JDK 1.1 ではサポートされていません。 Silicon Graphics IRIX -o32 オブジェクト・タイプで、SQLJ アプリケーションを構築する際、 JDK 1.2.2 の Java JIT コンパイラーを使用して、SQLJ 変換プログラムがセグメント化障害で 失敗した場合、 このコマンドで JIT コンパイラーを停止させてください: export JAVA_COMPILER=NONE Silicon Graphics IRIX で、JAVA SQLJ プログラムを作成するには、JDK 1.2.2 が 必要です。 Windows 32-bit オペレーティング・システム Java ストアード・プロシージャーおよび UDFs とともに JDBC 2.0 ドライバーを使 用します Java ストアード・プロシージャーおよび UDFs とともに JDBC 2.0 ドライバーを使 用するには 以下のステップを実行して環境を設定する必要があります: 1. sqllib\java12 ディレクトリーで以下のコマンドを実行する: usejdbc2 2. CLP から以下のコマンドを実行する: db2set DB2_USE_JDK12=1 Java UDF およびストアード・プロシージャー・サポートの JDBC 1.22 ドライバー にスイッチバック するには、以下のステップを実行します: 1. sqllib\java12 ディレクトリーで以下のコマンドを実行する: usejdbc2 2. CLP から以下のコマンドを実行する: db2set DB2_USE_JDK12= 34.3.1.1 OS/2 上での JDK レベル 99 年 9 月以前にリリースされた JDK のバージョン 1.1.8 が稼働している OS/2 上ではいくつかのメッセージが表示されません。 お持ちの JDK 1.1.8 が最新版か どうか確認します。 34.3.1.2 HP-UX 上の Java2 Java2 ストアード・プロシージャーを実行するには、共用ライブラリー・パスを 以 下のように変更する必要があります。 export SHLIB_PATH=$JAVADIR/jre/lib/PA_RISC:$JAVADIR/ jre/lib/PA_RISC/classic:$HOME/sqllib/lib:/usr/lib:$SHLIB_PATH $JAVADIR は Java2 SDK のロケーションです。 ------------------------------------------------------------------------ 34.4 第 5 章 SQL プロシージャーの構築 34.4.1 SQL プロシージャー環境の設定 次の指示は、「セットアップ」で DB2 環境をセットアップ するために、指示に追 加されています。 SQL プロシージャーのサポートのために、 アプリケーション開発クライアントをサ ーバーにインストールする必要があります。 アプリケーション開発クライアントを インストールする情報については、 ご使用のプラットフォームの 概説およびイン ストール ブックを参照してください。ご使用のプラットフォームでの DB2 サポー トの C および C++ コンパイラー を調べるには、「プラットフォームでサポートさ れるソフトウェア」をご覧ください。 注: OS/2 の FAT ファイル・システムでは、SQL プロシージャーのスキーマ名 は、8 文字以内に制限されます。 9 文字以上のスキーマ名を使用するには、 HPFS ファイル・システムを 使用してください。 コンパイラーは、次の 2 つのパーツ (コンパイラーに対する環境変数の設定と コ ンパイル・コマンドの定義) での構成されています。 環境変数は、コンパイラーの バイナリー、ライブラリー、および 組み込みファイルへのパスを提供します。 コ ンパイル・コマンドは、DB2 が SQL プロシージャーで 生成された C ファイルをコ ンパイルするために使用するフルコマンドです。 34.4.2 コンパイラー環境変数の設定 下記で説明するように、OS/2、Windows、UNIX ベースのオペレーティング・システ ム で環境を構成する場合、それぞれ規則が異なります。 構成が必要のない場合も あります。また、 DB2_SQLROUTINE_COMPILER_PATH DB2 レジストリー変数を 環境変 数を適切に設定する実行可能スクリプトを示す ために設定する必要がある場合もあ ります。 注: db2set コマンドを 使用するか、ストアード・プロシージャー・ビルダーから 「SQL ストアード・プロシージャー作成オプション」ダイアログを使用して、 この DB2 レジストリー変数の値を設定してください。 「SQL ストアード・プ ロシージャー作成オプション」ダイアログを使用すると、 変更を有効にする ために物理的にデータベース・サーバーにアクセスしたり、 データベース・ サーバーを再始動する必要がなくなります。 OS/2 では以下の設定が必要です。 IBM VisualAge C++ (OS/2 版) バージョン 3.6: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxo\bin\setenv.cmd" IBM VisualAge C++ (OS/2 版) バージョン 4: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcpp40\bin\setenv.cmd" 注: このコマンドでは、C++ コンパイラーが c: ドライブにインストールされてい ると想定されています。 必要であれば、ドライブまたはパスを変更して、ご 使用のシステム の C++ コンパイラーの位置を反映させてください。 Windows 32 ビット・オペレーティング・システムでは、コンパイラーの環境変数 が SYSTEM 変数として設定されていると、構成は必要ありません。 そうでない場合 には、DB2_SQLROUTINE_COMPILER_PATH DB2 レジストリー変数 を次のように設定し てください。 Microsoft Visual C++ バージョン 5.0: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\devstudio\vc\bin\vcvars32.bat" Microsoft Visual C++ バージョン 6.0: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\Micros~1\vc98\bin\vcvars32.bat" IBM VisualAge C++ (Windows 版) バージョン 3.6: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxw\bin\setenv.bat" IBM VisualAge C++ (Windows 版) バージョン 4: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcppw40\bin\setenv.bat" 注: このコマンドでは、C++ コンパイラーが c: ドライブにインストールされてい ると想定されています。 必要であれば、ドライブまたはパスを変更して、ご 使用のシステム の C++ コンパイラーの位置を反映させてください。 UNIX ベースのオペレーティング・システムでは、DB2 は、ストアード・プロシージ ャーを最初にコンパイルする時に、実行可能 スクリプト・ファイル $HOME/sqllib/function/routine/sr_cpath ( コンパイラー環境変数のデフォルト値 が含まれます) を生成します。 デフォルト値がコンパイラーに適合しない場合は、 このファイルを編集してください。 あるいは、DB2_SQLROUTINE_COMPILER_PATH DB2 レジストリー変数を設定して、設定を指定する 別の実行可能スクリプトの全パス名 が含まれるようにすることもできます。(上記の例をご覧ください。) 34.4.3 コンパイル・コマンドのカスタマイズ アプリケーション開発クライアントのインストールは、 各プラットフォームでサポ ートされるコンパイラーのうちの最低 1 つで 動作するデフォルトのコンパイル・ コマンドを提供します。 AIX: IBM C Set++ for AIX バージョン 3.6.6 Solaris: SPARCompiler C++ バージョン 4.2 および 5.0 HP-UX: HP-UX C++ バージョン A.12.00 Linux: GNU/Linux g++ バージョン egcs-2.90.27 980315 (egcs-1.0.2 リリース) PTX: ptx/C++ バージョン 5.2 OS/2: IBM VisualAge C++ for OS/2 バージョン 3 Windows NT および Windows 2000: Microsoft Visual C++ バージョン 5.0 および 6.0 別のコンパイラーを使用する、またはデフォルトのコマンドをカスタマイズするに は、次の例のように、 DB2_SQLROUTINE_COMPILE_COMMAND を DB2 レジストリー変数 に設定 する必要があります。 db2set DB2_SQLROUTINE_COMPILE_COMMAND=compilation_command compilation_command オプション、およびストアード・プロシージャーを作成する のに必要な パラメーターを含む、C あるいは C++ コンパイル・コマンドです。 コンパイル・コマンドで、生成された SQC、C、PDB、DEF、EXP、メッセージ・ログ および 共有ライブラリー・ファイルのファイル名を置き換えるには、 SQLROUTINE_FILENAME キーワードを 使用してください。 AIX の場合のみ、エント リー・ポイント名を置き換えるには、 SQLROUTINE_ENTRY キーワードを使用しま す。 注: db2set コマンドを 使用するか、ストアード・プロシージャー・ビルダーから 「SQL ストアード・プロシージャー作成オプション」ダイアログを使用して、 この DB2 レジストリー変数の値を設定してください。 「SQL ストアード・プ ロシージャー作成オプション」ダイアログを使用すると、 変更を有効にする ために物理的にデータベース・サーバーにアクセスしたり、 データベース・ サーバーを再始動する必要がなくなります。 以下は、サーバー・プラットフォームでサポートされている C または C++ コンパ イラーの DB2_SQLROUTINE_COMPILE_COMMAND のデフォルト値です。 AIX IBM C (AIX 版) バージョン 3.6.6 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlc -H512 -T512 \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \ -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2 IBM C Set++ (AIX 版) バージョン 3.6.6 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlC -H512 -T512 \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \ -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2 DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない場合、 これがデフォルトのコンパイル・コマンドになります。 注: 64-bit SQL プロシージャー (AIX 版) をコンパイルするには、上のコマンド に -q64 オプションを 追加してください。 IBM VisualAge C++ (AIX 版) バージョン 4 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" vacbld コマンドの後に構成ファイルを指定しない場合、 SQL プロシージャーを作 成する最初の試行の時点で、DB2 は 以下のデフォルト構成ファイルを生成します: $HOME/sqllib/function/routine/sqlproc.icc DB2_SQLROUTINE_COMPILE_COMMAND の DB2 レジストリー値を設定する際、 自分で所 有する構成ファイルを使用したい場合は、自分で所有する 構成ファイルを指定する ことができます: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%/function/sqlproc.icc" HP-UX HP C Compiler バージョン A.11.00.03 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc +DAportable +ul -Aa +z \ -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \ ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \ -L$HOME/sqllib/lib -ldb2 HP-UX C++ バージョン A.12.00 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC +DAportable +a1 +z -ext \ -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \ ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \ -L$HOME/sqllib/lib -ldb2 DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない場合、 これがデフォルトのコンパイル・コマンドになります。 Linux GNU/Linux gcc バージョン 2.7.2.3 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2 GNU/Linux g++ バージョン egcs-2.90.27 980315 (egcs-1.0.2 release): db2set DB2_SQLROUTINE_COMPILE_COMMAND=g++ \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2 DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない場合、 これがデフォルトのコンパイル・コマンドになります。 PTX ptx/C バージョン 4.5 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -KPIC \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \ cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME ptx/C++ バージョン 5.2 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=c++ -KPIC \ -D_RWSTD_COMPILE_INSTANTIATE=0 -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \ cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない場合、 これがデフォルトのコンパイル・コマンドになります。 OS/2 IBM VisualAge C++ (OS/2 版) バージョン 3 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND="icc -Ge- -Gm+ -W2 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /B\"/NOFREE /NOI /ST:64000\" SQLROUTINE_FILENAME.def %DB2PATH%\lib\db2api.lib" DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない場合、 これがデフォルトのコンパイル・コマンドになります。 IBM VisualAge C++ (OS/2 版) バージョン 4 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" vacbld コマンドの後に構成ファイルを指定しない場合、 SQL プロシージャーを作 成する最初の試行の時点で、DB2 は 以下のデフォルト構成ファイルを生成します: %DB2PATH%\function\routine\sqlproc.icc DB2_SQLROUTINE_COMPILE_COMMAND の DB2 レジストリー値を設定する際、 自分で所 有する構成ファイルを使用したい場合は、自分で所有する 構成ファイルを指定する ことができます: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%\function\sqlproc.icc" Solaris SPARCompiler C バージョン 4.2 および 5.0 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -xarch=v8plusa -Kpic \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \ -R$HOME/sqllib/lib -ldb2 SPARCompiler C++ バージョン 4.2 および 5.0: db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC -xarch=v8plusa -Kpic \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \ -R$HOME/sqllib/lib -ldb2 DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない場合、 これがデフォルトのコンパイル・コマンドになります。 注: 1. コンパイラー・オプション、-xarch=v8plusa は、デフォルトのコンパイラ ー・コマンドに追加されています。このオプションが追加されることに関して の詳細は 34.8, "第 12 章 Solaris アプリケーションの構築" をご覧くださ い。 2. Solaris で 64-bit SQL プロシージャーをコンパイルするには、 -xarch=v8plusa オプションを 使用し、-xarch=v9 オプションを上のコマンド に追加する。 Windows NT および Windows 2000 注: SQL プロシージャーは Windows 98 または Windows 95 ではサポートされてい ません。 Microsoft Visual C++ バージョン 5.0 および 6.0 で使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cl -Od -W2 /TC -D_X86_=1 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll %DB2PATH%\lib\db2api.lib DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない場合、 これがデフォルトのコンパイル・コマンドになります。 IBM VisualAge C++ (Windows 版) バージョン 3.6 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND="ilib /GI SQLROUTINE_FILENAME.def &icc -Ti -Ge- -Gm+ -W2 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /B\"/ST:64000 /PM:VIO /DLL\" SQLROUTINE_FILENAME.exp %DB2PATH%\lib\db2api.lib" IBM VisualAge C++ (Windows 版) バージョン 4 を使用するには: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" vacbld コマンドの後に構成ファイルを指定しない場合、 SQL プロシージャーを作 成する最初の試行の時点で、DB2 は 以下のデフォルト構成ファイルを生成します: %DB2PATH%\function\routine\sqlproc.icc DB2_SQLROUTINE_COMPILE_COMMAND の DB2 レジストリー値を設定する際、 自分で所 有する構成ファイルを使用したい場合は、自分で所有する 構成ファイルを指定する ことができます: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%\function\sqlproc.icc" デフォルトのコンパイラー・オプションに戻す場合は、以下のコマンドを使用し て、 DB2_SQLROUTINE_COMPILE_COMMAND の DB2 レジストリー値をヌルに設定しま す: db2set DB2_SQLROUTINE_COMPILE_COMMAND= 34.4.4 中間ファイルを保存 SQL プロシージャーが正常に作成されなかった場合にできる中間ファイルは 手動で 削除する必要があります。これらのファイルは次のディレクトリーに保存されます: UNIX $DB2PATH/function/routine/sqlproc/$DATABASE/$SCHEMA/tmp $DB2PATH は、インスタンスが生成されたディレクトリーを表し、$DATABASE はデータベース名を $SCHEMA は、SQL プロシージャーが生成されたスキーマ 名を それぞれ表しています。 OS/2 および Windows %DB2PATH%\function\routine\sqlproc\%DATABASE%\%SCHEMA%\tmp %DB2PATH% インスタンスが生成されたディレクトリーを表し、%DATABASE% は データベース名を、%SCHEMA% SQL プロシージャーが生成されたスキーマ名を それぞれ表しています。 34.4.5 バックアップと復元 SQL プロシージャーが作成されると、生成済み共有ライブラリー/DLL が 2 MB より 小さい場合、これもカタログ表に保管されます。 データベースがバックアップおよ び復元されると、2 MB より小さいサイズの生成済み共有ライブラリー/DLL の ある SQL プロシージャーは、カタログ表に保存されたバージョンでバックアップおよび 復元されます。 2 MB より大きい生成済み共有ライブラリー/DLL のある SQL プロ シージャーが ある場合、データベースのバックアップと復元を行うとともに、 フ ァイル・システムのバックアップと復元も行ってください。 これを行わない場合、 syscat.procedures カタログ表のソースを使用して、SQL プロシージャーの 生成済 み共有ライブラリー/DLL を手動で再作成する必要があります。 注: データベースの回復時間には、回復中のデータベースに属するファイル・シス テムに あるすべての SQL プロシージャー実行可能プログラムが除去されま す。 索引作成構成パラメーター (indexrec) が RESTART に設定されている と、 すべての SQL プロシージャー実行可能プログラムは、カタログ表から抽 出され、 次の接続時にファイル・システムに書き戻されます。 設定されてい ないと、SQL 実行可能プログラムは、SQL プロシージャーの最初の実行で抽出 されます。 実行可能ファイルは、以下のディレクトリーに置かれます: UNIX $DB2PATH/function/routine/sqlproc/$DATABASE $DB2PATH は、インスタンスが生成されたディレクトリーを表し、$DATABASE はデータベース名を $SCHEMA は、SQL プロシージャーが生成されたスキーマ 名をそれぞれ表しています。 OS/2 および Windows %DB2PATH%\function\routine\sqlproc\%DATABASE% %DB2PATH% インスタンスが生成されたディレクトリーを表し、%DATABASE% は SQL プロシージャーが生成されたデータベース名をそれぞれ表しています。 34.4.6 SQL プロシージャーの作成 SQL の開発の際は、データベース・マネージャー構成パラメーターの KEEPDARI を 「NO」 に設定します。 SQL プロシージャーが一度実行され、ロードされたままの 状態だと、同じ名前でストアード・プロシージャーをドロップしたり、作成したり しようとすると、ライブラリーが更新できない、ファイル・システムから実行可能 ファイルがドロップされるなどの問題が発生する場合があります。また実行可能フ ァイルが削除できないため、データベースのドロップや変更をロールバックしよう とした時に、問題が発生する場合もあります。 KEEPDARI パラメーターの設定に関して 詳しくは、「アプリケーション構築ガイ ド」 の 「第 2 章 セットアップ」 の 「データベース・マネージャー構成ファイ ルの更新」 をご覧ください。 注: SQL プロシージャーは、パラメーターとして、以下のデータ・タイプをサポー トしていません: o LONG VARGRAPHIC o Binary Large Object (BLOB) o Character Large Object (CLOB) o Double-byte Character Large Object (DBCLOB) 34.4.7 ストアード・プロシージャーの呼び出し 'CALL コマンドの使用' の始めの段落で読み取ることができます: CALL コマンドを使用するには、各出力パラメーターのプレースホルダーで ある '?' と同様に、ストアード・プロシージャー名に入力、もしくは入出力パラメータ ーを 加えたものを入力する必要があります。 CALL コマンドの構文について詳細 は、10.14, "CALL" をご覧ください。 34.4.8 コンパイルされた SQL プロシージャーの配布 注: コンパイルされた SQL プロシージャーを DB2 サーバー間で配布するには、 コンパイルされた SQL プロシージャーの配布元または配布先となる 各 DB2 サーバーで以下の手順を行う必要があります。 ステッ フィックスパック 3 をインストールする。 プ 1. ステッ db2updv7 コマンドを実行して、 コンパイルされた SQL プロシー プ 2. ジャーを DB2 が抽出およびインストール できるようにする。 db2updv7 -d database_name SQL プロシージャーが定義されると、C プログラムへの変換、 プリコンパイル、タ ーゲット・データベースに対するバインドが行われ、 コンパイルおよびリンクされ て共有ライブラリーが作成されます。 コンパイルおよびリンクのステップでは、C または C++ コンパイラーが データベース・サーバー・マシンで使用可能でなけれ ばなりません。 ただし、SQL プロシージャーは一度定義されると、 同じプラット フォームで実行されているが C または C++ コンパイラーに 必ずしもアクセスする 必要のない DB2 データベースに、 コンパイルされた形式で配布することができま す。 DB2 では、ユーザーは SQL プロシージャーをコンパイル済みの形式でデータ ベースから抽出し、 コンパイル済みの形式で別のデータベースにインストールする ことが可能です。 DB2 は、抽出およびインストール操作に対してコマンド行インターフェースと プロ グラミング・インターフェースの両方を提供します。 コマンド行インターフェース は、2 つの CLP コマンド GET ROUTINE および PUT ROUTINE で 構成されていま す。 プログラマティック・インターフェースは、2 つの組み込ストアード・プロシ ージャー GET_ROUTINE_SAR および PUT_ROUTINE_SAR で構成されています。 コマン ド行インターフェースの詳細については、 「コマンド解説書」を参照してくださ い。 プログラミング・インターフェースの詳細については、 「SQL 解説書」を参 照してください。 コンパイルされた SQL プロシージャーを 1 つのデータベース・サーバーから 別の データベース・サーバーに配布するには、 以下の手順を行います。 ステップ アプリケーションの一部である SQL プロシージャーの定義を含め、 1. アプリケーションを 開発する。 ステップ プロシージャーをテストした後、各プロシージャーの コンパイル済 2. みバージョンを異なるファイルに抽出する。 詳しくは、「コマンド 解説書」の GET ROUTINE コマンド、または 「SQL 解説書」の GET_ROUTINE_SAR ストアード・プロシージャーを 参照してくださ い。 ステップ 2 で作成されたファイルを使用して、 PUT ROUTINE コマンドを実行 3. するか、 PUT_ROUTINE_SAR ストアード・プロシージャーを呼び出し て、 各サーバーにそれぞれのプロシージャーのコンパイル済みバー ジョンをインストールする。 各データベース・サーバーのオペレー ティング・システムと DB2 のレベルは 同じでなければなりませ ん。 ------------------------------------------------------------------------ 34.5 第 7 章 HP-UX アプリケーションの構築 34.5.1 HP-UX C 「マルチスレッド・アプリケーション」で、スクリプト・ファイル bldmt が別のコ ンパイル・オプションについて訂正されています。 新バージョンは sqllib/samples/c ディレクトリーの中にあります。 34.5.2 HP-UX C++ 構築スクリプトの中で、C++ コンパイラー変数 CC が、HP aC++ コンパイラーのた めに、aCC と修正されています。 この訂正された構築スクリプトは sqllib/samples/cpp ディレクトリーの中にあります。 "+u1" コンパイル・オプションは、 aCC コンパイラーで、ストアード・プロシージ ャーと UDF の作成に使用してください。このオプションは、未調整のデータ・アク セスを許可します。サンプルの 作成スクリプトが DB2 (HP-UX 版) とともに出荷さ れ、bldsrv と bldudf、およびサンプルの makefile は、 このオプションでは更新 されていません。使用する前に、このオプションを追加してください。 bldsrv と bldudf スクリプトの新しいコンパイル・ステップです: aCC +DAportable +u1 -Aa +z -ext -I$DB2PATH/include -c $1.C 「マルチスレッド・アプリケーション」で、スクリプト・ファイル bldmt が別のコ ンパイル・オプションについて訂正されています。 新バージョンは sqllib/samples/cpp ディレクトリーの中にあります。 ------------------------------------------------------------------------ 34.6 第 9 章 OS/2 アプリケーションの構築 34.6.1 VisualAge C++ (OS/2 版) バージョン 4.0 OS/2 と Windows の場合、本セクションで説明されている export コマンドの 代わ りに、set コマンドを使用します。たとえば、set CLI=tbinfo です。 「DB2 CLI アプリケーション」の「組み込み SQL アプリケーションの構築と実行」 で、 OS/2 および Windows 版では cli.ic ファイルの代わりに cliapi.icc ファイ ルを 使用しなければなりません。それは、組み込み SQL アプリケーションが cliapi.icc に リンクした db2api.lib ライブラリーを必要とするためです。 ------------------------------------------------------------------------ 34.7 第 10 章 PTX アプリケーションの構築 34.7.1 ptx/C++ ライブラリーは、ストアード・プロシージャーおよびユーザー定義の関数を構築す るために、 -shared オプションにリンクをはる必要があります。 sqllib/samples ディレクトリーで、makefile、 組み込みスクリプト bldsrv、および bldudf は、 bldsrv からの以下のステップと同様、このオプションを含んでいる必要がありま す: c++ -shared -G -o $1 $1.o -L$DB2PATH/lib -ldb2 ------------------------------------------------------------------------ 34.8 第 12 章 Solaris アプリケーションの構築 34.8.1 SPARCompiler C++ C/C++ アプリケーション実行時 および Solaris 上での SQL プロシージャー実行時 の問題 Sun WorkShop C/C++ コンパイラーを使用中に、実行可能なプログラムで以下のよう なエラーを受け取るといった 問題が発生する場合があります。 1. 1 行目に構文エラー: 予期しない `(' 2. ksh: <アプリケーション名>: 実行できません (アプリケーション名はコンパ イル済み実行可能プログラム) libdb2.so にリンクする際、コンパイラーが有効な実行可能プログラムを生成しな いといった問題が起きる場合があります。 この問題を解決するために考えられるこ とは、コンパイル、およびリンク・コマンドに以下のコンパイラー・オプションを 追加します: -xarch=v8plusa たとえば、サンプル・アプリケーションの dynamic.sqc をコンパイルしている場 合: embprep dynamic sample embprep utilemb sample cc -c utilemb.c -xarch=v8plusa -I/export/home/db2inst1/sqllib/include cc -o dynamic dynamic.c utilemb.o -xarch=v8plusa -I/export/home/db2inst1/sqllib/include \ -L/export/home/db2inst1/sqllib/lib -R/export/home/db2inst1/sqllib/lib -l db2 注: 1. Solaris 上で SQL プロシージャーをお使いで、さらに DB2_SQLROUTINE_COMPILE_COMMAND の プロファイル変数を使用している場合、 上記のコンパイラー・オプションが含まれているか確認する。 デフォルトの コンパイラー・コマンドにはこのオプションが含まれています: db2set DB2_SQLROUTINE_COMPILE_COMMAND="cc -# -Kpic -xarch=v8plusa -I$HOME/sqllib/include \ SQLROUTINE_FILENAME.c -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -R$HOME/sqllib/lib -ldb2 2. Solaris で 64-bit SQL プロシージャーをコンパイルするには、 -xarch=v8plusa オプションを 使用し、-xarch=v9 オプションを上のコマンド に追加する。 ------------------------------------------------------------------------ 34.9 第 13 章 Windows 32-bit オペレーティング・システムのアプリケーションの 構築 34.9.1 VisualAge C++ バージョン 4.0 OS/2 と Windows の場合、本セクションで説明されている export コマンドの 代わ りに、set コマンドを使用します。たとえば、set CLI=tbinfo です。 「DB2 CLI アプリケーション」の「組み込み SQL アプリケーションの構築と実行」 で、 OS/2 および Windows 版では cli.icc ファイルの代わりに cliapi.icc ファ イルを 使用しなければなりません。それは、組み込み SQL アプリケーションが cliapi.icc に リンクした db2api.lib ライブラリーを必要とするためです。 ------------------------------------------------------------------------ アプリケーション開発の手引き ------------------------------------------------------------------------ 35.1 第 2 章 DB2 アプリケーションのコーディング 35.1.1 IBM DB2 ユニバーサル・データベース・プロジェクトおよびツール Microsoft Visual C++ のアドイン db2vccmd コマンド (ステップ 1) を実行する前に、 現在ご使用のログイン ID で 少なくとも 1 回 Visual C++ を開始および 停止していることを確認してくださ い。Visual C++ を最初に実行するときに、ユーザー ID 用に プロファイルが作成 され、db2vccmd コマンドによって更新されます。一度も開始せずに db2vccmd を実 行しようとすると、 以下のようなエラーが出される可能性があります。 「DB2 プロジェクト・アドインの登録 ...失敗しました! (rc = 2)」 ------------------------------------------------------------------------ 35.2 第 6 章 一般的な DB2 アプリケーション技法 35.2.1 順次値の生成 順次値を生成することは、一般的なデータベース・アプリケーション開発の問題で す。 この問題を解決する最善の方法は、SQL でシーケンス・オブジェクトとシーケ ンス式を 使用することです。 各シーケンス・オブジェクト は、 固有の名前が付 けられたデータベース・オブジェクトであり、 シーケンス式によってのみアクセス できます。 シーケンス式 には、 PREVVAL 式と NEXTVAL 式の 2 つがあります。 PREVVAL 式は、前のステートメントに対して指定されたシーケンスについて 最後に 生成された値を返します。 NEXTVAL シーケンス式は、シーケンス・オブジェクトの 値を増やして、 そのシーケンス・オブジェクトの新しい値を返します。 シーケンス・オブジェクトを作成するには、CREATE SEQUENCE ステートメントを実 行します。 たとえば、デフォルトの属性を使用して id_values というシーケン ス・オブジェクトを 作成するには、次のステートメントを実行します。 CREATE SEQUENCE id_values シーケンス・オブジェクトの現行値を表示するには、 PREVVAL 式を使用して VALUES ステートメントを実行します。 VALUES PREVVAL FOR id_values 1----------- 1 1 レコードが選択されました。 シーケンス・オブジェクトの現行値は繰り返し検索することができます。 シーケン ス・オブジェクトが返す値は、NEXTVAL 式を実行するまで変わりません。 以下の例 では、NEXTVAL 式がシーケンス・オブジェクトの値を増やすまで、 PREVVAL は値 1 を返します。 VALUES PREVVAL FOR id_values 1----------- 1 1 レコードが選択されました。 VALUES PREVVAL FOR id_values 1----------- 1 1 レコードが選択されました。 VALUES NEXTVAL FOR id_values 1----------- 2 1 レコードが選択されました。 VALUES PREVVAL FOR id_values 1----------- 2 1 レコードが選択されました。 シーケンス・オブジェクトの 次の値で列の値を更新するには、次のように UPDATE ステートメントに NEXTVAL 式を組み込みます。 UPDATE staff SET id = NEXTVAL FOR id_values WHERE id = 350 シーケンス・オブジェクトの次の値を使用して 新しい行を表に挿入するには、次の ように INSERT ステートメントに NEXTVAL 式を組み込みます。 INSERT INTO staff (id, name, dept, job) VALUES (NEXTVAL FOR id_values, 'Kandil', 51, 'Mgr') PREVVAL 式と NEXTVAL 式について詳しくは、「SQL 解説書」を参照してください。 35.2.1.1 シーケンスの振る舞いの制御 アプリケーションの要求を満たすようにシーケンス・オブジェクトの振る舞いを 調 整することができます。 CREATE SEQUENCE ステートメントを実行して新しいシーケ ンス・オブジェクトを作成する場合、 および既存のシーケンス・オブジェクトに対 して ALTER SEQUENCE を実行する場合は、 シーケンス・オブジェクトの属性を変更 します。 指定可能なシーケンス・オブジェクトの属性のいくつかを以下に示しま す。 データ・タイプ CREATE SEQUENCE ステートメントの AS 文節は、シーケンス・オブジェクトの 数値データ・タイプを指定します。 「SQL 解説書」の付録「SQL 制限」に示 されているように、 このデータ・タイプはシーケンス・オブジェクトの使用 可能な最小値と最大値を決定します。 シーケンス・オブジェクトのデータ・ タイプを変更することはできません。 代わりに、DROP SEQUENCE ステートメ ントを実行してから 新しいデータ・タイプで CREATE SEQUENCE ステートメン トを実行することにより シーケンス・オブジェクトをドロップする必要があ ります。 開始値 CREATE SEQUENCE ステートメントの START WITH 文節は、シーケンス・オブジ ェクトの 初期値を設定します。 ALTER SEQUENCE ステートメントの RESTART WITH 文節は、シーケンス・オブジェクトの値を指定値にリセットします。 最小値 MINVALUE 文節は、シーケンス・オブジェクトの最小値を設定します。 最大値 MAXVALUE 文節は、シーケンス・オブジェクトの最大値を設定します。 増分値 INCREMENT BY 文節は、各 NEXTVAL 式がシーケンス・オブジェクトに追加する 値を設定します。 シーケンス・オブジェクトの値を減らすには、負の値を指 定します。 シーケンス循環 CYCLE 文節は、シーケンス・オブジェクトの値が最小値または最大値に達した とき、 次の NEXTVAL 式でその値を初期値に戻します。 たとえば、開始値が 0、最大値が 1000、各 NEXTVAL 式での増分値が 2 で、 最大 値に達したときに開始値に戻る id_values というシーケンス・オブジェクトを 作 成するには、次のステートメントを実行します。 CREATE SEQUENCE id_values START WITH 0 INCREMENT BY 2 MAXVALUE 1000 CYCLE CREATE SEQUENCE ステートメントと ALTER SEQUENCE ステートメントについて詳し くは、 「SQL 解説書」を参照してください。 35.2.1.2 シーケンス・オブジェクトによるパフォーマンスの向上 識別列のように、シーケンス・オブジェクトを使用して値を生成する場合、 一般 に、他の方法と比べてアプリケーションのパフォーマンスが向上します。 シーケン ス・オブジェクトを制御する別の方法として、現行値を保管する単一列表を 作成 し、トリガーを使用して、またはアプリケーションの制御下で、 その値を増やす方 法があります。 単一列表にアプリケーションが並行してアクセスする分散環境で は、 順番に表にアクセスすることを強制するために必要になるロックが、 パフォ ーマンスに大きく影響します。 シーケンス・オブジェクトは、単一列表を使用する方法に関連するロック発行を行 わずに、 シーケンス値をメモリーにキャッシュして DB2 の応答時間を改善するこ とができます。 シーケンス・オブジェクトを使用するアプリケーションのパフォー マンスを最大にするには、 シーケンス・オブジェクトが適切な量のシーケンス値を 確実にキャッシュするようにします。 CREATE SEQUENCE ステートメントおよび ALTER SEQUENCE ステートメントの CACHE 文節は、 DB2 が生成してメモリーに保管 するシーケンス値の最大数を指定します。 シーケンス・オブジェクトが順序正しく値を生成する必要があり、 システム障害ま たはデータベース非活動化でその順序が途切れないようにする場合、 ORDER および NO CACHE 文節を CREATE SEQUENCE ステートメントで使用します。 NO CACHE 文節 は、生成された値が途切れないことを保証します。 この場合、シーケンス・オブジ ェクトが新しい値を生成するたびに データベース・ログに書き込むため、アプリケ ーションのパフォーマンスが低下します。 35.2.1.3 シーケンス・オブジェクトと識別列の比較 シーケンス・オブジェクトと識別列は DB2 アプリケーションに対して 同じような 目的を果たすために使用されているように見えますが、 いくつかの重要な違いがあ ります。 * 識別列は、単一表の列の値を自動的に生成する。 シーケンス・オブジェクト は、SQL ステートメントで使用可能な順次値を生成します。 * 識別列は、固有であることが保証される値を生成する。 シーケンス・オブジ ェクトは、 CYCLE 文節を CREATE SEQUENCE ステートメントまたは ALTER SEQUENCE ステートメントに組み込むことによって、 重複した値を生成するこ とができます。 ------------------------------------------------------------------------ 35.3 第 7 章 ストアード・プロシージャー 35.3.1 DECIMAL タイプは Linux Java ルーチンで失敗する この問題は、IBM Developer Kit for Java が /usr/lib ディレクトリーにあるライ ブラリーに対するリンクを作成しないために起きます。 DB2 ルーチンのセキュリテ ィ・モデルでは、標準システム・ライブラリーの外部にある ライブラリーにアクセ スすることができません。Linux の Java ルーチンで DECIMAL をサポートできるよ うにするには、次のステップを実行してください。 1. 次のコマンドを root 権限で実行することで、 IBM Developer Kit for Java ライブラリーから /usr/lib/ への記号リンクを 作成する。 IBM Developer Kit for Java 1.1.8: ln -sf /usr/jdk118/lib/linux/native_threads/* /usr/lib/ IBM Developer Kit for Java 1.3: ln -sf /opt/IBMJava2-13/jre/bin/*.so /usr/lib/ 2. ldconfig コマンドを実行して、 システムの広域ライブラリーのリストを更新 する。 35.3.2 再帰的ストアード・プロシージャーでのカーソルの使用 SQL プロシージャーまたは組み込み SQL で書かれたストアード・プロシージャーの 使用時にエラーを回避するには、再帰的 CALL ステートメントを実行する前に、す べての オープン・カーソルをクローズしてください。 たとえば、次のようなコードの断片を含むストアード・プロシージャー MYPROC が あるとします。 OPEN c1; CALL MYPROC();CLOSE c1; MYPROC が再帰的 CALL ステートメントを実行するときに、カーソル c1 が まだオ ープンしているため、MYPROC が呼び出されたときに DB2 はエラーを返します。 DB2 から返される特定のエラーは、MYPROC がカーソルで実行するアクションによっ て 異なります。 MYPROC を正常に呼び出すためには、次の例のように、ネストされた CALL ステート メントの 前にオープン・カーソルをクローズするように、MYPROC を 書き換えてく ださい。 OPEN c1; CLOSE c1; CALL MYPROC(); ネストされた CALL ステートメントを実行する前にオープン・カーソルをすべて ク ローズして、エラーを回避してください。 35.3.3 OLE 自動化ストアード・プロシージャーに関する記述 以下の段落の最後の文は、「OLE オートメーション・ストアード・プロシージャ ー」セクションの第 2 段落から欠落しています: OLE 自動化オブジェクトをコーディングした後、 CREATE PROCEDURE ステートメントを使用して、そのオブジェクトの メソッドをストアード・プロシージャーとして登録する必要があります。 OLE 自動化ストアード・プロシージャーを登録するには、 LANGUAGE OLE 文節で CREATE PROCEDURE ステートメントを実行します。 外部名は、OLE 自動化オブジェクトとメソッド名を ! (感嘆符) で区切って示す OLE progID で構成されています。OLE 自動化オブジェクトは、処理中の サーバー (.DLL) として実装する必要があります。 ------------------------------------------------------------------------ 35.4 第 12 章 複合オブジェクトでの作業: ユーザー定義構造化タイプ 35.4.1 構造化タイプ属性を列に挿入する 以下の規則が、組み込み静的 SQL ステートメントに適用されます: ユーザー定義構 造化タイプの属性を、属性と同じタイプの列に属性として挿入するには、 インスタ ンスを示すホスト変数を括弧で囲み、右小括弧に 2 つのドット演算子と 属性名を 追加します。 たとえば、以下のような状態になります。 - PERSON_T は VARCHAR(30) の属性 NAME を含む構造化タイプです。 - T1 は VARCHAR(30) の列 C1 を含む表です。 - personhv はプログラム言語で PERSON_T に宣言されたホスト変数です。 NAME 属性を列 C1 に挿入する正しい構文は次のようになります。 EXEC SQL INSERT INTO T1 (C1) VALUES ((:personhv)..NAME) ------------------------------------------------------------------------ 35.5 第 13 章 ラージ・オブジェクト (LOB) の使用 35.5.1 連合データベース・システムでのラージ・オブジェクト (LOB) サポート DB2 は、文字ラージ・オブジェクト (CLOB)、2 バイト文字ラージ・オブジェクト (DBCLOB)、 および バイナリー・ラージ・オブジェクト の、3 つのタイプのラー ジ・オブジェクト (LOB) を サポートします。DB2 LOB サポートの一般情報につい ては、以下の DB2 ブックを参照してください。 * DB2 アプリケーション開発の手引き * DB2 SQL 解説書 * DB2 管理の手引き: 計画 連合データベース・システムでは、リモート・データ・ソース上の LOB にアクセス して 取り扱うことができます。LOB は非常に大きなデータになることがあるため、 リモート・データ・ソースからの LOB の転送にはかなりの時間がかかることがあり ます。DB2 連合データベースは、データ・ソースからの LOB データの転送を最小化 しようとするとともに、DB で LOB を具体化することなく、 要求された LOB デー タをデータ・ソースから要求しているアプリケーションに直接引き渡そうと しま す。 このセクションでは、次の点について説明します。 * DB2 による LOB の検索方法 * アプリケーションによる LOB ロケーターの使用方法 * LOB の制限 * LOB データ・タイプおよび LOB 以外のデータ・タイプ間のマッピング * システムの調整 35.5.1.1 DB2 による LOB の検索方法 DB2 連合システムは、LOB ストリーミングおよび LOB の具体化という 2 つの LOB 検索メカニズムを 使用します。 LOB ストリーミング LOB ストリーミングで、LOB データは段階的に検索されます。DB2 は、完全にプッ シュダウンされる 照会の結果セットにあるデータに対して LOB ストリーミングを 使用します。たとえば、次の照会を 考えてみてください。 SELECT empname, picture FROM orc_emp_table WHERE empno = '01192345' ここで、picture は LOB 列を表し、orc_emp_table は 社員データを含む Oracle の表を指すニックネームを表します。DB2 照会プロセッサーが Oracle データ・ソ ースにある照会全体を実行することにした場合、DB2 照会プロセッサーは ストリー ミングを行うために picture 列にマークを付けます。実行時に、 LOB がストリー ミングを行うためにマークされていることを DB2 が通知すると、DB2 は データ・ ソースから LOB を段階的に検索します。検索が終わると、DB2 はアプリケーショ ン・メモリー・スペースに データを転送します。 LOB の具体化 LOB の具体化で、リモート LOB データは DB2 によって検索され、 連合サーバーに ローカルに格納されます。DB2 が LOB の具体化を使うのは、以下の場合です。 * LOB 列が据え置き、またはストリームできない。 * データを転送する前に、関数が LOB 列にローカルに適用しなければならな い。これは リモート・データ・ソースで利用不能な関数を DB2 が補正すると きに起こります。たとえば、 Microsoft SQL Server では LOB 列に対する SUBSTR 関数は提供されていません。関数を補正するために、 DB2 は LOB 列 をローカルに具体化し、検索された LOB に DB2 SUBSTR 関数を適用します。 35.5.1.2 アプリケーションでの LOB ロケーターの使用方法 アプリケーションは、リモート・データ・ソースに格納されている LOB に対して LOB ロケーターを要求することができます。LOB ロケーターはホスト変数に 格納さ れている 4 バイトの値で、プログラムはこれを使用してデータベース・システムに 保持されている LOB 値 (または LOB 式) を参照します。LOB ロケーターを使用す ると、 プログラムは、正規のホスト変数に格納されている LOB 値と同じように、 LOB 値を 操作することができます。LOB ロケーターを使用することで、LOB 値をサ ーバーから アプリケーションに (また、アプリケーションからサーバーに) トラン スポートする 必要がなくなります。LOB ロケーターの追加情報については、 「ア プリケーション開発の手引き」を参照してください。 DB2 は、リモート・データ・ソースから LOB を検索し、LOB を DB2 に格納してか ら、 格納した LOB に LOB ロケーターを実行することができます。LOB ロケーター がリリースされるのは、 以下の場合です。 * アプリケーションが "FREE LOCATOR" SQL ステートメントを実行する場合 * アプリケーションが COMMIT ステートメントを実行する場合 * DB2 が再始動される場合 35.5.1.3 LOB の制限 LOB の使用や検索に際しては、以下の点を考慮してください。 * DB2 は、リモート LOB をファイル参照変数にバインドできません。 * LOB は、パススルー・モードではサポートされません。 35.5.1.4 LOB データ・タイプおよび LOB 以外のデータ・タイプ間のマッピング DB2 LOB データ・タイプを、データ・ソースにある LOB 以外のデータ・タイプにマ ップできる ケースが 2、3 あります。DB2 LOB タイプの列と、データ・ソースの対 応列との間のマッピングを 作成する必要がある場合、対応するタイプとして、でき れば LOB データ・タイプを使用することをお勧めします。 マッピングを作成するには、作成タイプ・マッピング DDL ステートメントを使用し ます。例: CREATE TYPE MAPPING my_oracle_lob FROM sysibm.clob TO SERVER TYPE oracle TYPElong パラメーターの意味は次の通りです。 my_oracle_lob タイプ・マッピングの名前です。 sysibm.clob DB2 CLOB データ・タイプです。 oracle 接続先サーバーのタイプです。 long Oracle データ・タイプに対応するタイプです。 35.5.2 システムの調整 リモート LOB を検索するアプリケーションが、ステートメントを処理するための システム・リソースが不足していることを示すエラー・メッセージを返した場合に は、 データベース構成ファイルにある、アプリケーションのヒープ・サイズ・パラ メーター、 APPLHEAPSZ の値を増やしてください。例: DB2 UPDATE DB CFG FOR EMPLOYEE USING APPLHEAPSZ 512 。ここで、EMPLOYEE は 調節しているデータベース名で、512 はアプリケーション のヒープ・サイズ・パラメーターの 値です。 ------------------------------------------------------------------------ 35.6 第 5 部 DB2 プログラミングに関する考慮事項 35.6.1 IBM DB2 OLE DB Provider IBM DB2 バージョン 7.1 フィックスパック 1 またはそれ以降をインストールする と、 DB2 で次のエラーの原因となる条件が訂正されます。 プロバイダーの初期化でエラーが発生したため、テスト接続が失敗しました。 現在 IBM OLE DB Provider を使用できません。詳しくは README ファイルを 参照してください。 IBM OLE DB Provider (DB2 版) の使用法についての詳細は、 http://www.ibm.com/software/data/db2/udb/ad/v71/oledb.html を参照してくださ い。 ------------------------------------------------------------------------ 35.7 第 20 章 C および C++ でのプログラミング 以下の表は、第 7 章 「ストアード・プロシージャー」、第 15 章 「"ユーザー定 義関数およびメソッド」、 および第 20 章「C および C++ でのプログラミング"」 の補足です。 この表は、ストアード・プロシージャー、UDF、およびメソッドの SQL データ・タイプおよび C データ・タイプ間のサポートされるマッピングをリス トしています。 35.7.1 C/C++ ストアード・プロシージャー、関数、およびメソッドのタイプ 表 22. C/C++ にマップされる SQL データ・タイプ宣言 SQL 列タイプ C/C++ データ・タイプ SQL 列タイプの記述 SMALLINT sqlint16 16 ビット符号付き整数 (500 または 501) INTEGER(496 または sqlint32 32 ビット符号付き整数 497) BIGINT sqlint64 64 ビット符号付き整数 (492 または 493) REAL float 単精度浮動小数点 (480 または 481) DOUBLE double 倍精度浮動小数点 (480 または 481) DECIMAL(p ,s ) サポートされていませ 10 進数を渡すには、パラメー (484 または 485) ん。 ターを DECIMAL からキャスト 可能にデータ・タイプ (たとえ ば CHAR または DOUBLE) およ び明示的に引き数をこのタイプ にキャストするように定義しま す。 CHAR(n ) char[n+1 ] ここで、 n 固定長、ヌル終了文字ストリン (452 または 453) はデータを保持できる大 グ きさ 1<=n <=254 CHAR(n ) FOR BIT DATA char[n+1 ] ここで、 n 固定長文字ストリング (452 または 453) はデータを保持できる大 きさ 1<=n <=254 VARCHAR(n ) char[n+1 ] ここで、 n ヌル終了可変長ストリング (448 または 449) (460 はデータを保持できる大 または 461) きさ 1<=n <=32 672 VARCHAR(n ) FOR BIT struct { ヌル終了可変長文字ストリング DATA sqluint16 長; でない (448 または 449) char[n ] } 1<=n <=32 672 LONG VARCHAR struct { ヌル終了可変長文字ストリング (456 または 457) sqluint16 長; でない char[n ] } 32 673<=n <=32 700 CLOB(n ) struct { 4 バイトストリング長標識のヌ (408 または 409) sqluint32 長; ル終了可変長文字ストリングで char data[n]; ない } 1<=n <=2 147 483 647 BLOB(n ) struct { 4 バイト・ストリング長標識の (404 または 405) sqluint32 長; ヌル終了可変長バイナリー・ス char data[n]; トリングでない } 1<=n <=2 147 483 647 DATE char[11] ヌル終了文字形式 (384 または 385) TIME char[9] ヌル終了文字形式 (388 または 389) TIMESTAMP char[27] ヌル終了文字形式 (392 または 393) 注: 以下のデータ・タイプは WCHARTYPE NOCONVERT オプションで再コンパイル 時に DBCS または EUC 環境でのみ使用可能です。 GRAPHIC(n ) sqldbchar[n+1 ] ここ 固定長、ヌル終了 2 バイト文 (468 または 469) で、n はデータを保持で 字ストリング きる大きさ 1<=n <=127 VARGRAPHIC(n ) sqldbchar[n+1 ] ここ ヌル終了、可変長 2 バイト文 (400 または 401) で、n はデータを保持で 字ストリングでない きる大きさ 1<=n <=16 336 LONG VARGRAPHIC struct { ヌル終了、可変長 2 バイト文 (472 または 473) sqluint16 長; 字ストリングでない sqldbchar[n ] } 16 337<=n <=16 350 DBCLOB(n ) struct { 4 バイトストリング長標識のヌ (412 または 413) sqluint32 長; ル終了可変長文字ストリングで sqldbchar data[n]; ない } 1<=n <=1 073 741 823 ------------------------------------------------------------------------ 35.8 第 21 章 Java でのプログラミング 35.8.1 PARAMETER STYLE JAVA プロシージャーおよび関数の Java メソッド・シグ ニチャー Java メソッド名を CREATE PROCEDURE または CREATE FUNCTION ステートメントの EXTERNAL NAME 文節で後から指定する場合、Java メソッド・シグニチャーは プロ シージャーや、関数の後で指定されるシグニチャーに、マッピングされている デフ ォルトの Java タイプに対応している必要があります。 たとえば、SQL タイプの INTEGER のデフォルト Java マッピングは、 「int」 で、「java.lang.Integer」 ではありません。 35.8.2 JDBC アプレット・サーバーに接続中 Java アプレットが使用する db2java.zip ファイルが JDBC アプレット・サーバー と 同じフィックスパック・レベルにあることが重要です。通常の状況では、 db2java.zip は、資料の図 22 に 示されているように、JDBC アプレット・サーバ ーが実行されている Web サーバーからロード されます。これにより一致が保証さ れます。ただし、構成が別の場所から db2java.zip を ロードする Java アプレッ トを持っている場合は、不一致が起きることがあります。 フィックスパック 2 以 前では、これにより予期しない障害が発生する可能性がありました。 フィックスパ ック 2 では、2 つのファイル間でのフィックスパック・レベルの一致は、接続時に 厳しく 強制されます。不一致が見つかると、接続は拒否され、クライアントは次の 例外の 1 つを 受け取ります。 * db2java.zip がフィックスパック 2 またはそれ以降の場合: COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC ドライバー] CLI0621E JDBC サーバー構成がサポートされていない。 * db2java.zip がフィックスパック 2 以前の場合: COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC ドライバー] CLI0601E ステートメント・ハンドルが無効か、またはステートメントがクローズされた。 SQLSTATE=S1000 不一致が起きた場合、JDBC アプレット・サーバーは次のメッセージの 1 つを jdbcerr.log ファイルに 記録する。 * JDBC アプレット・サーバーがフィックスパック 2 またはそれ以降の場合: jdbcFSQLConnect: JDBC アプレット・サーバーおよび クライアント (db2java.zip) のバージョンが一致しません。接続を継続できません。einfo= -111 * JDBC アプレット・サーバーがフィックスパック 2 以前の場合: jdbcServiceConnection(): 無効な要求を 受け取った。einfo= 0 ------------------------------------------------------------------------ 35.9 付録 B サンプル・プログラム 以下は、「オブジェクトのリンクと埋め込みサンプル」セクションに追加されてい ます: salarycltvc Visual Basic ストアード・プロシージャー、salarysrv という Visual C++ DB2 CLI サンプル。 SALSVADO OLE 自動化ストアード・プロシージャー・サンプル (SALSVADO) および SALCLADO クライアント (SALCLADO) は、32-bit Visual Basic と ADO で実装されており、 staff2 表内の給与の中央値を計算します。 ------------------------------------------------------------------------ CLI の手引きおよび解説書 ------------------------------------------------------------------------ 36.1 ランタイム・クライアントを使用するデータベース・ユーティリティーのバイ ンド ランタイム・クライアントを使用して、データベース・ユーティリティー (インポ ート、エクスポート、 REORG、コマンド行プロセッサー)、および DB2 CLI バイン ド・ファイルを、データベースとともに使用する前に 各データベースにバインドす ることはできません。 DB2 管理クライアントまたは DB2 アプリケーション開発ク ライアントを使用する必要があります。 データベース・ユーティリティーおよび DB2 CLI バインド・ファイルを、 各デー タベースとともに使用する前にそれらのデータベースにバインドしなければなりま せん。 ネットワーク環境では、異なるオペレーティング・システムで実行している 複数のクライアントを使用しているか、または異なるバージョンやサービス・レベ ルの DB2 を使用している場合、各オペレーティング・システムと DB2 のバージョ ンの 組み合わせに対して、ユーティリティーを一度ずつバインドしなければなりま せん。 ------------------------------------------------------------------------ 36.2 CLI アプリケーションで静的 SQL の使用 CLI アプリケーションでの静的 SQL の使用について、詳しくは以下の Web ページ をご覧ください: http://www.ibm.com/software/data/db2/udb/staticcli/ ------------------------------------------------------------------------ 36.3 JDBC/ODBC/CLI 静的プロファイル の制限 JDBC/ODBC/CLI 静的プロファイルは、現在、簡単なアプリケーションをターゲット としています。 多くの機能内容や、実行中の複雑なプログラム・ロジックが複雑な アプリケーションを意味しているわけではありません。 SQL ステートメントは、プロファイル・セッションで取り込まれている間、 正常に 実行する必要があります。 マッチング・セッションでは、アンマッチの動的ステー トメントは 動的 JDBC/ODBC/CLI コールとして実行が継続します。 SQL ステートメントはステートメント・マッチングで有効な候補であるには とり込 まれたり、バインドされたりしたステートメントが文字単位で等しくならなければ なりません。 スペース は有効です: たとえば、"COL = 1" は "COL=1" と異なると 見なされます。 一致するヒット数を増やすため、リテラルのインプレースでパラメ ーター・マーカーを 使用します。 事前バインドの静的 SQL ステートメントがあるアプリケーションを実行する際、 動的ステートメントの振る舞いを制御するレジスターは静的に変換された ステート メントの影響を受けません。 アプリケーションが後続の DML ステートメントを参照するオブジェクトに DDL を 実行する場合、取り込んだファイルの中でこれらのステートメントをすべて 検索で きます。JDBC/ODBC/CLI 静的プロファイル・バインド・ツールがそれらをバインド しようと します。バインドの試みは、VALIDATE(RUN) バインド・オプションをサポ ートする DBMSs では 成功しますが、そうでないものは失敗します。 このケースで は、 アプリケーションは静的プロファイルを使用する必要があります。 データベース管理者は、アプリケーション固有の要求に応じて、SQL ステートメン トを追加、 変更、除去するためのキャプチャー・ファイルを編集することができま す。 ------------------------------------------------------------------------ 36.4 ADT トランスフォーム 以下の記述を、ブックの既存の情報と置き換えてください。 * 新規記述子タイプ (smallint) SQL_DESC_USER_DEFINED_TYPE_CODE が 次の値 と一緒にあります。 SQL_TYPE_BASE 0 (これは USER_DEFINED_TYPE ではない) SQL_TYPE_DISTINCT 1 SQL_TYPE_STRUCTURED 2 この値は SQLColAttribute または SQLGetDescField (IRD のみ) のいずれかで 照会できます。 以下の属性が実際のタイプ名を取得するのに追加されます。 SQL_DESC_REFERENCE_TYPE SQL_DESC_STRUCTURED_TYPE SQL_DESC_USER_TYPE 上記の値は SQLColAttribute または SQLGetDescField (IRD のみ) を使用して照会できます。 * アプリケーションで必要になった場合のために、SQL_DESC_BASE_TYPE を追加 します。 たとえば、アプリケーションは構造化タイプを認識しないかもしれ ませんが、 フェッチあるいは挿入を試み、他のコードで詳細を扱うようにす るかもしれません。 * SQL_ATTR_TRANSFORM_GROUP という新規接続属性を追加し、 アプリケーション で ("SET CURRENT DEFAULT TRANSFORM GROUP" ステートメントではなく) トラ ンスフォーム・グループを設定できるようになります。 * SQLSetConnectAttr を使用して設定または照会できる SQL_ATTR_RETURN_USER_DEFINED_TYPES という 新規ステートメント / 接続を 追加し、CLI が 値 SQL_DESC_USER_DEFINED_TYPE_CODE を有効な SQL タイプ として 戻すようにします。 この属性は、トランスフォームを行う前に必要で す。 o デフォルトで属性はオフであり、基本タイプ情報は SQL タイプとして 戻されます。 o 使用可能である場合、SQL_DESC_USER_DEFINED_TYPE_CODE が SQL_TYPE として戻されます。 アプリケーションは SQL_DESC_USER_DEFINED_TYPE_CODE を検査し、 適切なタイプ名を検索す るようになっています。 これは、SQLColAttribute、SQLDescribeCol、 および SQLGetDescField で使用可能です。 * SQLBindParameter は SQL_C_DEFAULT をバインドするときに エラーを返しま せん。タイプ SQL_USER_DEFINED_TYPE を指定する SQLBindParameter を許可 するコードはないためです。 サーバーへのベース SQL タイプに基づいて、標 準デフォルト C タイプが使用されます。 例: sqlrc = SQLBindParameter (hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 30, 0, &c2, 30, NULL); ------------------------------------------------------------------------ 36.5 第 3 章 拡張フィーチャーの使用法 36.5.1 マルチスレッド・アプリケーションの書き込み 以下を「Multi-Threaded Mixed Applications」セクションの終わりに追加します。 注: デフォルトのスタック・サイズを使用せずに、スタック・サイズを 少なくと も 256 000 に増やすことをお勧めします。DB2 では、DB2 関数の呼び出し時 に 必要な最小スタック・サイズは 256 000 です。したがって、お使いのアプ リケーションと、 DB2 関数呼び出し時の最小要件の両方を十分に満たす合計 スタック・サイズが割り当てられている ことを確認する必要があります。 36.5.2 スクロール可能カーソル 以下の情報は「スクロール可能カーソル」セクションに追加されています。 36.5.2.1 サーバー側のスクロール可能カーソル・サポート (OS/390) Unix、Windows、および OS/2 プラットフォームの UDB クライアントは、 OS/390 バージョン 7 データベースに対して実行されるとき、 更新可能なサーバー側のス クロール可能カーソルをサポートします。 3 階層環境で OS/390 スクロール可能カ ーソルにアクセスするには、 クライアントおよびゲートウェイが DB2 UDB バージ ョン 7.1 フィックスパック 3 またはそれ以降を 実行している必要があります。 スクロール可能カーソルにアクセスできる アプリケーション使用可能化インターフ ェースには、 ODBC と JDBC の 2 つがあります。 JDBC インターフェースは、静的 スクロール可能カーソルにのみアクセスすることが可能で、 ODBC インターフェー スは、静的およびキーセット・ドリブンの サーバー側スクロール可能カーソルにア クセスすることが可能です。 カーソル属性 下の表では、ODBC での OS/390 バージョン 7 カーソルの デフォルト属性をリスト します。 表 23. ODBC での OS/390 カーソルの デフォルト属性 カーソル・タイ カーソル感度 カーソル更新 カーソル並列 カーソル・スク プ 可能 性 ロール可能 フォワードのみ 未指定 更新不可 読み取り専用 スクロール不可 a 並列性 静的 反映不可 更新不可 読み取り専用 スクロール可能 並列性 キーセット・ド 反映可能 更新可能 値並列性 スクロール可能 リブン a フォワードのみは、FOR UPDATE 文節を使用しない スクロール可能カーソ ルのデフォルトの振る舞いです。 フォワードのみカーソルで FOR UPDATE を指定すると、 更新可能、ロック並列性、スクロール不可のカーソルが作 成されます。 サポートされているフェッチ方向 すべての ODBC フェッチ方向が SQLFetchScroll または SQLExtendedFetch インタ ーフェースで サポートされます。 キーセット・ドリブン・カーソルの更新 キーセット・ドリブン・カーソルは更新可能なカーソルです。 照会が SELECT ... FOR READ ONLY として 実行されている場合、または FOR UPDATE 文節がすでに 指 定されている場合を除いて、CLI ドライバーは FOR UPDATE 文節を 照会に追加しま す。 DB2 (OS/390 版) に実装されたキーセット・ドリブン・カーソルは、値並列性 カーソルです。 値並列性カーソルを使用するとオプティミスティック・ロックにな ります。 更新または削除が試行されるまでロックは行われません。 更新または削 除が試行されると、データベース・サーバーは、アプリケーションが検索した 以前 の値を基礎表の現行値と比較します。 値が一致する場合、更新または削除は成功し ます。 値が一致しない場合、操作は失敗します。 失敗した場合、アプリケーショ ンは値をもう一度照会して、 まだ適用可能であれば更新または削除を再実行しま す。 アプリケーションはキーセット・ドリブン・カーソルを以下の 2 つの方法で更新す ることができます。 * SQLExecute() または SQLExecDirect() とともに SQLPrepare() を 使用し て、UPDATE WHERE CURRENT OF "" または DELETE WHERE CURRENT OF "" を 実行します。 * SQLSetPos() または SQLBulkOperations() を使用して、 結果セットに対して 行の更新、削除、または追加を行います。 注: SQLSetPos() または SQLBulkOperations() 経由で 結果セットに追加さ れた行は、サーバー上の表に挿入されますが、サーバーの結果セットに は追加されません。 したがって、このような行は更新されず、 別のト ランザクションが行った変更も反映されません。 ただし、挿入された行 は、クライアント側でキャッシュされるため、結果セットの一部のよう に見えます。 挿入された行に適用されるトリガーは、アプリケーション 側からは適用されていないように見えます。 挿入された行を更新可能お よび反映可能にし、適用可能なトリガーの結果を参照するには、 アプリ ケーションで照会を再実行して、結果セットを再生成する必要がありま す。 スクロール可能カーソル・サポートの前に作成されたアプリケーションの障害追及 スクロール可能カーソル・サポートは新しい機能であるため、 UDB (OS/390 版) ま たは UDB (Unix 版、Windows 版、および OS/2 版) の前のリリースを 使用してい た一部の ODBC アプリケーションでは、振る舞いまたはパフォーマンスが変わる 可 能性があります。 スクロール可能カーソルを要求したアプリケーションは、 スク ロール可能カーソルがサポートされる前は フォワードのみカーソルを受け取ってい たために、 このようなことが起こります。 スクロール可能カーソル・サポート前 のアプリケーションの振る舞いを復元するには、 次の構成キーワードを db2cli.ini ファイルに設定します。 表 24. スクロール可能カーソル・サポート前のアプリケーションの振る舞いを復元 する 構成キーワード値 構成キーワード設定 記述 PATCH2=6 スクロール可能カーソル (キーセット・ ドリブンおよび静的) がサポートされて いない というメッセージを返します。 CLI は、スクロール可能カーソルの要求 をフォワードのみカーソルに 自動的にダ ウングレードします。 DisableKeysetCursor=1 サーバー側とクライアント側の両方のキ ーセット・ドリブン・スクロール可能カ ーソルを使用不可にします。 これは、キ ーセット・ドリブン・カーソルが要求さ れたときに、CLI ドライバーによって ア プリケーションが静的カーソルを提供す ることを強制するために使用されます。 UseServerKeysetCursor=0 クライアント側のキーセット・ドリブ ン・カーソル・ライブラリーを使用して キーセット・ドリブン・カーソルをシミ ュレートするアプリケーションに対して サーバー側の キーセット・ドリブン・カ ーソルを使用不可にします。 サーバー側 のキーセット・ドリブン・カーソルで問 題が発生した場合のみ、このオプション を使用します。 クライアント側のカーソ ルは大量のオーバーヘッドを発生させ、 通常、サーバー側のカーソルよりパフォ ーマンスが劣ってしまうためです。 36.5.3 複合 SQL の使用 以下の注釈がブックから欠落しています: 動的に用意できる SQL ステートメントは、照会の場合を除いて、 複合ステートメント内のステートメントとして実行できます。 注釈: アトミック複合 SQL 内で、保管点、リリース保管点、および SQL ステートメントの 保管点へのロールバックもまた許可されません。逆に、アトミック複合 SQL は 保管点で許可されません。 36.5.4 ストアード・プロシージャーの使用 36.5.4.1 CLI でのストアード・プロシージャーの記述 以下は、CLI ストアード・プロシージャーで文書化されていない制限です: 複数 CLI ストアード・プロシージャーへの呼び出しを行う場合、 次のストアード・プロシージャーを呼び出す前に、アプリケーションは ストアード・プロシージャーからオープン・カーソルをクローズする必要があります。 具体的には、オープン・カーソルの最初のセットを、次のストアード・プロシージャーが カーソルをオープンする前にクローズしなければなりません。 36.5.4.2 CLI ストアード・プロシージャーおよび自動バインド 以下は、ブックの補足情報です。 CLI/ODBC ドライバーは、CLI/ODBC アプリケーションが、データベースに対して SQL を 初めて実行した時に、ユーザーに適切な特権または許可がある 場合、CLI パッケージを自動バインドします。CLI パッケージの自動バインドは、 ストアー ド・プロシージャー内から実行できません。そのため、アプリケーションが最初に 行うことが CLI ストアード・プロシージャーの呼び出しである場合、この自動バイ ンドは起きません。新しい DB2 データベースに対して CLI ストアード・プロシー ジャーを呼び出す CLI アプリケーションを実行する前に、 次のコマンドで、一度 CLI パッケージをバインドする必要があります。 UNIX db2 bind /@db2cli.lst blocking all Windows および OS/2 db2bind "%DB2PATH%\bnd\@db2cli.lst" blocking お勧めするアプローチとしては、データベースが、実行時に自動バインドするのを 回避する ために作成される時に、このパッケージを常にバインドする方法がありま す。自動バインドは、ユーザーに 特権がない場合、または別のアプリケーションが 同時に自動バインドを行っている場合には失敗します。 ------------------------------------------------------------------------ 36.6 第 4 章 CLI/ODBC の構成とサンプル・アプリケーションの実行 36.6.1 構成キーワード CURRENTFUNCTIONPATH キーワードの最後の段落は無視してください。 正しい情報は 次の通りです。 このキーワードは、現行ユーザーのスキーマ以外のスキーマ名に定義されている 非 修飾関数およびストアード・プロシージャー参照を解決するためのプロセスの一部 として使用されます。 スキーマ名の順序は、関数名とプロシージャー名が解決され る順序を決定します。 関数およびプロシージャーの解決について詳しくは、「SQL 解説書」を参照してください。 ------------------------------------------------------------------------ 36.7 第 5 章 DB2 CLI 関数 36.7.1 SQLBindFileToParam - LOB ファイル参照を LOB パラメーターにバインド SQLBindFileToParam() CLI 関数の最後のパラメーター、IndicatorValue は 現在 「出力 (据え置き)」と書かれています。 これは 「入力 (据え置き)」となりま す。 36.7.2 SQLNextResult - 次の結果セットを別のステートメント・ハンドルに関連付 ける 次のテキストが第 5 章、「"DB2 CLI 関数"」に追加されました。 36.7.2.1 目的 仕様: DB2 CLI 7.x 36.7.2.2 構文 SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2); 36.7.2.3 関数の引き数 表 25. SQLNextResult 引き数 データ・タイ プ 引き数 使用 記述 SQLHSTMT StatementHandle 入力 ステートメント・ハンドル。 SQLHSTMT StatementHandle 入力 ステートメント・ハンドル。 36.7.2.4 使用法 ストアード・プロシージャーは、終了後にカーソルをオープンしたままにしておく ことで、 複数の結果セットを返します。最初の結果セットは常に、ストアード・プ ロシージャーを 呼び出したステートメント・ハンドルを使用することによってアク セスされます。複数の 結果セットが返される場合、SQLMoreResults() または SQLNextResult()を 使用して結果セットを記述およびフェッチすることができま す。 SQLMoreResults() は、最初の結果セット用にカーソルをクローズし、 次の結果セ ットを処理するために使用されます。SQLNextResult() は、 StatementHandle1 に あるカーソルをクローズせずに、次の結果セットを StatementHandle2 に移動しま す。どちらの関数も、フェッチする結果セットが ない場合は、SQL_NO_DATA_FOUND を返します。 SQLNextResult() を使用すると、他のステートメント・ハンドルに転送された 順序 で結果セットを処理することができます。StatementHandle1 にカーソル (オープン 結果セット) がなくなるまで、SQLMoreResults() および SQLNextResult() に 対す る混合呼び出しが可能です。 SQLNextResult() が SQL_SUCCESS を返すとき、次の結果セットは StatementHandle1 との関連はなくなります。代わりに次の結果セットは、 SQLExecDirect() の呼び出しが StatementHandle2 での照会を 正常に実行したよう に、StatementHandle2 と関連付けられます。このため カーソルは、 SQLNumResultSets()、SQLDescribeCol()、 または SQLColAttribute() を使用して 記述することができます。 SQLNextResult() が呼び出された後、StatementHandle2 に 関連付けられた結果セ ットは残りの結果セットのチェーンから除去され、 SQLNextResult() または SQLMoreResults() で使用できません。 このことは、'n' 個の結果セットについて SQLNextResult() を最大 'n-1' 回 正常に呼び出すことができることを示していま す。 SQLFreeStmt() が SQL_CLOSE オプション指定で呼び出されるか、 または SQLFreeHandle() が HandleType を SQL_HANDLE_STMT に 設定して呼び出される と、このステートメント・ハンドルで保留された結果セットは すべて廃棄されま す。 SQLNextResult() は、StatementHandle2 がオープン・カーソルを 持っているか、 または StatementHandle1 と StatementHandle2 が 同じ接続にない場合は、 SQL_ERROR を返します。エラーまたは警告が返されない場合、 SQLError() は常に StatementHandle1 で呼び出されているはずです。 注: SQLMoreResults() はまた、 SQLParamOptions() および SQLBindParameter() で指定された 入力パラメーター値の配列を使用してパラメーター化照会を操 作します。 ただし SQLNextResult() はこれをサポートしません。 36.7.2.5 戻りコード * SQL_SUCCESS * SQL_SUCCESS_WITH_INFO * SQL_STILL_EXECUTING * SQL_ERROR * SQL_INVALID_HANDLE * SQL_NO_DATA_FOUND 36.7.2.6 診断 表 26. SQLNextResult SQLSTATEs SQLSTATE 記述 説明 40003 通信リンク障害。 アプリケーションとデータ・ソース間の通信リ 08S01 ンクに、関数の完了前に障害が起きました。 58004 予期しないシステム障回復不能システム・エラー。 害。 HY001 メモリー割り振り失 DB2 CLI が、関数の実行または完了をサポート 敗。 するために必要なメモリーを 割り振れません。 HY010 関数シーケンス・エラdata-at-execute (SQLParamData(), ー。 SQLPutData()) 操作中に 関数が呼び出されまし た。 StatementHandle2 は、関連付けられたオープ ン・カーソルを 持っています。 BEGIN COMPOUND および END COMPOUND SQL 操作 中に関数が呼び出されました。 HY013 予期しないメモリー・DB2 CLI が、関数の実行または完了をサポート ハンドリング・エラ するために必要なメモリーを アクセスできませ ー。 んでした。 HYT00 タイムアウト満了。 データ・ソースが結果セットを返す前にタイム アウト期間が満了しました。タイムアウトは、 Windows 3.1 や Macintosh System 7 などの非 マルチタスク・システムでのみサポートされま す。 タイムアウト期間は SQLSetConnectAttr() の SQL_ATTR_QUERY_TIMEOUT 属性を使用して 設 定することができます。 36.7.2.7 制約事項 SQLMoreResults() だけがパラメーター化照会に使用できます。 36.7.2.8 参照 * ページ 525 の 「SQLMoreResults - 結果セットが他にもあるかを判別してく ださい」 * ページ 120 の 「ストアード・プロシージャーから返される結果セット」 ------------------------------------------------------------------------ 36.8 付録 D 拡張スカラー関数 36.8.1 日時関数 次の関数が、付録 D 「拡張スカラー関数」の日付および時刻関数のセクションから 抜けています。 DAYOFWEEK_ISO( date_exp ) 1 週間の曜日を、1 から 7 の範囲の整数値として date_exp で 戻します。1 は月曜を表します。この関数と DAYOFWEEK() 関数との 間の相違に注意してく ださい。1 は日曜日を表します。 WEEK_ISO( date_exp ) 1 年の週を、1 から 53 までの範囲の整数値として date_exp に戻します。 Week 1 は年の最初の週で、木曜を 含みます。そのため、月曜日が週の最初の 日であると考えられているため、 Week1 は Jan 4 が含まれる最初の週と同じ ことに なります。 WEEK_ISO() は、54 までの値を返す WEEK() の現行定義とは異なることに注意 してください。WEEK() 関数では、 Week 1 は、最初の日曜を含む週となりま す。これは、週に 1 日しか 含まれていなくても、Jan. 1 が含まれる週と同 じことになります。 DAYOFWEEK_ISO() および WEEK_ISO() は、バージョン 7 で作成されたデータベース で 自動的に使用できます。データベースがバージョン 7 以前に作成された場合、 これらの 関数は使用できない可能性があります。DAYOFWEEK_ISO() および WEEK_ISO() 関数を そのようなデータベースで使用可能にするには、db2updb シス テム・コマンドを 使用してください。db2updb の詳細については、 このリリース 情報の「コマンド解説書」をご覧ください。 ------------------------------------------------------------------------ 36.9 付録 K DB2 CLI/ODBC/JDBC トレース機能の使用 この付録内のこのセクションは更新されています。 のトレース機能についてのより 最新の情報は問題判別の手引きの「"トレース"」の章をご覧ください。 ------------------------------------------------------------------------ メッセージ解説書 ------------------------------------------------------------------------ 37.1 メッセージおよび SQLSTATE ヘルプの表示 コマンド行プロセッサー にあるヘルプには、メッセージ解説書 にはない、メッセ ージおよび SQLSTATE 値についての 新しいヘルプと更新されたヘルプが用意されて います。 コマンド行プロセッサー でメッセージ・ヘルプを表示するには、次のコマンドを オペレーティング・システムのコマンド・プロンプトから入力します: db2 "? XXXnnnnn" ここで XXX はメッセージ接頭語を表し、nnnnn はメッセージ番号を 表します。 たとえば db2 "? SQL30081" は、SQL30081 メッセージに関するヘルプを 表示しま す。 コマンド行プロセッサー で SQLSTATE テキストを表示するには、次のコマンドを オペレーティング・システムのコマンド・プロンプトから入力します: db2 "? XXXXX" ここで XXXXX は SQLSTATE 値を表します。 たとえば db2 "? 428F1" は、SQLSTATE 428F1 のテキストを表示します。 ------------------------------------------------------------------------ 37.2 DB2 コネクトの SQLCODE 再マップ変更 バージョン 7.2 では、DB2 コネクトのデフォルト SQLCODE 再マップが変更されま した。 ホスト・データベースが SQLCODE 値 -567 を返すと、DB2 コネクトは SQLCODE 値を DB2 クライアントに 返す前に SQLCODE 値を -551 に再マップしま す。 ------------------------------------------------------------------------ 37.3 新規メッセージおよび変更メッセージ 下のリストは、DB2 バージョン 7.1 の 「メッセージ解説書」が 出版されてから変 更されたメッセージの番号を表しています。 DB2 の使用中、これらのメッセージの いずれかが表示された場合、更新済みの正しい メッセージが表示されますが、その メッセージは 「メッセージ解説書」の 情報に対応していません。 37.3.1 コール・レベル・インターフェース (CLI) メッセージ CLI0645E CLI0646E CLI0647E 37.3.2 DB2 メッセージ DB21086I DB210060E DB210061E DB210062E DB210113E DB210114E DB210115E DB210116E DB210117E DB210118E DB210120E DB210121E DB210200I DB210201I 37.3.3 DBI メッセージ DBI1172E DBI1793W DBI1794E DBI1795E DBI1796W DBI1797I 37.3.4 データウェアハウスセンター (DWC) メッセージ DWC0000I DWC03504E DWC08900E DWC08901E DWC08902E DWC08903E DWC08904E DWC08907C DWC08908C DWC08909C DWC08910E DWC08911E DWC08912E DWC08913E DWC08914E DWC08915E DWC08917E DWC08919I DWC08930E DWC08931E DWC08932E DWC08933E DWC08934E DWC08935E DWC08936W DWC08937I DWC08938I DWC08939I DWC08940I DWC08941I DWC08960I DWC08961I DWC08962I DWC08963I DWC08964I DWC08965I DWC08966E DWC08967E DWC08968E DWC13239E DWC13300E DWC13301E DWC13302E DWC13304E DWC13603E DWC13700E DWC13701E DWC13702E DWC13703E DWC13705E DWC13706E DWC13707E 37.3.5 SQL メッセージ SQL0017N SQL0056N SQL0057N SQL0058N SQL0097N SQL0224N SQL0225N SQL0227N SQL0228N SQL0231W SQL0243N SQL0244N SQL0270N SQL0301N SQL0303N SQL0336N SQL0348N SQL0349N SQL0357N SQL0358N SQL0368N SQL0408N SQL0423N SQL0590N SQL0670N SQL0845N SQL0846N SQL1179W SQL1186N SQL1550N SQL1551N SQL1552N SQL1553N SQL1704N SQL2077W SQL2078N SQL2417N SQL2426N SQL2571N SQL2572N SQL2573N SQL2574N SQL2575N SQL2576N SQL4942N SQL5012N SQL6583N SQL20005N SQL20117N SQL20121N SQL20133N SQL20134N SQL20135N SQL20143N SQL20144N SQL20145N SQL20146N SQL20147N SQL20148N SQL20153N SQL21000N ------------------------------------------------------------------------ 37.4 訂正された SQLSTATE 表 27. 42630 SQLSTATE または SQLCODE 変数は、このコンテキストでは無効です。 42631 SQL 関数の RETURN ステートメントに式が指定されていなければなり ません。 42632 SQL 関数またはメソッドに RETURN ステートメントがなければなりま せん。 428F2 SQL プロシージャーの RETURN ステートメントに整数式が 指定されて いなければなりません。 560B7 複数行 INSERT の場合、NEXTVAL シーケンス式の使用は行ごとに同じ で なければなりません。 ------------------------------------------------------------------------ SQL 解説書 ------------------------------------------------------------------------ 38.1 SQL 解説書は 1 つの PDF ファイルで提供されます 各ブックの付録の 「DB2 ライブラリーの使用」 という SQL の解説書は PDF 形式 で 2 ボリュームになっています。これは正しくありません。 印刷物では 2 冊あり、その 2 冊に対応するフォームの番号も 正しいですが、PDF ファイルは 1 ファイルのみで構成されており、 その中に両方の内容が含まれてい ます。 その PDF ファイルのファイル名は db2s0x70 です。 ------------------------------------------------------------------------ 38.2 第 3 章 言語エレメント 38.2.1 命名規則および暗黙的オブジェクト名の修飾 第 3 章のこのセクションに、以下の注釈を追加してください。 SQL プロシージャーのコンテキスト内で使用される場合、以下の名前には 通常 ID で許可されている文字しか使用できません(別のコンテキストで使用される 場合はこの限りではありません)。 - condition-name - label - parameter-name - procedure-name - SQL-variable-name - statement-name 38.2.2 DATALINK 割り当て この節の段落が以下のように変更されました。 URL パラメーターまたは関数結果のサイズは入力と出力のどちらでも 同じで、DATALINK 列の長さでバインドされることに注意してください。 ただし、返された URL 値にアクセス・トークンが接続されている場合が あります。このような事象が起こりうる状況では、出力ロケーションにはアクセス・ トークンおよび DATALINK 列の長さに対する十分なストレージ・スペースが なければなりません。そのため、完全拡張フォームで入力されるコメントと URL を合わせた実際の長さは、出力ストレージ・スペースに適合するよう 制限しなければなりません。制限された長さを超えていると、このエラーが 出されます。 38.2.3 式 38.2.3.1 構文図 構文図が変更されました。 .-演算子--------------------------------. V | >>----+-----+---+-function--------------+--+------------------->< +- + -+ +-(式)------------------+ '- - -' +-constant--------------+ +-column-name-----------+ +-host-variable---------+ +-special-register------+ +-(scalar-fullselect)---+ +-labeled-duration------+ +-case-expression-------+ +-cast-specification----+ +-dereference-operation-+ +-OLAP-function---------+ +-method-invocation-----+ +-subtype-treatment-----+ '-sequence-reference----' operator (1) |---+-CONCAT------+---------------------------------------------| +- / ---------+ +- * ---------+ +- + ---------+ '- - ---------' 注: 1. CONCAT の同義語として || を使用することができます。 38.2.3.2 OLAP 機能 以下は、第 3 章「式」の「OLAP 関数」セクションへの訂正事項です。 aggregation-function |--column-function--OVER---(--+------------------------------+--> '-| window-partition-clause |--' >----+--------------------------------------------------------------------+> '-| window-order-clause |--+--------------------------------------+--' '-| window-aggregation-group-clause |--' >---------------------------------------------------------------| window-order-clause .-,-----------------------------------------------. V .-| asc オプション |---. | |---ORDER BY-----sort-key-expression--+----------------------+--+-> '-| desc オプション |--' >---------------------------------------------------------------| asc オプション .-NULLS LAST--. |---ASC--+-------------+----------------------------------------| '-NULLS FIRST-' desc オプション .-NULLS FIRST--. |---DESC--+--------------+--------------------------------------| '-NULLS LAST---' window-aggregation-group-clause |---+-ROWS--+---+-| group-start |---+---------------------------| '-RANGE-' +-| group-between |-+ '-| group-end |-----' group-end |---+-UNBOUNDED FOLLOWING-----------+---------------------------| '-unsigned-constant--FOLLOWING--' window-order-clause 記述で: NULLS FIRST ウィンドウ配列において、ソート順序は、すべての非 NULL 値の前に NULL 値 が置かれます。 NULLS LAST ウィンドウ配列において、ソート順序は、すべての非 NULL 値の後に NULL 値 が置かれます。 window-aggregation-group-clause 記述で: window-aggregation-group-clause 行 R の集約グループは、R の区分の行の順序付け内の R に関連して定義され ている 行のセットです。その文節は集約グループを指定します。 この文節が 指定されていない場合、デフォルトは、累積集約結果を提供する RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW と同じになります。 ROWS 集約グループがカウント行によって定義されることを示します。 RANGE 集約グループがソート・キーからのオフセットによって定義されること を示します。 group-start 集約グループの開始点を指定します。集約グループの終了は current row です。 group-start 文節の仕様は、"BETWEEN group-start AND CURRENT ROW" 形式の group-between 文節と同じです。 group-between ROWS または RANGE に基づいて、集約グループの開始および終了を指定 します。 group-end 集約グループの終了点を指定します。集約グループの開始は current row です。 group-end 文節の仕様は、"BETWEEN CURRENT ROW AND group-end" 形式の group-between 文節と同じです。 UNBOUNDED PRECEDING current row の前の区分全体を組み込みます。 これは、ROWS または RANGE のいずれかと一緒に指定できます。 window-order-clause 内の複 数の sort-key-expressions と一緒に指定することもできます。 UNBOUNDED FOLLOWING current row に続く区分全体を組み込みます。 これは、ROWS または RANGE のいずれかと一緒に指定できます。 window-order-clause 内の複 数の sort-key-expressions と一緒に指定することもできます。 CURRENT ROW current row に基づいて、集約グループの開始および終了を指定しま す。 ROWS が指定された場合、current row が集約グループ境界です。 RANGE が指定された場合、集約グループ境界には、 sort-key-expressions に current row と同じ値を持つ行のセットが含 まれます。group-bound1 で value FOLLOWING が指定されている場合、 この文節を group-bound2 で 指定することはできません。 value PRECEDING current row の前の行の範囲または行数のいずれかを指定します。 ROWS が指定された場合、value は行数を示す正の整数です。 RANGE が指定さ れた場合、value のデータ・タイプは、 window-order-clause の sort-key-expression のタイプと互換性がなければなりません。 sort-key-expression は 1 つのみで、sort-key-expression のデータ・ タイプは 減算を許可しなければなりません。group-bound1 が CURRENT ROW または value FOLLOWING の場合、この文節を group-bound2 で指定 することはできません。 value FOLLOWING current row の後の行の範囲または行数のいずれかを指定します。 ROWS が指定された場合、value は行数を示す正の整数です。 RANGE が指定さ れた場合、value のデータ・タイプは、 window-order-clause の sort-key-expression のタイプと互換性がなければなりません。 sort-key-expression は 1 つのみで、sort-key-expression のデータ・ タイプは 加算を許可しなければなりません。 38.2.3.3 シーケンス参照 以下の情報を「式」セクションの終わり (「サブタイプの取り扱い」の後) に追加 します。 sequence-reference |--+-| nextval-expression |-+-----------------------------------| '-| prevval-expression |-' nextval-expression |---NEXTVAL FOR--sequence-name----------------------------------| prevval-expression |---PREVVAL FOR--sequence-name----------------------------------| NEXTVAL FOR sequence-name NEXTVAL 式は、sequence-name で指定されたシーケンスの次の値を返します。 PREVVAL FOR sequence-name PREVVAL 式は、現行セッションで前のステートメントの指定された シーケン スについて生成された最新の値を返します。 この値は、シーケンスの名前が 指定されている PREVVAL 式を使用して、繰り返し参照することができます。 単一ステートメント内に同じシーケンスを指定している PREVVAL 式のインス タンスが 複数存在する可能性があり、それらはすべて同じ値を返します。 同じシーケンス名が指定されている NEXTVAL 式がすでに 現行ユーザー・セッ ションで (現在または前のトランザクションで) 参照されている場合のみ、 PREVVAL 式を使用できます (SQLSTATE 51035)。 注: o NEXTVAL 式がシーケンスの名前を指定していれば、新しいシーケンス番 号が生成されます。 ただし、照会の中に同じシーケンス名を指定してい る NEXTVAL 式のインスタンスが 複数ある場合、シーケンスのカウンタ ーは結果の行ごとに 1 つずつ増えていきます。 o シーケンスについて生成された最新の値は、そのシーケンスの名前が 指 定されている PREVVAL 式を使用して繰り返し参照できます。 単一ステ ートメント内に同じシーケンスを指定している PREVVAL 式のインスタン スが 複数存在する可能性があります。 o 以下に示すように、先頭行であれば NEXTVAL 式でシーケンス番号を参照 (これで シーケンス値が生成) し、その他の行であれば PREVVAL 式でシ ーケンス番号を 参照 (この PREVVAL のインスタンスは、前のステート メントで NEXTVAL 式によって生成された シーケンス値を参照) するこ とによって、2 つの別々の表で固有キー値として同じ シーケンス番号を 使用できます。 INSERT INTO order(orderno, custno) VALUES (NEXTVAL FOR order_seq, 123456); INSERT INTO line_item (orderno, partno, quantity) VALUES (PREVVAL FOR order_seq, 987654, 1); o NEXTVAL および PREVVAL 式を指定できる例: + select-statement または SELECT INTO ステートメント: ステート メントに DISTINCT キーワード、 GROUP BY 文節、ORDER BY 文 節、UNION キーワード、INTERSECT キーワード、または EXCEPT キ ーワードが 含まれていないかぎり、select-clause 内 + INSERT ステートメント: VALUES 文節内 + INSERT ステートメント: fullselect の select-clause 内 + UPDATE ステートメント: SET 文節にある式の fullselect の select-clause 内 (探索条件付き、 または位置指定 UPDATE ステ ートメントのいずれか) + VALUES INTO ステートメント: 式の fullselect の select-clause 内 o NEXTVAL および PREVVAL 式を指定できない (SQLSTATE 428F9) 例: + 完全外部結合の結合条件 + CREATE TABLE または ALTER TABLE ステートメント内の列の DEFAULT 値 + CREATE TABLE または ALTER TABLE ステートメント内の生成された 列定義 + CHECK 制約の条件 + CREATE TRIGGER ステートメント + CREATE VIEW ステートメント + CREATE METHOD ステートメント + CREATE FUNCTION ステートメント o また、以下の対象に NEXTVAL 式を指定することはできません (SQLSTATE 428F9)。 + CASE 式 + 総計関数のパラメーター・リスト + 副照会 + DISTINCT 演算子を含む SELECT ステートメント + 結合の結合条件 + SELECT ステートメントの GROUP BY 文節 + UNION、INTERSECT、または EXCEPT セット演算子を使用して他の SELECT ステートメントと 組み合わせられている SELECT ステート メント + ネストされた表の式 + 表関数のパラメーター・リスト + SELECT、DELETE、または UPDATE ステートメントの WHERE 文節 + ORDER BY 文節 + CALL ステートメントのパラメーター・リスト o シーケンスについて値が生成されると、その値を再使用することができ なくなるため、 次に値が必要になったときに新しい値が生成されます。 NEXTVAL 式が組み込まれているステートメントが失敗した場合でも、こ れが当てはまります。 o 列の VALUES リストにある NEXTVAL 式が INSERT ステートメントに組み 込まれており、 INSERT 実行中のある時点でエラー (次のシーケンス値 を生成しているときの問題、あるいは 別の列の値に問題があると考えら れる) が起こった場合、挿入は失敗し、シーケンスについて 生成した値 は再使用できないものと見なされます。 場合によっては、同じ INSERT ステートメントを再実行することによって、正しく 動作することもあり ます。 たとえば、NEXTVAL が使用されていた列の固有索引が存在する結果とし てエラーが起こり、 すでに生成されているシーケンス値がその索引に存 在するとします。 シーケンスについて生成される次の値は、索引には存 在しない値になることが考えられるため、 後続の INSERT が正しく動作 する可能性があります。 o シーケンスの値の生成において、そのシーケンスが最大値 (または降順 シーケンスの 最小値) に達し、循環が許可されていない場合、エラーが 起こります (SQLSTATE 23522)。 この場合、ユーザーはシーケンスを ALTER して許容値の範囲を拡張、またはシーケンスの 循環を可能にで き、あるいは値の範囲がより大きな、異なるデータ・タイプを持つ新し い シーケンスを DROP および CREATE することができます。 たとえば、シーケンスがデータ・タイプ SMALLINT で定義されていて、 その結果、 そのシーケンスが割り当て可能な値を使い果たしてしまうこ とがあります。 シーケンスを INTEGER として再定義するため、そのシ ーケンスを新しい定義でドロップ および再作成しなければならない場合 があります。 o カーソルの SELECT ステートメントで PREVVAL を参照するように 指定 されていると、カーソルを開く前に指定のシーケンスに生成された 値が 参照されます。ただしカーソルを閉じると、後続のステートメントで指 定されたシーケンスに 対して PREVVAL が返す値に影響が出たり、カー ソルを再び開いたときに 同じステートメントに対して PREVVAL が返す 値に影響がでることがあります。 これは、カーソルの SELECT ステート メントに同じシーケンス名の NEXTVAL の参照がある 場合に起こりま す。 例: これらの例では、表 "order" があり、以下のようにシーケンス "order_seq" が作 成されることが 前提となっています。 CREATE SEQUENCE order_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE CACHE 24 * 上で作成されたシーケンスの NEXTVAL 式で "order_seq" シーケンス番号を生 成する例: INSERT INTO order(orderno, custno) VALUES (NEXTVAL FOR order_seq, 123456); または、 UPDATE order SET orderno = NEXTVAL FOR order_seq WHERE custno = 123456; または、 VALUES NEXTVAL FOR order_seq INTO :hv_seq; ------------------------------------------------------------------------ 38.3 第 4 章 関数 38.3.1 新しい関数とプロシージャーの使用可能化 バージョン 7 フィックスパックには、新しい SQL 組み込みスカラー関数が含まれ ています。 これらの新しい関数については、「SQL 解説書」の更新分を 参照して ください。新しい関数は、データベース・サーバー・コードが新しい サービス・レ ベルにアップグレードされるとき、各データベースで自動的に 使用可能にはなりま せん。これらの新しい関数を使用可能にするには、システム管理者が サーバーの各 データベースを指定したコマンド db2updv7 を 実行しなければなりません。このコ マンドによって、コマンド実行前に作成されたデータベース・オブジェクトが、 新 しい関数シグニチャーに一致する可能性のある既存の関数シグニチャーを使用する ことを保証する 項目がデータベースに作成されます。 MQSeries 関数 (MQDB2 スキーマに定義されているもの) を使用可能化する 方法に ついては、「MQSeries」を参照してください。 38.3.2 スカラー関数 38.3.2.1 ABS または ABSVAL >>-+-ABS----+--(式)-------------------------------------------->< '-ABSVAL-' スキーマは SYSIBM です。 この関数は、バージョン 7.1 のフィックスパック 2 から有効になりました。 注: ABS 関数の SYSFUN バージョン (または ABSVAL) 関数は 引き続き使用可能で す。 引き数の絶対値を返します。 引き数は、組み込み数値データ・タイプの値を返す式です。 関数の結果は、引き数と同じデータ・タイプおよび長さ属性を持ちます。 引き数が ヌルか、またはデータベースの構成で DFT_SQLMATHWARN が yes に設定されている 場合、 結果はヌルになります。引き数がヌルの場合、結果は NULL 値になります。 例: ABS(-51234) は値 51234 の INTEGER を返します。 38.3.2.2 DECRYPT_BIN および DECRYPT_CHAR >>-+-DECRYPT_BIN--+---------------------------------------------> '-DECRYPT_CHAR-' >----(--encrypted-data--+--------------------------------+---)-->< '-,--password-string-expression--' スキーマは SYSIBM です。 この関数は、バージョン 7.1 のフィックスパック 3 から有効になりました。 DECRYPT_BIN および DECRYPT_CHAR 関数は、encrypted-data 暗号化 解除の結果で ある値を返します。 暗号化解除に使用されるパスワードは、 password-string-expression か (SET ENCRYPTION PASSWORD ステートメントで 割 り当てられた) ENCRYPTION PASSWORD 値のいずれかです。 DECRYPT_BIN および DECRYPT_CHAR 関数は、ENCRYPT 関数で暗号化された値だけを 暗号化解除できます (SQLSTATE 428FE)。 encrypted-data ENCRYPT 関数で暗号化された、完全な暗号化データ・ストリングで ある CHAR FOR BIT DATA または VARCHAR FOR BIT DATA 値を返す式です。 password-string-expression 少なくとも 6 バイトで 127 バイトを超えない CHAR または VARCHAR 値を 返 す式です (SQLSTATE 428FC)。 データの暗号化に使用されたパスワードと同じ でなければ、 暗号化解除はエラーになります (SQLSTATE 428FD)。 パスワー ド引き数がヌル、または与えられていない場合、 セッションに設定されてい なければならない ENCRYPTION PASSWORD 値を使用してデータは 暗号化解除さ れます (SQLSTATE 51039)。 DECRYPT_BIN 関数の結果は VARCHAR FOR BIT DATA です。 DECRYPT_CHAR 関数の結 果は VARCHAR です。 encrypted-data にヒントが組み込まれている場合、 そのヒ ントは関数によって返されません。 結果の長さ属性は、encrypted-data のデー タ・タイプの長さ属性 マイナス 8 バイトになります。 関数によって実際に返され る長さの値は、暗号化されたオリジナル・ストリングの長さに一致します。 暗号化 ストリングを超えるバイトが encrypted-data に含まれている場合、 それらのバイ トは関数によって返されません。 最初の引き数をヌルにすることができる場合、結 果もヌルにすることができます。 最初の引き数がヌルであれば、結果は NULL 値に なります。 暗号化が行われたときのコード・ページとは別のコード・ページが使用されてい る、 異なるシステムでデータが暗号化解除されると、暗号化解除された値をデータ ベース・ コード・ページに変換するとき、長さが超過してしまう可能性がありま す。 この場合、encrypted-data 値を より大きなバイト数の VARCHAR ストリング に cast する必要があります。 この関数の使用法について詳しくは、38.3.2.3, ENCRYPT および 38.3.2.4, GETHINT も 参照してください。 例 例 1 : この例では、暗号化パスワードを保持する ために ENCRYPTION PASSWORD 値 が使用されています。 SET ENCRYPTION PASSWORD = 'Ben123'; INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832'); SELECT DECRYPT_CHAR(SSN) FROM SSN; 返される値は '289-46-8832' です。 例 2 : この例では、暗号化パスワードが明示的に渡されています。 SELECT DECRYPT_CHAR(SSN,'Ben123') FROM SSN; 返される値は '289-46-8832' です。 38.3.2.3 ENCRYPT >>-ENCRYPT------------------------------------------------------> >----(--data-string-expression--+----------------------------------------------------------------+---)-> '-,--password-string-expression--+----------------------------+--' '-,--hint-string-expression--' >-------------------------------------------------------------->< スキーマは SYSIBM です。 この関数は、バージョン 7.1 のフィックスパック 3 から有効になりました。 ENCRYPT 関数は、data-string-expression 暗号化の結果である値を返します。 暗 号化に使用されるパスワードは、 password-string-expression か (SET ENCRYPTION PASSWORD ステートメントで 割り当てられた) ENCRYPTION PASSWORD 値 のいずれかです。 data-string-expression 暗号化する CHAR または VARCHAR 値を返す式です。 data-string-expression のデータ・タイプの長さ属性は、 hint-string-expression 引き数がなければ 32663 に、 hint-string-expression 引き数が指定されていれば 32631 に 制 限されています (SQLSTATE 42815)。 password-string-expression 少なくとも 6 バイトで 127 バイトを超えない CHAR または VARCHAR 値を 返 す式です (SQLSTATE 428FC)。 この値は、data-string-expression を暗号化 するために 使用されるパスワードを表します。 パスワード引き数がヌル、ま たは与えられていない場合、 セッションに設定されていなければならない ENCRYPTION PASSWORD 値を使用して データは暗号化されます (SQLSTATE 51039)。 hint-string-expression データ所有者がパスワードを思い浮かべる (たとえば、'Ocean' が 'Pacific' を 思い出すヒントになります) ために役立つ、32 バイトまでの CHAR または VARCHAR 値を返す式です。 ヒントの値が与えられると、そのヒントは結果に 組み込まれ、GETHINT 関数を使用して 取り出すことができます。 この引き数 がヌル、または与えられていない場合、ヒントは結果に組み込まれません。 関数の結果データ・タイプは VARCHAR FOR BIT DATA です。 結果の長さ属性: * オプションのヒント・パラメーターが指定されている場合、 非暗号化データ の長さ属性 + 8 バイト + 次の 8 バイト境界までのバイト数 + ヒントの長さ 32 バイト * ヒント・パラメーターがない場合、 非暗号化データの長さ属性 + 8 バイト + 次の 8 バイト境界までのバイト数 最初の引き数をヌルにすることができる場合、結果もヌルにすることができます。 最初の引き数がヌルであれば、結果は NULL 値になります。 暗号化された結果が data-string-expression 値よりも 長くなることに注意してく ださい。 そのため、暗号化された値を割り当てる際、その暗号化された値全体が入 るだけの 十分なサイズでターゲットを宣言してください。 注: * 暗号化アルゴリズム: 使用されている内部暗号化 アルゴリズムは埋め込み付 きの RC2 ブロック暗号で、128 ビットの秘密鍵は MD2 メッセージ・ ダイジ ェストによってパスワードから派生します。 * 暗号化パスワードおよびデータ: パスワードの管理は ユーザーの責任です。 データが暗号化されると、そのデータを暗号化解除するために使用できるの は、 暗号化に使用したパスワードだけです (SQLSTATE 428FD)。 ブランクで 埋め込むことが可能なため、CHAR 変数を使用してパスワードを設定する際に は 注意してください。 暗号化された結果には、ヌル終止符およびその他の表 示不可文字が組み込まれていることが あります。 * 表列定義: 暗号化データを組み込む列および タイプを定義するとき、以下の ようにして常に長さ属性を計算してください。 ヒントのない暗号化データの 場合: 非暗号化データの最大長 + 8 バイト + 次の 8 バイト境界までのバイト数 = 暗号化データの列の長さ ヒントが組み込まれた暗号化データの場合: 非暗号化データの最大長 + 8 バイト + 次の 8 バイト境界までの バイト数 + ヒントの長さ 32 バイト = 暗号化データの列の長さ 推奨されているデータ長よりも短い長さへの割り当てまたは cast は、 暗号 化解除の失敗やデータ脱落の原因となります。 ブランクは、短すぎる列に保 管するときに切り捨てられる有効な暗号化データ値です。 列の長さ計算のサンプル 非暗号化データの最大長 6 バイト 8 バイト 8 バイト 次の 8 バイト境界までのバイト数 2 バイト --------- 暗号化されたデータ列の長さ 16 バイト 非暗号化データの最大長 32 バイト 8 バイト 8 バイト 次の 8 バイト境界までのバイト数 8 バイト --------- 暗号化されたデータ列の長さ 48 バイト * 暗号化データの管理: 暗号化データは、 ENCRYPT 関数に対応する暗号化解除 関数をサポートしているサーバーでのみ 暗号化解除できます。 そのため、暗 号化データを含む列の複製は、DECRYPT_BIN または DECRYPT_CHAR 関数を サ ポートしているサーバーで行わなければなりません。 この関数の使用法について詳しくは、38.3.2.2, DECRYPT_BIN および DECRYPT_CHAR および 38.3.2.4, GETHINT も 参照してください。 例 例 1 : この例では、暗号化パスワードを保持する ために ENCRYPTION PASSWORD 値 が使用されています。 SET ENCRYPTION PASSWORD = 'Ben123'; INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832'); 例 2 : この例では、暗号化パスワードが明示的に渡されています。 INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832','Ben123',''); 例 3 : 暗号化パスワード 'Pacific' を思い浮かべることができるよう、 ヒント 'Ocean' が保管されます。 INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832','Pacific','Ocean'); 38.3.2.4 GETHINT >>-GETHINT--(--encrypted-data--)------------------------------->< スキーマは SYSIBM です。 この関数は、バージョン 7.1 のフィックスパック 3 から有効になりました。 パスワード・ヒントが encrypted-data に見つかった場合、 GETHINT 関数をそのヒ ントを返します。 パスワード・ヒントとは、データ所有者がパスワードを思い浮か べる (たとえば、'Ocean' が 'Pacific' を 思い出すヒントになります) ために役 立つフレーズです。 encrypted-data ENCRYPT 関数で暗号化された、完全な暗号化データ・ストリングで ある CHAR FOR BIT DATA または VARCHAR FOR BIT DATA 値を返す式です (SQLSTATE 428FE)。 関数の結果は VARCHAR(32) です。 結果はヌルになることがあります。 ヒント・パ ラメーターが ENCRYPT 関数によって encrypted-data に追加されなかった場合、 または最初の引き数はヌルの場合、結果は NULL 値になります。 この関数の使用法について詳しくは、38.3.2.2, DECRYPT_BIN および DECRYPT_CHAR および 38.3.2.3, ENCRYPT も 参照してください。 例: この例では、暗号化パスワード 'Pacific' を思い浮かべることができるよう、ヒン ト 'Ocean' が保管されます。 INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832', 'Pacific','Ocean'); SELECT GETHINT(SSN) FROM EMP; 返される値は 'Ocean' です。 38.3.2.5 IDENTITY_VAL_LOCAL >>-IDENTITY_VAL_LOCAL--(--)------------------------------------>< スキーマは SYSIBM です。 このプロシージャーは、バージョン 7.1 の フィックスパック 3 から有効になりま した。 IDENTITY_VAL_LOCAL 関数は、非 deterministic 関数であり、識別列に割り当てら れた最新の値を戻します。 この割り当ては、 VALUES 文節を使用した単一行 INSERT ステートメントの結果として発生したものです。 関数には入力パラメータ ーはありません。 対応する識別列の実際のデータ・タイプに関係なく、結果は DECIMAL(31,0) です。 関数によって返される値は、最新の単一行 INSERT ステートメントで識別されてい る表の 識別列に割り当てられた値です。 INSERT ステートメントは、識別列を含む 表での VALUES 文節を使用して作成されていなければなりません。 INSERT ステー トメントは同じレベルで実行しなければなりません 1 (つまり、値は、 次に割り当 てられる値で置換されるまでは、ローカルにおいて割り当てられたレベルで使用可 能です)。 割り当てられる値は (識別列が GENERATED BY DEFAULT で定義される場合は) ユー ザーによって 提供されるか、あるいは DB2 で生成された識別値が提供されます。 関数は、以下の状態の場合、NULL 値を戻します。 * VALUES 文節をともなう単一行 INSERT ステートメントが、現行処理レベルで 識別列を含む表に対して実行されていない場合 * 作業単位の COMMIT たまは ROLLBACK が、値を割り当てた最新の INSERT ステ ートメント以降に 起きた場合 2 . 関数の結果が以下のステートメントによって影響を受けることはありません。 * 識別列を含まない表の、VALUES 文節をともなう単一行 INSERT ステートメン ト * VALUES 文節をともなう複数行 INSERT ステートメント * fullselect を持つ INSERT ステートメント * ROLLBACK TO SAVEPOINT ステートメント 注: * INSERT ステートメントの VALUES 文節内の式は、INSERT ステートメントのタ ーゲット列の 割り当ての前に評価されます。 そのため、INSERT ステートメ ントの VALUES 文節にある IDENTITY_VAL_LOCAL 関数の呼び出しでは、 前の INSERT ステートメントからの識別列として、最新の割り当て値が使用されま す。 識別列を含む表の VALUES 文節をともなう単一行 INSERT ステートメン トが、 IDENTITY_VAL_LOCAL 関数と同じレベル内で実行されていない場合、関 数は NULL 値を戻します。 * トリガーが定義されている表の識別列の値は、識別列のトリガー変換変数を 参照することにより、トリガー内で判別できます。 * 挿入トリガーのトリガー条件から IDENTITY_VAL_LOCAL 関数を呼び出した結果 は、 NULL 値になります。 * 複数の BEFORE または AFTER 挿入トリガーが 1 つの表について存在すること が可能です。 この場合、各トリガーは別々に処理され、IDENTITY_VAL_LOCAL 関数を使用して、 あるトリガー処置によって割り当てられている値を別のト リガー処置に 使用することはできません。 概念上、複数のトリガー処置が同 じレベルで定義されている場合でも、これは 当てはまります。 * 一般的に、BEFORE 挿入トリガーの本体に IDENTITY_VAL_LOCAL 関数を使用す ることは お勧めしません。 BEFORE 挿入トリガーのトリガー処置から IDENTITY_VAL_LOCAL 関数を呼び出した結果は、 NULL 値になります。 トリガ ーが定義されている表の識別列の値は、BEFORE 挿入トリガーの トリガー処置 から IDENTITY_VAL_LOCAL 関数を呼び出すことによって 得ることはできませ ん。 ただし、識別列のトリガー変換変数を参照することにより、その識別列 の値をトリガー処置で 得ることができます。 * AFTER 挿入トリガーのトリガー処置から IDENTITY_VAL_LOCAL 関数を 呼び出 した結果 3 は、識別列を含む表の VALUES 文節をともなう、同じトリガー処 置で 呼び出された最新の単一行 INSERT ステートメントで識別されている表 の識別列に 割り当てられた値になります。 識別列を含む表の VALUES 文節を ともなう単一行 INSERT ステートメントが、 IDENTITY_VAL_LOCAL 関数呼び出 しの前に、同じトリガー処置の中で実行されなかった場合、 関数は NULL 値 を返します。 * IDENTITY_VAL_LOCAL 関数は deterministic 関数ではないため、 カーソルの SELECT ステートメント内の IDENTITY_VAL_LOCAL 関数の呼び出しの結果は、 各 FETCH ステートメントによって異なります。 * 割り当て値は、識別列に実際に割り当てられる値 (つまり、その後に続く SELECT ステートメントで戻される値です)。 この値は必ずしも、INSERT ステ ートメントの VALUES 文節で提供される値、 あるいは DB2 によって生成され る値とは限りません。割り当て値は、 識別列に関連するトリガー変換変数 の、トリガー挿入前の本体内の SET 変換変数ステートメントに 指定されてい る値にすることができます。 * VALUES 文節をともなう単一行 INSERT を識別列と一緒に表に入れるのに 失敗 した後の関数によって戻される値は予測不能です。 値は、失敗した INSERT の前に呼び出された関数から戻された値である場合もあれば、 あるいは、続 く INSERT に割り当てられる値の場合もあります。 戻される実際の値は、失 敗の場所により異なるので、予測不能です。 例: 例 1: 変数 IVAR を、EMPLOYEE 表内の識別列に割り当てられた値に設定します。 これが EMPLOYEE 表への最初の挿入である場合は、IVAR の値は 1 です。 CREATE TABLE EMPLOYEE (EMPNO INTEGER GENERATED ALWAYS AS IDENTITY, NAME CHAR(30), SALARY DECIMAL(5,2), DEPTNO SMALLINT) 例 2: INSERT ステートメントで呼び出された IDENTITY_VAL_LOCAL 関数は、 識別 列を持つ表の VALUES 文節をともなう直前の単一行 INSERT ステートメントと関連 する値です。 T1 と T2 の 2 つの表があると想定してみてください。T1 と T2 の 両方に、C1 という名前の識別列があります。DB2 は、表 T1 の C1 列に 1 で開始 する値を順に生成し、 表 T2 の C1 列に 10 で開始する値を順に生成します。 CREATE TABLE T1 (C1 INTEGER GENERATED ALWAYS AS IDENTITY, C2 INTEGER), CREATE TABLE T2 (C1 DECIMAL(15,0) GENERATED BY DEFAULT AS IDENTITY (START WITH 10), C2 INTEGER), INSERT INTO T1 (C2) VALUES (5), INSERT INTO T1 (C2) VALUES (6), SELECT * FROM T1 which gives a result of: C1 C2 ----------- ---------- 1 5 2 6 ここで、変数 IVAR の関数を宣言します。 VALUES IDENTITY_VAL_LOCAL() INTO :IVAR この時点で、IDENTITY_VAL_LOCAL 関数は IVAR に 値 2 を戻します。 DB2 によっ て割り当てられた最新の値であるためです。 以下の INSERT ステートメントでは、 単一行を T2 に挿入します。 ここで、列 C2 は IDENTITY_VAL_LOCAL 関数から値 2 を得ます。 INSERT INTO T2 (C2) VALUES (IDENTITY_VAL_LOCAL()); SELECT * FROM T2 WHERE C1 = DECIMAL(IDENTITY_VAL_LOCAL(),15,0) returning a result of: C1 C2 ----------------- ---------- 10. 2 この挿入後の IDENTITY_VAL_LOCAL 関数の呼び出しにより、 結果は、DB2 が T2 の C1 に用に生成した値 10 となります。 トリガーに関係するネストされた環境では、識別列がより低いレベルで割り当てら れていても、 ある特定のレベルで割り当てられている識別値を検索するには IDENTITY_VAL_LOCAL 関数を 使用してください。 3 つの表 EMPLOYEE、EMP_ACT、お よび ACCT_LOG があると仮定します。 EMP_ACT および ACCT_LOG 表に挿入をさらに 行う AFTER 挿入トリガーが EMPLOYEE に定義されています。 CREATE TABLE EMPLOYEE (EMPNO SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 1000), NAME CHAR(30), SALARY DECIMAL(5,2), DEPTNO SMALLINT); CREATE TABLE EMP_ACT (ACNT_NUM SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 1), EMPNO SMALLINT); CREATE TABLE ACCT_LOG (ID SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 100), ACNT_NUM SMALLINT, EMPNO SMALLINT); CREATE TRIGGER NEW_HIRE AFTER INSERT ON EMPLOYEE REFERENCING NEW AS NEW_EMP FOR EACH ROW MODE DB2SQL BEGIN ATOMIC INSERT INTO EMP_ACT (EMPNO) VALUES (NEW_EMP.EMPNO); INSERT INTO ACCT_LOG (ACNT_NUM EMPNO) VALUES (IDENTITY_VAL_LOCAL(), NEW_EMP.EMPNO); END 最初にトリガーされる INSERT ステートメントは、 行を EMP_ACT 表に挿入しま す。 この INSERT ステートメントは、EMPLOYEE 表の EMPNO 列のトリガー変換変数 を使用して、 EMPLOYEE 表の EMPNO 列の識別値を EMP_ACT 表の EMPNO 列にコピー するよう指示します。 EMPLOYEE 表の EMPNO 列に割り当てられている値を得るため に、 IDENTITY_VAL_LOCAL 関数を使用することはできません。 これは、このネスト のレベルで INSERT ステートメントが出されていないことが原因で、 IDENTITY_VAL_LOCAL 関数が EMP_ACT の INSERT の VALUES 文節で呼び出された場 合、 NULL 値が返されます。 この EMP_ACT 表の INSERT ステートメントの結果、 ACNT_NUM 列の新しい識別列値も 生成されます。 2 番目にトリガーされる INSERT ステートメントは、行を ACCT_LOG 表に挿入しま す。 このステートメントは IDENTITY_VAL_LOCAL 関数を呼び出し、トリガー処置の 前の INSERT ステートメントで EMP_ACT 表の ACNT_NUM 列に割り当てられた値を、 ACCT_LOG 表の ACNT_NUM 列にコピーするよう指示します。 EMPNO 列は、EMPLOYEE 表の EMPNO 列と同じ値が割り当てられています。 呼び出しアプリケーション (つまり、EMPLOYEE への INSERT が出されるレベル) か ら、 オリジナル INSERT ステートメントによって EMPLOYEE 表の EMPNO 列に割り 当てられた値に IVAR 変数を 設定します。 INSERT INTO EMPLOYEE (NAME, SALARY, DEPTNO) VALUES ('Rupert', 989.99, 50); オリジナル INSERT ステートメント、 およびトリガー処置すべてが処理された後の 3 つの表の内容: SELECT EMPNO, SUBSTR(NAME,10) AS NAME, SALARY, DEPTNO FROM EMPLOYEE; EMPNO NAME SALARY DEPTNO ----------- ----------- ---------------------------------- ----------- 1000 Rupert 989.99 50 SELECT ACNT_NUM, EMPNO FROM EMP_ACT; ACNT_NUM EMPNO ----------- ----------- 1 1000 SELECT * FROM ACCT_LOG; ID ACNT_NUM EMPNO ----------- ----------- ----------- 100 1 1000 IDENTITY_VAL_LOCAL 関数の結果は、 同じネスト・レベルで識別列に割り当てられ た最新の値になります。 オリジナル INSERT ステートメント、およびトリガー処置 すべてが処理された後、 EMPLOYEE 表の EMPNO 列に割り当てられている値が 1000 であるため、 IDENTITY_VAL_LOCAL 関数は値 1000 を返します。 下の VALUES ステ ートメントによって、IVAR が 1000 に設定されます。 EMP_ACT 表への挿入 (EMPLOYEE 表への挿入の後、より低いネスト・レベルで行われる) は、 この IDENTITY_VAL_LOCAL 関数の呼び出しによって何が返されるかには影響しません。 VALUES IDENTITY_VAL_LOCAL() INTO :IVAR; 38.3.2.6 LCASE および UCASE (ユニコード) ユニコード・データベースでは、ユニコード文字のレパートリー全体が、 これらの 文字のユニコード・プロパティーに基づく英大文字 (または小文字) です。 ASCII 文字の横倍角バージョンは、Roman numerals と同様、正しく大文字小文字変換を 行うようになりました。 38.3.2.7 MQPUBLISH >>-MQPUBLISH---(------------------------------------------------> >-----+-----------------------------------------------+---------> '-publisher-service--,--+--------------------+--' '-service-policy--,--' >----msg-data----+-----------------------------------+--)------>< '-,--topic--+--------------------+--' | (1) | '-,--correl-id-------' 注: 1. correl-id は、service および policy が事前に 定義されていない場合、指 定できません。 スキーマは MQDB2 です。 MQPUBLISH 関数はデータを MQSeries に発行します。 この関数を使用するには、 MQSeries パブリッシュ/サブスクライブまたは MQSeries Integrator の いずれか をインストールしなければなりません。 詳しくは www.ibm.com/software/MQSeries を参照してください。 MQPUBLISH 関数は、service-policy により定義されているサービス・ポリシーの 品質を使用して、msg-data に含まれているデータを、publisher-service により 指定されている MQSeries パブリッシャーに発行します。 メッセージのオプション のトピックが指定でき、オプションのユーザー定義のメッセージ相関 ID も 指定で きます。 この関数は、正常に終了すると '1' の値を返し、正常に終了しないと '0' の値を返します。 publisher-service メッセージが送信される論理 MQSeries 宛先を含むストリングです。 publisher-service が指定されていると、AMT.XML リポジトリー・ファイルに 定義されているパブリッシャー・サービス・ポイントを参照します。 サービ ス・ポイントとは、メッセージの送受信元である論理エンドポイントのことで す。 サービス・ポイントの定義には、MQSeries キュー・マネージャーおよび キューの名前が 含まれています。 詳しくは「MQSeries アプリケーション・ メッセージング・インターフェース」を参照してください。 publisher-service が指定されていない場合、DB2.DEFAULT.PUBLISHER が 使 用されます。 publisher-service の最大サイズは 48 文字です。 service-policy このメッセージの処理に使用される MQSeries AMI サービス・ポリシーを含む ストリングです。 service-policy が指定されている場合、service-policy は AMT.XML リポジトリー・ファイルに 定義されているポリシーを参照しま す。 サービス・ポリシーは、このメッセージング操作に適用されるサービ ス・オプションの 品質のセットを定義します。 このオプションには、メッセ ージ優先順位とメッセージ持続性が含まれます。 詳しくは「MQSeries アプリ ケーション・メッセージング・インターフェース」マニュアルを参照してくだ さい。 service-policy が指定されていない場合、デフォルトの DB2.DEFAULT.POLICY が使用されます。 service-policy の最大サイズは 48 文字です。 msg-data MQSeries 経由で送信されるデータを含むストリング式です。 最大サイズは 4000 文字です。 topic メッセージ発行のトピックを含むストリング式です。 トピックが指定されて いない場合、メッセージには何も関連付けられません。 topic の最大サイズ は 40 文字です。 複数のトピックを 1 つのストリングに指定することができ ます (40 文字まで)。 その場合、各トピックはコロンで区切ります。 たとえ ば、"t1:t2:the third topic" は、メッセージが t1、t2、および "the third topic" の 3 つの トピックすべてに関係していることを示しています。 correl-id このメッセージに関連させる相関 ID を含むオプションのストリング式です。 correl-id は、要求を応答に関連させるために要求および応答シナリオに よ く指定されます。 これが指定されていない場合、メッセージに相関 ID が追 加されません。 correl-id の最大サイズは 24 文字です。 例 例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) により ストリン グ "Testing 123" がデフォルト・パブリッシャー・サービス (DB2.DEFAULT.PUBLISHER) に 発行されます。 相関 ID もトピックもメッセージに 対して指定されていません。 VALUES MQPUBLISH('Testing 123') 例 2: この例では、ストリング "Testing 345" がトピック "TESTS" で パブリッシ ャー・サービス "MYPUBLISHER" に発行されます。 デフォルト・ポリシーが使用さ れていて、相関 ID が指定されていません。 VALUES MQPUBLISH('MYPUBLISHER','Testing 345', 'TESTS') 例 3: この例では、"TEST1" の相関 ID を持つポリシー "MYPOLICY" によりストリ ング "Testing 678" が パブリッシャー・サービス "MYPUBLISHER" に発行されま す。 トピック "TESTS" に関するメッセージが発行されます。 VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Testing 678','TESTS','TEST1') 例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用し、 相関 ID を使用せずに、ストリング "Testing 901" がトピック "TESTS" で パブリッシ ャー・サービス "MYPUBLISHER" に発行されます。 VALUES MQPUBLISH('Testing 901','TESTS') 上記のどの例でも、正常終了の場合は値 '1' が返されます。 38.3.2.8 MQREAD >>-MQREAD---(----+------------------------------------------+---> '-receive-service--+--------------------+--' '-,--service-policy--' >----)--------------------------------------------------------->< スキーマは MQDB2 です。 MQREAD 関数は、service-policy に定義されているサービス・ポリシーの 品質を使 用して、receive-service によって指定されている MQSeries ロケーションから メ ッセージを返します。 この操作を実行しても、receive-service に関連するキュー からこのメッセージが 除去されることはありませんが、代わりにキューの先頭にあ るメッセージが返されます。 戻り値は、このメッセージを含む VARCHAR(4000) で す。 戻されるメッセージが使用できない場合、NULL が返されます。 receive-service メッセージの受信元である論理 MQSeries 宛先を含むストリングです。 receive-service が指定されている場合、receive-service は AMT.XML リポ ジトリー・ファイルに 定義されているサービス・ポイントを参照します。 サ ービス・ポイントとは、メッセージの送受信元である論理エンドポイントのこ とです。 サービス・ポイントの定義には、MQSeries キュー・マネージャーお よびキューの名前が 含まれています。 詳しくは「MQSeries アプリケーショ ン・メッセージング・インターフェース」を参照してください。 receive-service が指定されていない場合、DB2.DEFAULT.SERVICE が 使用さ れます。 receive-service の最大サイズは 48 文字です。 service-policy このメッセージの処理に使用される MQSeries AMI サービス・ポリシーを含む ストリングです。 service-policy が指定されている場合、service-policy は AMT.XML リポジトリー・ファイルに 定義されているポリシーを参照しま す。 サービス・ポリシーは、このメッセージング操作に適用されるサービ ス・オプションの 品質のセットを定義します。 このオプションには、メッセ ージ優先順位とメッセージ持続性が含まれます。 詳しくは「MQSeries アプリ ケーション・メッセージング・インターフェース」マニュアルを参照してくだ さい。 service-policy が指定されていない場合、デフォルトの DB2.DEFAULT.POLICY が使用されます。 service-policy の最大サイズは 48 文字です。 例: 例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 デ フォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの先頭に ある メッセージが読み取られます。 VALUES MQREAD() 例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 サ ービス "MYSERVICE" により指定されているキューの先頭にある メッセージが読み 取られます。 VALUES MQREAD('MYSERVICE') 例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" によ り 指定されているキューの先頭にあるメッセージが読み取られます。 VALUES MQREAD('MYSERVICE','MYPOLICY') 上記の例ではすべて、正常終了するとメッセージの内容が VARCHAR(4000) として返 されます。 メッセージが使用できない場合、NULL が返されます。 38.3.2.9 MQRECEIVE >>-MQRECEIVE----------------------------------------------------> >----(--+-------------------------------------------------------------+---)-> '-receive-service--+---------------------------------------+--' '-,--service-policy--+---------------+--' '-,--correl-id--' >-------------------------------------------------------------->< スキーマは MQDB2 です。 MQRECEIVE 関数は、サービス・ポリシー service-policy の 品質を使用して、 receive-service によって指定されている MQSeries ロケーションからの メッセー ジを返します。 この操作を実行すると、receive-service に関連するキューからこ のメッセージが除去されます。 correl-id が指定されている場合、一致する相関 ID を持つ最初のメッセージが 返されます。 correl-id が指定されていない場合、 キューの先頭にあるメッセージが 返されます。 戻り値は、このメッセージを含む VARCHAR(4000) です。 戻されるメッセージが使用できない場合、NULL が返されま す。 receive-service メッセージの受信元である論理 MQSeries 宛先を含むストリングです。 receive-service が指定されている場合、receive-service は AMT.XML リポ ジトリー・ファイルに 定義されているサービス・ポイントを参照します。 サ ービス・ポイントとは、メッセージの送受信元である論理エンドポイントのこ とです。 サービス・ポイントの定義には、MQSeries キュー・マネージャーお よびキューの名前が 含まれています。 詳しくは「MQSeries アプリケーショ ン・メッセージング・インターフェース」を参照してください。 receive-service が指定されていない場合、DB2.DEFAULT.SERVICE が使用され ます。 receive-service の最大サイズは 48 文字です。 service-policy このメッセージの処理に使用される MQSeries AMI サービス・ポリシーを含む ストリングです。 service-policy が指定されている場合、service-policy は AMT XML リポジトリー・ファイルに 定義されているポリシーを参照しま す。 4 service-policy が指定されていない場合、 デフォルトの DB2.DEFAULT.POLICY が使用されます。 service-policy の最大サイズは 48 文字です。 correl-id このメッセージに関連させるオプションの相関 ID を含むストリングです。 correl-id は、要求を応答に関連させるために要求および応答シナリオに 指 定されることがたびたびあります。 これが指定されていない場合、相関 ID は指定されません。 correl-id の最大サイズは 24 文字です。 例: 例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 デ フォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの先頭に ある メッセージが受信されます。 VALUES MQRECEIVE() 例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 サ ービス "MYSERVICE" により指定されているキューの先頭にある メッセージが受信 されます。 VALUES MQRECEIVE('MYSERVICE') 例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" によ り 指定されているキューの先頭にあるメッセージが受信されます。 VALUES MQRECEIVE('MYSERVICE','MYPOLICY') 例 4: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" によ り 指定されているキューの先頭から '1234' に一致する相関 ID を持つ最初のメッ セージが 受信されます。 VALUES MQRECEIVE('MYSERVICE',MYPOLICY','1234') 上記の例ではすべて、正常終了すると メッセージの内容が VARCHAR(4000) として 返されます。 メッセージが使用できない場合、NULL が返されます。 38.3.2.10 MQSEND >>-MQSEND---(----+------------------------------------------+---> '-send-service--,--+--------------------+--' '-service-policy--,--' >----msg-data----+--------------------+--)--------------------->< | (1) | '-,--correl-id-------' 注: 1. correl-id は、service および policy が事前に 定義されていない場合、指 定できません。 スキーマは MQDB2 です。 MQSEND 関数は、service-policy により定義されているサービス・ポリシーの 品質 を使用して、msg-data に含まれているデータを、send-service により 指定されて いる MQSeries ロケーションに送信します。 任意指定のユーザー定義メッセージ相 関 ID は、correl-id によって指定することができます。 この関数は、正常に終了 すると '1' の値を返し、正常に終了しないと '0' の値を返します。 msg-data MQSeries 経由で送信されるデータを含むストリング式です。 最大サイズは 4000 文字です。 send-service メッセージが送信される論理 MQSeries 宛先を含むストリングです。 send-service が指定されている場合、send-service は AMT.XML に定義され ている サービス・ポイントを参照します。 サービス・ポイントとは、メッセ ージを送受信する 論理エンドポイントのことです。 サービス・ポイントの定 義には、MQSeries キュー・マネージャーおよびキューの名前が 含まれていま す。 詳しくは「MQSeries アプリケーション・メッセージング・インターフェ ース」マニュアルを参照してください。 send-service が指定されていない場 合、DB2.DEFAULT.SERVICE の値が使用されます。 send-service の最大サイズ は 48 文字です。 service-policy このメッセージの処理に使用される MQSeries AMI サービス・ポリシーを含む ストリングです。 service-policy が指定されている場合、service-policy は AMT XML リポジトリー・ファイルに 定義されているサービス・ポリシーを 参照します。 サービス・ポリシーは、このメッセージング操作に適用される サービス・オプションの 品質のセットを定義します。 このオプションには、 メッセージ優先順位とメッセージ持続性が含まれます。 詳しくは「MQSeries アプリケーション・メッセージング・インターフェース」マニュアルを 参照 してください。 service-policy が指定されていない場合、 DB2.DEFAULT.POLICY のデフォルト値が 使用されます。 service-policy の最 大サイズは 48 文字です。 correl-id このメッセージに関連させる相関 ID を含むオプションのストリングです。 correl-id は、要求を応答に関連させるために要求および応答シナリオに 指 定されることがたびたびあります。 これが指定されていない場合、相関 ID は送信されません。 correl-id の最大サイズは 24 文字です。 例: 例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 相 関 ID は使用せずに、ストリング "Testing 123" がデフォルト・サービス (DB2.DEFAULT.SERVICE) に 送信されます。 VALUES MQSEND('Testing 123') 例 2: この例では、ポリシー "MYPOLICY" を使用して、相関 ID は使用せずに、 ス トリング "Testing 345" がサービス "MYSERVICE" に送信されます。 VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 345') 例 3: この例では、ポリシー "MYPOLICY" と相関 ID "TEST3" を使用して、 ストリ ング "Testing 678" がサービス "MYSERVICE" に送信されます。 VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 678','TEST3') 例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 相 関 ID は使用せずに、ストリング "Testing 901" がサービス "MYSERVICE" に 送信 されます。 VALUES MQSEND('MYSERVICE','Testing 901') 上記のすべての例で、正常終了の場合は、'1' のスカラー値が返されます。 38.3.2.11 MQSUBSCRIBE >>-MQSUBSCRIBE---(----------------------------------------------> >-----+------------------------------------------------+--------> '-subscriber-service--,--+--------------------+--' '-service-policy--,--' >----topic---)------------------------------------------------->< スキーマは MQDB2 です。 MQSUBSCRIBE 関数は、指定のトピックで発行された MQSeries メッセージに関連さ せるために 使用されます。 subscriber-service は、指定のトピックに一致するメ ッセージの論理宛先を指定します。 topic に一致するメッセージが subscriber-service より定義されている キューに投入され、その後に MQREAD、 MQRECEIVE、MQREADALL、または MQRECEIVEALL に呼び出し が出されると、そのメッ セージの読み取りまたは受信が可能となります。 この機能は、MQSeries ベースの パブリッシュおよびサブスクライブ・システム (MQSeries Integrator、 MQSeries パブリッシュ/サブスクライブなど) のインストールおよび構成を必要とします。 詳しくは www.ibm.com/software/MQSeries を参照してください。 この関数は、正常に終了すると '1' の値を返し、正常に終了しないと '0' の値を 返します。 この関数が正常に実行されると、パブリッシュおよびサブスクライブ・ サーバーが トピックに一致するメッセージを subscriber-service によって定義さ れている サービス・ポイントに転送します。 subscriber-service topic に一致するメッセージの送信先である論理 MQSeries サブスクリプショ ン・ポイントを 含むストリングです。 subscriber-service が指定されてい る場合、AMT.XML リポジトリー・ファイルに 定義されているサブスクライバ ー・サービス・ポイントを参照します。 サービス・ポイントの定義には、 MQSeries キュー・マネージャーおよびキューの名前が 含まれています。 詳 しくは「MQSeries アプリケーション・メッセージング・インターフェース」 マニュアルを参照してください。subscriber-service が指定されていない場 合、 代わりに DB2.DEFAULT.SUBSCRIBER が使用されます。 subscriber-service の最大サイズは 48 文字です。 service-policy このメッセージの処理に使用される MQSeries AMI サービス・ポリシーを含む ストリングです。 service-policy が指定されている場合、service-policy は AMT.XML リポジトリー・ファイルに 定義されているポリシーを参照しま す。 サービス・ポリシーは、このメッセージング操作に適用される サービ ス・オプションの品質のセットを定義します。 このオプションには、メッセ ージ優先順位とメッセージ持続性が含まれます。 詳しくは「MQSeries アプリ ケーション・メッセージング・インターフェース」マニュアルを 参照してく ださい。 service-policy が指定されていない場合、代わりにデフォルトの DB2.DEFAULT.POLICY が使用されます。 service-policy の最大サイズは 48 文字です。 topic 受信するメッセージのタイプを定義するストリングです。 指定のトピックで 発行されたメッセージだけがこのサブスクリプションにより受信されます。 複数のサブスクリプションが同時に存在できます。 トピックの最大サイズは 40 文字です。 複数のトピックを 1 つのストリングに指定することができま す (40 文字まで)。 その場合、各トピックはコロンで区切ります。 たとえ ば、"t1:t2:the third topic" は、メッセージが t1、t2、および "the third topic" の 3 つの トピックすべてに関係していることを示しています。 例: 例 1: この例では、トピック "Weather" を含むメッセージが扱われます。 デフォ ルトの subscriber-service (DB2.DEFAULT.SUBSCRIBER) がサブスクライバーとして 登録されます。 デフォルトの service-policy (DB2.DEFAULT.POLICY) がサービス の品質を 指定します。 VALUES MQSUBSCRIBE('Weather') 例 2: この例は、"Stocks" を含むメッセージに関するサブスクライバーの デモン ストレーションです。 サブスクライバーが "PORTFOLIO-UPDATES" としてポリシー "BASIC-POLICY" で 登録されます。 VALUES MQSUBSCRIBE('PORTFOLIO-UPDATES','BASIC-POLICY','Stocks') 上記のすべての例で、正常終了すると '1' のスカラー値が返されます。 38.3.2.12 MQUNSUBSCRIBE >>-MQUNSUBSCRIBE---(--------------------------------------------> >-----+------------------------------------------------+--------> '-subscriber-service--,--+--------------------+--' '-service-policy--,--' >----topic---)------------------------------------------------->< スキーマは MQDB2 です。 MQUNSUBSCRIBE 関数は、既存のメッセージ・サブスクリプションを抹消するために 使用されます。 取り消されたサブスクリプションを識別するために subscriber-service、service-policy、 および topic が使用されます。 この機能 は、MQSeries ベースのパブリッシュおよびサブスクライブ・システム (MQSeries Integrator、 MQSeries パブリッシュ/サブスクライブなど) のインストールおよび 構成を必要とします。 詳しくは www.ibm.com/software/MQSeries を参照してくだ さい。 この関数は、正常に終了すると '1' の値を返し、正常に終了しないと '0' の値を 返します。 この機能が正常に実行されると、結果として、パブリッシュおよびサブ スクライブ・サーバーが、 指定のパラメーターにより定義されたサブスクリプショ ンを除去します。 指定の topic を持つメッセージは、subscriber-service により 定義されている論理宛先に送信されなくなります。 subscriber-service subscriber-service が指定されている場合、AMT.XML リポジトリー・ファイ ルに 定義されているサブスクライバー・サービス・ポイントを参照します。 サービス・ポイントの定義には、MQSeries キュー・マネージャーおよびキュ ーの名前が 含まれています。 詳しくは「MQSeries アプリケーション・メッ セージング・インターフェース」 マニュアルを参照してください。 subscriber-service が指定されていない場合、 DB2.DEFAULT.SUBSCRIBER の 値が使用されます。 subscriber-service の最大サイズは 48 文字です。 service-policy service-policy が指定されている場合、service-policy は AMT.XML リポジ トリー・ファイルに 定義されているポリシーを参照します。 サービス・ポリ シーは、このメッセージング操作に適用される サービス・オプションの品質 のセットを定義します。 詳しくは「MQSeries アプリケーション・メッセージ ング・インターフェース」マニュアルを 参照してください。 service-policy が指定されていない場合、デフォルトの DB2.DEFAULT.POLICY が使用されま す。 service-policy の最大サイズは 48 文字です。 topic 受信されないメッセージのサブジェクトを指定するストリングです。 topic の最大サイズは 40 文字です。 複数のトピックを 1 つのストリングに指定す ることができます (40 文字まで)。 その場合、各トピックはコロンで区切り ます。 たとえば、"t1:t2:the third topic" は、メッセージが t1、t2、およ び "the third topic" の 3 つの トピックすべてに関係していることを示し ています。 例: 例 1: この例では、トピック "Weather" を含むメッセージに対する関連が取り消さ れます。 デフォルトの subscriber-service (DB2.DEFAULT.SUBSCRIBER) がアンサ ブスクライバーとして 登録されます。 デフォルトの service-policy (DB2.DEFAULT.POLICY) がサービスの品質を 指定します。 VALUES MQUNSUBSCRIBE('Weather') 例 2: この例は、"Stocks" を含むメッセージに対する関連を取り消す サブスクラ イバーのデモンストレーションです。 サブスクライバーが "PORTFOLIO-UPDATES" としてポリシー "BASIC-POLICY" で 登録されます。 VALUES MQUNSUBSCRIBE('PORTFOLIO-UPDATES','BASIC-POLICY','Stocks') 上記の例は正常終了すれば '1' のスカラー値が返され、正常に終了しなければ '0' の スカラー値が返されます。 38.3.2.13 MULTIPLY_ALT >>-MULTIPLY_ALT-------------------------------------------------> >----(exact_numeric_expression, exact_numeric_expression)------>< スキーマは SYSIBM です。 この関数は、バージョン 7.1 のフィックスパック 2 から有効になりました。 MULTIPLY_ALT スカラー関数は、2 つの引き数の積を 10 進数として返します。 こ れは特に、引き数の精度の合計が 31 を超えるときに、乗算の演算子の代替として 提供されます。 引き数には組み込み数値データ・タイプ (DECIMAL、BIGINT、INTEGER、または SMALLINT) を 指定できます。 関数の結果は DECIMAL です。結果の精度と位取りは、以下のように決定されます。 記号 p および s を使用して最初の引き数の精度と位取りを、記号 p' および s' を使用して 2 番目の 引き数の精度と位取りを指定します。 * 精度は MIN(31, p + p') * 位取りは: o 両方の引き数が 0 の場合は 0 o p+p' が 31 より小さいかまたは等しい場合は MIN(31, s+s') o p+p' が 31 より大きい場合は MAX(MIN(3, s+s'), 31-(p-s+p'-s') ) 少なくとも 1 つの引き数がヌルであるか、または DFT_SQLMATHWARN が yes に 設 定されてデータベースが構成されている場合、結果はヌルになることが可能です。 引き数の 1 つがヌルの場合、結果は NULL 値になります。 MULTIPLY_ALT 関数は、少なくとも 3 の位取りが必要で、精度の合計が 31 を 超え るような 10 進数の計算を実行するときは、乗算演算子よりもよい選択です。 この ような場合、内部計算が実行されるため、オーバーフローが回避されます。 最終結 果は、位取りを合わせるために必要な切り捨てを使用して、結果データ・タイプに 割り当てられます。最終結果のオーバーフローは、位取りが 3 のときはまだ 起こ り得ることに注意してください。 以下は、MULTIPLY_ALT と乗算演算子を使用した結果タイプの比較の例です。 引き数タイプ 1 引き数タイプ 2 MULTIPLY_ALT を使 乗算演算子を使用し 用した結果 た結果 DECIMAL(31,3) DECIMAL(15,8) DECIMAL(31,3) DECIMAL(31,11) DECIMAL(26,23) DECIMAL(10,1) DECIMAL(31,19) DECIMAL(31,24) DECIMAL(18,17) DECIMAL(20,19) DECIMAL(31,29) DECIMAL(31,31) DECIMAL(16,3) DECIMAL(17,8) DECIMAL(31,9) DECIMAL(31,11) DECIMAL(26,5) DECIMAL(11,0) DECIMAL(31,3) DECIMAL(31,5) DECIMAL(21,1) DECIMAL(15,1) DECIMAL(31,2) DECIMAL(31,2) 例: 最初の引き数のデータ・タイプが DECIMAL(26,3)、2 番目の引き数の データ・タイ プが DECIMAL(9,8) の 2 つの値を乗算します。結果の データ・タイプは DECIMAL(31,7) です。 values multiply_alt(98765432109876543210987.654,5.43210987) 1--------------------------------- 536504678578875294857887.5277415 これら 2 つの数値の積の すべては 536504678578875294857887.52774154498 にな りますが、最後の 4 桁は 結果のデータ・タイプの位取りに一致させるために切り 捨てられます。同じ値を持つ 乗算演算子を使用すると、結果のデータ・タイプが DECIMAL(31,11) で、結果の値の 小数点の左側が 24 桁になりますが、結果のデー タ・タイプは 20 桁のみを サポートします。 38.3.2.14 REC2XML >>-REC2XML---(--decimal-constant---,--format-string-------------> >----,--row-tag-string----+------------------------+--)-------->< | .------------------. | | V | | '----,--column-name---+--' スキーマは SYSIBM です。 REC2XML 関数は、XML タグ形式のストリングで列名と列値を含むものを返します。 decimal-constant 列値の文字を置換するための拡張係数です。 0.0 より大きく 6.0 以下の 10 進数の値でなければなりません (SQLSTATE 42820)。 関数の結果の長さを計算するには decimal-constant 値が使用されます。 文 字データ・タイプを持つ列では、列の長さ属性が結果の長さに追加される前に この拡張係数により複数にされます。 拡張を指定しない場合、1.0 の値を使用します。 1.0 未満の値を指定した場 合、計算される結果の長さが短くなります。 結果ストリングの実際の長さが この関数の計算された結果の長さより長い場合、 エラーが発生します (SQLSTATE 22001)。 format-string 実行時にこの関数が使用する形式を指定するストリング定数です。 format-string は 大文字小文字の区別をするため、大文字を認識させるには 次の値を指定する必要があります。 COLATTVAL または COLATTVAL_XML これらの形式は、属性値としての列を持つストリングを返します。 >>-<--row-tag-string-->-----------------------------------------> .---------------------------------------------------------------------. V | >--------<--column-name--=--"column-name"--+->--column-value----+--+> '-null="true"------------------------------------------->< 列名は有効な XML 属性値である場合も、そうではない場合もあります。 無効な XML 属性値である列名の場合、列名が結果のストリングに含まれ る前に 列名の文字が置換されます。 列値は有効な XML エレメント値である場合も、そうではない場合もあり ます。 format-string COLATTVAL が指定されているとき、 列値が結果 のストリングに含まれる前に、無効な XML エレメント値 になっている 列値が置換されます。 format-string COLATTVAL_XML が指定されている 場合、列値の文字が 置換されます (列名の文字も置換されることに注意 してください)。 row-tag-string 行ごとに使用されるタグを指定するストリング定数です。 空ストリングが指定されていると、 行の値が想定されます。 1 つ以上のブランク文字のストリングが指定されている 場合、最初の row-tag-string も最後の row-tag-string (不等号括弧区切り文字を含む) も 結果のストリングには表示されません。 column-name 表列の修飾名または非修飾名です。 この列には、以下のデータ・タイプのい ずれかが必要です (SQLSTATE 42815): o 数値 (SMALLINT、INTEGER、BIGINT、DECIMAL、NUMERIC、REAL、DOUBLE) o 文字ストリング (CHAR、VARCHAR) 5 o 日時 (DATE、TIME、TIMESTAMP) o 上記のタイプのいずれかに基づいたユーザー定義のタイプ 同じ列名を 2 回以上指定することはできません (SQLSTATE 42734)。 この関数の結果は VARCHAR です。 最大長は 32672 バイトです (SQLSTATE 54006)。 以下の呼び出しを考慮してください: REC2XML (dc, fs, rt, c1, c2, ..., cn) fsの値は "COLATTVAL" または "COLATTVAL_XML" の場合 結果は次の式と同じです: '<' CONCAT rt CONCAT '>' CONCAT y1 CONCAT y2 CONCAT ... CONCAT yn CONCAT '' yn は 次の値と同等です: '' CONCAT rn CONCAT '' (列がヌルではない場合)、および '" null="true"/>' (列の値がヌルの場合)。 xvcn は cn の 列名のストリング表記と同等です。 表 29 に表示される文字 は対応する表記で置き換えられます。 これにより、結果として表示されるス トリングは有効な XML 属性またはエレメント値トークンであることが 保証さ れます。 rn は 表 28 で示されている ストリング表記と同等です。 結果列値: 列のデータ・タイプと、指定されている実際の format-string に基づいて、 表の 列値を結果のストリングに連結する前にその列値をトランスフォームすることが で きます。 以下の表は、列値で行われたトランスフォーメーションを示します。 表 28. 列値ストリング結果 cn のデータ・タイプ rn CHAR, VARCHAR 値はストリングです。 format-string が "_XML" という文字で終わっていない場 合、 示されているように cn の各文字が 表 29 の 対応する置換表示で置き換えら れます。 長さ属性は次のようになりま す: dc * cn の長さ属性。 SMALLINT、INTEGER、BIGINT、DECIMAL、値は LTRIM(RTRIM(CHAR(cn))) です。 長 NUMERIC、REAL、DOUBLE さ属性は CHAR(cn) の結果の長さです。 小数点文字は必ずピリオドです。 DATE 値は CHAR(cn, ISO) です。 長さ属性は CHAR(cn, ISO) の結果の長さです。 TIME 値は CHAR(cn, JIS) です。 長さ属性は CHAR(cn, JIS) の結果の長さです。 TIMESTAMP 値は CHAR(cn) です。 長さ属性は CHAR(cn) の結果の長さです。 文字置換: format-string に対して指定されている値に応じて、列名が有効 XML 属性値を形成 し、 列値が有効 XML エレメント値を形成することを確認するために、列名と列値 にある 特定の文字が置換されます。 表 29. XML 属性値およびエレメント値の文字置換 < は < で置換されます。 > は > で置換されます。 " は " で置換されます。 & は & で置換されます。 ' は ' で置換されます。 例: * DEPARTMENT 表を使用して、部門 'D01' の部門表の行 (DEPTNAME 列と LOCATION 列を除く) を フォーマットして、有効な XML のストリングにしま す。 データには置換を要求する文字がないため、拡張係数は 1.0 (拡張なし) です。 MGRNO の値がこの行に対してヌルであることに注意してください。 SELECT REC2XML (1.0, 'COLATTVAL', '', DEPTNO, MGRNO, ADMRDEPT) FROM DEPARTMENT WHERE DEPTNO = 'D01' この例では、 以下の VARCHAR(117) ストリングが返されます。 D01 A00 注: REC2XML は出力に改行文字を挿入しません。 上記の例の出力は、読み取 ることができるようにフォーマットされます。 * 5 日間の大学のスケジュールにおいて、CLASS_CODE 列の新しい形式で '&43' および '' オーバーヘッドに 11、 列名に 21、'', '' および二重引用符に 75、 CLASS_CODE データに 7、DAY データに 6、STARTING データに 8)。 '&' 文字 および '<' 文字が置換されるため、 拡張係数が 1.0 だと不十分です。 新し い形式の CLASS_CODE データの場合、関数の長さ属性を 7 文字から 14 文字 に 増やさなければなりません。 ただし、DAY 値は 1 桁より 大きくならないため、余分な 5 桁が計算され て、決して使用されない長さになります。 そのため拡張時には、2 だけ増や す必要があります。 CLASS_CODE が引き数リストにある唯一の文字ストリング 列であるため、 これは拡張係数が適用される唯一の列値です。 長さの増分 2 を得るためには、9/7 (約 1.2857) の拡張係数が必要となります。 1.3 の拡 張係数が使用されます。 SELECT REC2XML (1.3, 'COLATTVAL', 'record', CLASS_CODE, DAY, STARTING) FROM CL_SCHED WHERE CLASS_CODE = '&43 &43<FIE 5 06:45:00 注: REC2XML は出力に改行文字を挿入しません。 上記の例の出力は、読み取 ることができるようにフォーマットされます。 * この例は、列名内の置換された文字を示します。 SELECT REC2XML (1.3,'COLATTVAL', '', Class, "time &43<FIE >-GET_ROUTINE_SAR----------------------------------------------> >----(--sarblob--,--タイプ--,--routine_name_string--)---------->< スキーマは SYSFUN です。 このプロシージャーは、バージョン 7.1 の フィックスパック 3 から有効になりま した。 GET_ROUTINE_SAR プロシージャーは、同じオペレーティング・システムで同じレベ ルを 実行している別のデータベース・サーバーで、同じルーチンをインストールす るために 必要な情報を検索します。情報は、SQL アーカイブ・ファイルを表す単一 BLOB ストリングへ 取り出されます。GET_ROUTINE_SAR プロシージャーの呼び出し 元は、DBADM 権限を持っている 必要があります。 sarblob ルーチン SAR ファイル・コンテンツを含む、タイプ BLOB(3M) の出力引き 数。 type 以下の値のいずれかを使用して、ルーチンのタイプを指定するタイプ CHAR(2) の入力引き数。 o P - プロシージャー o SP - プロシージャーの特定名 routine_name_string ルーチンの修飾名を指定する、タイプ VARCHAR(257) の入力引き数。 スキー マ名が指定されていない場合、ルーチンが処理されるときデフォルトは CURRENT SCHEMA になります。 注: routine_name_string に二重引用符 (") を組み込むことはできません。 ルーチンの修飾名は、検索するルーチンを決定するために使用されます。 見つかっ たルーチンが SQL ルーチンでなければ、エラーが起こります (SQLSTATE 428F7)。 特定の名前を使用しないと、複数のルーチンを指す可能性があり、エラーが起こり ます (SQLSTATE 42725)。 これが起きた場合、ルーチンを取得するには、特定の名 前のルーチンを 指定しなければなりません。 SAR ファイルは、サーバーで使用可能ではない可能性のあるバインド・ファイルを 組み込む 必要があります。バインド・ファイルが見つからず、SAR ファイルに保管 できない場合、 エラーが起こります (SQLSTATE 55045)。 38.3.4.2 PUT_ROUTINE_SAR >>-PUT_ROUTINE_SAR----------------------------------------------> >----(--sarblob--+-------------------------------------+--)---->< '-,--new_owner--,--use_register_flag--' スキーマは SYSFUN です。 このプロシージャーは、バージョン 7.1 の フィックスパック 3 から有効になりま した。 PUT_ROUTINE_SAR プロシージャーは、サーバーで SQL ルーチンを作成するために必 要な ファイルを渡し、ルーチンを定義します。PUT_ROUTINE_SAR プロシージャーの 呼び出し元は、 DBADM 権限を持っている必要があります。 sarblob ルーチン SAR ファイル・コンテンツを含む、タイプ BLOB(3M) の入力引き 数。 new_owner ルーチンの許可検査に使用される許可名を含む、タイプ VARCHAR(128) の入力 引き数。 new-owner は、定義されるルーチンに必要な権限を持っていなけれ ばなりません。 new-owner が指定されない場合、オリジナル・ルーチン定義 者の許可名が使用されます。 use_register_flag CURRENT SCHEMA および CURRENT PATH 特殊レジスターがルーチンの定義に使 用されるか どうかを指示する、タイプ INTEGER の入力引き数。特殊レジスタ ーが使用されない場合、 ルーチンがはじめに定義されるときはデフォルト・ スキーマと SQL パスの設定が使用されます。 use-register-flag に考えられ る値は以下の通りです。 0 現行環境の特殊レジスターを使用しません。 1 CURRENT SCHEMA および CURRENT PATH 特殊レジスターを使用します。 値が 1 の場合、ルーチン定義 (ルーチンの名前を含む) の非修飾オブジェク ト名に CURRENT SCHEMA が 使用され、ルーチン定義の非修飾ルーチンとデー タ・タイプを解決するために CURRENT PATH が使用されます。 use-registers-flag が指定されない場合、振る舞いは 0 が指定されたときと 同じです。 sarblob に含まれる識別情報が、入力が環境とって適切かを確認するために 検査さ れます。そうでない場合、エラーが起こります (SQLSTATE 55046)。 PUT_ROUTINE_SAR プロシージャーは次に、sarblob の内容を使用してサーバーでル ーチンを定義します。 sarblob 引き数の内容は SQL アーカイブ・ファイルを構成する個々のファイルへ抽 出されます。 共有ライブラリーとバインド・ファイルは、1 次ディレクトリーの ファイルに書き込まれます。環境は、コンパイルおよびリンクが不要であること、 共有ライブラリーとバインド・ファイルの場所が使用可能であることを、 ルーチン 定義ステートメント処理に認識させるように設定されます。 DDL ファイルの内容 が、ルーチン定義ステートメントを動的に実行するために 使用されます。 注: 指定のスキーマの下で、複数のプロシージャーが 並行してインストールされ ることはありません。 このステートメントの処理は、他のインターフェースを使用してルーチン定義 ステ ートメントを実行するのと同じエラーを起こす可能性があります。ルーチン定義 処 理中に、共有ライブラリーとバインド・ファイルの存在が通知され、プリコンパイ ル、 コンパイル、およびリンクのステップがスキップされます。バインド・ファイ ルは バインド処理中に使用され、両方のファイルの内容が SQL ルーチンの通常デ ィレクトリーに コピーされます。 注: GET ROUTINE または PUT ROUTINE 操作 (あるいは対応する プロシージャー) を正常に実行できなかった場合、問題の原因についての情報を 提供する診断 テキストともに、常にエラーが返されます (SQLSTATE 38000)。 たとえば、 GET ROUTINE に与えられているプロシージャー名が SQL プロシージャーを 識 別していない場合、問題の原因を示す 診断テキスト "100, 02000" (ここで "100 と "02000" はそれそれ SQLCODE と SQLSTATE) が 返されます。 この例 で、SQLCODE と SQLSTATE は、与えられたプロシージャー名に指定されている 行がカタログ表に見つからなかったことを示しています。 ------------------------------------------------------------------------ 38.4 第 5 章 照会 38.4.1 select-statement/構文図 構文図を以下のように変更します。 >>-+---------------------------------------+--fullselect--------> | .-,--------------------------. | | V | | '-WITH-----common-table-expression---+--' >----+-----------------+--+--------------------+----------------> '-order-by-clause-' '-fetch-first-clause-' >----*--+---------------------+--*--+---------------------+--*--> +-read-only-clause----+ '-optimize-for-clause-' | (1) | '-update-clause-------' >-----+---------------+---------------------------------------->< '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' 注: 1. update-clause と order-by-clause を同じ select-statement に同時に指定 することはできません。 構文図の下の説明に、以下の段落を追加します。 オプションの WITH 文節は、select ステートメントが実行される分離レベル を指定します。 o RR - 反復可能読み取り o RS - 読み取り固定 o CS - カーソル固定 o UR - アンコミット読み取り ステートメントのデフォルト分離レベルは、ステートメントがバインドされて いる パッケージの分離レベルです。 38.4.2 select-statement/fetch-first-clause fetch-first-clause の記述の最後の段落: select-statement の fetch-first-clause の指定により、 カーソルは検出不能 (読み取り専用) になります。 この文節を FOR UPDATE 文節で指定することはできません。 この記述は誤りで、除去されます。 ------------------------------------------------------------------------ 38.5 第 6 章 SQL ステートメント 38.5.1 区分化キーの更新がサポートされるようになりました 区分化キーの更新がサポートされるようになりました。DB2_UPDATE_PART_KEY=ON の 場合にのみ、第 6 章の各種ステートメントから次のテキストが 削除されます。 注: DB2_UPDATE_PART_KEY=OFF でも、制約事項は適用されます。 38.5.1.1 ステートメント: ALTER TABLE 規則 * 表の区分化キー列は更新できません (SQLSTATE 42997)。 * 区分化キーの NULL 可能列は、ON DELETE SET NULL で関係が定義されたとき は 外部キー列として組み込むことができません (SQLSTATE 42997)。 38.5.1.2 ステートメント: CREATE TABLE 規則 * 表の区分化キー列は更新できません (SQLSTATE 42997)。 * 区分化キーの NULL 可能列は、ON DELETE SET NULL で関係が定義されたとき は 外部キー列として組み込むことができません (SQLSTATE 42997)。 38.5.1.3 ステートメント: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (column-name,...) 注: 区分化キー列は更新できません (SQLSTATE 42997)。 38.5.1.4 ステートメント: UPDATE 脚注 * 108 区分化キーの列が更新可能ではありません (SQLSTATE 42997)。 区分化キ ーの列を変更するには、データの行を削除および挿入しなければなりません。 38.5.2 ユニコード・データベースのより大きな索引キー 38.5.2.1 ALTER TABLE レジストリー変数 DB2_INDEX_2BYTEVARLEN がオンであったときに定義された、 1 次および固有キーを含む索引の一部である可変長列の長さを 255 バイトを超える 長さに変更することができます。 実際、可変長列は外部キーに関係していますが、 レジストリー値の設定にかかわらず、 列を 255 バイトを超える長さに変更するこ とを妨げるわけではありません。 ただし、対応する 1 次キーの長さが 255 バイト を超えていないかぎり、長さが 255 を 超えるデータを表に挿入することはできま せん。 これが可能なのは、レジストリー変数 ON で 1 次キーが作成された場合だ けです。 38.5.2.2 CREATE INDEX レジストリー変数 DB2_INDEX_2BYTEVARLEN が ON であれば、 長さが 255 バイトを 超える可変長列に索引を定義できます。 38.5.2.3 CREATE TABLE レジストリー変数 DB2_INDEX_2BYTEVARLEN が ON になっていれば、 可変キー部分 を持つ 1 次および固有キーのサイズを 255 より大きくすることができます。 長さ が 255 バイトを超える可変長列に外部キーを定義できます。 38.5.3 ALTER SEQUENCE ALTER SEQUENCE ALTER SEQUENCE ステートメントは、以下の動作によってシーケンスの属性を変更し ます。 * シーケンスを再始動 * 将来のシーケンス値の間の増分を変更 * 新しい最小値または最大値を設定 * キャッシュ済みシーケンス番号の数を変更 * シーケンスが循環するかどうかを変更 * 要求の順序でシーケンス番号が生成されるかどうかを変更 呼び出し このステートメントはアプリケーション・プログラムに組み込むことができ、また 動的 SQL ステートメントの使用によって出すことができます。 動的に準備できる 実行可能ステートメントです。ただし、バインド・オプション DYNAMICRULES BIND が適用されている場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。 権限 ステートメントの許可 ID によって保持されている特権には、 少なくとも以下のい ずれかが含まれていなければなりません。 * シーケンスの定義者 * 暗黙的または明示的に指定されているスキーマの ALTERIN 特権 * SYSADM または DBADM 権限 構文 >>-ALTER SEQUENCE--sequence-name--------------------------------> .-------------------------------------------. V | >-------+-RESTART--+-------------------------+-+--+------------>< | '-WITH--numeric-constant--' | +-INCREMENT BY--numeric-constant-------+ +-+-MINVALUE--numeric-constant--+------+ | '-NO MINVALUE-----------------' | +-+-MAXVALUE--numeric-constant--+------+ | '-NO MAXVALUE-----------------' | +-+-CYCLE----+-------------------------+ | '-NO CYCLE-' | +-+-CACHE--integer-constant--+---------+ | '-NO CACHE-----------------' | '-+-ORDER----+-------------------------' '-NO ORDER-' 説明 sequence-name 特定のシーケンスを識別します。 名前の組み合わせ、また暗黙および明示ス キーマ名は、 現在のサーバーに存在するシーケンスを識別していなければな りません。 この名前によるシーケンスが、明示的または暗黙的に指定された スキーマに存在しない場合、 エラー (SQLSTATE 42704) が出されます。 RESTART シーケンスを再始動します。 numeric-constant が指定されていない場合、シ ーケンスは、 そのシーケンスを作成した CREATE SEQUENCE ステートメントに 開始値として暗黙的または 明示的に指定されている値で再始動されます。 WITH numeric-constant 指定されている値でシーケンスを再始動します。 この値は、小数点の右 側に非ゼロの数字がない (SQLSTATE 42894) かぎり、シーケンスに関連 する データ・タイプの列に割り当てることができる正または負の値にす ることができます (SQLSTATE 42820)。 INCREMENT BY シーケンスの連続値の間隔を指定します。 この値は、小数点の右側に非ゼロ の数字がない (SQLSTATE 428FA) かぎり、シーケンスに関連する データ・タ イプの列に割り当てることができる正または負の値にすることができ (SQLSTATE 42820)、 長精度整数定数の値を超えることはありません (SQLSTATE 42815)。 この値が負の場合、値のシーケンスは下降します。 正であれば、値のシーケ ンスは上昇します。 値がゼロ、または MINVALUE および MAXVALUE に定義さ れている範囲よりも大きい場合、 生成される値は 1 つだけですが、そうでな ければシーケンスは昇順シーケンスとして 扱われます。 MINVALUE または NO MINVALUE 降順シーケンスが値の生成を循環または停止する最小値、あるいは最大値に達 した後、 昇順シーケンスが循環する最小値を指定します。 MINVALUE numeric-constant 最小値である数値定数を指定します。 この値は、小数点の右側に非ゼロ の数字がない (SQLSTATE 428FA) かぎり、シーケンスに関連する デー タ・タイプの列に割り当てることができる正または負の値にすることが できます (SQLSTATE 42820) が、 最大値以下でなければなりません (SQLSTATE 42815)。 NO MINVALUE 昇順シーケンスの場合、値は START WITH 値、また START WITH が指定 されていなければ 1 です。 降順シーケンスの場合、シーケンスに関連 するデータ・タイプの最小値です。 これがデフォルトです。 MAXVALUE または NO MAXVALUE 昇順シーケンスが値の生成を循環または停止する最大値、あるいは最小値に達 した後、 降順シーケンスが循環する最大値を指定します。 MAXVALUE numeric-constant 最大値である数値定数を指定します。 この値は、小数点の右側に非ゼロ の数字がない (SQLSTATE 428FA) かぎり、シーケンスに関連する デー タ・タイプの列に割り当てることができる正または負の値にすることが できます (SQLSTATE 428FA) が、 最小値以上でなければなりません (SQLSTATE 42815)。 NO MAXVALUE 昇順シーケンスの場合、値はシーケンスに関連するデータ・タイプの最 大値です。 降順シーケンスの場合、START WITH 値、また START WITH が指定されていなければ -1 です。 これがデフォルトです。 CYCLE または NO CYCLE その最大値または最小値に達した後、シーケンスが値の生成を続行するかどう かを指定します。 次の値が境界条件を正確に満たしたとき、また循環が許可 されていれば、 次の値が START WITH 値に丸められることによって決定され る場合にその値を超えることによって、 シーケンスの境界に達します。 CYCLE 最大値または最小値に達した後、このシーケンスについて値の生成が続 行されるかどうかを指定します。 このオプションが使用されると、昇順 シーケンスが最大値に達した後、その最小値が生成されます。 降順シー ケンスが最小値に達した後、その最大値が生成されます。 シーケンスの 最大値および最小値は、循環に使用される範囲を決定します。 CYCLE が有効であれば、シーケンスについて重複する値が生成される場 合があります。 NO CYCLE シーケンスの最大値または最小値に達した後、そのシーケンスについて 値が生成されないことを 指定します。 これがデフォルトです。 CACHE または NO CACHE 高速アクセスのため、事前割り振り値のいくつかをメモリーに保管するかどう かを指定します。 これはパフォーマンスおよびチューニング・オプションで す。 CACHE integer-constant 事前割り振りされ、メモリーに保管されるシーケンス値の最大数を指定 します。 値を事前割り振りしてキャッシュに保管しておくと、シーケン スのために値を生成するとき、 ログへの非同期入出力が少なくなりま す。 システム障害が起こると、コミットされたステートメントで使用されて いない キャッシュ済みシーケンス値はすべて失われます (使用されなく なります)。 CACHE オプションに指定する値は、システム障害の際に失 われても構わないシーケンス値の 最大数です。 最小値は 2 です (SQLSTATE 42815)。 デフォルト値は CACHE 20 です。 NO CACHE シーケンスの値が事前割り振りされないよう指定します。 システム障 害、シャットダウン、またはデータベース非活動化の際、 値が失われる ことはありません。 このオプションが指定されると、シーケンスの値は キャッシュに保管されません。 この場合、シーケンスの新しい値が要求 されるたびに、ログに対して非同期入出力が行われます。 NO ORDER または ORDER 要求の順序でシーケンス番号が生成されるかどうかを指定します。 ORDER 要求の順序でシーケンス番号が生成されるよう指定します。 NO ORDER 要求の順序でシーケンス番号を生成する必要がないことを指定します。 これがデフォルトです。 シーケンスを再始動、または CYCLE に変更した後、前にシーケンスによって生成さ れた 値と重複するシーケンス番号が可能になります。 版 * 今後のシーケンス番号だけが ALTER SEQUENCE ステートメントによって影響を 受けます。 * シーケンスのデータ・タイプは変更できません。 代わりに、新しいシーケン スに目的のデータ・タイプを指定して、 シーケンスをドロップおよび再作成 してください。 * シーケンスが変更されると、キャッシュされている値はすべて失われます。 例 例 1 : 数値なしで RESTART を指定する理由として考えられるのは、 シーケンスを START WITH 値にリセットすることです。 この例では、1 から表の行数までの数値 を生成し、一時表を使用して表に追加した列に その数値を挿入することが目的で す。 もう一度使用すると、すべての結果行に番号が付けられているという結果が返 されます。 ALTER SEQUENCE org_seq RESTART SELECT NEXTVAL for org_seq, org.* FROM org 38.5.4 ALTER TABLE 構文の一部の変更: column-alteration |--column-name--------------------------------------------------> >-----+-SET--+-DATA TYPE--+-VARCHAR-----------+---(--整数--)--+----------+> | | +-CHARACTER VARYING-+ | | | | '-CHAR VARYING------' | | | '-EXPRESSION AS--(--generation-expression--)-----' | +-ADD SCOPE--+-typed-table-name-+----------------------------------+ | '-typed-view-name--' | '-+-| identity-alteration |--------------------------------------+-' '-SET GENERATED--+-ALWAYS-----+---+--------------------------+-' '-BY DEFAULT-' '-| identity-alteration |--' >---------------------------------------------------------------| identity-alteration |---+-RESTART--+--------------------------+-+-------------------| | '-WITH--numeric-constant---' | +-SET INCREMENT BY--numeric-constant----+ | (1) | +-SET--+-NO MINVALUE-----------------+--+ | '-MINVALUE--numeric-constant--' | +-SET--+-NO MAXVALUE-----------------+--+ | '-MAXVALUE--numeric-constant--' | +-SET--+-CYCLE----+---------------------+ | '-NO CYCLE-' | +-SET--+-NO CACHE-----------------+-----+ | '-CACHE--integer-constant--' | '-SET--+-NO ORDER-+---------------------' '-ORDER----' 注: 1. パラメーター NOMINVALUE、NOMAXVALUE、NOCYCLE、NOCACHE、および NOORDER は、 スペースなしで指定することができます。 これらの単一ワード・バージ ョンはすべて、2 ワード・バージョンに代わって受け入れられます。 以下のパラメーターを追加します。 SET GENERATED 列の値が常に生成されるか、またはデフォルト値が必要なときのみ生成される かを 指定します。 ALWAYS 行が表に挿入、または更新されたとき、列の値が常に生成されます。 列 は、生成された列として定義されていなければなりません (SQLSTATE 42837)。 BY DEFAULT 行が表に挿入されたとき、その値が指定されていないかぎり、列の値が 生成されます。 列は、生成された列として定義されていなければなりま せん (SQLSTATE 42837)。 RESTART または RESTART WITH numeric-constant 識別列に関連付けられたシーケンスの状態をリセットします。 WITH numeric-constant が指定されていないと、識別列のシーケンスは、 作 成されたときに開始値として (暗黙的または明示的のいずれかで) 定義 された 値で再開始されます。 numeric-constant は、小数点の右側にゼ ロ以外の数字が ある (SQLSTATE 42894) かぎり、この列に割り当てられ た正または負の値を とりうる数値定数です (SQLSTATE 42820)。 列はあ らかじめ IDENTITY 属性で定義されていなければなりません (SQLSTATE 42837)。 numeric-constant が列の次の値として使用されます。 SET INCREMENT BY numeric-constant 識別列の連続値の間隔を指定します。 列はあらかじめ IDENTITY 属性で 定義されていなければなりません (SQLSTATE 42837)。 この値は、小数 点の右側に非ゼロの数字がない (SQLSTATE 42894) かぎり、この列に割 り当てることができる 正または負の値で (SQLSTATE 42820)、長精度整 数定数の値を超えることはありません (SQLSTATE 42815)。 この値が負の場合、この識別列の値のシーケンスは下降します。 正であ れば、この識別列の値のシーケンスは上昇します。 値がゼロ、または MINVALUE および MAXVALUE に定義されている範囲よりも大きい場合、 DB2 が生成する値は 1 つだけですが、そうでなければシーケンスは昇順 シーケンスとして扱われます。 SET MINVALUE numeric-constant または NO MINVALUE 降順識別列が値の生成を循環または停止する最小値、あるいは最大値に 達した後、 昇順識別列が循環する最小値を指定します。 列はあらかじ め IDENTITY 属性で定義されていなければ なりません (SQLSTATE 42837)。 MINVALUE numeric-constant 最小の数値定数を指定します。 この値は、小数点の右側に非ゼロ の数字がない (SQLSTATE 42894) かぎり、この列に割り当てること ができる 正または負の値にすることができます (SQLSTATE 42820) が、最大値未満でなければなりません (SQLSTATE 42815)。 NO MINVALUE 昇順シーケンスの場合、値は START WITH 値、また START WITH が 指定されていなければ 1 です。 降順シーケンスの場合、列のデー タ・タイプの最小値です。 SET MAXVALUE numeric-constant または NO MAXVALUE 昇順識別列が値の生成を循環または停止する最大値、あるいは最小値に 達した後、 降順識別列が循環する最大値を指定します。 列はあらかじ め IDENTITY 属性で定義されていなければ なりません (SQLSTATE 42837)。 MAXVALUE numeric-constant 最大値である数値定数を指定します。 この値は、小数点の右側に 非ゼロの数字がない (SQLSTATE 42894) かぎり、この列に割り当て ることができる 正または負の値にすることができます (SQLSTATE 42820) が、最小値よりも大きくなければなければなりません (SQLSTATE 42815)。 NO MAXVALUE 昇順シーケンスの場合、値は列のデータ・タイプの最大値です。 降順シーケンスの場合、START WITH 値、また START WITH が指定 されていなければ -1 です。 SET CYCLE または NO CYCLE 最大値または最小値が生成された後、この識別列が値の生成を続行する かどうかを指定します。 列はあらかじめ IDENTITY 属性で定義されてい なければなりません (SQLSTATE 42837)。 CYCLE 最大値または最小値に達した後、この列について値の生成が続行さ れるかどうかを指定します。 このオプションが使用されると、昇 順識別列が最大値に達した後、その最小値が生成されます。 降順 識別列が最小値に達した後、その最大値が生成されます。 識別列 の最大値および最小値は、循環に使用される範囲を決定します。 CYCLE が有効であれば、識別列について重複する値が生成される場 合があります。 固有値が必要であれば (実際には必要ありませ ん)、識別列を使用して 1 桁の固有索引を 定義することによっ て、固有性が確実になります。 このような識別列に固有索引が存 在し、固有ではない値が生成される場合、 エラーが起こります (SQLSTATE 23505)。 NO CYCLE 最大値または最小値に達した後、識別列について値が生成されない ことを指定します。 SET CACHE integer-constant または NO CACHE 高速アクセスのため、事前割り振り値のいくつかをメモリーに保管する かどうかを指定します。 これはパフォーマンスおよびチューニング・オ プションです。 列はあらかじめ IDENTITY 属性で定義されていなければ なりません (SQLSTATE 42837)。 CACHE integer-constant 事前割り振りされ、メモリーに保管される ID シーケンスの値の数 を指定します。 識別列について値が生成される場合、値を事前割 り振りしてキャッシュに保管しておくと、 ログへの非同期入出力 が少なくなります。 識別列に新しい値が必要でも未使用の値がキャッシュにない場合、 値の割り振りはログへの入出力を待機しなければなりません。 た だし、識別列に新しい値が必要で、未使用の値がキャッシュにあれ ば、 その ID 値の割り振りが、ログへの入出力なしですばやく行 われます。 データベース・マネージャーが停止 (たとえばデータベース非活動 化、 システム障害、またはシャットダウン) すると、コミットさ れたステートメントで 使用されていないキャッシュ済みシーケン ス値はすべて失われます (使用されなくなります)。 CACHE オプシ ョンに指定する値は、システム障害の際に失われても構わない識別 列の値の最大数です。 最小値は 2 です (SQLSTATE 42615)。 NO CACHE 識別列の値が事前割り振りされないよう指定します。 このオプションが指定されると、識別列の値はキャッシュに保管さ れません。 この場合、新しい ID 値が要求されるたびに、ログに 対して非同期入出力が行われます。 SET ORDER または NO ORDER 要求の順序で識別列の値が生成されるかどうかを指定します。 列はあら かじめ IDENTITY 属性で定義されていなければ なりません (SQLSTATE 42837)。 ORDER 要求の順序で識別列の値が生成されるよう指定します。 NO ORDER 要求の順序で識別列の値を生成する必要がないことを指定します。 38.5.5 複合 SQL (組み込み) 準備済み COMMIT ステートメントは、ATOMIC コンパウンド SQL ステートメントで は許可されていません。 38.5.6 複合ステートメント (動的) 複合ステートメント (動的) 複合ステートメントは、別のステートメントを実行可能ブロックにグループ化しま す。 動的準備済みアトミック複合ステートメントの内部で SQL 変数を宣言するこ とができます。 呼び出し このステートメントはトリガー、SQL 関数、または SQL メソッドに組み込むことが でき、 また動的 SQL ステートメントの使用によって出すことができます。 動的に 準備できる実行可能ステートメントです。 権限 動的複合ステートメントを呼び出すために、特権は必要ありません。 ただし、複合 ステートメントの許可 ID に、複合ステートメントに組み込まれている SQL ステー トメントを 呼び出すために必要な特権がなければなりません。 構文 dynamic-compound-statement >>-+--------------+--BEGIN ATOMIC-------------------------------> | (1) | '-label:-------' >-----+-----------------------------------------------+---------> | .-----------------------------------------. | | V | | '-----+-| SQL-variable-declaration |-+---;---+--' '-| condition-declaration |----' .-,-----------------------------. V | >--------SQL-procedure-statement--;---+---END--+--------+------>< '-label--' SQL-variable-declaration .-,--------------------. V | |---DECLARE-------SQL-variable-name---+--data-type--------------> .-DEFAULT NULL-------------. >-----+--------------------------+------------------------------| '-DEFAULT--default-values--' condition-declaration |---DECLARE--condition-name--CONDITION--FOR---------------------> .-VALUE-. .-SQLSTATE--+-------+---. >----+-----------------------+---string-constant----------------| 注: 1. ステートメントが関数、メソッド、またはトリガー定義にある場合のみ、ラベ ルを指定できます。 説明 label コード・ブロックのラベルを定義します。 開始ラベルが指定されている場 合、そのラベルを使用して動的複合ステートメントで 宣言されている SQL 変 数を修飾、またラベルを LEAVE ステートメントに指定することもできます。 終了ラベルを指定する場合、そのラベルは開始ラベルと同じでなければなりま せん。 ATOMIC ATOMIC は、複合ステートメントでエラーが起こった場合、その複合ステート メント 内の SQL ステートメントがすべてロールバックされ、残りの SQL ス テートメントは 処理されないことを指示します。 SQL-procedure-statement 以下の SQL-control-statements は、動的複合ステートメントの 内部で使用 できます。 o FOR ステートメント o GET DIAGNOSTICS ステートメント o IF ステートメント o ITERATE ステートメント o LEAVE ステートメント o SIGNAL ステートメント o WHILE ステートメント 出すことができる SQL ステートメントは以下の通りです。 o fullselect 6 o 探索条件付き UPDATE o 探索条件付き DELETE o INSERT o SET 変数ステートメント SQL-variable-declaration 動的複合ステートメントに対してローカルである変数を宣言します。 SQL-variable-name ローカル変数の名前を定義します。 DB2 は SQL 変数をすべて大文字に 変換します。 以下のような名前にすることはできません。 + 同じ複合ステートメント内の別の SQL 変数と同じ名前 + パラメーター名と同じ名前 + 列名と同じ名前 SQL 変数と同じ名前の ID、および列参照が SQL ステートメントに組み 込まれている場合、 DB2 はその ID を列として解釈します。 data-type 変数のデータ・タイプを指定します。 DEFAULT default-values または NULL SQL 変数のデフォルトを定義します。 動的複合ステートメントが呼び出 されると、この変数は初期化されます。 デフォルト値が指定されていな い場合、変数は NULL に初期化されます。 condition-declaration 条件名および対応する SQLSTATE 値を宣言します。 condition-name 条件の名前を指定します。条件名はプロシージャー本体内で固有でなけ ればならず、 宣言された複合ステートメント内でのみ参照が可能です。 FOR SQLSTATE string-constant 条件に関連する SQLSTATE を指定します。 string-constant は引用符で 囲んだ 5 文字で指定しなければなりませんが、 '00000' にすることは できません。 版 * 動的複合ステートメントは、DB2 によって単一ステートメントとしてコンパイ ルされます。 このステートメントは、小さな制御フロー・ロジックを含む短 いスクリプトに有効ですが、 大きな意味を持つデータ・フローには有効では ありません。 複雑な制御フローがネストされている大きな構成の場合、SQL プロシージャーの使用を お勧めします。 38.5.7 CREATE FUNCTION (ソースまたはテンプレート) 構文図を以下のように変更します。 >>-CREATE FUNCTION--function-name-------------------------------> >----(--+------------------------------------------+---)---*----> | .-,----------------------------------. | | V | | '----+-----------------+---data-type1---+--' '-parameter-name--' >----RETURNS--data-type2---*----+--------------------------+----> '-SPECIFIC--specific-name--' >----*----------------------------------------------------------> >-----+-SOURCE--+-function-name--------------------------------+------------------+> | +-SPECIFIC--specific-name----------------------+ | | '-function-name--(--+-------------------+---)--' | | | .-,-----------. | | | | V | | | | '----data-type---+--' | | .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. | '-AS TEMPLATE--*----+--------------------+--*----+--------------------+--*--' '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' >----*--------------------------------------------------------->< 「説明」セクションに以下の記述を追加します。 DETERMINISTIC または NOT DETERMINISTIC このオプションの文節は、与えられた引き数値について常に関数が同じ結果を 返すかどうか (DETERMINISTIC)、または結果に影響する状態値に関数が依存す るかどうか (NOT DETERMINISTIC) を 指定します。 つまり DETERMINISTIC 関 数は、同一の入力で正しい呼び出しが行われたとき、 常に同じ表を返しま す。 同一の入力が常に同じ結果を作成するという利点を持つ最適化は、 NOT DETERMINISTIC を指定することによって妨げられます。 関数の本体が特殊レジスターにアクセス、または別の非 deterministic 関数 を 呼び出す場合、NOT DETERMINISTIC を明示的または暗黙的に指定する必要 が あります (SQLSTATE 428C2)。 NO EXTERNAL ACTION または EXTERNAL ACTION このオプションの文節は、データベース・マネージャーによって管理されてい ない オブジェクトの状態を変更するアクションを関数が行うかどうかを指定 します。 NO EXTERNAL ACTION の指定によって、関数に外部影響がないことを 想定する、ある特定の 最適化をシステムは使用することができます。 関数の本体が外部アクションを持つ別の関数を呼び出す場合、EXTERNAL ACTION を 明示的または暗黙的に指定する必要があります (SQLSTATE 428C2)。 38.5.8 CREATE FUNCTION (SQL スカラー、表または行) 構文図を以下のように変更します。 >>-CREATE FUNCTION--function-name-------------------------------> >----(--+------------------------------------+---)---*----------> | .-,----------------------------. | | V | | '----parameter-name--data-type1---+--' >----RETURNS--+-data-type2--------------------+--*--------------> '--+-ROW---+---| column-list |--' '-TABLE-' .-LANGUAGE SQL--. >-----+--------------------------+--*----+---------------+--*---> '-SPECIFIC--specific-name--' .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. >-----+--------------------+--*----+--------------------+--*----> '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' .-READS SQL DATA--. .-STATIC DISPATCH--. >-----+-----------------+--*----+------------------+--*---------> '-CONTAINS SQL----' (1) .-CALLED ON NULL INPUT-------. >-----+----------------------------+--*-------------------------> >-----+-----------------------------------------------------+---> | (2) | '-PREDICATES--(--| predicate-specification |--)-------' >----| SQL-function-body |------------------------------------->< column-list .-,--------------------------. V | |---(-----column-name--data-type3---+---)-----------------------| SQL-function-body |---+-RETURN ステートメント------+------------------------------| '-dynamic-compound-statement-' 注: 1. CALLED ON NULL INPUT の代わりに NULL CALL を指定することができます。 2. RETURNS がスカラー結果を指定している (data-type2) 場合のみ有効です。 以下のパラメーターを変更します。 LANGUAGE SQL 関数が SQL によって作成されていることを指定します。 このパラメーター・セクションで "RETURN expression、NULL、WITH common-table-expression、 fullselect" パラメーター・セクションが置き換えら れます。 SQL-function-body 関数の本体を指定します。 パラメーター名を SQL-function-body で参照する ことができます。 あいまい参照を避けるため、パラメーター名は関数名で修 飾できます。 SQL-function-body が動的複合ステートメントであれば、 ここには少なくと も 1 つの RETURN ステートメントが組み込まれていなければならず、 また関 数が呼び出されるときに RETURN ステートメントが実行されなければなりませ ん (SQLSTATE 42632)。 関数が表または行関数であれば、動的複合ステートメ ントの最後の関数でなければ ならない RETURN ステートメントを 1 つだけ組 み込むことができます (SQLSTATE 429BD)。 詳しくは 複合ステートメント (動的) および RETURN を参照してください。 38.5.9 CREATE METHOD 構文図を以下のように変更します。 CREATE METHOD 構文 >>-CREATE-------------------------------------------------------> >-----+-METHOD--+-method-name----------+---FOR--type-name--+----> | '-| method-signature |-' | '-SPECIFIC METHOD--specific-name---------------------' >-----+-*----EXTERNAL--+-----------------------+--*----+------------------------------+--*--+> | '-NAME--+-'string'---+--' '-TRANSFORM GROUP--group-name--' | | '-identifier-' | '-| SQL-method-body |-----------------------------------------------------------------' >-------------------------------------------------------------->< method-signature |---method-name--(--+---------------------------------------------------------+---)--> | .-,--------------------------------------------------. | | V | | '----+-----------------+---data-type1--+-------------+--+-' '-parameter-name--' '-AS LOCATOR--' >----+------------------------------------------------------------------+-> '-RETURNS--+-data-type2--+-------------+------------------------+--' | '-AS LOCATOR--' | '-data-type3--CAST FROM--data-type4--+-------------+-' '-AS LOCATOR--' >---------------------------------------------------------------| SQL-method-body |---+-RETURN ステートメント------+------------------------------| '-dynamic-compound-statement-' 以下のパラメーターで "RETURN scalar-expression または NULL" セクションが置 き換えられます。 SQL-method-body CREATE TYPE のメソッド仕様が LANGUAGE SQL の場合、SQL-method-body は、 どのようにメソッドがインプリメントされるかを定義します。 SQL-method-body は、以下のメソッド仕様のパーツにしたがっていなければな りません。 o DETERMINISTIC または NOT DETERMINISTIC (SQLSTATE 428C2) o EXTERNAL ACTION または NO EXTERNAL ACTION (SQLSTATE 428C2) o CONTAINS SQL または READS SQL DATA (SQLSTATE 42985) パラメーター名を SQL-method-body で参照することができます。 メソッドの サブジェクトは、暗黙的な最初のパラメーター SELF としてメソッド・インプ リメンテーションに 渡されます。 詳しくは 複合ステートメント (動的) および RETURN を参照してください。 38.5.10 CREATE SEQUENCE CREATE SEQUENCE CREATE SEQUENCE ステートメントは、アプリケーション・サーバーでのシーケンス を作成します。 呼び出し このステートメントはアプリケーション・プログラムに組み込むことができ、また 動的 SQL ステートメントの使用によって出すことができます。 動的に準備できる 実行可能ステートメントです。 ただし、バインド・オプション DYNAMICRULES BIND が適用されている場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。 権限 ステートメントの許可 ID によって保持されている特権には、少なくとも以下のい ずれかが 含まれていなければなりません。 * 明示的または暗黙的に指定されたスキーマの CREATEIN 特権 * SYSADM または DBADM 権限 構文 .-AS INTEGER-----. >>-CREATE SEQUENCE--sequence-name---*----+----------------+--*--> '-AS--data-type--' >-----+-------------------------------+--*----------------------> '-START WITH--numeric-constant--' .-INCREMENT BY 1------------------. >-----+---------------------------------+--*--------------------> '-INCREMENT BY--numeric-constant--' (1) .-NO MINVALUE-----------------. >-----+-----------------------------+--*------------------------> '-MINVALUE--numeric-constant--' .-NO MAXVALUE-----------------. .-NO CYCLE--. >-----+-----------------------------+--*----+-----------+--*----> '-MAXVALUE--numeric-constant--' '-CYCLE-----' .-CACHE 20-----------------. .-NO ORDER--. >-----+--------------------------+--*----+-----------+--*------>< +-CACHE--integer-constant--+ '-ORDER-----' '-NO CACHE-----------------' 注: 1. パラメーター NOMINVALUE、NOMAXVALUE、NOCYCLE、NOCACHE、および NOORDER は、 スペースなしで指定することができます。 これらの単一ワード・バージ ョンはすべて、2 ワード・バージョンに代わって受け入れられます。 説明 sequence-name シーケンスを指定します。 名前の組み合わせ、また暗黙および明示スキーマ 名は、 現在のサーバーに存在するシーケンスを識別することはできません (SQLSTATE 42710)。 sequence-name の非限定フォームは SQL ID です。 限定フォームは、ピリオ ドと SQL ID が後ろに続く修飾子です。 修飾子はスキーマ名です。 シーケンス名がスキーマ名で明示的に限定されている場合、 そのスキーマ名 の先頭を 'SYS' にすると、エラーが起こります (SQLSTATE 42939)。 AS data-type シーケンス値に使用されるデータ・タイプを指定します。 データ・タイプ は、ゼロの位取りの整数値タイプ (SMALLINT、INTEGER、BIGINT、または DECIMAL) か、 ソース・タイプがゼロの位取りの整数値タイプであるユーザー 定義の特殊タイプにすることができます。 デフォルトは INTEGER です。 START WITH numeric-constant シーケンスの最初の値を指定します。 この値は、小数点の右側に非ゼロの数 字がない (SQLSTATE 428FA) かぎり、シーケンスに関連する データ・タイプ の列に割り当てることができる正または負の値にすることができます (SQLSTATE 42820)。 デフォルトは、昇順シーケンスであれば MINVALUE、降順 シーケンスであれば MAXVALUE です。 シーケンスの最大または最小値に達した後、そのシーケンスが循環する 値で ある必要はありません。 START WITH 文節を使用して、循環に使用される範囲 外のシーケンスを開始することができます。 循環に使用される範囲は、 MINVALUE および MAXVALUE によって定義されています。 INCREMENT BY numeric-constant シーケンスの連続値の間隔を指定します。 この値は、小数点の右側に非ゼロ の数字がない (SQLSTATE 428FA) かぎり、シーケンスに関連する データ・タ イプの列に割り当てることができる正または負の値にすることができ (SQLSTATE 42820)、 長精度整数定数の値を超えることはありません (SQLSTATE 42815)。 この値が負の場合、値のシーケンスは下降します。 正であれば、値のシーケ ンスは上昇します。 値がゼロ、または MINVALUE および MAXVALUE に定義さ れている範囲よりも大きい場合、 生成される値は 1 つだけですが、そうでな ければシーケンスは昇順シーケンスとして 扱われます。 デフォルトは 1 で す。 MINVALUE または NO MINVALUE 降順シーケンスが値の生成を循環または停止する最小値、あるいは最大値に達 した後、 昇順シーケンスが循環する最小値を指定します。 MINVALUE numeric-constant 最小値である数値定数を指定します。 この値は、小数点の右側に非ゼロ の数字がない (SQLSTATE 428FA) かぎり、シーケンスに関連する デー タ・タイプの列に割り当てることができる正または負の値にすることが できます (SQLSTATE 42820) が、 最大値以下でなければなりません (SQLSTATE 42815)。 NO MINVALUE 昇順シーケンスの場合、値は START WITH 値、また START WITH が指定 されていなければ 1 です。 降順シーケンスの場合、シーケンスに関連 するデータ・タイプの最小値です。 これがデフォルトです。 MAXVALUE または NO MAXVALUE 昇順シーケンスが値の生成を循環または停止する最大値、あるいは最小値に達 した後、 降順シーケンスが循環する最大値を指定します。 MAXVALUE numeric-constant 最大値である数値定数を指定します。 この値は、小数点の右側に非ゼロ の数字がない (SQLSTATE 428FA) かぎり、シーケンスに関連する デー タ・タイプの列に割り当てることができる正または負の値にすることが できます (SQLSTATE 428FA) が、 最小値以上でなければなりません (SQLSTATE 42815)。 NO MAXVALUE 昇順シーケンスの場合、値はシーケンスに関連するデータ・タイプの最 大値です。 降順シーケンスの場合、START WITH 値、また START WITH が指定されていなければ -1 です。 これがデフォルトです。 CYCLE または NO CYCLE その最大値または最小値に達した後、シーケンスが値の生成を続行するかどう かを指定します。 次の値が境界条件を正確に満たしたとき、またはその値を 超えることによって、 シーケンスの境界に達します。 CYCLE 最大値または最小値に達した後、このシーケンスについて値の生成が続 行されるかどうかを指定します。 このオプションが使用されると、昇順 シーケンスが最大値に達した後、その最小値が生成されます。 降順シー ケンスが最小値に達した後、その最大値が生成されます。 シーケンスの 最大値および最小値は、循環に使用される範囲を決定します。 CYCLE が有効であれば、シーケンスについて重複する値が生成される場 合があります。 NO CYCLE シーケンスの最大値または最小値に達した後、そのシーケンスについて 値が生成されないことを 指定します。 これがデフォルトです。 CACHE または NO CACHE 高速アクセスのため、事前割り振り値のいくつかをメモリーに保管するかどう かを指定します。 これはパフォーマンスおよびチューニング・オプションで す。 CACHE integer-constant 事前割り振りされ、メモリーに保管されるシーケンス値の最大数を指定 します。 値を事前割り振りしてキャッシュに保管しておくと、シーケン スのために値を生成するとき、 ログへの非同期入出力が少なくなりま す。 システム障害が起こると、コミットされたステートメントで使用されて いない キャッシュ済みシーケンス値はすべて失われます (使用されなく なります)。 CACHE オプションに指定する値は、システム障害の際に失 われても構わないシーケンス値の 最大数です。 最小値は 2 です (SQLSTATE 42815)。 デフォルト値は CACHE 20 です。 NO CACHE シーケンスの値が事前割り振りされないよう指定します。 システム障 害、シャットダウン、またはデータベース非活動化の際、 値が失われる ことはありません。 このオプションが指定されると、シーケンスの値は キャッシュに保管されません。 この場合、シーケンスの新しい値が要求 されるたびに、ログに対して非同期入出力が行われます。 NO ORDER または ORDER 要求の順序でシーケンス番号が生成されるかどうかを指定します。 ORDER 要求の順序でシーケンス番号が生成されるよう指定します。 NO ORDER 要求の順序でシーケンス番号を生成する必要がないことを指定します。 これがデフォルトです。 版 * 定数シーケンス (常に定数値を返す) を定義することが可能です。 これは、 MINVALUE または MAXVALUE に同じ値を指定、あるいはゼロの INCREMENT 値を 指定することによって実行できます。 いずれの場合も、NEXTVAL が同じ値を 複数生成できるようにするには、 CYCLE を指定しなければなりません。 定数 シーケンスは、数値グローバル変数として使用することができます。 ALTER SEQUENCE を使用すると、定数シーケンスのために生成される値を 調整するこ とができます。 * ALTER SEQUENCE ステートメントで、シーケンスを手動で循環させることがで きます。 NO CYCLE が暗黙的または明示的に指定されている場合、ALTER SEQUENCE ステートメントで シーケンスを再始動または拡張し、そのシーケン スの最大または最小値に達した後でも 値の生成を続行できます。 * シーケンス番号のキャッシュは、シーケンス番号の範囲を高速アクセスのため に メモリーに保管することを意味しています。 アプリケーションが、次のシ ーケンス番号をキャッシュから割り振ることができるシーケンスに アクセス していると、シーケンス番号の割り振りはすばやく行われます。 ただし、次 のシーケンス番号をキャッシュから割り振ることができないシーケンスにアク セスしている場合、 シーケンス番号の割り振りは、永続記憶域への入出力操 作を待機しなければならない場合があります。 CACHE の値を選択するとき、 パフォーマンスとアプリケーション要件の関係を 考慮しておく必要がありま す。 * 所有者は、新しいシーケンスに対して ALTER および USAGE 特権を持っていま す。 USAGE 特権だけが所有者によって、また PUBLIC にのみ付与できます。 * 次の構文もサポートされています: NOMINVALUE、NOMAXVALUE、NOCYCLE、 NOCACHE、および NOORDER。 例 例 1 : シーケンス org_seq を作成 CREATE SEQUENCE org_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO CYCLE CACHE 24 38.5.11 CREATE TRIGGER CREATE TRIGGER 構文 >>-CREATE TRIGGER--trigger-name----+-NO CASCADE BEFORE-+--------> '-AFTER-------------' >-----+-INSERT-----------------------------+--ON--table-name----> +-DELETE-----------------------------+ '-UPDATE--+------------------------+-' | .-,--------------. | | V | | '-OF----column-name---+--' >-----+----------------------------------------------------------------------+> | .----------------------------------------------------. | | V (1) (2) .-AS-. | | '-REFERENCING-------------------+-OLD--+----+--correlation-name--+--+--' | .-AS-. | +-NEW-+----+--correlation-name---+ | .-AS-. | +-OLD_TABLE-+----+--identifier---+ | .-AS-. | '-NEW_TABLE-+----+--identifier---' >-----+-FOR EACH ROW---------------+--MODE DB2SQL---------------> | (3) | '--------FOR EACH STATEMENT--' >-----| triggered-action |------------------------------------->< triggered-action |--+-------------------------------+--SQL-procedure-statement---| '-WHEN--(--search-condition--)--' 注: 1. OLD および NEW は、それぞれ一度だけ指定できます。 2. OLD_TABLE および NEW_TABLE はそれぞれ一度だけ、AFTER トリガーにのみ指 定できます。 3. FOR EACH STATEMENT を BEFORE トリガーに指定することはできません。 以下の文章で "triggered-action" の説明を置き換えます。 triggered-action トリガーを活動化するときに実行されるアクションを指定します。 triggered-action は SQL-procedure-statement、および SQL-procedure-statement 実行の オプション条件から構成されています。 WHEN (search-condition) 真、偽、または不明である条件を指定します。 search-condition によって、 あるトリガー処置を実行すべきかどうかを 決定する機能が与えられます。 関連するアクションは、指定された検索条件が真である場合のみ実行されま す。 WHEN 文節が省略されると、関連する SQL-procedure statement が常に 実行されます。 SQL-procedure-statement SQL-procedure-statement に動的複合ステートメント、 または 複合ステート メント (動的) にリストされている SQL ステートメントのいずれかを 組み込 むことができます。 トリガーが BEFORE トリガーであれば、 SQL-procedure-statement に fullselect または SET 変数ステートメントを組み込むこともできます (SQLSTATE 42987)。 トリガーが AFTER トリガーであれば、SQL-procedure-statement に以下の い ずれかを組み込むこともできます (SQLSTATE 42987)。 o INSERT SQL ステートメント o 探索条件付き UPDATE SQL ステートメント o 探索条件付き DELETE SQL ステートメント o SET 変数ステートメント o fullselect 7 SQL-procedure-statement は、未定義の変換変数 (SQLSTATE 42703) または 宣言された一時表 (SQLSTATE 42995) を参照できません。 BEFORE トリガーの SQL-procedure-statement は、REFRESH IMMEDIATE で 定 義された一時表を参照できません (SQLSTATE 42997)。 BEFORE トリガーの SQL-procedure-statement は、新しい変換変数で識別列以 外の 生成済み列を参照できません (SQLSTATE 42989)。 「注」セクションを以下のように変更します。 * SQL-procedure-statement に指定されている fullselect の結果は、トリガー の 内部または外部では使用不能です。 * 操作不能トリガー : 操作不能トリガー とは、使用不能であるために活動化 されないトリガーです。 以下の場合、トリガーは操作不能になります。 o トリガーを実行するため、そのトリガーの作成者が持っていなければな らない特権が取り消された。 o トリガー処置が従属している、表、視点、または別名といったオブジェ クトがドロップされた。 o トリガー処置が従属している視点が操作不能になった。 o トリガーのサブジェクト表である別名がドロップされた。 実際、操作不能トリガーは、DROP または REVOKE ステートメントのカスケー ド規則の 結果、トリガー定義がドロップされたトリガーです。 たとえば、視 点がドロップされると、その視点を使用して SQL-procedure-statement が 定 義されているトリガーが操作不能になります。 トリガーが操作不能になると、そのトリガーを活動化していた操作を実行する ステートメントを持つパッケージはすべて無効とマークされます。 パッケー ジが (明示的または暗黙的に) 再バインドされると、操作不能トリガーは 完 全に無視されます。 同様に、トリガーを活動化していた操作を実行する動的 SQL ステートメントを持つ アプリケーションも、操作不能トリガーを完全に 無視します。 それでも、トリガー名を DROP TRIGGER および COMMENT ON TRIGGER ステート メントに 指定することができます。 操作不能トリガーは、その定義テキストを使用して CREATE TRIGGER ステート メントを 出すことによって再作成できます。 このトリガー定義テキストは、 SYSCAT.TRIGGERS の TEXT 列に保管されています。 操作不能トリガーを再作 成するため、そのトリガーを明示的にドロップする必要はありません。 操作 不能トリガーとして同じ trigger-name で CREATE TRIGGER ステートメントを 出すと、警告とともに、その操作不能トリガーは置換されます (SQLSTATE 01595)。 SYSCAT.TRIGGERS カタログ視点で、操作不能トリガーは VALID 列の X で示さ れています。 * トリガー実行エラー : トリガー SQL ステートメントの実行中に起こるエラ ーは、重大エラーだと 考えられないかぎり、SQLSTATE 09000 を使用して返さ れます。 重大エラーであれば、重大エラー SQLSTATE が返されます。 重大エ ラーでない場合、SQLCA の SQLERRMC フィールドには、トリガー名、 SQLCODE、SQLSTATE、および障害のあるトークンから入るだけの数のトークン が 組み込まれます。 SQL-procedure-statement には SIGNAL SQLSTATE ステートメント または RAISE_ERROR 関数が組み込まれていることがあります。 どちらの場合も、返 される SQLSTATE は、SIGNAL SQLSTATE ステートメント または RAISE_ERROR 条件に指定されているものです。 38.5.12 CREATE WRAPPER Linux は、LIBDRDA.SO および LIBSQLNET.SO という ライブラリーを使用します。 LIBDRDA.A および LIBSQLNET.A は使用しません。 38.5.13 DECLARE CURSOR 「注」セクションの終わり近くの "DECLARE CURSOR" ステートメント内の 次の文を 変更します。 変更前の文: BLOCKING バインド・オプションが ALL の場合、未確定カーソルは読み取り専用と 見なされます。それ以外の場合、未確定カーソルは削除可能と見なされます。 変更後の文: BLOCKING バインド・オプションが ALL の場合、未確定カーソルは読み取り専用と 見なされます。それ以外の場合、未確定カーソルは更新可能と見なされます。 「"削除可能"」という語が「"更新可能"」という語に変更されています。 38.5.14 DELETE 探索条件付き DELETE 構文図を以下のように変更します。 >>-DELETE FROM----+-table-name-------------------+--------------> +-view-name--------------------+ '-ONLY--(--+-table-name-+---)--' '-view-name--' >-----+---------------------------+-----------------------------> | .-AS-. | '-+----+--correlation-name--' >-----+--------------------------+---+---------------+--------->< '-WHERE--search-condition--' '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' 位置指定 DELETE: >>-DELETE FROM----+-table-name-------------------+--------------> +-view-name--------------------+ '-ONLY--(--+-table-name-+---)--' '-view-name--' >----WHERE CURRENT OF--cursor-name----------------------------->< 説明セクションに以下の記述を追加します。 WITH 削除する行を検索しているときに使用される分離レベルを指定します。 RR 反復可能読み取り RS 読み取り固定 CS カーソル固定 UR アンコミット読み取り ステートメントのデフォルト分離レベルは、ステートメントがバインドされて いる パッケージの分離レベルです。 38.5.15 DROP 以下のオプションを追加します。 >>-SEQUENCE--sequence-name--RESTRICT--------------------------->< 以下のパラメーターを追加します。 SEQUENCE sequence-name RESTRICT ドロップする特定のシーケンスを識別します。 暗黙的または明示的スキーマ 名を含む sequence-name は、 現在のサーバーに存在するシーケンスを固有に 識別していなければなりません。 この名前によるシーケンスが、明示的また は暗黙的に指定されたスキーマに存在しない場合、 エラー (SQLSTATE 42704) が起こります。 RESTRICT キーワードは、表列の定義がシーケンスを (IDENTITY 列を経由し て) 参照している場合、 そのシーケンスはドロップされないという規則を強 制します。 注: o IDENTITY 列のシーケンスを作成したシステムを、DROP シーケンス・コ マンドで ドロップすることはできません。 o シーケンスがドロップされると、シーケンス上の特権もすべてドロップ されます。 オブジェクトが相互に持っている従属関係を示す表を、次のように更新しなければ なりません。 新しい行: DROP SEQUENCE 新しい行 "DROP SEQUENCE" と列 "PACKAGE" の交点にあ る 項目は "A" になります。 この新しい行の残りの項目は "-" になります。 38.5.16 GRANT (シーケンス特権) GRANT (シーケンス特権) この GRANT ステートメントのフォームは、ユーザー定義シーケンスでの特権を付与 します。 呼び出し このステートメントはアプリケーション・プログラムに組み込むことができ、また 動的 SQL ステートメントの使用によって出すことができます。 動的に準備できる 実行可能ステートメントです。 ただし、バインド・オプション DYNAMICRULES BIND が適用されている場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。 権限 ステートメントの許可 ID によって保持されている特権には、 少なくとも以下のい ずれかが含まれていなければなりません。 * シーケンスの所有者 * SYSADM または DBADM 権限 構文 >>-GRANT--USAGE--ON SEQUENCE--sequence-name--TO PUBLIC--------->< 説明 USAGE シーケンスの USAGE 特権を付与します。 ON SEQUENCE sequence-name USAGE 特権が付与されるシーケンスを識別します。 暗黙的または明示的スキ ーマ修飾子を含む sequence-name は、 現在のサーバーに存在するシーケンス を固有に識別していなければなりません。 この名前によるシーケンスが指定 されたスキーマに存在しない場合、エラー (SQLSTATE 42704) が 起こりま す。 TO PUBLIC すべてのユーザーに USAGE 特権を付与します。 例 例 1: シーケンス MYNUM での特権をユーザーに付与 GRANT USAGE ON SEQUENCE MYNUM TO PUBLIC 38.5.17 INSERT 構文図を以下のように変更します。 >>-INSERT INTO----+-table-name-+--------------------------------> '-view-name--' >-----+----------------------------+----------------------------> | .-,--------------. | | V | | '-(-----column-name---+---)--' .-,---------------------------------. V | >-----+-VALUES------+-+-式------+----------------+--+-----------+> | | +-NULL----+ | | | | '-DEFAULT-' | | | | .-,--------------. | | | | V | | | | '-(------+-式------+--+---)--' | | +-NULL----+ | | '-DEFAULT-' | '-+---------------------------------------+---fullselect--' | .-,--------------------------. | | V | | '-WITH-----common-table-expression---+--' >-----+---------------+---------------------------------------->< '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' 説明セクションに以下の記述を追加します。 WITH fullselect が実行される分離レベルを指定します。 RR 反復可能読み取り RS 読み取り固定 CS カーソル固定 UR アンコミット読み取り ステートメントのデフォルト分離レベルは、ステートメントがバインドされて いる パッケージの分離レベルです。 38.5.18 SELECT INTO 構文図を以下のように変更します。 .-,----------------. V | >>-select-clause--INTO-------host-variable---+--from-clause-----> >----+--------------+--+-----------------+--+---------------+---> '-where-clause-' '-group-by-clause-' '-having-clause-' >-----+---------------+---------------------------------------->< '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' 説明セクションに以下の記述を追加します。 WITH SELECT INTO ステートメントが実行される分離レベルを指定します。 RR 反復可能読み取り RS 読み取り固定 CS カーソル固定 UR アンコミット読み取り ステートメントのデフォルト分離レベルは、ステートメントがバインドされて いる パッケージの分離レベルです。 38.5.19 SET ENCRYPTION PASSWORD SET ENCRYPTION PASSWORD SET ENCRYPTION PASSWORD ステートメントは、暗号化および暗号化解除関数によっ て 使用されるパスワードを設定します。 このパスワードは DB2 認証には関連付け られず、データ暗号化にのみ使用されます。 このステートメントは、トランザクション制御のもとにはありません。 呼び出し このステートメントはアプリケーション・プログラムに組み込むことができ、また 対話式に出すことができます。 動的に準備できる実行可能ステートメントです。 権限 このステートメントを実行するために、許可は必要ありません。 構文 .-=-. >>-SET--ENCRYPTION PASSWORD--+---+--+-host-variable---+-------->< '-string-constant-' 説明 ENCRYPTION PASSWORD は、パスワード・ベースの暗号化のための ENCRYPT、 DECRYPT_BIN、 および DECRYPT_CHAR 組み込み関数で使用できます。 長さは 6 と 127 の間でなければなりません。 大文字変換は行われないため、文字はすべて大文 字小文字を区別して指定しなければ なりません。 host-variable タイプ CHAR または VARCHAR の変数です。 host-variable の長さは 6 と 127 の間でなければなりません (SQLSTATE 428FC)。 ヌルに設定することはで きません。 大文字変換は行われないため、文字はすべて大文字小文字を区別 して指定しなければ なりません。 string-constant 文字ストリング定数です。 長さは 6 と 127 の間でなければなりません (SQLSTATE 428FC)。 規則 * 初期 ENCRYPTION PASSWORD 値は空ストリング ('') です。 * host-variable または string-constant は、標準 DB2 メカニズムでデータベ ース・サーバーに 送信されます。 版 * このステートメントについて詳しくは、38.3.2.3, ENCRYPT および 38.3.2.2, DECRYPT_BIN および DECRYPT_CHAR も 参照してください。 例 例 1: 次のステートメントは ENCRYPTION PASSWORD を設定します。 SET ENCRYPTION PASSWORD = 'bubbalu' 38.5.20 SET transition-variable このセクションを以下のように変更します。 SET 変数 SET 変数ステートメントは、ローカル変数または新しい変換変数に値を割り当てま す。 これは、トランザクション制御のもとにあります。 呼び出し このステートメントは、動的複合ステートメント、トリガー、SQL 関数または SQL メソッドの いずれかで SQL ステートメントとしてのみ使用できます。 権限 変換変数を参照するには、トリガー作成者の許可 ID によって保持されている特権 には、 少なくとも以下のいずれかが含まれていなければなりません。 * 割り当ての左側で参照されている列には UPDATE、右側で参照されている列に は SELECT * 表 (トリガーのサブジェクト表) での CONTROL 特権 * SYSADM または DBADM 権限 割り当ての右側として row-fullselect を持っている このステートメント実行する には、トリガー定義者または動的複合ステートメント所有者の いずれかの許可 ID によって保持されている特権には、参照されている表または視点 それぞれについ て、少なくとも以下のいずれかも含まれていなければなりません。 * SELECT 特権 * CONTROL 特権 * SYSADM または DBADM 構文 >>-SET----------------------------------------------------------> .-,----------------------------------------------------------------------------. V | >--------+-| target-variable |--=--+-式------+------------------------------------+--+> | +-NULL----+ | | '-DEFAULT-' | | .-,----------------------. .-,------------. | | V | V (1) | | '-(-----| target-variable |---+---)--=--(--+----+-式------+--+----+---)--' | +-NULL----+ | | '-DEFAULT-' | | (2) | '-row-fullselect-------' >-------------------------------------------------------------->< target-variable |---+-SQL-variable-name--------+---+--------------------------+-| '-transition-variable-name-' | .--------------------. | | V | | '----..attribute-name---+--' 注: 1. 式の数、NULL および DEFAULT は target-variable の 数に一致していなけれ ばなりません。 2. 選択リストの列の数は、target-variable の数に一致していなければなりませ ん。 説明 target-variable 割り当てのターゲット変数を識別します。 同じ変数を表す target-variable を複数指定することはできません (SQLSTATE 42701)。 SQL-variable-name 割り当てターゲットである SQL 変数を識別します。 SQL 変数は、使用 する前に宣言しておかなければなりません。 SQL 変数を動的複合ステー トメントに定義することができます。 transition-variable-name 変換行で更新する列を識別します。 transition-variable-name は、新 しい値を識別する相関名によってオプションで修飾されている、 トリガ ーのサブジェクト表にある列を識別していなければなりません (SQLSTATE 42703)。 ..attribute name 設定されている構造化タイプの属性 (属性割り当て ) を指定します。 指定する SQL-variable-nameor transition-variable-name は、 ユーザ ー定義の構造化タイプで定義されていなければなりません (SQLSTATE 428DP)。 attribute-name は、構造化タイプの属性でなければなりませ ん。 ..attribute name 文節を必要としない割り当ては、 従来型割り当 てと呼ばれます。 expression target-variable の新しい値を指示します。 expression は、SQL 解説書の第 2 章で説明されている、どのタイプの式でも構いません。 スカラー fullselect で使用される場合を除き、列関数を組み込むことはできません (SQLSTATE 42903)。 CREATE TRIGGER ステートメントのコンテキストにおい て、 expression は OLD および NEW 変換変数への参照を含むことができ、 変換変数を指定するためには correlation-name で修飾されていなければ な りません (SQLSTATE 42702)。 NULL NULL 値を指定します。NULL 可能列にのみ指定することができます (SQLSTATE 23502)。 属性のデータ・タイプに特定して cast されていないかぎり、NULL を属性割り当ての 値にすることはできません (SQLSTATE 429B9)。 DEFAULT デフォルト値が使用されることを指定します。 target-variable が列であれば、挿入される値は、どのように列が 表に定義 されているかによって異なります。 o 列が WITH DEFAULT 文節で定義されている場合、値は、その列に定義さ れたデフォルトに 設定されます。 o 列が IDENTITY 文節で定義されている場合、値はデータベース・マネー ジャーによって生成されます。 o 列が WITH DEFAULT 文節、IDENTITY 文節、または NOT NULL 文節の指定 なしで定義されている場合、 値は NULL になります。 o 列が NOT NULL 文節で定義されていて IDENTITY 文節が使用されていな いか、 あるいは WITH DEFAULT 文節が使用されていないか、DEFAULT NULL が使用されている場合、 DEFAULT キーワードをその列に指定する ことはできません (SQLSTATE 23502)。 target-variable が SQL 変数であれば、挿入される値は、 変数宣言に指定ま たは暗黙指定されているデフォルトになります。 row-fullselect 割り当てに指定されている target-variables の数に対応する列数とともに、 単一行を返す fullselect です。 値は、対応する target-variable それぞれ に割り当てられます。 row-fullselect の結果が行なしであれば、NULL 値が 割り当てられます。 CREATE TRIGGER ステートメントのコンテキストにおい て、 row-fullselect は、使用する変換変数を指定する ために correlation-name で修飾されていなければならない、 OLD および NEW 変換 変数への参照を含むことができます (SQLSTATE 42702)。 結果に行が複数ある 場合、エラーが返されます (SQLSTATE 21000)。 規則 * 式から割り当てる値の数 NULL および DEFAULT、または row-fullselect は、 割り当てに指定されている target-variable の数に一致していなければなり ません (SQLSTATE 42802)。 * SET 変数ステートメントは、1 つのステートメントに SQL 変数と変換変数を 割り当てることができません (SQLSTATE 42997)。 * SQL 解説書の第 2 章で説明されている割り当て規則に基づいて、値は target-variable に 割り当てられてます。 ステートメントが BEFORE UPDATE トリガーで使用され、 レジストリー変数が DB2_UPDATE_PART_KEY=OFF であれば、target-variable として 指定されてい る transition-variable を区分化キー列にすることは できません (SQLSTATE 42997)。 版 * 複数の割り当てが組み込まれている場合、すべての expression および row-fullselect は、割り当てが実行される前に 評価されます。 そのため、 expression または row fullselect での target-variables への参照は常 に、 単一 SET ステートメントでの割り当ての前に、target-variable の値と なります。 * 特殊タイプとして定義されている識別列が更新されると、計算全体がソース・ タイプで 行われ、その列に値が実際に割り当てられる前に、結果は特殊タイ プに cast されます。 8 * 識別列について、DB2 に SET ステートメントの値を生成させるには、次のよ うに DEFAULT キーワードを 使用してください。 SET NEW.EMPNO = DEFAULT この例では、NEW.EMPNO が識別列として定義され、この列を更新するために使 用される 値が DB2 によって生成されます。 このステートメントの例に変更はありません。 38.5.21 UPDATE 探索条件付き UPDATE 構文図を以下のように変更します。 >>-UPDATE----+-table-name-------------------+-------------------> +-view-name--------------------+ '-ONLY--(--+-table-name-+---)--' '-view-name--' >-----+---------------------------+-----------------------------> | .-AS-. | '-+----+--correlation-name--' >-----SET--| assignment-clause |--------------------------------> >-----+--------------------------+---+---------------+--------->< '-WHERE--search-condition--' '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' 説明セクションに以下の記述を追加します。 WITH UPDATE ステートメントが実行される分離レベルを指定します。 RR 反復可能読み取り RS 読み取り固定 CS カーソル固定 UR アンコミット読み取り ステートメントのデフォルト分離レベルは、ステートメントがバインドされて いる パッケージの分離レベルです。 ------------------------------------------------------------------------ 38.6 「第 7 章 SQL プロシージャー」から「第 7 章 SQL 制御ステートメント」へ の変更 制御ステートメントとは、構造化プログラミング言語でプログラムを作成する 方法 と同様に SQL を使用できるようにする SQL ステートメントです。 ルーチンの本 体、トリガー、または動的複合ステートメントで SQL 制御ステートメントを 使用 できます。 この章には、SQL procedure-statement とともに、サポートされている SQL 制御ス テートメントの 構文および説明があります。 38.6.1 SQL プロシージャー・ステートメント SQL プロシージャー・ステートメントの情報を以下のように変更します。 SQL プロシージャー・ステートメント この章には、SQL ルーチン、トリガー、または動的複合ステートメントのプロシー ジャー本体を 構成するステートメントの構文図、意味の説明、規則、および使用例 があります。 構文 >>-+---------+---+-| SQL-control-statement |-+----------------->< '-label:--' '-| SQL-statement |---------' SQL-control-statement (1) |---+-ALLOCATE CURSOR statement---------+-----------------------| | (1) | +-assignment statement--------------+ | (1) | +-ASSOCIATE LOCATORS statement------+ | (1) | +-CASE statement--------------------+ | (2) | +-dynamic-compound statement--------+ +-FOR statement---------------------+ +-GET DIAGNOSTICS statement---------+ | (1) | +-GOTO statement--------------------+ +-IF statement----------------------+ +-ITERATE statement-----------------+ +-LEAVE statement-------------------+ | (1) | +-LOOP statement--------------------+ | (1) | +-procedure-compound statement------+ | (1) | +-REPEAT statement------------------+ | (1) | +-RESIGNAL statement----------------+ +-RETURN statement------------------+ +-SIGNAL ステートメント-------------+ '-WHILE statement-------------------' 注: 1. このステートメントは、SQL プロシージャーの有効範囲内でのみサポートされ ます。 2. このステートメントは、トリガー、SQL 関数、または SQL メソッド内でのみ サポートされます。 これは最外部のステートメントでなければなりません。 説明 label: SQL プロシージャー・ステートメントのラベルを指定します。 ラベルは、リ スト内でネストされた複合ステートメントを含め、SQL プロシージャー・ステ ートメントの リスト内で固有でなければなりません。 ネストされた複合ステ ートメントは、同じラベルを使用できることに注意してください。 SQL プロ シージャー・ステートメントのリストは、おそらく SQL 制御ステートメント の中にあります。 トリガー、SQL 関数またはメソッド、動的複合ステートメントのコンテキスト では、 動的複合ステートメント、 FOR ステートメント、および WHILE ステ ートメントだけにラベルを付けることができます。 SQL-statement SQL プロシージャーの本体には、以下を除き、実行可能な SQL ステートメン トのすべてを入れることができます。 o CONNECT o 索引、表、または視点以外のオブジェクトの CREATE o DESCRIBE o DISCONNECT o 索引、表、または視点以外のオブジェクトの DROP o FLUSH EVENT MONITOR o REFRESH TABLE o RELEASE (接続のみ) o RENAME TABLE o RENAME TABLESPACE o REVOKE o SET CONNECTION o SET INTEGRITY 注: CALL ステートメントを SQL プロシージャー本体に組み込むことが でき ますが、そのような CALL ステートメントが呼び出すことができるは、 別の SQL プロシージャーか C プロシージャーだけです。 SQL プロシー ジャー本体の中の CALL ステートメントは、その他のタイプの ストアー ド・プロシージャーを呼び出すことができません。 38.6.2 FOR FOR FOR ステートメントは、表のそれぞれの行に対してステートメントまたはステート メントのグループを実行します。 構文 >>-+---------+---FOR--for-loop-name--AS-------------------------> '-label:--' >-----+-------------------------------+--select-statement---DO--> | (1) | '-cursor-name--CURSOR FOR-------' .-------------------------------. V | >--------SQL-procedure-statement--;---+--END FOR----+--------+->< '-label--' 注: 1. このオプションは、SQL プロシージャーのコンテキスト内でのみ使用できま す。 説明 label FOR ステートメントのラベルを指定します。 開始ラベルが指定された場合、 そのラベルは LEAVE および ITERATE ステートメントで使用できます。 終了 ラベルを指定する場合、そのラベルは開始ラベルと同じでなければなりませ ん。 for-loop-name FOR ステートメントをインプリメントするために生成された暗黙的複合ステー トメントのラベルを指定します。 FOR ステートメント内の ITERATE および LEAVE ステートメントで使用できないことを除いては、 複合ステートメント のラベルの規則に従います。 for-loop-name は、指定された select-statement によって返された列名を修飾するために使用します。 cursor-name SELECT ステートメントからの結果表から行を選択するために使用されるカー ソルを指定します。 指定しない場合は、DB2 が固有なカーソル名を生成しま す。 select-statement カーソルの SELECT ステートメントを指定します。 選択リスト内の列にはす べて名前がなければならず、同じ名前の列が 2 つあってはいけません。 トリガー、関数、メソッド、または動的複合ステートメントでは、 select-statement はオプションで共通表式を持つ fullselect のみから構成 されていなければなりません。 SQL-procedure-statement 表のそれぞれの行について呼び出すステートメント (1 つまたは複数) を指定 します。 規則 * 選択リストは固有な列名から構成されていることが必要で、選択リストで指定 された表は プロシージャーが作成されたときには存在していなければなりま せん。そうでなければ、 これは前の SQL プロシージャー・ステートメントで 作成された表でなければなりません。 * for-statement で指定されたカーソルは、for-statement の外側では参照でき ず、 OPEN、FETCH、または CLOSE ステートメントでは指定できません。 例 下の例では、for-statement は employee 表全体を繰り返すために使用されていま す。 表のそれぞれの行について、SQL 変数 fullname は従業員のラストネーム、 コンマ、ファーストネーム、ブランク、ミドル・イニシアルに設定されます。 fullname のそれぞれの値は、表 tnames に挿入されます。 BEGIN DECLARE fullname CHAR(40); FOR vl AS SELECT firstnme, midinit, lastname FROM employee DO SET fullname = lastname || ',' || firstnme ||' ' || midinit; INSERT INTO tnames VALUE (fullname); END FOR END 38.6.3 「複合ステートメント」から「複合ステートメント (プロシージャー)」へ の変更 複合ステートメントは、別のステートメントを SQL プロシージャーにグループ化し ます。 複合ステートメントの内部で SQL 変数、カーソル、および条件ハンドラー を宣言することができます。 新しい構文図の表題: procedure-compound-statement .-NOT ATOMIC--. >>-+---------+--BEGIN----+-------------+------------------------> '-label:--' '-ATOMIC------' >-----+-----------------------------------------------+---------> | .-----------------------------------------. | | V | | '-----+-| SQL-variable-declaration |-+---;---+--' +-| condition-declaration |----+ '-| return-codes-declaration |-' >-----+--------------------------------------+------------------> | .--------------------------------. | | V | | '----| statement-declaration |--;---+--' >-----+-------------------------------------+-------------------> | .-------------------------------. | | V | | '----DECLARE-CURSOR-statement--;---+--' >-----+------------------------------------+--------------------> | .------------------------------. | | V | | '----| handler-declaration |--;---+--' .-------------------------------. V | >--------SQL-procedure-statement--;---+---END--+--------+------>< '-label--' SQL-variable-declaration .-,--------------------. V | |---DECLARE-------SQL-variable-name---+-------------------------> .-DEFAULT NULL-------. >-----+-data-type----+--------------------+-+-------------------| | '-DEFAULT--constant--' | '-RESULT_SET_LOCATOR--VARYING---------' condition-declaration |---DECLARE--condition-name--CONDITION--FOR---------------------> .-VALUE-. .-SQLSTATE--+-------+---. >----+-----------------------+---string-constant----------------| statement-declaration .-,-----------------. V | |---DECLARE-----statement-name---+---STATEMENT------------------| return-codes-declaration |---DECLARE----+-SQLSTATE--CHAR (5)--+---+--------------------+-| '-SQLCODE--INTEGER----' '-DEFAULT--constant--' handler-declaration |---DECLARE----+-CONTINUE-+---HANDLER--FOR----------------------> +-EXIT-----+ '-UNDO-----' .-,---------------------------------------. V .-VALUE-. | >---------+-SQLSTATE--+-------+--ストリング--+--+---------------> +-condition-name-------------------+ +-SQLEXCEPTION---------------------+ +-SQLWARNING-----------------------+ '-NOT FOUND------------------------' >----SQL-procedure-statement------------------------------------| statement-declaration statement-declaration は、複合ステートメントの 1 つ以上のローカルの名 前を 宣言します。ステートメント名は、同じ複合ステートメント内の別のス テートメント名と 同じにすることはできません。 38.6.4 RETURN RETURN RETURN ステートメントはルーチンから戻るために使用されます。 SQL 関数または メソッドの場合、関数またはメソッドの結果を返します。 SQL プロシージャーの場 合、オプションで整数状況値を返します。 構文 >>-RETURN--+---------------------------------------------------------+-> +-式------------------------------------------------------+ +-NULL----------------------------------------------------+ '-+---------------------------------------+---fullselect--' | .-,--------------------------. | | V | | '-WITH-----common-table-expression---+--' >-------------------------------------------------------------->< 説明 expression ルーチンから返される値を指定します。 o ルーチンが関数またはメソッドの場合は、expression、NULL または fullselect の指定が 必要 (SQLSTATE 42630) であり、結果のデータ・ タイプはルーチンの RETURNS タイプに割り当て可能で なければなりま せん (SQLSTATE 42866)。 o スカラー式 (スカラー fullselect 以外) は表関数には定義できません (SQLSTATE 428F1)。 o ルーチンがプロシージャーの場合は、expression のデータ・タイプは INTEGER で なければなりません (SQLSTATE 428E2)。 プロシージャーは NULL または fullselect を返すことができません。 NULL 関数またはメソッドが、RETURNS 文節で定義されたデータ・タイプの NULL 値 を返すことを指定します。 NULL はプロシージャーからの RETURN には指定で きません。 WITH common-table-expression 後続の fullselect で使用する共通表式を定義します。 fullselect 関数に対して返される行を指定します。 fullselect 内の列数は、関数 の結果の列数に一致していなければなりません (SQLSTATE 42811)。 さ らに、fullselect の静的列タイプが、列に対する割り当て規則を使用し て関数結果について 宣言された列タイプに割り当てられていなければな りません。 fullselect はプロシージャーからの RETURN には指定できません。 ルーチンがスカラー関数またはメソッドの場合、fullselect は 1 つの 列 (SQLSTATE 42823) と、 1 つの行 (SQLSTATE 21000) を返さなければ なりません。 ルーチンが行関数の場合は、1 つの行 (SQLSTATE 21505) を返さなけれ ばなりません。 ルーチンが表関数の場合は、1 つまたは複数の列を持つゼロ以上の行を 返すことができます。 規則 * SQL 関数またはメソッドの実行は RETURN で終わっていなければなりません (SQLSTATE 42632)。 * dynamic-compound-statement を使用する SQL 表または行関数では、 RETURN ステートメントのみが複合ステートメントの終わりで指定できます (SQLSTATE 429BD)。 版 * プロシージャーから値が返されると、呼び出し元は以下を使用して値にアクセ スすることができます。 o SQL プロシージャーが他の SQL プロシージャーから呼び出されたときに RETURN_STATUS を 検索する GET DIAGNOSTICS ステートメント o CLI アプリケーションでエスケープ文節 CALL 構文 (?=CALL...) にある 戻り値 パラメーター・マーカーに結合されたパラメーター o SQLCODE がゼロより小さくないときに SQLERRD[0] の値を検索すること で、 SQL プロシージャーの CALL の処理から返された SQLCA から直接 (SQLCODE がゼロより小さい場合は値 -1 を想定)。 例 RETURN ステートメントを使用して、成功時には状況値ゼロを、 失敗時には -200 を伴って SQL ストアード・プロシージャーから戻ります。 BEGIN ... GOTO FAIL ... SUCCESS: RETURN 0 FAIL: RETURN -200 END 38.6.5 SIGNAL SIGNAL SQLSTATE ステートメントは現在使用されていません。 SIGNAL SIGNAL ステートメントは、エラーまたは警告条件を通知するために使用されます。 エラーまたは警告を、オプションでメッセージ・テキストを付け、指定された SQLSTATE とともに返します。 構文 .-VALUE-. >>-SIGNAL----+-SQLSTATE--+-------+--sqlstate-string-constant--+-> '-condition-name---------------------------------' >-----+--------------------------------------------------------+->< +-SET--MESSAGE_TEXT-- = --+-variable-name--------------+-+ | '-diagnostic-string-constant-' | | (1) | '-(--diagnostic-string--)--------------------------------' 注: 1. このオプションは、DB2 の旧バージョンとの互換性のために、 CREATE TRIGGER ステートメントの有効範囲内でのみ提供されます。 説明 SQLSTATE VALUE sqlstate-string-constant 指定されたストリング定数が SQLSTATE を表します。 以下の SQLSTATE の規 則に従う、 5 文字の文字ストリング定数でなければなりません。 o 各文字は数字 ('0'〜'9') のセットまたはアクセント記号なしの 大文字 ('A'〜'Z') からのものでなければなりません。 o SQLSTATE クラス (最初の 2 文字) は '00' にはできません。これは正 常な完了を示します。 動的複合ステートメント、トリガー、SQL 関数、または SQL メソッドのコン テキストでは、以下の規則も適用されます。 o SQLSTATE クラス (最初の 2 文字) はエラー・クラスではないため、 '01' または '02', にはできません。 o SQLSTATE クラスが数字 '0'〜'6' または文字 'A'〜'H' で 始まってい る場合、サブクラス (最後の 3 文字) は 'I'〜'Z' の範囲の文字で始ま っていなければなりません。 o SQLSTATE クラスが数字 '7'、'8'、'9'、または 文字 'I'〜'Z' で始ま っている場合、 サブクラスは '0'〜'9' または 'A'〜'Z' のいずれかに なります。 SQLSTATE がこれらの規則にしたがっていない場合、エラーが発生します (SQLSTATE 428B3)。 condition-name 条件の名前を指定します。条件名はプロシージャー内で固有でなければなら ず、 宣言された複合ステートメント内でのみ参照が可能です。 SET MESSAGE_TEXT= エラーまたは警告を記述するストリングを指定します。ストリングは SQLCA の SQLERRMC フィールドで返されます。 実際のストリングが 70 バイトを超 えている場合は、警告なしで切り捨てられます。 この文節は、SQLSTATE また は条件名も指定された場合にのみ指定できます (SQLSTATE 42601)。 variable-name 複合ステートメント内で宣言される必要のある SQL 変数を識別します。 SQL 変数は CHAR または VARCHAR データ・タイプとして定義されていな ければなりません。 diagnostic-string-constant メッセージ・テキストを含む文字ストリング定数を指定します。 diagnostic-string エラー状態を記述する最大 70 バイトの文字ストリングを返す、タイプが CHAR または VARCHAR の式。 ストリングは 70 バイトを超えると切り捨てら れます。 このオプションは、DB2 の旧バージョンとの互換性のために、 CREATE TRIGGER ステートメントの有効範囲内でのみ提供されます。通常は使 用しないでください。 版 * SIGNAL ステートメントが実行された場合、割り当てられる SQLCODE は次の通 りです。 +438 (SQLSTATE が '01' または '02' で始まっている場合) -438 (その他の場合) * SQLSTATE または条件が、例外 (SQLSTATE クラス '01' または '02' 以外) が 通知されたことを示している場合: o ハンドラーがシグナル・ステートメントと同じ複合ステートメント (ま たは外部複合ステートメント) にあり、 指定された SQLSTATE、 condition-name、または SQLEXCEPTION のためのハンドラーが複合ステ ートメントに含まれていれば、 例外は処理され、制御はハンドラーに移 ります。 o 例外が処理できない場合、制御は即時に複合ステートメントの終わりに 返されます。 * SQLSTATE または条件が、警告 (SQLSTATE クラス '01') または検出不能状態 (SQLSTATE クラス '02') が 通知されたことを示している場合: o ハンドラーがシグナル・ステートメントと同じ複合ステートメント (ま たは外部複合ステートメント) にあり、 指定された SQLSTATE、 condition-name、SQLWARNING (SQLSTATE クラスが '01' の場合)、 また は NOT FOUND (SQLSTATE クラスが '02' の場合) のためのハンドラーが 複合ステートメントに含まれていれば、 警告または検出不能状態は処理 され、制御はハンドラーに移ります。 o 警告が処理できない場合、処理は次にステートメントから継続されま す。 * SQLSTATE 値は 2 文字のクラス・コード値からなり、その後に 3 文字のサブ クラス・コード値が続きます。 クラス・コード値は実行の成功状態または不 成功状態のクラスを表します。 有効な SQLSTATE 値はいずれも SIGNAL ステートメントで使用できます。 た だし、プログラマーがアプリケーション用に予約された範囲に基づいて新しい SQLSTATE を定義することをお勧めします。 これにより、将来のリリースでデ ータベース・マネージャーによって定義される可能性のある SQLSTATE 値を 誤って使用してしまうのを避けることができます。 o 文字 '7'〜'9'、または 'I'〜'Z' で始まる SQLSTATE クラスは定義可能 です。 これらのクラス内では、サブクラスを定義することができます。 o 文字 '0'〜'6'、または 'A'〜'H' で始まる SQLSTATE クラスは データ ベース・マネージャー用に予約されています。これらのクラス内では、 文字 '0'〜'H' で始まるサブクラスはデータベース・マネージャー用に 予約されています。 文字 'I'〜'Z' で始まるサブクラスは定義可能で す。 例 顧客番号がアプリケーションに認識されていないときにアプリケーション・エラー を通知する、 オーダー・システムの SQL プロシージャーです。ORDERS 表には CUSTOMER 表に対する外部キーが含まれており、 オーダーを入れるためには CUSTNO が存在していることが必要になります。 CREATE PROCEDURE SUBMIT_ORDER (IN ONUM INTEGER, IN CNUM INTEGER, IN PNUM INTEGER, IN QNUM INTEGER) SPECIFIC SUBMIT_ORDER MODIFIES SQL DATA LANGUAGE SQL BEGIN DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503' SIGNAL SQLSTATE '75002' SET MESSAGE_TEXT = 'Customer number is not known'; INSERT INTO ORDERS (ORDERNO, CUSTNO, PARTNO, QUANTITY) VALUES (ONUM, CNUM, PNUM, QNUM); END ------------------------------------------------------------------------ 38.7 付録 A SQL の制限 表 33 の「データベース・マネージャーの制限」に変更があります。 レジストリー 変数 DB2_INDEX_2BYTEVARLEN がオンの場合、最長の変数の 索引キー部分は 255 バ イトより大きい値にすることができます。 ------------------------------------------------------------------------ 38.8 付録 D カタログ視点 新しいカタログ視点が追加されました。 38.8.1 SYSCAT.SEQUENCES 視点 SYSCAT.SEQUENCES が、フィックスパック 3 以降で作成されたデータベースに ついては自動的に生成されます。 フィックスパック 3 以前に作成されたデータベ ースについては、データベースに視点を追加するために、 db2updv7 コマンドを実 行してください。 詳しくは、リリース情報のコマンド解説の更新を参照してくださ い。 このカタログ視点は、SQL データ定義ステートメント、環境ルーチン、 および特定 のユーティリティーに対する応答として、通常の運用中に更新されます。 カタログ 視点内のデータは、通常の SQL 照会機能を通じて使用することができます。 列 は、記述するオブジェクトのタイプに基づいて、一貫性のある名前を持ちます。 表 30. SYSCAT.SEQUENCES カタログ視点の列 データ・タイ NULL 可 列名 プ 能 記述 SEQSCHEMA VARCHAR(128) シーケンスのスキーマ SEQNAME VARCHAR(128) シーケンス名 (識別列について DB2 が生成)。 DEFINER VARCHAR(128) シーケンスの定義者。 OWNER VARCHAR(128) シーケンスの所有者。 SEQID INTEGER シーケンスの内部 ID。 SEQTYPE CHAR(1) シーケンス・タイプ S - 通常のシーケンス INCREMENT DECIMAL(31,0) 増分値 START DECIMAL(31,0) 開始値 MAXVALUE DECIMAL(31,0) Yes 最大値 MINVALUE DECIMAL(31,0) 最小値 CYCLE CHAR(1) 境界に達したときにサイクリングを行 うかどうか。 Y - サイクリングを行う N - サイクリングを行わない CACHE INTEGER アクセスを高速化するために、メモリ ーに事前割り当てするシーケンス値の 数。 0 は値が事前割り当てされない ことを示します。 ORDER CHAR(1) シーケンス番号を要求の順序で生成す るかどうか。 Y - 要求の順序でシーケンス番 号を生成します。 N - 要求の順序でシーケンス番 号を生成しません。 DATATYPEID INTEGER 組み込みタイプの場合は、組み込みタ イプの内部 ID。特殊タイプの場合 は、特殊タイプの内部 ID。 SOURCETYPEID INTEGER 組み込みタイプの場合、この値は 0 になります。 特殊タイプの場合は、 特殊タイプのソース・タイプである組 み込みタイプの内部 ID です。 CREATE_TIME TIMESTAMP シーケンスが作成された時刻。 ALTER_TIME TIMESTAMP 最後の ALTER SEQUENCE ステートメン トがこのシーケンスについて実行され た時刻。 PRECISION SMALLINT 10 進数または数値タイプで、シーケ ンスに定義された精度。 SMALLINT で は 5、INTEGER では 10、BIGINT では 19 になります。 ORIGIN CHAR(1) シーケンス原点 U - ユーザー生成シーケンス S - システム生成シーケンス REMARKS VARCHAR(254) Yes ユーザーが指定するコメント、または ヌル ------------------------------------------------------------------------ DB2 ストアード・プロシージャー・ビルダー ------------------------------------------------------------------------ 39.1 DB2 ストアード・プロシージャー・ビルダーの Java 1.2 サポート DB2 ストアード・プロシージャー・ビルダーは Java 1.2 の機能を使用して、 Java ストアード・プロシージャーの作成をサポートします。さらに、 ストアード・プロ シージャー・ビルダーは、Java 1.2 の両方向サポートを使用して、 アラビア語お よびヘブライ語などの両方向言語をサポートします。 このサポートは Windows NT プラットフォームでのみ提供されます。 ストアード・プロシージャー・ビルダーが Java 1.2 の機能を認識して使用するた めに、 Java 1.2 をインストールする必要があります。 Java 1.2 をインストールするには: 1. JDK 1.2.2 は DB2\bidi\NT ディレクトリー下の DB2 UDB CD で入手可能で す。 ibm-inst-n122p-win32-x86.exe はインストール・プログラムで、 ibm-jdk-n122p-win32-x86.exe は JDK 配布です。 両方のファイルをご使用の ハード・ディスクの一時ディレクトリーにコピーし、 そこからインストー ル・プログラムを実行してください。 2. \java\Java12 (ここで は DB2 のインストール・パス) の下に インストールします。 3. JDK/JRE インストールにおいてプロンプトが出された際に、 JDK/JRE を System VM として選択しないようにしてください。 Java 1.2 を正常にインストールした後、ストアード・プロシージャー・ビルダーを 通常の方法で開始します。 JDK 1.2 サポートを使用して Java ストアード・プロシージャーを実行するには、 以下のコマンドを使用して、 データベース・サーバー環境変数 DB2_USE_JDK12 を TRUE に設定します。 DB2SET DB2_USE_JDK12=TRUE また、JDK11_PATH を Java 1.2 サポートがインストールされているディレクトリー を 示すように設定します。以下のコマンドを使用して、このパスを設定します。 DB2 UPDATE DBM CFG USING JDK11_PATH Java 1.2 の使用を停止するには、\java\Java12 から JDK/JRE をアンイ ンストールするか、 単に \java\Java12 サブディレクトリーの名前を変 更します。 重要: \java\Java12 を \Java12 と混同しないでください。 \Java12 は DB2 インストールの一部で、 Java 1.2 の JDBC サポートを 含みます。 ------------------------------------------------------------------------ 39.2 DB2 ストアード・プロシージャーのリモート・デバッグ UNIX および Windows プラットフォームで Java および C ストアード・プロシージ ャーの リモート・デバッグ機能を使用するには、IBM Distributed Debugger をイ ンストールする必要があります。 IBM Distributed Debugger は Visual Age for Java Professional Edition CD に含まれています。 デバッガー・クライアントは Windows プラットフォームでのみ実行します。 サポートされたサーバー・プラット フォームは Windows、 AIX および Solaris を含みます。 組み込み SQL デバッグ 機能であるストアード・プロシージャー・ビルダーを使用して、 Windows および UNIX プラットフォームのローカルおよびリモート SQL ストアード・プロシージャ ーをデバッグします。 現時点では、OS/2 プラットフォームはサポートされていま せん。 DB2 (OS/390 版) ストアード・プロシージャー・ビルダーの詳細について は、 Web サイト http://www-4.ibm.com/software/data/db2/os390/spb/exciting を参照してください。 OS/390 プラットフォームで SQL プロシージャーをデバッグするには、 IBM C/C++ Productivity Tools for OS/390 R1 製品も必要です。 IBM C/C++ Productivity Tools for OS/390 R1 の詳細については、次の Web サイトを参照してください: http://www.ibm.com/software/ad/c390/pt/ ------------------------------------------------------------------------ 39.3 Windows、OS/2、または UNIX プラットフォームでの SQL プロシージャーの作 成 ご使用の Windows、OS/2、または UNIX データベースで SQL プロシージャーを正常 に作成するために ストアード・プロシージャー・ビルダーを使用できるようにする には、SQL プロシージャーの サーバーを構成する必要があります。 SQL プロシー ジャーのサーバーを構成する方法については、 「34.3, 第 4 章 Java アプレット の構築と アプリケーション」を参照してください。 ------------------------------------------------------------------------ 39.4 Solaris プラットフォームでの DB2 ストアード・プロシージャー・ビルダー を使用する Solaris プラットフォームでストアード・プロシージャー・ビルダーを使用するに は: 1. JDK 1.1.8 をダウンロードして、インストールします。JDK 1.1.8 は JavaSoft Web サイトから ダウンロードできます。 2. 環境変数 JAVA_HOME を JDK がインストールされている場所に 設定します。 3. DB2 JDK11_PATH を JDK がインストールされているディレクトリーに 設定し ます。 DB2 JDK11_PATH を設定するには、次のコマンドを使用します。 DB2 UPDATE DBM CFG USING JDK11_PATH. ------------------------------------------------------------------------ 39.5 既知の問題および制限事項 * SQL プロシージャーは現在 Windows 98 ではサポートされていません。 * Java ストアード・プロシージャーの場合、JAR ID、クラス名および メソッド 名は非 ASCII 文字を含むことができません。 * AS/400 で以下の V4R4 PTF は OS/400 V4R4 に適用されます: - SF59674 - SF59878 * FOR MIXED DATA あるいは FOR SBCS DATA の文字サブタイプのストアード・プ ロシージャー・ パラメーターは、ストアード・プロシージャーがデータベー スから復元される場合、 エディター・ペインのソース・コードに表示されま せん。 * 現在、Java ソース・コードがデータベースから検索されるとき問題がありま す。 検索時間で、コードの注釈は縮小となります。 これは非 ASCII コー ド・ページで作動している DB2 ストアード・プロシージャー・ビルダー のユ ーザーに影響を及ぼし、クライアントやサーバーは別のコード・ページです。 ------------------------------------------------------------------------ 39.6 中国語 (繁体字) ロケールでの DB2 ストアード・プロシージャー・ビルダー の使用 中国語 (繁体字) で Java Development Kit あるいは Java Runtime 1.1.8 を使用 した場合の 問題です。 ストアード・プロシージャー・ビルダー・プログラム (メ ニュー、エディター・テキスト、メッセージなど含みます) のグラフィカル外観は 適切に表示されません。 ソリューションは、ファイル font.properties.zh_TW に 変更を作成します。それは、 以下のディレクトリーの 1 つあるいは両方に現れま す: sqllib/java/jdk/lib sqllib/java/jre/lib Change: monospaced.0=\u7d30\u660e\u9ad4,CHINESEBIG5_CHARSET,NEED_CONVERTED to: monospaced.0=Courier New,ANSI_CHARSET ------------------------------------------------------------------------ 39.7 UNIX (AIX、Sun Solaris、Linux) インストールおよびストアード・プロシー ジャー・ビルダー Sun Solaris インストールの場合、および UDB を含む AIX でインストールしたも の 以外の Java Development Kit あるいは Runtime を使用している場合、 環境変 数 JAVA_HOME を Java がインストールされたパス (/bin および /lib ディレクト リーを含んでいるディレクトリー) へセットする必要があります。 ストアード・プ ロシージャー・ビルダーは Linux ではサポートされませんが、DB2 UDB (Linux) シ ステムで ストアード・プロシージャーをビルドしたり実行したりすることがサポー トされているプラットフォームでは使用できます。 サポートされているプラットフォームには、クライアント用として AIX、Solaris、 NT、 およびサーバー用として AIX、Solaris、NT、Linux、OS/2、HP-UX、NUMA-Q が あります。 ------------------------------------------------------------------------ 39.8 OS/390 での SQL ストアード・プロシージャーの作成 DB2 ストアード・プロシージャー・ビルダーは、DB2 UDB (OS/390 版) V7 サーバー での SQL ストアード・プロシージャーの作成をサポートしています。 ------------------------------------------------------------------------ 39.9 SQL ストアード・プロシージャーのデバッグ Windows および UNIX プラットフォームでの SQL ストアード・プロシージャーの デバッグ機能は、現在 DB2 ストアード・プロシージャー・ビルダーに直接組み込ま れています。 非分離 (承認済み) SQL プロシージャーをデバッグするときは、 KEEPDARI データベース管理構成オプションを YES または NO に設定できますが、 分離 (承認なし) SQL プロシージャーをデバッグするときは、 これを YES (デフォ ルト) に設定する必要があります。 統合デバッガーの使用について詳しくは、 ス トアード・プロシージャー・ビルダー・ヘルプを参照してください。 ------------------------------------------------------------------------ 39.10 Java ストアード・プロシージャーのエクスポート DB2 ストアード・プロシージャー・ビルダーは、Java ストアード・プロシージャー の エクスポートをサポートするようになりました。 Java ストアード・プロシージ ャーをエクスポートするには、以下を行ってください。 1. ストアード・プロシージャー・フォルダーを右クリックし、 「Java ストアー ド・プロシージャーのエクスポート」をクリックして 「Java ストアード・プ ロシージャーのエクスポート」ウィンドウをオープンします。 2. エクスポートしたいストアード・プロシージャーを選択し、 「選択ストアー ド・プロシージャー」列に移動します。 3. 適切なオプションを選択して「了解」をクリックします。 ------------------------------------------------------------------------ 39.11 OS/390 でのストアード・プロシージャーの挿入 OS/390 で実行されている DB2 ストアード・プロシージャー・ビルダー・バージョ ン 5 以降では、 ウィザードを使用してストアード・プロシージャーを挿入し、WLM 環境オプションを指定しなかった場合、 生成されるコードにテキスト NO WLM ENVIRONMENT が含まれます。 このコードの行によって、予期された通りに ストア ード・プロシージャーが SPAS アドレス空間で実行されます。 この修正が行われる ことで、DB2 ストアード・プロシージャー・ビルダー・バージョン 6 以降にある 問題が解決されます。 修正後に生成されるコードは以下の通りです。 CREATE PROCEDURE SYSPROC.Proc2 ( ) RESULT SETS 1 LANGUAGE SQL MODIFIES SQL DATA COLLID TEST NO WLM ENVIRONMENT ASUTIME NO LIMIT RUN OPTIONS 'NOTEST(ALL,*,,VADTCPIP&9.112.14.91:*)' ------------------------------------------------------------------- -- SQL Stored Procedure ------------------------------------------------------------------- P1: BEGIN -- Declare cursor DECLARE cursor1 CURSOR WITH RETURN FOR SELECT * FROM SYSIBM.SYSPROCEDURES; -- Cursor left open for client application OPEN cursor1; END P1 ------------------------------------------------------------------------ 39.12 ワークステーション・サーバーで SQL ストアード・プロシージャーの作成オ プションを設定 UNIX および Windows プラットフォームで DB2 ストアード・プロシージャー・ビル ダーを使用して、 すべての SQL ストアード・プロシージャーについて作成オプシ ョンを設定できます。 これらの作成オプションには、以下のコンパイラー および 事前コンパイラー DB2 レジストリー変数があります。 * DB2_SQLROUTINE_PREPOPTS * DB2_SQLROUTINE_COMPILER_PATH * DB2_SQLROUTINE_COMPILE_COMMAND * DB2_SQLROUTINE_KEEP_FILES 上記のレジストリー変数は db2set コマンドを使用して設定することが可能です が、 ストアード・プロシージャー・ビルダーを使用すると、 データベース・サー バーに物理的にアクセスしてコマンドを実行したり、 変更を有効するためにサーバ ーを停止してから再始動する必要がなくなります。 「SQL ストアード・プロシージャー作成オプション」ウィンドウをオープンするに は、 プロジェクト・ビューでデータベース接続を右クリックして、 「SQL ストア ード・プロシージャー作成オプション」をクリックします。 これらのオプションの 設定について詳しくは、DB2 ストアード・プロシージャー・ヘルプを 参照してくだ さい。 ------------------------------------------------------------------------ 39.13 OS/390 に作成されたストアード・プロシージャーの WLM アドレス空間を自 動的にリフレッシュ WLM で実行される、OS/390 のストアード・プロシージャーが正常に作成されたら、 DB2 ストアード・プロシージャー・ビルダーが WLM アドレス空間を自動的にリフレ ッシュします。 ------------------------------------------------------------------------ 39.14 OS/390 での Java ストアード・プロシージャーの開発 DB2 ストアード・プロシージャー・ビルダーは、DB2 UDB (OS/390 版) バージョン 6 および それ以降での Java ストアード・プロシージャーの開発をサポートしてい ます。 新しい Java ストアード・プロシージャーを開発、または 既存の Java ス トアード・プロシージャーを変更できます。 ------------------------------------------------------------------------ 39.15 MQ Series および OLE DB 用の DB2 表ユーザー定義関数 (UDF) の作成 DB2 ストアード・プロシージャー・ビルダーには、MQSeries と OLE DB の両方の 表 UDF を作成するためのウィザードが用意されています。 OLE DB 表 UDF の作成 ウィザードを使用して、OLE DB データ・プロバイダーに アクセスすることができ ます。 このウィザードは、OLE 表 UDF とオプション表視点を作成します。 MQSeries 表 UDF の作成ウィザードを使用して、MQSeries メッセージにアクセス し、 表形式のデータを構文解析するための表 UDF とオプション表視点を作成でき ます。 ------------------------------------------------------------------------ ユニコード更新 ------------------------------------------------------------------------ 40.1 入門 ユニコード標準は、書かれた文字とテキストのための汎用文字エンコード・スキー ムです。 ユニコードは文字のマルチバイト表現です。 テキスト・データの国際的 な交換と、グローバル・ソフトウェアの基礎の作成を可能にする エンコード・マル チリンガル・テキストの一貫性のある方法を定義します。 ユニコードでは次の 2 つのエンコード・スキームが利用できます。デフォルトの エンコード・スキームは UTF-16 で、これは 16 ビットのエンコード・スキームで す。 UCS-2 は UTF-16 のサブセットで、これは文字を表すために 2 バイトを使用 します。 UCS-2 は一般に、既存のすべての 1 バイトおよび 2 バイト・コード・ペ ージから すべての必要な文字を表現可能な汎用コード・ページとして受け入れられ ています。 UCS-2 は、IBM ではコード・ページ 1200 として登録されています。 他のユニコード・エンコード形式には UTF-8 があり、これはバイト単位で扱われ、 ASCII をベースとする既存のシステムで容易に使用できるように設計されていま す。 UTF-8 は、各文字を保管するために可変のバイト数 (通常 1-3、4 の場合あ り) を 使用します。変化しない ASCII 文字は単一バイトとして保管されます。そ れ以外の 文字はすべて複数バイトを使用して保管されます。一般に UTF-8 データ は、 マルチバイト・コード・ページのために設計されていないコードによって、 拡張 ASCII データとして扱うことができます。UTF-8 は、IBM では コード・ペー ジ 1208 として登録されています。 アプリケーションは、データがローカル・コード・ページ、UCS-2 および UTF-8 の 間で変換されるときにデータの要件を考慮に入れることが重要になります。 たとえ ば 20 文字は、UCS-2 ではちょうど 40 バイト、UTF-8 ではオリジナルの コード・ ページと使用される文字に応じて 20 から 60 バイトを必要とします。 40.1.1 DB2 ユニコード・データベースおよびアプリケーション UTF-8 コード・セットで作成された DB2 ユニバーサル・データベース Unix 版、 Windows 版、および OS/2 版は、UCS-2 と UTF-8 の両方でデータを保管するために 使用できます。このようなデータベースは、ユニコード・データベースと呼ばれま す。 SQL CHAR データは UTF-8 を使用してエンコードされ、SQL GRAPHIC は UCS-2 を 使用してエンコードされます。これは、1 バイト (SBCS) および マルチバイト (DBCS) コード・セットを CHAR 列に、 2 バイト (DBCS) コード・セットを GRAPH IC 列に保管するのと同じです。 アプリケーションのコード・ページは、DB2 がデータの保管に使用する コード・ペ ージに一致しない場合があります。非ユニコード・データベースでは、 コード・ペ ージが同じでない場合、データベース・マネージャーがクライアントと サーバーの 間で転送される文字および漢字 (純粋な DBCS) データを変換します。 ユニコー ド・データベースでは、クライアント・コード・ページと UTF-8 間の データの変 換はデータベース・マネージャーによって自動的に実行されますが、 漢字 (UCS-2) データはクライアントとサーバーの間で変換されずに渡されます。 図 7. データベース・マネージャーによって実行されるコード・ページ変換 [データベース・マネージャーによって実行されるコード・ページ変換] 注: 1. ユニコード・データベースに接続するとき、アプリケーションが DB2CODEPAGE=1208 を 設定する場合、ローカル・コード・ページは UTF-8 な ので、コード・ページ変換が必要になります。 2. ユニコード・データベースに接続するとき、CLI アプリケーションは文字デー タを 漢字データとして、漢字データを文字データとして受け取ります。 UTF-8 コード・ページをアプリケーションが指定するのは可能であり、この場合、 漢字データはすべて UCS-2 で、文字データは UTF-8 で送受信されます。この アプ リケーション・コード・ページはユニコード・データベースでのみサポートされま す。 ユニコード使用時のその他の考慮事項には以下があります。 1. データベース・コード・ページはデータベースの作成時に決定され、デフォル トでは この値はオペレーティング・システム・ロケール (またはコード・ペ ージ) から 決定されます。明示的にユニコード DB2 データベースを作成する には、 CODESET および TERRITORY キーワードを使用できます。たとえば: CREATE DATABASE unidb USING CODESET UTF-8 TERRITORY US 2. アプリケーション・コード・ページはまたローカル・コード・ページにデフォ ルト設定 されますが、これは次の 2 つの方法で UTF-8 にオーバーライドさ れます。 o 次のコマンドでアプリケーション・コード・ページを UTF-8 (1208) に 設定します。 db2set DB2CODEPAGE=1208 o CLI/ODBC アプリケーションの場合、 SQLSetConnectAttr() を呼び出し て SQL_ATTR_ANSI_APP を SQL_AA_FALSE に設定します。 デフォルト設 定は SQL_AA_TRUE です。 3. GRAPHIC 列のデータは各ユニコード文字につきちょうど 2 バイトですが、 CHAR 列のデータはユニコード文字につき 1 バイトから 3 バイトを使用しま す。 GRAPHIC 列の文字に関する SQL 制限は一般に CHAR 列の半分ですが、バ イト数に関しては 同じです。CHAR の最大文字長は 254 です。漢字の列の最 大文字長は 127 です。 詳しくは、SQL 解説書 の「関数」の章の MAX を 参 照してください。 4. グラフィック・リテラルは G 接頭部で文字リテラルと区別されます。 たとえ ば: SELECT * FROM mytable WHERE mychar = 'utf-8 data' AND mygraphic = G'ucs-2 data' 注: G 接頭部はユニコード・データベースには不要です。 詳細および更新されたサポートについては、 "ユニコード・データベースのリ テラル" を参照してください。 5. CLI/ODBC および JDBC アプリケーションのサポートは、組み込みアプリケー ションの サポートとは異なります。CLI/ODBC サポートに関する情報について は、 40.3, "CLI の手引きおよび解説書" を参照してください。 6. UCS-2 のバイト順序は、プラットフォーム間で異なる場合があります。 内部 的に DB2 はビッグ・エンディアン形式を使用します。 40.1.2 資料の更新 この資料は、DB2 バージョン 7.1 でユニコードを使用するさいの以下の情報を 更 新します。 * SQL 解説書: 第 3 章 言語エレメント 第 4 章 関数 * CLI ガイドおよび解説書: 第 3 章 拡張フィーチャー 付録 C DB2 CLI および ODBC * DB2 データ移動ユーティリティー手引きおよび解説書、付録 C エクスポート/ インポート/ロード・ユーティリティー・ファイル形式 DB2 でのユニコードの使用法については管理の手引き、 付録 J 各国語サポート (NLS): "DB2 UDB でのユニコード/UCS-2 および UTF-8 サポート" を参照してくだ さい。 ------------------------------------------------------------------------ 40.2 SQL 解説書 40.2.1 第 3 章 言語エレメント 40.2.1.1 データ・タイプのプロモーション このセクションでは、表 5 に各データ・タイプの優先順位リストが示されます。 以下に注意してください。 1. ユニコード・データベースの場合、以下が同等のデータ・タイプと見なされま す。 o CHAR および GRAPHIC o VARCHAR および VARGRAPHIC o LONG VARCHAR および LONG VARGRAPHIC o CLOB および DBCLOB 2. ユニコード・データベースでは、同等の CHAR および GRAPHIC データ・タイ プ間で 関数シグニチャーのみが異なる (たとえば foo(CHAR(8)) と foo(GRAPHIC(8)) など) 関数を 作成することが可能です。将来のリリースへ の移行を行う前に、これらのどちらかを ドロップしなければならなくなるた め、このような重複する関数は定義しないことを 強くお勧めします。 このような重複する関数が存在する場合、どちらを呼び出すかの 選択は、2 つのパス・アルゴリズムで決定されます。最初のパスは、非ユニコード・ デ ータベースの関数を解決するために使用されるものと同じアルゴリズムを使用 して 一致を探そうとします。一致が見つからない場合は、CHAR およ GRAPHIC ストリングに ついて次のプロモーション優先順位を考慮して 2 番目のパスが 行われます。 GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR-->DBCLOB-->CLOB 40.2.1.2 データ・タイプ間のキャスト 次の項目が、「特殊タイプを含む次のキャストがサポートされています」と 紹介さ れているリストに追加されました。 * ユニコード・データベースの場合、VARCHAR または VARGRAPHIC から ソー ス・データ・タイプ CHAR または GRAPHIC の特殊タイプ DT へのキャスト。 以下は、表 6. 組み込みデータ・タイプ間でサポートされる キャスト に対する更 新です。影響を受ける表の行のみが示されています。 表 31. 組み込みデータ・タイプ間で サポートされているキャスト L O N ターゲット・データ・タイプ L G > O V V N A A G G RG RG V V RA RA RA D A A P P P B CH RCH RCH CL H H H CL A A A O I I I O ソース・データ・タイプ V R R R B C C C B CHAR Y Y Y Y Y1 Y1 - - VARCHAR Y Y Y Y Y1 Y1 - - LONGVARCHAR Y Y Y Y - - Y1 Y1 CLOB Y Y Y Y - - - Y1 GRAPHIC Y1 Y1 - - Y Y Y Y VARGRAPHIC Y1 Y1 - - Y Y Y Y LONGVARGRAPHIC - - Y1 Y1 Y Y Y Y DBCLOB - - - Y1 Y Y Y Y 1 キャストはユニコード・データベースでのみサポートされています。 40.2.1.3 割り当てと比較 文字および漢字データの両方を含む割り当てと比較は、ストリングの いずれかがリ テラルのときにのみサポートされます。関数解決については、 漢字リテラルと文字 リテラルは文字および漢字関数パラメーターの両方に 一致します。 以下は、表 7. 割り当てと比較についてのデータ・タイプ 互換性 に対する更新で す。影響を受ける表の行と、新しい脚注 6 のみが 示されています。 バイ ナリ 漢字 タイ ー・ スト ム・ スト オペラ 2 進 浮動小 文字スト リン スタ リン ンド 整数 10 進数 数点 リング グ 日付 時刻 ンプ グ UDT 文字ス No No No Yes Yes 6 1 1 1 No 3 2 トリン グ 漢字ス No No No Yes 6 Yes No No No No 2 トリン グ 6 ユニコード・データベースでのみサポートされます。 ストリング割り当て ストレージ割り当て このサブセクションの最後の段落が次のように変更されました。 ストリングが固定長の列に割り当てられ、ストリングの長さがターゲットの 長さ属 性より小さいとき、ストリングには右側に必要な数の 1 バイト、2 バイト、 また は UCS-2 の 2 ブランクが埋められます。 埋め込み文字は、FOR BIT DATA 属性で 定義された列についても、常にブランクに なります。 検索割り当て このサブセクションの 3 番目の段落が次のように変更されました。 文字ストリングが固定長の変数に割り当てられ、ストリングの長さがターゲットの 長さ属性より小さいとき、ストリングには右側に必要な数の 1 バイト、2 バイト、 または UCS-2 の 2 ブランクが埋められます。 埋め込み文字は、FOR BIT DATA 属 性で定義されたストリングについても、常にブランクに なります。 2 UCS-2 はいくつかの SPACE 文字を異なるプロパティーで定義します。 ユニコ ード・データベースの場合、データベース・マネージャーは常に、x'0020' の 位置の ASCII SPACE を UCS-2 ブランクとして使用します。EUC データベース の場合、 位置 x'3000' の IDEOGRAPHIC SPACE が埋めこみ GRAPHIC ストリン グに 使用されます。 ストリング割り当ての変換規則 以下の段落がこのサブセクションの終わりに追加されました。 ユニコード・データベースの場合、文字ストリングを漢字の列に、漢字ストリング を 文字の列に割り当てることができます。 漢字ストリング割り当てに関する DBCS 考慮事項 このサブセクションの最初の段落が次のように変更されました。 漢字ストリング割り当ては、文字ストリングに似た方法で処理されます。 非ユニコ ード・データベースの場合、漢字ストリング・データ・タイプは他の 漢字ストリン グ・データ・タイプとのみ互換性を持ち、数値、文字ストリング、 または日付デー タ・タイプとは互換性がありません。ユニコード・データベースの 場合、漢字デー タ・タイプは文字ストリング・データ・タイプと互換性があります。 ストリング比較 比較の変換規則 このサブセクションが次のように変更されました。 2 つのストリングを比較するとき、必要であれば、最初に一方のストリングが もう 一方のエンコード・スキームまたはコード・ページ (あるいは両方) に 変換されま す。詳しくは、SQL 解説書 の 第 3 章の "ストリング変換の規則" を 参照してく ださい。 40.2.1.4 結果データ・タイプの規則 ユニコード・データベースの文字および漢字ストリング これは、サブセクション「漢字ストリング」の後に挿入される新しいサブセクショ ンです。 ユニコード・データベースでは、文字ストリングと漢字ストリングには互換性があ ります。 オペランド... 他のオペランド... 結果のデータ・タイプ... GRAPHIC(x) CHAR(y) または GRAPHIC(z)、z = max(x,y) GRAPHIC(y) VARGRAPHIC(x) CHAR(y) または VARGRAPHIC(z)、z = VARCHAR(y) max(x,y) VARCHAR(x) GRAPHIC(y) または VARGRAPHIC(z)、z = VARGRAPHIC max(x,y) LONG VARGRAPHIC CHAR(y) または LONG VARGRAPHIC VARCHAR(y) または LONG VARCHAR LONG VARCHAR GRAPHIC(y) または LONG VARGRAPHIC VARGRAPHIC(y) DBCLOB(x) CHAR(y) または DBCLOB(z)、z = max(x,y) VARCHAR(y) または CLOB(y) DBCLOB(x) LONG VARCHAR DBCLOB(z)、z = max(x,16350) CLOB(x) GRAPHIC(y) または DBCLOB(z)、z = max(x,y) VARGRAPHIC(y) CLOB(x) LONG VARGRAPHIC DBCLOB(z)、z = max(x,16350) 40.2.1.5 ストリング変換の規則 3 番目のポイントが、このセクションの次のリストに追加されました。 コード・ページの各ペアについて、次の規則を順番に適用することで結果が決定さ れます。 * コード・ページが等しい場合、結果はそのコード・ページになります。 * コード・ページが BIT DATA (コード・ページ 0) 結果のコード・ページは BIT DATA になります。 * ユニコード・データベースで、あるコード・ページが他のコード・ページと 異なるエンコード・スキームでデータを指定する場合、結果は UTF-8 ではな く UCS-2 に なります (つまり、漢字データ・タイプが文字データ・タイプに 優先します)。1 * それ以外の場合、結果のコード・ページは SQL 解説書 の 第 3 章言語エレメ ントの"ストリング変換の規則" セクションの 表 8 で決定されます。表の 「最初」の項目は、最初のオペランドからのコード・ページが 選択されるこ とを意味し、「2 番目」は 2 番目のオペランドからのコード・ページが選択 される ことを意味します。 1 非ユニコード・データベースでは、異なるエンコード・スキーム間の変換は サポートされていません。 40.2.1.6 式 以下が追加されました。 ユニコード・データベースでは、文字または漢字ストリングを受け入れる 述部は、 変換がサポートされるストリング・タイプを受け入れます。 連結演算子 以下がこのサブセクションの終わりに追加されました。 ユニコード・データベースでは、文字ストリング・オペランドと漢字ストリング・ オペランドの 両方を含む連結は、最初に文字オペランドを漢字オペランドに変換し ます。非ユニコード・ データベースでは、連結は文字および漢字オペランドの両方 を扱うことはできません。 40.2.1.7 述部 次の項目が、「次の規則がすべてのタイプの述部に適用されます」という文で 紹介 されているリストに追加されました。 * ユニコード・データベースでは、文字または漢字ストリングを受け入れる 述 部はすべて、変換がサポートされるストリング・タイプを受け入れます。 40.2.2 第 4 章 関数 40.2.2.1 スカラー関数 次の文がこのセクションの終わりに追加されました。 ユニコード・データベースでは、文字または漢字ストリングを受け入れる スカラー 関数はすべて、変換がサポートされるストリング・タイプを受け入れます。 ------------------------------------------------------------------------ 40.3 CLI の手引きおよび解説書 40.3.1 第 3 章 拡張フィーチャーの使用法 以下は、この章の新しいセクションです。 40.3.1.1 DB2 CLI ユニコード・アプリケーションの作成 DB2 CLI ユニコード・アプリケーションのサポート領域には次の 2 つがあります。 1. ANSI ストリング引き数の代わりにユニコード・ストリング引き数を受け入れ 可能な 関数のセットの追加。 2. ANSI またはユニコード・データとしてデータを記述する、新しい C および SQL データ・ タイプの追加。以下のセクションは、これらの領域の両方につ いての詳細を提供します。 ユニコード・アプリケーションと認識されるため には、アプリケーションは接続を行う前に、 SQL_ATTR_ANSI_APP 接続属性を SQL_AA_FALSE に設定する必要があります。これにより、 CLI はユニコード・ クライアントとして接続し、ユニコード・データはすべて、 CHAR データでは UTF-8、GRAPHIC データでは UCS-2 で送信されます。 ユニコード関数 以下は、ユニコード (W) および ANSI (A) の両方をサポートする ODBC API 関数の リストです (ユニコードの関数名には W が付きます)。 SQLBrowseConnect SQLForeignKeys SQLPrimaryKeys SQLColAttribute SQLGetConnectAttr SQLProcedureColumns SQLColAttributes SQLGetConnectOption SQLProcedures SQLColumnPrivileges SQLGetCursorName SQLSetConnectAttr SQLColumns SQLGetDescField SQLSetConnectOption SQLConnect SQLGetDescRec SQLSetCursorName SQLDataSources SQLGetDiagField SQLSetDescField SQLDescribeCol SQLGetDiagRec SQLSetStmtAttr SQLDriverConnect SQLGetInfo SQLSpecialColumns SQLDrivers SQLGetStmtAttr SQLStatistics SQLError SQLNativeSQL SQLTablePrivileges SQLExecDirect SQLPrepare SQLTables 常にストリング長引き数を返す、または取得するユニコード関数は、文字数の カウ ントとして渡されます。サーバー・データに対して長さの情報を返す関数では、 表 示サイズは文字の数で示されます。長さ (データの転送サイズ) がストリングまた は ストリング以外のデータを参照するときは、長さはオクテット長で示されます。 たとえば、SQLGetInfoW は長さをバイト・カウントとして取りますが、 SQLExecDirectW は 文字数のカウントを使用します。CLI は結果セットを、アプリ ケーションのバインドに 応じてユニコードまたは ANSI で返します。アプリケーシ ョンが SQL_C_CHAR にバインドする 場合、ドライバーは SQL_WCHAR データを SQL_CHAR に変換します。ドライバー・マネージャーは、 ANSI ドライバーについて は SQL_C_WCHAR を SQL_C_CHAR にマップしますが、ユニコード・ ドライバーにつ いてはマッピングを行いません。 新しいデータ・タイプと有効な変換 2 つの新しい CLI または ODBC 定義のデータ・タイプ、SQL_C_WCHAR および SQL_WCHAR が あります。SQL_C_WCHAR は、C バッファーに UCS-2 データが含まれ ていることを指示します。 SQL_WCHAR は、特定の列またはパラメーター・マーカー にユニコード・データが含まれて いることを指示します。DB2 ユニコード・サーバ ーの場合、漢字列は SQL_WCHAR として 記述されます。漢字データ間で行われるの と同様に、SQL_C_WCHAR と SQL_CHAR、 SQL_LONGVARCHAR と SQL_CLOB の間で変換 が行われます。 表 32. サポートされるデータ変換 S S Q S Q L S Q L _ Q L _ C_ S L _ C_ D S S S Q S S _ S S C_ B B Q S S S S Q Q L Q Q C_ Q Q CL L CL L Q S Q Q Q L L _ L L TYP L S L O O O _ L Q L L L _ _ C_ _ _ E_ _ Q _ B B B C_ _ L _ _ _ C_ C_ D C_ C_ TI C_ L C_ _ _ _ B C_ _ C_ C_ C_ TI F O TYP TYP M B _ D L L L I N C_ W L S N L U E_ E_ ES I C_ B O O O G U CH CH O H YI O B D TI TA N B CH CA CA CA I M SQL データ・タ A A N O N A L A M M A I A TO TO TO N ERI イプ R R G RT T T E TE E P RY T R R R R T C BLOB X X D X CHAR D X X X X X X X X X X X X X CLOB D X X X DATE X X D X DBCLOB X X D X DECIMAL D X X X X X X X X X X DOUBLE X X X X X X D X X X FLOAT X X X X X X D X X X GRAPHIC(非ユニ X X D コード) GRAPHIC(ユニコ X X X X X X X X X X X X D X ード) INTEGER X X D X X X X X X X LONG D X X VARCHAR LONG X X X D VARGRAPHIC(非ユ ニコード) LONG X X X D VARGRAPHIC(ユニ コード) NUMERIC D X X X X X X X X REAL X X X X X D X X X SMALLINT X X X D X X X X X X BIGINT X X X X X X X X X D X TIME X X D X TIMESTAMP X X X X D VARCHAR D X X X X X X X X X X X X X VARGRAPHIC(非ユ X X D ニコード) VARGRAPHIC(ユニ X X X X X X X X X X X X D X コード) 注: D 変換がサポートされています。これは SQL データ・タイプのデフォルト 変換です。 X IBM DBMS はすべて変換をサポートしています。 ブランク IBM DBMS は変換をサポートしていません。 o データは LOB ロケーター・タイプに変換されません。というより、ロケ ーターは データ値を表示します。詳しくは、大きなオブジェクトの使用 法を 参照してください。 o SQL_C_NUMERIC は、32 ビット Windows オペレーティング・システムで のみ 使用可能です。 古いキーワード/パッチ値 ユニコード・アプリケーションがサポートされる以前、単一バイト文字データを 操 作するために書かれたアプリケーションは、GRAPHIC=1,2 または 3, Patch2=7 のよ うな、 一連の cli ini ファイル・キーワードによって 2 バイト漢字データを 操 作することができました。このような回避策は、文字データとして漢字データを 表 示し、報告されるデータの長さにも影響します。 これらのキーワードはユニコード・アプリケーションには不要になったばかりでな く、 使用すると深刻な副次作用を招くおそれがあります。あるアプリケーションが ユニコード・ アプリケーションかどうかがわからない場合は、漢字データの処理に 影響する キーワードなしで試してみることをお勧めします。 ユニコード・データベースのリテラル 非ユニコード・データベースでは、LONG VARGRAPHIC および LONG VARCHAR 列の デ ータは比較できません。GRAPHIC/VARGRAPHIC および CHAR/VARCHAR 列のデータは、 比較のみが可能か、または暗黙的コード・ページ変換がサポートされていないた め、 明示的な cast 関数を使用して相互に割り当てることができます。 これに は、GRAPHIC/VARGRAPHIC リテラルが G 接頭部によって CHAR/VARCHAR と 区別され る、GRAPHIC/VARGRAPHIC および CHAR/VARCHAR が含まれます。 ユニコード・データベースについては、GRAPHIC/VARGRAPHIC および CHAR/VARCHAR リテラル間の キャストは不要です。また、G 接頭部は GRAPHIC/VARGRAPHIC リテラ ルの 前には必要ありません。少なくとも 1 つの引き数がリテラルの場合、暗黙的 変換が 行われます。これにより、リテラルは G 接頭部を持っていても持っていな くても、 SQLPrepareW() または SQLExecDirect() を使用するステートメント内で 使用することが できます。LONG VARGRAPHIC のリテラルには G 接頭部が必要で す。 詳しくは、SQL 解説書 の第 3 章、言語エレメントの 「データ・タイプ間のキャス ト」 を参照してください。 新しい CLI 構成キーワード ユニコード・アプリケーションがデータベースに接続するときに余分なオーバーヘ ッドを 避けるために、次の 3 つのキーワードが追加されました。 1. DisableUnicode キーワードの説明: ユニコードのサポートを使用不可にします。 db2cli.ini キーワード構文 DisableUnicode = 0 | 1 デフォルト設定 0 (false) DB2 CLI/ODBC 設定タブ: このキーワードは CLI/ODBC 設定ノートブックで設定することはできま せん。 このキーワードを使用するためには、db2cli.ini ファイルを直 接編集する必要があります。 使用上の注意: ユニコード・サポートを使用可能にして、ユニコード・アプリケーションから 呼び出すと、CLI はコード・ページ変換による不要なデータ損失のないよう に、 最適なクライアント・コード・ページを使用してデータベースに接続し ようとします。 これにより、コード・ページ交換のために接続時間が増加す るか、またはこのサポートが 追加される前には行われたことのないクライア ントでのコード・ページ変換が行われる 可能性があります。 このキーワードを True に設定すると、すべてのユニコード・データが、 サ ーバーに送信される前にアプリケーションのローカル・コード・ページに変換 されます。 これにより、ローカル・コード・ページでは表示できないデータ が失われることがあります。 2. ConnectCodepage キーワードの説明: 余分な接続オーバーヘッドを避けるために、データ・ソースに接続する ときに 使用する特定のコード・ページを指定します。 db2cli.ini キーワード構文 ConnectCodepage = 0 | 1 <有効な db2 コード・ページ> デフォルト設定 0 DB2 CLI/ODBC 設定タブ: このキーワードは CLI/ODBC 設定ノートブックで設定することはできま せん。 このキーワードを使用するためには、db2cli.ini ファイルを直 接編集する必要があります。 使用上の注意: 非ユニコード・アプリケーションは常に、アプリケーションのローカル・コー ド・ページ、 または DB2Codepage 環境設定を使用してデータベースに接続し ます。デフォルトでは、CLI は 常にユニコード・アプリケーションが UTF-8 または UCS-2 コード・ページを使用して ユニコード・データベースに接続す るように、またはデータベースのコード・ページを 使用して非ユニコード・ データベースに接続するようにします。これにより、コード・ページ 変換に よる不要なデータ損失を避けることができます。 このキーワードを使用すると、 ユーザーは接続時の余分なオーバーヘッドを 避けるために、ユニコード・データベースへの 接続時にデータベースのコー ド・ページを指定することができます。 値 1 を 指定すると、SQLDriverConnect() は出力接続ストリングに正しい値 を返します。 これにより値を以降の SQLDriverConnect() 呼び出しで使用す ることができます。 3. UnicodeServer キーワードの説明: データ・ソースがユニコード・サーバーであることを指示します。 ConnectCodepage=1208 の 設定と同じです。 db2cli.ini キーワード構文 UnicodeServer = 0 | 1 デフォルト設定 0 DB2 CLI/ODBC 設定タブ: このキーワードは CLI/ODBC 設定ノートブックで設定することはできま せん。 このキーワードを使用するためには、db2cli.ini ファイルを直 接編集する必要があります。 使用上の注意: このキーワードは ConnectCodepage=1208 と同じもので、便宜上追加されたも のです。 DB2 (OS/390 版) バージョン 7 またはそれ以降に接続するときの余 分な接続オーバーヘッドを 避けるためにこのキーワードを設定してくださ い。DB2 (Windows 版)、DB2 (Unix 版)、 または DB2 (OS/2 版) について は、余分な処理が必要にならないため、このキーワードを 設定する必要はあ りません。 40.3.2 付録 C. DB2 CLI および ODBC 以下の新しいセクションがこの付録に追加されました。 40.3.2.1 ODBC ユニコード・アプリケーション ユニコード ODBC アプリケーションは、主に UCS-2 で文字を検索します。これは、 ODBC 関数 (接尾部 "W") のユニコード・バージョンを呼び出し、ユニコード・デー タ・タイプを 指示することで行われます。アプリケーションはローカル・コード・ ページを明示的に 指定しません。それでもアプリケーションは ANSI 関数を呼び出 し、ローカル・コード・ページ・ ストリングを渡すことができます。 たとえば、アプリケーションは SQLConnectW() を呼び出し、DSN、ユーザー ID、お よび パスワードをユニコード引き数として渡すことができます。次にアプリケーシ ョンは、 SQLExecDirectW() を呼び出し、ユニコード SQL ステートメント・ストリ ングを渡し、 ANSI ローカル・コード・ページ・バッファー (SQL_C_CHAR) および ユニコード・ バッファー (SQL_C_WCHAR) の組み合わせをバインドします。データ ベース・データ・ タイプはローカル・コード・ページ、または UCS-2 と UTF-8 に なります。 CLI アプリケーションが SQLConnectW を呼び出すか、または SQL_ATTR_ANSI_APP を SQL_AA_FALSE に 設定して SQLSetConnectAttr を呼び出す場合、アプリケーシ ョンはユニコード・アプリケーションと 見なされます。このことは、CHAR データ はすべて、データベースとの間で UTF-8 形式で 送受信されることを意味していま す。アプリケーションはこの後 CHAR データを、 SQL_C_CHAR バッファーにローカ ル・コード・ページで取り出すか (データ損失の可能性があります)、 または SQL_C_WCHAR バッファーに UCS-2 でデータを損失することなく取り出すことが で きます。 アプリケーションが上記 2 つの呼び出しのどちらも行わない場合、CHAR データは サーバーでアプリケーション・ローカル・コード・ページに変換されます。このこ とは、 SQL_C_WCHAR に取り出された CHAR データがデータ損失を被る可能性がある ことを 意味しています。 DB2CODEPAGE インスタンス変数が (db2set を使用して) コード・ページ 1208 (UTF-8) に 設定された場合、アプリケーションはすべての CHAR データを UTF-8 で受け取ります。 これは、UTF-8 がローカル・コード・ページになっているためで す。アプリケーションはまた、 CHAR 入力データもすべて UTF-8 であることを確認 する必要もあります。ODBC は、 SQL_C_WCHAR データがすべてネイティブ・エンデ ィアン形式であると想定します。CLI は、 SQL_C_WCHAR について必要なバイト反転 を実行します。 ODBC ユニコードと非ユニコード・アプリケーション このリリースの DB2 ユニバーサル・データベースには SQLConnectW() API が含ま れています。 ユニコード・ドライバーは、ドライバー・マネージャーにユニコー ド・ドライバーとして 認識されるように、SQLConnectW をエクスポートする必要が あります。 多くの ODBC アプリケーション (Microsoft Access や Visual Basic など) は SQLConnectW() を 呼び出すことに注意してください。DB2 ユニバーサ ル・データベースの前のリリースでは、 DB2 CLI はこの API をサポートしていな かったので、ODBC ドライバー・マネージャーは これをユニコード・ドライバーと して認識しませんでした。 このため、ODBC ドライバー・マネージャーはすべての ユニコード・データをアプリケーションの ローカル・コード・ページに変換してい ました。SQLConnectW() 関数のサポートが追加された ことで、これらのアプリケー ションはユニコード・アプリケーションに接続し、DB2 CLI が 必要なデータ変換を すべて行うようになりました。 DB2 CLI は現在、ユニコード API (接尾部 "W" が付きます) を受け入れます。 ODBC は接尾部 "A" の関数のセットを定義しますが、ドライバー・マネージャーは 接尾部 "A" の ANSI 関数をドライバーに渡しません。代わりに、これらの関数を ANSI 関数 呼び出しに変換し、ドライバーに渡します。 SQLConnectW() API を呼び出す ODBC アプリケーションは、ユニコード・アプリケ ーションと 見なされます。ODBC ドライバー・マネージャーは呼び出されるアプリ ケーションのバージョンに かかわらず常に SQLConnectW() API を呼び出すため、 SQL_ATTR_ANSI_APP 接続属性を使用して、 アプリケーションが ANSI か UNICODE のどちらと考えられるかをドライバーに通知します。 SQL_ATTR_ANSI_APP が SQL_AA_FALSE に設定されていない場合、DB2 CLI はすべての ユニコード・データ を、サーバーに送る前にローカル・コード・ページに変換します。 ------------------------------------------------------------------------ 40.4 データ移動ユーティリティー 手引きおよび解説書 40.4.1 付録 C. エクスポート/インポート/ロード・ユーティリティー・ファイル形 式 以下の更新がこの付録に追加されています。 エクスポート、インポート、およびロード・ユーティリティーは、これらが 非ユニ コード・データベースに接続されたユニコード・クライアントで使用される ときは サポートされません。ユニコード・クライアントは、ユニコード・クライアントが ユニコード・データベースに接続されているときにのみサポートされます。 ------------------------------------------------------------------------ ホスト・システムへの接続 部分目次 * コネクティビティー補足 o 41.1 VM 環境でのアプリケーション・サーバーのセットアップ o 41.2 CLI/ODBC/JDBC 構成 PATCH1 および PATCH2 の設定 ------------------------------------------------------------------------ コネクティビティー補足 ------------------------------------------------------------------------ 41.1 VM 環境でのアプリケーション・サーバーのセットアップ 以下の文を、「ネットワーク情報の提供」のサブセクション「アプリケーション・ サーバーを定義する」の 最初の行の後に追加してください。 RDB_NAME は SQLSTART EXEC で DBNAME パラメーターとして提供されます。 ------------------------------------------------------------------------ 41.2 CLI/ODBC/JDBC 構成 PATCH1 および PATCH2 の設定 CLI/ODBC/JDBC ドライバーは、クライアント構成アシスタントまたは ODBC ドライ バー・マネージャー (システムにインストールされている場合) から、 あるいは手 動で db2cli.ini ファイルを編集して構成できます。 詳細については、インストー ルおよび構成補足 または CLI ガイドおよび解説書 を参照してください。 DB2 CLI/ODBC ドライバーのデフォルトの振る舞いは、db2cli.ini ファイルまたは SQLDriverConnect() か SQLBrowseConnect() CLI API を経由して PATCH1 および PATCH2 キーワードの両方に値を指定して、変更することができます。 PATCH1 キーワードは、ユーザーが設定したいすべてのキーワードを追加して 指定 されます。 たとえば、パッチ 1、2、および 8 が指定されると、PATCH1 には値 11 があります。 次が各キーワードの値の記述と、ドライバーへの効果です。 1 - これは、"count(exp)" のドライバー検索を行い、 "count(distinct exp)" と置き換えます。DB2 のバージョンによっては、 "count(exp)" 構文をサポートするものがあり、この構文は ODBC アプリケーション で生成されるため、この処置が必要になります。Microsoft のアプリケーションでは、 サーバーが "count(exp)" 構文をサポートしないときに、この構文を必要します。 2 - ODBC アプリケーションの中には、SQL_NULL_DATA が、LITERAL_PREFIX か LITERAL_SUFFIX 列のいずれかに対して、SQLGetTypeInfo() 関数で戻されるときに トラップされるものがあります。これは、ドライバーに、空ストリングを 戻すよう強制します。Impromptu 2.0 で必要です。 4 - これはタイム・スタンプの時刻と小数部がゼロの場合、ドライバーに 入力タイム・スタンプ・データを日付データとして扱うよう強制します。 Microsoft Access で必要です。 8 - これはタイム・スタンプの日付部分が 1899-12-30 の場合、ドライバーに 時間データとして入力タイム・スタンプを扱うよう強制します。 Microsoft Access で必要です。 16 - 未使用 32 - これは、ドライバーに、SQL_LONGVARCHAR、SQL_LONGVARBINARY、および SQL_LONGVARGRAPHIC に関する情報を強制的に戻さないようにします。アプリケーションに対しては、 長いフィールドがサポートされないように示されます。Lotus 123 で必要です。 64 - これは、ドライバーにグラフィックス出力ストリングでヌル終了を強制します。 2 バイト環境の Microsoft Access で必要です。 128 - これは、ドライバーに、強制的に照会 "SELECT Config, nValue FROM MSysConf" を サーバーへ送信します。現在、ドライバーは、S0002 (表が見つからない) の SQLSTATE 値に関連したエラーを戻しています。ユーザーがデータベースにこの構成表を 作成して、これにアクセスするアプリケーションを要求する場合に必要となります。 256 - ドライバーに SQLStatistics() 呼び出しの最初に、1 次キー列を戻すよう 強制します。現在、ドライバーは、索引名でソートされた索引を返します。 これは、標準 ODBC の振る舞いです。 512 - ドライバーに、SQL_API_SQLTABLEPRIVILEGES と SQL_API_SQLCOLUMNPRIVILEGES の両方で SQLGetFunctions() を FALSE で戻すよう強制します。 1024 - 実行された UPDATE または DELETE ステートメントが行に影響を与えない場合、 ドライバーに、SQLExecute() または SQLExecDirect() で、SQL_NO_DATA_FOUND ではなく SQL_SUCCESS を戻すよう強制します。Visual Basic アプリケーションで必要です。 2048 - 未使用 4096 - 自動コミット・モードの時に、カーソルのクローズ後に COMMIT を 実行しないよう、ドライバーに強制します。 8192 - ドライバーに、ストアード・プロシージャーの呼び出し後に、余分な結果セットを 戻すよう強制します。この結果セットは、ストアード・プロシージャーの出力値から 構成される 1 行の結果セットです。 Powerbuild アプリケーションでアクセスできます。 32768 - ドライバーに、DB2 MVS 同義語を使用して、Microsoft Query アプリケーション を強制的に動作させます。 65536 - ドライバーに、実際には GRAPHIC リテラルである文字リテラルの前に "G" を手動で 挿入するよう強制します。このパッチは、2 バイト環境で動作する時には、 必ず指定する必要があります。 131072 - タイム・スタンプ列が固有索引の一部である時、タイム・スタンプ列を CHAR(26) 列として記述するようドライバーに強制します。 Microsoft のアプリケーションで必要です。 262144 - ドライバーに、SYSCAT.PROCEDURES および SYSCAT.PROCPARMS 表の 代わりに、疑似カタログ表の db2cli.procedures を使用するよう 強制します。 524288 - DB2/400 V3.x システムへのシステム表照会を行う時に、TABLE_SCHEMA ではなく、 SYSTEM_TABLE_SCHEMA を使用するようドライバーに強制します。 この結果、パフォーマンスが向上されます。 1048576 - ドライバーに、SQLPutData() からのゼロ長ストリングを SQL_NULL_DATA として扱うよう強制します。 PATCH2 キーワードは PATCH1 キーワードとは異なります。 この場合、複数のパッ チがコンマ区切り記号を使用して指定されます。 たとえば、パッチ 1、4、および 5 が指定されると、PATCH2 には値 "1,4,5" があります。 次が各キーワードの値の 記述と、ドライバーへの効果です。 1 - ドライバーに、CALL ステートメントでのストアード・プロシージャーの 名前を大文字に強制的に変換させます。 2 - 未使用。 3 - ドライバーに、スキーマ呼び出しのすべての引き数を大文字にするよう強制します。 4 - スキーマ呼び出し (SQLColumns()、SQLProcedureColumns() など) に対して バージョン 5 に類似した結果セットではなく、 バージョン 2.1.2 に類似した結果セットを戻すようドライバーに強制します。 5 - ドライバーに、入力 VARCHAR 列の処理を最適化しないよう強制します。 入力 VARCHAR 列では、データへのポインターと長さへのポインターが メモリー内で連続しています。 6 - ドライバーに、スクロール可能カーソルがサポートされないというメッセージを 返すよう強制します。これは、DB2 クライアントがバージョン 5 で、サーバーが DB2 UDB バージョン 5 である場合に Visual Basic プログラムで必要です。 7 - ドライバーに、すべての GRAPHIC 列データ・タイプを CHAR 列データ・タイプ にマップするよう強制します。2 バイト環境で必要です。 8 - ドライバーに、スキーマ呼び出しのカタログ検索引き数を無視するよう強制します。 9 - カーソルの Early Close でコミットしません 10 - 未使用 11 - カタログ名がサポートされていることを報告します (VB ストアード・プロシージャー) 12 - スキーマ呼び出し引き数から二重引用符を除去します (Visual Interdev) 13 - db2cli.ini から出力接続ストリングへ、キーワードを追加しません 14 - SQLProcedures() と SQLProcedureColumns() でスキーマ名を無視します 15 - 文字出力で小数点にピリオドを常に使用します 16 - オープンごとに describe 情報を強制的に戻します 17 - describe で列名を返しません 18 - パラメーター・マーカーでリテラルを置き換えます 19 - 現在、DB2 MVS V4.1 は、括弧が外部結合文節の ON 文節で許可されている ODBC 構文をサポートしていません。 この PATCH2 をオンにした場合、外部結合文節が ODBC エスケープ・シーケンスにあると、 IBM DB2 ODBC ドライバーが括弧をストリップします。 この PATCH2 は DB2 MVS 4.1 に対してのみ使用してください。 20 - 現在、MVS 上の DB2 は、両方のオペランド (expression ? BETWEEN ?) として パラメーター・マーカーを使用した BETWEEN 述部をサポートしていません。 このパッチをオンにすると、IBM ODBC ドライバーが (expression >= ? と expression <= ?) に述部を再書き込みします。 21 - ストアード・プロシージャーのすべての OUTPUT 専用パラメーターを SQL_NULL_DATA に設定します 22 - この PATCH2 によって、IBM ODBC ドライバーは外部結合がサポートされていないと報告します。 これは外部結合ステートメントの使用時に、SELECT DISTINCT col1 または ORDER BY col1 (col1 は 254 文字を超える) を生成するアプリケーションに使用され、DB2 UDB はii    この方式では、254 バイトを超える長さの列をサポートしないためです。   23 - cbColDef=0 でバインドしたパラメーターに入力を最適化しません 24 - 時刻値を文字としてマップするアクセス予備手段 25 - 10 進数列のアクセス予備手段 - CHAR 表記の後続ゼロの除去 26 - sqlcode 464 をアプリケーションに戻しません - 結果セットが戻されます 27 - アプリケーションで有効値を指定している場合でも、SQLTables で強制的に TABLETYPE キーワード値を使用します 28 - 実際の列を重複列として記述します 29 - 10 進数列の ADO 予備手段 - 値 x の先行ゼロの除去 ここで、1 > x > -1 (特定の MDAC バージョンでのみ必要) 30 - ストアード・プロシージャーのキャッシュ最適化を使用不可にします 31 - SQLStatistics 呼び出しの別名の統計を報告します 32 - sqlcode -727 理由コード 4 の処理を変更します 33 - CHAR に変換時にタイム・スタンプの ISO バージョンを戻します (ODBC バージョンとは逆) 34 - CHAR FOR BIT DATA 列を CHAR として報告します 35 - SQL_DESC_BASE_TABLE_NAME の要求時に無効な TABLENAME を 報告します - ADO 読み取り専用最適化 36 - 予約済み 37 - 予約済み ------------------------------------------------------------------------ 一般情報 部分目次 * 一般情報 o 42.1 DB2 ユニバーサル・データベース クィック・ツアー o 42.2 DB2 Everywhere は DB2 Everyplace に o 42.3 マウスが必要 o 42.4 「バインド・ファイルが見つかりません」のエラーで DB2 ランタ イム・クライアント結果からバインドを試みる o 42.5 サーチ・ディスカバリー o 42.6 HP-UX 11 のメモリー・ウィンドウ o 42.7 dlfm client_conf のユーザー・アクションの失敗 o 42.8 dlfm 停止時にコピー・デーモンが停止しないなど、まれな現象が 発生した場合 o 42.9 DB2 DFS クライアント・イネーブラーのアンインストール o 42.10 Windows NT 上でのクライアントの認証 o 42.11 fork 中にオートローダーが停止する場合があります o 42.12 DATALINK 復元 o 42.13 IBM Communications Server for Windows NT (CS/NT) にユーザー ID とパスワードを 定義 + 42.13.1 ノード定義 o 42.14 統合システムの制約 o 42.15 DataJoiner 制約 o 42.16 Hebrew Information Catalog Manager for Windows NT o 42.17 Microsoft SNA サーバー および SNA マルチ・サイト・アップデ ート (2 フェーズ・コミット) のサポート o 42.18 DB2 の SNA SPM が Windows ブート後に失敗します o 42.19 DB2 管理サーバーのロケール設定 o 42.20 ショートカットの不作動 o 42.21 Windows NT および Windows 2000 での DB2 に対するサービス・ アカウント要件 o 42.22 バージョン 6 で作成された照会パトローラー・ユーザー用の EXECUTE 特権の消失 o 42.23 照会パトローラーの制約事項 o 42.24 データウェアハウスセンター (DWC) で使用される すべてのユー ザー定義プログラムをコミットする必要があります o 42.25 データウェアハウスセンターのコマンド行エクスポートに対する 新規オプション o 42.26 バックアップ・サービス API (XBSA) o 42.27 OS/390 エージェント + 42.27.1 インストール概説 + 42.27.2 インストールの詳細 + 42.27.3 追加エージェント機能の設定 + 42.27.4 トリガー・プログラム (XTClient) によるウェアハウス・ ステップの スケジューリング + 42.27.5 トランスフォーマー + 42.27.6 DB2 製品ファミリー以外のデータベースのアクセス + 42.27.7 DB2 (OS/390 版) ユーティリティーの実行 + 42.27.8 レプリケーション + 42.27.9 エージェント・ログ記録 o 42.28 Windows NT 上でのクライアント・サイド・キャッシング o 42.29 Enterprise Edition UNIX CD-ROM の試用製品 o 42.30 DB2 コネクト エンタープライズ・エディション UNIX CD-ROM の 試用製品 o 42.31 データ・リンク・マネージャーの削除 o 42.32 SMIT を使用して DLFM 構成要素をアンインストールすると他のフ ァイル・セットも除去される可能性があります o 42.33 Windows 2000 で CLP を使用したときのエラー SQL1035N o 42.34 SQL Assist の機能強化 o 42.35 DB2 Linux の Gnome および KDE Desktop Integration o 42.36 Windows 2000 Terminal Server の管理モードでの DB2 の実行 o 42.37 バックアップおよび復元コマンドのオンライン・ヘルプ o 42.38 「ウェアハウス・マネージャー」は「DB2 ウェアハウス・マネー ジャー」のことです ------------------------------------------------------------------------ 一般情報 ------------------------------------------------------------------------ 42.1 DB2 ユニバーサル・データベース クィック・ツアー DB2 Linux または Linux/390 版ではクィック・ツアーは利用できません。 クィック・ツアーは、少ないシステム・フォントでも実行できるよう最適化されて います。 OS/2 のクィック・ツアーを正しく表示できるよう、お使いの Web ブラウ ザーのフォント・サイズを 調整する必要がある場合があります。 フォント・サイ ズの調整についての情報は、お使いの Web ブラウザーのヘルプをご参照ください。 クィック・ツアーを正しく表示するには (SBCS のみ)、8 ポイントの Helv フォン トのご使用をお勧めします。 日本語および韓国語をご利用のお客さまは、8 ポイン トの明朝フォントのご使用をお勧めします。 フォントの設定を変更する際は、「プ リファレンス」ウィンドウの「フォント」ページで 「デフォルト・フォントを使 用、ドキュメント指定のフォントを上書きする」のオプションが 選択されているこ とを確認してください。 場合によっては、クィック・ツアーが後に 2 つ目のブラウザー・ウィンドウを 立 ちあげます。この問題を解決するには、クィック・ツアーをクローズし、 以下の 2.4, Netscape を立ち上げようとした場合のエラー・メッセージ のステップにした がってください。 クィック・ツアーを立ち上げているときに、以下と同様の JavaScript エラーを受 信する場合があります: file:/C/Program Files/SQLLIB/doc/html/db2qt/index4e.htm, line 65: ウィンドウが定義されていません。 この JavaScript エラーは、クィック・ツアーが立ち上がった後、「クィック・ツ アーの 立ち上げ」ページ、index4e.htm が自動的に閉じるのを妨げます。 index4e.htm が 表示されているブラウザー・ウィンドウを閉じると、「クィック・ ツアーの立ち上げ」ページを 閉じることができます。 「変更された点」セクションの「データ管理」トピックでは、 「オンデマンド・ロ グ保存サポート」が、バージョン 7.1 でサポートされていると記述されています。 これはあてはまりません。 また、次の記述もあります。 ログ・ファイルのサイズは 4GB から 32GB に増えました。 この文は次のように訂正してください。 アクティブ・ログ・スペースの合計は 4GB から 32GB に増えました。 DB2 データ・リンク・マネージャーの記述をしているセクションには、 次の内容の 文があります。 NetBackup を使用したバックアップと復元を行うための Veritas XBSA イ ンターフェースの使用もサポートされるようになりました。 この文は次のように訂正してください。 また、ファイル保存と復元のために XBSA インターフェースをサポートする ようになりました。XBSA インターフェースをサポートする記憶管理機能には、 Legato NetWorker と Veritas NetBackup が含まれます。 ------------------------------------------------------------------------ 42.2 DB2 Everywhere は DB2 Everyplace に DB2 Everywhere の名称が DB2 Everyplace に変更になりました。 ------------------------------------------------------------------------ 42.3 マウスが必要 Windows を除くすべてのプラットフォームで、ツールを使用するためにマウスが必 要になります。 ------------------------------------------------------------------------ 42.4 「バインド・ファイルが見つかりません」のエラーで DB2 ランタイム・クラ イアント結果からバインドを試みる DB2 ランタイム・クライアントは、バインド・ファイルのフルセットを持っていな いので、 DB2 ランタイム・クライアントから GUI ツールのバインディングを行う ことはできません。 この操作は、DB2 管理クライアントのみ行うことができます。 ------------------------------------------------------------------------ 42.5 サーチ・ディスカバリー サーチ・ディスカバリーは、ブロードキャスト媒体上のみサポートされています。 たとえば、サーチ・ディスカバリーは ATM アダプターを介しては機能しません。 ただしこの制限は既知のディスカバリーには適用されません。 ------------------------------------------------------------------------ 42.6 HP-UX 11 のメモリー・ウィンドウ メモリー・ウィンドウは、ラージ HP 64 ビット・マシンで、32 ビット・アプリケ ーションの 共有メモリーの 1.75GB よりもたくさんのメモリーを利用したいユーザ ー向けです。 64 ビット・バージョンの DB2 を実行する場合、メモリー・ウィンド ウは必要ありません。 メモリー・ウィンドウは、処理ごとまたは処理のグループご とに、1 の共有メモリーが使用可能です。 これは、インスタンス独自の 1GB の共 有メモリーと、0.75GB のグローバル共有メモリーを所有することができます。 ユ ーザーがこれを利用したい場合、複数インスタンスを、それぞれ独自のウィンドウ で実行することができます。 メモリー・ウィンドウを使用する場合の前提条件と状 態は、次の通りです。 * DB2 EE 環境 o パッチ : 拡張ソフトウェア 12/98、および PHKL_17795 o $DB2INSTANCE 変数がインスタンスに設定されている o メモリー・ウィンドウで実行したい DB2 インスタンスごとに、 /etc/services.window ファイルに項目がある必要があります。 たとえ ば: db2instance1 50 db2instance2 60 注 : 名前と ID の間には、シングル・スペースがあるだけです。 o サーバーで実行、およびシングル・ステートメントより多くのものが必 要な DB2 コマンドは、 TCP/IP ループバック方式を使用して実行する必 要があります。 これは、メモリー・ウィンドウが最初のステートメント の処理を終了した時に、シェルが終了しているためです。 DB2 サービス は、この完了方法について認識しています。 o メモリー・ウィンドウで実行するインスタンスに対して、 実行したい DB2 コマンドは、db2win (sqllib/bin にあります) で 始まる必要があ ります。 たとえば: db2win db2start db2win db2stop o メモリー・ウィンドウの外側で実行される DB2 コマンド (メモリー・ウ ィンドウは実行中) は、 1042 を返す必要があります。 たとえば: db2win db2start <== OK db2 connect to db <==SQL1042 db2stop <==SQL1042 db2win db2stop <== OK * DB2 EEE 環境 o パッチ : 拡張ソフトウェア 12/98、および PHKL_17795 o $DB2INSTANCE 変数がインスタンスに設定されている o DB2_ENABLE_MEM_WINDOWS レジストリー変数は TRUE に設定されている必 要があります。 o メモリー・ウィンドウで実行したい各論理ノードの インスタンスごと に、/etc/services.window ファイルに 項目がある必要があります。 各 項目のはじめのフィールドはポート番号と連結した インスタンス名であ る必要があります。 たとえば: === $HOME/sqllib/db2nodes.cfg for db2instance1 === 5 host1 0 7 host1 1 9 host2 0 === $HOME/sqllib/db2nodes.cfg for db2instance2 === 1 host1 0 2 host2 0 3 host2 1 === /etc/services.window on host1 === db2instance10 50 db2instance11 55 db2instance20 60 === /etc/services.window on host2 === db2instance10 30 db2instance20 32 db2instance21 34 o db2win とともに、EE 環境内のみで使用されている DB2 コマンドに 前 置きを付ける必要はありません。 ------------------------------------------------------------------------ 42.7 dlfm client_conf のユーザー・アクションの失敗 DLFM クライアント上で、dlfm client_conf が何らかの理由で失敗した場合、 DB2 カタログの "stale" 項目が原因となっている場合があります。 その問題を解決す るには以下のコマンドを実行します: db2 uncatalog db db2 uncatalog node db2 terminate その後 dlfm client_conf を再実行してください。 ------------------------------------------------------------------------ 42.8 dlfm 停止時にコピー・デーモンが停止しないなど、まれな現象が発生した場 合 これは、ユーザーが dlfm を実行したか、または異常終了が発生したなどの場合に dlfm _copyd (コピー・デーモン) が 停止しないなど、非常にまれな状況で発生す ることがあります。 これが発生した場合、dlfm を再起動させようとする前に dlfm のシャットダウン命令を実行してください。 ------------------------------------------------------------------------ 42.9 DB2 DFS クライアント・イネーブラーのアンインストール DB2 DFS クライアント・イネーブラーがアンインストールされる前に、root は使用 中の DFS ファイルがないか、 DFS ファイル・スペースにあるシェルを開いている ユーザーがいないか、確認する必要があります。 root で、以下のコマンドを実行 します: stop.dfs dfs_cl /... が、マウントされていないことを確認してください: mount | grep -i dfs これが実行されていないと、DB2 DFS クライアント・イネーブラーがアンインスト ールされると、 マシンをリブートしなくてはなりません。 ------------------------------------------------------------------------ 42.10 Windows NT 上でのクライアントの認証 新規の DB2 レジストリー変数 DB2DOMAINLIST は、Windows NT 環境での既存のクラ イアント 認証メカニズムを補うために導入されました。 この変数は、複数の Windows NT 定義域を定義するため、Windows NT サーバーの DB2 上で使用します。 このリスト上で定義された定義域に属しているユーザーからの接続、または接続要 求のみ が受け入れられます。 このレジストリー変数は、DB2 サーバーおよびクライアントのバージョン 7 (また はそれ以降) が 稼働する純粋な Windows NT 定義域環境下でのみ使用するようにし てください。 このレジストリー変数を設定する際の情報については、管理の手引き: パフォーマ ンス の 「DB2 レジストリーと環境変数」のセクションを参照してください。 ------------------------------------------------------------------------ 42.11 fork 中にオートローダーが停止する場合があります AIX 4.3.3 には、オートローダーが fork 中に停止することが原因で発生する libc 問題のフィックスが含まれています。 オートローダーはマルチスレッド・プログラ ムです。 複数のスレッドの 1 つが他のプロセスへと分岐します。 子プロセスを分 岐するということは子プロセスに生成された 親プロセスのメモリーのようなイメー ジにつながります。 libc.a が、同じプロセス内のヒープから、マルチスレッドのメモリーの 割り振り を管理するために使用したロックが、非 fork スレッドに 保留されることは可能で す。 子プロセスに非 fork スレッドが存在しなくなると、 このロックは子プロセ スの中では解放されなくなります。 これは親プロセスがしばしば停止するためで す。 ------------------------------------------------------------------------ 42.12 DATALINK 復元 データベース復元後に行われるオフライン・バックアップの復元は、 ロールフォワ ードの有無にかかわらず、早急な処理の調整は行いません。 そのようなケースで は、ファイル・リンク制御下のデータ・リンク列を持つ全表は データ・リンク調整 保留 (DRP) 状態となります。 ------------------------------------------------------------------------ 42.13 IBM Communications Server for Windows NT (CS/NT) にユーザー ID とパス ワードを 定義 お使いの DB2 サーバーと DB2 クライアントとのリモート接続の通信プロトコルと して APPC をご使用になっている場合、また SNA 製品として CS/NT をご使用にな っている場合は、 以下のキーワードが CS/NT 構成ファイルに正しく設定されてい ることを確認して おきます。このファイルは通常以下のディレクトリーにあります x:\ibmcs\private ディレクトリー 42.13.1 ノード定義 TG_SECURITY_BEHAVIOR このパラメーターは、TP がセキュリティ用に構成されていない場合、このノ ードが ATTACH で、現行のセキュリティ情報をどのように扱うか、ユーザーが 決定できるように しています。 IGNORE_IF_NOT_DEFINED このパラメーターは、セキュリティ・パラメーターが ATTACH に存在するかど うかを判別し、 TP がセキュリティ用に構成されていない場合はそれらを無視 できるようにしています。 IGNORE_IF_NOT_DEFINED をお使いの場合、CS/NT でユーザー ID とパスワード を定義する必要は ありません VERIFY_EVEN_IF_NOT_DEFINED このパラメーターは、セキュリティ・パラメーターが ATTACH に存在するかど うかを判別し、 TP がセキュリティ用に構成されていない場合でも確認できる ようにしています。 これがデフォルトです。 VERIFY_EVEN_IF_NOT_DEFINED をお使いの場合、CS/NT でユーザー ID と パス ワードを 定義する必要があります。 CS/NT のユーザー ID およびパスワードを定義するには、以下のステップを実行し ます: 1. スタート --> プログラム --> IBM Communications Server --> SNA ノード構 成。「Communications Server 構成ウィンドウ へようこそ」が開きます。 2. 変更したい構成ファイルを選択する。「次へ」ボタンを クリックします。 「構成シナリオの選択」ウィンドウが開きます。 3. CPI-C、APPC または 5250 エミュレーションを反転表示する。 「終了」ボタ ンをクリックする。 Communications Server SNA ノード・ウィンドウが開き ます。 4. CPI-C と APPC のそばの [+] をクリックする。 5. LU6.2 Security のそばの [+] をクリックする。 6. ユーザー・パスワード上で右クリックし、「作成」を 選択する。「ユーザー ID パスワードの定義」ウィンドウが開きます。 7. ユーザー ID と パスワードを入力する。「了解」をクリックする。 変更を有 効にするため「終了」をクリックします。 ------------------------------------------------------------------------ 42.14 統合システムの制約 以下は、連合システムに適用される制約です: * Oracle データ・タイプである NCHAR、NVARCHAR2、NCLOB、および BFILE は、 ニックネームに関係する照会ではサポートされません。 * サーバー作成オプション、サーバー変更オプションおよびドロップ・サーバ ー・オプションのコマンドは コントロール・センターからの実行はサポート していません。 これらのコマンドを実行するには、コマンド行プロセッサー (CLP) を使用する必要があります。 * ニックネームを呼び出す照会では、DB2 UDB は通常、 DFT_SQLMATHWARN デー タベース構成オプションに従いません。 その代わり、DFT_SQLMATHWARN の設 定に関係なく、DB2 UDB はリモート・データ・ソースから 演算エラーか、警 告を直接戻します。 * CREATE SERVER OPTION ステートメントは、大文字小文字を区別しない照合シ ーケンスのデータ・ソースに 「I」 を設定する COLSEQ サーバー・オプショ ンを許可していません。 * ALTER NICKNAME ステートメントは、無効なオプションが指定されると SQL0901N を返します。 * Oracle、Microsoft SQL Server、および Sybase データ・ソース、数値デー タ・タイプは、 DB2 の BIGINT データ・タイプにはマップされません。 デフ ォルトでは、10 <= p <= 18、および s = 0 のような、Oracle の数値 (p,s) データは、 DB2 の DECIMAL データ・タイプにマップされます。 ------------------------------------------------------------------------ 42.15 DataJoiner 制約 統合環境内で実行された分散要求は、読み取り専用操作の制限が付与されていま す。 ------------------------------------------------------------------------ 42.16 Hebrew Information Catalog Manager for Windows NT The Information Catalog Manager component is available in Hebrew and is provided on the DB2 Warehouse Manager for Windows NT CD. The Hebrew translation is provided in a zip file called IL_ICM.ZIP and is located in the DB2\IL directory on the DB2 Warehouse Manager for Windows NT CD. To install the Hebrew translation of Information Catalog Manager, first install the English version of DB2 Warehouse Manager for Windows NT and all prerequisites on a Hebrew Enabled version of Windows NT. After DB2 Warehouse Manager for Windows NT has been installed, unzip the IL_ICM.ZIP file from the DB2\IL directory into the same directory where DB2 Warehouse Manager for Windows NT was installed. Ensure that the correct options are supplied to the unzip program to create the directory structure in the zip file. After the file has been unzipped, the global environment variable LC_ALL must be changed from En_US to Iw_IL. To change the setting: 1. Open the Windows NT Control Panel and double click on the System icon. 2. In the System Properties window, click on the Environment tab, then locate the variable LC_ALL in the System Variables section. 3. Click on the variable to display the value in the Value edit box. Change the value from En_US to Iw_IL. 4. Click on the Set button. 5. Close the System Properties window and the Control Panel. The Hebrew version of Information Catalog Manager should now be installed. ------------------------------------------------------------------------ 42.17 Microsoft SNA サーバー および SNA マルチ・サイト・アップデート (2 フ ェーズ・コミット) のサポート Microsoft SNA サーバーが、SNA 製品を使用している場合、ホストおよび AS/400 のアプリケーションは SNA 2 フェーズ・コミットを利用する DB2 UDB サーバー に、接続することができません。 サポートすると表記している DB2 UDB の資料 は、誤りです。 IBM Communications Server (Windows NT 版) バージョン 5.02 ま たはそれ以上が必須です。 注: Windows 版 DB2 UDB を使用するホストおよび AS/400 に接続するアプリケー ションは、 Microsoft SNA サーバーのバージョン 4 サービス・パック 3、ま たはそれ以上を使用する、SNA 2 フェーズ・コミットを 使用できます。 ------------------------------------------------------------------------ 42.18 DB2 の SNA SPM が Windows ブート後に失敗します Microsoft SNA サーバー、バージョン 4 SP 3 またはそれ以上を使用する場合、 DB2 の SNA SPM がリブート後、正しく開始したか確認してください。 ファイルの 入力項目が以下と類似している \sqllib\\db2diag.log ファイルを 確認してください。 2000-04-20-13.18.19.958000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:なし common_communication sqlccspmconnmgr_APPC_init プローブ:19 SPM0453C Microsoft SNA が始動していないため、同期点マネージャーが始動 しません。 2000-04-20-13.18.23.033000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:302 Appid:なし common_communication sqlccsna_start_listen プローブ:14 DIA3001E 「SNA SPM」 プロトコル・サポートは正常に開始されませんでした。 2000-04-20-13.18.23.603000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:なし common_communication sqlccspmconnmgr_listener プローブ:6 DIA3103E APPC プロトコル・サポートでエラーが発生しました。 APPC 動詞 「APPC(DISPLAY 1 BYTE)」。 1 次 rc は 「F004」 でした。 2 次 rc は 「00000000」 でした。 db2diag.log のファイルにそのような項目があり、そのタイム・スタンプが 最新の ものと一致している場合、次のように実行する必要があります: 1. db2stop を呼び出します。 2. SnaServer サービスを開始します (まだ開始していない場合)。 3. db2start を呼び出します。 db2diag.log ファイルを再び確認し、その項目が もう、追加されていないことを確 かめます。 ------------------------------------------------------------------------ 42.19 DB2 管理サーバーのロケール設定 DB2 管理サーバーのインスタンスのロケールが、DB2 インスタンスのロケールに対 して 互換性があるか確認してください。 そうでなければ、DB2 インスタンスは DB2 管理サーバーと通信することができません。 DB2 管理サーバーのユーザー・プロファイルで、LANG 環境変数が設定されていない と DB2 管理サーバーはデフォルトのシステム・ロケールで始動します。 デフォル トのシステム・ロケールが定義されていないと、DB2 管理サーバーはコード・ペー ジ 819 で 始動します。 DB2 インスタンスが DBCS ロケールの 1 つを使用し、DB2 管理サーバーがコード・ページ 819 で始動された場合、 そのインスタンスは DB2 管理サーバーと通信することができません。 DB2 管理サーバーのロケールと DB2 インスタンスのロケールは 互換性がある必要があります。 たとえば、中国語 (簡 体字) システムで 「LANG=zh_CN」 は、DB2 管理サーバーの ユーザー・プロファイ ルで設定されている必要があります。 ------------------------------------------------------------------------ 42.20 ショートカットの不作動 いくつかの言語で、UNIX ベース・システムおよび、OS/2 版のコントロール・セン ターの いくつかのキーボード・ショートカットが動作しない場合があります。 オ プションを選択する際はマウスを使用してください。 ------------------------------------------------------------------------ 42.21 Windows NT および Windows 2000 での DB2 に対するサービス・アカウント 要件 DB2 (Windows NT または Windows 2000 版) のインストール中に、 セットアップ・ プログラムは、いくつかの Windows サービスを作成し、このサービスごとにサービ ス・アカウントを割り当てます。 DB2 を正しく実行するには、セットアップ・プロ グラムは、DB2 に関連したサービス・アカウントに対して、 次のユーザー権限を付 与します。 * オペレーティング・システムの一部としての動作 * トークン・オブジェクトの作成 * 割り当て量の増加 * サービスとしてログオン * 処理レベル・トークンの置換 DB2 サービスに対して、別のサービス・アカウントを使用したい場合は、 このユー ザー権限をサービス・アカウントに付与する必要があります。 このユーザー権限の他に、サービス・アカウントは DB2 製品がインストールされて いるディレクトリーに対して、書き込みアクセスも必要です。 DB2 管理サーバー・サービス (DB2DAS00 サービス) に対するサービス・アカウント には、 他の DB2 サービスの開始および停止を行う権限 (つまり、サービス・アカ ウントが パワー・ユーザー・グループに属している必要があります。) と、DB2 が 管理する DB2 インスタンス に対する DB2 SYSADM 権限も必要となります。 ------------------------------------------------------------------------ 42.22 バージョン 6 で作成された照会パトローラー・ユーザー用の EXECUTE 特権 の消失 新規のストアード・プロシージャー (IWM.DQPGROUP、IWM.DQPVALUR、 IWM.DQPCALCT、および IWM.DQPINJOB) が 照会パトローラー バージョン 7 に追加 されたため、バージョン 6 で作成された既存の ユーザーは、このパッケージでの EXECUTE 権限を保持しません。 この問題を自動的に訂正するアプリケーションが、 フィックスパック 1 に追加されています。 DQP ユーザー情報を変更するために DQP Query Admin を使用しようとする 場合に は、ユーザー・リストから既存のユーザーを除去しないようにしてください。 ------------------------------------------------------------------------ 42.23 照会パトローラーの制約事項 JVM (Java 仮想計算機) のプラットフォーム制限により、照会イネーブラー は、 HP-UX および NUMA-Q ではサポートされていません。 また、照会パトローラー・ト ラッカーは NUMA-Q ではサポートされていません。 照会パトローラー・クライアン ト・ツールのすべてが必要な場合、 HP-UX または NUMA-Q サーバーに対して、この ツールを実行するには、Windows NT などの 別のプラットフォームを使用すること をお勧めします。 ------------------------------------------------------------------------ 42.24 データウェアハウスセンター (DWC) で使用される すべてのユーザー定義プ ログラムをコミットする必要があります DB2 ストアード・プロシージャー・ビルダーで作成されたストアード・プロシージ ャーを データウェアハウスセンター (DWC) のユーザー定義プログラムとして使用 したい場合は、 ストアード・プロシージャーの con.close(); ステートメントの前 に、次のステートメントを挿入してください : con.commit(); このステートメントが挿入されていないと、ストアード・プロシージャーが行った 変更は、ストアード・プロシージャーが DWC から実行される時にロールバックされ ます。 DWC のユーザー定義プログラムすべてが、 データベースに影響する変更用に、組み 込まれた DB2 機能を明白に コミットする必要があります。つまり、ユーザー定義 のプログラムに COMMIT ステートメントを追加する必要があります。 ------------------------------------------------------------------------ 42.25 データウェアハウスセンターのコマンド行エクスポートに対する新規オプシ ョン タグ・ファイルへのコマンド行のエクスポートに、新しいオプション /B が加わり ました。 このオプションは、データウェアハウスセンターのインターフェースから は使用できません。 iwh2exp2 コマンドの新規構文は次の通りです。 iwh2exp2 filename.INP dbname userid password [PREFIX=table_schema] [/S] [/R] [/B] ここで、 - filename.INP は、INP ファイルの全パス名 - dbname は、データウェアハウスセンターのコントロール・データベース名 - userid は、データベースにログオンするユーザー ID - password は、データベースにログオンするパスワード - 任意指定パラメーターは次の通りです。 - PREFIX=table_schema: コントロール・データベース表の表スキーマ (デフォルト値は IWH) - /S: 選択したステップでスケジュールをエクスポートする - /R: 選択したステップでウェアハウス・ソースをエクスポートしない - /B: 選択したステップで寄与したステップをエクスポートしない 注: /R または /B が指定されると、ウェアハウス・ソースまたは寄与したステッ プ は、結果のタグ・ファイルがインポートされるか、エラーが戻った時に、 すでに存在している必要があります。 ------------------------------------------------------------------------ 42.26 バックアップ・サービス API (XBSA) バックアップ・サービス API (XBSA) は、英国の Open Group によって、 バックア ップまたはアーカイブの目的で、データ記憶管理を必要とする アプリケーションま たは機能間のオープン・アプリケーション・プログラミング・インターフェース と して定義されています。 これは、"Open Group Technical Standard System Management: Backup Services API (XBSA)"、文書番号 C425 (ISBN: 1-85912-056-3) に記述があります。 このサポートでは 2 つの新しい DB2 レジストリー変数が作成され、 これらの変数 は現在、AIX、HP、Solaris、および Windows NT でサポートされています。 DB2_VENDOR_INI すべてのベンダー特定の環境設定を含むファイルを示します。 データベー ス・マネージャーが開始した時に、値が取り込まれます。 DB2_XBSA_LIBRARY ベンダーの提供する XBSA ライブラリーを示します。 AIX で、共有オブジェ クトが shr.o という名前でない場合は、 設定にそのオブジェクトを組み込む 必要があります。 HP、Solaris、Windows NT では、共有オブジェクト名は必 要ありません。 たとえば、Legato's NetWorker Business Suite Module for DB2 を使用するには、 レジストリー変数を次のように設定してください。 db2set DB2_XBSA_LIBRARY="/usr/lib/libxdb2.a(bsashr10.o)" XBSA インターフェースは、BACKUP DATABASE または RESTORE DATABASE コマンドか ら呼び出すことができます。 たとえば: db2 backup db sample use XBSA db2 restore db sample use XBSA ------------------------------------------------------------------------ 42.27 OS/390 エージェント この文書の内容。OS/390 およびその機能のインストール この文書で、OS/390 エージェントをインストールする方法を説明するとともに、 その機能について説明します。インストール処理について急いで調べるには「イン ストール概説」を、 また、手順の詳細については「詳しいインストール情報」を参 照してください。エージェントの 機能については、「追加エージェント機能の設 定」、「トランスフォーマー」、および 「DB2 製品ファミリー以外のデータベース のアクセス」を参照してください。 概説 DB2 ウェアハウス・センターには OS/390 エージェントが組み込まれています。 エ ージェントを使用すると、 DB2 ユニバーサル・データベース (OS/390 版) とその 他のデータベースの通信が可能になります (他のプラットフォームの DB2 データベ ースと DB2 データベース以外のデータベースを含みます)。 エージェントは、ODBC 接続を使用する、サポートされているデータ・ソースで通信する ことができます。 エージェントは、 OS/390 Unix システム・サービスで稼働します。OS/390 V2R6 ま たは それ以降が必要で、DB2 (OS/390 版) バージョン 5、6、および 7 と逆方向の 互換があります。 OS/390 エージェントは、以下のタスクをサポートします。 * ソース DB2 データベースからターゲット DB2 データベースへ、データをコピ ーする * 表またはファイルからのサンプル内容 * ユーザー定義プログラムの実行 * IBM DataJoiner からの DB2 以外のデータベースへのアクセス * Cross Access クラシック・コネクトからの VSAM または IMS データのアクセ ス * DB2 ユニバーサル・データベース (OS/390 版) ユーティリティーの実行 * IBM Data Propagator 用適用ジョブの実行 42.27.1 インストール概説 次のステップがインストール処理をサマリーします。これらのステップの詳細につ いては、 「詳しいインストール情報」セクションを参照してください。 1. DB2 ユニバーサル・データベース (OS/390 版) テープから OS/390 エージェ ントを インストールする。 2. プロファイル・ファイルにある環境変数を更新する。 3. 以下の接続をセットアップする。 o カーネルとエージェント・デーモン間の接続 o エージェントと、エージェントがアクセスするデータベース間の接続 4. プラン CLI をローカルにバインドし、リモート・データベースにバインドす る。 5. ODBC 初期設定ファイルを設定する。 6. ユーザーの許可を次のように設定する。 o エージェント・デーモンを実行できるようにする。 o プラン DSNAOCLI で権限を実行できるようにする。 o 必要なら、ログ記録および ODBC トレース・ディレクトリーに対して読 み取り/書き込み許可を実行できるようにする。 7. エージェント・デーモンの開始。 42.27.2 インストールの詳細 OS/390 エージェントのインストール OS/390 エージェントは、DB2 ユニバーサル・データベース (OS/390 版) バージョ ン 7 テープに組み込まれています。OS/390 エージェントのインストールの詳細に ついては、 テープに付随のプログラム・ディレクトリーを参照してください。 OS/390 エージェントをインストールする前に APAR (プログラム診断依頼書) PQ36585 または PQ36586 を DB2 サブシステムに適用する必要があります。 プロファイル・ファイルの環境変数を更新します。 エージェントが処理する DB2 ライブラリー、出力ディレクトリーなどは、 変数に よって決まります。 以下は、サンプル .profile ファイルの内容の例です。 .profile ファイルは環境 変数を定義し、 エージェント・デーモンを開始するユーザーのホーム・ディレクト リーにあります。 export VWS_LOGGING=/usr/lpp/DWC/logs export VWP_LOG=/usr/lpp/DWC/vwp.log export VWS_TEMPLATES=usr/lpp/DWC/ export DSNAOINI=/usr/lpp/DWC/dsnaoini export LIBPATH=usr/lpp/DWC/:$LIBPATH export PATH=/usr/lpp/DWC/:$PATH export STEPLIB=DSN710.SDSNEXIT:DSN710.SDSNLOAD 接続の設定 カーネルおよびデーモン接続をセットアップするには、/etc/services または TCPIP.ETC.SERVICES ファイルに 以下を追加してください。 vwkernal 11000/tcp vwd 11001/tcp vwlogger 11002/tcp OS/390 エージェントとデータベース間の接続をセットアップするには、 OS/390 コ ミュニケーション・データベース (CDB) に、リモート・データベースを 追加して ください。次に、サンプルの CDB insert を示します。 INSERT INTO SYSIBM.LOCATIONS (LOCATION, LINKNAME, PORT) VALUES ('NTDB','VWNT704','60002'); INSERT INTO SYSIBM.IPNAMES (LINKNAME, SECURITY_OUT, USERNAMES, IPADDR) VALUES ('VWNT704', 'P', 'O', 'VWNT704.STL.IBM.COM'); INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'MVSUID', 'VWNT704', 'NTUID', 'NTPW'); 接続の設定およびコミュニケーション・データベースの詳細は、 「DB2 UDB (OS/390) インストレーションの手引き 」(GC26-9008-00) の 「分散データベー ス・システムに接続」を参照してください。 CLI のバインディング OS/390 エージェントは CLI を使用して DB2 と通信を行うため、 エージェント・ プランがアクセスする予定のすべてのリモート・データベースに CLI プランを バ インドしておく必要があります。以下は、ローカルの DB2 データベース (OS/390 版) の バインド・パッケージ・ステートメントのサンプルです。 BIND PACKAGE (DWC6CLI) MEMBER(DSNCLICS) ISO(CS) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLINC) ISO(NC) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIRR) ISO(RR) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIRS) ISO(RS) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIUR) ISO(UR) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIMS) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIC1) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIC2) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIF4) Windows NT で稼働する DB2 データベースに対するバインド・パッケージ・ステー トメントのサンプルです: BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLICS) ISO(CS) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLINC) ISO(NC) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIRR) ISO(RR) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIRS) ISO(RS) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIUR) ISO(UR) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIC1) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIC2) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIQR) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIF4) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIV1) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIV2) CLI パッケージをプランでバインドするためのバインド・ステートメントの サンプ ルです: BIND PLAN(DWC6CLI) PKLIST(*.DWC6CLI.* ) ODBC 初期設定ファイルを次のように設定します。 サンプルの ODBC 初期設定ファイル inisamp は、usr/lpp/DWC/ ディレクトリーに 組み込まれています。このファイルをシステムで編集するか、または ご自分のファ イルを作成することもできます。このファイルが正しく動作するためには、 次の構 成が正しいか確認してください。 * DSNAOINI 環境変数は、初期設定ファイルを指している。 * ファイル名が dsnaoini.location_name の命名規則にしたがっている。 * ファイル名に CONNECTTYPE=2 および MVSATTACHTYPE=CAF パラメーターが 組 み込まれている。 CLI と DSNAOINI ファイルのバインドの詳細については、 「DB2 UDB (OS/390) ODBC の手引きと解説書 」 (SC26-9005) を ご覧ください。 ユーザーの許可を次のように設定します。 OS/390 エージェントは、デーモン・プロセスです。エージェント・デーモンを、通 常の UNIX セキュリティまたは OS/390 UNIX セキュリティで実行することができま す。 エージェントにはデーモン権限が必要なため、この実行可能なエージェントは、 RACF プログラム制御に以下のように定義されている必要があります。 * libtls4d.dll * iwhcomnt.dll * vwd 実行可能プログラムを RACF プログラム制御に定義するには、データウェアハウ ス・センターの 実行可能ファイルが保管されているディレクトリーに移動し、以下 のコマンドを実行します。 extattr +p libtls4d.dll extattr +p iwhcomnt.dll extattr +p vwd extattr コマンドを +p パラメーターで使用するには、 BPX.FILEATTR.PROGCTL FACILITY クラスに対して少なくとも読み取りアクセスが できなければなりませ ん。次の例は、ユーザー ID SMORG にこの権限を与えるために使用する RACF コマ ンドです。 RDEFINE FACILITY BPX.FILEATTR.PROGCTL UACC(NONE) PERMIT BPX.FILEATTR.PROGCTL CLASS(FACILITY) ID(SMORG) ACCESS(READ) SETROPTS RACLIST(FACILITY) REFRESH 許可の詳細については、「OS/390 UNIX システム・サービス 計画」、 SC28-1890 を参照してください。 エージェント・デーモンの開始 システムの構成を完了したら、エージェント・デーモンを開始してください。 1. OS/390 ホスト名と USS ポートから OS/390 上の UNIX システム・サービスに Telnet でログインする。 2. エージェント・デーモンを開始する。 o デーモンをフォアグラウンドで始動するには、コマンド行で vwd と入力 する。 o デーモンをバックグラウンドで始動するには、 vwd>/usr/lpp/DWC/logs/vwd.log 2>&1 & と入力する。 OS/390 エージェント・デーモンが実行されているかを確認するには、UNIX シェ ル・コマンド行で 次のように入力します。 ps -e | grep vwd または、OS/390 コンソールで D OMVS,a=all と入力し、ストリング vwd を探しま す。 42.27.3 追加エージェント機能の設定 DB2 ウェアハウス・マネージャー・パッケージには、以下のユーザー定義のプログ ラムが組み込まれています。 * vwpftp: FTP コマンド・ファイルを実行します。 * vwpmvs: JCL ジョブ・ストリームを実行依頼します。 * vwprcpy: FTP を使用してファイルをコピーします。 * XTClient: クライアント・トリガー・プログラムです。 * etidlmvs: A utility from ETI (Evolutionary Technologies International) のユーティリティーで、 MVS 上のファイルを削除します。 * etircmvs: ETI のユーティリティーで、MVS ホスト上の FTP を実行します。 * etiexmvs: ETI のユーティリティーで、MVS 上の JCL を実行します。 さらに、お客さまはユーザー定義のプログラムとストアード・プロシージャーを デ ータウェアハウス・センターに作成定義することができます。OS/390 エージェント は、 UNIX システム・サービスで動作する実行可能プログラムをサポートします。 ユーザー定義プログラムは、1 つ以上のステップに割り当てられます。ユーザー定 義プログラムを 実行すると、以下のアクションが発生します。 * エージェントが開始する。 * エージェントがユーザー定義プログラムを実行する。 * ユーザー定義のプログラムが戻りコードとフィードバック・ファイルを エー ジェントに返す。 * エージェントがカーネルに結果を返す。 ETI プログラムを OS/390 で実行するには、まずフィックスパック 2 を DB2 ユニ バーサル・ データベース・バージョン 7.1 に適用する必要があります。 VWP_LOG 環境変数を使用して、ユーザー定義のプログラムが出力を書き込むディレ クトリーを定義します。 FTP でジョブを実行依頼するためにユーザー定義のプログラムを使用する場合は、 まず実行依頼したい JCL とデータを 作成する必要があります。JCL のジョブ名は USERIDx でなければなりません (例: MYUSERA)。 JCL に含まれる MSGCLASS および SYSOUT ファイルの出力クラスには、JES 保留出力クラスを指定してください。 制約事項: 実行依頼されるジョブの最大 LRECL は 254 文字です。JES は JCL の最 初の 72 文字のみを走査します。 データウェアハウスセンター・テンプレートを FTP サポート用に変更 データウェアハウスセンターは、FTP を使用してファイルを転送するための JCL テ ンプレートを インストールします。OS/390 ホストから他のリモート・ホストへフ ァイルを転送するために、 FTP コマンド GET または PUT を OS/390 エージェント に使用させる場合は、 JCL テンプレートのアカウント情報を自分の OS/390 システ ム用に変更する必要があります。 1. /usr/lpp/DWC ディレクトリーのファイルをコピーおよび更新する許可を持つ ID で ログオンする。 2. ftp.jcl を見つけて新しいファイル名 systemname.ftp.jcl を複写する。 systemname は OS/390 システムの名前です。 3. 変換プログラム vwpmvs または ETI extract を実行したい OS/390 システム の それぞれについてこのファイルのコピーを作成する。たとえば、これらの プログラムのいずれかを STLMVS1 で 実行したい場合、STLMVS1.ftp.jcl とい う名前でファイルのコピーを作成します。 4. テキスト・エディターを使用して、サイトの要件に合った JCL をカスタマイ ズする。 アカウント情報を、ご使用の MVS システムの標準アカウント情報に 合わせて 変更してください。[USERID] や [FTPFILE] のように、大括弧に囲 まれているパラメーターは 変更しないでください。(大括弧はそれぞれ、16 進文字 x'AD' および x'BD' です。TSO 端末タイプを SPF オプション 0 で 3278A に設定していないと、これらの値は大括弧としてではなく、 特殊文字 として扱われます。x'AD' や x'BD'、またはこれらの文字間にあるデータを変 更しない場合、 これは問題ありません。) 5. 環境変数 VWS_TEMPLATES をコピーされた一時ファイルのディレクトリーを指 すように更新します。 データウェアハウスセンターには、次のサンプル JCL テンプレートが添付されてい ます。 //[USERID]A JOB , 'PUT/GET', // CLASS=A, // USER=&SYSUID, // NOTIFY=&SYSUID, // TIME=(,30), // MSGCLASS=H //STEP1 EXEC PGM=FTP,PARM='( EXIT' //INPUT DD DSN=[FTPFILE],DISP=SHR //OUTPUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* Sampling contents of a table or file OS/390 エージェントを使用して、UNIX システム・サービスのフラット・ファイル および OS/390 固有のフラット・ファイルのようなフラット・ファイルの内容を抽 出することが できます。 また、OS/390 エージェントを使用したクラシック・コネ クトから、IMS または VSAM ファイルの内容を抽出することもできます。フラッ ト・ファイルでは、エージェントはファイル定義のプロパティーのパラメーターに 基づいてファイル形式を判別します。 42.27.4 トリガー・プログラム (XTClient) によるウェアハウス・ステップの スケ ジューリング トリガー・プログラムを使用して、OS/390 プラットフォームからウェアハウス・ス テップを スケジュールすることができます。ユーザーまたは OS/390 ジョブ・スケ ジューラーは、 データウェアハウス・センターでステップを起動するジョブを実行 依頼できます。ステップが正常に行われた場合、 JCL のトリガー・ステップは戻り コード 0 を返します。 トリガー・プログラムを使用するには、Java Development Kit (JDK) 1.1.8 または それ 以降が OS/390 UNIX システムにインストールされていることが必要です。ト リガーを実行するには、 まずウェアハウス・サーバーが実行されているマシンで XT サーバーを始動してください。このプロセスは、 「データウェアハウスセンタ ー 管理の手引き 」の第 5 章、 「データウェアハウスセンター外部からのステッ プの開始」のトピックを参照してください。 XT サーバーが始動した後、OS/390 で XT クライアントを 始動してください。次の例は、トリガーを開始する サンプル JCL です。 //DBA1A JOB 1,'XTCLIENT',CLASS=A,MSGCLASS=H, // MSGLEVEL=(1,1),REGION=4M,NOTIFY=&SYSUID //****************************************************** //* submit iwhetrig //****************************************************** //BRADS EXEC PGM=BPXBATCH, // PARM=('sh cd /usr/lpp/DWC/; java XTClient 9.317.171.133 1100x // 9 drummond pw bvmvs2nt 1 1 100') //STDOUT DD PATH='/tmp/xtclient.stdout', // PATHOPTS=(OWRONLY,OCREAT), // PATHMODE=SIRWXU //STDERR DD PATH='/tmp/xtclient.stderr', // PATHOPTS=(OWRONLY,OCREAT), // PATHMODE=SIRWXU // 注: 上記の サンプル JCL コードは、新しい行にパラメーターを継続する方法を示 しています。行を継続するには、パラメーターを 71 桁まで入力し、72 桁目 に 'X' を入れて、 次の行の 16 桁に続けます。 パラメーターの最初の部分 (cd /usr/lpp/DWC/;) は、OS/390 エージェントが イン ストールされているディレクトリーに変更するステートメントです。パラメーター の 2 番目の部分は、 XTClient を実行し、以下の 8 パラメーターを渡します。 * データウェアハウス・センター・サーバー・ホスト名または IP アドレス * データウェアハウス・センター・サーバー・ポート (通常は 11009) * データウェアハウス・センター・ユーザー ID * データウェアハウス・センター・パスワード * 実行するステップの名前 * データウェアハウス・センター・サーバー・コマンド。説明: o 1 = ステップの取り込み o 2 = ステップをテスト・モードにプロモート o 3 = ステップを実動モードにプロモート o 4 = ステップをテスト・モードにデモート o 5 = ステップを開発モードにデモート * ステップ完了を待機するかどうかのオプション。1= はい、0 = いいえ * 最大行数 (すべての行を取り出すには 0 またはブランクを使用) 42.27.5 トランスフォーマー 入門 これらの 12 のトランスフォーマーは、基本的なデータ形式変更を行う Java スト アード・プロシージャーです。これらのトランスフォーマーを実行するには、 まず DB2 サブシステムの Java ストアード・プロシージャーを設定します。これらの ト ランスフォーマーの追加情報については、 IBM DB2 Universal Database Data Warehouse Center Administration Guide Version 7、SC26-9993-00 を 参照してく ださい。 IWH.CLEAN IWH.PERIODTABLE IWH.KEYTABLE IWH.CHISQUARE IWH.CORRELATION IWH.STATISTICS IWH.INVERTDATA IWH.PIVOTDATA IWH.REGRESSION IWH.ANOVA IWH.SUBTOTAL IWH.MOVINGAVERAGE ストアード・プロシージャーの設定 以下の説明は、Java ストアード・プロシージャーの設定に関する詳細説明を 簡潔 にまとめたものです。詳細説明については、「Application Programming Guide and Reference for Java(TM)、SC26-9018」を参照してください。 1. DB2 サブシステムに PTF、UQ46170 および UQ46114 を適用する。 2. Age for Java 2.0 またはそれ以降を OS/390 システムにインストールする。 3. DB2 に JDBC をインストールし、DB2 サブシステムで JDBC パッケージをバイ ンドする。 4. DB2 サブシステムの RRS および DB2 WLM ストアード・プロシージャーを設定 する。 5. DB2 の Java ストアード・プロシージャーを設定する。これには、 Java スト アード・プロシージャーのアドレス空間への Java WLM 始動プロシージャーの 作成が 含まれます。 6. WLM で、Java WLM 始動プロシージャーを WLM 環境名と関連付ける。「アプリ ケーション環境の 作成」という WLM アプリケーション環境パネルを使って、 環境名を JCL プロシージャーに関連付けます。 7. CREATE または ALTER PROCEDURE で WLM_ENVIRONMENT オプションの WLM アプ リケーション 環境名を指定して、ストアード・プロシージャーまたはユーザ ー定義関数をアプリケーション環境に関連付ける。 8. タスクを開始した DB2 所有者が Java WLM 始動プロシージャーのライブラリ ーに アクセスできることを確認する。 ウェアハウス・トランスフォーマーの設定ステップ 以下の説明は詳細説明を簡潔にまとめたものです。詳細説明については、 「IBM DB2 Universal Database Data Warehouse Center Administration Guide Version 7, SC26-9993-00」を 参照してください。 1. フィックスパック 3 を DB2 ユニバーサル・データベース (NT 版) バージョ ン 7 に適用するか、 ウェアハウス・コントロール・データベースを TRANSREGISTERED = 1 および TRANSFENCED=1 に 更新する。 ウェアハウス・コントロール・データベースを更新するには、 以下の SQL を DB2 ユニバーサル・データベースのコマンド行プロセッサーで入力します。 CONNECT TO your_vw_control_database UPDATE IWH.INFORESOURCE SET TRANSREGISTERED = '1' WHERE SUBDBTYPE = 'DB2 MVS' UPDATE IWH.INFORESOURCE SET TRANSFENCED = '1' WHERE SUBDBTYPE = 'DB2 MVS' 2. トランスフォーマーを DB2 に定義する。 o DB2 (OS/390 版) バージョン 7 の場合は、/usr/lpp/DWC/createXfSQLV7 で SQL ステートメントを使用する。 o DB2 (OS/390 版) バージョン 6 の場合は、 /usr/lpp/DWC/createXfSQL で SQL ステートメントを使用する。 o DB2 (OS/390 版) バージョン 5 の場合は、 /usr/lpp/DWC/createXfSQL で 注釈を付けた SQL ステートメントを 使用する。CREATE PROCEDURE ステートメントのすべてに注釈を付けます。次に、 INSERT INTO SYSIBM.SYSPROCEDURES ステートメントをアンコメントしてから、 この ステートメントを使って トランスフォーマーを DB2 (OS/390 版) バー ジョン 5 に 定義します。 Java ストアード・プロシージャーを設定するときに、WLM を使用して Java WLM 始動プロシージャーを WLM 環境名に関連付けます。この環境名は、 CREATE PROCEDURE ステートメントの WLM ENVIRONMENT オプションで 指定さ れます。DSNWLMJ は、上記で説明したトランスフォーマー定義で組み込まれる WLM 環境名です。DSNWLMJ の WLM 関連名を追加するか、それぞれの トランス フォーマー定義の WLM ENVIRONMENT オプションを始動プロシージャーに すで に関連付けてある名前に変更することができます。 3. UNIX システム・サービスからのリンクを IWH710.SIWHLOAD の トランスフォ ーマー・ロード・モジュールに設定する。 o OS/390 ホスト・システム上の UNIX システム・サービスに Telnet でロ グインする。 o OS/390 エージェントがインストールされているディレクトリーに変更す る。デフォルトの インストール・ディレクトリーは /usr/lpp/DWC で す。 o DB2 V7 をお使いの場合は、ステップ 4 に移ります。DB2 V5 または V6 を お使いの場合は、インストール・ディレクトリーの trlinks デー タ・セットを 編集します。列 1、 ln -e IWHXFV7 xf.jll; 、にポンド記号 (#) を書き込んで、 この行をコメントにします。列 1、 #ln -e IWHXF xf.jll; のポンド記号 (#) を 除去して、この行をアンコメントします。変更点 を保管します。 o trlinks と入力し、ENTER を押す。これでディレクトリーに、IWHXF ま たは IWHXFV7 モジュールのロードをエージェントに指示する xf.jll リ ンクが作成されます。 4. IWH710.SIWHPDSE を APF 許可してから、それを、 DB2 Java ストアード・プ ロシージャーの始動プロシージャーの STEPLIB 連結に 追加する。 5. xf.jll リンクが (デフォルト: /usr/lpp/DWC) ある ディレクトリーを WLM 環境データ・セットの CLASSPATH および LIBPATH 環境変数に 追加する。 o WLM 環境データ・セットの位置がわからない場合は、DB2 Java ストアー ド・プロシージャーの 始動プロシージャーを調べてください。WLM 環境 データ・セットは、JAVAENV DD カードが 指しているものです。 6. ストアード・プロシージャーを始動してから、ウェアハウス・ステップの作成 と実行を行なう。 Java ストアード・プロシージャーの制約事項 DB2 (OS/390 版) バージョン 7 でサポートされるのは、ストアード・プロシージャ ーの Java オブジェクトのみです。したがって、トランスフォーマーは、 DB2 (OS/390 版) バージョン 5 または 6 では、トランスフォーマーのパラメーターの NULL 値を サポートしません。これらのバージョンでは、ヌル・パラメーターを渡 すと、ゼロと同様の動作を します。バージョン 5 および 6 のトランスフォーマー は、ゼロ・パラメーターを ヌル・ストリングと同様に扱います。 DB2 がストアード・プロシージャーの COMMIT SQL ステートメントをサポートする のは、 DB2 (OS/390 版)バージョン 7 のみです。INVERTDATA ストアード・プロシ ージャーは、 ストアード・プロシージャー内の表をドロップして再作成します。し たがって、 INVERTDATA ストアード・プロシージャーにはコミット・ステートメン トが必須です。そのため、 IWH.INVERTDATA は DB2 (OS/390 版) バージョン 5 ま たは 6 でサポートされません。 DB2 (OS/390 版) は Java ユーザー定義関数をサポートしません。したがって、 IWH.FORMATDATE は 390 プラットフォームでサポートされません。 Java ストアード・プロシージャー用のサンプル始動 PROC (コマンド・プロシージ ャー) (「DB2 (OS/390 版) Application Programming Guide and Reference for Java」の 説明を参照) //DSNWLMJ PROC DB2SSN=DSN,NUMTCB=5,APPLENV=DSNWLMJ <-- CREATE PROC 内の WLM ENVIRONMENT 値 //******************************************************************* //* THIS PROC IS USED TO START THE WLM-ESTABLISHED SPAS * //* ADDRESS SPACE FOR THE DSNWLMJ APPLICATION ENVIRONMENT * //* V WLM,APPLENV=DSNWLMJ,RESUME * //******************************************************************* //DSNWLMJ EXEC PGM=DSNX9WLM,TIME=1440,REGION=0M, // PARM='&DB2SSN, &NUMTCB, &APPLENV' //STEPLIB DD DSN=DSN.TESTLIB,DISP=SHR // DD DSN=IWH710.SIWHPDSE,DISP=SHR <-- ここにはトランスフォーマーがあります // DD DSN=DSN.HPJSP.PDSE.JDBC,DISP=SHR <-- HPJ セットアップからの HPJ DLL // DD DSN=SYS1.PP.PDSELINK,DISP=SHR <-- HPJ ランタイム・ライブラリー // DD DSN=DSN710.SDSNEXIT,DISP=SHR // DD DSN=DSN710.SDSNLOAD,DISP=SHR // DD DSN=SYS1.SCEERUN,DISP=SHR // DD DSN=DSN.PDSE,DISP=SHR <-- HPJ セットアップ情報 //JAVAENV DD DSN=DSN.WLMENVJ.JSPENV,DISP=SHR <-- 環境変数。下記参照 //CEEDUMP DD SYSOUT=A //DSSPRINT DD SYSOUT=A //JSPDEBUG DD SYSOUT=A //SYSABEND DD SYSOUT=A //SYSPRINT DD SYSOUT=A サンプル環境変数データ・セット (「DB2 (OS/390 版) Application Programming Guide and Reference for Java」の 説明を参照) ENVAR("TZ=PST07", "DB2SQLJPROPERTIES=/usr/lpp/db2/jdbc/db2710/classes/db2sqljjdbc.properties", "LIBPATH=/usr/lpp/DWC", "VWSPATH=/usr/lpp/DWC", "CLASSPATH=/usr/lpp/db2/jdbc/db2710/classes:/usr/lpp/DWC:/usr/lpp/hpj/lib"), MSGFILE(JSPDEBUG) トランスフォーマーのナショナル・ランゲージ・サポート OS/390 エージェントが生成するほとんどのメッセージは NT プラットフォームに送 信されて インタープリットされます。したがって、ほとんどの場合、メッセージ言 語は NT の UDB の インストール方法によって異なります。トランスフォーマーは 例外です。OS/390 エージェントには 以下のトランスフォーマー用メッセージ・フ ァイルが添付されています。 ファイル名: 対応言語 Xf.properties_Fi_FI フィンランドのフィンランド語 Xf.properties_No_NO ノルウェーのノルウェー語 Xf.properties_Ru_RU ロシアのロシア語 Xf.properties_Zh_CN 中国 (中華人民共和国) の中国語 Xf.properties_Zh_TW 台湾の中国語 Xf.properties_Da_DK デンマークのデンマーク語 Xf.properties_De_DE ドイツのドイツ語 Xf.properties_En_US 米国の米国英語 Xf.properties_Es_ES スペインのスペイン語 Xf.properties_Fr_FR フランスのフランス語 Xf.properties_It_IT イタリアのイタリア語 Xf.properties_Ja_JP 日本の日本語 Xf.properties_Ko_KR 韓国の韓国語 Xf.properties_Pt_BR ブラジルのポルトガル語 Xf.properties_Sv_SE スウェーデンのスウェーデン語 トランスフォーマーのメッセージを英語以外にするには、上記のファイルの 1 つを 選択して、その内容を Xf.properties にコピーしてください。 42.27.6 DB2 製品ファミリー以外のデータベースのアクセス DB2 ユニバーサル・データベース以外のシステムにアクセスするために、OS/390 エ ージェントは DataJoiner を使用します。DataJoiner により、エージェントは UDB データベースと同様に、 通常の DRDA の流れを使用できます。ODBC 要求が DB2 以 外のソースに向けられている場合、 DataJoiner は外部のデータベースにアクセス する追加のコード層を呼び出します。 DataJoiner は、Oracle、Sybase、Informix、Microsoft SQL Server、Teradata、お よび Windows NT、 AIX または Sun の Solaris 操作環境で動作する ODBC ドライ バーを持つその他のデータベースに アクセスすることができます。OS/390 エージ ェントは DataJoiner に、ターゲットとしてではなく、ソースとして アクセスする ことができます。DataJoiner は 2 フェーズ・コミットをサポートしません。 DataJoiner は バージョン 2.1 および 2.1.1 でアプリケーション・リクエスター として TCP/IP をサポートしますが、 アプリケーション・サーバーは持っていませ ん。OS/390 エージェントは TCP/IP を使用するための アプリケーション・サーバ ーが必要なので、OS/390 から DataJoiner にアクセスする代わりに、 SNA 接続を 使用してください。 OS/390 上の IMS および VSAM のアクセス クラシック・コネクトは、ウェアハウス・エージェントから 別々に購入し、インス トールされます。OS/390 エージェントは、クラシック・コネクト ODBC ドライバー から、 IMS および VSAM にアクセスすることができます。クラシック・コネクトを 使用すれば、 IMS と VSAM データ・セットを DB2 の定義のようにセットアップ し、ODBC を使用して アクセスすることができます。 OS/390 エージェントには、要求がクラシック・コネクトに対するものか、または DB2 に 対するものかに基づいて、適切な ODBC ドライバーをロードします。DB2 ソ ースにアクセスしている場合は、 エージェントは DB2 ODBC ドライバーをロードし ます。VSAM または IMS ソースにアクセスしている場合には、 エージェントはクラ シック・コネクト ODBC ドライバーをロードします。ロードされると、エージェン トの要求が処理されます。 クラシック・コネクト ODBC ドライバーとウェアハウス・アクセスのセットアップ クラシック・コネクトは、OS/390 エージェントとは別個に購入してインストールし ます。 クラシック・コネクトは、シングル・ファイルまたはファイルの一部を、 1 つ以上のリレーショナル表として表示することができます。クラシック・コネクト にアクセスするには、 クラシック・コネクトの IMS および VSAM データをマップ する必要があります。手動でデータをマップするか、 Microsoft Windows Classic Connect の非リレーショナル・データ・マッパーを使用することができます。 1. クラシック・コネクト・データ・サーバーの OS/390 へのインストール 2. オプション: クラシック・コネクト・データ・マッパー製品の NT へのインス トール 3. クラシック・コネクトがデータにリレーショナル・アクセスできるように、ク ラシック・コネクトの 論理表定義を定義する。データ・マッパーを使用し て、IMS および VSAM 構造の定義を 作成したり、または定義を手動で作成で きます。 4. クラシック・コネクトをセットアップすると、ウェアハウスにアクセスをセッ トアップすることができます。 a. クラシック・コネクトの .ini ファイルを作成する。 サンプルの クラシック・コネクト・アプリケーション構成ファイル cxa.ini は、 /usr/lpp/DWC/ ディレクトリーにあり、ここで複製されま す。 * national language for messages NL = US English * resource master file NL CAT = usr/lpp/DWC/v4r1m00/msg/engcat FETCH BUFFER SIZE = 32000 DEFLOC = CXASAMP USERID = uid USERPASSWORD = pwd DATASOURCE = DJX4DWC tcp/9.112.46.200/1035 MESSAGE POOL SIZE = 1000000 b. .ini ファイルにある DATASOURCE 行を 更新する。この行には、デー タ・ソース名とプロトコル・アドレスが含まれています。データ・ソー ス名は、 クラシック・コネクト・データ・サーバーで定義された照会プ ロセッサーの名前 (データ・サーバーの config ファイルにある QUERY PROCESSOR SERVICE INFO ENTRY にあります) に 対応している必要があ ります。プロトコル・アドレスは同じファイルの TCP/IP SERVICE INFO 項目にあります。 このファイルの USERID と USERPASSWORD は、ウェア ハウス・データ・ソースを 定義する時に使用されます。 c. CXA_CONFIG 環境変数をクラシック・コネクトのプログラム・ファイルに エクスポートする。 このファイルは通常、.ini ファイルと同じディレ クトリーにあります。 d. LIBPATH 環境変数を更新して、パスをクラシック・コネクトのプログラ ム・ファイルに 組み込みむ。このファイルは通常、.ini ファイルと同 じディレクトリーに あります。 e. オプション: テスト・プログラム cxasamp でインストールを検査する: .ini ファイルが含まれているディレクトリーから cxasamp と 入力しま す。 location/uid/pwd は、.ini ファイルで定義された データ・ソー ス name/userid/userpassword です。 f. データ・ソースを、DB2 を定義するときと同様に、ウェアハウスに定義 します。 DB2 (OS/390 版) にはドライバー・マネージャーがないため、dsnaoini ファイルを 更新する必要はありません。クラシック・コネクトのドライバー・マネージャー は、OS/390 エージェントに 作成されます。 42.27.7 DB2 (OS/390 版) ユーティリティーの実行 エージェントを使用してユーティリティーを実行するには、apar PQ44904 を OS/390 エージェントに 適用する必要があります。 DSNUTILS は、WLM および RRS 環境で実行される DB2 (OS/390 版) ストアード・プ ロシージャー です。これを使うと、ユーザー定義のストアード・プロシージャー・ インターフェースを使用してインストールした DB2 ユーティリティーを実行するこ とができます。DB2 (OS/390 版) の LOAD、REORG および RUNSTATS ユーティリティ ーには、ユーティリティーの実行方法を変更するために使用できる プロパティー・ シートが含まれています。ユーティリティーのプロパティーを変更するには、 「プ ロセス・モデラー」ウィンドウで目的のユーティリティーを右クリックし、 「プロ パティー」をクリックします。 ウェアハウス・マネージャーのステップにも、DB2 ユーティリティーを含む DSNUTILS への インターフェースが提供されています。 DSNUTILS ストアード・プロシージャーのセットアップ手順は以下の通りです。 1. DB2 をインストールする際に、DSNTIJSG ジョブを実行して、DSNUTILS ストア ード・プロシージャーを 設定してバインドします。DSNUTILS の定義に PARAMETER STYLE GENERAL があることを 確認してください。 2. WLM 管理のストアード・プロシージャーを使用可能にする。 3. RRS および WLM 環境をセットアップする。 4. DB2 によって提供されているサンプル・バッチ DSNUTILS プログラムを 実行 する。(このステップは推奨ではありませんが必須です。) 5. DSNUTILS プランと、DSNCLI プランをバインドし、CLI がストアード・プロシ ージャーを 呼び出すことができるようになります: BIND PLAN(DSNAOCLI) PKLIST(*.DSNAOCLI.*, *.DSNUTILS.*) 6. ウェアハウス・マネージャーを使用してステップをセットアップし、 そのス テップを実行する。移植タイプは APPEND です。そうしないと、 ウェアハウ ス・マネージャーは、ユーティリティーの実行前に、表の中のすべてを 削除 してしまいます。 LOAD ユーティリティーを使用して DB2 (OS/390 版) 表の間で データをコピー 表をフラット・ファイルにアンロードし、そのフラット・ファイルを別の表に ロー ドして、表をコピーしたいとします。表の間でデータをコピーするには通常、 デー タをアンロードし、アンロードによって生成されるロード制御ステートメントを 編 集してから、そのデータをロードします。ウェアハウスを使用すると、ステップと ステップの間で中断して制御ステートメントを手動で編集することなく、別の表へ のロードを 指定できます。それには、Reorg/Generic インターフェースを使用し て、 UNLOAD ユーティリティーまたは REORG TABLESPACE ユーティリティーを使っ てファイルを アンロードするステップを作成します。この 2 つのユーティリティ ーは いずれも、2 つの出力データ・セットを生成します。1 つは表データを持つも の、もう 1 つは LOAD に入力できるユーティリティー制御ステートメントを持つも のです。ユーティリティーが生成する 制御ステートメントの INTO TABLE 表名は、 アンロードされる表の名前です。以下に、 Reorg アンロード ステップに使用でき る DSNUTILS パラメーターを示します。 表 33. Reorg アンロード・ステップのプロパティー UTILITY_ID REORGULX RESTART NO UTSTMT REORG TABLESPACE DBVW.USAINENT UNLOAD EXTERNAL UTILITY_NAME REORG TABLESPACE RECDSN DBVW.DSNURELD.RECDSN RECDEVT SYSDA RECSPACE 50 PNCHDSN DBVW.DSNURELD.PNCHDSN PNCHDEVT SYSDA PNCHSPACE 3 Reorg/Generic DSNUTILS インターフェースを使用してロード・ステップを 作成し ます。通常、DSNUTILS ステートメント・ステートメント・パラメーターは、 ユー ティリティー制御ステートメントを指定します。ウェアハウス・ユーティリティ ー・インターフェースでも、 ユーティリティー・ステートメント・フィールドにフ ァイル名を指定できます。 キーワード FILE を使って有効な制御ステートメントを 含むファイルを指定できます。また、 キーワード TABLE を使ってロードしたい表 の名前を指定できます。前の例からの出力を操作 するために LOAD ユーティリティ ーを使用するには、 LOAD プロパティーにある以下のパラメーター値を適用しま す。 注: UTSTMT フィールドには、ロード・ステートメントまたは UNLOAD EXTERNAL オ プションを 指定して実行した REORG ユーティリティーの出力ファイルの名前 を入力します。 表 34. LOAD ステップ・プロパティー UTILITY_ID LOADREORG RESTART NO UTSTMT :FILE:DBVW.DSNURELD.PNCHDSN:TABLE:[DBVW].INVENTORY UTILITY_NAME LOAD RECDSN DBVW.DSNURELD.RECDSN RECDEVT SYSDA 上記は、同一または異なる DB2 サブシステムのあらゆる DB2 (OS/390 版) ソース および ターゲット表に対して有効です。制御ステートメント・フラット・ファイル は、HFS または固有の MVS ファイルの いずれかです。 OS/390 で使用可能な DSNUTILS および DB2 ユーティリティーの詳細は、 「DB2 (OS/390 版) ユーティリティーの手引きおよび解説書」を参照してください。 42.27.8 レプリケーション OS/390 エージェントを使用して、Data Propagator レプリケーションの適用ステッ プを自動化することができます。 レプリケーションには、ソース・データベース、 コントロール・データベース、およびターゲット・データベースが必要です。 これ らは異なるデータベースである場合と、同じデータベースである場合があります。 キャプチャー・ジョブは、 DB2 ジョブを読み取り、ソース・データベースにどの行 が追加、更新または変更されたかを 判別します。次にジョブは、この変更を変更済 みデータの表に書き込みます。次に、適用ジョブが変更をターゲット・データベー スに適用するために実行されます。 DB2 ウェアハウス・マネージャー・パッケージ は、レプリケーション・ステップを作成して、適用ジョブの実行を 自動化すること ができます。ウェアハウス・マネージャーを使って、実行する適用ジョブのタイプ と実行時期を 定義することができます。ご使用の SASNLINK ライブラリーを steplib 環境変数に エクスポートしてください。 データウェアハウス・センター・テンプレートへのレプリケーション・サポートの 追加 データウェアハウスセンターには、レプリケーション・サポートのための JCL テン プレート があります。この OS/390 エージェントを使用してアプライ・プログラム を実行する場合は、 OS/390 システム用にこのテンプレート内のアカウントおよび データ・セット情報を変更する 必要があります。テンプレートを変更するには、次 のようにします。 1. /usr/lpp/DWC/ ディレクトリーのファイルをコピーおよび更新する許可を持つ ID で ログオンする。 2. apply.jcl を見つけてこのファイルを systemname.apply.jcl として コピー する。systemname は MVS システムの名前です。たとえば、 STLMVS1 にいる 場合は、STLMVS1.apply.jcl というファイルのコピーを 作成します。 3. テキスト・エディターを使用して、サイトの要件に合った JCL をカスタマイ ズします。 アカウント情報を、ご使用の MVS システムの標準アカウント情報 に合わせて変更し、 また STEPLIB DD および MSGS DD のデータ・セットを変 更してください。 4. 必要なら、EXEC カードのプログラム名を変更してください。プログラム名の 変更について 詳しくは、「DB2 レプリケーションの手引きおよび解説書 」を 参照してください。[USERID] や [APPLY_PARMS] のように、 大括弧に囲まれ ているパラメーターは変更しないでください。(大括弧はそれぞれ、 16 進文 字 x'AD' および x'BD' です。TSO 端末タイプを SPF オプション 0 で 3278A に 設定していないと、これらの値は大括弧としてではなく、特殊文字として 扱われます。x'AD' や x'BD'、 またはこれらの文字間にあるデータを変更し ない場合、これは問題ありません。) 5. 環境変数 VWS_TEMPLATES をコピーされた一時ファイルのディレクトリーを指 すように更新します。 次の例は、データウェアハウスセンターに添付されている JCL テンプレートです。 適用 JCL テンプレート: //[USERID]A JOB ,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=2M,TIME=1440,NOTIFY=&SYSUID //* DON'T CHANGE THE FIRST LINE OF THIS TEMPLATE. //* THE REMAINING JCL SHOULD BE MODIFIED FOR YOUR SITE. //********************************************** //* RUN APPLY/MVS ON OS/390 DB2 6.1 * //********************************************** //ASNARUN EXEC PGM=ASNAPV66,REGION=10M, // [APPLY_PARMS] //STEPLIB DD DISP=SHR,DSN=DPROPR.V6R1M0.SASNLINK // DD DISP=SHR,DSN=DSN610.SDSNLOAD //MSGS DD DSN=DPROPR.V2R1M0A.MSGS,DISP=SHR //ASNASPL DD DSN=&&ASNASPL,DISP=(NEW,DELETE,DELETE), // UNIT=SYSDA,SPACE=(CYL,(10,1)), // DCB=(RECFM=VB,BLKSIZE=6404) //SYSTERM DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=*// 42.27.9 エージェント・ログ記録 サーバー、ロガー、エージェント、および 一部のデータウェアハウス・センター・ プログラムのような 多くの DB2 ウェアハウス・マネージャー・コンポーネント は、VWS_LOGGING 環境変数で指定された ログ記録用ディレクトリーにログを書き込 みます。これらのログ・ファイルはプレーン・テキストです。 データウェアハウス・センターからエージェントのログ記録を開始できます。左側 のペインで、 「ウェアハウス」を右クリックして、「プロパティー」を クリック します。「トレース・レベル」タブで、希望するトレース・レベルに設定を 変更し ます。エージェント・トレースはレベル 0-4 をサポートします: * レベル 1 - 出入り口トレース * レベル 2 - レベル 1 とデバッグ・トレース * レベル 3 - レベル 2 とデータ・トレース * レベル 4 - 内部バッファー・トレース トレースがレベル 1 より高く設定されている場合、パフォーマンスは低下します。 トレースをオンにするのは、デバッグを取る場合だけにしてください。トレース情 報はファイル AGNTxxx.LOG に 保管されます。環境情報はファイル AGNTxxx.SET に 保管されます。 ------------------------------------------------------------------------ 42.28 Windows NT 上でのクライアント・サイド・キャッシング DB2 データ・リンクがインストールされている Windows NT サーバー・マシンにあ る READ PERM DB ファイルに 有効なトークンを使用して共有ドライブによってアク セスしようとしている場合、ファイルは期待通り オープンされます。ただしその 後、同じトークンを使用した後続のオープン要求は実際にはサーバーに 届きません が、クライアント上のキャッシュからサービスされます。トークンの有効期限が切 れた後でも、 項目はまだキャッシュにあるため、ファイルの内容はユーザーに対し て可視であり続けます。 ただしこの問題は、ファイルが Windows NT ワークステー ションにある場合は発生しません。 この解決策は、レジストリー項目 \\HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Lanmanserver\Parameters\EnableOpLocks を Windows NT サーバーでゼロに設定することです。このレジストリー設定により、 サーバー上のファイルが共有ドライブを通じてクライアントからアクセスされる と、 要求はクライアント・キャッシュからサービスされる代わりに、常にサーバー に 到達します。このため、トークンはすべての要求についてもう一度検査されま す。 この解決策の欠点は、これが共有ドライブを通じたサーバーからのすべてのファイ ル・ アクセスのパフォーマンス全体に影響を与えることです。この設定でも、ファ イルが サーバー自体でマップされた共有ドライブを通じてアクセスされる場合は、 他の クライアント・マシンからのアクセスとは異なり、要求はキャッシュからサー ビス されます。このため、トークンの期限切れは起きません。 注: どの場合でも、ファイル・アクセスがローカル・アクセスであり、 共有ドラ イブからのものでなければ、トークンの検査と後続のトークンの期限切れは 予定通りに行われます。 ------------------------------------------------------------------------ 42.29 Enterprise Edition UNIX CD-ROM の試用製品 UNIX プラットフォーム、バージョン 6 およびバージョン 7 の DB2 ユニバーサ ル・データベース (UDB) エンタープライズ・エディション (EE) CD-ROM には、 90 日試用バージョン の DB2 コネクト エンタープライズ・エディションが含まれてい ます。 DB2 コネクトの機能は DB2 UDB EE 製品に組み込まれています。 そのた め、DB2 UDB EE がインストールされているシステムに、 DB2 コネクトの機能を使 用するために DB2 CEE 製品をインストールする必要はありません。 90 日試用バー ジョンの DB2 CEE をインストールし、ライセンス交付バージョンへの アップグレ ードを決めた場合は、DB2 CEE 製品を購入して DB2 ライセンス・キーを インスト ールしなければなりません。 製品を再インストールする必要はありません。 ライ センス・キーのインストールの説明は、 UNIX Quick Beginnings ブックの DB2 EE または DB2 CEE に示されています。 EE のインストールとともに試用 CEE 製品もインストールするが、 CEE を永続的に インストールしたままにしない場合は、 CEE 90 日試用バージョンを以下の手順で 除去することができます。 コネクト EE の試用バージョンを除去した場合でも、 DB2 EE では DB2 コネクトの機能が使用可能です。 DB2 コネクト・バージョン 7 を除去するには、 それぞれプラットフォームから以 下のファイル・セットをアンインストールしてください。 * AIX では db2_07_01.clic ファイル・セット * NUMA-Q および Solaris 稼働環境では db2clic71 パッケージ * Linux では db2clic71-7.1.0-x RPM * HP-UX では DB2V7CONN.clic ファイル・セット DB2 コネクト・バージョン 6 を除去するには、 それぞれのプラットフォームから 以下のファイル・セットをアンインストールしてください。 * AIX では db2_06_01.clic ファイル・セット * NUMA-Q および Solaris 稼働環境では db2cplic61 パッケージ * Linux では db2cplic61-6.1.0-x RPM * HP-UX では DB2V6CONN.clic ファイル・セット ------------------------------------------------------------------------ 42.30 DB2 コネクト エンタープライズ・エディション UNIX CD-ROM の試用製品 UNIX プラットフォームのバージョン 6 およびバージョン 7 の DB2 コネクト エン タープライズ・エディション (EE) CD-ROM には、90 日試用バージョンの DB2 ユニ バーサル・データベース (UDB) エンタープライズ・エディション (EE) が含まれて います。 DB2 UDB EE 90 日試用バージョンは評価のために提供されており、 DB2 コネクトを機能させるために必要なものではありません。 90 日試用バージョンの DB2 UDB EE をインストールし、ライセンス交付バージョン への アップグレードを決めた場合は、DB2 UDB EE 製品を購入して DB2 UDB EE ラ イセンス・キーを インストールしなければなりません。 製品を再インストールす る必要はありません。 ライセンス・キーのインストールの説明は、 UNIX Quick Beginnings ブックの DB2 EE または DB2 CEE に示されています。 コネクト EE の インストールとともに試用 UDB EE 製品もインストールするが、 UDB EE を永続的 にインストールしたままにしない場合は、 EE 90 日試用バージョンを以下の手順で 除去することができます。 DB2 UDB EE の試用バージョンを除去した場合でも、 DB2 コネクト EE の機能には影響ありません。 DB2 UDB EE バージョン 7 を除去するには、 それぞれのプラットフォームから以下 のファイル・セットをアンインストールしてください。 * AIX では db2_07_01.elic ファイル・セット * NUMA-Q および Solaris オペレーティング環境では db2elic71 パッケージ * Linux では db2elic71-7.1.0-x RPM * HP-UX では DB2V7ENTP.elic ファイル・セット DB2 UDB EE バージョン 6 を除去するには、 それぞれのプラットフォームから以下 のファイル・セットをアンインストールしてください。 * AIX では db2_06_01.elic ファイル・セット * NUMA-Q および Solaris オペレーティング環境では db2elic61 パッケージ * Linux では db2elic61-6.1.0-x RPM * HP-UX では DB2V6ENTP.elic ファイル・セット ------------------------------------------------------------------------ 42.31 データ・リンク・マネージャーの削除 指定のデータベースの DB2 データ・リンク・マネージャーを削除できるようになり ました。 データ・リンク関連のいくつかの SQL 要求の処理は、 バックアップ/リ ストアなどのユーティリティーと同様、 データベースに対して構成されたすべての DLM との通信に関係します。 以前は、DLM が操作不可能な場合であっても、 DB2 には構成された DLM を削除する機能がありませんでした。 これにより、SQL およ びユーティリティーの処理に余分なオーバーヘッドが かかっていました。 DLM が 追加されると、要求の処理でエンジンが DLM と通信していました。 これにより、 一部の SQL 要求 (たとえば、表、表スペース、データベースの削除など) の 障害 を招くおそれがありました。 ------------------------------------------------------------------------ 42.32 SMIT を使用して DLFM 構成要素をアンインストールすると他のファイル・セ ットも除去される可能性があります DB2 (バージョン 5、6、または 7) をデータ・リンク・マネージャーが インストー ルされている AIX マシンからアンインストールする前に、 以下を行ってくださ い。 1. root ユーザーとして次のコマンドを使用し、/etc/vfs のコピーを作成しま す。 cp -p /etc/vfs /etc/vfs.bak 2. DB2 をアンインストールする。 3. root ユーザーとして、ステップ 1 で作成したバックアップ・コピーを /etc/vfs に置き換えます。 cp -p /etc/vfs.bak /etc/vfs ------------------------------------------------------------------------ 42.33 Windows 2000 で CLP を使用したときのエラー SQL1035N 一部のユーザー (たとえば管理者) しか書き込みアクセスを持っていないディレク トリーに DB2 をインストールした場合、通常のユーザーは、DB2 コマンド行プロセ ッサーを 使用しようとしたときにエラー SQL1035N を受け取る可能性があります。 この問題を解決するには、すべてのユーザーが書き込みアクセスを持つディレクト リーに DB2 をインストールしてください。 ------------------------------------------------------------------------ 42.34 SQL Assist の機能強化 SQL Assist ツールにより、ユーザーは、表結合で "=" 以外の結合演算子を 指定で きるようになりました。 SQL Assist ツールの「結合」ページで「結合タイプ」ボ タンを クリックすることによって呼び出される「結合タイプ」ダイアログが拡張さ れ、 結合演算子のドロップダウン・リストが組み込まれました。 使用可能な演算子は "="、"<>"、"<"、">"、"<="、および ">=" です。 SQL Assist は、シンプルな SQL ステートメントの作成でユーザーの役に立つツールです。 こ れはコマンド・センター (「対話式」タブ)、 コントロール・センター (「ビュー の作成」および「トリガーの作成」ダイアログ)、 ストアード・プロシージャー・ ビルダー (「SQL ストアード・プロシージャーの挿入」ウィザード)、 およびデー タウェアハウスセンター (SQL 処理ステップ) から使用できます。 ------------------------------------------------------------------------ 42.35 DB2 Linux の Gnome および KDE Desktop Integration 現在 DB2 には、サポートされている Intel ベース Linux 配布版の Gnome および KDE デスクトップで、最も頻繁に使用する DB2 ツールを立ち上げるための DB2 デ スクトップ・フォルダーおよびアイコンを 作成するためのユーティリティー・セッ トが組み込まれています。これらのツールは、デフォルトで、 DB2 バージョン 7.2 によってインストールされ、1 人以上の選択ユーザーの デスクトップ・アイコンを 作成および除去するために使用できます。 1 人以上のユーザーのデスクトップ・アイコンを追加するには、次のコマンドを 使 います。 db2icons [ ...] 注: アイコンが Gnome または KDE デスクトップ環境での実行中に作成された場 合、 その新しいアイコンを表示するには、手動で強制的に最新表示を実行す る必要が あります。 1 人以上のユーザーのデスクトップ・アイコンを除去するには、次のコマンドを 使 います。 db2rmicons [ ...] 注: 他のユーザーのアイコンを生成または除去するには、十分な権限を 持つ必要 があります。一般に、 db2icons and db2rmicons を使うと、 通常のユーザー は本人のアイコンを作成および除去することができます。ルートまたは 指定 ユーザーのホーム・ディレクトリーに書き込む権限を持つ別のユーザーのみ、 他のユーザーのアイコンを作成および除去することができます。 ------------------------------------------------------------------------ 42.36 Windows 2000 Terminal Server の管理モードでの DB2 の実行 DB2 UDB バージョン 7.1、フィックスパック 3 またはそれ以降の場合、DB2 は Windows 2000 Terminal Server、管理モードで実行できます。実行しないと、 Windows 2000 Terminal Server、管理モードの クライアント・セッションでは DB2 を 実行できません。 ------------------------------------------------------------------------ 42.37 バックアップおよび復元コマンドのオンライン・ヘルプ db2 ? backup と入力すると、誤った情報が示されます。正しい出力は次の通りで す。 BACKUP DATABASE database-alias [USER username [USING password]] [TABLESPACE (tblspace-name [ {,tblspace-name} ... ])] [ONLINE] [INCREMENTAL [DELTA]] [USE TSM [OPEN num-sess SESSIONS]] | TO dir/dev [ {,dir/dev} ... ] | LOAD lib-name [OPEN num-sess SESSIONS]] [WITH num-buff BUFFERS] [BUFFER buffer-size] [PARALLELISM n] [WITHOUT PROMPTING] db2 ? restore と入力すると、誤った情報が示されます。正しい出力は次の通りで す。 RESTORE DATABASE source-database-alias { restore-options | CONTINUE | ABORT }"; restore-options:"; [USER username [USING password]] [{TABLESPACE [ONLINE] |"; TABLESPACE (tblspace-name [ {,tblspace-name} ... ]) [ONLINE] |"; HISTORY FILE [ONLINE]}] [INCREMENTAL [ABORT]]"; [{USE TSM [OPEN num-sess SESSIONS] |"; FROM dir/dev [ {,dir/dev} ... ] | LOAD shared-lib"; [OPEN num-sess SESSIONS]}] [TAKEN AT date-time] [TO target-directory]"; [INTO target-database-alias] [NEWLOGPATH directory]"; [WITH num-buff BUFFERS] [BUFFER buffer-size]"; [DLREPORT file-name] [REPLACE EXISTING] [REDIRECT] [PARALLELISM n]"; [WITHOUT ROLLING FORWARD] [WITHOUT DATALINK] [WITHOUT PROMPTING]"; ------------------------------------------------------------------------ 42.38 「ウェアハウス・マネージャー」は「DB2 ウェアハウス・マネージャー」の ことです 製品画面および製品ドキュメントに出てくるすべての「ウェアハウス・マネージャ ー」というフレーズは、「DB2 ウェアハウス・マネージャー」と読んでください。 ------------------------------------------------------------------------ 追加の情報 ------------------------------------------------------------------------ 追加の情報 ------------------------------------------------------------------------ 43.1 DB2 ユニバーサル・データベースおよび DB2 コネクトのオンライン・サポー ト DB2 に関する完全情報や最新情報 (この文書公開後に明らかになった問題も含む) を入手したい場合には、以下の DB2 ユニバーサル・データベースおよび DB2 コネ クトの Web サイトのオンライン・サポートを使用してください。 http://www.ibm.com/software/data/db2/udb/winos2unix/support ------------------------------------------------------------------------ 43.2 DB2 マガジン 製品の DB2 ファミリーの最新情報については、 無料購読の "DB2 magazine" を申 し込んでください。 マガジンのオンライン・エディションは、 http://www.db2mag.com から入手できます。 このサイトに、定期購読の申し込みに 関する説明があります。 ------------------------------------------------------------------------ 付録 ------------------------------------------------------------------------ 付録 A. 特記事項 IBM は、本書で述べられた製品、サービス、または機能を提供しない 可能性があり ます。日本で現在使用可能な製品およびサービスに関する情報については、 日本の IBM 担当者にお問い合わせください。本書において、日本では発表されていない IBM 製品 (機械およびプログラム) に ついて言及または説明する場合があります。 これらのプログラムまたは製品に代えて、IBM の知的所有権を侵害することのない 機械的に同等のプログラムまたは製品を使用することができます。 ただし、IBM に よって明示的に指定されたものを除き、 これらのプログラムまたは製品に関連する 動作の評価および検査はお客様の責任で 行っていただきます。 IBM 社は、本書で説明する主題に関する特許権 (特許出願を含む) 商標権、 または 著作権を所有している場合があります。 本書は、これらの特許権、商標権、および 著作権について、本書で明示されている場合を除き、 実施権、使用権等を許諾する ことを意味するものではありません。 実施権、使用権等の許諾については、下記の 宛先に書面にてご照会ください。 〒106-0032 東京都港区六本木 3 丁目 2-31 AP 事業所 IBM World Trade Asia Corporation Intellectual Property Law & Licensing ダブルバイト (DBCS) 情報に関しては、各国の IBM Intellectual Property Department に問い合わせるか、下記の宛先に書面にてご照会ください。 〒106-0032 東京都港区六本木 3 丁目 2-31 AP 事業所 IBM World Trade Asia Corporation Intellectual Property Law & Licensing 本書において、日本では発表されていない IBM 製品 (機械およびプログラム)、プ ログラミングまたは サービスについて言及または説明する場合があります。""しか し、このことは、弊社がこのような IBM 製品、 プログラミングまたはサービス を、日本で発表する意図 があることを必ずしも示すものではありません。 本書には技術的な誤りまたは誤植が含まれている可能性があります。本書に対し て、周期的に変更が行われ、これらの変更は、文書の新規エディションに 組み込ま れます。IBM 社は予告なしに、随時、この文書に記載されている製品またはプログ ラム、あるいは その両方に対して、改良または変更、あるいはその両方を行うこと が あります。 本書において、 IBM 以外の Web サイトを参照して いる場合がありますが、それら はどのような場合にも、 便宜のためだけに参照しているのであり、どのような意味 にお いても、それらの Web サイトの内容を保証するものではありません。 IBM は、お客様が提供する情報を IBM が適当と考える 何らかの方法で、使用また は配布する場合がありますが、 そのことによって、 IBM がお客様に対して何らか の 義務を負うことはないものとします。 本プログラムのライセンス保持者で、(i) 独自に作成したプログラムとその他のプ ログラム (本プログラムを含む) との間での情報交換、および (ii) 交換された情 報の相互利用を可能に することを目的として、本プログラムに関する情報を必要と する方は、下記に連絡してください。 IBM Canada Limited Office of the Lab Director 1150 Eglinton Ave. East North York, Ontario M3C 1H7 CANADA 本プログラムに関する上記の情報は、適切な条件の下で、使用することができます が、有償の場合もあります。 本書において示されるパフォーマンスに関するデータは、いずれも制御 された環境 で決定されたものです。 したがって、稼働環境が 異なれば、得られる結果は著し く異なる場合があります。 また、測定値によっては開発過程で得られたものである 場合があり、 一般的に使用可能なシステムにおいても、 これらと同様な測定値が 得られるという保証 はありません。さらに、測定値によっては推定によって見積も られ たものである場合があります。 実際の結果は異なる場合があります。本書を 読まれるユーザーは、ユーザー固有の環境に適用可能なデータを 確認してくださ い。 他社の製品に関する情報は、それらの 製品の提供者、それらの製品の発表資料、ま たはその他の一般に入手可能 な情報源から入手しました。IBM はそれらの製品をテ ストしておらず、パフォーマンス の精度、互換性、またはその他の他社製品に関す るいかなる記述をも保証するものではありません。 他社製品の能力に関するご質問 は、それらの製品の提供者 に送るようお願い致します。 IBM の将来の方向または意向に関して記述がなされていたとしても、 それらは予告 なしに変更または撤回される場合があり、単に目標を示しているものです。 本書には、日常のビジネス・プロセスで用いられるデータや報告書の例が含まれて いますが、これは説明に具体性を与えるために記載されたものであり、それらの例 には、個人、企業、ブランド、 あるいは製品などの名前が含まれている場合があり ます。 それらの名前はすべて架空のものであり、名称や住所が類似する企業が実在 しているとしても、それは偶然にすぎません。 著作権許諾: 本書には、さまざまなオペレーティング・プラットフォームでの プログラミング手 法を例示するソース言語で書かれたサンプル・ アプリケーション・プログラムが掲 載されています。このサンプル・プログラムは、サンプル・プログラムが書かれて いる オペレーティング・プラットフォームのアプリケーション・ プログラミン グ・インターフェースに準拠したアプリケーション・ プログラムの開発、使用、販 売、または配布を目的として、いかなる 形式においても IBM に対価を支払うこと なくこれを複製し、改変し、 配布することができます。 これらの例は、すべての 場合について完全にテストされたものではありません。 IBM はこれらのプログラム に信頼性、可用性、および機能について法律上の 瑕疵担保責任を含むいかなる明示 または暗示の保証責任も負いま せん。 それぞれの複製物、サンプル・プログラムのすべての部分、またはすべての派生し た創作物 には、次のように著作権表示を入れていただく必要があります。 (c) (お客様の会社名) (西暦年). このコードの一部は、IBM Corp. のサンプル・プ ログラム の派生物です。(c) (c) Copyright IBM Corp. _ 西暦年を入れる _. All rights reserved. ------------------------------------------------------------------------ A.1 商標 次の用語は、アスタリスク (*) が付いている場合もありますが、 米国 International Business Machines Corporation またはその他の国、あるいは その 両方の商標です。 ACF/VTAM IBM AISPO IMSIMS/ESA AIX LAN DistanceMVS AIX/6000 MVS/ESA AIXwindows MVS/XA AnyNet Net.Data APPN OS/2 AS/400 OS/390 BookManager OS/400 CICS PowerPC C Set++ QBIC C/370 QMF DATABASE 2 RACF DataHub RISC System/6000 DataJoiner RS/6000 DataPropagator S/370 DataRefresher SP DB2 SQL/DS DB2 コネクト SQL/400 DB2 エクステンダー System/370 DB2 OLAP Server System/390 DB2 ユニバーサル・データベース SystemView 分散リレーショナル・ VisualAge データベース体系 VM/ESA DRDA VSE/ESA eNetwork VTAM Extended Services WebExplorer FFST WIN-OS/2 First Failure Support Technology 以下の用語は、他社の商標あるいは登録商標です。 Microsoft、Windows、および Windows NT は Microsoft Corporation の米国および その他の国における商標です。 Java およびすべての Java 関連の商標およびロゴ、および Solaris は Sun Microsystems, Inc. の米国およびその他の国における商標です。 Tivoli および NetView は Tivoli Systems Inc. の米国およびその他の 国におけ る商標です。 UNIX は、X/Open Company Limited が独占的にライセンスしている、 米国、または 他国、あるいはその両方における登録商標です。 他の社名、製品名、またはサービス名がアスタリスクを 2 つ (**) 付けて示される ことがありますが、これは他社の商標またはサービス名です。 ------------------------------------------------------------------------ 索引 ア カ サ タ ナ ハ マ ヤ ラ ワ A C D E F G H I J L M N O P R S U V W X ------------------------------------------------------------------------ ア * アクセス可能性 (1392) * アラート・センター (992) * アンインストール o DB2 DFS クライアント・イネーブラー (1377) * 暗号化 o データ (1013) * 移行 o エラー (908) o 視点の問題 (930) o db2iupdt を実行してインスタンスを更新 (937) o Windows 2000 上 (929) * インストール o 取りはずし可能ドライブ使用時にハング (911) o DB2 処理の停止 (934) o Windows で必要となるサービス・アカウント (1393) * インストール, インストール, 移行, 実行可能ファイル (1166) * インストール前提条件 o Linux for OS/390 上の UDB EE および CEE (939) * インポート, インポート, タグ言語ファイル, DWC (1168) * インポート, タグ言語ファイル, ICM, 情報カタログ・マネージャー (1169) * ウィザード o データベースの作成 (1159) o MQSeries Assist (1161) o OLE DB Assist (1163) * エクステント・サイズ o データベース作成ウィザードの設定 (1157) * エラー・メッセージ o 移行中 (907) o 区分データベースへのノード追加 (906) o トリガーの実行 (1316) o バインド・ファイルが見つからない (1370) o ファイル・アクセス拒否 (1142) o 無効なショートカット (1139) o SQL10012N (1150) * オートローダー o fork 中の停止 (1381) * 応答ファイル・インストール o サテライト特定のキーワード (1099) o DB2 制御サーバーのキーワード (1094) * オペランド o string (1360) * オンデマンド・ログ・アーカイブ (1036) * オンライン情報の検索 o Solaris 稼動環境 (923) カ * カーソル o 値並列性 (1234) o 感度 (1228) o キーセット・ドリブン + 更新 (1233) o 更新可能 (1229) o スクロール可能 (1231) + アプリケーションの障害追及 (1236) + キーセット・ドリブン (1221) + サーバー側 (1219) + 静的 (1220) + OS/390 (1218) o 属性, デフォルト (1226) o タイプ (1227) o 並列性 (1230) * カタログ視点 o SEQUENCES (1343) * 関数 o スカラー + DECRYPT (1258) + ENCRYPT (1262) + GETHINT (1266) + IDENTITY_VAL_LOCAL (1270) + MQPUBLISH (1272) + MQREAD (1275) + MQRECEIVE (1278) + MQSEND (1281) + MQSUBSCRIBE (1284) + MQUNSUBSCRIBE (1287) + REC2XML (1292) o 表 + MQREADALL (1293) + MQRECEIVEALL (1296) o プロシージャー (1299) o DECRYPT (1016) o ENCRYPT (1015) o GETHINT (1017) * 管理プログラム構成ファイル (1065) * 機能 o ユニコード・データベース (1362) * 共通ウェアハウス・メタモデル o XML サポート (1185) * 許可 o create on sequence の付与 (1323) o public create on sequence (1324) * クイック・ツアー (1369) * 区分化キー o 更新 (963) * 区分データベース o ノード追加時のエラー (905) * クライアント o ダウンロード (927) o 3 階層環境 (1222) * クラッシュ・リカバリ o db2inidb ツールの使用 (1022) * ゲートウェイ o 3 階層環境 (1223) * コード・ページ o バルト語 (984) o ロケールへのマッピング (980) o CLI を使用するアプリケーション (986) * 高可用性 (1021) * 構成パラメーター o app_ctl_heap_sz (1072) o maxappls (1076) o maxlocks (1069) o MIN_DEC_DIV_3 (1071) o mon_heap_sz (1074) o softmax (1078) * 構成要素トレース・データ・ファイル名 (1178) * コピー・デーモン (1376) * コンテナー o SMS 表スペースへの追加 (1003) * コントロール・センター o 「ツール設定」ノートブック (1151) o 障害追及 (1146) o バージョン 6, 管理者サテライト環境を使用 (1104) o 並列アプレットの制限 (1152) o 翻訳版の実行 (981) o 両方向サポート + Windows NT 上 (1136) o Internet Explorer のエラー (916) o OS/2 上での infopop の表示の問題 (1148) o OS/390 に必要な修正 (1145) o OS/390 プラットフォーム上 (1144) o UNIX プラットフォームでの障害追及 (1147) o VM および VSE データベースを管理するために使用 (1135) o Windows 95 でのスクリプト・センターの問題 (1153) サ * サーチ・ディスカバリー (1372) * 索引 o 重複へのアクセス (1059) o より大きなキー (1054) * 索引キー o より大きな (1055) * サテライト o インストール上の考慮事項 (1096) o 応答ファイル・インストール (1097) o 対話インストール (1100) o DB2 パーソナル・エディション (1085) o DB2 ワークグループ・エディション (1086) * サテライト環境 o インストール上の考慮事項 (1095) o サテライトの応答ファイル・インストール (1098) o サテライトの対話インストール (1101) o 前提条件 (1089) o バージョン 6 サテライト管理センター での管理 (1106) o DB2 パーソナル・エディションのサテライト (1087) o DB2 ワークグループ・エディションのサテライト (1088) * サテライト管理センター o バージョン 6, 管理者サテライト環境を使用 (1105) * サブエレメント統計 (1057) * サンプル・コンテンツ, 表示 (1155) * シーケンス (1000) o 作成 (994) o 特権 (1010) o ドロップ (1006) o 変更 (1005) o 呼び出し (1249) o nextval-expression (1251) o prevval-expression (1250) * シーケンス, 記述 (1212) * シーケンス呼び出し (1253) * 式 o シーケンス (1252) o 連結演算子 (1356) o NEXTVAL (996) o PREVVAL (995) o string (1357) * 識別列 o 変更 (1004) * システム・カタログ統計 o 分散統計の収集 (1056) * 視点 o 移行後に使用不可になるもの (931) * 収集プログラムとアプライ・プログラム o アプリケーション内で開始 (1122) o エラー・メッセージ (1121) o AS/400 (1118) * 照会イネーブラー o HP-UX と NUMA-Q でサポートされない (1396) * 照会結果, 表示 (1154) * 照会パトローラー o 移行後のユーザー特権の損失 (1394) * 照会パトローラー・トラッカー o NUMA-Q でサポートされない (1395) * 情報カタログ・マネージャー o ユーティリティー・プログラム (1209) * 情報の暗号化 o ENCRYPT 関数 (1263) o GETHINT 関数 (1267) * 情報の暗号化解除 o DECRYPT 関数 (1259) * 処理, インストール前に停止 (935) * スカラー関数 o DAYOFWEEK_ISO (1245) o WEEK_ISO (1246) * スキーマ・モデラー o データウェアハウス・センター (1188) * スキーマ名 o 文字制限 (972) * ステートメント・レベル分離 (1051) * ストアード・プロシージャー o データウェアハウスセンター (1400) * ストリングを列に割り当てる, 規則 (1351) * 静的プロファイル, JDBC/ODBC/CLI アプリケーション (1216) * ソート・ヒープ・サイズ (1066) * ソート・ヒープしきい値 (1067) * 操作不能トリガー o 詳細記述 (1314) * 増分バックアップおよびリカバリ (1026) * ソフトウェア要件, ERwin タグ言語ファイル, データウェアハウスセンター, DWC, 情報カタログ・マネージャー, ICM (1165) タ * タグ言語ファイル, DWC, ICM, ERwin ファイル, ER1 ファイル (1167) * 置換での増分コミット (1177) * 中国語 (簡体字) o Linux でのロケール設定 (915) * 中断入出力関数 o 連続可用性のサポート (1020) * 重複索引へのアクセス (1060) * 重複ロギング (1040) * 次のキー・ロック (1127) * テンプレート o Commit.tag + 値の例 (1192) + トークン (1190) o ForeignKey.tag + 値の例 (1196) + トークン (1194) o ForeignKeyAdditional.tag + 値の例 (1200) + トークン (1198) o PrimaryKey.tag + 値の例 (1204) + トークン (1202) o PrimaryKeyAdditional.tag + 値の例 (1208) + トークン (1206) * データ・クレンジング, 名前およびアドレスのクレンジング (1170) * データ・タイプ o ユニコード・データベースでのプロモーション (1347) * データ・リンク・ファイル・システム o Norton ユーティリティーとの非互換 (976) * データ暗号化 (1014) * データ移動 o ユニコード・クライアントの制限 (1367) * データウェアハウス・センター o ストアード・プロシージャーを使用する (1399) o iwh2exp2 コマンド構文 (1401) o OLE DB サポート (1176) * データベース作成ウィザード o エクステント・サイズの設定 (1158) * デッドロック (1125) * 統合システム o 制限 (942) o ニックネーム (941) o ラッパー (940) * 動的複合ステートメント (1053), (1305) * 特権 o USAGE (1011) * トリガー o エラー・メッセージ (1315) o 操作不能 (1313) * トリガー SQL ステートメント o SET 変数ステートメント (1331) ナ * ナショナル・ランゲージ・サポート (989) * 名前およびアドレスのクレンジング, Trillium (1171) * 名前付きパイプ o バックアップ先 (1033) * 日本語 o Linux でのロケール設定 (914) * 認証 o DB2DOMAINLIST を使用して定義域ごとに (1380) ハ * バックアップ o オフライン + 分割ミラー・イメージから (1034) o 増分 (1027) o 名前付きパイプに (1032) * バックアップ・サービス API o DB2 サポート (1404) * バッファー・プール o AWE (1061) * バルト語 o コード・ページ・サポート (983) * パッチ・レベル o Solaris バージョン 2.6 (903) * パフォーマンス・モニター (993) * 非 DB2 ウェアハウス・ソース, AIX (1179) * 非 DB2 ウェアハウス・ソース, Solaris 操作環境 (1180) * 非 db2 ソース, Sybase のサンプル項目 (1182) * 表スペース o ONLINE 状態に設定 (1008) * 表の構造 (1119) * ファイル・アクセス拒否エラー (1141) * 復元 o DATALINK 列の問題 (1384) * 複合 SQL, 使用 (1237) * 複合ステートメント o 動的 (1052) * 複合ステートメント (動的) o 変数 (1307) * 複数サイト更新テスト接続 o インスタンスのバージョンの非互換性 (1143) * 複製された要約表 (964), (1058) * 分割ミラー o スタンドバイ・データベースとして (1025) * 分割ミラー処理 o オンライン (1023) * 分散データベース o 更新のセットアップ (965) * 分離レベル o ステートメント・レベル (1050) o DELETE ステートメント (1319) o INSERT ステートメント (1325) o SELECT INTO ステートメント (1326) o SELECT ステートメント (1301) o UPDATE ステートメント (1332) * プリフェッチャー o DMS コンテナーの並列作成および拡張 (990) * プロセス・モデラー o データウェアハウス・センター (1187) * 並列リカバリ (1030) * 変換規則 o ストリング比較 (1355) o ストリングを結合する操作 (1353) * 保存およびリトリーブ o ユーザー出口プログラム (1045) マ * 未確定カーソル (1318) * ミラーリング o ログ (1039) * 無効なショートカット・エラー (1138) * 命名規則 (974) o 文字制限 (971) * メッセージ o 収集プログラムとアプライ・プログラム (1120) * メッセージング, MQ Series (1172), (1173) * メモリー・ウィンドウ o HP-UX 11 (1373) * 文字ストリング o 割り当て, 概説 (1348) * 文字変換 o ストリングを結合する操作の規則 (1352) o ストリングを比較する規則 (1354) * 戻り識別列値 o IDENTITY_VAL_LOCAL 関数 (1271) ヤ * ユーザー ID o 文字制限 (973) * ユーザー補助機能 (901) * ユニコード o 機能 (1363) o 資料の更新 (1346) o データベースおよびアプリケーション (1344) o ODBC アプリケーション (1366) * ユニコード・クライアント o データ移動制限 (1368) ラ * ランタイム・クライアントを使用するデータベース・ユーティリティーのバイ ンド (1214) * リカバリ o 増分 (1029) o 並列 (1031) o DB2 データ・リンク・マネージャーとの相互作用 (1044) * リストア o 増分 (1028) * リモート・クライアント・アクセス o Communication Server for NT の構成 (1385) * 両方向言語サポート o Windows NT 上のコントロール・センター (1137) * ルーチン o プロシージャー (1300) * レジストリー変数 o 新規および変更 (1080) o バックアップ・サービス API をサポートするための (1403) o DB2DOMAINLIST (1379) o DB2_AWE (1063) * 列 o ストリング割り当て, 基本規則 (1350) * レプリケーション o 計画 (1113) o シナリオ (1109) o 任意の場所での更新の前提条件 (1114) o 表および列名の制限 (1110) o 問題判別 (1115) o DATALINK (1111) o IBM 以外のサーバー (1108) * レプリケーション・アナライザー (1116) * レプリケーション・データベース o 作成 (1024) * 連結 o 演算子 (1358) * 連合システム, 制約 (1386) * ログ o アーカイブ, オンデマンド (1037) o ミラーリング (1038) * ログのアーカイブ, オンデマンド (1035) * ロケール o 管理サーバーとインスタンス間の互換性 (982), (1391) o ナショナル・ランゲージ・サポート (979) o Linux での日本語および中国語 (簡体字) (912) * ロケール設定 o CLI を使用するアプリケーション (985) * ロック, オプティミスティック (1235) * ロック待機 (1126) ワ * 割り当て o ストリング, 基本規則 (1349) A * Address Windowing Extensions (AWE) (1062) * Adobe Acrobat Reader o 英語以外のロケールでアクセスする (926) * ADT トランスフォーム (1217) * AIX 4.3.3 o fork 後のオートローダーの停止 (1382) * ALTER SEQUENCE ステートメント o 詳細記述 (1302) * app_ctl_heap_sz (1073) * Archive Log (1107) * AS/400 o 収集プログラムとアプライ・プログラム (1117) C * CLI o ユニコード・アプリケーションの作成 (1364) * CLI インターフェース o コード・ページ設定 (987) * CLI 関数 o SQLBindFileToParam (1242) o SQLNextResult (1244) * CLI ストアード・プロシージャー o 自動バインド (1240) o 制限 (1239) * Commit.tag テンプレート o 値の例 (1191) o トークン (1189) * CREATE PROCEDURE ステートメント o 動的複合ステートメント (1304) o FOR ステートメント (1334) o RETURN ステートメント (1337) o SIGNAL ステートメント (1340) o SQL プロシージャー・ステートメント (1333) * CREATE SEQUENCE ステートメント o 詳細記述 (1311) * CWM o XML サポート (1183) D * DataJoiner o 制限 (1387) * DATALINK o 復元時の問題 (1383) o レプリケーション (1112) * DAYOFWEEK_ISO スカラー関数 (1247) * DB2 エンタープライズ・エディション o サテライトとしてセットアップ (1084) + 前提条件 (1091) o バージョン 6, DB2 制御サーバーを使用 (1102) * DB2 コネクト o Sun クラスター 2.2 の前提条件 (967) * DB2 サーバー (VM および VSE 版) o コントロール・センターからデータベースを管理 (1134) * DB2 制御サーバー o 応答ファイル・ インストール (1093) o 最小要件 (1092) o バージョン 6, アップグレード (1103) * DB2 データ・リンク・マネージャー o リカバリとの相互作用 (1043) * DB2 の始動 o Windows 95、98、および ME での db2start の使用 (1124) * DB2 パーソナル・エディション o サテライトとしてセットアップ (1083) + 前提条件 (1090) * DB2 リレーショナル・コネクト o AIX、Solaris、および Linux への インストール (944) o Windows NT への インストール (943) * db2ArchiveLog (1210) * DB2CODEPAGE レジストリー変数 o CLI を使用するアプリケーション (988) * db2expln o 実行 (1081) * db2inidb ツール (1019) * db2iupdt コマンド, DB2 の移行後に実行 (936) * DB2MSCS ユーティリティー、PATH を設定するためのマシン・リブート (966) * db2start o Windows 95、98、および ME 上 (1123) * db2_all (1046) * DB2_AWE レジストリー変数 (1064) * DB2_INDEX_2BYTEVARLEN (1001) * DECLARE CURSOR (1317) * DECRYPT 関数 o 値および引き数 (1257) o 詳細記述 (1256) * DFS クライアント・イネーブラー o アンインストール (1378) * dlfm client_conf o 失敗の原因 (1375) * dl_expint 推奨設定 (1070) * DMS コンテナー o 並列作成および拡張 (991) * DMS 表スペース o 並列作成およびサイズ変更 (1009) * DWC o CWM XML サポート (1184) o OLE DB サポート (1175) * dynexpln o 実行 (1082) E * enable_MQFunctions (1130), (1132) * ENCRYPT 関数 o 値および引き数 (1261) o 詳細記述 (1260) * ERwin, メタデータ, 抽出, インポート (1164) F * FOR statement (1335) * ForeignKey.tag テンプレート o 値の例 (1195) o トークン (1193) * ForeignKeyAdditional.tag テンプレート o 値の例 (1199) o トークン (1197) G * GETHINT 関数 o 値および引き数 (1265) o 詳細記述 (1264) * GRANT o CREATE ON SEQUENCE (1322) * GRANT (シーケンス特権) ステートメント o 詳細記述 (1320) * GUI ツール o バインド・エラー (1371) H * HP および Sun Solaris o バックアップおよびリストア・サポート (1042) * HP-UX o 照会イネーブラーのサポートなし (1397) * HP-UX 11 o メモリー・ウィンドウ (1374) I * IDENTITY 列 (999) * IDENTITY_VAL_LOCAL 関数 o 値および引き数 (1269) o 詳細記述 (1268) * Information Catalog Manager o in Hebrew (1388) * Internet Explorer o コントロール・センターのエラー (917) * IPX/SPX プロトコル・サポート, Windows 2000 上 (933) * iwh2exp2 コマンド o 新規オプション (1402) J * Java メソッド o CREATE PROCEDURE または CREATE FUNCTION (1213) * JDBC o スクロール可能カーソル, アクセス (1225) * JDBC/ODBC/CLI 静的プロファイル, 制限 (1215) * JDK 1.1 o インストール・パス (1149) L * Linux o コントロール・センター用に環境を設定 (938) o 日本語版および中国語 (簡体字) 版のロケール設定 (913) * locales o Simplified Chinese on Red Flag Linux (909) * locklist o maxlocks 構成パラメーター (1068) M * maxappls (1077) * Microsoft SQL Server データ・ソース o 環境変数 (956) o コード・ページ (962) o パフォーマンスの向上 (958) o DB2 へのリンク (957) o DSN 名 (960) o MERANT ライブラリー (955) o MERANT ラッパー (959) o ODBC トレース (961) o ODBC ドライバー (954) * mon_heap_sz (1075) * MQ 関数 (1131), (1133) * MQPUBLISH 関数 o 値および引き数 (1274) o 詳細記述 (1273) * MQREAD 関数 o 値および引き数 (1277) o 詳細記述 (1276) * MQREADALL 関数 o 値および引き数 (1295) o 詳細記述 (1294) * MQRECEIVE 関数 o 値および引き数 (1280) o 詳細記述 (1279) * MQRECEIVEALL 関数 o 値および引き数 (1298) o 詳細記述 (1297) * MQSEND 関数 o 値および引き数 (1283) o 詳細記述 (1282) * MQSeries Assist ウィザード (1160) * MQSUBSCRIBE 関数 o 値および引き数 (1286) o 詳細記述 (1285) * MQUNSUBSCRIBE 関数 o 値および引き数 (1289) o 詳細記述 (1288) N * Netscape o エラー・メッセージ (925), (1156) o オンライン情報にアクセス (921) * NEXTVAL (998) * nextval-expression (1255) * NLV サポート o ユニコード (1345) * Norton ユーティリティー o データ・リンク・ファイル・システムとの非互換 (975) * NUMA-Q o 照会イネーブラーまたはトラッカーのサポートなし (1398) O * ODBC o スクロール可能カーソル, アクセス (1224) o フェッチ方向 (1232) * ODBC ユニコード・アプリケーション (1365) * OLE DB Assist ウィザード (1162) * OLE DB サポート (1174) * Open Client, 非 DB2 ウェアハウス・ソース (1181) * Oracle データ・ソース o 環境変数 (947) o Linux ラッパー (946) o Solaris ラッパー (945) * OS/2 o コントロール・センターのインストール (1140) o メッセージに必要な JDK レベル (1211) P * PREVVAL (997) * prevval-expression (1254) * PrimaryKey.tag テンプレート o 値の例 (1203) o トークン (1201) * PrimaryKeyAdditional.tag テンプレート o 値の例 (1207) o トークン (1205) R * REC2XML 関数 o 値および引き数 (1291) o 詳細記述 (1290) * Red Flag Linux o Simplified Chinese locale (910) * RETURN statement (1338) S * SET CONSTRAINTS ステートメント o SET INTEGRITY によって置換 (977) * SET ENCRYPTION PASSWORD (1018) * SET ENCRYPTION PASSWORD ステートメント o 詳細記述 (1327) * SET INTEGRITY ステートメント o SET CONSTRAINTS の置換 (978) * SET 変数ステートメント o 詳細記述 (1329) * SIGNAL ステートメント (1341) * SIGTTIN (1047) * SMS 表スペース o コンテナーの追加 (1002) * SNA SPM o リブート後の検査 (1390) * SNA サーバー o ホストまたは AS/400 アプリケーションから UDB にアクセスする (1389) * softmax (1079) * Solaris o UltraSparc 以前のバージョンのサポートの欠落 (904) o V2.6 に必要なパッチ・レベル (902) * Solaris オペレーティング・システム o 64 ビット + 構成 (1128) + 制限 (1129) * Solaris 稼動環境 o オンライン情報の検索 (924) * Solaris での Veritas o 高可用性 (969) * Solaris での高可用性 (970) * SQL ステートメント o ALTER SEQUENCE (1303) o CREATE SEQUENCE (1312) o GRANT (シーケンス特権) (1321) o SET ENCRYPTION PASSWORD (1328) o SET 変数 (1330) * SQL プロシージャー o 動的複合ステートメント (1306) o 変数 (1309) o DECLARE ステートメント (1310) o FOR statement (1336) o RETURN statement (1339) o SIGNAL ステートメント (1342) * SQL 変数 (1308) * SQL, 複合 (1238) * SQLBindFileToParam CLI 関数, 訂正 (1241) * SQLNextResult 関数 (1243) * stdin (1048) * string o オペランド (1361) o 式 (1359) * Sun Solaris および HP o バックアップおよびリストア・サポート (1041) * Sun クラスター 2.2 o DB2 コネクトの前提条件 (968) * SWITCH ONLINE 文節 (1007) * Sybase o Windows での ICM との非互換性 (918) * Sybase Open Client (949) * Sybase データ・ソース (948) o 環境変数 (950) o コード・ページ (953) o パフォーマンスの向上 (952) o DB2 へのリンク (951) U * USAGE 特権 (1012) V * VI o DB2 で使用するためのセットアップ (1049) W * Web ブラウザー o Windows 2000 での推奨 (920) * WEEK_ISO スカラー関数 (1248) * Windows o Sybase と ICM の非互換性 (919) * Windows 2000 o 移行 (928) o 推奨 Web ブラウザー (922) o IPX/SPX プロトコル・サポート (932) X * XML サポート o 共通ウェアハウス・メタモデル (CWM) 用 (1186) 1 トリガー、関数、または ストアード・プロシージャーが呼び出されるたびに 新規レベルが開始します。 2 自動コミットがオフになっていないかぎり、各ステートメントの後に自動的に コミットを行うインターフェースは、関数が別々のステートメントで呼び出さ れる際に NULL 値を返します。 3 これは、FOR EACH ROW および FOR EACH STATEMENT の AFTER 挿入トリガーの 両方に 適用されます。 4 サービス・ポリシーは、このメッセージング操作に適用されるべきサービス・ オプションの 品質のセットを定義します。 このオプションには、メッセージ 優先順位とメッセージ持続性が含まれます。 詳しくは「MQSeries アプリケー ション・メッセージング・インターフェース」マニュアルを 参照してくださ い。 5 サブタイプが BIT DATA の文字ストリングは許可されていません。 6 common-table-expression が fullselect に先行する場合があります。 7 common-table-expression が fullselect に 先行することがあります。 8 計算の前に、前の値がソース・タイプに cast されることはありません。