IBM(R) DB2(R) ユニバーサル・データベース リリース情報 i) 本マニュアルに関するご意見やご感想は、次の URL からお送りください。今後 の参考にさせていただきます。 http://www.ibm.com/jp/manuals/main/mail.html なお、日本 IBM 発行のマニュアルはインターネット経由でもご購入いただけま す。詳しくは http://www.ibm.com/jp/manuals/ の「ご注文について」をご覧ください。 (URL は、変更になる場合があります) お客様の環境によっては、資料中の円記号がバックスラッシュと表示された り、バックスラッシュが円記号と表示されたりする場合があります。 +------- ------------------------------------------------------------- |   IBM(R) DB2(R) Universal Database Release Notes Version 7 | | 原  | | 典: | + + |  発 日本アイ・ビー・エム株式会社 | |   | | 行: | + + |  担 ナショナル・ランゲージ・サポート | |   | | 当: | + +-------+-------------------------------------------------------------+ 第2刷 2003.8 この文書では、平成明朝体(TM)W3、平成明朝体(TM)W9、平成角ゴシック体(TM) W3、平成角ゴシック体(TM)W5、および平成角ゴシック体(TM)W7を使用していま す。この(書体*)は、(財)日本規格協会と使用契約を締結し使用しているもの です。フォントとして無断複製することは禁止されています。   注* 平成明朝体(TM)W3、平成明朝体(TM)W9、平成角ゴシック体(TM)W3、 平成角ゴシック体(TM)W5、平成角ゴシック体(TM)W7 Copyright International Business Machines Corporation 2000 - 2003. All rights reserved. (C) Copyright IBM Japan 2003 目次 i) ii) DB2 ユニバーサル・データベース バージョン 7 フィックスパックへよ うこそ。 I 最初にお読みください バージョン 7 リリース情報 製品情報 DB2 バージョン 7 (Solaris オペレーティング環境版) でサポートしている CPU Red Flag Linux での中国語 (簡体字) ロケール修正 日本語 Linux 版 および中国語 (簡体字) Linux 版 の DB2 の追加ロケール 設定 PTX での日本語の制限 Microsoft Internet Explorer 上でのコントロール・センターの問題 コントロール・センター機能の喪失 DB2 UDB への Netscape CD 添付の中止 XML Readme ファイルでのエラー DB2 バージョン 7.2 での新規のビジネス・インテリジェンス機能強化 フィックスパック 2A 以降が原因で IBM DB2 OLAP Server に起こる問題 WebSphere 3.5.5 を使用時のセグメント化違反 Veritas AIX Volume Manager のサポート AIX V4 上の Java アプリケーションに必要な修正 NFS 問題によって AIX V5 オペレーティング・システム上で db2stop がハ ングする オンライン資料 (HTML、PDF、検索) の注釈 Windows 2000 オペレーティング・システムでサポートされている Web ブラ ウザー Solaris オペレーティング環境における DB2 オンライン情報の検索 OS/2 上で TCP/IP を使用するよう NetQuestion を切り替える Netscape を立ち上げようとした場合のエラー・メッセージ UNIX ベース・システム上での Adobe Acrobat Reader の構成要件 SQL 解説書は 1 つの PDF ファイルで提供されます II インストールおよび構成 一般インストール、移行、および構成情報 すべてのサポートされる DB2 クライアントのインストール・パッケージを ダウンロード S/390 上の Linux で DB2 EE または DB2 コネクト EE インストール・イメ ージをアクセス可能にする DB2 コネクトの付録情報は不要 SuSE Linux に DB2 をインストール 追加が必要な Solaris オペレーティング環境パッチ・レベル AIX での DB2 エンタープライズ拡張エディションのインストール AIX CICS ユーザーを対象としたその他のインストール・ステップ Netscape LDAP ディレクトリー・サポート Netscape LDAP スキーマの拡張 Windows ME、Windows XP および Windows 2000 Datacenter エディション・ プラットフォームのサポート Windows XP Windows ME Windows 2000 Datacenter Server Windows 95 に DB2 をインストール Windows 2000 に DB2 をインストール Windows 2000 Terminal Server の管理モードでの DB2 の実行 Microsoft SNA サーバーおよび SNA マルチ・サイト・アップデート (2 フ ェーズ・コミット) のサポート IBM Communications Server for Windows NT (CS/NT) にユーザー ID とパ スワードを定義 ノード定義 取り外し可能ドライブが接続されていない場合に DB2 のインストールが停 止することがあります Windows 2000 で CLP を使用したときのエラー SQL1035N 特別レジスターで定義したビューによる移行の実行 IPX/SPX プロトコル・サポート (Windows 2000 版) 前バージョンの DB2 をアップグレードする前に DB2 の処理を停止 別の DB2 製品がすでにインストールされている場合はインストール後に db2iupdt を実行 DB2 コントロール・センターを実行するために Linux 環境を設定 DB2 ユニバーサル・データベース エンタープライズ・エディションおよび DB2 コネクト エンタープライズ・エディション (Linux (S/390 版)) Linux (S/390 版) でのデータ損失の可能性 DB2 Linux の Gnome および KDE デスクトップの組み込み Solaris カーネル構成パラメーター (推奨値) DB2 ユニバーサル・データベース・エンタープライズ - 拡張エディション (UNIX 版) 概説およびインストール shmseg カーネル・パラメーター (HP-UX) IBM 活動ウェアハウス・コントロール・データベースの移行 db2uiddl コマンドを用いた固有索引の移行 64 ビット AIX バージョンのインストール・エラー SMIT の使用 移行中のエラー IBM(R) DB2(R) コネクト ライセンスの活動化 ライセンス・センターを使用したライセンス・キーのインストールお よびライセンス・タイプの設定 db2licm コマンドを使用したライセンス・キーのインストールおよび ライセンス・タイプの設定 分散インストールの場合のライセンスの考慮事項 ウェアハウス・コントロール・データベースへのアクセス IBM e-server p690 および DB2 UDB バージョン 7 (AIX V5 版) エンタープライズ・エディション UNIX CD-ROM の試用製品 DB2 コネクト エンタープライズ・エディション UNIX CD-ROM の試用製品 Merant Driver Manager と DB2 UDB バージョン 7 ODBC ドライバー (UNIX 版) Web の情報カタログ・センターのインストール前に必要な追加の構成 コード・ページおよび言語サポート情報 - 訂正 DB2 データ・リンク・マネージャー 概説およびインストール AIX V5.1 でのサポート Dlfm 開始の失敗のメッセージ:「接頭部の afsfid を取得中にエラー」 アーカイブ・ファイルへの Tivoli Storage Manager クラスの設定 DFS クライアント・イネーブラーのディスク・スペース要件 AIX におけるデータ・リンク・ファイル・マネージャー・バックエンド・プ ロセスのモニター DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: DCE-DFS 環境における追加のインストールの注意点 "dlfm add_prefix" コマンドの失敗 dlfm 停止時にコピー・デーモンが停止しないなど、まれな現象が発生した 場合 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: db2setup ユーティリティーを使用して DB2 データ・リンク・マネ ージャーをインストール DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: DCE-DFS インストール後の作業 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: smit を使用して DB2 データ・リンク・マネージャーを手動でイン ストール DB2 データ・リンク DFS クライアント・イネーブラー DB2 データ・リンク・マネージャー (Solaris オペレーティング・システム 版) のインストールおよび構成 Windows NT のデータ・リンクでのアドミニストレーター・グループ権限 データ・リンク・ファイル・システム・フィルター (DLFF) インストールの ロギングの最小化 インストール後のメッセージのロギング Sun Solaris システム上でのログオンの最小化 DATALINK リストア データ・リンク・マネージャーの削除 SMIT を使用して DLFM コンポーネントをアンインストールすると他のファ イル・セットも除去される可能性があります 開始する前のホスト名の判別 DB2 データ・リンク・ファイル・マネージャーの操作: DB2 データベースか ら DB2 データ・リンク・マネージャーをドロップした後のクリー ンアップ dlfm Client_conf が失敗した場合のユーザー処置 DLFM1001E (新規エラー・メッセージ) DLFM セットアップ構成ファイル・オプション ファイルのリストア中に起こりうる問題 AIX 上でのデータ・リンク/DFS スクリプト dmapp_prestart 実行時エラー Tivoli Space Manager とデータ・リンクとの統合 制約事項と制限 第 4 章 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよ び構成 一般的なインストールの注意点 第 6 章 AIX でのインストールの検査 NFS 環境での回避策 インストールおよび構成補足 第 5 章 UNIX オペレーティング・システムへの DB2 クライアントのインス トール HP-UX カーネル構成パラメーター 第 12 章 お持ちのアプリケーションの実行 ランタイム・クライアントを使用するデータベース・ユーティリティ ーのバインド ODBC を使用しての DB2 への UNIX クライアント・アクセス 第 24 章 複数データ・ソース・アクセス用の連合システムのセットアップ 連合システム DB2 バージョン 8 データ・ソースを使用する場合は、フィックスパッ ク 8 以上が必要 制約事項 DB2 リレーショナル・コネクトのインストール 第 24 章 複数データ・ソース・アクセス用の連合システムのセットア ップ 第 26 章 Oracle データ・ソースへのアクセス 記述の誤り リモート LOB での作業時の問題回避 Sybase データ・ソースへのアクセス 連合サーバーへの Sybase データ・ソースの追加 Sybase コード・ページの指定 ODBC による Microsoft SQL Server データ・ソースへのアクセス (新しい 章) 連合サーバーへの Microsoft SQL Server データ・ソースの追加 Microsoft SQL Server コード・ページの検討 (Windows NT の場合の み) Informix データ・ソースへのアクセス (新しい章) 連合サーバーへの Informix データ・ソースの追加 III 管理 管理の手引き 入手可能なアップデート版 管理の手引き: 計画 第 8 章 物理データベース設計 表スペース設計上の考慮事項 キーの分割化 付録 D. リリース間の非互換性 接続喪失検出時に SQL30081N エラーが戻されない 識別属性を正しくハンドルするには、エクスポート・ユーティリティ ーにフィックスパック 7 以降が必要 付録 E. 各国語サポート (NLS) 国別/地域別コードおよびコード・ページのサポート インポート/エクスポート/ロードに関する考慮事項 -- コード・ペー ジ 1394 および 5488 の制約 日時の値 管理の手引き: インプリメンテーション Windows 2000 以降のシステムにおける DMS コンテナーの新しい指定方式 コントロール・センターの拡張例 管理の手引き: パフォーマンス システム一時表スキーマ 第 8 章 操作パフォーマンス ブロック・ベースのバッファー・プール 第 10 章 プロセッサーの追加による構成の拡大縮小 分割したデータベースにノードを追加する際の問題 第 13 章 DB2 の構成 ログ・アーカイブ完了チェックの頻度の増加 情報の照合 (collate_info) セクションに対する修正 DB2 レジストリーと環境変数 パフォーマンス変数への修正 レジストリー変数 DB2BPVARS の新しいパラメーター 各種レジストリー変数への修正および追加 汎用レジストリー変数の修正および追加 サテライト管理 手引きおよび解説書 バージョン 7.2 DB2 パーソナル・エディションおよび DB2 ワークグルー プ・エディションをサテライトとしてセットアップ 前提条件 同期化のためのバージョン 7.2 システムの構成 エンタープライズ・エディション・システムでのフィックスパック 2 以上のインストール バージョン 6 コントロール・センターおよびサテライト管理センター のアップグレード コマンド解説書 入手可能なアップデート版 db2updv7 - データベースをバージョン 7 現行修正レベルに更新 「ARCHIVE LOG 使用上の注意」への追加事項 REBIND RUNSTATS db2inidb - ミラーリングされたデータベースの初期化 使用法情報 db2relocatedb (新規コマンド) db2relocatedb - データベースの再配置 db2move データベース移動ツール GET ROUTINE コマンドの追加オプション GET ROUTINE CREATE DATABASE データ回復と高可用性の手引きと解説書 データ回復と高可用性の手引きと解説書がオンラインで使用可能 新しいアーカイブ・ロギング動作 データベース・リカバリーのための中断入出力の使用方法 LOGRETAIN=CAPTURE の場合の新たなバックアップおよびリストア動作 増分バックアップおよびリカバリー - 追加情報 NEWLOGPATH2 は、DB2_NEWLOGPATH2 と呼ばれるようになりました DB2 データ・リンク・マネージャー (AIX または Solaris オペレーティン グ環境) のバックアップ方式の選択 Tivoli Storage Manager -- LAN フリー・データ転送 データ移動ユーティリティー 手引きおよび解説書 エクスポート・ユーティリティーによる完全サポートが可能になった拡張識 別値 エクスポート、インポート、およびロードの LOB ファイル・ハンドルの変 更 IXF 考慮事項 インポート、エクスポート、およびロード・ユーティリティーに対するコー ド・ページ・サポート 第 2 章 インポート バッファー挿入を行うインポートを使用 第 3 章 ロード ロード操作後の保留状態 ロード制約事項と制限 totalfreespace ファイル・タイプ修飾子 第 4 章 オートローダー オートローダーの制約事項と制限 オートローダーの使用 rexecd - 認証を YES に設定している場合はオートローダーの実行に 必須 4.3.3 より前の AIX システムでは fork 中にオートローダーがハング することがある 付録 C. エクスポート/インポート/ロード・ユーティリティー・ファイル形 式 DB2 レプリケーションの手引きおよび解説書 レプリケーションおよび非 IBM サーバー Windows 2000 上のレプリケーション SQL ファイルの保管時に知られているエラー アプライ・プログラムおよびコントロール・センター別名 DB2 保守 Web 上の Data Difference Utility 第 3 章 データ・レプリケーション・シナリオ レプリケーションのシナリオ 第 5 章 レプリケーションの計画 表および列名 DATALINK レプリケーション LOB の制約事項 レプリケーションの計画 第 6 章 レプリケーション環境のセットアップ 任意の場所で更新 (Update-anywhere) の前提条件 レプリケーション環境のセットアップ 第 8 章 問題判別 第 9 章 キャプチャー・プログラムおよびアプライ・プログラム (AS/400 版) 第 10 章 キャプチャー・プログラムおよびアプライ・プログラム (OS/390 版) DB2 DataPropagator (OS/390 版) の前提条件 OS/390 での UNICODE および ASCII エンコード・スキーム 第 11 章 キャプチャー・プログラムおよびアプライ・プログラム (UNIX 版) UNIX および Windows でのキャプチャー・プログラムとアプライ・プ ログラムの環境変数の設定 第 14 章 表の構造 第 15 章 キャプチャー・プログラムとアプライ・プログラムのメッセージ 付録 A キャプチャー・プログラムおよびアプライ・プログラムをアプリケ ーション内で開始する システム・モニター 手引きおよび解説書 db2ConvMonStream 最大割り振りデータベース・ヒープ (db_heap_top) 問題判別の手引き ユーザーがログオンしていないときに DB2 を Windows 95、Windows 98、ま たは Windows ME で開始 第 1 章 効果的なトラブルシューティングの手段 問題分析および環境データ収集用のツール 第 2 章 DB2 ユニバーサル・データベース・サーバーのトラブルシューティ ング 第 8 章 DB2 データ・リンク・マネージャーのトラブルシューティング 第 15 章 ログ情報 UNIX ベース・システムでのスタック・トレースバック情報の収集 64 ビット・プラットフォームで DB2 ユニバーサル・データベースを使用する 第 5 章 構成 LOCKLIST shmsys:shminfo_shmmax 第 6 章 制約事項 XML エクステンダー 管理およびプログラミング MQSeries DB2 MQSeries 関数のインストールと構成 MQSeries のインストール MQSeries AMI のインストール DB2 MQSeries 関数を使用可能にする MQSeries メッセージ・スタイル メッセージ構造 MQSeries 関数の概説 制約事項 エラー・コード 使用のシナリオ 基本メッセージング メッセージの送信 メッセージの取り出し アプリケーション間接続 enable_MQFunctions enable_MQFunctions disable_MQFunctions disable_MQFunctions IV 管理ツール ツールを実行前の追加のセットアップ Linux 上の浮動小数点スタックを使用不可にする 日本語版 Linux 環境で必要な特定の Java レベル コントロール・センター リダイレクト・リストアを選択してデータベースをリストアする DB2 サーバー (VSE および VM 版) の管理化 コントロール・センターの Java 1.2 サポート Windows オペレーティング・システムでオンライン・ヘルプを使用時の「無 効なショートカット」エラー キーボード・ショートカットの不作動 OS/2 版 Java コントロール・センター Windows オペレーティング・システム上のジャーナルで完了したジョブを表 示する際の「ファイル・アクセスが拒否されました」エラー 複数サイト更新テスト接続 DB2 (OS/390 版) のコントロール・センター DB2 (OS/390 版) コントロール・センターの修正 「地理情報層の作成」ダイアログへの変更点 DB2 コントロール・センターのトラブルシューティング情報 UNIX ベース・システム上でのコントロール・センターのトラブルシューテ ィング OS/2 上での infopop の問題 jdk11_path 構成パラメーターのヘルプ スクリプト・センターまたはジャーナルを使用中の Solaris システム・エ ラー (SQL10012N) DPREPL.DFT ファイルのヘルプ 複数のコントロール・センター・アプレットの立ち上げ アプレットとして実行中のコントロール・センターのオンライン・ヘルプ コントロール・センターをアプレット・モードで実行 (Windows 95) 大きな照会結果の操作 コマンド・センター コマンド・センターの対話式ページでステートメント終止符を認識 インフォメーション・センター Java サンプル・ドキュメントに対する修正 Windows オペレーティング・システムでの「無効なショートカット」エラー Netscape がすでにオープンしているときに、Netscape Navigator の外部 Web リンクをオープンする (UNIX ベース・システム) インフォメーション・センター開始時の問題 ストアード・プロシージャー・ビルダー Java ストアード・プロシージャー (z/OS または OS/390 対応) に対するサ ポート SQL ストアード・プロシージャー (z/OS または OS/390 対応) に対するサ ポート z/OS または OS/390 資料に関するストアード・プロシージャー・ビルダー の参照の更新 結果セット・プロパティーの設定に対するサポート Windows NT における DB2 データベースからのプロシージャーのドロップ ウィザード データベース作成ウィザードの拡張サイズの設定 MQSeries 補助ウィザード OLE DB 補助ウィザード V ビジネス・インテリジェンス ビジネス・インテリジェンス・チュートリアル 改訂されたビジネス・インテリジェンス・チュートリアル DB2 ユニバーサル・データベース クイック・ツアー データウェアハウス・センター 管理の手引き 入手可能なアップデート版 ウェアハウス・サーバーの機能強化 OS/390 エージェントを使用して Trillium バッチ・システム JCL を実行 データウェアハウス・センターの 2 つの新規サンプル・プログラム 更新された DB2 ウェアハウス・マネージャーによる ETI.Extract(R) 移行 プログラムの管理 共通ウェアハウス・メタデータ交換 (CWMI) を使用したインポートおよびエ クスポート 入門 メタデータのインポート インポート・ユーティリティー実行後のメタデータの更新 メタデータのエクスポート タグ言語メタデータ・インポート/エクスポート・ユーティリティー キー定義 ステップおよび処理のスケジュール SAP ステップ情報 論理的に矛盾する表が作成される可能がある SAP コネクター情報 SAP コネクター・インストール上の制約事項 GetDetail BAPI のパフォーマンス Web コネクター情報 サポートされている WebSphere Site Analyzer のバージョン DB2 OLAP スターター・キット OLAP Server Web サイト サポートされるオペレーティング・システム・サービス・レベル UNIX での DB2 OLAP スターター・キットを完了する Solaris オペレーティング環境用の追加構成 すべてのオペレーティング・システム用の追加構成 ODBC を OLAP スターター・キット用に構成 UNIX システム上でのデータ・ソースの構成 UNIX システムでの OLAP メタデータ・カタログの構成 Windows システムでのデータ・ソースの構成 Windows システムでの OLAP メタデータ・カタログの構成 データ・ソースを構成したら OLAP スターター・キット・デスクトップからのログイン スターター・キットのログインの例 OLAP スターター・キットのサンプル・データベースを手動で作成および構 成する アプリケーションを OLAP スターター・キット・バージョン 7.2 に移行 既知の問題および制限事項 OLAP スプレッドシート・アドイン EQD ファイルの欠落 情報カタログ・マネージャー管理の手引き 情報カタログ・マネージャー初期設定ユーティリティー ライセンス交付の問題 インストールの問題 情報カタログ・マネージャーの機能強化 情報カタログ・マネージャーと Sybase の Windows 環境での非互換性 DB2 バージョン 7 情報カタログ・マネージャーによる DB2 バージョン 5 情報カタログへのアクセス 情報カタログのセットアップ 別の製品とのメタデータの交換 flgnxoln コマンドでのメタデータの交換 MDISDGC コマンドでのメタデータの交換 プログラムの呼び出し 情報カタログ・マネージャー・プログラミングの手引きおよび解説書 情報カタログ・マネージャー理由コード 情報カタログ・マネージャー 使用者の手引き 情報カタログ・マネージャー: オンライン・メッセージ FLG メッセージへの修正 メッセージ FLG0260E メッセージ FLG0051E メッセージ FLG0003E メッセージ FLG0372E メッセージ FLG0615E 情報カタログ・マネージャー: オンライン・ヘルプ Web 用情報カタログ・マネージャー DB2 ウェアハウス・マネージャー インストールの手引き 入手可能な「DB2 ウェアハウス・マネージャー インストールの手引き」の アップデート版 ウェアハウス・トランスフォーマーのソフトウェア要件 SAP R/3 用コネクター インストール前提条件 Web 用コネクター インストール前提条件 iSeries エージェントのポストインストールの考慮事項 iSeries ウェアハウス・エージェントでトランスフォーマーを使用する前に クエリー・パトローラー管理の手引き DB2 クエリー・パトローラー・クライアントの分離コンポーネント ノード状況の変更 dqpmigrate を使用した DB2 クエリー・パトローラーのバージョン 6 から の移行 照会管理の使用可能化 制御表の表スペースのロケーション dqpstart コマンドの新しいパラメーター iwm_cmd コマンドの新しいパラメーター 新しいレジストリー変数: DQP_RECOVERY_INTERVAL Query Administrator の開始 ユーザー管理 データ・ソース管理 ジョブ・キューの作成 ジョブ・アカウンティング表 コマンド行インターフェースの使用 クエリー・イネーブラー注意事項 ブランク列ページを返すことができる DB2 クエリー・パトローラー・トラ ッカー DB2 クエリー・パトローラー・トラッカー GUI ツールの追加情報 クエリー・パトローラーおよびレプリケーション・ツール クエリー・パトローラーのパフォーマンス改善 バージョン 6 で作成されたクエリー・パトローラー・ユーザー用の EXECUTE 特権の消失 クエリー・パトローラーの制約事項 付録 B. DB2 クエリー・パトローラー・クライアントのトラブルシューティ ング VI アプリケーション開発 管理 API 解説書 db2ArchiveLog (新規 API) db2ArchiveLog db2ConvMonStream db2DatabasePing (新規 API) db2DatabasePing - データベースの Ping db2HistData db2HistoryOpenScan db2Runstats db2GetSnapshot - スナップショットの取得 db2XaGetInfo (新規 API) db2XaGetInfo - リソース・マネージャー用情報の取得 db2XaListIndTrans (sqlxphqr に入れ替わる新規 API) db2XaListIndTrans - 未 確定トランザクションをリストする ログ・レコード失念 sqlaintp - エラー・メッセージの取得 sqlbctcq - 表スペース・コンテナー照会のクローズ sqleseti - クライアント情報の設定 sqlubkp - データベースのバックアップ sqlureot - 表の再編成 sqlurestore - データベースのリストア AIX 拡張共有メモリー・サポートに関するドキュメンテーション・エラー (EXTSHM) SQLFUPD locklist SQLEDBDESC DB2 アプリケーション構築の手引き 入手可能なアップデート版 Linux on S/390 および zSeries サポート Linux Rexx サポート コンパイルされた SQL プロシージャーの配布についての追加情報 Application Development Guide 入手可能なアップデート版 C/C++ ルーチン (UDF、ストアード・プロシージャー、あるいはメソッド) を Windows 上で登録する際の予防策 「Java で作成されたストアード・プロシージャーのデバッグ」に対する修 正 executeQuery および executeUpdate に対する新しい要件 追加されたメソッドに対する JDBC ドライバーのサポート JDBC および 64-bit システム IBM OLE DB Provider (DB2 UDB 版) CLI の手引きおよび解説書 ランタイム・クライアントを使用するデータベース・ユーティリティーのバ インド CLI アプリケーションで静的 SQL の使用 JDBC/ODBC/CLI 静的プロファイル の制限 ADT トランスフォーム 第 1 章 CLI の概要 DB2 CLI と組み込み SQL の相違 第 3 章 拡張フィーチャーの使用法 マルチスレッド・アプリケーションの書き込み DB2 CLI ユニコード・アプリケーションの作成 トランザクション・モニターとしての Microsoft Transaction Server (MTS) スクロール可能カーソル 複合 SQL の使用 ストアード・プロシージャーの使用 第 4 章 CLI/ODBC の構成とサンプル・アプリケーションの実行 構成キーワード 第 5 章 DB2 CLI 関数 SQLBindFileToParam - LOB ファイル参照を LOB パラメーターにバイ ンド SQLColAttribute -- 列属性を戻す SQLGetData - 列からのデータの入手 SQLGetInfo - 一般情報の取得 SQLGetLength - ストリング値の長さの検索 SQLNextResult - 次の結果セットを別のステートメント・ハンドルに 関連付ける SQLSetEnvAttr - 環境属性の設定 SQLSetStmtAttr -- ステートメント関連のオプションの設定 付録 C. DB2 CLI および ODBC ODBC ユニコード・アプリケーション 付録 D 拡張スカラー関数 日時関数 付録 K DB2 CLI/ODBC/JDBC トレース機能の使用 メッセージ解説書 入手可能なアップデート版 メッセージの更新 オンラインでのメッセージ・テキストの読み取り SQL 解説書 入手可能な SQL 解説書 のアップデート版 新しい関数とプロシージャーの使用可能化 SET SERVER OPTION - 資料のエラー CREATE TABLESPACE コンテナー文節に関する訂正とコンテナー・ストリング 情報 CREATE TABLESPACE EXTENTSIZE 情報への修正 GRANT (表、ビュー、またはニックネーム特権) - 資料のエラー MQSeries 情報 スカラー関数 表関数 MQSeries 関数でサポートされるようになった CLOB データ データ・タイプ情報 データ・タイプのプロモーション データ・タイプ間のキャスト 割り当てと比較 結果データ・タイプの規則 ストリング変換の規則 式 述部 ユニコード情報 スカラー関数およびユニコード GRAPHIC タイプと DATE/TIME/TIMESTAMP の互換性 日時値のストリング表記 データ・タイプ間のキャスト 割り当てと比較 日時の割り当て DATE GRAPHIC TIME TIMESTAMP VARGRAPHIC ユニコード・データベースのより大きな索引キー ALTER TABLE CREATE INDEX CREATE TABLE ALLOCATE CURSOR ステートメントの注の誤り GET DIAGNOSTICS ステートメントの追加オプション GET DIAGNOSTICS ステート メント 副選択内の ORDER BY 全選択 副選択 order-by-clause select-statement SELECT INTO ステートメント OLAP 関数 (window-order-clause) GET_ROUTINE_SAR プロシージャー用の新規入力引き数 SET INTEGRITY ステートメントに必要な許可 付録 N. 例外表 ユニコード更新 入門 DB2 ユニコード・データベースおよびアプリケーション 資料の更新 VII ホスト・システムへの接続 DB2 コネクト 使用者の手引き 増加する DB2 コネクト・データ転送速度 エクストラ照会ブロック RFC-1323 ウィンドウ・スケーリング 疎結合トランザクションに対する DB2 コネクト・サポート Kerberos サポート コネクティビティー補足 VM 環境でのアプリケーション・サーバーのセットアップ CLI/ODBC/JDBC 構成 PATCH1 および PATCH2 の設定 VIII 追加の情報 追加の情報 DB2 Everywhere は DB2 Everyplace に変更されました DB2 UDB バージョン 7 のユーザー補助機能 キーボードによる入力および操作 ディスプレイを見やすくする機能 選べる警告キュー 補助技術の互換性 利用しやすい資料 マウスが必要 「バインド・ファイルが見つかりません」のエラーで DB2 ランタイム・ク ライアント結果からバインドを試みる サーチ・ディスカバリー HP-UX 11 のメモリー・ウィンドウ DB2 DFS クライアント・イネーブラーのアンインストール Windows NT 上でのクライアントの認証 連合システムの制約 MPP 区分表を用いた連合制限 DataJoiner 制約 ヘブライ語の情報カタログ・マネージャー (Windows NT 版) DB2 の SNA SPM が Windows ブート後に失敗します Windows NT および Windows 2000 での DB2 に対するサービス・アカウント 要件 データウェアハウス・センター (DWC) で使用されるすべてのユーザー定義 プログラムをコミットする Windows NT 上でのクライアント・サイド・キャッシング ライフ・サイエンス データ・コネクト 新規ラッパー 特記事項- SQL Assist の機能強化 バックアップおよびリストア・コマンドのヘルプ 「ウェアハウス・マネージャー」は「DB2 ウェアハウス・マネージャー」 第 IX 部 付録 付録. 特記事項 商標 ii) DB2 ユニバーサル・データベース バージョン 7 フィックスパック 8 へよ うこそ。 注: テキストとして表示する場合は、このリリース情報はモノスペースのフォ ントでご覧ください。 DB2 ユニバーサル・データベースおよび DB2 コネクト・サポート・サイトは定 期的に更新されます。最新情報については、 http://www.ibm.com/software/data/db2/udb/winos2unix/support を調べてく ださい。 この文書には、DB2 のマニュアルが印刷された時には使用できなかった次の製 品に関する情報が含まれています。 IBM DB2 ユニバーサル・データベース パーソナル・エディション バージョン 7.2 IBM DB2 ユニバーサル・データベース ワークグループ・エディション バージョン 7.2 IBM DB2 ユニバーサル・データベース エンタープライズ・エディション バージョン 7.2 IBM DB2 データ・リンク・マネージャー バージョン 7.2 IBM DB2 ユニバーサル・データベース エンタープライズ拡張エディション バージョン 7.2 IBM DB2 クエリー・パトローラー バージョン 7.2 IBM DB2 パーソナル開発者版 バージョン 7.2 IBM DB2 ユニバーサル開発者版 バージョン 7.2 IBM DB2 データウェアハウス・マネージャー バージョン 7.2 IBM DB2 リレーショナル・コネクト バージョン 7.2 IBM DB2 コネクト パーソナル・エディション バージョン 7.2 IBM DB2 コネクト エンタープライズ・エディション バージョン 7.2 追加のリリース情報ファイルは READCON.TXT としてインストールされ、次の製 品に対して提供されます。 IBM DB2 コネクト パーソナル・エディション バージョン 7.2 IBM DB2 コネクト エンタープライズ・エディション バージョン 7.2 DB2 ライフ・サイエンス データ・コネクト製品の資料は、IBM ソフトウェア・ サイト http://www.ibm.com/software/data/db2/lifesciencesdataconnect/library.html からダウンロードできます。 この製品に関する情報は、 http://www.ibm.com/software/data/db2/lifesciencesdataconnect でオンライ ンでご利用になれます。 以下のブックはフィックスパック 4 用に更新されており、最新の PDF が http://www.ibm.com/software/data/db2/udb/winos2unix/support からオンラ インでダウンロードできます。 管理の手引き DB2 アプリケーション構築の手引き Application Development Guide コマンド解説書 データ回復と高可用性の手引きと解説書 データウェアハウス・センター 管理の手引き メッセージ解説書 SQL 解説書 DB2 ウェアハウス・マネージャー インストールの手引き これらの資料には、更新済みの解説書への追加情報が記載されています。すべ ての更新済み資料は CD でも入手可能です。この CD は、DB2 サービス経由で PTF 番号 U478862 を使用してご注文いただけます。 DB2 サービスへの連絡方法 は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 新機能には、DB2 バージョン 7.2 の主要な機能強化の概説が含まれています。 新機能のバージョン 7.2 をお持ちでない場合は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support でご覧にな れます。また、ダウンロードも可能です。 DB2 ファミリー製品の最新情報については、サブスクリプション無料の "DB2 Magazine" を申し込んでください。 このマガジンのオンライン・エディション は、http://www.db2mag.com から入手できます。このサイトに、サブスクリプ ション方法に関する説明もあります。 注: リリース情報では、Windows NT を参照しているときは、Windows 2000 も 含まれます。"Windows ME、Windows XP および Windows 2000 Datacenter エディション・プラットフォームのサポート"にリストされている製品の コンテキストでは、特に断り書きがないかぎり、Windows XP も含まれま す。 注: ページの左方にあるリビジョン・バー (|) は、リリース情報の初版発行以 降にその行が追加または変更されたことを示します。 第 I 部 最初にお読みください バージョン 7 リリース情報 これらのリリース情報は、FixPak 8 用にアップデートされています。 これら に含まれる情報は、Fixpak 8 以降のフィックスパックをご使用のお客様にも適 用されます。 ここではすべてを網羅せずに、資料の主な変更点に焦点を当てま す。作業環境に関連するリリース情報の該当セクションを参照し、あらゆる関 連アップデートを見逃さないよう注意してください。 FixPak 8 以降にバージ ョン 7 に追加された新機能情報に関しては、 FixPak Readmes をご覧くださ い。 * "NFS 問題によって AIX V5 オペレーティング・システム上で db2stop がハ ングする" * "S/390 上の Linux で DB2 EE または DB2 コネクト EE インストール・イ メージをアクセス可能にする" * "DB2 コネクトの付録情報は不要" * "SuSE Linux に DB2 をインストール" * "IBM e-server p690 および DB2 UDB バージョン 7 (AIX V5 版)" * "DB2 バージョン 8 データ・ソースを使用する場合は、フィックスパック 8 以上が必要" * "ステップ 1: 環境変数の設定およびプロファイル・レジストリーの更新" * "情報の照合 (collate_info) セクションに対する修正" * "db2updv7 - データベースをバージョン 7 現行修正レベルに更新" * "RUNSTATS" * "オートローダーの制約事項と制限" * "オートローダーの使用" * "アプライ・プログラムおよびコントロール・センター別名" * "最大割り振りデータベース・ヒープ (db_heap_top)" * "Web コネクター情報" * "db2Runstats" * "C/C++ ルーチン (UDF、ストアード・プロシージャー、あるいはメソッド) を Windows 上で登録する際の予防策" * "JDBC および 64-bit システム" * "CREATE TABLESPACE コンテナー文節に関する訂正とコンテナー・ストリン グ情報" * "CREATE TABLESPACE EXTENTSIZE 情報への修正" 製品情報 DB2 バージョン 7 (Solaris オペレーティング環境版) でサポートしている CPU UltraSparc より以前のバージョンの CPU はサポートしていません。 Red Flag Linux での中国語 (簡体字) ロケール修正 中国語 (簡体字) の Red Flag Linux Server バージョン 1.1 を使用する場合 は、 Red Flag に問い合わせ、中国語 (簡体字) ロケール修正を入手してくだ さい。バージョン 1.1 の中国語 (簡体字) ロケール修正がないと、DB2 は中国 語 (簡体字) のコード・ページを 1386 と認識しません。 日本語 Linux 版 および中国語 (簡体字) Linux 版 の DB2 の追加ロケール設定 日本語版、または中国語 (簡体字) 版の Linux システムでコントロール・セン ターなどの Java GUI ツールを使用したい場合は、追加ロケールの設定が必須 となります。日本語や中国語の文字は、この設定がないと正しく表示すること ができません。コントロール・センターの呼び出しを行う前に、ユーザー・プ ロファイルに以下の設定を組み込むか、コマンド行から実行してください。 日本語システムの場合: export LC_ALL=ja_JP 中国語 (簡体字) システムの場合: export LC_ALL=zh_CN PTX での日本語の制限 PTX システム上で DB2 UDB を日本語で稼働している場合は、 DB2 が使用する 一部のプロセスが正しい地域情報を継承しない場合があります。これを防ぐた めには、DB2CODEPAGE および DB2COUNTRY 登録変数をご使用の地域に対応する 値に手動で設定してください。 Microsoft Internet Explorer 上でのコントロール・センターの問題 Internet Explorer (IE) セキュリティー・オプション設定によって起きる問題 があります。コントロール・センターは未署名 jar を使用するため、システム 情報へのアクセスは、セキュリティー・マネージャーによって使用不可となり ます。 この問題をなくすには、IE のセキュリティー・オプションを次のように再構成 してください。 1. 「表示」メニュー (IE4) または「ツール」メニュー (IE5) で「インターネ ット・オプション」を選択する。 2. 「セキュリティー」ページで「信頼済みサイト・ゾーン」を選択する。 3. 「サイトの追加...」をクリックする。 4. コントロール・センターの Web サーバーを信頼済みサイト・リストに追加 する。コントロール・センター Web サーバーが同じドメインにある場合は、 (ドメイン・ネームを指定しないで) Web サーバー名のみを追加すればよい 場合があります。以下に例を示します。 http://ccWebServer.ccWebServerDomain http://ccWebServer 注: この URL を入力する際には、接頭部 https:// を使用するか、または オプションこのゾーンのサイトにはすべてサーバーの確認 (https:) を必要とする」を選択解除してこのサイトを追加できるようにする必 要があります。 5. 「OK」をクリックする。 6. 「設定...」(IE4) または「レベルのカスタマイズ...」(IE5) をクリックす る。 7. 「Java」-->「Java の許可」へスクロールダウンし、「カスタム」を選択す る。 8. 「Java カスタム設定...」をクリックする。 9. 「権限の編集」ページを選択する。 10. 「未署名のコンテンツ」-->「未署名のコンテンツの実行」-->「追加の未 署名の権限」-->「システム情報」までスクロールダウンし、「有効にする 」を選択する。 11. 開いているウィンドウのそれぞれで「OK」をクリックする。 コントロール・センター機能の喪失 DB2 バージョン 7.2 で使用した場合、フィックスパック 6 より前のバージョン 6 コントロール・センター・クライアントと、フィックスパック 2 より前のバ ージョン 2 クライアントは、ほぼすべての機能を失います。これを修正するた めに、バージョン 6 クライアントはフィックスパック 6 またはそれ以降に、 バージョン 7 クライアントはフィックスパック 2 またはそれ以降にそれぞれ アップグレードしてください。 フィックスパック 2 を DB2 サーバーに適用しても、下位レベルのコントロー ル・センター・クライアントには問題は発生しません。 DB2 UDB への Netscape CD 添付の中止 Netscape CD は現在、DB2 UDB に添付されていません。Netscape 製品は http://www.netscape.com で入手できます。 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 を必要とします。 DB2 バージョン 7.2 での新規のビジネス・インテリジェンス機能強化 バージョン 7.2 の新機能およびその他の一部の文書で、バージョン 7.2 で新 たに追加された新規のビジネス・インテリジェンス機能強化について紹介され ています。これらの機能強化は後日に入手できます。 フィックスパック 2A 以降が原因で IBM DB2 OLAP Server に起こる問題 UNIX で IBM DB2 OLAP Server を使用する場合は、DB2 ユニバーサル・データ ベース V7 のフィックスパック 2A をインストールした後で DB2 OLAP Server に問題が起こることがあります。フィックスパック 2A およびそれ以降のフィ ックスパックでは、ユニコードをサポートする新しい ODBC ドライバーがイン ストールされますが、これらの新しいドライバーは DB2 OLAP Server ではサポ ートされません。DB2 OLAP Server での回避策としては、使用する ODBC ファ イルを切り替えて、非ユニコード ODBC ドライバーがポイントされるようにし ます。 非ユニコード・ドライバーが名前変更されて、名前に「_36」が付けられるよう になりました。例えば、Solaris オペレーティング環境の場合は、ドライバー libdb2.so は libdb2_36.so に名前変更されました。ODBC ドライバーの変更に ついての詳細は、「OLAP セットアップおよび使用者の手引き」の第 4 章 『AIX、Solaris オペレーティング環境、および HP-UX でのインストール』の 『SQL インターフェース用の ODBC のロードおよび構成』を参照してください。 WebSphere 3.5.5 を使用時のセグメント化違反 Linux390 で DB2 V7.2 フィックスパック 4 またはそれ以降と一緒に WebSphere 3.5.5 ユーザー・プロファイル・サンプルを実行中に、「SIGSEGV 11 (*) セグ メント化違反」を受け取る場合があります。この問題は JDK の障害に関連して おり、JDK 1.2.2 および JDK 1.3 の両方で起きます。 さらに問題が他の JDBC アプリケーションに影響する可能性があります。 11 月の JDK 1.2.2 のサービス・リリースで、この問題を修正しています。1 月のサービス・リリースにおいて JDK 1.3 で修正されます。 この問題を回避するには、次のコマンドで JIT をオフにします。 export JAVA_COMPILER=NONE Veritas AIX Volume Manager のサポート DB2 UDB エンタープライズ・エディション、フィックスパック 7 以降は、 Veritas AIX Volume Manager バージョン 3.2 (AIX V5.1 版) ML 2 以降と一緒 に使用することができます。 Veritas AIX Volume Manager の使用は、それ以 外のバージョンの DB2 UDB (エンタープライズ拡張エディションも含む) で は、現時点ではサポートされていません。 AIX V4 上の Java アプリケーションに必要な修正 AIX V4.3.3 で稼働する Java アプリケーションは、カーネル・ファイル・セッ ト bos.mp または bos.up が 4.3.3.77 の場合は、突然、終了する場合があり ます。 コマンド lslpp -l bos.ip bos.mp を実行して、カーネル修正レベルを判別し ます。 AIX V4.3.3 で Java をご使用のお客様はすべて、4.3.3.78 にアップグレード することをお勧めします。カーネルを推奨のレベルに更新する修正が提供され ています。 Authorized Problem Analysis Report (APAR) IY25282 用の修正を 入手する必要があります。 IY25282 用の修正をインストールすると、Java 終了状態を訂正できます。次回 の修正は、APAR 番号 IY26149 で 2002 年の第 1 四半期にリリースされる予定 です。 AIX V5.1C は IY25377 と一緒に出荷され、これには同じ修正内容が入っていま す。 詳しい情報、アドバイスについては、AIX サポートにお尋ねください。 NFS 問題によって AIX V5 オペレーティング・システム上で db2stop がハング する AIX V5 を使用しており、システムにデータベース・パーティションが多数ある 場合は、db2stop コマンドがハングする可能性があります。この問題を回避す るには、db2stop コマンドの NODENUM オプションを使用して、各区画を個別に 停止してください。この問題は AIX APAR IY32512 で修正されています。 オンライン資料 (HTML、PDF、検索) の注釈 Windows 2000 オペレーティング・システムでサポートされている Web ブラウザ ー Windows 2000 版 Microsoft Internet Explorer のご使用をお勧めします。 Netscape をご使用になる場合は、以下の点についてご了承ください。 * Windows 2000 で Netscape を使用し、DB2 オンライン情報で検索を実行す ると、完了までに長い時間がかかります。Netscape は使用可能な CPU リソ ースをすべて使用し、無期限に実行するように見えます。検索結果が最終的 に戻るまでの間、検索の実行依頼を行ってから、他のウィンドウをクリック しフォーカスを変更することをお勧めします。相応な検索時間が経過すると 検索結果が戻ってきます。 * オンライン・ヘルプは最初は Netscape ブラウザー・ウィンドウで正しく表 示されますが、あらかじめブラウザー・ウィンドウを閉じずにコントロー ル・センターの別の部分からオンライン・ヘルプにアクセスしようとする と、表示されない場合があります。ブラウザー・ウィンドウを閉じて、再度 ヘルプを呼び出すと、ヘルプが正しく表示されます。この問題は、"Netscape を立ち上げようとした場合のエラー・メッセージ"のステップを実行すると 解決できる場合があります。コントロール・センターでヘルプを呼び出す前 にブラウザー・ウィンドウを閉じれば、この問題をうまく避けることもでき ます。 * コントロール・センターでヘルプを呼び出す際、もしくはインフォメーショ ン・センターからトピックを呼び出す際に、エラー・メッセージが表示され ることがあります。これを解決するには "Netscape を立ち上げようとした 場合のエラー・メッセージ"のステップを実行します。 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 新しく加えた値、もしくは変更した値を有効にするにはシステムを再起動しな くてはなりません。 OS/2 上で TCP/IP を使用するよう NetQuestion を切り替える OS/2 上で TCP/IP を使用するための、NetQuestion の切り替えに関する説明が 完全ではありません。これらの説明にある *.cfg ファイルの場所は、 NetQuestion インストール・ディレクトリーのデータ・サブディレクトリーで す。以下のいずれかのコマンドを使用して、NetQuestion インストール・ディ レクトリーを判別することができます。 echo %IMNINSTSRV% //for SBCS installations echo %IMQINSTSRV% //for DBCS installations Netscape を立ち上げようとした場合のエラー・メッセージ Netscape を立ち上げようとした際、以下のようなエラー・メッセージが表示さ れた場合。 Cannot find file (or one of its components). Check to ensure the path and filename are correct and that all required libraries are available. 「D:\Program Files\SQLLIB\CC\..\doc\html\db2help\XXXXX.htm」を開くことが できませんでした。 Windows NT、95、もしくは 98 上でこの問題を解決するには、次のステップを 実行してください (Windows 2000 の場合のステップは、このステップの後にあ ります)。 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. 「OK」をクリックします。 10. HTML Netscape Hypertext Document および SHTML Netscape Hypertext Document ファイル・タイプで、4 から 8 までのステップを繰り返します。 UNIX ベース・システム上での Adobe Acrobat Reader の構成要件 UNIX ベースのプラットフォーム上では、Acrobat Reader は英語版のみ提供さ れています。そのため英語以外の言語ロケール PDF ファイルを開こうとする と、エラーが発生します。これらのエラーは PDF ファイルに関するフォントの アクセスか抽出の問題であると示していますが、実際は、UNIX の英語以外の言 語ロケール上で、英語版の Acrobat Reader が正しく機能しないという現象に よるものです。 そのような PDF ファイルを表示するためには、英語版の Acrobat Reader を立 ち上げる前に以下のステップのいずれかを実行し、英語ロケールへ切り換えま す。 * Acrobat Reader の起動スクリプトを編集し、スクリプト内の #!/bin/sh ス テートメントの後ろに以下の行を追加します。 LANG=C;export LANG Netscape Navigator やアプリケーションのヘルプ・メニューなどといった 他のアプリケーションから Acrobat Reader が起動された場合、この方法に より正しい動作が保証されます。 * コマンド・プロンプトで LANG=C と入力し、Acrobat Reader のアプリケー ション環境を英語に設定します。 より詳しい情報は、Adobe Systems (http://www.Adobe.com) にご連絡くださ い。 SQL 解説書は 1 つの PDF ファイルで提供されます 各ブックの付録『DB2 ライブラリーの使用』では、SQL 解説書は PDF 形式で 2 ボリュームであると説明されています。これは正しくありません。 印刷物では 2 冊あり、その 2 冊に対応するフォームの番号も正しいですが、 PDF ファイルは 1 ファイルのみで構成されており、その中に両方の内容が含ま れています。その PDF ファイルのファイル名は db2s0x70 です。 第 II 部 インストールおよび構成 一般インストール、移行、および構成情報 すべてのサポートされる DB2 クライアントのインストール・パッケージをダウ ンロード プレバージョン 7 の全クライアントを含む、サポートされるすべての DB2 ク ライアントのインストール・パッケージをダウンロードするには、IBM DB2 フ ィックスパックおよびクライアント Web サイト ( http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/download.d2w/report ) に接続してください。 S/390 上の Linux で DB2 EE または DB2 コネクト EE インストール・イメージ をアクセス可能にする 「概説およびインストール」マニュアルで記述されている説明に従ってこのイ ンストールを進める前に、tar -cvf コマンドを使用して、CD コンテンツから tar ファイルを作成し、この tar ファイルを S/390 マシンからアクセス可能 なマシンに配置してください。 DB2 コネクトの付録情報は不要 「DB2 コネクト 概説およびインストール」マニュアルの付録『ファイルのリス ト、ファイルのバインド、およびパッケージ』にある、Y 値をプラットフォー ムにマップするリストは必要がありませんので、無視してください。 SuSE Linux に DB2 をインストール 「DB2 ユニバーサル・データベース (UNIX 版) 概説およびインストール」第 4 章の『SuSE Linux に DB2 をインストール』のセクションは無視してください。 このセクションに概説されている前提条件は、必要なくなりました。 追加が必要な Solaris オペレーティング環境パッチ・レベル 「DB2 概説およびインストール (UNIX 版)」マニュアルにリストされたパッチ に加えて、 DB2 ユニバーサル・データベース バージョン 7 (Solaris オペレ ーティング環境版 バージョン 2.6) には、パッチ 106285-02 以降が必要です。 AIX での DB2 エンタープライズ拡張エディションのインストール 「DB2 エンタープライズ拡張エディション (UNIX 版) 概説およびインストー ル」マニュアルの『インストールの実行』セクションのステップ 4 に、以下の コマンドを入力して CD-ROM ファイル・システムを割り振るように記述されて います。 crfs -v cdrfs -p ro -d cd0 このコマンドを完全に正常に完了させるには、--m コマンドを使用してマウン ト・ポイントも指定する必要があります。 crfs -v cdrfs -p ro -d cd0 -m /cdrom また、『インストールの実行』セクションには、欠落しているステップがあり ます。ステップ 5 で制御ワークステーションに CD-ROM ファイル・システムを マウントした後、区分データベース・システムに関与する各ノードごとに、リ モートで CD-ROM ファイル・システムをマウントする必要があります。/cdrom がまだ関連ノードに無い場合には、以下のコマンドを使用して、/cdrom ファイ ル・システムを制御ワークステーションにエクスポートし、リモートでマウン トします。 exportfs -i -o ro /cdrom dsh mkdir /cdrom dsh mount cws_hostname: /cdrom /cdrom cws_hostname は、制御ワークステーションのホスト名です。 AIX CICS ユーザーを対象としたその他のインストール・ステップ DB2 UDB またはいずれかの DB2 UDB フィックスパック を AIX CICS システム にインストールしている場合は、インストール完了後に以下の追加のステップ を実行する必要があります。これらのステップについては、「CICS/6000 Administration Guide」の『Configurarion steps for Database 2』のセクシ ョンで詳しく説明しています。 1. libdb2.a ライブラリーから、DB2 UDB (AIX 版) 共用オブジェクトを作成し ます。 2. DB2 switchload ファイルを作成し、そのデータベースの XA 定義によって 指定されたディレクトリーに入れます。 3. その環境内で COBOL を利用している場合には、cocsmkcobol ツールを再実 行します。 Netscape LDAP ディレクトリー・サポート DB2 は、データベースおよびノード・ディレクトリーの集中管理および統合の ための LDAP ディレクトリーの使用をサポートします。DB2 の以前のリリース では、Microsoft Active Directory および IBM SecureWay Directory しかサ ポートされていませんでした。 DB2 は、Netscape Directory Server v4.12 以 降および iPlanet(TM) Directory Server 5.0 以降の LDAP サーバーもサポー トするようになりました。 Netscape LDAP スキーマの拡張 以下の説明は、Netscape Directory Server 4.1 に関するものです。 Netscape Directory Server により、slapd.user_oc.conf および slapd.user_at.conf の 2 つのファイルに属性およびオブジェクト・クラス定 義を追加することによって、アプリケーションはスキーマを拡張できます。こ れらの 2 つのファイルは、\slapd-\config ディレクトリーにあります。 DB2 属性は、次のように slapd.user_at.conf に追加する必要があります。 注: このコンテキストでは、bin、cis、ces、および dn はそれぞれ、バイナリ ー、大文字小文字を区別しないストリング、大文字小文字を区別するス トリングおよび識別名を表します。 : ############################################################################ # # IBM DB2 Universal Database V7.2 # Attribute Definitions # ############################################################################ attribute binProperty 1.3.18.0.2.4.305 bin attribute binPropertyType 1.3.18.0.2.4.306 cis attribute cesProperty 1.3.18.0.2.4.307 ces attribute cesPropertyType 1.3.18.0.2.4.308 cis attribute cisProperty 1.3.18.0.2.4.309 cis attribute cisPropertyType 1.3.18.0.2.4.310 cis attribute propertyType 1.3.18.0.2.4.320 cis attribute systemName 1.3.18.0.2.4.329 cis attribute db2nodeName 1.3.18.0.2.4.419 cis attribute db2nodeAlias 1.3.18.0.2.4.420 cis attribute db2instanceName 1.3.18.0.2.4.428 cis attribute db2Type 1.3.18.0.2.4.418 cis attribute db2databaseName 1.3.18.0.2.4.421 cis attribute db2databaseAlias 1.3.18.0.2.4.422 cis attribute db2nodePtr 1.3.18.0.2.4.423 dn attribute db2gwPtr 1.3.18.0.2.4.424 dn attribute db2additionalParameters 1.3.18.0.2.4.426 cis attribute db2ARLibrary 1.3.18.0.2.4.427 cis attribute db2authenticationLocation 1.3.18.0.2.4.425 cis attribute db2databaseRelease 1.3.18.0.2.4.429 cis attribute DCEPrincipalName 1.3.18.0.2.4.443 cis DB2 オブジェクト・クラスは、次のように slapd.user_oc.conf ファイルに追 加する必要があります。 ############################################################################ # # IBM DB2 Universal Database V7.2 # Object Class Definitions # ############################################################################ objectclass eProperty oid 1.3.18.0.2.6.90 requires objectClass allows cn, propertyType, binProperty, binPropertyType, cesProperty, cesPropertyType, cisProperty, cisPropertyType objectclass eApplicationSystem oid 1.3.18.0.2.6.8 requires objectClass, systemName objectclass DB2Node oid 1.3.18.0.2.6.116 requires objectClass, db2nodeName allows db2nodeAlias, host, db2instanceName, db2Type, description, protocolInformation objectclass DB2Database oid 1.3.18.0.2.6.117 requires objectClass, db2databaseName, db2nodePtr allows db2databaseAlias, description, db2gwPtr, db2additionalParameters, db2authenticationLocation, DCEPrincipalName, db2databaseRelease, db2ARLibrary DB2 スキーマ定義を追加した後で、すべての変更を活動化するために、ディレ クトリー・サーバーを再始動する必要があります。 Windows ME、Windows XP および Windows 2000 Datacenter エディション・プラ ットフォームのサポート DB2 は、Microsoft Windows ME、Windows XP、および Windows 2000 Datacenter エディション・プラットフォームをサポートするようになりました。以下は、 追加のプラットフォーム固有の情報です。 Windows XP フィックスパック 4 以降のインストールにおいて、以下の製品およびバージョ ンが 32 ビット Windows XP をサポートします。 * IBM DB2 UDB パーソナル・エディション バージョン 7.2 * IBM DB2 パーソナル開発者版 バージョン 7.2 * IBM DB2 ユニバーサル開発者版 バージョン 7.2 * IBM DB2 コネクト パーソナル・エディション バージョン 7.2 * IBM DB2 コネクト エンタープライズ・エディション バージョン 7.2 * IBM DB2 UDB ワークグループ・エディション バージョン 7.2 * IBM DB2 UDB エンタープライズ・エディション バージョン 7.2 * IBM DB2 ランタイム・クライアント バージョン 7.2 * IBM DB2 アドミニストレーション・クライアント バージョン 7.2 * IBM DB2 アプリケーション開発クライアント バージョン 7.2 DB2 は、Windows XP システムでも、他のバージョンと同じ各国語版をサポート します。 制約事項 インストール中にユーザー ID とパスワードを入力する際に、有効なユーザ ー・アカウントであるにもかかわらず、「インストール・パネルに入力したユ ーザー・アカウントが無効」というメッセージを受信する場合があります。こ れは、ユーザー ID がマシンに存在している場合にのみ起こります。まだ存在 しないユーザー名を入力した場合は、この問題は起こりません。 db2admin 以外のユーザー・アカウントの下で DB2 をインストールするよう選 択した場合、アカウント名が DB2 命名規則に従っていることを確認してくださ い。最も重要なこととして、名前にスペースを含むことはできません。例えば、 my_name は使用できますが、 my name は使用できません。 製品のインストール中にエラー 1052 を受信した場合は、以下を行ってくださ い。 1. エラー・ウィンドウを開いたままにします。 2. コマンド・ウィンドウを開きます。 3. コマンド db2start.exe を実行します。 4. エラー・ウィンドウで指定されたコマンドを、コマンド行で表示されている ユーザーのパスワードを使用して実行します。 5. エラー・ウィンドウに戻り、「了解」をクリックします。これで、インスト ールを続行できます。 中国語 (簡体字) を使用している場合で、コントロール・センターで正しく表 示されないフォントがある場合、 sqllib\java\java12\jdk\jre\lib\font.properties.zh を変更してください。 つまり、filename.\u5b8b\u4f53=simsun.ttf の項目を filename.\u5b8b\u4f53=simsun.ttc と置き換えます。 Windows ME フィックスパック 2 またはそれ以降のインストールにおいて、以下の製品およ びバージョンが Windows ME をサポートします。 * IBM DB2 UDB パーソナル・エディション バージョン 7.1 * IBM DB2 パーソナル開発者版 バージョン 7.1 * IBM DB2 ユニバーサル開発者版 バージョン 7.1 * IBM DB2 コネクト パーソナル・エディション バージョン 7.1 * IBM DB2 ランタイム・クライアント バージョン 7.1 * IBM DB2 アドミニストレーション・クライアント バージョン 7.1 * IBM DB2 アプリケーション開発クライアント バージョン 7.1 制約事項 HTML 検索サーバー機能は、現時点では Window ME ではサポートされません。 DB2 をアンインストールする場合、「MFC42U.DLL ファイルが見つからない」と いうエラー・メッセージを受信する場合があります。DB2 を完全にアンインス トールするには、アンインストール処理が完了した後に、手動で sqllib ディ レクトリーを削除してください。 Windows 2000 Datacenter Server 以下の DB2 製品が、Windows 2000 Datacenter Server、Windows 2000 Advanced Server、および Windows 2000 Server で認証されています。 * IBM DB2 ユニバーサル・データベース エンタープライズ・エディション バ ージョン 7.2 * IBM DB2 ユニバーサル・データベース エンタープライズ・エディション バ ージョン 7.2 * IBM DB2 データベース・ワークグループ・エディション バージョン 7.2 * IBM DB2 コネクト エンタープライズ・エディション バージョン 7.2 Windows 95 に DB2 をインストール DB2 を英語以外の Windows 95 システムにインストールする場合には、DB2 UDB をインストールする 前に、Winsock のバージョンを Winsock 2 にアップデー トする必要があります。Winsock 2 のアップグレード・ユーティリティーは、 Microsoft 社から提供されています。 Windows 2000 に DB2 をインストール Windows 2000 では、前のバージョンの DB2 に上書きインストールする場合 や、現行バージョンを再インストールする場合には、DB2 のすべてのサービス に対して、回復オプションが「Take No Action」に設定されていることを確認 してください。 Windows 2000 Terminal Server の管理モードでの DB2 の実行 DB2 UDB バージョン 7.1、フィックスパック 3 以降の場合、DB2 は Windows 2000 Terminal Server を管理モードで実行できます。それ以前のものを使用し ている場合、DB2 は Windows 2000 Terminal Server をアプリケーション・サ ーバー・モードでしか使用できません。 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 フェーズ・コミットを使用できます。 IBM Communications Server for Windows NT (CS/NT) にユーザー ID とパスワ ードを定義 お使いの DB2 サーバーと DB2 クライアントとのリモート接続の通信プロトコ ルとして APPC をご使用になっている場合、また SNA 製品として CS/NT をご 使用になっている場合は、以下のキーワードが CS/NT 構成ファイルに正しく設 定されていることを確認しておきます。このファイルは通常、以下のディレク トリーにあります。x:\ibmcs\private ディレクトリー ノード定義 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 と パスワードを入力する。「了解」をクリックする。変更を 有効にするため終了」をクリックします。 取り外し可能ドライブが接続されていない場合に DB2 のインストールが停止す ることがあります 接続されていない、取り外し可能なドライブを持つコンピューターを使用して いる場合、DB2 のインストール中、インストール・タイプを選択すると、イン ストールが停止することがあります。この問題を解決するには、-a オプション を指定してセットアップを実行します。 setup.exe -a Windows 2000 で CLP を使用したときのエラー SQL1035N 一部のユーザー (例えば管理者) しか書き込みアクセスを持っていないディレ クトリーに DB2 をインストールした場合、通常のユーザーは、DB2 コマンド 行プロセッサーを使用しようとしたときにエラー SQL1035N を受け取る可能性 があります。 この問題を解決するには、すべてのユーザーが書き込みアクセスを持つディレ クトリーに DB2 をインストールしてください。 特別レジスターで定義したビューによる移行の実行 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='<>' IPX/SPX プロトコル・サポート (Windows 2000 版) この情報は、「概説およびインストール」マニュアルの『インストールの計 画』の章にある『クライアント・サーバー間の接続に関するシナリオ』という セクションを参照しています。 この公開プロトコル・サポート図は、完全に正しいものではありません。 IPX/SPX を使用する OS/2 もしくは UNIX ベースのサーバーに接続する Windows 2000 クライアントはサポートしていません。同様に、IPX/SPX を使用する Windows 2000 サーバーに接続する OS/2 もしくは UNIX ベースのクライアント もサポートしていません。 前バージョンの 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 の前バージョンからの移行について詳しくは、適切な「概説 およびインストール」マニュアルを参照してください。 別の DB2 製品がすでにインストールされている場合はインストール後に db2iupdt を実行 以下の情報は、「概説およびインストール」というインストールに関するマニ ュアルから入手できます。 UNIX ベースのシステムに、DB2 UDB バージョン 7 をインストールする場合 で、DB2 製品がすでにインストールされている場合、本製品の新機能を使用で きるようにそれらのインスタンスを db2iupdt コマンドで更新する必要があり ます。いくつかの機能はこのコマンドが実行されるまで使用可能になりませ ん。 DB2 コントロール・センターを実行するために Linux 環境を設定 この情報は、「概説およびインストール」マニュアルの『DB2 コントロール・ センターのインストール』の章に含まれています。 DB2 インストーラー (Linux 版) が終了し、ターミナル・ウィンドウに戻った 後、 DB2 コントロール・センターを実行するための正しい環境を設定するため に、以下のコマンドを入力してください。 su -l export JAVA_HOME=/usr/jdk118 export DISPLAY=:0 それから、別のターミナル・ウィンドウを開き、以下のように入力します。 su root xhost + ターミナル・ウィンドウを閉じ、インスタンスの所有者 ID でログインしている ターミナルに戻り、以下のコマンドを入力します。 db2cc コントロール・センターを開始します。 DB2 ユニバーサル・データベース エンタープライズ・エディションおよび DB2 コネクト エンタープライズ・エディション (Linux (S/390 版)) DB2 ユニバーサル・データベース エンタープライズ・エディションと DB2 コ ネクト エンタープライズ・エディションが、 Linux (S/390 版) で使用できる ようになりました。S/390 マシンに Linux をインストールする前に、ソフトウ ェアおよびハードウェア要件を確認してください。 ハードウェア S/390 9672 Generation 5 以降、Multiprise 3000。 ソフトウェア * SuSE SLES-7 パッチ適用済み (下記にリストされています) または Turbolinux Server 6 * カーネル・レベル 2.2.16、S/390 用パッチ適用済み (下記を参照してくだ さい) * glibc 2.1.3 * libstdc++ 6.1 (compat.rpm パッケージに組み込まれています) Linux (S/390 版) には以下のパッチが必要です。 * SLES-7-PatchCD-1-s390-20020522.iso S/390 Linux システムをサポートするソフトウェアの最新のアップデートにつ いては、Web サイト http://www.ibm.com/db2/linux/validate を参照してくだ さい。 注: 1. 32 ビット Intel ベースの Linux と、Linux S/390 版のみがサポートされ ています。 2. 以下は DB2 バージョン 7 の Linux/390 では使用できません。 * DB2 UDB エンタープライズ - 拡張エディション * DB2 エクステンダー * DB2 データ・リンク・マネージャー * DB2 管理クライアント * パスワード変更サポート * LDAP サポート * TSM * ロー・デバイスの使用 Linux (S/390 版) でのデータ損失の可能性 2.2 シリーズのカーネルの Linux (S/390 版) で DB2 を使用するときは、Linux マシン上の有効な RAM は 1 GB 未満に制限してください。RAM を 1 GB に制限 することで、Linux カーネルのバグによる DB2 でのデータ損失を避けることが できます。 このことは、Linux (S/390 版) 上の DB2 に影響しますが、Intel 上の Linux には影響しません。 カーネル・パッチは、IBM 開発者用サイトで入手でき、これによって 1 GB 超の RAM の使用が可能となります。 DB2 Linux の Gnome および KDE デスクトップの組み込み 現在 DB2 には、サポートされている Intel ベース Linux 配布版の Gnome お よび KDE デスクトップで、最も頻繁に使用する DB2 ツールを立ち上げるための DB2 デスクトップ・フォルダーおよびアイコンを作成するためのユーティリテ ィー・セットが組み込まれています。これらのユーティリティーは、デフォル トでは DB2 バージョン 7.2 によってインストールされ、これを使用すれば、 インストール後に 1 人以上の選択されたユーザー用にデスクトップ・アイコン を作成または除去できます。 1 人以上のユーザーのデスクトップ・アイコンを追加するには、次のコマンドを 使います。 db2icons [ ...] 注: アイコンが Gnome または KDE デスクトップ環境での実行中に作成された 場合、その新しいアイコンを表示するには、手動で強制的に最新表示を 実行する必要があります。 1 人以上のユーザーのデスクトップ・アイコンを除去するには、次のコマンドを 使います。 db2rmicons [ ...] 注: 他のユーザーのアイコンを生成または除去するには、十分な権限を持つ必 要があります。一般に、 db2icons と db2rmicons を使うと、通常のユ ーザーは本人のアイコンを作成および除去することができます。ルート または指定ユーザーのホーム・ディレクトリーに書き込む権限を持つ別 のユーザーのみ、他のユーザーのアイコンを作成および除去することが できます。 Solaris カーネル構成パラメーター (推奨値) 「DB2 (UNIX 版) 概説およびインストール」および「DB2 (UNIX 版) エンター プライズ拡張エディション 概説およびインストール」の Solaris システムの 章の『始める前に』セクションで、推奨される Solaris カーネル構成パラメー ターが提供されています。以下の表では、実メモリーが 512 MB 以上のシステ ムの場合の追加のカーネル構成パラメーター推奨値を示します。 表 1. Solaris カーネル構成パラメーター (推奨値) +-----------------+-----------------+----------------+----------------+ | カーネル・パラ | 512 MB-1 GB | 1 GB-4 GB | 4 GB+ | | メーター | | | | +-----------------+-----------------+----------------+----------------+ | msgsys:msginfo_ | 65,535 | 65,535 | 65,535 | | msgmax | | | | +-----------------+-----------------+----------------+----------------+ | msgsys:msginfo_ | 65,535 | 65,535 | 65,535 | | msgmnb | | | | +-----------------+-----------------+----------------+----------------+ | msgsys:msginfo_ | 514 | 1,026 | 2,050 | | msgmap | | | | +-----------------+-----------------+----------------+----------------+ | msgsys:msginfo_ | 512 | 1,024 | 2,048 | | msgmni | | | | +-----------------+-----------------+----------------+----------------+ | msgsys:msginfo_ | 16 | 32 | 64 | | msgssz | | | | +-----------------+-----------------+----------------+----------------+ | msgsys:msginfo_ | 1,024 | 2,048 | 4,096 | | msgtql | | | | +-----------------+-----------------+----------------+----------------+ | msgsys:msginfo_ | 32,767 | 32,767 | 32,767 | | msgseg | | | | +-----------------+-----------------+----------------+----------------+ | shmsys:shminfo_ | 483,183,820 - | 966,367,641 - | 3,865,470,566- | | shmmax | 966,367,641 | 3,865,470,566 | 4,294,967,296 | +-----------------+-----------------+----------------+----------------+ | shmsys:shminfo_ | 50 | 100 | 200 | | shmseg | | | | +-----------------+-----------------+----------------+----------------+ | shmsys:shminfo_ | 300 | 1,024 | 2,048 | | shmmni | | | | +-----------------+-----------------+----------------+----------------+ | semsys:seminfo_ | 1,024 | 2,048 | 4,198 | | semmni | | | | +-----------------+-----------------+----------------+----------------+ | semsys:seminfo_ | 1,026 | 2,050 | 4,096 | | semmap | | | | +-----------------+-----------------+----------------+----------------+ | semsys:seminfo_ | 2,048 | 4,096 | 8,192 | | semmns | | | | +-----------------+-----------------+----------------+----------------+ | semsys:seminfo_ | 2,048 | 4,096 | 8,192 | | semmnu | | | | +-----------------+-----------------+----------------+----------------+ | semsys:seminfo_ | 50 | 50 | 50 | | semume | | | | +-----------------+-----------------+----------------+----------------+ 注: 1. shmsys:shminfo_shmmax パラメーターの制限は、32 ビット・システムの場 合で 4 GB です。 2. msgsys:msginfo_msgmnb および msgsys:msginfo_msgmax パラメーターは 65,535 以上に設定しなければなりません。 3. msgsys:msginfo_msgseg パラメーターは 32,767 以下に設定しなければなり ません。 4. shmsys:shminfo_shmmax パラメーターは、上記の表の推奨値か、または物理 メモリーの 90% (バイト) のいずれか高い方に設定します。例えば、システ ムに物理メモリーが 196 MB ある場合、 shmsys:shminfo_shmmax パラメー ターを 184,968,806 (196*1024*1024*0.9) に設定します。 DB2 ユニバーサル・データベース・エンタープライズ - 拡張エディション (UNIX 版) 概説およびインストール 『第 5 章 Linux での DB2 ユニバーサル・データベースのインストールおよび 構成』には、 Linux EEE クラスター内の物理ノードがそれぞれ同じカーネル、 glibc、および libstdc++ のレベルを持っていなければならないと記されてい ます。 Linux 版 DB2 EEE の体験版は、 Web サイト http://www6.software.ibm.com/dl/db2udbdl/db2udbdl-p からダウンロードで きます。 shmseg カーネル・パラメーター (HP-UX) 「概説およびインストール」マニュアルにある HP-UX カーネル構成パラメータ ーの更新に関する情報は、誤っています。HP-UX の shmseg カーネル・パラメ ーターの推奨値は無視してください。 代わりに、デフォルトの HP-UX 値 (120) を使用してください。 IBM 活動ウェアハウス・コントロール・データベースの移行 「DB2 ユニバーサル・データベース 概説およびインストール (Windows 版)」 は、 Windows NT および Windows 2000 の DB2 ユニバーサル・データベース バージョン 7 の通常のインストール中に、活動ウェアハウス・コントロール・ データベースがどのように移行されるかについての情報を提供します。移行す るウェアハウス・コントロール・データベースが複数ある場合、「ウェアハウ ス・コントロール・データベース管理」ウィンドウを使用して、追加のデータ ベースを移行する必要があります。一度に 1 つのウェアハウス・コントロー ル・データベースしか活動化できません。移行する最後のデータベースが、デ ータウェアハウス・センターへの次回のログオン時に使用する予定のデータベ ースでない場合、「ウェアハウス・コントロール・データベース管理」ウィン ドウを使用して、使用する予定のデータベースを登録する必要があります。 db2uiddl コマンドを用いた固有索引の移行 「DB2 概説およびインストール」マニュアルの『DB2 インストール後の移行作 業』の章の『オプションのインストール後の移行作業』のセクションには、 db2uiddl コマンドを使用して、DB2 バージョン 5.x および DB2 バージョン 6 から固有索引を移行すべきであると説明されていますが、これは誤りです。 db2uiddl コマンドによる固有索引の移行は、プレバージョン 5 の DB2 バージ ョンから移行する場合にのみ必要です。 64 ビット AIX バージョンのインストール・エラー db2setup を使用して 64 ビット AIX DB2 イメージを既存の AIX オペレーティ ング・システムにインストールする場合は、互換性のある AIX バージョンを使 用していることを確認してください。互換性がない場合は、インストールが失 敗します。AIX バージョン 5 DB2 イメージは、既存の AIX バージョン 4 オペ レーティング・システムにインストールできません。同様に、 64 ビット AIX バージョン 4 DB2 イメージを既存の AIX バージョン 5 オペレーティング・シ ステムにインストールすると、インストール・エラーが発生します。 非互換の 64 ビット AIX バージョンをインストールしようとする場合、 db2setup ユーティリティーは、前提条件チェック時にバージョン・ミスマッチ を検出し、次のようなエラー・メッセージを表示します。 DBI1009E Install media and AIX version mismatch. このエラーを回避するためには、正しい 64 ビット AIX バージョンをインスト ール中であることを確認してください。 SMIT の使用 SMIT を使用する場合、AIX バージョン 4 DB2 が AIX バージョン 5 DB2 に置 き換えられると、エラーが表示されますが、逆は発生しません。したがって、64 ビット AIX バージョン 5 のユーザーは、正しいバージョンをインストール中 であることを確認する必要があります。エラー・メッセージが表示されること なく、db2setup を立ち上げることができた場合は、AIX バージョンの互換性の チェックが成功しました。 注: この非互換性エラーは、32 ビット AIX バージョンには当てはまりません。 移行中のエラー 移行中に、移行が成功したにもかかわらず db2diag.log ファイルのエラー項目 (データベースが移行されませんでした) が表示される場合は、それを無視して もかまいません。 ウェアハウス・コントロールのデータベース管理を使用している場合、エラーは SQLLIB\LOGGING ディレクトリーに書き込まれます。IWH2RGn.LOG ファイルに は、すべてのエラー情報が入れられます。修正を要するエラーがある場合に は、制御データベースを削除してから、再始動してください。制御データベー スがすでに存在している場合は、バックアップ・コピーを使用する必要がある ことを意味します。 IBM(R) DB2(R) コネクト ライセンスの活動化 DB2 コネクト エンタープライズ・エディション、DB2 コネクト アンリミテッ ド・エディション、および DB2 コネクト Web スターター・キット用のインス トール・プログラムは、製品ライセンスをインストールしません。インストー ル後にこれらの製品は 90 日間、試用モードで作動します。これはライセン ス・ファイルがないためです。90 日の期間が過ぎると、インストールされた製 品は、適切なライセンスを活動化しない限り、機能を停止します。 製品のライセンスを活動化するためには、DB2 ライセンス・センターまたは db2licm コマンドのいずれかを使用できます。 ライセンス・センターを使用したライセンス・キーのインストールおよびライセ ンス・タイプの設定 1. DB2 コントロール・センターを始動して、「ツール」メニューから「ライセ ンス・センター」を選択する。 2. ライセンスをインストール中のシステムを選択する。「インストール済み製 品」フィールドには、インストールした製品の名前が表示されます。 3. 「ライセンス」メニューから「追加」を選択する。 4. 「ライセンスを追加」ウィンドウで「ファイルから」ラジオ・ボタンを選択 する。 * Windows サーバーの場合: x:\db2\license\connect\license_filename ただし、x: は、DB2 コネクト製品 CD が挿入される CD-ROM ドライブを 表す。 * UNIX サーバーの場合: /db2/license/connect/license_filename ただし、license_filename は、DB2 コネクト エンタープライズ・エディシ ョンおよび DB2 コネクト アンリミテッド・エディションの場合は、 db2conee.lic、DB2 コネクト Web スターター・キットの場合は、 db2consk.lic です。 5. 「適用」をクリックして、ライセンス・キーを追加する。 6. ライセンス・タイプを設定する。 * DB2 コネクト アンリミテッド・エディションおよび DB2 コネクト Web スターター・キットの場合: ライセンス・センターで「ライセンス」メニューから「変更」を選択す る。「ライセンスを変更」ウィンドウで、「測定された使用量」チェッ ク・ボックスを選択する。了解」をクリックして、「ライセンスを変 更」ウィンドウをクローズし、ライセンス・センターに戻る。 注: DB2 コネクト Web スターター・キットの場合、有効期限日付が製品 のインストール日から 270 日後にセットされていることを確認し てください。 * DB2 コネクト エンタープライズ・エディションの場合: ライセンス・センターで「ライセンス」メニューから「変更」を選択す る。「ライセンスを変更」ウィンドウで、購入したライセンスのタイプ を選択する。 * 同時ユーザー・ライセンスを購入した場合は、「同時 DB2 コネクト・ ユーザー」を選択して、購入したユーザー・ライセンスの数を入力す る。 注: DB2 コネクト エンタープライズ・エディションは、1 ユーザーに 1 ライセンスを提供します。追加の DB2 コネクト・ユーザ ー・ライセンスは、別途購入する必要があります。 * 登録済みユーザー・ライセンスを購入した場合は、「登録済み DB2 コネクト・ユーザー」を選択し、「了解」をクリックして、「ライセ ンスを変更」ウィンドウをクローズし、ライセンス・センターに戻 る。ユーザー」タブをクリックして、ライセンスを購入したユーザー ID をすべて追加する。 db2licm コマンドを使用したライセンス・キーのインストールおよびライセン ス・タイプの設定 ライセンス・センターではなく、db2licm コマンドを使用して、ライセンス・ キーを追加できます。db2licm コマンドを使用してライセンス・キーを追加す るには、 1. Windows サーバー上で、次のコマンドを入力します。 db2licm -a x:\db2\license\connect\license_filename ただし、x: は、DB2 コネクト製品 CD が挿入される CD-ROM ドライブを表 します。 UNIX サーバー上で、次のコマンドを入力します。 db2licm -a db2/license/connect/license_filename ただし、license_filename は、DB2 コネクト エンタープライズ・エディシ ョンおよび DB2 コネクト アンリミテッド・エディションの場合は、 db2conee.lic、DB2 コネクト Web スターター・キットの場合は、 db2consk.lic です。 注: DB2 コネクト Web スターター・キットの場合、有効期限日付が製品の インストール日から 270 日後に設定されていることを確認してくだ さい。 2. ライセンス・タイプを設定する。 * DB2 コネクト アンリミテッド・エディションおよび DB2 コネクト Web スターター・キットの場合: 次のコマンドを入力する。 db2licm -p db2conee measured * DB2 コネクト エンタープライズ・エディションの場合: 同時ユーザー・ライセンスを購入した場合は、次のコマンドを入力する。 db2licm -p db2conee concurrent db2licm -u N ただし、N は、購入した同時ユーザー・ライセンスの数を表します。 登録済みユーザー・ライセンスを購入した場合は、次のコマンドを入力 する。 db2licm -p db2conee registered 分散インストールの場合のライセンスの考慮事項 分散インストールのイメージを作成中の場合は、インストール後にライセンス をインストールするため、特別の調整が必要です。前述の db2licm コマンドを 分散インストール・スクリプトに追加します。 ウェアハウス・コントロール・データベースへのアクセス Windows NT 上での DB2 バージョン 7 の通常インストールでは、 DB2 バージ ョン 7 ウェアハウス・コントロール・データベースはウェアハウス・サーバー 付きで作成されます。 Visual Warehouse ウェアハウス・コントロール・デー タベースを持っている場合、ウェアハウス・コントロール・データベースのメ タデータが DB2 バージョン 7 データウェアハウス・センターによって使用さ れるために移行される前に、ウェアハウス・コントロール・データベースを含む DB2 サーバーを DB2 バージョン 7 へアップグレードする必要があります。使 用を続けたいウェアハウス・コントロール・データベースはすべてバージョン 7 に移行する必要があります。活動ウェアハウス・コントロール・データベースの メタデータは DB2 バージョン 7 のインストール処理中にバージョン 7 に移行 されます。ウェアハウス・コントロール・データベースのどんな追加でもメタ データを移行するには、ウェアハウス・コントロール・データベース移行ユー ティリティーを使用します。それは Windows NT の「スタート」-->「プログラ ム」-->「IBM DB2」-->「ウェアハウス・コントロール・データベース管理」を 選択して開始します。ウェアハウス・コントロール・データベースの移行につ いての情報に関しては、DB2 ユニバーサル・データベース 概説およびインスト ール」を参照してください。 IBM e-server p690 および DB2 UDB バージョン 7 (AIX V5 版) AIX V5 オペレーティング・システムで IBM e-server p690 を使用するには、 最低で DB2 UDB バージョン 7 フィックスパック 6 のレベルが必要です。 エンタープライズ・エディション 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 CEE ライセンス・キーをインストールしなければなりません。製品を再インストー ルする必要はありません。ライセンス・キーのインストールの説明は、 DB2 EE または DB2 CEE (UNIX 版) の「概説およびインストール」ブックに示されてい ます。 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 ファイル・セット 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 ライセンス・キーをインストールしなければなりません。製品を再インスト ールする必要はありません。ライセンス・キーのインストールの説明は、 DB2 EE または DB2 CEE (UNIX 版) の「概説およびインストール」ブックに示され ています。コネクト 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 ファイル・セット Merant Driver Manager と DB2 UDB バージョン 7 ODBC ドライバー (UNIX 版) Merant Driver Manager が DB2 の ODBC ドライバー (UNIX 版) にアクセスす る際には、ユニコード・サポートに関する非互換性が検出されていました。こ のような非互換性は、アプリケーションからどのような使用要求があっても、 Merant Driver Manager がユニコードを使用することに原因があります。この ことは、データウェアハウス・センター、情報カタログ・マネージャー、 MQSI のように、Merant Driver Manager が IBM 以外のデータ・ソースをサポートす る必要がある製品では、問題になります。この問題の完全な解決策が見つかる までは、 DB2 ODBC ドライバー・ライブラリーを、ユニコード・サポート対応 を無効にした状態で使用することで代用できます。この問題の影響を受ける DB2 UDB のバージョンには、バージョン 7.1 (フィックスパック 2 以降を適用) お よびバージョン 7.2 (任意のフィックスパック・レベル) などがあります。 代替の、ユニコード・サポートを無効にした DB2 ODBC ドライバー・ライブラ リーは、 DB2 バージョン 7.1 および 7.2 (AIX 版、HP-UX 版、および Solaris オペレーティング環境版) に同梱されています。この代替ライブラリーを使用 するには、このライブラリーのコピーを作成して、そのコピーにオリジナルで ある DB2 ODBC ドライバー・ライブラリーの名前を設定する必要があります。 注: 代替 (_36) clibrary には、DB2 JDBC cdriver に必須のユニコード関数が 含まれています。このライブラリーを使用することで、WebSphere Application Server を含む JDBC アプリケーションは、 DB2 で正常に 動作することができます。 AIX、HP-UX、または Solaris 開発環境で、非ユニコードの ODBC ライブラリー に切り替える方法については、以下の指示を参照してください。これは手操作 で行うため、製品のアップデートを行うごとに実行する必要があります (それ に続くフィックスパックのアプリケーション実行後も同様)。 AIX AIX で必要なライブラリーを作成する方法は、以下のとおりです。 1. インスタンス所有者として、db2stop force を使用してすべてのデータベー ス・インスタンスをシャットダウンします。 2. 管理インスタンス ID として、db2admin stop force を使用して管理サーバ ー・インスタンスをシャットダウンします。 3. /usr/lpp/db2__/lib を宛先として、オリジナルの db2.o のバッ クアップをとります。 4. root として、slibclean を発行します。 5. 所有権と許可の一貫性が保たれていることを確認しながら、db2_36.o を db2.o にコピーします。以下のコマンドを使用します。 cp db2_36.o db2.o -r--r--r-- bin:bin for db2.o オリジナルのオブジェクトに再度切り替えるため、 db2_36.o ではなくバック アップ・ファイルを使用して同様の手順を実行します。 Solaris オペレーティング環境 必要なライブラリーを作成する方法は、以下のとおりです。 1. インスタンス所有者として、db2stop force を使用してすべてのデータベー ス・インスタンスをシャットダウンします。 2. 管理インスタンス ID として、db2admin stop force を使用して管理サーバ ー・インスタンスをシャットダウンします。 3. /opt/IBMdb2/V./lib を宛先として、オリジナルの libdb2.so.1 のバックアップをとります。 4. 所有権と許可の一貫性が保たれていることを確認しながら、 libdb2_36.so.1 を libdb2.so.1 にコピーします。以下のコマンドを使用します。 cp libdb2_36.so.1 libdb2.so.1 -r-xr-xr-x bin:bin libdb2.so.1 5. 各データベース・インスタンスに db2iupdt を、 DAS インスタ ンスに dasiupt を発行します。 オリジナルのオブジェクトに再度切り替えるため、 libdb2_36.so.1 ではなく バックアップ・ファイルを使用して同様の手順を実行します。 HP-UX (フィックスパック 4 以降に関してのみ有効) この解決策を試みる前に、フィックスパック 4 以降をインストールする必要が あります。 HP-UX 上に必要なライブラリーを作成する方法は、以下のとおりです。 1. db2stop force を使用して、すべてのデータベースをシャットダウンしま す。 2. db2admin stop force を使用して、管理サーバー・インスタンスをシャット ダウンします。 3. /opt/IBMdb2/V./lib を宛先として、 libdb2.sl のバックアップ をとります。 4. 所有権の一貫性が保たれていることを確認しながら、 libdb2_36.sl を libdb2.sl にコピーします。一貫性は、以下のコマンドを使用して確認でき ます。 -r-xr-xr-x bin:bin for libdb2.sl 5. 各データベース・インスタンスに db2iupdt を、 DAS インスタ ンスに dasiupdt を発行します。 オリジナルのオブジェクトに再度切り替えるため、 libdb2_36.sl ではなくバ ックアップ・ファイルを使用して同様の手順を実行します。 その他の UNIX オペレーティング・システム その他の UNIX オペレーティング・システムにおける、DB2 と Merant Driver Manager に関する援助が必要な場合は、IBM サポートまでご連絡ください。 Web の情報カタログ・センターのインストール前に必要な追加の構成 Web の情報カタログ・センターをインストールする前に、インストールする言 語の dg_strings.hti ファイルを /sqllib/icuweb/macro ディレクトリーにコ ピーする必要があります。 dg_strings.hti ファイルは、ご使用のシステムの 該当する言語ディレクトリーにあります。言語コードのリストは、「概説およ びインストール」ガイドおよびその他のほとんどの DB2 の資料の NLS に関す る付録に記載されています。 コード・ページおよび言語サポート情報 - 訂正 「概説およびインストール」の資料の付録、各国語サポート (NLS) に記載され ているコード・ページおよび言語サポートには、次の誤りがあります。 * 列見出しの「国別コード」は「国/地域別コード」と読み替える必要があり ます。 * 列見出しの「言語」は「言語/スクリプト」と読み替える必要があります。 * スロベニア共和国のコードは、表に示されているように、「si」ではなく て、「sl」です。 DB2 データ・リンク・マネージャー 概説およびインストール AIX V5.1 でのサポート AIX V5.1 では、DB2 データ・リンク・ファイル・マネージャーおよびファイ ル・フィルターのコンポーネントが完全にサポートされるようになりました。 現在 AIX V5.1 では、データ・リンクに関連したすべてのツールと命令、および AIX の以前の各リリースでかつてサポートされていたすべてのツールと命令が 完全にサポートされて適用可能となっています。 Dlfm 開始の失敗のメッセージ:「接頭部の afsfid を取得中にエラー」 DCE-DFS 環境でデータ・リンク・マネージャーを実行していて、 dlfm start が次のエラーで失敗した場合は、IBM サービスに連絡してください。 接頭部の afsfid を取得中にエラー "dlfm add_prefix" を使用してデータ・リンク・マネージャーに登録された DFS ファイル・セットを削除すると、このエラーが起きる可能性があります。 アーカイブ・ファイルへの Tivoli Storage Manager クラスの設定 アーカイブ・ファイルに対して使用する TSM 管理クラスを指定するには、 DLFM_TSM_MGMTCLASS DB2 レジストリー項目を、適切な管理クラス名に設定して ください。 DFS クライアント・イネーブラーのディスク・スペース要件 DFS クライアント・イネーブラーは、DB2 ユニバーサル・データベースのクラ イアントまたはサーバーのインストール中に選択可能なオプションのコンポー ネントです。 DFS クライアント・イネーブラーは DB2 UDB クライアントまた はサーバーを使用せずに実行できますが、 DB2 ユニバーサル・データベースの クライアントまたはサーバー製品をインストールせずに DFS クライアント・イ ネーブラーをインストールすることはできません。DFS クライアント・イネー ブラー・コード用に 2MB のディスク・スペースが必要であり、DFS クライアン ト・イネーブラーを DB2 ランタイム・クライアント・インストールの一部とし てインストールする場合は、さらに追加の 40 MB が必要です。DFS クライアン ト・イネーブラーを DB2 管理クライアントまたは DB2 サーバー・インストー ルの一部としてインストールする場合、さらに多くのディスク・スペースが必 要となります。DB2 ユニバーサル・データベース製品群のディスク・スペース 要件に関する詳細については、「DB2 概説およびインストール (UNIX 版)」マ ニュアルを参照してください。 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" です。 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: DCE-DFS 環境における追加のインストールの注意点 『インストールの前提条件』セクションに、以下の新規情報が追加されます。 You must also install either an e-fix for DFS 3.1, or PTF set 1 (when it becomes available). The e-fix is available from: http://www.transarc.com/Support/dfs/datalinks/efix_dfs31_main_page.html また、以下の情報も追加されます。 データ・リンク・マネージャーをインストールする前に、DFS クライアントを 実行する必要があります。 db2setup または smitt を使用してください。 『Keytab ファイル』セクションには、以下のような訂正があります。 The keytab file, which contains the principal and password information, should be called datalink.ktb and .... 下の例では、正しい名前: datalink.ktb を使用しています。 DLMADMIN インス タンスが作成されるまでは Keytab ファイルの作成は行われないので、『Keytab ファイル』セクションは『DCE-DFS インストール後の作業』の下に移動します。 『データ・リンク・ファイル・マネージャー・サーバーおよびクライアント』 というセクションで、データ・リンク・マネージャー・サーバーはデータ・リ ンク・マネージャー・クライアントよりも先にインストールする必要がありま す。 『バックアップ・ディレクトリー』という新規セクションが追加されます。 バックアップ方式がローカル・ファイル・システムの場合、バックアップ・ ディレクトリーは DFS ファイル・システムのディレクトリーでなければ なりません。この DFS ファイル・セットが DFS 管理者によって作成 されたことを確認してください。 DMLFS ファイル・セットであってはいけません。 "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 コマンドを実行して、データ・リンク・マネージャー・デーモ ン・プロセスを開始する。 dlfm 停止時にコピー・デーモンが停止しないなど、まれな現象が発生した場合 これは、ユーザーが dlfm を実行したか、または異常終了が発生したなどの場 合に dlfm_copyd (コピー・デーモン) が停止しないなど、非常にまれな状況で 発生することがあります。これが発生した場合、dlfm を再起動させる前に dlfm のシャットダウン命令を実行してください。 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構成: db2setup ユーティリティーを使用して DB2 データ・リンク・マネー ジャーをインストール 『DB2 データベース DLFM_DB 作成』セクションで、DLFM_DB は DCE_DFS 環境 に作成されません。これは、インストール後のステップとして実行されます。 『DCE-DFS 開始前の DMAPP の登録』セクションで、ステップ 2 は以下のよう に変更されます。 2. Commands are added to /opt/dcelocal/tcl/user_cmd.tcl to ensure that the DMAPP is started when DFS is started. 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 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 DB2 データ・リンク DFS クライアント・イネーブラー 『DFS クライアント・イネーブラーの構成』セクションのステップ 2 に次の情 報を追加してください。 "secval" コマンドを実行すると、通常は構成を完了します。 ただし、マシンをリブートする必要があるかもしれません。 READ PERMISSION DB ファイルにアクセス中に問題が起きた場合は、 DB2 DFS クライアント・イネーブラーをインストールしたマシンを リブートしてください。 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. 変更を有効にするために、マシンをリブートする。 Windows NT のデータ・リンクでのアドミニストレーター・グループ権限 Windows NT では、データ・リンクを使用してリンクされたファイルに関して は、dlmadmin ユーザーは UNIX での root ユーザーがほとんどの機能について 持っているのと同じ権限を持ちます。下の表にこの両方が比較されています。 +-----------------------+----------------------+----------------------+ | 操作 | Unix (root) | Windows NT | | | | (dlmadmin) | +-----------------------+----------------------+----------------------+ | 名前変更 | あり | あり | +-----------------------+----------------------+----------------------+ | トークンなしでファイ | あり | あり | | ルにアクセス | | | +-----------------------+----------------------+----------------------+ | 削除 | あり | なし (下の注を参照) | +-----------------------+----------------------+----------------------+ | 更新 | あり | なし (下の注を参照) | +-----------------------+----------------------+----------------------+ 注: NTFS は、読み取り専用ファイルにこれらの操作を許していません。 dlmadmin ユーザーは、そのファイルへの書き込み許可を使用可能にする ことで、これらの操作を正常に行えるようにできます。 データ・リンク・ファイル・システム・フィルター (DLFF) インストールのロギ ングの最小化 データ・リンク・ファイル・システム・フィルター (DLFF) インストールのロ ギングを、 dlfs_cfg ファイルを変更することで最小化することができます。 dlfs_cfg ファイルは、ドライバーと構成パラメーターをロードするために strload ルーチンに渡されます。ファイルは /usr/lpp/db2_07_01/cfg/ ディレ クトリーにあります。記号リンクを経由すると、ファイルは /etc ディレクト リーにも見つかります。dlfs_cfg ファイルの形式は次の通りです。 d - 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 DLFS ドライバーの構成可能パラメーターです。これは、システム・ ログ・ファイルに記録されるメッセージ・カテゴリーのリストを定義 します。 global module priority DLFS ドライバーの構成可能パラメーターです。これは、システム・ ログ・ファイルに記録されるドライバー・ルーチン、VFS 操作、およ び Vnode 操作のリストを定義します。 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 インストール後のメッセージのロギング インストール後に緊急、エラー、およびトラブルシューティング・メッセージ を記録する必要がある場合は、 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 ドライバーの以後のロードのためにそのまま残されます。 Sun Solaris システム上でのログオンの最小化 dlfs_cfg ファイルが Sun(TM) Solaris(TM) システムからなくなりました。代 わりに、システム・ファイル /etc/syslog.conf に、システム・メッセージを 適切なログ・ファイルに転送するシステム・ログ・デーモン (syslogd) で使用 される情報が含まれています。 /etc/syslog.conf の kern.notice および kern.debug の項目をコメント化することにより、 DLFF インストールのための ロギングを最小化することができます。変更を有効にするには、syslogd を停 止してから再び開始する必要があります。 カーネルの通知およびエラーをすべて再び活動化するには、 /etc/syslog.conf の kern.notice および kern.debug の項目のコメント化を解除し、syslogd の 停止と再始動を行います。 DATALINK リストア データベース・リストア後に行われるオフライン・バックアップのリストアは、 ロールフォワードの有無にかかわらず、早急な調整処理は行いません。そのよ うなケースでは、ファイル・リンク制御下のデータ・リンク列を持つ全表はデ ータ・リンク調整保留 (DRP) 状態となります。 データ・リンク・マネージャーの削除 指定のデータベースの DB2 データ・リンク・マネージャーを削除できるように なりました。データ・リンク関連のいくつかの SQL 要求の処理は、バックアッ プ/リストアなどのユーティリティーと同様、データベースに対して構成された すべての DLM との通信に関係します。以前は、DLM が操作不可能な場合であっ ても、 DB2 には構成された DLM を削除する機能がありませんでした。これに より、SQL およびユーティリティーの処理に余分なオーバーヘッドがかかって いました。 DLM が追加されると、要求の処理でエンジンが DLM と通信してい ました。これにより、一部の SQL 要求 (例えば、表、表スペース、データベー スの削除など) の障害を招くおそれがありました。 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 開始する前のホスト名の判別 各 DB2 サーバーおよび各データ・リンク・サーバーの名前を判別する必要があ ります。 これらのホスト名を認識して、インストールを検証しなければなりま せん。 DB2 データ・リンク・ファイル・マネージャーに接続すると、 DB2 UDB サーバーは以下の情報を DLFM に内部的に送信します。 * データベース名 * インスタンス名 * ホスト名 次に DLFM はこの情報を内部表と比較して、接続を許可するかどうかを決定し ます。 dlfm add_db コマンドによってデータベース名、インスタンス名、およ びホスト名の組み合わせが DLFM に登録されている場合にのみ、接続が許可さ れます。接続が許可されるのは、このデータベース名、インスタンス名、およ びホスト名の組み合わせが dlfm add_db コマンドを使用して DLFM に登録され ている場合だけです。 dlfm add_db コマンドに使用されるホスト名は、DB2 UDB サーバーが内部的に送信するホスト名と正確に一致していなければなりません。 以下の方法で入手した正確なホスト名を使用してください。 1. DB2 サーバーでホスト名コマンドを入力する。例えば、このコマンドは db2server を返します。 2. プラットフォームに応じて、以下のいずれかを行う。 * AIX の場合、host db2server コマンドを入力する。db2server は直前の ステップで入手した名前です。このコマンドは次のような出力を返しま す。 db2server.services.com is 9.11.302.341, Aliases: db2server * Windows NT の場合、nslookup db2server コマンドを入力する。 db2server は直前のステップで入手した名前です。このコマンドは次の ような出力を返します。 Server: dnsserv.services.com Address: 9.21.14.135 Name: db2server.services.com Address: 9.21.51.178 * 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 ステートメントが失敗します。 DB2 データ・リンク・ファイル・マネージャーの操作: 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. ログオフする。 このコマンドを使用すべきコンテキストを示す完全な使用シナリオについて は、コマンド解説書」を参照してください。 このコマンド用に新しいエラー・コードが作成されました ("DLFM1001E (新規 エラー・メッセージ)"を参照)。 dlfm Client_conf が失敗した場合のユーザー処置 DLFM クライアント上で、dlfm client_conf が何らかの理由で失敗した場合、 DB2 カタログの "stale" 項目が原因となっている場合があります。その問題を 解決するには以下のコマンドを実行します。 db2 uncatalog db db2 uncatalog node db2 terminate その後 dlfm client_conf を再実行してください。 DLFM1001E (新規エラー・メッセージ) DLFM1001E: drop_dlm 処理でエラーが発生しました。 原因: DB2 データ・リンク・マネージャーが指定のデータベースのリンク解除処理と ガーベッジ・コレクション処理を開始できませんでした。これは、以下のいず れかの理由で起きたことが考えられます。 * DB2 データ・リンク・マネージャーが実行されていない。 * データベース、インスタンス、およびホスト名の無効な組み合わせがコマン ドに指定された。 * DB2 データ・リンク・マネージャーのコンポーネント・サービスのいずれか に障害がある。 処置: 以下のステップを実行してください。 1. DB2 データ・リンク・マネージャーが実行中であることを確認する。まだ実 行されていなければ、DB2 データ・リンク・マネージャーを始動する。 2. 登録されているデータベースが、データベース、インスタンス、およびホス ト名の組み合わせによって識別されることを確認する。これを行うには、 DB2 データ・リンク・マネージャーで "dlfm list registered databases" コマンドを使用してください。 3. 引き続きエラーが発生する場合、db2diag.log ファイルの情報を参照して、 コンポーネント・サービス (例えば、接続管理サービス、トランザクション 管理サービスなど) が失敗したかどうかを確認する。 db2diag.log のエラ ー・コードを書き留め、そのエラー・コードに対して推奨される適切な処置 を行ってください。 DLFM セットアップ構成ファイル・オプション dlfm セットアップ dlfm.cfg オプションが除去されました。文書内のこのオプ ションへの参照は無視されます。 ファイルのリストア中に起こりうる問題 問題: 同じファイルの別のバージョンが、異なるときにデータベースにリンク されると、データ・リンク・ファイル・マネージャー (DLFM) 検索デーモン は、データベースがリストアされるときにアーカイブから正しいバージョンの ファイルを検索できません。 背景: データベースがバックアップ・イメージからリストアされるときに、バ ックアップ・イメージにリンクされたファイルもまた、アーカイブからデー タ・リンク・ファイル・システム (DLFS) にリストアされます。DB2 データ・ リンク・マネージャーの検索およびリストアのプロセスがどのように機能する かを次に説明します。 * ディスク上のファイルの現行バージョンの最終変更時刻とサイズ属性が、ア ーカイブからリストアされたファイルの属性と異なる 場合、ディスク上の 現行ファイルはファイルの異なるバージョンとして扱われます。ディスク上 の現行ファイルは filename.MOD として保管され、 DLFM アーカイブからの オリジナル・バージョンのファイルがリストアされます。例えば、現行ファ イル名がabc である場合、abc は abc.MOD にコピーされます。 * ディスク上の現行ファイルの最終変更時刻とサイズ属性が、アーカイブから リストアされたファイルの属性と同じ である場合、データ・リンク検索デ ーモンはファイルが変更されていないものと想定し、アーカイブからのファ イルのバージョンをリストアしません。 重要: ファイルを変更するのは可能ですが、最終変更時刻とサイズ属性を変更 することはできません。ファイル・サイズに影響しない変更により「隠れた変 更」がなされ、最終変更時刻属性を元のファイルと同じ属性にリセットします。 例: DBTEST というデータベースがあり、 DATALINK 列を持つ表を含むとしま す。以下の作業をリストされている順に実行します。 1. DLFS マウント・ボリュームの fileA というファイルを作成する。これがフ ァイルの最初のバージョンです。 2. fileA の参照 (URL) を DBTEST データベースに挿入する。 3. DBTEST データベースのバックアップを取る。 4. fileA 参照を DBTEST データベースから削除する。 5. DLFS マウント・ボリュームから fileA を削除する。 6. DLFS マウント・ボリュームの fileA という別のファイルを作成する。 こ れがファイルの 2 番目のバージョンです。 7. fileA の参照 (URL) を DBTEST データベースに挿入する。 8. DBTEST データベースをバックアップ・イメージからリストアする。 DLFM 検索デーモンは fileA の 2 番目のバージョンを fileA.MOD にコピー し、次に、fileA の最初のバージョンをアーカイブから DLFS マウント・ボリ ュームに作業中の fileA としてコピーします。 ただし、fileA の両方のバージョンが同じ最終変更時刻とサイズ属性を持つ場 合、それらのファイルは実際同じバージョンであると想定され、DLFM 検索デー モンは何も行いません。 結果として、最初のバージョンではなく 2 番目のバージョンのファイルが、 DLFS マウント・ボリュームに残ります。実際は、ファイル・システムはバック アップ時と同じ状態にリストアできません。 解決策: アプリケーションが、ファイルを、同じ属性 (最終変更時刻およびサ イズ)を持つ新規バージョン・ファイルと置換していないことを確認します。 AIX 上でのデータ・リンク/DFS スクリプト dmapp_prestart 実行時エラー データ・リンク /DFS スクリプト dmapp_prestart を実行して、コマンド /usr/sbin/cfgdmepi -a "/usr/lib/drivers/dmlfs.ext" が、戻りコード 1 で失敗した場合、DFS 3.1 ptfset1 をインストールして cfgdmepi を修正してください。 Tivoli Space Manager とデータ・リンクとの統合 DB2 データ・リンク・マネージャーは、Tivoli Space Manager の機能を利用で きるようになりました。Tivoli Space Manager Hierarchical Storage Manager (HSM) のクライアント・プログラムは、適格ファイルを自動的に移行して、ロ ーカル・ファイル・システム上に特定のレベルのフリー・スペースを保持しま す。クライアント・プログラムは、アクセス時に移行済みファイルを自動的に 再呼び出しして、ユーザーが特定のファイルを移行して再呼び出しすることを 許可します。 この機能の前提条件は、Tivoli Space Manager バージョン 4.2 です。 この新しい機能は、定期的に 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. DLM に、コマンド "dlfmfsmd /fs" を使って登録する。 データ・リンク HSM ファイル・システムからデータ・リンクと HSM サポートを 除去する 1. コマンド "dsmmigfs remove /fs" を使って HSM サポートを除去 する。 2. コマンド "dlfmfsmd -j /fs" を使ってデータ・リンク・サポート を除去する。 制約事項と制限 現在、この機能は AIX でのみサポートされています。 FC (読み取り許可 DB) リンク・ファイルの選択移行 (dsmmigrate) および再呼 び出しが行えるのは、ルート・ユーザーのみです。 読み取り許可 DB ファイルの場合のファイル所有者がデータ・リン ク・マネージャー管理者 (dlfm) の場合、選択したファイルの移行を 行えるのは、ファイル所有者のみです。そうしたファイルをアクセス するには、ホスト・データベース・サイドからのトークンが必要で す。トークンを必要としない唯一のユーザーは「ルート」ユーザーで す。「ルート」ユーザーの場合は、読み取り許可 DB ファイルで、選 択移行を行って再呼び出しするほうが簡単です。dlfm ユーザーは、 最初のときに限り、有効なトークンを使って FC ファイルを移行する ことができます。2 回目に移行を試行すると (再呼び出し後に)、操 作は失敗し、エラー・メッセージ "ANS1028S 内部プログラム・エラ ーです。サービス担当者に連絡してください。" が表示されます。ル ート以外のユーザーが FC ファイルで dsmmigrate を実行しても失 敗します。ファイル・サーバー上のファイルにアクセスするのは通常 は管理者であるため、これは重大な制限ではありません。 dlfs は fsm にマウントされていますが、stat および statfs システム呼び出 しは、 fsm として dlfs ではなく Vfs のタイプを示します。 上記の動作は、ファイル・システムで statfs を実行して、その Vfs タイプが fsm であるかどうかをチェックする dsmrecalld デーモン の通常の機能です。 最小 inode 番号を持つファイルが FC (読み取り許可 DB) リンクされている場 合、コマンド "dsmls" は出力を表示しません。 dsmls コマンドは ls コマンドに類似し、TSM が管理するファイルを リストします。ユーザー処置は必要ありません。 第 4 章 DB2 データ・リンク・マネージャー (AIX 版) のインストールおよび構 成 一般的なインストールの注意点 DB2 ファイル・マネージャー・バージョン 5.2 から DB2 データ・リンク・マネ ージャー・バージョン 7 への移行 ステップ 3 の情報に誤りがあります。ステップ 3 は次のようになります。 "3. DLFM 管理者として /usr/lpp/db2_07_01/adm/db2dlmmg コマンドを実行し ます。 第 6 章 AIX でのインストールの検査 NFS 環境での回避策 このセクションでは、NFS 環境で DB2 データ・リンク・マネージャー (AIX 版) を実行した場合に起こる既知の問題 (現行の資料には記載されていないもの) の回避策について説明します。これらの問題は NFS に固有のものであり、DB2 データ・リンク・マネージャーまたは DB2 ユニバーサル・データベースとは無 関係です。 追加の NFS キャッシングが行われるという問題 AIX 用の NFS クライアントでは 2 つの異なるキャッシュが保守され ます。 NFS クライアントは、最近アクセスされたファイルとディレ クトリーの属性が入っているキャッシュを保守します。このクライア ントは、クライアント上のファイルの内容をキャッシングするための データ・キャッシュもオプションでサポートします。 この属性キャッシング処理のために、NFS クライアント上では READ PERMISSION DB ファイルのリンク後に正常でない条件が発生する場合 があります。 READ PERMISSION DB ファイルがリンクされる前にその マシンに接続した場合には、アクセス制御トークンなしでもこのファ イルにアクセスできることがあります。無許可のファイル・アクセス が行われる可能性を少なくするために、以下の方法のいずれかを使用 してください。 * SQL INSERT ステートメントを実行してリンクを設定する前に、こ のファイルに対して touch コマンドを使用する。 * このファイルを含んでいるディレクトリーに対して touch コマン ドを使用する。 * mount コマンドを 5 つの属性キャッシュ構成パラメーター (actimeo、acregmin、acregmax、acdirmin、および acdirmax) の いずれか 1 つと一緒に使用して、キャッシュ内の属性がファイル またはディレクトリーの変更後に保存される時間を最小化する。 READ PERMISSION DB ファイルへの無許可アクセスに気付く可能性が 最も高いのは、データ・リンク機能のテスト中です。なぜなら、リン クされているファイルは 1 つだけで、NFS アクティビティーはほと んど発生しないからです。実稼働環境では、このようなシナリオに遭 遇する可能性は低くなります。なぜなら、大量の NFS アクティビテ ィーが発生するために、通常はすべてのリンク・ファイルの属性が NFS 属性キャッシュに保存されているわけではないからです。 インストールおよび構成補足 第 5 章 UNIX オペレーティング・システムへの DB2 クライアントのインストー ル HP-UX カーネル構成パラメーター HP-UX カーネル・パラメーターの推奨設定として、 msgmbn と msgmax を 65535 以上に設定するよう記述されていますが、これは正しくありません。どちらの パラメーターも 65535 に設定する必要があります。 第 12 章 お持ちのアプリケーションの実行 ランタイム・クライアントを使用するデータベース・ユーティリティーのバイン ド ランタイム・クライアントを使用して、データベース・ユーティリティー (イ ンポート、エクスポート、 REORG、コマンド行プロセッサー)、および DB2 CLI バインド・ファイルを、データベースとともに使用する前に各データベースに バインドすることはできません。代わりに DB2 管理クライアント、または DB2 アプリケーション開発クライアントを使用してください。 データベース・ユーティリティーおよび DB2 CLI バインド・ファイルを、各デ ータベースとともに使用する前にそれらのデータベースにバインドしなければ なりません。ネットワーク環境では、異なるオペレーティング・システムで実 行している複数のクライアントを使用しているか、または異なるバージョンや サービス・レベルの DB2 を使用している場合、各オペレーティング・システム と DB2 のバージョンの組み合わせに対して、ユーティリティーを一度ずつバイ ンドしなければなりません。 ODBC を使用しての DB2 への UNIX クライアント・アクセス 第 12 章 (「お持ちのアプリケーションの実行」) で、ODBC クライアント・ア プリケーションまたは ODBC SDK で ODBC ドライバー・マネージャーをインス トールする場合は、 odbcinst.ini を更新しなければならないという記述があ ります。これは一部誤っています。ODBC ドライバー・マネージャー製品をイン ストールする際は、 odbcinst.ini を更新する必要はありません。 第 24 章 複数データ・ソース・アクセス用の連合システムのセットアップ 連合システム DB2 連合システムは特殊なタイプの分散データベース管理システム (DBMS) で す。連合システムでは、他の DBMS (Oracle、Sybase、Microsoft SQL Server など) にあるデータを照会および検索することができます。連合システムを使 用すると、他の DBMS 上にあるデータを照会および検索できます。単一の SQL ステートメントで複数の DBMS 参照も個々のデータベース参照も行えます。例 えば、DB2 ユニバーサル・データベース、Oracle、および Sybase ビューにあ るデータを結合することができます。 DB2 連合システムは、DB2 インスタンスをもつサーバー、連合データベースと して動作するデータベース、および 1 つ以上のデータ・ソースから構成されて います。この連合データベースには、データ・ソースとその特性を識別するカ タログ項目が含まれています。 データ・ソース は 1 つの DBMS とデータから 構成されます。サポートされているデータ・ソースとしては、次のものが挙げ られます。 * Oracle * Sybase * Microsoft SQL Server * Informix * DB2 ユニバーサル・データベース・ファミリーのメンバー (DB2 (OS/390 版)、DB2 (AS/4000 版)、および DB2 (Windows 版) など) DB2 ユニバーサル・データベース連合サーバーは、データ・ソースとの通信お よびデータ・ソースからのデータ検索にラッパー と呼ばれるプロトコルを使用 します。使用するラッパーは、DB2 インスタンスが稼働しているオペレーティ ング・システムによって異なります。 ニックネーム は、データ・ソースにあ る表およびビューを識別するのに使用されます。アプリケーションは、他のあ らゆる DB2 データベースに接続するのとまったく同じようにして連合データベ ースに接続できます。また、連合データベースの表やビューであるかのよう に、ニックネームを使用してデータ・ソースを照会できます。 連合システムがセットアップされてからは、データが単一のローカル・データ ベース内にあるかのように各データ・ソース内の情報にアクセスできます。ユ ーザーおよびアプリケーションは連合データベースに照会を送信し、データ・ ソースからのデータ検索はこの連合データベースが行います。 DB2 連合システムはいくつかの制限のもとで動作します。分散要求は、DB2 バ ージョン 7 では読み取り専用操作に制限されています。また、ニックネームに 対してユーティリティー操作 (LOAD、REORG、REORGCHK、IMPORT、 RUNSTATS な ど) を実行することはできません。ただし、パススルー機能を使用すると、そ のデータ・ソースに関連する SQL ダイアレクトによって DDL および DML ステ ートメントを直接 DBMS に実行依頼することができます。 DB2 バージョン 8 データ・ソースを使用する場合は、フィックスパック 8 以上 が必要 DB2 (UNIX 版および Windows 版) バージョン 8 の表とビューのニックネーム を正常に作成するには、ご使用の DB2 (UNIX 版および Windows 版) バージョン 7.2 連合データベースに DB2 (UNIX 版および Windows 版) バージョン 7.2 フ ィックスパック 8 を適用する必要があります。 DB2 (UNIX 版および Windows 版) バージョン 7.2 連合データベースにフィックスパック 8 を適用しない場 合は、ニックネームにアクセスするとエラーが起こります。 制約事項 バージョン 7.2 の新しいラッパー (AIX、HP、および Solaris オペレーティン グ環境での Informix、Linux、 HP、および Solaris オペレーティング環境での Oracle、AIX および Solaris オペレーティング環境での Sybase、AIX および NT での Microsoft SQL Server など) は、このフィックスパックでは入手でき ません。DB2 リレーショナル・コネクト バージョン 7.2 を購入する必要があ ります。 DB2 リレーショナル・コネクトのインストール このセクションでは、連合システム・サーバーとして使用するサーバーに DB2 リレーショナル・コネクトをインストールする方法を説明します。Oracle、 Sybase、Microsoft SQL Server、および Informix データ・ソースにアクセス するにはリレーショナル・コネクトが必要です。 DB2 ユニバーサル・データベ ース・ファミリーのメンバーへのアクセスの場合は DB2 リレーショナル・コネ クトは必要ありません。 DB2 リレーショナル・コネクトをインストールする前に、以下のことを行って ください。 * DB2 ユニバーサル・データベース・エンタープライズ・エディションまたは DB2 ユニバーサル・データベース・エンタープライズ -- 拡張エディション が連合サーバー上にインストールされていることを確認してください。 DB2 (UNIX サーバー版) の場合: DB2 ファミリーのデータベースを分散要求に組み込みたい場合、 DB2 ユニバーサル・データベースのインストール時に「分散結合 (DB2 用)」データ・ソース・オプションを選択しておかなければ なりません。このオプションがインプリメントされていることを 確認するには、FEDERATED パラメーターが YES に設定されている かどうかを調べます。この設定は、GET DATABASE MANAGER CONFIGURATION コマンドを発行すれば調べられます。このコマン ドにより、パラメーターとその現行設定値がすべて表示されま す。 * 使用する連合サーバーに当該のデータ・ソース用のクライアント・ソフトウ ェアがインストール済みであることを確認します。 Windows NT サーバーへの DB2 リレーショナル・コネクトのインストール 1. DB2 ユニバーサル・データベースのインストールを実行するために作成した ユーザー・アカウントで連合サーバーにログオンします。 2. セットアップ・プログラムが必要に応じてファイルを更新できるよう、実行 中のプログラムをすべて終了します。 3. セットアップ・プログラムを呼び出します。セットアップ・プログラムは自 動的に、または手操作で呼び出すことができます。セットアップ・プログラ ムを自動的に開始できない場合、または別の言語でセットアップを実行する 場合、手操作でセットアップ・プログラムを呼び出してください。 * セットアップ・プログラムを自動的に呼び出すには、以下を行います。 a. DB2 リレーショナル・コネクト CD をドライブに挿入します。 b. 自動実行機能により、セットアップ・プログラムが自動的に開始され ます。システム言語が判別され、その言語用のセットアップ・プログ ラムが立ち上がります。 * セットアップ・プログラムを手操作で呼び出すには、以下を行います。 a. 「スタート」をクリックし、「ファイル名を指定して実行」オプショ ンを選択します。 b. 「名前」フィールドに次のコマンドを入力します。 x:\setup /i language 説明: x CD-ROM ドライブです。 language 使用する言語の国別/地域コード (英語であれば EN) です。 c. 「OK」をクリックします。 インストール・ランチパッドが開きます。 4. 「インストール」をクリックして、インストール処理を開始します。 5. セットアップ・プログラムの指示に従います。 インストールが完了すると、他の DB2 製品が入っているディレクトリーに DB2 リレーショナル・コネクトがインストールされます。例えば、Oracle NET8 クライアント・ソフトウェア (net8.dll) のラッパー・ライブラリー は、 c:\Program Files\SQLLIB\bin ディレクトリーにインストールされま す。 UNIX サーバーへの DB2 リレーショナル・コネクトのインストール DB2 リレーショナル・コネクトを UNIX 連合サーバーにインストールするに は、db2setup ユーティリティーを使用します。 注: db2setup ユーティリティーの使用時に表示される画面は、その連合サーバ ーに何がインストール済みであるかによって異なります。以下のステップは、 リレーショナル・コネクトがまだインストールされていないことを前提として います。 1. root 権限を持つユーザーでログインします。 2. DB2 製品 CD-ROM を挿入し、マウントします。 CD-ROM をマウントする方法 は、DB2 (UNIX 版) 概説およびインストール」を参照してください。 3. cd /cdrom コマンドを入力して、 CD-ROM がマウントされているディレクト リーに移動します (cdrom は、使用している製品 CD-ROM のマウント・ポイ ントです)。 4. ./db2setup コマンドを入力します。少しして「DB2 V7 のインストール」ウ ィンドウが開きます。このウィンドウには、現在インストール済みの項目と インストール可能な項目がリストされます。 5. インストールする分散結合 (例えば、分散結合 (Informix データ・ソース 用) など) をナビゲートし、スペース・バーを押して選択します。選択され ると、そのオプションの横にアスタリスクが表示されます。 6. 「了解」を選択します。「DB2 サービスの作成」ウィンドウが開きます。 7. 連合サーバーにはすでに DB2 インスタンスが含まれているので、「DB2 イ ンスタンスを作成しない」オプションを選択して「了解」を選択します。 8. 管理サーバーを作成しないようにしてあると、警告が表示されます。「了解 」を選択します。「DB2 セットアップ・ユーティリティー」ウィンドウに、 何がインストールされるのかについてのサマリー報告書が表示されます。リ レーショナル・コネクトはまだインストールしていないので、以下の 2 つ の項目がリストされます。 * DB2 リレーショナル・コネクト用の製品シグニチャー * 選択したデータ・ソース用の分散結合 9. 「継続」を選択します。リレーショナル・コネクト・セットアップの開始を 確認するウィンドウが表示されます。了解」を選択してセットアップを継続 します。セットアップが完了するのに数分かかることがあります。 10. 「DB2 セットアップ・ユーティリティー」ウィンドウに、どのコンポーネ ントが正常にインストールされたかについての状況報告書が表示されます。 了解」を選択します。「DB2 セットアップ・ユーティリティー」ウィンドウ が開きます。「クローズ」を選択し、次に「了解」を選択してユーティリテ ィーを終了します。 インストールが完了すると、他の DB2 製品が入っているディレクトリーに DB2 リレーショナル・コネクトがインストールされます。 * DB2 (AIX サーバー版) では、ディレクトリーは /usr/lpp/db2_07_01 で す。 * DB2 (Solaris オペレーティング環境サーバー版) では、ディレクトリー は /opt/IBMdb2/V7.1 です。 * DB2 (HP-UX サーバー版) では、ディレクトリーは /opt/IBMdb2/V7.1 で す。 * DB2 (Linux サーバー版) では、ディレクトリーは /usr/IBMdb2/V7.1 で す。 第 24 章 複数データ・ソース・アクセス用の連合システムのセットアップ ニックネームで使用されるスキーマの理解 CREATE NICKNAME ステートメントの中のニックネーム・パラメーターは、スキ ーマとニックネームの 2 つの部分で構成される名前です。ニックネームを作成 する時にスキーマを省略すると、ニックネームのスキーマはニックネームを作 成するユーザーの許可 ID となります。ニックネームが作成されると、ニック ネームに関する情報はカタログ・ビューの SYSCAT.TABLES、 SYSCAT.TABOPTIONS、SYSCAT.COLUMNS、 SYSCAT.COLOPTIONS、および SYSCAT.INDEXES に保管されます。 連合データベースを別の連合サーバーへリストアする場合の問題点 連合データベースのバックアップを別の連合サーバーにリストアする場合、デ ータベース・イメージには新規データベース、および DB2 ファミリー・デー タ・ソースのアクセスに必要な、ノード・ディレクトリー情報が入っていませ ん。リストアを実行するときは、情報をカタログする必要があります。 第 26 章 Oracle データ・ソースへのアクセス AIX および Windows NT でのラッパーのサポートに加え、DB2 ユニバーサル・ データベースは Linux、Solaris オペレーティング環境、および HP-UX で Oracle ラッパーをサポートするようになりました。このサポートは Oracle バ ージョン 8 に限定されています。これらのプラットフォーム用のラッパーにア クセスするには、V7.2 DB2 リレーショナル・コネクト CD を挿入して「分散結 合 (Oracle データ・ソース用)」を選択する必要があります。 DB2 リレーショナル・コネクトをインストールすると、Oracle データ・ソース を連合サーバーに追加することができます。 1. Oracle クライアント・ソフトウェアを DB2 連合サーバーにインストール し、構成します。 2. UNIX プラットフォーム上の DB2 連合サーバーの場合、djxlink スクリプト を実行して、 Oracle SQL*Net または Net8 ライブラリーを DB2 連合サー バーにリンク・エディットし、 Oracle と併用するための DB2 連合ラッパ ー・ライブラリーを作成します。 3. db2dj.ini ファイルを作成または更新し、Oracle 用に環境変数を追加しま す。このファイルに、ORACLE_HOME 環境変数の定義を含める必要がありま す。 4. (オプション) DB2_DJ_INI および DB2_DJ_COMM プロファイル・レジストリ ー変数を設定します。 5. DB2 連合サーバー上の Oracle tnsnames.ora ファイルの場所と内容を確認 し、 Oracle sqlplus を使用して Oracle サーバーへの接続をテストしま す。 6. DB2 インスタンスを再生します。 7. ラッパーを作成します。 8. サーバー定義を作成します。 9. ユーザー・マッピングを作成します。 10. Set Passthru を使用して構成をテストします。 11. 表およびビューのニックネームを作成します。 環境変数の設定を含め、上記のステップについての詳しい説明は、「DB2 イン ストールおよび構成補足」の『第 26 章 Oracle データ・ソース・アクセス用 の連合システム・セットアップ』にあります。この情報は、 http://www.ibm.com/software/data/db2/relconnect/ からオンラインでの入手 も可能です。 記述の誤り セクション『Oracle データ・ソースの連合システムへの追加』に以下の誤りが あります。 * ブックのステップ 2 とステップ 3 の間に追加のステップが 1 つ必要です。 最初の 3 つのステップは、正しくは次の通りです。 1. Oracle クライアント・ソフトウェアを、Oracle で提供された資料を使 用して DB2 連合サーバーにインストールおよび構成します。 2. ORACLE_HOME 環境変数を設定します。 export ORACLE_HOME=. 3. UNIX プラットフォームで実行される DB2 連合サーバーの場合、djxlink スクリプトを実行して、 Oracle SQL*Net または Net8 ライブラリーを DB2 連合サーバーにリンク・エディットします。 djxlink スクリプト は、プラットフォームに応じて以下の場所にあります。 /usr/lpp/db2_07_01/bin (AIX) /opt/IBMdb2/V7.1/bin (Solaris オペレーティング環境) /opt/IBMdb2/V7.1/bin HP-UX /usr/IBMdb2/V7.1/bin (Linux) djxlink スクリプトは、Oracle のクライアント・ソフトウェアを DB2 連合サーバーにインストールした後にのみ実行してください。 4. データ・ソース環境変数を、db2dj.ini ファイルを変更し、 db2set コ マンドを発行することで設定します。 db2set コマンドは、DB2 プロフ ァイル・レジストリーをユーザーの設定で更新します。 環境変数の設定についての詳しい説明は、「DB2 インストールおよび構 成補足」の『第 26 章 Oracle データ・ソース・アクセス用の連合シス テム・セットアップ』にあります。 5. ここからは、ブックに書かれている通りにステップ 3 から続きを行って ください。 * 資料では次のように設定するように指示されています。 DB2_DJ_INI = sqllib/cfg/db2dj.ini これは誤りで、正しくは次のように設定します。 DB2_DJ_INI = $INSTHOME/sqllib/cfg/db2dj.ini リモート LOB での作業時の問題回避 リモート LOB 列を操作する場合は、メモリー不足の問題が発生する場合があり ます。例えば、Oracle 列から LONG データを選択し、そのデータを DB2 表に CLOB として挿入する照会を実行するとします。データベース・アプリケーショ ンのヒープ・サイズを増やしていない場合は、「メモリー不足」を示す SQL エ ラーを受け取ります。このエラーを解決するには、次のようにします。 1. すべてのアプリケーションを DB2 インスタンスから切断します。 2. アプリケーション・ヒープ・サイズを次のコマンドを使って更新します。 db2 udpate db cfg for dbname using APPLHEAPSZ 1024 ここで dbname は連合データベースの名前で、1024 は推奨されるヒープ・ サイズです。 3. データベースを再初期設定します。 この問題が発生させないためには、データベース・アプリケーションのヒー プ・サイズを増やしてください。この変更を有効にするために、データベース を再初期設定します。以下に例を示します。 1. アプリケーション・ヒープ・サイズを次のコマンドを使って更新します。 db2 udpate db cfg for dbname using APPLHEAPSZ 1024 ここで dbname は連合データベースの名前で、1024 は推奨されるヒープ・ サイズです。 2. すべてのアプリケーションを DB2 インスタンスから切断します。 3. データベースを再初期設定します。 Sybase データ・ソースへのアクセス Sybase データ・ソースを連合サーバーに追加する前に、Sybase Open Client ソフトウェアを DB2 連合サーバーにインストールし、構成しておく必要があり ます。 Sybase Open Client ソフトウェアのインストール方法については、 Sybase データベース・ソフトウェアに付属の資料に記述されているインストー ル手順を参照してください。インストール手順の一部として、Sybase カタロ グ・ストアード・プロシージャーが Sybase サーバーにインストールされてい て、Sybase Open Client ライブラリーが DB2 連合サーバーにインストールさ れていることを確認してください。 クライアント・ソフトウェアから Sybase サーバーへの接続の構成の後に、 Sybase ツールのいずれかを使用して接続のテストを行います。UNIX の場合は isql ツールを、 Windows の場合は SQL Advantage ツールを使用します。 連合サーバーをセットアップして、Sybase データ・ソースに保管されているデ ータにアクセスするには: 1. DB2 リレーショナル・コネクト バージョン 7.2 をインストールします。 "DB2 リレーショナル・コネクトのインストール"を参照してください。 2. Sybase データ・ソースを連合サーバーに追加します。 3. Sybase コード・ページを指定します。 この章では、ステップ 2 および 3 が説明されています。 この章での説明は、Windows NT、AIX、および Solaris オペレーティング環境 に適用されます。プラットフォーム固有の違いは、その都度示されています。 連合サーバーへの Sybase データ・ソースの追加 Sybase データ・ソースを連合サーバーに追加するには: 1. 環境変数を設定し、プロファイル・レジストリーを更新します (AIX および Solaris の場合のみ)。 2. DB2 を Sybase クライアント・ソフトウェアにリンクします (AIX および Solaris の場合のみ)。 3. DB2 インスタンスを再生します (AIX および Solaris の場合のみ)。 4. interfaces ファイルを作成し、セットアップします。 5. ラッパーを作成します。 6. オプション: DB2_DJ_COMM 環境変数を設定します。 7. サーバーを作成します。 8. オプション: CONNECTSTRING サーバー・オプションを設定します。 9. ユーザー・マッピングを作成します。 10. 表およびビューのニックネームを作成します。 上記のステップは、このセクションで詳しく説明されています。 ステップ 1: 環境変数の設定およびプロファイル・レジストリーの更新 (AIX お よび Solaris の場合のみ) db2dj.ini ファイルを変更し、db2set コマンドを実行することで、データ・ソ ース環境変数を設定します。 db2dj.ini ファイルには、連合サーバーにインス トールされている Sybase クライアント・ソフトウェアについての構成情報が あります。db2set コマンドは、DB2 プロファイル・レジストリーをユーザーの 設定で更新します。 区分データベース・システムでは、特定インスタンスのすべてのノードに対して 単一の db2dj.ini ファイルを使用、または特定インスタンスの 1 つ以上のノ ードに対して固有の db2dj.ini ファイルを使用することができます。非区分デ ータベース・システムでは、保持できる db2dj.ini ファイルはインスタンスご とに 1 つです。 環境変数を設定するには: 1. sqllib/cfg にある db2dj.ini ファイルを編集し、次の環境変数を設定しま す。 SYBASE="" ここで、 は Sybase クライアントがインストール されているディレクトリーです。 2. db2set コマンドを実行して、DB2 プロファイル・レジストリーに変更を適 用します。このコマンド db2set の構文は、使用しているデータベース・シ ステムによって異なります。このステップは、以下のデータベース・システ ム構造のいずれかで db2dj.ini ファイルを使用している場合のみ必要で す。 非区分データベース・システムで db2dj.ini ファイルを使用しているか、 db2dj.ini ファイルを現行ノードにだけ適用する場合、次のコマンドを発行 します。 db2set DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini 区分データベース・システムで db2dj.ini ファイルを使用していて、 db2dj.ini ファイルの値をこのインスタンス内のすべてのノードに適用する 場合、次のコマンドを実行します。 db2set -g DB2_DJ_INI=$HOME/sqllib/cfg/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 ファイルです。 ステップ 2: Sybase クライアント・ソフトウェアへの DB2 のリンク (AIX およ び Solaris オペレーティング環境の場合のみ) Sybase データ・ソースにアクセスできるようにするには、DB2 連合サーバーが クライアント・ライブラリーにリンク・エディットされていなければなりませ ん。リンク・エディット処理は、連合サーバーが通信するデータ・ソースごとに ラッパーを作成します。 djxlink スクリプトを実行すると、ラッパー・ライブ ラリーが作成されます。 djxlink スクリプトを実行するには: djxlink ステップ 3: DB2 インスタンスの再生 (AIX および Solaris オペレーティング 環境の場合のみ) プログラムに確実に環境変数が設定されるようにするには、DB2 インスタンス を再生します。インスタンスを再生すると、変更を受け入れられるよう DB2 イ ンスタンスはリフレッシュされます。 DB2 インスタンスを再生するには、以下のコマンドを実行します。 DB2 (Windows NT サーバー版) の場合: NET STOP instance_name NET START instance_name DB2 (AIX および Solaris サーバー版) の場合: db2stop db2start ステップ 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: ラッパーの作成 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 ステートメントを調べてください。 ステップ 6: オプション: DB2_DJ_COMM 環境変数の設定 Sybase データ・ソースにアクセスしているときのパフォーマンスを向上させる には、 DB2_DJ_COMM 環境変数を設定してください。この変数は、連合サーバー が初期設定されるときにラッパーをロードするかどうかを決定します。 DB2_DJ_COMM 環境変数を設定して、前のステップで指定したラッパーに対応する ラッパー・ライブラリーを組み込みます。以下に例を示します。 DB2 (AIX サーバー版) の場合: db2set DB2_DJ_COMM='libctlib.a' DB2 (Solaris サーバー版) の場合: db2set DB2_DJ_COMM='libctlib.so' 等号 (=) の両端にスペースがないことを確認します。 ラッパー・ライブラリー名について詳しくは、「DB2 SQL 解説書」を参照して ください。 DB2_DJ_COMM 環境変数について詳しくは、「管理の手引き」を参照 してください。 ステップ 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 データベースの名前です。Sybase サーバーか らこの名前を取得します。 CTLIB プロトコルおよび DBLIB プロトコルで IGNORE_UDT サーバー・オプショ ンを使用して、連合サーバーが、強い型定義を行わなくても UDT を強調する組 み込みタイプを判別できるようにするかどうかを指定することができます。こ のサーバー・オプションは、CTLIB および DBLIB プロトコルを通じてアクセス されるデータ・ソースにのみ適用されます。有効な値は以下の通りです。 'Y' UDT がユーザー定義であるという事実を無視し、それらの基底で ある組み込みタイプを判別する。 'N' UDT のユーザー定義仕様を無視しない。これがデフォルトの設定で す。 DB2 はニックネームを作成すると、そのニックネームの指し示すオブジェクト (表、ビュー、ストアード・プロシージャー) に関する情報を探してカタログし ます。情報の検索中に、認識不能のデータ・タイプ (つまり、連合データベー スに対応するマップが行われないデータ型) を持つオブジェクトが見つかる場 合があります。以下のような認識不能のタイプがあります。 * 新規の組み込みタイプ * 強い型定義による UDT * 強い型定義のない UDT。これらは、ユーザーが単に名前変更しただけの組み 込みタイプです。これらのタイプは、Sybase や Microsoft SQL Server な どの、特定のデータ・ソースによってのみサポートされます。 連合サーバーは、認識不能なデータ・タイプを検出すると、エラー・メッセージ SQL3324N を戻します。ただし、別の動作を設定することもできます。CTLIB や DBLIB プロトコルを通じてアクセス可能なデータ・ソースに関しては、IGNORE_ UDT サーバーを設定して、連合データベースが強い型定義のない認識不能な UDT を検出した場合に、その UDT の基底となる組み込みタイプを判別するようにさ せることができます。連合データベースが組み込みタイプを認識した場合、連 合データベースはその組み込みタイプに関する情報をカタログに戻します。連 合データベースに強い型定義のない UDT の、基底となる組み込み型を判別させ るには、 IGNORE_UDT を 'Y' に設定してください。 ステップ 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"' ステップ 9: ユーザー・マッピングの作成 連合サーバーのユーザー ID またはパスワードが Sybase データ・ソースのユ ーザー ID またはパスワードと異なる場合、CREATE USER MAPPING ステートメ ントを使用して、Sybase データ・ソースで定義されたユーザー ID とパスワー ドにローカル・ユーザー ID をマップします。以下に例を示します。 CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'day2night') 説明: DB2USER Sybase データ・ソースで定義されたユーザー ID にマップさ れるローカル・ユーザー ID です。 SYBSERVER CREATE SERVER ステートメントで定義した Sybase データ・ソースの 名前です。 'sybuser' DB2USER のマップ先である、Sybase データ・ソースでのユーザー ID です。この値については大文字小文字が区別されます。 'day2night' 'sybuser' に関連付けられているパスワードです。この値については 大文字小文字が区別されます。 その他のオプションの詳細については、「DB2 SQL 解説書」を参照してくださ い。 ステップ 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 管理の手引き」を参照してください。 Sybase コード・ページの指定 このステップは、DB2 連合サーバーと Sybase サーバーが異なるコード・ペー ジを使用している場合のみ必須です。 DB2 と同じコード・セットを使用してい るデータ・ソースでは、変換は必要ありません。以下の表は、NLS (各国語サポ ート) の共通コード・ページと同等の Sybase オプションを示しています。 Sybase データ・ソースが、これらの同等の値に対応するよう構成されている必 要があります。あるいは、クライアント・コードが一致しない部分を見つけ、 エラーとしてフラグを立てるか、データ自体の意味を使用してデータをマップ することができなければなりません。ソース・コード・ページからターゲッ ト・コード・ページへの変換表が見つからない場合、 DB2 はエラー・メッセー ジを出します。詳しくは、Sybase の資料を参照してください。 表 2. Sybase コード・ページ・オプション +-------------+-------------------------------------------------------+ | コード・ペ | 同等の Sybase オプション | | ージ | | +-------------+-------------------------------------------------------+ | 850 | cp850 | +-------------+-------------------------------------------------------+ | 897 | sjis | +-------------+-------------------------------------------------------+ | 819 | iso_1 | +-------------+-------------------------------------------------------+ | 912 | iso_2 | +-------------+-------------------------------------------------------+ | 1089 | iso_6 | +-------------+-------------------------------------------------------+ | 813 | iso_7 | +-------------+-------------------------------------------------------+ | 916 | iso_8 | +-------------+-------------------------------------------------------+ | 920 | iso_9 | +-------------+-------------------------------------------------------+ ODBC による Microsoft SQL Server データ・ソースへのアクセス (新しい章) Microsoft SQL Server データ・ソースを DB2 連合サーバーに追加する前に、 ODBC ドライバーを連合サーバーにインストールし、構成しておく必要がありま す。 ODBC ドライバーのインストール方法については、ODBC ドライバーに付属 の資料に記述されているインストール手順を参照してください。 連合サーバーをセットアップして、Microsoft SQL Server データ・ソースに保 管されているデータにアクセスするには、以下を行います。 1. ODBC ドライバーを連合サーバーにインストールし、構成します。 ODBC ド ライバーのインストール方法については、ODBC ドライバーに付属の資料に 記述されているインストール手順を参照してください。 DB2 (Windows NT サーバー版) の場合: ODBC デバイス・マネージャーでシステム DSN を構成します。 「ODBC データ・ソース・アドミニストレーター」ウィンドウで、 SQL サーバー・ドライバーを指定し、そのダイアログを進めて新 規システム DSN を追加します。「ユーザー提供のログイン ID お よびパスワードを使用した SQL サーバー認証」を指定します。 DB2 (AIX サーバー版) の場合: MERANT によって提供されているライブラリーのスレッド化バージ ョンをインストールし、 LIBPATH の最初の項目として MERANT ラ イブラリー・ディレクトリーを指定し、 .odbc.ini ファイルをセ ットアップします。 2. DB2 リレーショナル・コネクト バージョン 7.2 をインストールします。 "DB2 リレーショナル・コネクトのインストール"を参照してください。 3. Microsoft SQL Server データ・ソースを連合サーバーに追加します。 4. Microsoft SQL Server コード・ページを指定します。(Windows NT の場合 のみ) この章では、ステップ 3 および 4 が説明されています。 この章での説明は、Windows NT および AIX プラットフォームに適用されます。 プラットフォーム固有の違いは、その都度示されています。 連合サーバーへの Microsoft SQL Server データ・ソースの追加 ODBC ドライバーと DB2 リレーショナル・コネクトをインストールした後、以 下のステップに従って Microsoft SQL Server データ・ソースを連合サーバーに 追加します。 1. 環境変数を設定します。(AIX の場合のみ) 2. シェル・スクリプトを実行します。(AIX の場合のみ) 3. オプション: DB2_DJ_COMM 環境変数を設定します。(AIX の場合のみ) 4. DB2 インスタンスを再生します。(AIX の場合のみ) 5. ラッパーを作成します。 6. サーバーを作成します。 7. ユーザー・マッピングを作成します。 8. 表およびビューのニックネームを作成します。 9. オプション: ODBC トレースを取得します。 上記のステップは、以下のセクションで詳しく説明されています。 ステップ 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 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 ファイルです。 クライアント・ライブラリーへのパスを設定するには、以下のコマンドを発行 します。 db2set DB2LIBPATH= db2set DB2ENVLIST=LIBPATH ステップ 2: シェル・スクリプトの実行 (AIX の場合のみ) djxlink.sh シェル・スクリプトは、クライアント・ライブラリーをラッパー・ ライブラリーにリンクします。シェル・スクリプトを実行するには、以下を入 力します。 djxlink ステップ 3: オプション: DB2_DJ_COMM 環境変数の設定 (AIX の場合のみ) 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 解説書」を参照し てください。 ステップ 4: DB2 インスタンスの再生 (AIX の場合のみ) プログラムに確実に環境変数が設定されるようにするには、DB2 インスタンス を再生します。インスタンスを再生すると、変更を受け入れられるよう DB2 イ ンスタンスはリフレッシュされます。 DB2 インスタンスを再生するには、次の コマンドを実行してください。 db2stop db2start ステップ 5: ラッパーの作成 DB2 ユニバーサル・データベースには、Microsoft SQL Server データ・ソース へのアクセスに使用できる 2 つの異なるプロトコル (ラッパー) があります。 ラッパーとは、データ・ソースとの通信およびデータ・ソースからのデータ検 索に連合サーバーが使用するメカニズムのことです。使用するラッパーは、DB2 ユニバーサル・データベースが稼働しているプラットフォームによって異なり ます。適切なラッパーを選択するためのガイドとして、表 3 を使用してくださ い。 表 3. ODBC ドライバー +--------------------------------+------------------+-----------------+ | ODBC ドライバー | プラットフォーム | ラッパー名 | +--------------------------------+------------------+-----------------+ | ODBC 3.0 (またはそれ以降) ドラ | Windows NT | DJXMSSQL3 | | イバー | | | +--------------------------------+------------------+-----------------+ | MERANT DataDirect Connect ODBC | AIX | MSSQLODBC3 | | 3.6 ドライバー | | | +--------------------------------+------------------+-----------------+ 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 ステートメントを調べてください。 ステップ 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 と同じバージョ ンの Microsoft SQL Server を参照するシステム DSN 名です。この 値については大文字小文字が区別されます。 DB2 ユニバーサル・デ ータベースは、バージョン 6.5 と 7.0 の Microsoft SQL Server を サポートしています。 ノードの名前 (システム DSN 名) が CREATE SERVER ステートメント でオプションとして指定されていても、Microsoft SQL Server デー タ・ソースにはノード名が必要です。 Windows の場合、Windows ODBC データ・ソース・アドミニストレーター・ツールの「システム DSN」 タブで DSN を取得します。AIX の場合、DB2 インスタンス所有者ホ ーム・ディレクトリーの .odbc.ini ファイルから DSN を取得しま す。 CREATE WRAPPER ステートメントで使用できるその他のオプションに ついては、「DB2 SQL 解説書」を参照してください。 'database_name' 接続するデータベースの名前です。 データベースの名前が CREATE SERVER ステートメントでオプション として指定されていても、Microsoft SQL Server データ・ソースには データベース名が必要です。 ステップ 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 'day2night') 説明: db2user Microsoft SQL Server データ・ソースで定義されたユーザー ID にマップするローカル・ユーザー ID です。 server_name CREATE SERVER ステートメントで定義したサーバーの名前です。 'mssqluser' db2user のマップ先である、Microsoft SQL Server データ・ソース でのログイン ID です。この値については大文字小文字が区別されま す。 'day2night' 'mssqluser' に関連付けられているパスワードです。この値について は大文字小文字が区別されます。 CREATE USER MAPPING ステートメントで使用できるその他のオプションについ ては、「DB2 SQL 解説書」を参照してください。 ステップ 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 管理の手引き」を参照してください。 ステップ 9: オプション: ODBC トレースの取得 データ・ソースへのアクセス時に問題が発生する場合、その問題の分析と解決 のため、ODBC トレース情報を取得することができます。ODBC トレースが正し く機能していることを確認するには、ODBC データ・ソース・アドミニストレー ターにより提供されているトレース・ツールを使用します。トレースの活動化 はシステム・パフォーマンスに影響するため、問題が解決したらトレースをオ フにしてください。 Microsoft SQL Server コード・ページの検討 (Windows NT の場合のみ) Microsoft SQL Server は、DB2 UDB がサポートしている NLS (各国語サポート) 共通コード・ページの多くをサポートしています。 DB2 と同じコード・セット を使用しているデータ・ソースでは、変換は必要ありません。表 4 には、DB2 ユニバーサル・データベースと Microsoft SQL Server の両方がサポートして いるコード・ページがリストされています。 表 4. 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 の資料を参照してください。 Informix データ・ソースへのアクセス (新しい章) Informix データ・ソースを DB2 連合サーバーに追加する前に、Informix クラ イアント SDK ソフトウェアを連合サーバーにインストールして構成しておく必 要があります。クライアント SDK ソフトウェアのインストール方法に関する特 定の事柄の詳細は、Informix データベース・ソフトウェアに付属の資料に記載 されているインストール手順を参照してください。インストール手順の一部と して、Informix クライアント SDK ライブラリーを組み込むことを忘れないで ください。 Informix データ・ソースに保管されているデータにアクセスできるように連合 サーバーをセットアップするには、以下を行う必要があります。 1. DB2 リレーショナル・コネクトをインストールします。"DB2 リレーショナ ル・コネクトのインストール"を参照してください。 2. 最新の DB2 フィックスパックを適用します。 3. Informix データ・ソースを連合サーバーに追加します。 この章では、ステップ 3 について説明しています。 この章での説明は、AIX、Solaris オペレーティング環境、および HP-UX オペ レーティング・システムに適用されます。オペレーティング・システム固有の 違いは、そのつど示されています。 連合サーバーへの Informix データ・ソースの追加 Informix データ・ソースを連合サーバーに追加するには、以下を行う必要があ ります。 1. 環境変数を設定し、プロファイル・レジストリーを更新します。 2. DB2 を Informix クライアント・ソフトウェアにリンクします。 3. DB2 インスタンスを再生します。 4. Informix sqlhosts ファイルを作成します。 5. ラッパーを作成します。 6. オプション: DB2_DJ_COMM 環境変数を設定します。 7. サーバーを作成します。 8. ユーザー・マッピングを作成します。 9. 表、ビュー、および Informix 同義語のニックネームを作成します。 上記のステップは、このセクションで詳しく説明されています。 ステップ 1: 環境変数の設定およびプロファイル・レジストリーの更新 db2dj.ini ファイルを変更し、db2set コマンドを実行することで、データ・ソ ース環境変数を設定します。 db2dj.ini ファイルには、連合サーバーにインス トールされている Informix クライアント・ソフトウェアについての構成情報が 含まれています。db2set コマンドは、DB2 プロファイル・レジストリーをユー ザーの設定で更新します。 区分データベース・システムでは、特定インスタンスのすべてのノードに対して 単一の db2dj.ini ファイルを使用、または特定インスタンスの 1 つ以上のノ ードに対して固有の db2dj.ini ファイルを使用することができます。非区分デ ータベース・システムでは、保持できる db2dj.ini ファイルはインスタンスご とに 1 つです。 環境変数を設定するには、以下を行います。 1. sqllib/cfg ディレクトリーにある db2dj.ini ファイルを編集し、次の環境 変数を設定します。 注: このファイルがシステムにまだない場合は、ご自身で作成できます。 INFORMIXDIR INFORMIXDIR 環境変数には、Informix クライアント SDK ソフト ウェアがインストールされているディレクトリーのパスを設定し ます。以下に例を示します。 INFORMIXDIR=/informix/csdk INFORMIXSERVER この変数により、デフォルトの Informix サーバーの名前が識別 されます。 INFORMIXSERVER=inf93 注: Informix ラッパーはこの変数の値を使用しませんが、 Informix クライアントはこの変数が設定されていることを必要と します。ラッパーは、ユーザーがアクセスする Informix データ ベース・サーバーを指定する node サーバー・オプションの値を 使用します。 INFORMIXSQLHOSTS Informix sqlhosts ファイルのデフォルトのパス ($INFORMIXDIR/etc/sqlhosts) を使用している場合は、この変数 を設定する必要はありません。しかし、Informix sqlhosts ファ イルについてデフォルト以外のパスを使用している場合は、この 変数に Informix sqlhosts ファイルの全パス名を設定する必要が あります。以下に例を示します。 INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts 2. Informix 環境変数を使用して、DB2 インスタンスの .profile ファイルを 更新します。これを行うには、次のコマンドを発行し、各変数を設定してエ クスポートします。 PATH=$INFORMIXDIR/bin:$PATH export PATH INFORMIXDIR= export INFORMIXDIR ここで informix_client_path は、連合サーバー上で Informix クライアン トがインストールされているディレクトリーのパスです。パス内にブランク を含んでいる名前がある場合は、パスを二重引用符 (") で囲んでください。 3. 次のコマンドを入力して、DB2 インスタンス .profile を実行します。 . .profile 4. db2set コマンドを実行して、DB2 プロファイル・レジストリーに変更を適 用します。このコマンド db2set の構文は、使用しているデータベース・シ ステムによって異なります。このステップは、以下のデータベース・システ ム構造のいずれかで db2dj.ini ファイルを使用している場合のみ必要で す。 非区分データベース・システムで db2dj.ini ファイルを使用しているか、 db2dj.ini ファイルを現行ノードにだけ適用する場合、次のコマンドを発行 します。 db2set DB2_DJ_INI=/sqllib/cfg/db2dj.ini 注: このセクションのパス名は完全修飾名でなければなりません。例えば、 my_home/my_instance/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 ファイルです。 ステップ 2: Informix クライアント・ソフトウェアへの DB2 のリンク Informix データ・ソースにアクセスできるようにするためには、DB2 連合サー バーがクライアント・ライブラリーにリンク・エディットされている必要があ ります。リンク・エディット処理では、連合サーバーが通信するデータ・ソー スごとにラッパー・ライブラリーが作成されます。 djxlinkInformix スクリプ トを実行すると、Informix ラッパー・ライブラリーが作成されます。 djxlinkInformix スクリプトを発行するには、次のように入力します。 djxlinkInformix 注: djxlinkInformix スクリプトによって作成されるのは Informix ラッパ ー・ライブラリーだけです。 他に djxlink スクリプトというスクリプ トがあり、これは DB2 ユニバーサル・データベースがサポートするあら ゆるデータ・ソース (Oracle、 Microsoft SQL Server など)のラッパ ー・ライブラリーを作成しようと試みます。一部のデータ・ソース用の クライアント・ソフトウェアしかインストールしていない場合は、 djxlink スクリプトを発行すると、欠落しているデータ・ソースごとに エラー・メッセージを受け取ります。 djxlinkInformix および djxlink スクリプトを実行するには、UNIX シ ステム管理者 (root) 権限が必要です。 オペレーティング・システムによっては、djxlinkInformix および djxlink スクリプトにより詳細なエラーや警告メッセージが特定のファ イルに書き込まれます。 例えば、AIX の場合、djxlinkInformix スクリ プトにより /usr/lpp/db2_07_01/lib/djxlinkInformix.out へ、djxlink スクリプトにより /usr/lpp/db2_07_01/lib/djxlink.out へ書き込まれ ます。 オペレーティング・システムによっては、djxlinkInformix および djxlink スクリプトにより特定のディレクトリーにラッパーが作成され ます。例えば、AIX の場合、libinformix.aラッパー・ライブラリーが /usr/lpp/db2_07_01/lib ディレクトリーに作成されます。 libinformix.a ラッパー・ライブラリーが作成されたら、 DB2 インスタ ンス所有者による読み取り、実行の許可があるかどうか確認してくださ い。DB2 インスタンス所有者がシステム・グループにない場合は、 libinformix.a ラッパー・ライブラリーに対して -rwxr-xr-x root system...libinformix.a が許可される必要があります。 ステップ 3: DB2 インスタンスの再生 プログラムに確実に環境変数が設定されるようにするには、DB2 インスタンス を再生します。インスタンスを再生すると、変更を受け入れられるよう DB2 イ ンスタンスはリフレッシュされます。 DB2 インスタンスを再生するには、以下のコマンドを実行します。 DB2 (AIX、Solaris オペレーティング環境、および HP-UX サーバー版) の場合: db2stop db2start ステップ 4: Informix sqlhosts ファイルの作成 このファイルは、各 Informix データベース・サーバーのロケーションと、その データベース・サーバー用の接続 (プロトコル) のタイプを指定します。この ファイルを作成するいくつかの方法があります。 Informix サーバーに接続さ れている Informix Connect または Informix クライアント SDK が入っている 別のシステムからコピーすることができます。また、DB2 サーバー上の Informix クライアント SDK を、 sqlhosts ファイルを作成する Informix サ ーバーに接続するよう構成することもできます。 sqlhosts ファイルがコピーまたは作成されたら、DB2 インスタンス所有者は Informix dbaccess (DB2 サーバー上にある場合) を使用して Informix サーバ ーへの接続、照会を行う必要があります。これにより、Informix クライアント SDK で作業するために DB2 リレーショナル・コネクトを構成する前に、 Informix クライアント SDK が Informix サーバーに接続することができるよ うになります。 このファイルのセットアップ方法についての詳細は、Informix のマニュアル「 Administrators Guide for Informix Dynamic Server」を参照してください。 +---- 警告: -----------------------------------------------------------+ Informix データベース・サーバーの名前を sqlhosts ファイル内に定義してい ないと、その Informix データベース・サーバーへの接続が必要な操作の実行 時にエラーを受け取ります。 +----------------------------------------------------------------------+ ステップ 5: ラッパーの作成 CREATE WRAPPER ステートメントを使用して、Informix データ・ソースへのア クセスに使用されるラッパーを指定します。ラッパーとは、データ・ソースと の通信およびデータ・ソースからのデータ検索に連合サーバーが使用するメカ ニズムのことです。以下は CREATE WRAPPER ステートメントの例です。 CREATE WRAPPER informix ここで、informix は wrapper_name です。informix は、Informix クライアン ト SDK ソフトウェアで使用されるデフォルトのラッパー名です。 デフォルト・ラッパー名は、選択した名前で置換することができます。ただ し、これを行う場合、LIBRARY パラメーターおよび連合サーバーのラッパー・ ライブラリー名も CREATE WRAPPER ステートメントに組み込まなければなりま せん。ラッパー・ライブラリー名についての詳細は、「DB2 SQL 解説書」の CREATE WRAPPER ステートメントを参照してください。 Informix 用のラッパー・ライブラリー名は次の通りです。 * libinformix.a (AIX) * libinformix.so (Solaris オペレーティング環境) * libinformix.sl (HP-UX) ステップ 6: オプション: DB2_DJ_COMM 環境変数の設定 Informix データ・ソースへのアクセス時におけるパフォーマンスを向上させる には、連合サーバー上で DB2_DJ_COMM 環境変数を設定します。この変数によ り、連合サーバーの初期化時にラッパーがロードされるかどうかが決まります。 直前のステップで指定したラッパーに対応するラッパー・ライブラリーが組み 込まれるように DB2_DJ_COMM 環境変数を設定します。Korn シェルまたは Bourne シェル・コマンド行インターフェースを使用している場合は、次のエク スポート・コマンドを使用してください。 DB2 (AIX サーバー版) の場合: DB2_DJ_COMM='libinformix.a' export DB2_DJ_COMM DB2 (Solaris オペレーティング環境サーバー版) の場合: DB2_DJ_COMM='libinformix.so' export DB2_DJ_COMM DB2 (HP-UX サーバー版) の場合: DB2_DJ_COMM='libinformix.sl' export DB2_DJ_COMM 等号 (=) の両端にスペースがないことを確認します。 C シェル・コマンド行インターフェースを使用している場合は、次のコマンド を使用して環境変数を設定してください。 setenv DB2_DJ_COMM 'libinformix.a' (DB2 (AIX サーバー版)) setenv DB2_DJ_COMM 'libinformix.so' (DB2 for Solaris Operating Environment servers) setenv DB2_DJ_COMM 'libinformix.sl' (DB2 for HP--UX servers) ラッパー・ライブラリー名および DB2_DJ_COMM 環境変数についての詳細は、「 DB2 SQL 解説書」を参照してください。 ステップ 7: サーバーの作成 CREATE SERVER ステートメントを使用して、アクセスしたいデータ・ソースを持 つ Informix サーバーをそれぞれ定義します。このステートメントの構文は次 の通りです。 CREATE SERVER server_name TYPE server_type VERSION server_version WRAPPER wrapper_name OPTIONS (NODE 'node_name', DBNAME 'database_name') 説明: server_name Informix データベース・サーバーに割り当てる名前です。この名前 は固有でなければならず、連合データベースに定義されている別の server_name と重複してはいけません。server_name は、連合データ ベース内の表スペースの名前と同じにすることはできません。 TYPE server_type 現在構成中のアクセスの対象となるデータ・ソースのタイプを指定し ます。 注: Informix ラッパーの場合は、server_type は informix でなけ ればなりません。 VERSION server_version アクセスしたい Informix データベース・サーバーのバージョンで す。サポートされている Informix のバージョンは、5、7、8、および 9 です。 WRAPPER wrapper_name CREATE WRAPPER ステートメントで指定した名前です。 NODE 'node_name' server_name が常駐しているノードの名前です。 node_name が Informix sqlhosts ファイル内に定義されている必要があります (ス テップ 4 を参照してください)。node_name は、CREATE SERVER SQL ステートメントでオプションとして指定されるものですが、Informix データ・ソースの場合には必須です。この値では、大文字小文字が区 別されます。その他のオプションの詳細については、DB2 SQL 解説書 」を参照してください。 DBNAME 'database_name' アクセスしたい Informix データベースの名前です。 以下は CREATE SERVER ステートメントの例です。 CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales') FOLD_ID および FOLD_PW サーバー・オプションは、ラッパーがユーザー ID と パスワードを Informix への送信に先立って英大文字または小文字に変換する かどうかに影響します。以下は、FOLD_ID および FOLD_PW サーバー・オプショ ンを指定した CREATE SERVER ステートメントの例です。 CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales', FOLD_ID 'U', FOLD_PW 'U') ステップ 8: ユーザー・マッピングの作成 DB2 連合サーバー上のユーザー ID またはパスワードが Informix データ・ソ ース上のユーザー ID またはパスワードと異なる場合は、CREATE USER MAPPING ステートメントを使用して、ローカル・ユーザー ID を Informix データ・ソ ース上で定義されているユーザー ID とパスワードにマップします。以下に例 を示します。 CREATE USER MAPPING FOR local_userid SERVER server_name OPTIONS (REMOTE_AUTHID 'remode_userid', REMOTE_PASSWORD 'remote_password') 説明: local_userid Informix データ・ソース上で定義されているユーザー ID にマップ するローカル・ユーザー ID です。 SERVER server_name CREATE SERVER ステートメントで定義した Informix データ・ソース の名前です。 REMOTE_AUTHID 'remote_userid' local_userid のマップ先とする Informix データベース・サーバー 上のユーザー ID です。この値は、CREATE SERVER ステートメントで FOLD_ID サーバー・オプションに 'U' または 'L' を設定していない かぎり、大文字小文字が区別されます。 REMOTE_PASSWORD 'remote_password' remote_userid に関連付けられているパスワードです。この値は、 CREATE SERVER ステートメントで FOLD_PW サーバー・オプションに 'U' または 'L' を設定していないかぎり、大文字小文字が区別され ます。 以下は CREATE USER MAPPING ステートメントの例です。 CREATE USER MAPPING FOR robert SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night') DB2 特殊レジスター USER を使用して、CREATE USER MAPPING ステートメントの 発行者の許可 ID を REMOTE_AUTHID ユーザー・オプションで指定されているデ ータ・ソース許可 ID にマップできます。以下は、USER 特殊レジスターが組み 込まれている CREATE USER MAPPING ステートメントの例です。 CREATE USER MAPPING FOR USER SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night') その他のオプションの詳細については、「DB2 SQL 解説書」を参照してくださ い。 ステップ 9: 表、ビュー、および Informix 同義語のニックネームの作成 Informix データ・ソース上にある表、ビュー、または Informix 同義語ごとに ニックネームを割り当てます。ニックネームの長さは 128 文字までが可能で す。これらのニックネームは、Informix データ・ソースを照会するときに使用 します。サーバー、スキーマ、および表の名前は、二重引用符 (") で囲まない かぎり、DB2 によって英大文字に変換されます。以下は CREATE NICKNAME ステ ートメントの例です。 CREATE NICKNAME nickname FOR server_name."remote_schema_name"."remote_table_name" 説明: nickname Informix の表、ビュー、または同義語の識別に使用される 固有ニックネームです。 server_name."remote_schema_name"."remote_table_name" リモート・オブジェクト用の、3 つの部分から構成される ID です。 * server_name は、CREATE SERVER ステートメントで Informix デ ータベース・サーバーに割り当てた名前です。 * remote_schema_name は、表、ビュー、または同義語が属するリモ ート・スキーマの名前です。 * remote_table_name は、アクセスしたいリモートの表、ビュー、 または同義語の名前です。 以下は CREATE NICKNAME ステートメントの例です。 CREATE NICKNAME salesjapan FOR asia."salesdata"."japan" ニックネームを作成したい表またはビューごとに、このステップを繰り返して ください。ニックネームが作成されると、DB2 は接続を使用してデータ・ソー ス・カタログを照会します。この照会によって、データ・ソースへの接続がテ ストされます。接続が失敗した場合、エラー・メッセージが表示されます。 CREATE NICKNAME ステートメントの詳細については、「DB2 SQL 解説書」を参 照してください。一般的なニックネームの詳細、およびデータ・タイプ・マッ ピングの検証については、「DB2 管理の手引き」を参照してください。 第 III 部 管理 管理の手引き 入手可能なアップデート版 「管理の手引き」はフィックスパック 4 の一部として更新され、最新の PDF は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support からオ ンラインでダウンロードできます。これらの注釈の情報は、更新された解説書 への追加情報です。更新された資料は、すべて CD でも入手できます。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介して注文できます。DB2 サービスへの連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 管理の手引き: 計画 第 8 章 物理データベース設計 表スペース設計上の考慮事項 データが RAID 上に配置されている場合の表スペース・パフォーマンスの最適化 DB2_PARALLEL_IO DB2_PARALLEL_IO は、また複数の定義されたコンテナーを持つ表スペースにも 影響を及ぼします。レジストリー変数を設定しないと、入出力並行処理は表ス ペースのコンテナー数に等しくなります。レジストリー変数を設定すると、入 出力並行処理はプリフェッチ・サイズをエクステント・サイズで割った結果に 等しくなります。表スペース内の個々のコンテナーが複数の物理ディスクにま たがってストライプされた場合は、レジストリー変数の設定が必要になる場合 があります。 例えば、表スペースに 2 つのコンテナーがあって、プリフェッチ・サイズがエ クステント・サイズの 4 倍だとします。レジストリー変数を設定しないと、こ の表スペースに対するプリフェッチ要求は、2 つの要求に分割されます (各要 求は 4 エクステントにわたります)。プリフェッチャーが利用できる場合は、2 つのプリフェッチャーがこれらの要求を並列で処理できます。レジストリー変 数が設定されている場合は、この表スペースに対するプリフェッチ要求は、4 つの要求に分割され (要求ごとに 1 エクステント)、4 つのプリフェッチャー が要求を並列で処理できます。 この例では、2 つのコンテナーがそれぞれ専用の単一ディスクを持っている場 合は、この表スペースにレジストリー変数を設定すれば、これらのディスクが 競合する恐れがあります。これは、2 つのプリフェッチャーが 2 つの各ディス クを同時にアクセスする可能性があるからです。ただし、2 つのコンテナーが それぞれ複数のディスクにまたがってストライプされている場合は、レジスト リー変数を設定しても、4 つの異なるディスクに同時にアクセスできる可能性 があります。 キーの分割化 『ノード・グループの設計』セクションの『ノード・グループ設計上の考慮事 項』サブセクションで、キーの分割を定義する際の考慮点が記載されている 『キーの分割化』という項目内の以下のテキストは、DB2_UPDATE_PART_KEY=ON: の場合は、削除してください。 注: DB2_UPDATE_PART_KEY=OFF の場合には、制約事項が適用されます。 注: フィックスパック 3 以降では、デフォルト値は OFF です。 * 表の中の行に対する分割化キー列の値を更新することはできません。 * 分割化キー列の値は、削除または挿入することしかできません。 付録 D. リリース間の非互換性 接続喪失検出時に SQL30081N エラーが戻されない 従来、アプリケーションでは SQL30081N エラーを検査して、データベース・サ ーバーへの接続の喪失を検出していましたが、DB2 ユニバーサル・データベー スのバージョン 6 以降への移行後は、アプリケーションは接続の喪失を検出し ません。 識別属性を正しくハンドルするには、エクスポート・ユーティリティーにフィッ クスパック 7 以降が必要 エクスポート・ユーティリティーですべての識別属性 (例えば、minvalue、 maxvalue、 cycle、order、remarks など) をサポートできるようにするには、 クライアントとサーバーの両方を少なくともフィックスパック 7 のレベルで実 行する必要があります。クライアントまたはサーバーのいずれかがこのレベル になっていなくても、エクスポート・ユーティリティーは引き続き稼働します が、属性の解釈はできません。 付録 E. 各国語サポート (NLS) 国別/地域別コードおよびコード・ページのサポート 「サポートされている言語およびコード・セット」の表において、コード・ペ ージ 5488 は GB 18030 とも呼ばれ、コード・ページ 1394 は ShiftJIS X0213 とも呼ばれています。 UTF-8 (コード・ページ 1208) クライアントと非ユニコード・データベースの 接続はサポートされません。 インポート/エクスポート/ロードに関する考慮事項 -- コード・ページ 1394 お よび 5488 の制約 コード・ページ 1394 (ShiftJIS X0213) および 5488 (GB 18030) のデータ は、ロードまたはインポート・ユーティリティーを用いてユニコード・データ ベースに移動できます。エクスポート・ユーティリティーを使用すれば、デー タをユニコード・データベースからコード・ページ 1394 および 5488 のデー タ・ファイルに移動できます。 ユニコード・クライアントとユニコード・サーバーとの間の接続だけがサポー トされているので、ロード、インポート、またはエクスポート・ユーティリテ ィーを使用する前に、ユニコード・クライアントを使用するか、DB2 レジスト リー変数 DB2CODEPAGE を 1208 に設定する必要があります。 コード・ページ 1394 または 5488 からユニコードに変換すると、拡張されま す。例えば、2 バイト文字は 2 つの 16 ビット・ユニコード文字として GRAPHIC 列に保管されます。ユニコード・データベースのターゲット列が、い かなる拡張ユニコード・バイトでも収容できるだけの幅を持っていることを確 認する必要があります。 日時の値 日時の値のストリング表記 データ・タイプが DATE、TIME、TIMESTAMP の値は、SQL ユーザーに透過的な内 部形式で表されます。ただし、日付、時刻、およびタイム・スタンプは、スト リングでも表すことができます。データ・タイプが DATE、TIME、TIMESTAMP の ものには定数や変数が無いので、これらの表記は直接 SQL ユーザーにかかわっ てきます。そのため、検索の際には、日時の値をストリング変数に割り当てな ければなりません。プログラムがプリコンパイルされたりデータベースに結合 される際に DATETIME フォーマット・オプションを指定してオーバーライドさ れない限り、ストリング表記は通常、クライアントの国別/地域別コードに関連 した日時の値のデフォルト・フォーマットです。 内部的な日時の値を伴う操作において、日時の値に有効なストリング表記が使 用されると、ストリング表記は、操作が行われる前に、日付、時刻、タイム・ スタンプの内部形式に変換されます。日時の値の有効なストリング表記の定義 については、この後のセクションで説明します。 注: 日時の値の漢字ストリング表記は、ユニコード・データベースにおいての みサポートされています。 日付ストリング 日付のストリング表記は、数字で始まって、少なくとも 8 文字の長さです。末 尾ブランクがあっても構いません。日付の月および日の部分の先行ゼロは省略 できます。 「日付のストリング表記のフォーマット」の表は変更されていません。 タイム・ストリング 時刻のストリング表記は、数字で始まって、少なくとも 4 文字の長さです。末 尾ブランクがあっても構いません。時刻の時間部分の先行ゼロは省略できま す。また、秒全体を省略することもできます。秒を省略すると、暗黙指定の 0 秒が想定されます。したがって、13:30 は、 13:30:00 と同じになります。 「時刻のストリング表記のフォーマット」の表は変更されていません。 タイム・スタンプ・ストリング タイム・スタンプのストリング表記は、数字で始まって、少なくとも 16 文字 の長さです。タイム・スタンプの完全なストリング表記は、 yyyy-mm-dd-hh.mm.ss.nnnnnn というフォームです。末尾ブランクがあっても構 いません。タイム・スタンプの月、日、時間部分の先行ゼロは省略できます。 また、マイクロ秒は、切り捨てるかまたは全体を省略することができます。マ イクロ秒部分の数字を省略すると、暗黙指定の 0 が想定されます。したがっ て、1991-3-2-8.30.00 は、 1991-03-02-08.30.00.000000 と同じになります。 文字セットに関する考慮事項 日付およびタイム・スタンプのストリングには、数字と区切り記号しか含めら れません。 日付および時刻フォーマット 日付および時刻フォーマットのストリング表記は、アプリケーションの国別/地 域別コードに関連した日時の値のデフォルト・フォーマットです。このデフォ ルト・フォーマットは、プログラムがプリコンパイルされたりデータベースに 結合される際に DATETIME フォーマット・オプションを指定してオーバーライ ドすることができます。 管理の手引き: インプリメンテーション Windows 2000 以降のシステムにおける DMS コンテナーの新しい指定方式 DB2 は、Windows 2000 以降のシステムでは、DMS ロー表スペース・コンテナー を指定する際に新しいメソッドを使用するようになりました。各基本ディスク 区画またはダイナミック・ボリュームには、作成時にグローバル固有 ID (GUID) が割り当てられます。この GUID は、表スペース定義でコンテナーを指定する 際に、装置 ID として使用することができます。 GUID はシステムを通して固 有であるため、ディスク区画定義が同じであっても、マルチノード構成で各ノ ードごとに固有の GUID をもっています。 Windows システムで定義されているすべてのディスク・ボリュームの GUID を 表示する際に役立つ、db2listvolumes.exe というツールが提供されています。 このツールは、ツールが実行されている現行ディレクトリーに 2 つのファイル を作成します。一方のファイル volumes.xml には、各ディスク・ボリュームに 関する情報が含まれています。これは、XML が使用可能なブラウザーで容易に 見えるように設計されています。もう一方のファイル tablespace.ddl には、 表スペース・コンテナーの指定に必要な構文が含まれています。 tablespace.ddl を使用する前に、表スペース定義に必要な残りの情報も反映さ れるように、このファイルを更新する必要があります。 db2listvolumes ツールでは、コマンド行引き数は必要ありません。 コントロール・センターの拡張例 付録『コントロール・センターの拡張』に記載されている例は正しくなく、役 に立ちません。 Java の例を使用する場合は、代わりに以下の情報を使用して ください。 サンプル・プログラム PluginEx.java は samples/java サブディレクトリーに あります。PluginEx.java は、DB2 アプリケーション開発クライアントと共に インストールされます。PluginEx.java をコンパイルする場合には、 classpath に以下の指定が必要です。 * Windows プラットフォームを使用している場合: * DRIVE: \sqllib\java\swingall.jar * DRIVE: \sqllib\cc\com.jar * DRIVE: \sqllib\cc DRIVE は、DB2 がインストールされているドライブを表します。 * UNIX プラットフォームを使用している場合: * /u/db2inst1/sqllib/java/swingall.jar * /u/db2inst1/sqllib/cc /u/db2inst1 は、DB2 がインストールされているディレクトリーを表しま す。 PluginEx.java のコンパイルで生成されたすべてのクラスが組み込まれるよう に、db2plug.zip を作成します。ファイルを圧縮してはなりません。例えば、 以下のようなコマンドを実行します。 zip -r0 db2plug.zip PluginEx*.class このコマンドは、すべてのクラス・ファイルを db2plug.zip ファイルに入れ、 相対パス情報を維持します。 PluginEx.java ファイルの説明に従って例をコンパイルし、実行します。 CCObject インターフェースには、「管理の手引き」の付録『コントロール・セ ンターの拡張』にリストされているものよりも多くの静的定数が組み込まれて います。以下に、コントロール・センターを拡張するための Java インターフ ェース (CCExtension、 CCObject、CCM enuAction、CCToolBarAction) を示し ます。これらのインターフェースは、単に参照用としてここにリストされてい ます。 CCExtension: // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * The CCExtension interface allows users to extend the Control Center user * interface by adding new toolbar buttons, new menu items and * remove some predefined set of existing menu actions. * * To do so, create a java file which imports the * com.ibm.db2.tools.cc.navigator package and implements this interface. * The new file provides the implementation of the getObjects() and * getToolbarActions() function. * * The getObjects() function returns an array of CCObjects which defines * the existing * objects which the user would like to add new menu actions or remove * the alter or configure menu actions. * * The getToolbarActions() function returns an array of CCToolbarActions * which is added to the Control Center main toolbar. * * A single CCExtension subclass file or multiple CCExtension subclass * files can be used to define the Control Center extensions. In order * for the Control Center to make use of these extensions, use the * following setup procedures: * (1) Create a "db2plug.zip" file which contains all the CCExtension * subclass files. The files should not be compressed. For example, * if the CCExtension files are in the plugin package and they are * located in the plugin directory, issue * zip -r0 db2plug.zip plugin\*.class * This command will put all the plugin package class files into the * db2plug.zip file and preserve their relative path information. * (2) To run WEBCC as an applet, put the db2plug.zip file in where the * tag points to in the WEBCC html file. * To run the Control Center as an application, put * the db2plug.zip in a directory pointed to by the CLASSPATH * envirnoment variable and where the Control Center is run. * * For browsers that support multiple archives, just add "db2plug.zip" * to the archive list of the WEBCC html page. Otherwise, all the * CCExtension, CCObject, CCToolbarAction, CCMenuAction subclass files * will have to be in their relative path depending on which package * they belong to. */ public interface CCExtension { /** * Get an array of CCObject subclass objects which define * a list of objects to be overrided in the * Control Center * @return CCObject[] CCObject subclass objects array */ public CCObject[] getObjects(); /** * Get an array of CCToolbarAction subclass objects which represent * a list of buttons to be added to the Control Center * main toolbar. * @return CCToolbarAction[] CCToolbarAction subclass objects array */ public CCToolbarAction[] getToolbarActions(); } CCObject CCObject: // // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * The CCObject interface allows users to define a new object to be * inserted into the Control Center tree or changing the behavior of the * menu actions of an existing object. */ public interface CCObject { /** * The following static constants defines a list of object type * available to be added to the Control Center tree. */ public static final int UDB_SYSTEMS_FOLDER = 0; public static final int UDB_SYSTEM = 1; public static final int UDB_INSTANCES_FOLDER = 2; public static final int UDB_INSTANCE = 3; public static final int UDB_DATABASES_FOLDER = 4; public static final int UDB_DATABASE = 5; public static final int UDB_TABLES_FOLDER = 6; public static final int UDB_TABLE = 7; public static final int UDB_TABLESPACES_FOLDER = 8; public static final int UDB_TABLESPACE = 9; public static final int UDB_VIEWS_FOLDER = 10; public static final int UDB_VIEW = 11; public static final int UDB_ALIASES_FOLDER = 12; public static final int UDB_ALIAS = 13; public static final int UDB_TRIGGERS_FOLDER = 14; public static final int UDB_TRIGGER = 15; public static final int UDB_SCHEMAS_FOLDER = 16; public static final int UDB_SCHEMA = 17; public static final int UDB_INDEXES_FOLDER = 18; public static final int UDB_INDEX = 19; public static final int UDB_CONNECTIONS_FOLDER = 20; public static final int UDB_CONNECTION = 21; public static final int UDB_REPLICATION_SOURCES_FOLDER = 22; public static final int UDB_REPLICATION_SOURCE = 23; public static final int UDB_REPLICATION_SUBSCRIPTIONS_FOLDER = 24; public static final int UDB_REPLICATION_SUBSCRIPTION = 25; public static final int UDB_BUFFERPOOLS_FOLDER = 26; public static final int UDB_BUFFERPOOL = 27; public static final int UDB_APPLICATION_OBJECTS_FOLDER = 28; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPES_FOLDER = 29; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPE = 30; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTIONS_FOLDER = 31; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTION = 32; public static final int UDB_PACKAGES_FOLDER = 33; public static final int UDB_PACKAGE = 34; public static final int UDB_STORE_PROCEDURES_FOLDER = 35; public static final int UDB_STORE_PROCEDURE = 36; public static final int UDB_USER_AND_GROUP_OBJECTS_FOLDER = 37; public static final int UDB_DB_USERS_FOLDER = 38; public static final int UDB_DB_USER = 39; public static final int UDB_DB_GROUPS_FOLDER = 40; public static final int UDB_DB_GROUP = 41; public static final int UDB_DRDA_TABLES_FOLDER = 42; public static final int UDB_DRDA_TABLE = 43; public static final int UDB_NODEGROUPS_FOLDER = 44; public static final int UDB_NODEGROUP = 45; public static final int S390_SUBSYSTEMS_FOLDER = 46; public static final int S390_SUBSYSTEM = 47; public static final int S390_BUFFERPOOLS_FOLDER = 48; public static final int S390_BUFFERPOOL = 49; public static final int S390_VIEWS_FOLDER = 50; public static final int S390_VIEW = 51; public static final int S390_DATABASES_FOLDER = 52; public static final int S390_DATABASE = 53; public static final int S390_TABLESPACES_FOLDER = 54; public static final int S390_TABLESPACE = 55; public static final int S390_TABLES_FOLDER = 56; public static final int S390_TABLE = 57; public static final int S390_INDEXS_FOLDER = 58; public static final int S390_INDEX = 59; public static final int S390_STORAGE_GROUPS_FOLDER = 60; public static final int S390_STORAGE_GROUP = 61; public static final int S390_ALIASES_FOLDER = 62; public static final int S390_ALIAS = 63; public static final int S390_SYNONYMS_FOLDER = 64; public static final int S390_SYNONYM = 65; public static final int S390_APPLICATION_OBJECTS_FOLDER = 66; public static final int S390_COLLECTIONS_FOLDER = 67; public static final int S390_COLLECTION = 68; public static final int S390_PACKAGES_FOLDER = 69; public static final int S390_PACKAGE = 70; public static final int S390_PLANS_FOLDER = 71; public static final int S390_PLAN = 72; public static final int S390_PROCEDURES_FOLDER = 73; public static final int S390_PROCEDURE = 74; public static final int S390_DB_USERS_FOLDER = 75; public static final int S390_DB_USER = 76; public static final int S390_LOCATIONS_FOLDER = 77; public static final int S390_LOCATION = 78; public static final int S390_DISTINCT_TYPES_FOLDER = 79; public static final int S390_DISTINCT_TYPE = 80; public static final int S390_USER_DEFINED_FUNCTIONS_FOLDER = 81; public static final int S390_USER_DEFINED_FUNCTION = 82; public static final int S390_TRIGGERS_FOLDER = 83; public static final int S390_TRIGGER = 84; public static final int S390_SCHEMAS_FOLDER = 85; public static final int S390_SCHEMA = 86; public static final int S390_CATALOG_TABLES_FOLDER = 87; public static final int S390_CATALOG_TABLE = 88; public static final int DCS_GATEWAY_CONNECTIONS_FOLDER = 89; public static final int DCS_GATEWAY_CONNECTION = 90; public static final int S390_UTILITY_OBJECTS_FOLDER = 91; public static final int S390_DATASET_TEMPLATES_FOLDER = 92; public static final int S390_DATASET_TEMPLATE = 93; public static final int S390_UTILITY_LISTS_FOLDER = 94; public static final int S390_UTILITY_LIST = 95; public static final int S390_UTILITY_PROCEDURES_FOLDER = 96; public static final int S390_UTILITY_PROCEDURE = 97; /** * Total number of object types */ public static final int NUM_OBJECT_TYPES = 98; /** * Get the name of these object * * The function returns the name of this object. This name * can be of three types: * (1) Fully qualified name * Syntax: xxxxx-yyyyy-zzzzz * where xxxxx-yyyyy is the fully quality name of the parent * object and zzzzz is the name of the new object. * Note: Parent and child object name is separated by '-' character. * If a schema name is required to identify object, the fully * qualified name is represented by xxxxx-yyyyy-wwwww.zzzzz * where wwwww is the schema name. * Only the behavior of the object that match this fully * quality name will be affected. * (2) Parent fully qualified name * Syntax: xxxxx-yyyyy * where xxxxx-yyyyy is the fully qualified name of the * parent object. * When the object type is folder (ie. DATABASES_FOLDER), the * getName() should only return the fully qualified name of the * folder's parent. * Only the behavior of the object that match this name * and the specific type return by the getType() function will be * affected. * (3) null * Syntax: null * If null is return, the CCMenuActions returns by the * getMenuActions() call will be applied to all objects of type * returns by the getType() call. * @return String object name */ public String getName(); /** * Get the type of this object * @return int return one of the static type constants defined in this * interface */ public int getType(); /** * Get the CCMenu Action array which defines the list of menu actions * to be created for object * return CCMenuAction[] CCMenuAction array */ public CCMenuAction[] getMenuActions(); /** * Check if this object is editable. If not, the Alter related menu * items will be removed from the object's popup menu * return boolean If false, the Alter menu item will be remove from the * object's popup menu. * Return true if you do not wish to modify current Alter menu item * behaviour. */ public boolean isEditable(); /** * Check if this object is configurable. If not, the configuration * related menu items will be removed from the object's popup menu * return boolean If false, the Configuration related menu item will be * removed from the object's popup menu. * Return true if you do not wish to modify current Configuration * behaviour. */ public boolean isConfigurable(); } CCMenuAction: // // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * The CCMenuAction class allows users to define a new menu item to be added * to a Control Center object. The new menu item will be added at the end of * an object's popup menu. * * Note: If the object has a Control Center Refresh and/or * Filter menu item, the new menu item will be inserted before the Refresh * and Filter menu. The Control Center Refresh and Filter menu items are * always at the end of the popup menu. */ public interface CCMenuAction { /** * Get the name of this action * @return String Name text on the menu item */ public String getMenuText(); /** * Invoked when an action occurs. * @param e Action event */ public void actionPerformed(ActionEvent e); } CCToolBarAction // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * The CCToolbarAction interface class allows users to define a new action * to be added to the Control Center toolbar. */ public interface CCToolbarAction { /** * Get the name of this action * @return String Name text on the menu item, or toolbar button hover help */ public String getHoverHelpText(); /** * Get the icon for the toolbar button * Any toolbar CCAction should override this function and return * a valid ImageIcon object. Otherwise, the button will have no icon. * @return ImageIcon Icon to be displayed */ public ImageIcon getIcon(); /** * Invoked when an action occurs. * @param e Action event */ public void actionPerformed(ActionEvent e); } 管理の手引き: パフォーマンス システム一時表スキーマ システム一時表のスキーマは、それを作成したアプリケーションおよび許可 ID によって決定されます。このデータが使用可能な場合、表が作成されたスキー マは、 です。場合によっては、スキーマを決定するためにこ れらの ID の一方だけを使用して表が作成されることもあり、時にはまったく 使用しない場合もあります。これによって、AUTHID.TEMPTABLENAME または .TEMPTABLENAME のような表が作成されます。GET SNAPSHOT コマンドを使用す れば、これらの表のスキーマ情報を表示できます。このコマンドの詳細に関し ては「コマンド解説書」を参照してください。 第 8 章 操作パフォーマンス ブロック・ベースのバッファー・プール このフィーチャーは、Sun Solaris オペレーティング環境でのみサポートされ ています。 入出力のオーバーヘッドのために、ページをディスクからプリフェッチするこ とは、費用のかかる操作です。DB2 のプリフェッチは、処理を入出力とオーバ ーラップできる場合に、スループットを大幅に改善します。大半のプラットフ ォームは、連続するページをディスクから不連続なメモリーの部分に読み取る ための高性能なプリミティブを備えています。これらのプリミティブは通常、" 分散読み取り"または"ベクトル I/O"と呼ばれます。プラットフォームによって は、これらのプリミティブのパフォーマンスは、大きなブロック・サイズでの 入出力とは比較にならない場合があります。デフォルトでは、バッファー・プ ールは、ページ・ベースです。つまり、ディスク上の連続するページは、メモ リー内の不連続のページにプリフェッチされます。ページをディスクからバッ ファー・プールの連続するページに読み取ることができれば、プリフェッチの パフォーマンスは、これらのプラットフォーム上でさらに改善します。レジス トリー変数 DB2_BLOCK_BASED_BP を使用すれば、一連の連続するページを保持 するバッファー・プールにセクションを作成できます。これらの一連の連続す るページは、"ブロック"と呼ばれます。このレジストリー変数を設定すれば、 順次プリフェッチは、各ページを個別に読み込むのではなく、ページをディス クから直接、これらのブロックに読み込みます。これによって入出力のパフォ ーマンスが改善されます。このレジストリー変数について詳しくは「管理の手 引き」の『レジストリーおよび環境変数』のセクションを参照してください。 エクステント・サイズの異なる複数の表スペースをブロック・サイズが同じバ ッファー・プールに結合することができます。エクステント・サイズとブロッ ク・サイズは、別個の概念を扱うにもかかわらず、両者の間には密接な関係が あります。 エクステントとは、表スペースが複数のコンテナーにわたってスト ライプされる細分度です。ブロックとは、順次プリフェッチ要求を実行する入 出力サーバーが、ブロック・ベースの入出力の実行を考慮する唯一の細分度で す。 個々の順次プリフェッチ要求は、エクステント・サイズ・ページを使用しま す。そのようなプリフェッチ要求を受け取ると、入出力サーバーは、各要求を 分散読み取り方式を用いたページ・ベースの入出力ではなく、ブロック・ベー スの入出力として実行する場合のコストおよび利点を判別します (バッファ ー・プールにブロック・ベースの領域がある場合)。あらゆる入出力をブロッ ク・ベースの入出力として実行する利点は、連続するディスクから連続するメ モリーに読み込むことによるパフォーマンス上の利点にあります。コストは、 この方式の使用により無駄になるバッファー・プール・メモリーの量です。 ブロック・ベースの入出力を実行する場合は、次の 2 つの理由により、バッフ ァー・プール・メモリーが無駄になる可能性があります。 * プリフェッチ要求に含まれるページ数は、ブロック内のページ数より少な い。つまり、エクステント・サイズがブロック・サイズより小さい。 * プリフェッチ要求の一部として要求されるページの一部は、すでにバッファ ー・プールのページ域にある。 注: バッファー・プールのブロック・ベースの領域における各ブロックをさら に分割することはできません。ブロック内のページは、すべて隣接して いる必要があります。その結果、スペースが無駄になる可能性がありま す。 入出力サーバーは、ブロック・ベースの入出力を実行する利点を得るために、 各ブロック内に多少の無駄なページを見越しています。しかし、あまりに多く のブロックが無駄になる場合は、入出力サーバーは、バッファー・プールのペ ージ域にページ・ベースでプリフェッチする方式に戻ります。その結果、プリ フェッチ中に行われた入出力の一部は、ブロック・ベースではありません。こ れは最適な状態ではありません。 最適なパフォーマンスのためには、エクステント・サイズが同じ表スペースを ブロック・サイズが同じバッファー・プールに結合する必要があります。良い パフォーマンスは、一部の表スペースのエクステント・サイズが結合先のバッ ファー・プールのブロック・サイズより大きい場合でも、達成できます。エク ステント・サイズがブロック・サイズより小さい場合は、表スペースのバイン ドはお勧めしません。 注: バッファー・プールのブロック域は、順次プリフェッチにのみ使用されま す。使用中のシステム上に関係する順次プリフェッチがほとんど、また はまったく存在しない場合は、ブロック域は、バッファー・プールの無 駄な部分になります。 AWE とブロック・ベースのサポートの両方を同時にバッファー・プール のセットアップとすることはできません。DB2_AWE および DB2_BLOCK_BASED_BP レジストリー変数の両方が同じバッファー・プール を参照する場合は、AWE に優先順位が与えられます。ブロック・ベース のサポートは、この場合、使用不可になり、AWE が使用不可になった場 合にのみ再び使用できるようになります。 拡張記憶域を使用するバッファー・プールは、ブロック・ベースの入出 力をサポートしていません。 ブロック・ベースのバッファー・プールの例 例を検討する前に、システム上のバッファー・プールの ID について知る必要 があります。バッファー・プールの ID は、SYSCAT.BUFFERPOOLS システム・カ タログ・ビューの BUFFERPOOLID 列を調べればわかります。 シナリオ 1 ページ数が 1000 ページであり ID が 4 のバッファー・プールがあります。各 ブロックに 32 ページが含まれ、700 ページからなるブロック域を作成すると します。次のコマンドを実行する必要があります。 db2set DB2_BLOCK_BASED_BP=4,700,32 データベースが始動すると、ID が 4 で、ブロック域が 672 ページ、ページ域 が 328 ページのバッファー・プールが作成されます。この例では、32 を均等に 700 に分割することはできません。つまり指定されたブロック域サイズは、次 の公式を用いて最も近いブロック・サイズ境界に削減される必要があります。 ((block area size)) FLOOR(-----------------) X block size ( (block size) ) ( 700 ) = FLOOR(-----------------) X 32 ( 32 ) = 21 x 32 = 672 シナリオ 2 ページが 3000 ページであり ID が 11 のバッファー・プールがあります。 2700 ページからなるブロック域を作成するとします。次のコマンドを実行する 必要があります。 db2set DB2_BLOCK_BASED_BP=11,2700 データベースが始動すると、ID が 11 で、ブロック域が 2688 ページ、ページ 域が 312 ページのバッファー・プールが作成されます。ブロック・サイズに明 確な値を指定しないと、デフォルト値 32 が使用されます。この例では、32 を 均等に 2700 に分割することはできません。つまり指定されたブロック域サイ ズは、次の公式を用いて最も近いブロック・サイズ境界に削減される必要があ ります。 ((block area size)) FLOOR(-----------------) X block size ( (block size) ) ( 2700 ) = FLOOR(-----------------) X 32 ( 32 ) = 84 x 32 = 2688 第 10 章 プロセッサーの追加による構成の拡大縮小 分割したデータベースにノードを追加する際の問題 デフォルト・ページ・サイズ (4KB) と異なるページ・サイズで、複数のシステ ム一時表スペースを持つ分割したデータベースにノードを追加する際に、 " SQL6073N ノードの追加に失敗しました"というエラー・メッセージや SQL コー ドが表示される場合があります。これはノードが生成される際、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 操作を正常に完了することができます。 これらの問題を予防する方法としては、この他に 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 Redistribute nodegroup is required to change data positioning for objects in nodegroup "" to include some added nodes or exclude some drop nodes. 一方、ノード・グループが、デフォルトのページ・サイズでない表スペースを 持つ場合、以下のメッセージが返されます。 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 ステー トメントなどを実行する前に実行します。 第 13 章 DB2 の構成 ログ・アーカイブ完了チェックの頻度の増加 不要なログ・アーカイブ要求を回避することによってリカバリー時間を短縮す るために、新規ログ・ファイルの作成時と最初のアクティブ・ログの変更時に、 データベース・サーバーがログ・アーカイブの完了をチェックするようになり ました。 情報の照合 (collate_info) セクションに対する修正 情報の照合に関する資料には間違った記述があり、collate_info パラメーター は GET DATABASE CONFIGURATION API を使用した場合のみ表示されると述べら れています。これは誤りです。 collate_info パラメーターを表示させるために GET DATABASE CONFIGURATION API を使用することはできません。代わりに、 db2CfgGetAPI を使用してください。 DB2 レジストリーと環境変数 パフォーマンス変数への修正 表 5. パフォーマンス変数 +---------------------------+-------------+---------------------------+ | 変数名 | オペレーテ | 値 | | | ィング・シ | | | | ステム | | +---------------------------------------------------------------------+ | 説明 | +---------------------------+-------------+---------------------------+ | DB2_BINSORT | すべて | デフォルト=YES | | | | 値: YES または NO | +---------------------------------------------------------------------+ | ソートの CPU 時間および経過時間を短縮する新しいソート・アルゴリズム | | を使用可能にします。 この新しいアルゴリズムは、DB2 UDB の非常に効率 | | 的なソート技法を、BIGINT、CHAR、VARCHAR、 FLOAT、および DECIMAL な | | どのすべてのソート・データ・タイプおよびこれらのデータ・タイプの組 | | み合わせ にも使用できるように拡張します。この新しいアルゴリズムを使 | | 用可能にするには、 以下のコマンドを使用します。 | | db2set DB2_BINSORT = yes | +---------------------------+-------------+---------------------------+ | DB2_BLOCK_BASED_BP | Solaris オ | デフォルト=なし | | | ペレーティ | 値: パラメーターによって | | | ング環境 | 異なります | +---------------------------------------------------------------------+ | バッファー・プール内に ブロック域を作成するために必要な値を指定しま | | す。 バッファー・プールの ID は必要 であり、SYSCAT.BUFFERPOOLS シス | | テム・カタログ・ビューの BUFFERPOOLID 列を調べれば わかります。 バ | | ッファー・プール内でブロック・ベースの入出力に割り振られるページ数 | | を 指定する必要があります。 ブロックに含まれるページ数はオプション | | で、デフォルト値は 32 です。 | | このレジストリー変数の使用の フォーマットは次の通りです。 | | | | DB2_BLOCK_BASED_BP=BUFFER POOL ID,BLOCK AREA SIZE,[BLOCK SIZE];... | | | | | | セミコロンで項目を分離して同じ変数を使用することで、複数のバッファ | | ー・プールを ブロック・ベースとして定義できます。 | | | | BLOCK SIZE の値は、2 〜 256 の範囲を 取る可能性があります。BLOCK | | SIZE を指定しないと、デフォルトの 32 が 使用されます。 | | | | 指定された BLOCK AREA SIZE がバッファー・プール・サイズの合計 の | | 98% より大きい場合は、バッファー・プールはブロック・ベースで作成さ | | れません。 バッファー・プールのページ・ベースの領域に常にバッファ | | ー・プールの一部を持つことをお勧め します。これは、システム上の入出 | | 力の大半が順次プリフェッチであっても、個々のページが必要 になる可能 | | 性があるからです。BLOCK AREA SIZE に指定された値が BLOCK SIZE の倍 | | 数でない場合 は、最も近いブロック・サイズ境界に削減されます。ブロッ | | ク・ベースの入出力について 詳しくは "ブロック・ベースのバッファー・ | | プール"を参照してください。 | +---------------------------+-------------+---------------------------+ | DB2_NO_FORK_CHECK | UNIX | デフォルト=OFF | | | | 値: ON または OFF | +---------------------------------------------------------------------+ | この変数が「ON」の場合、クライアント・プロセスは、 アプリケーション | | が実行プロセスをコピーする (fork する) のを 防止しません。fork が行 | | われると、結果は予測できません。 結果に影響がない場合もあれば、悪い | | 結果を導いたり、エラー・コードが戻されたり、 アプリケーションでトラ | | ップが生じたりする可能性もあります。 アプリケーションが fork しない | | と確信しており、パフォーマンスをより向上させたい場合に、 この変数を | | 「ON」に変更するようにしてください。 | +---------------------------+-------------+---------------------------+ | DB2_MINIMIZE_LIST_PREFETC | すべて | デフォルト=NO | | H | | 値: YES または NO | +---------------------------------------------------------------------+ | List Prefetch は、該当する RID を索引から検索し、それをページ番号に | | よってソート し、そしてデータ・ページをプリフェッチする、特殊な表ア | | クセス方式です。 | | 最適化プログラムは、List Prefetch が適切なアクセス方式であるかどう | | か判別するための 正確な情報を持っていないことがあります。これは、述 | | 部の選択性に、最適化プログラムが 選択性を判断するためにカタログ統計 | | を使用することを妨げる、パラメーター・マーカーやホスト変数 が含まれ | | ている場合に起こる可能性があります。 | | このレジストリー変数は、最適化プログラムがこのような状態で List | | Prefetch を考慮しないようにさせます。 | +---------------------------+-------------+---------------------------+ | DB2_INLIST_TO_NLJN | すべて | デフォルト=NO | | | | 値: YES または NO | +---------------------------------------------------------------------+ | SQL コンパイラーが IN リスト述部を 結合に書き換えることができる場合 | | があります。例えば、以下のような照会があるとします。 | | SELECT * | | FROM EMPLOYEE | | WHERE DEPTNO IN ('D11', 'D21', 'E21') | | | | | | これを、以下のように書くことができます。 | | SELECT * | | FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO) | | WHERE DEPTNO = V.DNO | | | | | | | | この改訂は、DEPTNO に索引がある場合に、パフォーマンスが向上します。 | | 値のリストが最初にアクセスされ、索引を使用してネスト・ループ結合で | | EMPLOYEE に 結合されて、結合述部に適用されます。 | | | | 最適化プログラムは、書き換えられたバージョンの照会に最適な結合方式 | | を判別するための 正確な情報を持っていないことがあります。これは、IN | | リストに、最適化プログラムが 選択性を判断するためにカタログ統計を使 | | 用することを妨げる、パラメーター・マーカーやホスト変数 が含まれてい | | る場合に起こる可能性があります。 このレジストリー変数によって、最適 | | 化プログラムは、IN リストに役立つ表を結合の内部表として 使用して、 | | 値のリストを結合する際にネスト・ループ結合を使用するようになりま | | す。 | +---------------------------------------------------------------------+ レジストリー変数 DB2BPVARS の新しいパラメーター レジストリー変数 DB2BPVARS は、2 つの新規パラメーター NUMPREFETCHQUEUES および PREFETCHQUEUESIZE をサポートします。これらのパラメーターはすべて のプラットフォームに適用でき、バッファー・プール・データのプリフェッチ 操作を改善するために使用することができます。例えば、必要な PREFETCHSIZE がいくつかの PREFETCHSIZE/EXTENTSIZE プリフェッチ要求に分割されている順 次プリフェッチについて考えてみます。この場合、要求はプリフェッチ・キュ ーに入れられ、そこから入出力サーバーがディスパッチされて非同期入出力が 実行されます。デフォルトでは、DB2 が、サイズ max(100,2*NUM_IOSERVERS 1) のキューを各データベース・パーティションごとに 1 つずつ維持します。環境 によっては、キューを増やすか、または異なるサイズのキューにすることによ り、あるいはその両方を行うことにより、パフォーマンスが向上することがあ ります。プリフェッチ・キューの数は、多くても入出力サーバー数の半分でな ければなりません。これらのパラメーターを設定するときは、ワークロード特性 (現行ユーザーの数など) だけでなく、他のパラメーター (例えば、 PREFETCHSIZE、EXTENTSIZE、 NUM_IOSERVERS、バッファー・プール・サイズ、 DB2_BLOCK_BASED_BP など) も考慮します。 デフォルト値が使用環境にとって小さすぎると思われる場合は、まず、値のみ を少し増やしてください。例えば、NUMPREFETCHQUEUES=4 および PREFETCHQUEUESIZE=200 と設定することができます。変更結果をモニターしたり 評価したりできるように、これらのパラメーターを小刻みに変更するようにし てください。 表 6. 新しいパラメーターのサマリー +-------------------+------------------------+------------------------+ | パラメーター名 | デフォルト値 | 有効範囲 | +-------------------+------------------------+------------------------+ | NUMPREFETCHQUEUES | 1 | 1 〜 NUM_IOSERVERS | | | | 1 未満に設定した場合 | | | | は、1 に調整 | | | | | | | | NUM_IOSERVERS を超えて | | | | 設定した場合は、NUM_IO | | | | SERVERS に調整 | +-------------------+------------------------+------------------------+ | PREFETCHQUEUESIZE | max(100,2*NUM_IOSERVER | 1 〜 32767 | | | S) | 1 未満に設定した場合 | | | | は、デフォルト値に調整 | | | | | | | | 32767 を超えて設定した | | | | 場合は、32767 に調整 | +-------------------+------------------------+------------------------+ 各種レジストリー変数への修正および追加 DB2_NEWLOGPATH2 レジストリー変数は、すべてのオペレーティング・システム で使用できます。新規変数 DB2_ROLLFORWARD_NORETRIEVE が導入されました。 両方の変数に関する正しい情報を以下に示します。 表 7. 各種変数 +---------------------------+-------------+---------------------------+ | 変数名 | オペレーテ | 値 | | | ィング・シ | | | | ステム | | +---------------------------------------------------------------------+ | 説明 | +---------------------------+-------------+---------------------------+ | DB2_NEWLOGPATH2 | すべて | デフォルト=NO | | | | 値: YES または NO | +---------------------------------------------------------------------+ | このパラメーターを使用すると、 重複ロギングを行うために別のパスを使 | | 用するかどうかを指定できます。 使用されるパスは、「2」を、logpath | | データベース構成パラメーターの 現行値に追加することにより生成されま | | す。 | +---------------------------+-------------+---------------------------+ | DB2_ROLLFORWARD_NORETRIEV | すべて | デフォルト = (設定しない) | | E | | 値: YES または NO | +---------------------------------------------------------------------+ | データベース構成パラメーター USEREXIT が使用可能な場合、 ロールフォ | | ワード操作中にログ・ファイルが自動的にアーカイブから検索されます。 | | DB2_ROLLFORWARD_NORETRIEVE 変数を指定すると、ロールフォワード操作で | | ログ・ファイルをアーカイブから検索しません。この変数はデフォルトで | | 使用不可です。 ロールフォワードで自動的にログ・ファイルを検索したく | | ない場合は、 この変数を YES に設定してください。例えば、ホット・ス | | タンバイ・セットアップにおいて この変数を YES に設定し、不良アプリ | | ケーションにより作成されたログ・レコードによって バックアップ・シス | | テムが壊されないようにします。 | +---------------------------------------------------------------------+ 汎用レジストリー変数の修正および追加 新規変数 DB2_REDUCED_OPTIMIZATION が導入されました。 表 8. 汎用レジストリー変数 +---------------------------+-------------+---------------------------+ | 変数名 | オペレーテ | 値 | | | ィング・シ | | | | ステム | | +---------------------------------------------------------------------+ | 説明 | +---------------------------+-------------+---------------------------+ | DB2_REDUCED_OPTIMIZATION | すべて | デフォルト=NO | | | | 値: YES、NO、または整数 | +---------------------------------------------------------------------+ | レジストリー変数により、特定の最適化レベルで使用される最適化手法を | | いくつか使用不可にします。使用する最適化手法の数を減らすと、 最適化 | | を行うのに使用する時間とリソースも削減されます。 | | 注: 最適化にかかる時間とリソースの使用が削減されても、 最適化とは言 | | えないデータ・アクセス・プランを生み出すリスクは増します。 | | * 「NO」に設定した場合 | | 最適化プログラムは最適化手法を変更しません。 | | * 「YES」に設定した場合 | | 最適化レベルがデフォルトの 5 またはそれ以下の場合、 最適化プログラ | | ムは、かなりの準備時間とリソースを消費する可能性のある 最適化手法を | | いくつか使用不可にしますが、通常はより優れたアクセス・プランを生成 | | することはありません。 | | 最適化レベルを正確に 5 にすると、最適化プログラムは、 いくつかの追 | | 加の手法を削減したり使用不可にしたりし、 最適化にかかる時間とリソー | | スの使用をさらに削減しますが、 一方、最適化とは言えないデータ・アク | | セス・プランを生み出すリスクは増します。 5 より低い最適化レベルの場 | | 合、これらの手法のいくつかは、 効果がなくなる可能性があります。その | | 場合でも、実施されます。 | | * 任意の整数に設定した場合 | | 値を「YES」に設定した場合と影響は同じです。最適化レベル 5 に動的に | | 準備された 照会動作に、次に述べる動作が追加されます。照会ブロック内 | | の結合の合計数が 設定値を超えると、最適化プログラムは、上記の最適化 | | レベル 5 で説明したように 追加の最適化手法を使用不可にする代わり | | に、貪欲型結合列挙に切り替えます。 つまり、照会は、最適化レベル 2 | | と同様の最適化となります。 | | 貪欲型結合列挙および動的結合列挙に関する情報については、 「管理の手 | | 引き: パフォーマンス」の『最適結合を選択するための検索方式』を参照 | | してください。 | | | | | | 最適化レベル 5 の動的最適化縮小は、『管理者の手引き: パフォーマン | | ス』の『最適化クラス』に説明があるように、 DB2_REDUCED_OPTIMIZATION | | が整数に設定された場合の動作と同様に、 「YES」に設定され、最適化レ | | ベル 5 の場合の動作よりも優先順位が高くなります。 | +---------------------------------------------------------------------+ サテライト管理 手引きおよび解説書 バージョン 7.2 DB2 パーソナル・エディションおよび DB2 ワークグループ・エ ディションをサテライトとしてセットアップ 以下のセクションでは、Windows ベースのバージョン 7.2 DB2 パーソナル・エ ディションおよび DB2 ワークグループ・エディション・システムを、サテライ ト環境で完全機能サテライトとして使用できるようにセットアップする方法に ついて説明します。以下の情報の中で使用されている用語と概念については、「 サテライト管理 手引きおよび解説書」を参照してください。このブックは、下 記の URL にあります。 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v6pubs.d2w/en_main 「サテライト管理 手引きおよび解説書」の情報を補足する Technotes は、以 下の URL を参照してください。http://www.ibm.com/cgi-bin/db2www/data/db2/ udb/winos2unix/support/index.d2w/report 前提条件 DB2 パーソナル・エディションまたは DB2 ワークグループ・エディションをサ テライトとしてセットアップするには、次のものが必要です。 1. DB2 制御サーバー DB2 制御サーバーとは、Windows NT または AIX 上で実行される DB2 エン タープライズ・エディション・システムのことで、制御サーバー・コンポー ネントがインストールされています。使用する DB2 エンタープライズ・エ ディション・システムは、フィックスパック 2 以上付きバージョン 6、ま たはバージョン 7 (フィックスパック・レベルは任意) です。 * DB2 制御サーバーとして使用したいバージョン 6 エンタープライズ・ エディション・システムがある場合は、"エンタープライズ・エディショ ン・システムでのフィックスパック 2 以上のインストール"を参照して ください。 * バージョン 7 を持っているが、制御サーバー・コンポーネントをインス トールしていない場合は、このコンポーネントをインストールし、すで にインストールされているフィックスパックを再インストールして、DB2 制御サーバー・インスタンスとサテライト制御データベースを作成しま す。これらのオブジェクトの作成手順については、「サテライト管理 手 引きおよび解説書」を参照してください。 注: バージョン 7.2 のエンタープライズ・エディション・システムを DB2 制御サーバーとして使用するために Windows NT にインストールする 場合、応答ファイル・インストールを実行したいときは、応答ファイ ルに指定するキーワードについて、「DB2 制御サーバーの応答ファイ ルのキーワード」という Technote を参照してください。 2. DB2 制御サーバー・インスタンスとサテライト制御データベース DB2 制御サーバー・インスタンスは一般に DB2CTLSV という名前で、サテラ イト制御データベースは SATCTLDB という名前です。DB2 制御サーバー・イ ンスタンスとサテライト制御データベースは、エンタープライズ・エディシ ョン・システム上にあり、 Windows NT に制御サーバー・コンポーネントと ともに DB2 をインストールすると自動的に作成されます。AIX 上に DB2 を インストールする場合は、DB2 制御サーバー・インスタンスとサテライト制 御データベースの作成方法について、サテライト管理 手引きおよび解説書 」を参照してください。 3. サテライト管理センター サテライト管理センターは、サテライト環境をセットアップおよび管理する ために使用する GUI ツールのセットです。このツールのセットには コント ロール・センター からアクセスします。サテライト管理センターとサテラ イト環境の詳細について詳しくは、サテライト管理 手引きおよび解説書」、 および サテライト管理センターから入手可能なオンライン・ヘルプを参照 してください。バージョン 6 の コントロール・センター を実行する場合 は、"バージョン 6 コントロール・センターおよびサテライト管理センター のアップグレード"を参照してください。 サテライト管理センターを使用してサテライト環境をまだセットアップして おらず、サテライト管理センターで新しいサテライトを表すオブジェクトを 作成していない場合は、サテライトをインストールする前にまずこれらを終 えておきます。詳しくは、「サテライト管理 手引きおよび解説書」にある サテライト環境のセットアップとテストの方法に関する説明を参照してくだ さい。 4. サテライトとして使用したいバージョン 7.2 パーソナル・エディションま たはワークグループ・エディション・システム。 インストール上の考慮事項 DB2 パーソナル・エディションまたは DB2 ワークグループ・エディションをイ ンストールするときは、いずれかのシステムを同期できるようにするための特 別なコンポーネントを選択する必要はありません。応答ファイル・インストー ルを実行する場合は、バージョン 7.2 システムをインストールするときに指定 するキーワードについて、"応答ファイル・インストールの実行"を参照してく ださい。バージョン 7.2 システムの対話式インストールを実行する場合は、同 期を可能にするためにバージョン 7.2 システムで設定する必要のある値につい て、DB2 のインストール完了後に "同期化のためのバージョン 7.2 システムの 構成"を参照してください。 応答ファイル・インストールの実行 バージョン 7.2 の DB2 パーソナル・エディションまたは DB2 ワークグルー プ・エディションの応答ファイル・インストールを実行する場合は、応答ファ イルに次のキーワードを設定できます。 応答ファイル・インストール時に 1 つ以上のキーワードを指定しないと決めた 場合は、バージョン 7.2 システムを同期できるように DB2 のインストール後 に実行する必要のある追加のステップについて、"同期化のためのバージョン 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 パーソナル・エディ ションまたはワークグループ・エディション・システム上に応答ファイルを インストールしているときは、データベースを作成できません。以下のキー ワード (説明については「サテライト管理 手引きおよび解説書」を参照) はサポートされていません。 * db2.userdb_name * db2.userdb_recoverable * db2.userdb_rep_src 同期化のためのバージョン 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 コマンドを実行して、以下を行います。 * サテライトがサテライト制御データベースとの接続に使用するユーザー ID とパスワードを指定します。 同期クリデンシャルがまだサテライトで保管されていない場合は、「制 御データベースの接続」ウィンドウがオープンします。このウィンドウ を使用して、サテライトがサテライト制御データベースとの接続に使用 するユーザー ID とパスワードを指定する必要があります。 * サテライトで設定される値が正しいかを検証します。 * サテライトがサテライト制御データベースに接続可能であることを検証 します。 構成タスクを完了すると、バージョン 7.2 システムを同期化する準備は完了で す。 エンタープライズ・エディション・システムでのフィックスパック 2 以上のイ ンストール DB2 制御サーバーとして使用されるバージョン 6 エンタープライズ・エディシ ョン・システムの場合、システムは、フィックスパック 2 以降でなければなり ません。 以下のセクションでは、バージョン 6 エンタープライズ・エディションを Windows NT または AIX で DB2 制御サーバーとして使用するために実行する必 要のある、アップグレードのタスクについて説明します。バージョン コントロ ール・センター を使用している場合は、"バージョン 6 コントロール・センタ ーおよびサテライト管理センターのアップグレード"のステップも実行して、サ テライト環境を管理するために正しいレベルの コントロール・センター およ びサテライト管理センターを持っているかを確認してください。 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, | バージョン | | | | WR21136 | 6.1 プラス | | | | | フィックスパ | | | | | ック 1 | +----------------+----------+-------------------------+--------------+ | SQL06010 | 01030104 | DB2 V6.1.0.6, s991030, | バージョン | | | | WR21163 または DB2 | 6.1 プラス | | | | V6.1.0.9, s000101, | フィックスパ | | | | WR21173 | ック 2 | +----------------+----------+-------------------------+--------------+ 注: レベルが 01030104 より上の場合、システムはフィックスパック 2 より 上のレベルにあります。 3. 入手した情報を記録して、"実行が必要な項目の判別" に進んでください。 実行が必要な項目の判別 収集した情報を使用して、状況に合った表内の行を探し、フィックスパック 2 のレベル以上で DB2 制御サーバーをサポートするために、DB2 エンタープライ ズ・エディション・システムの準備に必要なステップに従ってください。 表に続くセクションに、必要なステップを実行するための指示があります。実 行したステップをチェックしてください。状況に合ったステップだけを実行す るようにしてください。 +-----------------------+----------------------+----------------------+ | インストールされた 制 | DB2 エンタープライ | DB2 エンタープライ | | 御サーバー・コンポー | ズ・ エディション・ | ズ・ エディション・ | | ネント | システムの サービ | システムの 準備に必 | | | ス・レベル | 要なステップ | +-----------------------+----------------------+----------------------+ | No | バージョン 6.1 ベー | 以下のステップを実行 | | | ス、またはバージョン | してください。 | | | 6.1 プラス フィック | 1. "Windows NT での | | | スパック 1、または | 制御サーバーのインス | | | バージョン 6.1 プラ | トール" | | | ス フィックスパック2 | 2. "Windows NT での | | | 以上 | フィックスパック 2 | | | | 以上のインストール" | | | | 3. "Windows NT での | | | | SATCTLDB のアップグ | | | | レード" | +-----------------------+----------------------+----------------------+ | Yes | バージョン 6.1 ベー | 以下のステップを実行 | | | ス、またはバージョン | してください。 | | | 6.1 プラス フィック | 1. "Windows NT での | | | スパック 1 | フィックスパック 2 | | | | 以上のインストール" | | | | 2. "Windows NT での | | | | SATCTLDB のアップグ | | | | レード" | +-----------------------+----------------------+----------------------+ | Yes | バージョン 6.1、プラ | 以下のステップを実行 | | | ス フィックスパック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.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 ステップ d が 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, | バージョン | | | | U465423 | 6.1 プラス | | | | | フィックスパ | | | | | ック 1 | +----------------+----------+-------------------------+--------------+ | SQL06010 | 01030104 | DB2 V6.1.0.6, s991030, | バージョン | | | | U468276 または DB2 | 6.1 プラス | | | | V6.1.0.9, s000101, | フィックスパ | | | | U469453 | ック 2 | +----------------+----------+-------------------------+--------------+ 注: レベルが 01030104 より上の場合、システムはフィックスパック 2 より 上のレベルにあります。 3. 入手した情報を記録して、"実行が必要な項目の判別"に進んでください。 実行が必要な項目の判別 収集した情報を使用して、状況に合った表内の行を探し、フィックスパック 2 のレベルで DB2 制御サーバーをサポートするために、バージョン 6 DB2 エン タープライズ・エディション・システムの準備に必要なステップに従ってくだ さい。 表に続くセクションに、必要なステップを実行するための指示があります。実 行したステップをチェックしてください。状況に合ったステップだけを実行す るようにしてください。 +-----------------------+----------------------+----------------------+ | インストールされた 制 | DB2 エンタープライ | DB2 エンタープライ | | 御サーバー・コンポー | ズ・ エディション・ | ズ・ エディション・ | | ネント | システムの サービ | システムの 準備に必 | | | ス・レベル | 要なステップ | +-----------------------+----------------------+----------------------+ | No | バージョン 6.1 ベー | 以下のステップを実行 | | | ス、またはバージョン | してください。 | | | 6.1 プラス フィック | 1. "AIX での制御サ | | | スパック 1、または | ーバーのインストール | | | バージョン 6.1 プラ | " | | | ス フィックスパック2 | 2. "AIX でのフィッ | | | 以上 | クスパック 2 以上の | | | | インストール" | | | | 3. "AIX での | | | | SATCTLDB データベー | | | | スのアップグレード" | +-----------------------+----------------------+----------------------+ | Yes | バージョン 6.1 ベー | 以下のステップを実行 | | | ス、またはバージョン | してください。 | | | 6.1 プラス フィック | 1. "AIX でのフィッ | | | スパック 1 | クスパック 2 以上の | | | | インストール" | | | | 2. "AIX での | | | | SATCTLDB データベー | | | | スのアップグレード" | +-----------------------+----------------------+----------------------+ | Yes | バージョン 6.1、プラ | 以下のステップを実行 | | | ス フィックスパック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 の最新フィックスパ ックをフィックスパック readme とともに Web からダウンロードします。 フィックスパックは次の URL の指示に従ってダウンロードすることができ ます。 http://www.ibm.com/software/data/db2/db2tech/version61.html フィックスパック readme ファイルの指示に従ってフィックスパックをイン ストールします。 * フィックスパック 2 以上の DB2 ユニバーサル・データベース バージョン 6.1 フィックスパック (AIX 版) CD を使用し、CD の readme ディレクトリ ーにある指示に従ってインストールを完了します。 フィックスパック 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 ステップ d が 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 バージョン 6 コントロール・センターおよびサテライト管理センターのアップ グレード バージョン 6 コントロール・センターおよびサテライト管理センターを、フィ ックスパック 2 以上にアップグレードされたバージョン 6 DB2 制御サーバー およびサテライト制御データベース (SATCTLDB) とともに使用するには、ツー ルもフィックスパック 2 以上にアップグレードする必要があります。 コントロール・センターおよびサテライト管理センターが DB2 制御サーバーと 同じシステムで実行されている場合、DB2 エンタープライズ・エディション・ システムがフィックスパック 2 にアップグレードされたときにこれらもアップ グレードされています。ただし、これらのツールを別のシステムで実行する場 合は、このシステムをフィックスパック 2 以上にアップグレードすることが必 要です。 このシステムをフィックスパック 2 以上にアップグレードするには、以下のい ずれかを行います。 * 製品の V6.1 レベルの最新フィックスパックを、readme とともに Web から ダウンロードします。フィックスパックは次の URL の指示に従ってダウン ロードすることができます。 http://www.ibm.com/software/data/db2/db2tech/version61.html readme ファイルの指示に従ってフィックスパックをインストールします。 * ご使用のオペレーティング・システム版の DB2 ユニバーサル・データベース バージョン 6.1 フィックスパック CD を使用し、readme にある指示に従っ てインストールを完了します。 コマンド解説書 入手可能なアップデート版 「コマンド解説書」はフィックスパック 4 の一部として更新され、最新の PDF は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support からオ ンラインでダウンロードできます。これらの注釈の情報は、更新された解説書 への追加情報です。更新された資料は、すべて CD でも入手できます。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介して注文できます。 DB2 サービスへの連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 db2updv7 - データベースをバージョン 7 現行修正レベルに更新 このコマンドは以下の方法で、データベース内のシステム・カタログを、現行 フィックスパックをサポートするレベルに更新します。 * 新しい組み込み関数 ABS、DECRYPT_BIN、DECRYPT_CHAR、ENCRYPT、 GETHINT、MULTIPLY_ALT および ROUND を使用できるようにする。 * ユニコード・データベース用の新しい組み込み関数 DATE(vargraphic)、 TIME(vargraphic)、TIMESTAMP(vargraphic)、GRAPHIC(datetime- expression)、 GRAPHIC(date-expression)、GRAPHIC(time-expression)、お よび VARGRAPHIC(datetime-expression) を使用できるようにする。 * 新しい組み込みプロシージャー (GET_ROUTINE_SAR および PUT_ROUTINE_SAR) の使用を可能にする。 * Windows および OS/2 データベースの WEEK_ISO および DAYOFWEEK_ISO 関 数に修正を追加または適用する。 * バージョン 2 からバージョン 6 へ移行された表のテーブル・パック記述子 に修正を適用する。 * ビュー SYSCAT.SEQUENCES を作成する。 * DB2 バージョン 8 クライアントを使用して DB2 バージョン 7 サーバーに 接続するために必要なシステム・オブジェクトを作成する。 許可 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 を実行するデータベー スでのみ使用できます。コマンドが複数回実行された場合、エラーは 報告されず、各カタログは一度だけ適用されます。 新しい組み込み関数を使用可能にするには、すべてのアプリケーショ ンがこのデータベースから切断されていなければならず、データベー スが活動状態にされていた場合はこれを非活動状態にしなければなり ません。 「ARCHIVE LOG 使用上の注意」への追加事項 ARCHIVE LOG の使用上の注意では、現在、このコマンドを使用すると、データ ベースのログ・シーケンス番号 (LSN) スペース部分が無くなってしまうので、 有効な LSN を早く使い果たしてしまうと記載されています。このスペースの使 用量を文脈に当てはめて見てみると、ログ・ファイル・サイズが 100MB で、 5 分ごとに ARCHIVE LOG を実行する場合、有効な LSN を使い果たすのに約 40 年かかることになります。よって、ほとんどの操作条件で、影響を受けること はありません。 REBIND REBIND コマンドの構文図は次のようになります。 コマンド構文 >>-REBIND--+---------+--package-name----------------------------> '-PACKAGE-' .-ANY----------. >--RESOLVE--+-CONSERVATIVE-+----------------------------------->< RUNSTATS RUNSTATS コマンドに関する資料において、『使用上の注意』の最後の段落の情 報は誤りです。 最後の段落において現在は、RUNSTATS コマンドを分散統計または索引統計付き であるいはこれらなしで実行して矛盾が検出された場合に何が起こるか、とい うことが記述されています。ドロップされる統計あるいは保存される統計につ いては、正しく記述されていません。以下は、何が起こるかということに関す る正しい記述です。 RUNSTATS を表で発行した場合は、それ以前に収集された分散統計はドロップさ れます。 RUNSTATS を索引でのみ発行する場合は、それ以前に収集された分散 統計は保存されます。 db2inidb - ミラーリングされたデータベースの初期化 RELOCATE USING configfile パラメーターの説明は、次の通りです。 データベースをスナップショット、スタンバイ、またはミラーとして初期化す る前に、構成ファイルの情報リストに基づいてデータベース・ファイルを再配 置することを指定します。 注: 構成ファイルのフォーマットの詳細に関しては、「DB2 データ移動ユーテ ィリティー手引きおよび解説書」を参照してください。 使用法情報 RELOCATE USING configfile パラメーターが指定され、データベースが正常に 再配置されると、構成ファイルはデータベース・ディレクトリーにコピーされ、 db2path.cfg とリネームされます。その次のクラッシュ・リカバリーまたロー ルフォワード・リカバリーにおいて、ログ・ファイル処理中にコンテナー・パ スを動的にリネームするのにこの構成ファイルが使用されます。 スナップショットまたはミラー・データベースを初期化する場合、リカバリー が完了すると、構成ファイルは自動的に除去されます。スタンバイ・データベ ースを初期化する場合は、リカバリー完了後に構成ファイルが除去されるばか りでなく、リカバリー処理を取り消した場合も構成ファイルが除去されます。 スタンバイ・データベースを絶えずロールフォワードするために保留状態にし ているスタンバイ・データベースで作業を行い、かつ、新規コンテナーを元の データベースに追加する場合、スタンバイ・データベース用にコンテナーをど こに保管するかを示す db2path.cfg ファイルを手動で更新することができま す。新規コンテナーのロケーションを指定しないと、DB2 はそれらを元のロケ ーションと同じロケーションに保管しようと試みます。 db2relocatedb (新規コマンド) db2relocatedb - データベースの再配置 ユーザー提供の構成ファイルでの指定に従って、データベースの名前変 更、あるいはデータベースまたはデータベースの一部 (例えば、コンテ ナーやログ・ディレクトリー) の再配置を行います。このツールは、DB2 インスタンスおよびデータベース・サポート・ファイルに対して必要な 変更を加えます。 権限 なし 必要な接続 なし コマンド構文 >>-db2relocatedb---f--configFilename--------------------------->< コマンド・パラメーター -f configFilename データベースの再配置に必要な構成情報を含んでいるファイル の名前を指定します。これは相対ファイル名でも絶対ファイル 名でも構いません。構成ファイルの形式は次の通りです。 DB_NAME=oldName,newName DB_PATH=oldPath,newPath INSTANCE=oldInst,newInst NODENUM=nodeNumber LOG_DIR=oldDirPath,newDirPath CONT_PATH=oldContPath1,newContPath1 CONT_PATH=oldContPath2,newContPath2 ... 説明: DB_NAME 再配置されるデータベースの名前を指定しま す。データベース名が変更される場合は、古い名前 と新しい名前の両方を指定する必要があります。こ れは必要フィールドです。 DB_PATH 再配置されるデータベースのパスを指定します。こ れは、そのデータベースが最初に作成された場所の パスです。データベース・パスが変わる場合は、新 旧両方のパスを指定する必要があります。これは必 要フィールドです。 INSTANCE データベースが入っているインスタンスを指定しま す。データベースが新しいインスタンスへ移動する 場合は、新旧両方のインスタンスを指定する必要が あります。これは必要フィールドです。 NODENUM 変更されるデータベース・ノードのノード番号を指 定します。デフォルトは 0 です。 LOG_DIR ログ・パスのロケーションの変更を指定します。ロ グ・パスが変わる場合は、新旧両方のパスを指定す る必要があります。ログ・パスがデータベース・ロ グの下にある場合は、この指定はオプショナルで、 その場合、パスは自動的に更新されます。 CONT_PATH 表スペース・コンテナーのロケーションの変更を指 定します。新旧両方のコンテナー・パスを指定する 必要があります。複数のコンテナー・パスを変更す る場合は、複数の CONT_PATH 行を指定できます。コ ンテナー・パスがデータベース・パスの下にある場 合は、この指定はオプショナルで、その場合、パス は自動的に更新されます。 注: ブランク行またはコメント文字 (#) で始まる行は無視さ れます。 例 例 1 パス /home/db2inst1 上にあるインスタンス DB2INST1 内のデータベー スの名前を TESTDB から PRODDB に変更するには、以下の構成ファイル を作成します。 DB_NAME=TESTDB,PRODDB DB_PATH=/home/db2inst1 INSTANCE=db2inst1 NODENUM=0 この構成ファイルを relocate.cfg として保管し、以下のコマンドを使 用してデータベース・ファイルを変更します。 db2relocatedb -f relocate.cfg 例 2 データベース DATAB1 をパス /dbpath 上のインスタンス JSMITH からイ ンスタンス PRODINST に移動するには、次のようにします。 1. ディレクトリー /dbpath/jsmith 内のファイルを /dbpath/prodinst に移動する。 2. 以下の構成ファイルを db2relocatedb コマンドと一緒に使用してデ ータベース・ファイルを変更する。 DB_NAME=DATAB1 DB_PATH=/dbpath INSTANCE=jsmith,prodinst NODENUM=0 例 3 データベース PRODDB はパス /databases/PRODDB 上のインスタンス INST1 の中にあります。 2 つの表スペース・コンテナーのロケーション を次のように変更する必要があります。 * SMS コンテナー /data/SMS1 を /DATA/NewSMS1 に移動する。 * DMS コンテナー /data/DMS1 を /DATA/DMS1 に移動する。 ディレクトリーとファイルが新しいロケーションに物理的に移動した ら、以下の構成ファイルを db2relocatedb コマンドと一緒に使用して、 新しいロケーションが認識されるようにデータベース・ファイルを変更 できます。 DB_NAME=PRODDB DB_PATH=/databases/PRODDB INSTANCE=inst1 NODENUM=0 CONT_PATH=/data/SMS1,/DATA/NewSMS1 CONT_PATH=/data/DMS1,/DATA/DMS1 例 4 データベース TESTDB はインスタンス DB2INST1 の中にあります。この データベースはパス /databases/TESTDB 上で作成されました。その後、 表スペースと共に以下のコンテナーが作成されました。 TS1 TS2_Cont0 TS2_Cont1 /databases/TESTDB/TS3_Cont0 /databases/TESTDB/TS4/Cont0 /Data/TS5_Cont0 /dev/rTS5_Cont1 TESTDB は新しいシステムに移動されます。その新しいシステムでのイン スタンスは NEWINST で、このデータベースのロケーションは /DB2 とな ります。 データベースを移動する際には、/databases/TESTDB/db2inst1 ディレク トリーに存在するすべてのファイルを /DB2/newinst ディレクトリーに 移動する必要があります。これは、この移動の一環として最初の 5 つの コンテナーが再配置されることを意味します。 (最初の 3 つのコンテナ ーの位置はデータベース・ディレクトリーとの相対位置で、その次の 2 つのコンテナーの位置はデータベース・パスとの相対位置です。) これ らのコンテナーはそのデータベース・ディレクトリー内またはデータベ ース・パス内にあるため、構成ファイルにリストする必要はありませ ん。新しいシステムで残りの 2 つのコンテナーを異なるロケーションに 移動する場合は、この 2 つは構成ファイルにリストする必要がありま す。 ディレクトリーとファイルが新しいロケーションに物理的に移動した ら、以下の構成ファイルを db2relocatedb コマンドと一緒に使用して、 新しいロケーションが認識されるようにデータベース・ファイルを変更 できます。 DB_NAME=TESTDB DB_PATH=/databases/TESTDB,/DB2 INSTANCE=db2inst1,newinst NODENUM=0 CONT_PATH=/Data/TS5_Cont0,/DB2/TESTDB/TS5_Cont0 CONT_PATH=/dev/rTS5_Cont1,/dev/rTESTDB_TS5_Cont1 例 5 データベース TESTDB はノード 10 および 20 に 2 つの区画を持ってい ます。どちらのノードでも、インスタンスは SERVINST で、データベー ス・パスは /home/servinst です。両方のノードで、このデータベース の名前は SERVDB に変更され、データベース・パスは /databases に変 更されます。さらにノード 20 では、ログ・ディレクトリーが /testdb_logdir から /servdb_logdir に変更されます。 変更は両方のノードに対して行われるため、構成ファイルをそれぞれの ノードごとに作成し、その対応する構成ファイルを使用して db2relocatedb をそれぞれのノードごとに実行する必要があります。 ノード 10 に対しては、以下の構成ファイルが使用されます。 DB_NAME=TESTDB,SERVDB DB_PATH=/home/servinst,/databases INSTANCE=servinst NODE_NUM=10 ノード 20 に対しては、以下の構成ファイルが使用されます。 DB_NAME=TESTDB,SERVDB DB_PATH=/home/servinst,/databases INSTANCE=servinst NODE_NUM=20 LOG_DIR=/testdb_logdir,/servdb_logdir 使用上の注意 データベースが属するインスタンスが変わる場合は、このコマンドを実 行する前に以下のことを行って、インスタンスおよびデータベース・サ ポート・ファイルへの変更が確実に行われるようにする必要があります。 * データベースを別のインスタンスに移動する場合は、新しいインスタ ンスを作成する。 * コピーされるデータベースに属しているファイル/装置を、新しいイ ンスタンスが常駐するシステムにコピーする。必要な場合には、必ず パス名を変更してください。 * コピーされたファイル/装置に関する許可を変更して、インスタンス 所有者がそれらの所有者になるようにする。 インスタンスが変わる場合は、このツールはその新しいインスタンスの 所有者が実行する必要があります。 EEE 環境では、このツールは変更が必要なすべてのノードに対して実行 されなければなりません。それぞれのノードごとに、変更されるノードの NODENUM 値を含む構成ファイルを個別に用意する必要があります。例え ば、データベースの名前が変更される場合は、すべてのノードが影響を 受けるため、db2relocatedb コマンドを各ノードごとに別々の構成ファ イルを使用して実行する必要があります。移動するコンテナーが単一ノ ードに属しているのであれば、db2relocatedb コマンドはそのノードに 対して一度のみ実行するだけで済みます。 参照項目 詳しくは、「コマンド解説書」のコマンド「db2inidb - ミラーリングさ れたデータベースの初期化」を参照してください。 db2move db2move ツールに、--aw および --sn の 2 つのオプションが追加されまし た。以下に、このツールの完全な文書を記します。 データベース移動ツール このツールを使用すると、たくさんの表を複数のワークステーション上の DB2 データベース間で容易に移動できます。このツールは、システム・ カタログ表から特定のデータベースを照会したり、すべてのユーザー表 からなるリストをコンパイルしたりします。その後、これらの表を PC/IXF 形式でエクスポートします。PC/IXF ファイルは、同じシステム 上の別のローカル DB2 データベースにインポートまたはロードできま す。または、別のワークステーション・プラットフォームに転送してか ら、そのプラットフォームの DB2 データベースにインポートまたはロー ドできます。 注: このツールを使用しても、構造型列を持つ表は移動されません。 権限 ユーザーの要求するアクションに応じて、このツールは DB2 のエクスポ ート、インポート、およびロード API を呼び出します。したがって、要 求を出しているユーザー ID には、それら API に必要な適切な許可が必 要です。許可がない場合は、要求は失敗します。 コマンド構文 .-------------------------. V | >>-db2move--dbname--action----+---------------------+-+-------->< +--tc--table-creators-+ +--tn--table-names----+ +--sn--schema names---+ +--io--import-option--+ +--lo--load-option----+ +--l--lobpaths--------+ +--u--userid----------+ +--p--password--------+ '--aw-----------------' コマンド・パラメーター dbname データベースの名前。 action EXPORT、IMPORT、または LOAD のうちいずれか 1 つ。 -tc table-creators。デフォルトはすべての作成者です。 これは EXPORT アクションのみです。このオプションを指定す ると、このオプションで示す作成者の作成した表だけがエクス ポートされます。指定しない場合は、デフォルトとしてすべて の作成者を使用します。複数の作成者を指定する場合は、それ ぞれの作成者をコンマで区切る必要があります。作成者 ID 同 士の間にブランクを入れないようにしてください。指定できる 作成者の最大数は 10 です。このオプションを「-tn」および 「-sn」と一緒に使用すると、エクスポートする表を選択でき ます。 文字ストリング内の任意の場所で、ワイルドカード文字として アスタリスク (*) を使用できます。 -tn table-names。デフォルトはすべてのユーザー表です。 これは EXPORT アクションのみです。このオプションを指定す ると、指定されたストリングの中の名前と正確に一致する表だ けがエクスポートされます。指定しない場合は、デフォルトと してすべてのユーザー表を使用します。複数の表名を指定する 場合は、それぞれの表名をコンマで区切る必要があります。表 名同士の間にブランクを入れないようにしてください。指定で きる表名の最大数は 10 です。このオプションを「-tc」および 「-sn」と一緒に使用すると、エクスポートする表を選択でき ます。 db2move は、指定された表名と名前が一致し、かつ指 定された表作成者と作成者が同じ表だけをエクスポートしま す。 文字ストリング内の任意の場所で、ワイルドカード文字として アスタリスク (*) を使用できます。 -sn スキーマ名。デフォルトはすべてのスキーマです。 これは EXPORT アクションのみです。このオプションを指定す ると、指定されたストリングの中のスキーマと正確に一致する 表だけがエクスポートされます。指定しない場合は、デフォル トとしてすべてのスキーマを使用します。複数のスキーマ名を 指定する場合は、それぞれのスキーマ名をコンマで区切る必要 があります。スキーマ名同士の間にブランクを入れないように してください。指定できるスキーマ名の最大数は 10 です。こ のオプションを「-tc」および「-tc」と一緒に使用すると、エ クスポートする表を選択できます。 db2move は、指定された 表名と名前が一致し、特定の表スキーマとスキーマが同じで、 かつ指定された表作成者と作成者が同じ表だけをエクスポート します。 文字ストリング内の任意の場所で、ワイルドカード文字として アスタリスク (*) を使用できます。 注: 長さが 8 文字より小さいスキーマ名は 8 文字長になるよ うに埋め込まれます。例えば、スキーマ「AUSER」およ び「BUSER」を組み込み、ワイルドカード文字を使用し たい場合、-sn *USER* と指定します。 -io インポート・オプション。デフォルトは REPLACE_CREATE で す。 有効なオプションは、INSERT、 INSERT_UPDATE、REPLACE、 CREATE、および REPLACE_CREATE です。 -lo load-option。デフォルトは INSERT です。 有効なオプションは、INSERT および REPLACE です。 -l lobpaths。デフォルトは現行ディレクトリーです。 このオプションは、EXPORT の一部として LOB ファイルを作成 したり、 IMPORT や LOAD の一部として LOB ファイルを検索 したりする場所の絶対パス名を指定します。複数の LOB パス を指定する場合は、それぞれの LOB パスをコンマで区切る必 要があります。 LOB パス同士の間にブランクを入れないよう にしてください。EXPORT 中に最初のパスのスペースが不足し た場合、または IMPORT や LOAD 中にパス内にファイルが見つ からない場合は、 2 番目以降のパスを順次使用します。 EXPORT アクションの場合で、LOB パスが指定されている場合 は、 LOB パス・ディレクトリー内のファイルはすべて削除さ れ、ディレクトリーは除去され、新しいディレクトリーが作成 されます。これを指定しない場合、現行ディレクトリーが LOB パスとして使用されます。 -u ユーザー ID。デフォルトはログオンしているユーザー ID で す。 ユーザー ID とパスワードはどちらもオプションです。ただ し、どちらか一方を指定すると、もう一方も指定しなければな りません。リモート・サーバーに接続しているクライアント上 でコマンドを実行している場合は、ユーザー ID とパスワード を指定する必要があります。 -p パスワード。デフォルトはログオンしているパスワードです。 ユーザー ID とパスワードはどちらもオプションです。ただ し、どちらか一方を指定すると、もう一方も指定しなければな りません。リモート・サーバーに接続しているクライアント上 でコマンドを実行している場合は、ユーザー ID とパスワード を指定する必要があります。 -aw 警告を受け入れます。 EXPORT アクションのみに使用されます。このオプションを指 定すると、エクスポート中に警告を受けた表が db2move.lst ファイルに組み込まれます。このオプションを省略すると、エ クスポート中に警告を受けた表が db2move.lst ファイルに組 み込まれません。このオプションを使用するか否かにかかわら ず、表の .ixf ファイルおよび .msg ファイルが生成されま す。 例 * db2move sample export これは、すべての表を SAMPLE データベースにエクスポートします。 すべてのオプションにデフォルト値が使われます。 * db2move sample export -tc userid1,us*rid2 -tn tbname1,*tbname2 これは、"userid1" または "us%rid2" というようなユーザー ID に よって作成されており、表名が "tbname1" または "%tbname2" である 表を、すべてエクスポートします。 * db2move sample import -l D:\LOBPATH1,C:\LOBPATH2 この例は、OS/2 または Windows オペレーティング・システムのみに 当てはまります。このコマンドは、SAMPLE データベース内のすべて の表をインポートします。 LOB パス "D:\LOBPATH1" および "C:\LOBPATH2" から LOB ファイルを検索します。 * db2move sample load -l /home/userid/lobpath,/tmp この例は UNIX ベースのシステムのみに当てはまります。このコマン ドは、SAMPLE データベース内のすべての表をロードします。サブデ ィレクトリー /home/userid/lobpath および tmp の両方から LOB フ ァイルを検索します。 * db2move sample import -io replace -u userid -p password これは、SAMPLE データベース内のすべての表を REPLACE モードでイ ンポートします。指定されたユーザー ID とパスワードが使われま す。 使用上の注意 このツールは、ユーザー作成の表をエクスポート、インポート、または ロードします。あるデータベースを、1 つのオペレーティング・システ ムから別のオペレーティング・システムへ複製する際には、 db2move を 使用すると表の移動が容易になります。また、表に関連付けられた他の オブジェクト (別名、ビュー、トリガー、ユーザー定義関数など)をすべ て移動する必要があります。 db2look (DB2 統計および DDL 抽出ツール :コマンド解説書」を参照))を利用すると、データ定義言語 (DDL) ステ ートメントをデータベースから取り出すことによって、いくつかのオブ ジェクトの移動が容易になります。 エクスポート、インポート、またはロード API がdb2move によって呼び 出されると、FileTypeMod パラメーターは lobsinfile に設定されま す。つまり、LOB データは PC/IXF ファイルとは別個のファイルの中に 入れられます。LOB ファイルの名前に使用できるファイル名は 26 000 個あります。 LOAD アクションは、データベースとデータ・ファイルがあるマシン上で ローカルに実行しなければなりません。ロード API が db2move によっ て呼び出されると、CopyTargetList パラメーターは NULL に設定され、 コピーは実行されません。 logretain がオンに設定されていると、後で ロード操作をロールフォワードすることはできません。ロードされる表 が入れられる表スペースはバックアップ保留状態になり、アクセスでき なくなります。データベース全体のバックアップ、または個々の表スペ ースのバックアップを取るには、表スペースをバックアップ保留状態か ら解除する必要があります。 バージョン 5.2 のクライアントからバージョン 6 のデータベースに対 して発行される場合、このツールは、長さが 18 文字より長い表名また は列名をサポートしません。 EXPORT 使用時に必要なファイルと生成されるファイル: * 入力: なし。 * 出力: EXPORT.out EXPORT アクションの結果の要約。 db2move.lst 元の表名、および対応する PC/IXF ファイル名 (tabnnn.ixf) とメッセージ・ファイル名 (tabnnn.msg) のリスト。このリストに加えて、 エクスポートされた PC/IXF ファイル、および LOB ファイル (tabnnnc.yyy) が、 db2move IMPORT または LOAD アクションの入力として使 われます。 tabnnn.ixf 特定の表からエクスポートした PC/IXF ファイ ル。 tabnnn.msg 対応する表のエクスポート・メッセージ・ファイ ル。 tabnnnc.yyy 特定の表からエクスポートした LOB ファイル。 「nnn」は表番号。「c」は英字。「yyy」は 001 から 999 の範囲の数字。 これらのファイルが作成されるのは、エクスポー トする表に LOB データが含まれている場合だけ です。それらの LOB ファイルが作成される場合 は、lobpath ディレクトリーに入れられます。LOB ファイルに使用できる名前は全部で 26 000 個あ ります。 system.msg ファイルやディレクトリーの作成または削除コマ ンドに対するシステム・メッセージを含むメッセ ージ・ファイル。これが使用されるのは、アクシ ョンが EXPORT で、LOB パスが指定されている場 合のみです。 IMPORT 使用時に必要なファイルと生成されるファイル: * 入力: db2move.lst EXPORT アクションからの出力ファイ ル。 tabnnn.ixf EXPORT アクションからの出力ファイル。 tabnnnc.yyy EXPORT アクションからの出力ファイル。 * 出力: IMPORT.out IMPORT アクションの結果の要約。 tabnnn.msg 対応する表のインポート・メッセージ・ファイ ル。 LOAD 使用時に必要なファイルと生成されるファイル: * 入力: db2move.lst EXPORT アクションからの出力ファイ ル。 tabnnn.ixf EXPORT アクションからの出力ファイル。 tabnnnc.yyy EXPORT アクションからの出力ファイル。 * 出力: LOAD.out LOAD アクションの結果の要約。 tabnnn.msg 対応する表のロード・メッセージ・ファイル。 GET ROUTINE コマンドの追加オプション このコマンドは、HIDE BODY パラメーターをサポートするようになりました。 これは、ルーチン・テキストがカタログから抽出された場合にルーチンの本文 が空の本文で置き換えられることを指定します。 このコマンドは、コンパイルされるコードには影響しません。テキストに影響 するだけです。 GET ROUTINE コマンド構文 >>-GET ROUTINE--INTO--file_name--FROM--+----------+-------------> '-SPECIFIC-' >----PROCEDURE----routine_name--+-----------+------------------>< '-HIDE BODY-' CREATE DATABASE DB2 は、ユニコード・データベース用に、新しい照合シーケンスのキーワー ド、IDENTITY_16BIT と SQL_CS_IDENTITY_16BIT、をサポートするようになりま した。CLP CREATE DATABASE コマンドに IDENTITY_16BIT が指定されている か、sqlecrea()、すなわちデータベースの作成 API の中で SQLEDBDESC.SQLDBCSS が SQL_CS_IDENTITY_16BIT に設定されていると、ユニコ ード・データベース内のすべてのデータが CESU-8 順を使って照合されます。 CESU-8 は、Compatibility Encoding Scheme for UTF-16: 8-Bit (UTF-16 用互 換コード化スキーム、8 ビット) であり、このリリース情報の作成時点では、 この仕様は Unicode Technical Consortium Web サイト (www.unicode.org) に ある Draft Unicode Technical Report #26 に含まれています。ユニコード補 足文字、すなわち、16 ビットの基本マルチリンガル・プレーン (16-bit Basic Multilingual Plane、BMP または Plane 0) 外に定義された文字を除き、CESU-8 は、UTF-8 とバイナリーにおいて同一です。UTF-8 エンコードでは、補足文字は 1 つの 4 バイト・シーケンスによって表されますが、同じ文字が CESU-8 で は、2 つの 3 バイト・シーケンスを必要とします。 ユニコード・データベースの中で、CHAR、VARCHAR、LONG VARCHAR、および CLOB データは UTF-8 で保管され、GRAPHIC、VARGRAPHIC、LONG VARGRAPHIC、および DBCLOB データは UCS-2 で保管されます。IDENTITY または SQL_CS_NONE 照合 の場合、非補足文字は、UTF-8 および UCS-2 で同一のバイナリー照合になりま すが、補足文字については、同じ文字でも UTF-8 照合と UCS-2 照合では異な ります。IDENTITY_16BIT または SQL_CS_IDENTITY_16BIT によって、補足文字 も非補足文字も、すべての文字が DB2 ユニコード・データベース内で、確実に 同じバイナリー照合になります。 データ回復と高可用性の手引きと解説書 データ回復と高可用性の手引きと解説書がオンラインで使用可能 新しい「データ回復と高可用性の手引きと解説書」は、HTML および PDF の両 方の形式で http://www.ibm.com/software/data/db2/udb/winos2unix/support からオンラインで入手できます。この情報は、従来「管理の手引き」に含まれ ていたものです。これらの注釈の情報は、更新された解説書への追加情報で す。更新された資料は、すべて CD でも入手できます。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介して注文できます。DB2 サービスへの 連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 新しいアーカイブ・ロギング動作 フィックスパック 4 より前の DB2 では、新しいログ・ファイルが必要になっ たときだけアーカイブの完了をチェックしました。現在の DB2 は、最初のアク ティブ・ログが変更されるたびにアーカイブの完了をチェックします。その結 果、情報がより迅速かつより頻繁にディスクに記録されるようになりました。 この変更の利点は、システムがクラッシュした場合に、ディスクに保管された 情報 (どのログ・ファイルが正常にアーカイブされているかを示す) がより正 確になり、DB2 はアーカイブ済みログ・ファイルに対するアーカイブ要求を再 発行する必要がないということです。 特定のログ・ファイルのアーカイブが正常に行われたことを検出した後で DB2 が行う作業に変更はありません。 DB2 によるログ・アーカイブ完了の検出が早期に行われるようになったため、 それらの名前も早期に変更されます。非活動切り捨てログ・ファイルは削除さ れます。その結果、アクティブ・ログ・パスに残っているログ・ファイルの数 が、 LOGPRIMARY データベース構成値よりも少なくなることがあります。この 場合、DB2 は、必要に応じて新規ログ・ファイルを作成します。 この変更が行われる以前は、データベースを再始動すると、ログ数が減らされて LOGPRIMARY 値と等しい数になりました。現在は、データベースを再始動した場 合、DB2 はまず、データベース・ログ・ディレクトリーを調べます。空のログ の数が 1 次ログの数より少なければ、DB2 は新しいログを割り振って不足を補 います。データベース・ディレクトリーに 1 次ログよりも多くの空のログが含 まれている場合は、DB2 は、データベース・ディレクトリーに含まれているす べての空のログでデータベースを再始動できるようにします。 データベースがシャットダウンした後、存在するすべての 2 次ログ・ファイル は、再始動時にアクティブ・ログ・パスに残ります。アクティブ・ログ・パス を消去するには、 DB2 ARCHIVE LOG コマンドを使用します。 データベース・リカバリーのための中断入出力の使用方法 db2inidb ユーティリティーに関する下記の情報を、『バージョン 7.2 新着情 報』に記載されている情報と置き換えてください。 db2inidb は DB2 に添付されて出荷されるツールで、クラッシュ・リカバリー を実行したり、データベースをロールフォワード保留状態にしたりできます。 中断入出力は、連続的なシステム使用可能性を、オンライン分割ミラー・ハン ドリングのフル・インプリメンテーション (つまりデータベースをシャットダ ウンせずにミラーを分割) を提供することでサポートします。大きなデータベ ースでバックアップをオンラインまたはオフラインにすることが難しい場合 は、中断入出力と分割ミラーを使用してミラー・イメージからバックアップま たはシステム・コピーを取ることができます。 中断入出力は、データベースの分割ミラー・イメージを取っているときのディ スク書き込みを防止します。データベースが中断している間、オンライン・バ ックアップおよびリストア以外のすべてのデータベース操作は通常どおり機能 します。ただし、ダーティー・ページをバッファー・プールまたはログ・バッ ファーからログにフラッシュする場合、入出力書き込みを待機できる操作もあ ります。通常、データベース入出力が再開してから、これらの操作を再開する 必要があります。データベース入出力が、中断された元の接続と同じ接続で再 開されることが重要です。さらに、データベース入出力が再開されるまでは、 この接続からそれ以外の操作が一切実行されないことも重要です。同じ接続で ないと、後続の接続試行でダーティー・ページをバッファー・プールからディ スクにフラッシュしなければならない場合にハングする可能性があります。 後続の接続は、データベース入出力が再開されると完了します。接続試行がハ ングし、入出力の中断に使用した接続から入出力を再開できなくなった場合 は、 RESTART コマンドの WRITE RESUME オプションを実行する必要がありま す。このような状況で使用すると、RESTART コマンドはクラッシュ・リカバリ ーを行わずに、入出力書き込みを再開します。 RESTART コマンドの WRITE RESUME オプションは、データベース・クラッシュの後でこれを使用した場合に のみ、クラッシュ・リカバリーを行います。 区分データベース環境では、必ずしもすべての区画で同時に入出力書き込みを 中断する必要はありません。分割ミラーを作成してオフライン・バックアップ を実行するために、1 以上の区画のサブセットを中断することができます。こ のサブセットにカタログ・ノードが含まれている場合は、それを最後の中断区 画にする必要があります。 データベースのミラーリングでは、主として、データベース・ディレクトリー の内容全体のコピー、およびローカル・データベース・ディレクトリーのコピ ーが行われます。ローカル・データベース・ディレクトリー sqldbdir は、メ イン・データベース・ディレクトリーと同じレベルのファイル構造に入ってい ます。また、ログ・ディレクトリーと表スペース・コンテナーがデータベー ス・ディレクトリーに入っていない場合は、それらもコピーする必要がありま す。分割ミラーリングされたデータベースはこれらのディレクトリー・パスに 従属しているため、これらのディレクトリーのコピー先のパスは、1 次システ ムのディレクトリーと同じにする必要があります。つまり、インスタンスも同 じでなければなりません。この従属関係のため、db2inidb ツールの新規 「relocate」オプションが使用されていない限り、1 次データベースと同じシ ステム上にミラー・データベースを作成することはできません。 「relocate」オプションの目的は、指定された構成ファイルを使用して、指定 のシステム上のデータベースを再配置することです。この操作では、内部デー タベース・ディレクトリー、コンテナー・ディレクトリー、ログ・ディレクト リー、インスタンス名、およびデータベース名の変更が行われます。データベ ース・ディレクトリー、コンテナー・ディレクトリー、およびログ・ディレク トリーが、同じシステム上の異なるディレクトリー・パスに 1 次データベース として正常にミラーリングされたと想定すると、 db2inidb ツールを 「relocate」オプションと一緒に使用して、ミラーリングされたデータベース の内部パスを変更することができます。このオプションの使用法は以下の通り です。 ストレージ装置のミラーリングの度合いによって、db2inidb の使用法は変わり ます。以下の使用法では、データベース全体がストレージ・システムを通じて 一貫してミラーリングされていることを想定しています。 マルチノード環境で、いずれかの区画から分割ミラーを使用できるようにする には、 db2inidb ツールを区画それぞれで実行する必要があります。 db2_all コマンドを使用して、db2inidb ツールをすべての区画で同時に実行することが できます。 1. 複製データベースの作成 この目的は、1 次データベースの複製を他のシステムで使用できるようにす ることです。複製データベースの作成手順は以下の通りです。 a. 次のコマンドを入力して、1 次データベースで入出力書き込みを中断し ます。 db2 set write suspend for database b. オペレーティング・システム・レベル・コマンドとディスク・サブシス テム・レベル・コマンドを使用して、1 次データベースからミラーを分 割します。データとログの両方を分割します。 c. 次のコマンドを入力して、1 次データベースで入出力書き込みを再開し ます。 db2 set write resume for database コマンドの実行後、1 次データベースは正常な状態に戻るはずです。 d. 1 次データベースの分割ミラーを別のシステムにマウントします。 e. 次のコマンドを入力して、他方のシステムでデータベース・インスタン スを開始します。 db2start f. 次のコマンドを入力して、DB2 クラッシュ・リカバリーを開始します。 db2inidb database_name AS SNAPSHOT 注: このコマンドは、中断書き込み状態を除去し、分割時に実行されて いたトランザクションが行った変更をロールバックします。 このプロセスを使用してオフライン・バックアップも実行することができま すが、1 次データベースにリストアした場合は、ログ・チェーンが一致しな いので、このバックアップを使用してロールフォワードを実行することはで きません。 2. スタンバイ・データベースとしての分割ミラーの使用 ミラーリングされた (スタンバイ・) データベースはログを通じて絶えずロ ールフォワードするため、1 次データベースで作成される新しいログは、1 次システムから絶えずフェッチされます。分割ミラーをスタンバイ・データ ベースとして使用する方法は以下の通りです。 a. 1 次データベース上での入出力書き込みを中断します。 db2 set write suspend for database b. オペレーティング・システム・レベル・コマンドとディスク・サブシス テム・レベル・コマンドを使用して、1 次データベースからミラーを分 割します。データだけを分割し、ログを分割しないようにします。 c. 1 次データベースで入出力書き込みを再開し、1 次データベースが正常 処理に戻るようにします。 db2 set write resume for database d. データベースの分割ミラーを別のシステムにマウントします。 e. db2start コマンドを使用して、1 次データベース・インスタンスを開始 します。 f. 次のように、ミラーをロールフォワード保留状態にします。 db2inidb database_name AS STANDBY 注: このコマンドは、中断書き込み状態を除去し、ミラーリングされた データベースをロールフォワード保留状態にします。 g. ユーザー出口プログラムをセットアップしてログをコピーし、1 次シス テムからログ・ファイルを検索します。これにより、このミラーリング されたデータベースで最新ログを使用できるようにします。 h. データベースをログの終わりまでロールフォワードします。 i. ステップ g に戻り、1 次データベースがダウンするまでこのプロセスを 繰り返します。 j. データベースをログの終わりまでロールフォワードし、AND STOP オプシ ョンを使用してデータベースをオンラインに戻します。これで使用でき るようになります。 3. バックアップ・イメージとしての分割ミラーの使用 ミラーリングされたデータベースを 1 次データベースに対してリストアす るためのバックアップ・イメージとして使用する方法は、以下の通りです。 a. db2stop コマンドを使用して、1 次データベース・インスタンスを停止 します。 b. オペレーティング・システム・コマンドとディスク・サブシステム・コ マンドを使用して、ミラーリングされたデータとログを 1 次データベー スの最上部にコピーします。ログ・ファイルをコピーしないでくださ い。 1 次データベースのログは、ロールフォワード操作に使用しなけれ ばなりません。 c. db2start コマンドを使用して、1 次データベース・インスタンスを開始 します。 d. 次のコマンドを実行して、ミラーリングされたデータベースをロールフ ォワード保留状態にし、書き込み中断状態を除去します。 db2inidb database_name AS MIRROR e. データベースをログの終わりまでロールフォワードし、AND STOP オプシ ョンを使用してデータベースをオンラインに戻します。これで使用でき るようになります。 4. 同一システムへの 1 次データベースとしてのミラーの分割 db2inidb ツールの「relocate」オプションを使用して、データベースを同 じシステムに 1 次データベースとしてミラーリングする方法は、以下の通 りです。この例では、データベースが新規インスタンスの下で使用されるこ とを想定しています。 a. 新規インスタンスを現行システムに作成します。 b. 1 次データベース上での入出力書き込みを中断します。 db2 set write suspend for database c. オペレーティング・システム・レベル・コマンドとディスク・サブシス テム・レベル・コマンドを使用して、1 次データベースからミラーを分 割します。 注: データベース・ディレクトリー、ローカル・データベース・ディレ クトリー、コンテナー・ディレクトリー、およびログ・ディレク トリーを新規インスタンスにコピーする必要があります。コンテ ナー・ディレクトリーまたはログ・ディレクトリーがデータベー ス・ディレクトリーの下に存在する場合は、データベース・ディ レクトリーとローカル・データベース・ディレクトリーのみをコ ピーする必要があります。 d. 1 次データベースで入出力書き込みを再開し、1 次データベースが正常 処理に戻るようにします。 db2 set write resume for database e. 以下の情報より、構成ファイルを作成します。 DB_NAME=name,optional_new_name DB_PATH=primary_db_dir_path,mirrored_db_dir_path INSTANCE=primary_instance,mirror_instance LOG_DIR=primary_db_log_dir,mirrored_db_log_dir CONT_PATH=primary_db_container_#1_path, mirrored_db_container_#1_path ... CONT_PATH=primary_db_container_#n_path, mirrored_db_container_#n_path NODENUM=node_# 注: LOG_DIR および CONT_PATH フィールドは、ログ・ディレクトリーま たはコンテナー・ディレクトリーがデータベース・ディレクトリ ーの外に存在する場合にのみ必要です。指定しない場合のデフォ ルトがゼロである NODENUM を除き、その他のフィールドはすべて 必須です。 f. 新規に作成したインスタンスからデータベースを開始します。 db2start g. ミラーリングされたデータベースを再配置し、中断状況を除去し、ロー ルフォワード保留状態のミラーを配置します。 db2inidb database_name as STANDBY relocate using config_file h. ユーザー出口プログラムをセットアップしてログをコピーし、1 次デー タベースからログ・ファイルを検索します。これにより、このミラーリ ングされたデータベースで最新ログを使用できるようにします。 i. データベースをログの終わりまでロールフォワードします。 j. ステップ h に戻り、1 次データベースがダウンするまでこのプロセスを 繰り返します。 k. データベースをログの終わりまでロールフォワードし、AND STOP オプシ ョンを使用してデータベースをオンラインに戻します。これで使用でき るようになります。 LOGRETAIN=CAPTURE の場合の新たなバックアップおよびリストア動作 データベースが LOGRETAIN を CAPTURE に設定して構成された場合は、次の操 作を実行することはできません。 * オンライン・データベース・バックアップ * オンラインまたはオフライン表スペース・レベルのバックアップ * オンラインまたはオフライン表スペース・レベルのリストア LOGRETAIN が CAPTURE に設定されているときに取られたオフライン・バック アップ・イメージを使用してデータベース・リストア操作を行った場合、デー タベースはロールフォワード保留状態に 置かれません。LOGRETAIN を CAPTURE に設定して、取られたオンライン・バックアップ・イメージを使用したデータ ベース・リストア操作 (フィックスパック 4 以前のバージョン 7.2) はサポー トされています。 増分バックアップおよびリカバリー - 追加情報 第 2 処理フェーズで、データベースのヒストリーが照会され、要求されたリス トア操作を行うために必要なバックアップ・イメージのチェーンが構築されま す。なんらかの理由でこの操作を行うことができず、DB2 が必須イメージのチ ェーンを完全に構築できない場合は、リストア操作は終了し、エラー・メッセ ージが戻されます。この場合、自動増分リストアを実行できないため、 INCREMENTAL ABORT オプションを指定して RESTORE DATABASE コマンドを発行 する必要があります。これにより、残りのすべてのリソースをクリーンアップ できるため、手動による増分リストアが可能になります。 第 3 処理フェーズで、DB2 は生成されたチェーンに残っている各バックアッ プ・イメージをリストアします。このフェーズでエラーが発生した場合は、 INCREMENTAL ABORT オプションを指定して RESTORE DATABASE コマンドを発行 し、残りのリソースをクリーンアップする必要があります。その場合、RESTORE コマンドを再発行する前、あるいは手動による増分リストアを再試行する前 に、そのエラーが解決可能であるかどうかを判別する必要があります。 NEWLOGPATH2 は、DB2_NEWLOGPATH2 と呼ばれるようになりました NEWLOGPATH2 レジストリー変数は、DB2_NEWLOGPATH2 に呼び方が変更されまし た。 DB2 データ・リンク・マネージャー (AIX または Solaris オペレーティング環 境) のバックアップ方式の選択 Tivoli Storage Manager システム・オプション・ファイルに PASSWORDACCESS オプションを設定する前に、/usr/lib に libApiDS.a ライブラリー・ファイル への記号リンクが含まれていることを確認する必要があります。 Tivoli Storage Manager -- LAN フリー・データ転送 DB2 ユニバーサル・データベース では、Tivoli の LAN フリー・データ転送テ クノロジーを使用して、 TSM server のバックアップ、リストアを行うことが できるようになりました。 DB2 ユニバーサル・データベース の以下のいずれ かのバージョンを Tivoli ADSM 3.1.x クライアントと一緒に使用している場 合、TSM server のバックアップまたはリストア中に問題が起きる場合がありま す。 * DB2 (AIX 版) (32 ビット) * DB2 (Solaris オペレーティング環境 版) (32 ビット) * DB2 (HP-UX 版) (32 ビット) 問題が起きた場合、以下のステップを実行して問題を訂正してください。 1. db2stop コマンドを発行します。 2. DB2 UDB サーバーの sqllib/adsm ディレクトリーに移動します。 3. libtadsm.a のバックアップ・コピーを取ります。 libtadsm.a.bak という 名前のコピーを作成してください。 4. libadsm.a を libtasdm.a にコピーします。 5. db2start コマンドを発行します。 6. 失敗したバックアップまたはリストアのコマンドを再発行します。 データ移動ユーティリティー 手引きおよび解説書 エクスポート・ユーティリティーによる完全サポートが可能になった拡張識別値 エクスポート・ユーティリティーが、拡張識別値を完全にサポートするように なりました。この機能を活用するためには、クライアントとサーバーの両方を フィックスパック 7 (またはそれ以降) で実行する必要があります。 エクスポート、インポート、およびロードの LOB ファイル・ハンドルの変更 DB2 UDB は、ラージ・オブジェクト (LOB) 情報のインポート、エクスポート、 およびロードを行うときに、 LOB ロケーション指定子 (LLS) を利用するよう になりました。これにより、複数 LOB を単一ファイルに保管することができま す。 LLS は、LOB データがファイル内のどこにあるかを示すストリングです。 LLS の形式は filename.ext.nnn.mmm で、filename.ext は LOB を含むファイルの 名前、nnn はファイル内の LOB の相対位置 (単位はバイト)、および mmm は LOB の長さ (バイト) です。例えば、db2exp.001.123.456/ の LLS は、LOB が db2exp.001 ファイルにあり、ファイルの 123 バイト相対位置で始まり、456 バイトの長さであることを示します。LLS で指定されたサイズが 0 の場合、 LOB の長さは 0 です。長さが -1 の場合、LOB は NULL であり、ファイル名お よび相対位置は無視されます。 lobsinfile 修飾子を使用してデータをエクスポートする場合、LOB は常に別々 のファイルに置かれるとは限りません。複数の LOB が各 LOB ファイルに存在 し、複数の LOB ファイルが各 LOB パスに存在する場合があります。データ・ ファイルには、ファイル名のみではなく LLS レコードが含まれるようになりま した。 インポートおよびロードでも、エクスポート機能への変更点をハンドルするよ うになりました。データのロードまたはインポートにおいて lobsinfile で変 更されたオプションを指定すると、対応する LOB 列ごとに LLS が存在しま す。LOB 列に LLS 以外のものが見つかると、データベースはこれを LOB ファ イルとして扱い、ファイル全体を LOB としてロードします。 IXF 考慮事項 3 つの新規 IXF データ・タイプがあります。これらの 3 つのタイプは、 LLS で表現された文字ラージ・オブジェクト (CLOB)、バイナリー・ラージ・オブジ ェクト (BLOB)、および 2 バイト文字ラージ・オブジェクト (DBCLOB) に対応 しています。これらのデータ・タイプの値は、それぞれ 964、960、および 968 です。 IXF ファイルは LOB 列ごとに独自の D レコードを必要とするようになりまし た。これはエクスポート・ツールによって自動的に作成されますが、IXF ファ イルを作成するのにサード・パーティーのユーティリティーを使用している場 合は、手動で作成する必要があります。さらに、非ヌル LOB だけではなく、表 内の LOB ごとに LLS が必要です。 LOB 列が NULL の場合、ヌル LOB を示す LLS を書き込み必要があります。 インポート、エクスポート、およびロード・ユーティリティーに対するコード・ ページ・サポート インポート、エクスポート、およびロードの各ユーティリティーを使用して、 新しい中国語コード・ページ GB 18030 (コード・ページ ID 5488) および新し い日本語コード・ページ ShiftJIS X0213 (コード・ページ ID 1394) から DB2 UDB ユニコード・データベースへデータを転送できるようになりました。さら に、エクスポート・ユーティリティーは DB2 UDB ユニコード・データベースか ら GB 18030 または ShiftJIS X0213 コード・ページ・データへのデータ転送 にも使用できます。 例えば、次のコマンドを実行すると、リモート側で接続されたクライアントに ある Shift_JISX0213 データ・ファイル u/jp/user/x0213/data.del が MYTABLE にロードされます。 db2 load client from /u/jp/user/x0213/data.del of del modified by codepage=1394 insert into mytable ここでの MYTABLE は DB2 UDB ユニコード・データベース上にあります。 第 2 章 インポート バッファー挿入を行うインポートを使用 このセクションの最後の注を次のようにしてください。 注: EEE を除くすべての環境で、 INSERT_UPDATE パラメーターが指定されたイ ンポート操作を行う間は、バッファー挿入機能が使用不可になります。 第 3 章 ロード ロード操作後の保留状態 このセクションの最後の段落の最初の 2 文が、以下のように変更されました。 ロード・プロセスに関連した第 4 の状態 (検査保留状態) は、参照制約と検査 制約、 DATALINKS 制約、AST 制約、または生成された列の制約に関連していま す。例えば、既存の表が従属表の外部キーが参照する 1 次キーを含んだ親表で ある場合、親表のデータ置換により、親表とその従属表 (表スペースではない) は検査保留状態になります。 ロード制約事項と制限 生成された列およびロード・ユーティリティーには、以下の制約事項が適用さ れます。 * 生成された列が索引の「組み込み列」でなければ、あるいは generatedoverrideファイル・タイプ修飾子が使用されていなければ、生成 された列を固有索引に持つ表をロードすることはできません。この修飾子が 使用されている場合は、列のすべての値が入力データ・ファイルで提供され ると予想されます。 * generatedoverride ファイル・タイプ修飾子が使用されていなければ、生成 された列を区分化キーに持つ表をロードすることはできません。この修飾子 が使用されている場合は、列のすべての値が入力データ・ファイルで提供さ れると予想されます。 totalfreespace ファイル・タイプ修飾子 totalfreespace ファイル・タイプ修飾子 (LOAD) が変更されて、0 〜 2 147 483 647 の範囲の値を受け入れるようになりました。 第 4 章 オートローダー オートローダーの制約事項と制限 以下が、オートローダー・ユーティリティーの制約事項と制限に追加されまし た。 1. オートローダーは、サーバー・ノードの 1 つで実行される必要があります。 2. インスタンスが複数存在する場合は、DB2INSTANCE 環境変数によって指定さ れているインスタンスに対してローカルであるデータベースにのみ、オート ローダーを使用することができます。 オートローダーの使用 以下が、『オートローダーの使用の前に』セクションに追加されました。 オートローダー・ユーティリティーを使用する前に、rsh および/または rexec が正しく機能していること確認してください。パスワードがオートローダー構 成ファイルで指定されている場合は、リモート・プロセスを作成するために rexec が使用されます。それ以外の場合は、rsh が使用されます。 rexecd - 認証を YES に設定している場合はオートローダーの実行に必須 以下の注釈が『オートローダー・オプション』セクションの 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 4.3.3 より前の AIX システムでは fork 中にオートローダーがハングすること がある オートローダーはマルチスレッド・プログラムであり、複数のスレッドの 1 つ が他のプロセスへ fork します。子プロセスへ fork すると、親メモリーのイ メージが子の中に生成されます。 AIX V4.3.3 より以前の AIX システムでは、libc.a が使用するロック (同一プ ロセス内のヒープからメモリー割り振りを行う際に複数のスレッドを管理する ため) が、非 fork スレッドによって保留状態にされることがあります。子プ ロセスに非 fork スレッドが存在しなくなると、このロックは子プロセスの中 では解放されなくなります。これは親プロセスがしばしば停止するためです。 AIX V4.3.3 には、オートローダーが fork 中に停止することが原因で発生する libc 問題の修正が含まれています。 付録 C. エクスポート/インポート/ロード・ユーティリティー・ファイル形式 以下の更新がこの付録に追加されています。 エクスポート、インポート、およびロード・ユーティリティーは、これらが非 ユニコード・データベースに接続されたユニコード・クライアントで使用され るときはサポートされません。ユニコード・クライアントは、ユニコード・ク ライアントがユニコード・データベースに接続されているときにのみサポート されます。 DB2 レプリケーションの手引きおよび解説書 レプリケーションおよび非 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) を使用する必要があります。 Windows 2000 上のレプリケーション DB2 DataPropagator バージョン 7 には、Windows 2000 オペレーティング・シ ステムとの互換性があります。 SQL ファイルの保管時に知られているエラー DB2 コネクト パーソナル・エディションのコントロール・センターを使用して いる場合、 SQL ファイルを保管することはできません。 SQL ファイルを保管 しようと試みたとき、データベース管理サーバー (DAS) が活動状態にないこと を示すエラー・メッセージが表示されます。これは実際、DAS が DB2 コネクト PE とともに出荷されていないため、DAS を使用できない場合に起こります。 アプライ・プログラムおよびコントロール・センター別名 アプライ・プログラムが正常に機能するためには、アプライ・プログラムで使 用される別名が、コントロール・センターで使用される別名に一致している必 要があります。 DB2 保守 レプリケーション環境で使用する各種 DB2 製品について、最新の DB2 保守を インストールするようお勧めします。 Web 上の Data Difference Utility Data Difference Utility (DDU) は、Web (ftp://ftp.software.ibm.com/ps/products/datapropagator/fixes/) からダウ ンロードできます。 DDU は、同じファイルの 2 つのバージョンを比較し、そ の差が記録された出力ファイルを生成するためのサンプル・ユーティリティー です。詳細については、サンプル・ユーティリティーに付属の README ファイ ルを参照してください。 第 3 章 データ・レプリケーション・シナリオ レプリケーションのシナリオ 新しい異機種のレプリケーション・シナリオについては、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 管理の 手引き」を参照してください。 第 5 章 レプリケーションの計画 表および列名 レプリケーションは、表および列名の中のブランクをサポートしません。 DATALINK レプリケーション DATALINK レプリケーションは、バージョン 7.1 フィックスパック 1 の一部と して Solaris オペレーティング環境で使用可能です。この場合、ソースおよび ターゲット DATALINK ファイル・システムで動作し、 MDTM (modtime) コマンド (ファイルの最終モディフィケーション時刻を表示する) をサポートする FTP デーモンが必要です。 Solaris オペレーティング環境のバージョン 2.6、ある いは MDTM に対する FTP サポートが含まれていないその他のバージョンを使用 している場合は、 WU-FTPD などの追加のソフトウェアが必要です。 AS/400 上の DB2 データベースと他のプラットフォーム上の DB2 データベース 間で DATALINK 列を複製することはできません。 AS/400 プラットフォームでは、DATALINK 値の「注釈」属性のレプリケーショ ンはサポートされていません。 AIX V4.2 を稼働中の場合は、デフォルトのユーザー出口プログラム (ASNDLCOPY) を実行する前に、APAR IY03101 (AIX 4210-06 RECOMMENDED MAINTENANCE FOR AIX 4.2.1) の PTF をインストールしなければなりません。 この PTF には、FTP デーモンの "modtime/MDTM" コマンドの Y2K 修正が含ま れます。この修正を検査するには、"modtime " コマンドから戻される最 終変更日付を確認してください ( は 2000 年 1 月 1 日以降に修正され たファイル)。 ターゲット表が外部 CCD 表の場合は、DB2 DataPropagator は DATALINK ファ イルを複製するために ASNDLCOPY ルーチンを呼び出します。 ASNDLCOPY および ASNDLCOPYD プログラムの使用方法に関する最新情報については、各プログラム のソース・コードのプロローグ・セクションを参照してください。以下の制約 事項が適用されます。 * 内部 CCD 表には DATALINK 標識を含めることができますが、DATALINK 値を 含めることはできません。 * 圧縮された外部 CCD 表には DATALINK 値を含めることができます。 * 圧縮されていない CCD ターゲット表には DATALINK 列を含めることはでき ません。 * ソースおよびターゲット・サーバーが同じである場合、サブスクリプショ ン・セットに DATALINK 列を持つメンバーを含めることはできません。 LOB の制約事項 圧縮された内部 CCD 表には LOB 列または LOB 標識への参照を含めることはで きません。 レプリケーションの計画 65 ページで、「コネクティビティー」には次のような意味が含まれます。 If the Apply program cannot connect to the control server, the Apply program terminates. AS/400 版のデータ・ブロッキングを使用する場合、インターバル中に複製する データ量の合計が、ブックの 69 ページに記載されている「4 MB」ではなく、 「4,000,000 行」を超えないように注意してください。 第 6 章 レプリケーション環境のセットアップ 任意の場所で更新 (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)); レプリケーション環境のセットアップ 95 ページの『CD 表、索引、および表スペースのカスタマイズ』では、 DPREPL.DFT ファイルは \sqllib\bin ディレクトリーまたは \sqllib\java デ ィレクトリーのいずれかにあると述べています。実際は、DPREPL.DFT は \sqllib\cc ディレクトリーにあります。 128 ページの保存制限に関する説明で、キャプチャー・プログラムがウォー ム・スタートしたとき、またはキャプチャー・プログラムの PRUNE コマンドが 使用されたときのみ、行を枝取りするために保存制限が使用されると述べられ ています。自動プルーニング・オプションを指定してキャプチャー・プログラ ムを開始した場合、キャプチャー・プログラムは保存制限を使用して行を枝取 りすることはありません。 第 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 を示す。 サブスクリプション・セットには複数のソース表が含まれています。そのセッ ト内の 1 つのソース表のホット・スポット処理を向上させるために、そのソー ス表について内部 CCD 表が定義されていますが、その内部 CCD 表は別のサブ スクリプション・セットにあります。ソース表が更新されても、内部 CCD 表を 取り込むアプライ・プロセスは非同期的に実行されます (例えば、アプライ・ プログラムが開始されないとか、イベントが起動されないなど)。複製するアプ ライ・プログラムは、内部 CCD 表が更新されるのを待っているため、ソース表 からターゲット表への更新はループします。 ループを停止するには、内部 CCD 表に対してアプライ・プログラムを開始 (ま たはレプリケーションを引き起こすイベントをトリガー) します。アプライ・ プログラムは内部 CCD 表を取り込み、ループしているアプライ・プログラムが すべてのソース表からの変更を行えるようにします。 複数のアプライ・プログラムによって取り込まれた内部 CCD 表を持つソース表 を含んだサブスクリプション・セットで、似たような状態が起きる場合があり ます。 第 9 章 キャプチャー・プログラムおよびアプライ・プログラム (AS/400 版) 178 ページの『実行管理機能に関する注意事項』は以下のように解釈してくだ さい。 デフォルト定義を変更したり、独自の定義を提供したりすることができます。 独自のサブシステム記述を作成する場合は、サブシステムの名前を QZSNDPR にし、それを QDPR 以外のライブラリーに作成する必要があります。 定義変更の詳細については、「AS/400e 実行管理の手引き V4.3」(SD88-5009) をご覧ください。 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) 第 10 章 キャプチャー・プログラムおよびアプライ・プログラム (OS/390 版) 第 10 章で、以下の段落を更新します。 DB2 DataPropagator (OS/390 版) の前提条件 DB2 DataPropagator (OS/390 版) バージョン 7 (V7) を実行するには、 DB2 (OS/390 版) バージョン 5、DB2 (OS/390 版) バージョン 6、または DB2 (OS/390 版) バージョン 7 が必要です。 OS/390 での UNICODE および ASCII エンコード・スキーム DB2 DataPropagator (OS/390 版) V7 は、UNICODE および ASCII エンコード・ スキームをサポートしています。この新しいエンコード・スキームを活用する には、DB2 (OS/390 版) V7 が必要で、下のセクションで説明されているように DB2 DataPropagator ソース表、ターゲット表、および制御表を手操作で作成ま たは変換しなければなりません。ただし、エンコード・スキームを変更しなく ても、既存のレプリケーション環境は DB2 DataPropagator (OS/390 版) V7 で 動作します。 エンコード・スキームの選択 ソース、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 のままにしておくようお勧めします。 エンコード・スキームの設定 表に適切なエンコード・スキームを指定するには、表の生成に使用されている SQL を変更します。 * 新しいソース表とターゲット表を適切なエンコード・スキームで作成する か、既存のターゲット表とソース表のエンコード・スキームを変更してくだ さい。既存の表のエンコード・スキームを変更する前にキャプチャー・プロ グラムとアプライ・プログラムを停止してから、キャプチャー・プログラム をコールド・スタートしてアプライ・プログラムを再始動するようお勧めし ます。既存の表のエンコード・スキームを変更するには、以下を行います。 1. Reorg ユーティリティーを使用して既存の表をコピーします。 2. 既存の表をドロップします。 3. 新しいエンコード・スキームを指定して、表を再作成します。 4. Load ユーティリティーを使用して、古いデータを新しい表にロードしま す。 Load ユーティリティーと Reorg ユーティリティーについて詳しくは、「DB2 ユニバーサル・データベース (OS/390 版) ユーティリティーの手引きおよ び解説書」を参照してください。 * 新しい制御表を適切なエンコード・スキームで作成するか、既存の制御表の エンコード・スキームを変更します。 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 (OS/390 版) SQL 解説書」を参照して ください。 第 11 章 キャプチャー・プログラムおよびアプライ・プログラム (UNIX 版) UNIX および Windows でのキャプチャー・プログラムとアプライ・プログラムの 環境変数の設定 ソース・データベースをデフォルト・コード・ページ値以外のコード・ページで 作成した場合、DB2CODEPAGE 環境変数を該当するコード・ページに設定してく ださい。 DB2CODEPAGE を設定する前のコード・ページ値を取得する際の情報に ついては、「DB2 管理の手引き」を参照してください。キャプチャー・プログ ラムは、データの取り込み元のデータベースと同じコード・ページで実行する 必要があります。 DB2 は、キャプチャー・プログラムが実行されている活動状 態の環境からキャプチャー・プログラムのコード・ページを取得します。 DB2CODEPAGE が設定されていない場合、DB2 はコード・ページ値をオペレーテ ィング・システムから取得します。オペレーティング・システムから取得され る値は、データベースの作成時にデフォルト・コード・ページを使用した場 合、キャプチャー・プログラムには正しい値になります。 第 14 章 表の構造 339 ページで、値 "2" の STATUS 列の記述に、以下の文章を追加してくださ い。 内部 CCD 表を使用していて、アプライ・トレール表の状況列の "2" の値を繰 り返し入手する場合は、『第 8 章 問題判別』の『問題: アプライ・プログラ ムが変更の複製を行わずにループする; アプライ・トレール表は STATUS=2 を 示す』を参照してください。 第 15 章 キャプチャー・プログラムとアプライ・プログラムのメッセージ メッセージ ASN0017E は以下のようになります。 ASN0017E キャプチャー・プログラムが重大な内部エラーを検出し、正しいエラー・メッ セージを発行できませんでした。ルーチン名は "routine" です。戻りコードは "return_code" です。 メッセージ ASN1027S が追加されます。 ASN1027S ラージ・オブジェクト (LOB) 列の指定が多すぎます。エラー・コードは "" です。 説明: サブスクリプション・セット・メンバーに指定されているラージ・オブ ジェクト (BLOB、CLOB、または DBCLOB) 列が多すぎます。許可されている列の 最大数は 10 です。 ユーザーの応答: 超過したラージ・オブジェクト列をサブスクリプション・セ ット・メンバーから除去してください。 メッセージ ASN1048E は以下のようになります。 ASN1048E アプライ・サイクルの実行が失敗しました。詳細については、アプライ・トレ ール表を参照してください。 "" 説明: アプライ・サイクルが失敗しました。メッセージでは、 "" は " "、 ""、および "" を示しています。 ユーザーの応答: アプライ・サイクルが失敗した理由を調べるには、監査証跡の APPERRM フィールドをチェックしてください。 付録 A キャプチャー・プログラムおよびアプライ・プログラムをアプリケーシ ョン内で開始する ブックの 399 ページで、キャプチャー・プログラムおよびアプライ・プログラ ムを開始するサンプル・ルーチンの注釈にいくつかエラーが記載されています が、サンプル内のコードは正しいです。サンプルの後半は適用パラメーターに 関する内容ですが、注釈ではキャプチャー・パラメーターに関することとなっ ています。 キャプチャー・プログラムおよびアプライ・プログラム API のサンプルと、そ れぞれの MAKE ファイルを、以下のディレクトリーから入手できます。 NT の場合 - sqllib\samples\repl UNIX の場合 - sqllib/samples/repl システム・モニター 手引きおよび解説書 db2ConvMonStream 使用上の注意の中で、スナップショット・データ・ストリーム・タイプの構造、 SQLM_ELM_SUBSECTION は sqlm_subsection である必要があります。 最大割り振りデータベース・ヒープ (db_heap_top) 最大割り振りデータベース・ヒープのデータ・エレメントは、DB2 バージョン 7 データベース・マネージャーによって収集されません。 問題判別の手引き ユーザーがログオンしていないときに DB2 を Windows 95、Windows 98、または Windows ME で開始 db2start コマンドを Windows 95、Windows 98、または Windows Millennium Edition (ME) 環境で正常に機能させるには、以下のいずれかを行う必要があり ます。 * Windows ログオン・ウィンドウまたは Microsoft ネットワーキング・ログ オン・ウィンドウを使用してログオンします。 * db2logon コマンドを実行します (db2logon コマンドについては、1 を参 照してください)。 さらに、ログオン中、または db2logon コマンドで指定されるユーザー ID は、DB2 の要件を満たしている必要があります (2 を参照)。 db2start コマンドが開始されると、ユーザーがログオンされていることをチェ ックします。ユーザーがログオンされている場合は、 db2start コマンドはそ のユーザーの ID を使用します。ユーザーがログオンされていない場合は、 db2startコマンドは、db2logon コマンドが実行されたかどうか、実行されてい る場合は、db2start コマンドが db2logon コマンドで指定されているユーザー ID を使用しているかどうかをチェックします。db2startコマンドが有効なユー ザー ID を見つけることができない場合は、コマンドは終了します。 DB2 ユニバーサル・データベース バージョン 7 を Windows 95、Windows 98、 または Windows ME にインストール中にインストール・ソフトウェアは、シス テムのブート時に db2start コマンドを実行するショートカットを「スタート アップ」フォルダーにデフォルトで追加します (詳しくは、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 つ のオプションがあります。 * DB2 インストール・プログラムで作成されたショートカットを変更し、 db2start.exe の代わりにバッチ・ファイルを実行するようにします。前 の例では、ショートカットは db2start.bat バッチ・ファイルを実行し ます。DB2 インストール・プログラムで作成されたショートカットは DB2 - DB2.lnk と呼ばれ、ほとんどのシステムで、 c:\WINDOWS\Start Menu\Programs\Start\DB2 - DB2.lnk に位置します。 * バッチ・ファイルを実行する独自のショートカットを追加し、DB2 イン ストール・プログラムで追加されたショートカットを削除してくださ い。DB2 ショートカットを削除するには、次のコマンドを使用してくだ さい。 del "C:\WINDOWS\Start Menu\Programs\Startup\DB2 - DB2.lnk" 独自で作成したショートカットを使用する場合は、ショートカットの 終 了時にクローズ 属性を設定する必要があります。この属性を設定しない と、 db2start コマンドが完了した後も、DOS コマンド・プロンプトが タスクバーに残ったままになります。db2start 処理中に DOS ウィンド ウが開かないようにするには、このショートカット (およびショートカ ットが実行中の DOS ウィンドウ) を最小化にして実行するよう設定して 作成できます。 注: システムのブート時に DB2 を開始する代わりに、 DB2 を使用する アプリケーションの実行の前に DB2 を開始させることができま す。詳細については、5 を参照してください。 db2start コマンドの前に db2logonコマンドを実行するバッチ・ファイルを使 用する場合で、ユーザーが頻繁にログオンする場合は、 db2start コマンドは 機能し続けますが、DB2 はログオン・ユーザーのユーザー ID を使用するとい う点が異なります。追加の詳細については、1 を参照してください。 注: 1. db2logon コマンドはユーザー・ログオンをシミュレートします。db2logon コマンドの形式は、次の通りです。 db2logon userid /p:password コマンドに指定されるユーザー ID は、DB2 の命名要件を満たす必要があり ます (詳細については、2 を参照)。ユーザー ID とパスワードなしでコマ ンドを実行すると、ユーザー ID とパスワード用のプロンプトのウィンドウ がオープンします。指定されたパラメーターがユーザー ID のみの場合は、 ユーザーに対してパスワードのプロンプトは出されません。ある条件の下で は、以下に述べるようにパスワードが要求されます。 db2logonコマンドによって設定されるユーザー ID とパスワードの値は、ユ ーザーが Windows ログオン・ウィンドウあるいは Microsoft ネットワーク のログオン・ウィンドウのいずれも使用せずにログオンした場合にのみ使用 されます。ユーザーがログオンし、db2logon コマンドが実行された場合、 db2logon コマンドからのユーザー ID はすべての DB2 アクションで使用さ れますが、db2logonコマンドで指定されたパスワードは無視されます。 ユーザーが Windows ログオン・ウィンドウあるいは Microsoft ネットワー クのログオン・ウィンドウを使用してログオンしなかった場合、 db2logon コマンドは次のように使用されます。 * db2start コマンドは開始時にユーザー ID を使用しますが、パスワード を必要としません。 * 表の作成のようなアクションで高水準修飾子がない場合は、高水準修飾 子としてユーザー ID が使用されます。以下に例を示します。 a. 次を実行します。db2logon db2local b. その後、次を実行します。create table tab1 db2local.tab1 という高水準修飾子で表が作成されます。 表やその他のオブジェクトのスキーマ名に相当するユーザー ID を使用 してください。 * システムがサーバーへのクライアントとして機能する場合は、ユーザー ID とパスワードなしで CONNECT ステートメントを実行し (例えば、 CONNECT TO TEST)、認証は server に設定され、 db2logon コマンドか らのユーザー ID とパスワードが、リモート・サーバーのユーザーの妥 当性検査に使用されます。ユーザーが明示的ユーザー ID およびパスワ ード (例えば、 CONNECT TO TEST USER userID USING password) を使用 して接続すると、CONNECT ステートメントで指定されている値が使用さ れます。 2. バージョン 7 では、ログオンに使用される、または db2logon コマンドで 指定されるユーザー ID は、次の DB2 要件を満たさなければなりません。 * 次の語は使用できません。USERS、ADMINS、GUESTS、PUBLIC、LOCAL、ま たは SQL 解説書 にリストされている SQL 予約語。 * SQL, SYS または IBM で開始することはできません。 * 以下の文字を含めることができます。 * 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 要件 (詳細については 2 を参照)を 満たしていると、ログオンが行われ、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 を開始するスタートアップ・フォルダーへのショー トカットが追加されないよう確認してください。詳細については、3 を参照 してください。 第 1 章 効果的なトラブルシューティングの手段 問題分析および環境データ収集用のツール 問題に関連した情報をある程度識別するのに役立ち、さらにその他の関係のあ る情報を収集してお客様サポートがお客様の環境と問題を理解するのを援助す るユーティリティーがあります。このユーティリティーを使用して収集される ものの多くについては、この章の残りの部分で説明されています。そのユーテ ィリティーは db2support です。 構文およびコマンド行オプションの詳細は、「コマンド解説書」に記載されて います。 このユーティリティーの目的は、DB2 を実行しているクライアントまたはサー バー・マシンに関する環境データを収集し、次に出力の大部分を収集してブラ ウズ可能な XML、HTML、または圧縮ファイル・アーカイブとしてパッケージす ることです。このユーティリティーには、対話式の質疑応答を行うプロセスを 使用して問題の種類に関するデータをユーザーから収集できるようにするため のオプションも用意されています。このプロセスは、問題を明確にするのに役 立つだけでなく、問題に関して最終的にお客様サポートに連絡する際のお客様 サポートへの情報提供も行います。 注: このユーティリティーは、シン・クライアントまたはランタイム・クライ アントでは使用できません。このユーティリティーの場合は、クライア ントに DB2 エンジン・ライブラリーがインストールされている必要があ ります。 収集データ出力 このユーティリティーは、圧縮した形での重要データベース・システム情報の 集合 (単一ファイル・アーカイブ) を生成します。このアーカイブには、最も 必要な情報が記述された HTML 報告書が組み込まれます。その情報はこの報告 書を使用して表示できます。 デフォルトでは、カスタマー・データのセキュリティーと機密性を保護するた めに、db2support は表データ、スキーマ (DDL)、またはログを収集しません。 一部のオプションを使用すると、スキーマおよびデータのいくつかの側面を組 み込む (例えば、アーカイブ・ログを組み込む) ようにできます。データベー ス・スキーマまたはデータを露出するオプションは注意深く使用する必要があ ります。 db2support を呼び出すと、機密データの扱われ方を示すメッセージ が表示されます。 収集されて単一アーカイブに圧縮されるファイルは次の通りです。 どのような条件下でも収集されるもの 1. db2diag.log 2. すべてのトラップ・ファイル 3. ロック・リスト・ファイル (-d の指定付き) 4. ダンプ・ファイル 5. ユーザー出口 (-d の指定付き) 6. バッファー・プールおよび表スペース (SPCS) 制御ファイル (-d の指定付 き) 7. 各種のシステム関連ファイル 8. 各種のシステム・コマンドからの出力 9. db config (-d の指定付き) 10. dbm config ファイル 11. ログ・ファイル・ヘッダー・ファイル (-d の指定付き) 12. リカバリー・ヒストリー・ファイル 13. db2cli.ini オプションで収集されるもの 1. アクティブ・ログ・ファイル 2. db2dump ディレクトリーの内容 (つまり、上では収集されなかったもの) 3. コア・ファイル (-a を指定した場合はすべてのコア・ファイル、-r を指定 した場合は最新のコア・ファイルのみ) 4. 拡張システム情報 (-s) HTML 報告書の内容は次のファイルから構成されます。 どのような条件下でも収集されるもの 1. あれば、PMR 番号 (-n を指定した場合) 2. オペレーティング・システムとそのレベル (例: AIX V4.2.1) 3. DB2 リリース情報 4. エンジン・ライブラリー・ヘッダー情報 5. 32 ビットか 64 ビットかの検出 6. DB2 インストール・パス情報 7. db2nodes.cfg の内容 (EEE 報告書の場合) 8. CPU とディスクの数、およびメモリー容量 9. このインスタンス上のデータベースのリスト 10. レジストリー情報、環境 (PATH および LIBPATH を含む) 11. 現行ファイル・システムおよび inodes 用のディスク・フリー・スペース (UNIX の場合) 12. JDK レベル 13. dbm config 14. データベース・リカバリー・ヒストリー・ファイルのリスト 15. sqllib ディレクトリーに対する「ls -lR」(または Windows でそれと等価 のもの) 16. LIST NODE DIRECTORY 17. LIST ADMIN NODE DIRECTORY 18. LIST DCS DIRECTORY 19. LIST DCS APPLICATIONS EXTENDED 20. すべてのインストール済みソフトウェアのリスト 「-s」を指定した場合に収集されるもの 1. 詳細なディスク情報 (区画レイアウト、タイプ、LVM 情報など) 2. 詳細なネットワーク情報 3. カーネル統計 4. ファームウェアのバージョン 5. その他のプラットフォーム固有コマンド DB2 が始動済みである場合に収集されるもの 1. クライアントの接続状態 2. db/dbm config (db cfg には -d オプションが必須) 3. CLI config 4. メモリー・プール情報 (サイズおよび消費量) (-d オプションを使用した場 合は完全なデータ) 5. LIST ACTIVE DATABASES 6. LIST DATALINKS MANAGERS 7. LIST DCS APPLICATIONS -c が指定済みでデータベースへの接続が可能な場合に収集されるもの 1. ユーザー表の数 2. DB データのおおよそのサイズ 3. データベースのスナップショット 4. アプリケーションのスナップショット 5. バッファー・プール情報 6. LIST APPLICATIONS 7. LIST COMMAND OPTIONS 8. LIST DATABASE DIRECTORY 9. LIST INDOUBT TRANSACTIONS 10. LIST NODEGROUPS 11. LIST NODES 12. LIST ODBC DATA SOURCES 13. LIST PACKAGES/TABLES 14. LIST TABLESPACE CONTAINERS 15. LIST TABLESPACES 16. LIST DRDA IN DOUBT TRANSACTIONS 「-q」を指定した場合に収集されるもの 対話式質疑応答モードが開始されます。「どのような問題か説明してくださ い」というオプションの質問が 1 つあることと、数回だけカスタマー情報を求 められることがあるだけで、それ以外のすべての質問には複数の選択肢の中か ら答えを選べばよいようになっています。すべての質問 (補足質問も含む) と 答えが収集されます。場合によっては、あるタスクを実行してそのタスクの結 果を追加のディレクトリーに入れるようユーティリティーから求められること があります。対話モードの間は、どの質問をするのかを決定するのに小さなデ シジョン・ツリーが使用されます。これらの対話式の質問により、問題のカテ ゴリーの判別が援助されます。そのカテゴリーに基づいて、さらにいくつかの 関連質問が行われて、追加データが収集される場合があります。質問が終わる と、自動モードで収集されたデータもすべて収集されます。すべての質問に対 する答えと自動モードで収集されたあらゆるデータが保管されて、サービスへ の送信に向けて準備されます。 detailed_system_info.html の表示 db2support を非英語環境のシステムで実行していて、detailed_system_ info.html を正しく表示できないという問題が起こっている場合は、Internet Explorer バージョン 5 以降を DOS エンコード方式と組み合わせて使用しなけ ればならない可能性があります。エンコード方式を変更するには、「表示」--> 「エンコード」-->「中央ヨーロッパ言語 (DOS)」と選択してください。必要な エンコード・サポートをまだ取得していない場合は、Microsoft Updates Web サイトから必要なファイルをダウンロードするよう Internet Explorer から求 められます。この情報は 2 バイト言語 (中国語 (簡体字)、中国語 (繁体字)、 日本語、および韓国語) には適用されません。 DB2 サポート・ツールの構文を一時に 1 ページに表示 DB2 サポート・ツールの構文を一時に 1 ページに表示するには、次のコマンド を実行してください。 db2support | more 第 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 が必要な場合、またはコミットされていない削除 を走査にスキップさせたくない場合、このオプションを使用しないでください。 第 8 章 DB2 データ・リンク・マネージャーのトラブルシューティング バージョン 7 フィックスパック 2 では、FEDERATED オプションの値を指定せ ずにソース・ファイルをプリコンパイル、またはバインド・ファイルをバイン ドすると、 SQL1179W 警告メッセージがサーバーによって生成されます。ソー ス・ファイルまたはバインド・ファイルにニックネームに対する静的 SQL 参照 が含まれているときも、同じメッセージが生成されます。これには次の 2 つの 例外があります。 * バージョン 7 フィックスパック 2 以前のフィックスパック・レベルにある クライアント、または下位レベル・クライアントの場合、sqlaprep() API はメッセージ・ファイルにこの SQL1179W 警告を報告しない。コマンド行プ ロセッサー PRECOMPILE コマンドも、この場合は警告を出力しません。 * バージョン 7 フィックスパック 2 以前のフィックスパック・レベルにある クライアント、または下位レベル・クライアントの場合、sqlabndx API は メッセージ・ファイルにこの SQL1179W 警告を報告する。ただし、メッセー ジ・ファイルには、パッケージが作成されなかったことを示す SQL0092N が 組み込まれてしまいます。パッケージは実際には作成されているため、これ は間違いです。コマンド行プロセッサー BIND コマンドも、同じ警告を誤っ て返します。 第 15 章 ログ情報 UNIX ベース・システムでのスタック・トレースバック情報の収集 「Troubleshooting Guide」には、「マルチノード・システムのすべてのノード でスタック・トレースバックをアクティブにするには、db2_all コマンドを使 用する必要があります」という間違った記述があります。使用する必要がある のは db2_call_stack コマンドだけです。 db2_all と db2_call_stack を一緒 に使用するとエラーになります。 64 ビット・プラットフォームで DB2 ユニバーサル・データベースを使用する 第 5 章 構成 LOCKLIST 次の情報を表 2 に追加する必要があります。 パラメーター 前の上限 現在の上限 LOCKLIST 60000 524288 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 が非 常に小さい値になることがあります。 第 6 章 制約事項 64 ビット・オペレーティング・システムでは、現在 LDAP サポートはありませ ん。 32 ビットおよび 64 ビット・データベースを、同じパスに作成することはでき ません。例えば、32 ビット・データベースが にある場合には、次 のようになります。 db2 create db on これが 64 ビット・インスタンスから実行されると、「SQL10004C データベー ス・ディレクトリーにアクセス中に入出力エラーが発生しました。」となり、 失敗します。 XML エクステンダー 管理およびプログラミング IBM DB2 XML エクステンダーのリリース情報は、DB2 XML Web サイト http://www.ibm.com/software/data/db2/extenders/xmlext/library.html にあ ります。 MQSeries このセクションでは、DB2 と MQSeries を使用して、メッセージングとデータ ベース・アクセスを結合するアプリケーションを構成する方法について説明し ます。このセクションで取り上げているのは、ユーザー定義関数 (UDF) に似た 関数のセットで、これは DB2 ユニバーサル・データベース バージョン 7.2 で はオプションで使用可能にすることができます。これらの基本的な関数を使用 すると、単純なイベント通知からデータウェアハウスに至るまで、広範囲なア プリケーションをサポートできます。 データウェアハウス・アプリケーションについて詳しくは、新たに更新された、 「データウェアハウス・センター管理の手引き」を参照してください ( http://www.ibm.com/software/data/db2/udb/winos2unix/support から入手可 能)。 DB2 MQSeries 関数のインストールと構成 このセクションでは、DB2 MQSeries 関数を利用するために DB2 環境を構成す る方法について説明します。次の手順を正常に完了すると、SQL 内から DB2 MQSeries 関数を利用できます。各関数については、本書「リリース情報」の 『SQL 解説書』セクションで説明しています。 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 に記載さ れています。 MQSeries のインストール 最初のステップは、最新のフィックスパックをともなう最小限の MQSeries バ ージョン 5.1 が、DB2 サーバーにインストールされることを確認することで す。 このバージョンの MQSeries がすでにインストールされている場合は、次 のステップ『MQSeries AMI のインストール』へ進んでください。 DB2 バージ ョン 7.2 には、DB2 で使用される MQSeries サーバーのコピーが含まれていま す。MQSeries をインストールするため、または既存の MQSeries インストール をアップグレードするための、プラットフォーム別の手順が、 http://www.ibm.com/software/ts/mqseries/library/manuals のプラットフォ ーム別「概説およびインストール」マニュアルに記載されています。インスト ール・プロセスを進めていく中で、必ずデフォルトのキュー・マネージャーを セットアップしてください。 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 or | | | mq0f_sol26.tar.Z | +----------------------------------+----------------------------------+ | Windows 32 ビット | ma0f_nt.zip | +----------------------------------+----------------------------------+ 圧縮されたインストール・イメージに含まれている AMI readme ファイルに、 通常の AMI インストール・プロセスが記載されているので、それに従ってくだ さい。 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 関数のデータベ ースを構成し、使用可能にします。DB2 UDB EEE 環境では、このステップを カタログ・ノードでのみ実行してください。このコマンドの詳細について は、"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 として保管されま す。 MQSeries メッセージ・スタイル DB2 MQSeries 関数では、データグラム、発行/サブスクライブ (p/s)、および 要求/応答 (r/r) の 3 つのメッセージング・モデルをサポートしています。 データグラムとして送信されるメッセージは、応答を要求せずに単一の宛先に 送られます。 p/s モデルでは、1 つ以上のパブリッシャーがパブリケーショ ン・サービスへメッセージを送信し、パブリケーション・サービスがそのメッ セージを 1 つ以上のサブスクライバーに配布します。要求/応答はデータグラ ムと似ていますが、送信側が応答の受け取りを要求します。 メッセージ構造 MQSeries では、送信するメッセージの特定の構造化をそれ自体で指示したり、 サポートしたりすることはありません。 MQSeries Integrator (MQSI) などの他の製品は、C または Cobol、あるいは XML ストリングの形式のメッセージをサポートします。MQSI 内の構造化メッセ ージは、メッセージ・リポジトリーによって定義されます。XML メッセージに は一般的に、自己記述のメッセージ構造があり、リポジトリーによって管理可 能です。メッセージは構造化されていないこともあり、その場合はユーザー・ コードでメッセージの内容を解析または構成する必要があります。このような メッセージは多くの場合、半構造化メッセージで、メッセージ内のフィールド を区切るためにバイト位置または固定区切り文字を使用します。このような半 構造化メッセージのサポートは、MQSeries Assist Wizard によって提供されま す。XML メッセージのサポートは、 DB2 XML Extender の新機能によって提供 されます。 MQSeries 関数の概説 MQSeries 関数のセットは、SQL ステートメントにメッセージング操作を組み込 むために、 DB2 UDB バージョン 7.2 によって提供されるものです。つまり、 このサポートは、データベース・インターフェースを使用して C、Java、SQL などのサポートされている言語で作成されたアプリケーションに使用できると いうことです。下記の例はすべて SQL で記述されています。この SQL は、他 のプログラム言語からもすべて標準の方法で使用できます。上記のすべての MQSeries メッセージ・スタイルがサポートされています。MQSeries 関数の詳 細については、「リリース情報」の『SQL 解説書』セクションを参照してくだ さい。 基本構成では、MQSeries サーバーが DB2 とともにデータベース・サーバー・ マシン上に置かれます。MQSeries 関数は、DB2 にインストールされ、MQSeries サーバーへのアクセスを提供します。DB2 クライアントは、DB2 サーバーへア クセス可能なマシン上に置かれます。 MQSeries 関数には、複数のクライアン トがデータベースを介して同時にアクセスできます。 DB2 クライアントは、提 供された関数を使用して、SQL ステートメント内のメッセージング操作を実行 します。これらのメッセージング操作を使用して、DB2 アプリケーションは相 互に、または他の MQSeries アプリケーションと通信することができます。 enable_MQFunctions コマンドは、MQSeries 関数用に DB2 データベースを使用 可能にするために使用されます。このコマンドは、クライアント・アプリケー ションが他の管理アクションを実行せずに使用できる単純なデフォルト構成を 自動的に確立します。詳しくは、"enable_MQFunctions"および "disable_ MQFunctions"を参照してください。デフォルト構成では、アプリケーション・ プログラマーに、簡単な使い方と、開発用のシンプルなインターフェースが提 供されます。必要に応じて、追加の機能を構成できます。 例 1: デフォルト構成を使用して単純なメッセージを送信するには、次のような SQL ステートメントを使用します。 VALUES DB2MQ.MQSEND('simple message') これにより、simple message というメッセージが、デフォルト構成で指定され ている MQSeries キュー・マネージャーとキューへ送られます。 MQSeries の Application Messaging 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') 注: この例では、ポリシーが指定されていないので、デフォルト・ポリシーが 使用されます。 制約事項 MQSeries は、メッセージ操作とデータベース操作をアトミック・トランザクシ ョンとして 1 つの作業単位に結合する機能を提供します。この機能は、UNIX および Windows では、 MQSeries 関数によって最初からサポートされているわ けではありません。 送受信の関数を使用する場合、タイプ VARCHAR のメッセージの最大長は、4000 文字です。タイプ CLOB のメッセージを送受信する場合の最大長は、1 MB で す。 MQPublish を使用してメッセージを発行する際の最大メッセージ・サイズ もあります。 CLOB メッセージおよび VARCHAR メッセージを処理する場合は、異なる関数が 必要な場合もあります。一般に MQ 関数の CLOB バージョンは、MQ 関数と同一 の構文を使用します。 唯一の違いは、その名前の末尾に CLOB の文字が付いて いる点です。例えば、MQREAD に相当する関数は、CLOB では、MQREADCLOB で す。これらの関数について詳しくは "MQSeries 関数でサポートされるようにな った CLOB データ"を参照してください。 エラー・コード MQSeries 関数から戻される戻りコードは、「MQSeries アプリケーション・メ ッセージング・インターフェース」マニュアルの『付録 B』に記載されていま す。 使用のシナリオ MQSeries 関数は、さまざまなシナリオで使用できます。このセクションでは、 基本メッセージング、アプリケーション接続、およびデータ・パブリケーショ ンなどの一般的なシナリオについて検討します。 基本メッセージング すべてのデータベース・アプリケーションが同じ DB2 サーバーに接続すると、 MQSeries DB2 関数によって最も基本的な形式のメッセージングが行われます。 クライアントは、データベース・サーバーに対してローカルである場合と、ネ ットワーク環境に分散している場合があります。 単純なシナリオでは、クライアント A が MQSEND 関数を呼び出して、ユーザー 定義のストリングをデフォルトのサービス・ロケーションに送ります。次に、 データベース・サーバー上の DB2 内で MQSeries 関数が実行されます。その 後、クライアント B が MQRECEIVE 関数を呼び出して、デフォルト・サービス に定義されているキューの先頭にあるメッセージを除去し、それをクライアン トへ戻します。再び、この作業を行うための MQSeries 関数が DB2 によって実 行されます。 データベース・クライアントでは、多数の方法で単純なメッセージングを使用 できます。一般的なメッセージングの使用法には次のようなものがあります。 * データ収集 -- 情報が、1 つ以上の情報源からメッセージ形式で受け取られ ます。情報源は、 SAP や社内で開発されたアプリケーションのような商用 アプリケーションです。このようなデータがキューから受け取られ、後から 行う処理や分析のためにデータベース表に保管されます。 * ワークロード分散 -- 作業要求は、同じアプリケーションの複数のインスタ ンスによって共用されるキューに送られます。インスタンスが作業を実行す る準備が整うと、実行する作業要求が含まれているキューの一番上からメッ セージを受け取ります。この技法によって、複数のインスタンスが、プール された要求の単一のキューで表されるワークロードを共用できます。 * アプリケーション・シグナル -- いくつかのプロセスが共同作業を行う状態 においては、プロセスの作業を調整するためにメッセージが使用されること がよくあります。このようなメッセージには、コマンドや作業の実行要求が 含まれることがあります。一般的に、この種のシグナルは一方通行です。つ まり、メッセージの送信側は応答を期待していません。詳しくは、"要求/応 答通信"を参照してください。 * アプリケーション通知 -- 通知は、応答を期待していない起動側からデータ が送られる、シグナルと似ています。ただし、通知には一般に、発生したビ ジネス・イベントに関するデータが含まれています。"発行/サブスクライブ "は、通知のさらに拡張された形式です。 次のシナリオでは、上記の単純なシナリオを拡張して、リモート・メッセージ ングを組み込みます。つまり、メッセージがマシン 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 クライアントが、キューの先頭にあるメッセージ を要求します。 メッセージの送信 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' 表 EMPLOYEE に AGE 列ではなく、タイプ CLOB の列 RESUME がある場合、 DEPARTMENT 5LGA の各従業員の情報を含むメッセージは、次のコマンドによっ て送信されます。 例 7: SELECT DB2MQ.MQSEND (clob(LASTNAME) || ' ' || clob(FIRSTNAME) || ' ' || clob(DEPARTMENT) || ' ' || RESUME)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' 例 8: 最後に、次の例では、有効な SQL 式を使用してメッセージ内容を取得できる方 法を示します。2 番目の表 DEPT に VARCHAR 列 DEPT_NO および DEPT_NAME が 含まれている場合、従業員の LASTNAME および DEPT_NAME を含むメッセージ は、次のようにして送信されます。 例 8: SELECT DB2MQ.MQSEND(e.LASTNAME || ' ' || d.DEPTNAME) FROM EMPLOYEE e, DEPT d WHERE e.DEPARTMENT = d.DEPTNAME メッセージの取り出し MQSeries DB2 関数を使用すると、メッセージの受け取りまたは読み取りが可能 になります。読み取りと受け取りの違いは、読み取りではキューの先頭にある メッセージをキューから除去せずに戻す一方、受け取り操作ではメッセージが キューから除去されます。受け取り操作を使用してメッセージを取り出した場 合は、一度しかメッセージを取り出すことができませんが、読み取り操作を使 用してメッセージを取り出した場合は、同じメッセージを何度も取り出すこと ができます。この例を次に示します。 例 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) があるとします。上記のステートメ ントによって、デフォルト・サービス・キューからのメッセージが表に挿入さ れます。この技法は、さまざまな状況に応じて変化させることができます。 アプリケーション間接続 アプリケーション統合は、多くのソリューションの共通要素です。購入したア プリケーションを既存のインフラストラクチャーに統合するか、または新しく 開発されたアプリケーションを既存の環境に統合するかにかかわらず、さまざ まな種類のサブシステムのコレクションをつなぎ合わせて作業全体を形成する というタスクに直面することがよくあります。 MQSeries は一般に、アプリケ ーションを統合するための不可欠なツールであるという評価を受けています。 MQSeries は、ほとんどのハードウェア、ソフトウェア、および言語環境プログ ラムにアクセス可能で、さまざまな種類のアプリケーションのコレクションに 相互接続する手段を提供します。 このセクションでは、いくつかのアプリケーション統合のシナリオと、DB2 で のその使用法について説明します。トピックが非常に広範囲なので、アプリケ ーション統合を包括的に扱うのは、この作業の目的とするところではありませ ん。したがって、ここでは、 2 つの単純なトピック、つまり要求/応答通信、 および MQSeries Integrator と発行/サブスクライブだけを取り上げます。 要求/応答通信 要求/応答 (R/R) 通信方式は、あるアプリケーションが別のアプリケーションの サービスを要求するという、非常に一般的な技法です。これを行うために、要 求側がサービス提供側に、何らかの作業の実行を求めるメッセージを送る方法 があります。作業が完了したら、提供側は、結果 (または単に完了の確認) を 要求側へ戻すかどうかを決めることができます。しかし、上記の基本的なメッ セージング技法を使用した場合、送信側の要求をサービス提供側の応答に接続 するものが何もありません。要求側が続行する前に応答を待機しない限りは、 各応答をその要求に関連付けるためにいくつかのメカニズムを使用する必要が あります。開発者にこのようなメカニズムの作成を強いることなく、MQSeries は、メッセージの交換時にメッセージを相関させることを可能にする相関 ID を提供します。 このメカニズムはさまざまな方法で使用できますが、最も単純な方法は、要求 側が既知の相関 ID を使用してメッセージにマークを付ける方法です。この例 を次に示します。 例 17: DB2MQ.MQSEND ('myRequester','myPolicy','SendStatus:cust1','Req1') このステートメントでは、最後のパラメーター Req1 を上記の MQSEND ステー トメントに追加して、要求の相関 ID を指示しています。 この特定の要求に対する応答を受け取るには、次のように、対応する MQRECEIVE ステートメントを使用して、この相関 ID に一致する指示されたサービスに定 義されている最初のメッセージを選択的に取り出してください。 例 18: DB2MQ.MQRECEIVE('myReceiver','myPolicy','Req1') 要求をサービスするアプリケーション・サービスがビジー状態であるときに、 応答が送られる前に要求側が上記の MQRECEIVE を発行すると、この相関 ID に 一致するメッセージは見つかりません。 サービス要求と相関 ID の両方を受け取るには、次のようなステートメントを 使用します。 例 19: SELECT msg, correlid FROM table (DB2MQ.MQRECEIVEALL('aServiceProvider','myPolicy',1)) t これにより、最初の要求のメッセージと相関 ID がサービス aServiceProvider から戻されます。 サービスが実行されたら、aRequester に記述されているキューへ応答メッセー ジを送ります。一方、サービス要求側は他の作業を行うことが可能です。実 際、初期サービス要求へ、設定された時間内に応答する保証はありません。こ のようなアプリケーション・レベルのタイムアウトは、開発者が管理する必要 があります。また、要求側は、応答の存在を検出するためにポーリングする必 要があります。 このような時間に依存しない非同期処理の利点は、要求側とサービス提供者が 相互に完全に独立して実行する点です。この方法は、アプリケーションが断続 的に接続される環境と、複数の要求または応答が処理前に集約されるバッチ指 向性の高い環境の両方に適合します。この種の集約は多くの場合、データウェ アハウスまたは操作可能なデータ保管を定期的に更新するために、データウェ アハウス環境で使用されます。 発行/サブスクライブ 単純なデータ発行 アプリケーション統合のもう 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) 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.1 以降であることを確認します。 * 環境変数 $AMT_DATA_PATH が定義されていることを確認します。 * ディレクトリーを DB2PATH の cfg サブディレクトリーに変更しま す。 UNIX の場合: * db2set を使用して AMT_DATA_PATH を DB2ENVLIST へ追加します。 * UDF 実行に関連付けられているユーザー・アカウントが mqm グルー プのメンバーであることを確認します。 * このコマンドを呼び出すユーザーが mqm グループのメンバーである ことを確認します。 注: AIX V4.2 は MQSeries 5.2 ではサポートされていません。 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 第 IV 部 管理ツール ツールを実行前の追加のセットアップ Linux 上の浮動小数点スタックを使用不可にする Linux 環境で glibc 2.2.x を使用する場合、コントロール・センターなどの DB2 Java GUI ツールを実行する前に、浮動小数点スタックを使用不可にする必 要があります。浮動小数点スタックを使用不可にするには、次のようにして LD_ASSUME_KERNEL 環境変数を 2.2.5 に設定します。 bash$ export LD_ASSUME_KERNEL=2.2.5 日本語版 Linux 環境で必要な特定の Java レベル Linux ユーザーは、日本語環境で DB2 Java GUI ツール (コントロール・セン ターなど) を実行するには、特定の JDK レベルが必要です。例えば、Red Hat Linux 6.2J/7J/7.1/7.2 ユーザーは、IBMJava118-SDK-1.1.8-2.0.i386.rpm レ ベルを使用する必要があります。 コントロール・センター リダイレクト・リストアを選択してデータベースをリストアする GUI ツールを使用してデータベースをリストアする場合には、リダイレクト・ リストア・オプションを選択して、データベースをリストアします。このオプ ションを選択すると、リストア操作がバックグラウンドで開始され、データベ ースはリストア・ペンディング状態になります。アクションをキャンセルする と、別のリストアを完了するまで、データベースは使用できなくなります。 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 コネクト 使用者の 手引き」または「インストールおよび構成補足」を参照してください。 コントロール・センターの 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 サポートを含みます。 Windows オペレーティング・システムでオンライン・ヘルプを使用時の「無効な ショートカット」エラー コントロール・センターのオンライン・ヘルプを使用時に、「無効なショート カット」のようなエラーが出される場合があります。最近、新規の Web ブラウ ザーあるいは新しいバージョンの Web ブラウザーをインストールした場合、 HTML および HTM 文書が正しいブラウザーと関連付けられていることを確認し てください。 Windows ヘルプのトピック『ファイルを開くときに起動するプロ グラムを変えるには』を参照してください。 キーボード・ショートカットの不作動 いくつかの言語で、UNIX ベース・システムおよび、OS/2 版のコントロール・ センターのいくつかのキーボード・ショートカット (ホット・キー) が動作し ない場合があります。 オプションを選択する際はマウスを使用してください。 OS/2 版 Java コントロール・センター コントロール ・センターは、HPFS 形式のドライブにインストールする必要が あります。 Windows オペレーティング・システム上のジャーナルで完了したジョブを表示す る際の「ファイル・アクセスが拒否されました」エラー DB2 ユニバーサル・データベース (Windows NT 版) で、スクリプト・センター で作成されたジョブの詳細を表示するジャーナルをオープンしようとする際に、 「ファイル・アクセスが拒否されました」エラーが出されます。ジョブ状況は 完了を示します。この状況は、スクリプト・センターで作成されたジョブが START コマンドを含むときに起こります。これを回避するには、バッチ・ファ イルおよびジョブそれ自体の両方で、 START の代わりに START/WAIT を使用し てください。 複数サイト更新テスト接続 バージョン 7 コントロール・センターの複数サイト更新テスト接続機能は、タ ーゲット・インスタンスのバージョンによって制限されています。「リモー ト」テスト接続機能を実行するには、ターゲット・インスタンスが少なくとも バージョン 7 でなければなりません。バージョン 6 で複数サイト更新テスト 接続機能を実行するには、コントロール・センターをターゲット・インスタン ス上にローカルに立ち上げ、そこから実行しなければなりません。 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 (OS/390 版) の別途注文可能な要素であるユーティリティー機能は、DB2 コントロール・セ ンターで管理するためには、ご使用の環境内でライセンス交付を受け、インス トールする必要があります。 DB2 (OS/390 版) コントロール・センターの修正 バージョン 7 で DB2 UDB コントロール・センターを使用してこれらのサブシ ステムを管理するには、 DB2 (OS/390 版) バージョン 5 および DB2 (OS/390 版) バージョン 6 の 390 使用可能性機能に APAR PQ36382 を適用する必要が あります。この修正なしでは、これらのサブシステムに対してユーティリティ ーを実行するために、バージョン 7 で DB2 UDB コントロール・センターを使 用することはできません。 この APAR は以下の FMID に適用されます。 DB2 for OS/390 Version 5 390 Enablement: FMID JDB551D DB2 for OS/390 Version 6 390 Enablement: FMID JDB661D 「地理情報層の作成」ダイアログへの変更点 「<<」および「>>」ボタンが、「地理情報層の作成」ダイアログから除去され ました。 DB2 コントロール・センターのトラブルシューティング情報 概説およびインストールのブックの『コントロール・センター インストールお よび構成』の章の『トラブルシューティング情報』というセクションで、コン トロール・センターをアプレットとして起動中に問題があった場合、クライア ント・ブラウザーの CLASSPATH をコマンド・ウィンドウから設定解除するよう 記載されています。このセクションではまた、ブラウザーをコマンド・ウィン ドウから開始するよう述べています。ただし、ブラウザー開始のコマンドは提 供されていません。 Internet Explorer を立ち上げるには、start iexplore と入力し、 Enter を押してください。Netscape を立ち上げるには、start netscape と入力し、 Enter を押してください。これらのコマンドは、ブラウ ザーが PATH に設定されていると想定しています。設定されていない場合は、 PATH に追加するか、あるいはブラウザーのインストール・ディレクトリーに移 動し、start コマンドを再実行してください。 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 OS/2 上での infopop の問題 OS/2 上でコントロール・センターを実行する際、画面解像度 1024x768 で 256 色を使用し、「ワークプレース・シェル・パレット認識」がチェックされてい ると、現行ウィンドウの枠に広がる infopop が、黒の背景に黒のテキストで表 示される場合があります。この問題を修正するには、画面解像度の設定を 256 色以上にするか、あるいは「ワークプレース・シェル・パレット認識」を未チ ェックにしてください。 jdk11_path 構成パラメーターのヘルプ コントロール・センターのヘルプで、Java 開発キット 1.1 インストール・パス (jdk11_path) 構成パラメーターに関する 1 行 (副見出し適用の下) が欠落し ています。 適用の下の完全なリストは次のようになります。 * データベース・サーバー (ローカルおよびリモート・クライアント) * クライアント * データベース・サーバー (ローカル・クライアント) * 区分データベース・サーバー (ローカルおよびリモート・クライアント) * サテライト・データベース・サーバー (ローカル・クライアント) スクリプト・センターまたはジャーナルを使用中の Solaris システム・エラー (SQL10012N) Solaris システムをスクリプト・センターまたはジャーナルから選択した場合、 以下のエラーが起きる場合があります。 SQL10012N - An unexpected operating system error was received while loading the specified library "/udbprod/db2as/sqllib/function/unfenced/ db2scdar!ScheduleInfoOpenScan". SQLSTATE=42724. これは、Solaris ランタイム・リンカーのバグによるものです。この問題を訂 正するには、次のパッチを適用します。 105490-06 (107733 makes 105490 obsolete) for Solaris Operating Environment 2.6 DPREPL.DFT ファイルのヘルプ コントロール・センターで、「ツール設定」ノートブックのレプリケーショ ン・ページのヘルプのステップ 5d で、次のような記載があります。 Save the file into the working directory for the Control Center (for example, SQLLIB\BIN) so that the system can use it as the default file. ステップ 5d は以下のように訂正されます。 Save the file into the working directory for the Control Center (SQLLIB\CC) so that the system can use it as the default file. 複数のコントロール・センター・アプレットの立ち上げ 同じマシンで複数のコントロール・センター・アプレットを同時に立ち上げる ことはできません。この制限は、サポートされているあらゆるブラウザー上で 実行しているコントロール・センター・アプレットに適用されます。 アプレットとして実行中のコントロール・センターのオンライン・ヘルプ コントロール・センターがアプレットとして起動中に、 F1 キーは infopop を 持つウィンドウまたはノートブックでのみ機能します。 F1 キーを押して、以下のコンポーネントで infopop を表示することができま す。 * DB2 ユニバーサル・データベース (OS/390 版) * ウィザード コントロール・センターの残りのコンポーネントでは、 F1 キーにより何のヘ ルプも表示されません。その他のコンポーネントのヘルプを表示するには、 「ヘルプ」プッシュボタンを使用するか、あるいはヘルプ・プルダウン・メニ ューを使用してください。 コントロール・センターをアプレット・モードで実行 (Windows 95) スクリプト・センターを開こうとする際に、無効なユーザー ID またはパスワ ードを指定すると、失敗する場合があります。コントロール・センターにサイ ンオンする場合は、有効なユーザー ID およびパスワードを入力するよう注意 してください。 大きな照会結果の操作 ユーザーは、いくつもの行を返す照会を簡単に作成できます。ただし、実際に 返される行数をユーザーが予測することは容易ではありません。数千 (または 数百万) の行を返す可能性のある照会には、以下の 2 つの問題があります。 1. 結果の検索に時間がかかる可能性がある。 2. 結果を保管するために、大量のクライアント・メモリーが必要になる可能性 がある。 このプロセスを簡単にするために、DB2 は大きな結果セットを分割します。 DB2 は、一度に 1 チャンクずつ、照会結果を検索して表示します。 この結果、以下のようになります。 1. 最初の照会のチャンクを残りのチャンクの検索中に表示できるため、表示時 間が削減されます。 2. いつの時点においても、1 つのチャンクの照会結果のみがクライアントに保 管されるため、クライアントのメモリー所要量が削減されます。 メモリー内の照会結果の行数を制御するには 1. 「ツール設定」ノートブックの「一般」ページをオープンします。 2. 「最大サイズ」セクションで、以下を選択します。 * 「サンプル・コンテンツ」ウィンドウに表示される結果行の数を制限す るための「サンプル・コンテンツ」。結果セットのチャンク・サイズ (行数) を入力フィールドに指定してください。 * コマンド・センターの「照会結果」ページに表示される結果行の数を制 限するための「コマンド・センター」。結果セットのチャンク・サイズ (行数) を入力フィールドに指定してください。 「サンプル・コンテンツ」ウィンドウまたはコマンド・センターの「照会結 果」ページの照会の結果を操作すると、照会でメモリーに保持されている行数が 「メモリー内の行」フィールドに示されます。この数が、最大サイズ・セット を超えることはありません。結果セットの次のチャンクを検索するには、「次へ 」をクリックします。「次へ」が非アクティブであれば、最後の結果セットに 到達したということです。 コマンド・センター コマンド・センターの対話式ページでステートメント終止符を認識 コマンド・センターの対話式ページで、ツール設定で指定されたステートメン ト終了文字を認識するようになりました。ステートメント終了文字が指定され ていない場合は、デフォルトで改行文字が使用されます。 インフォメーション・センター Java サンプル・ドキュメントに対する修正 インフォメーション・センターの Java サンプル・ドキュメントは、Java サン プル・ソースにリンクしています。このソースの PluginEx.Java セクションは 最新ではありません。「コントロール・センターの拡張」に関する現行情報 は、Java サンプル README ファイル、PluginEx.java ファイルおよび "コント ロール・センターの拡張例"を参照してください。 Windows プラットフォームでは、README ファイルおよび PluginEx.java ファ イルは x:\sqllib\samples\java にあります (x は DB2 がインストールされて いるドライブです)。 UNIX では、README ファイルおよび PluginEx.java ファイルは /u/db2inst1 /sqllib/samples/java にあります (/u/db2inst1 は DB2 がインストールされ ているディレクトリーです)。 Windows オペレーティング・システムでの「無効なショートカット」エラー インフォメーション・センターを使用する際、「無効なショートカット」とい うエラーが出される場合があります。最近、新規の Web ブラウザーあるいは新 しいバージョンの Web ブラウザーをインストールした場合、HTML および HTM 文書が正しいブラウザーと関連付けられていることを確認してください。 Windows ヘルプのトピック「ファイルを開くときに起動するプログラムを変え るには」を参照してください。 Netscape がすでにオープンしているときに、Netscape Navigator の外部 Web リンクをオープンする (UNIX ベース・システム) Netscape Navigator がすでに開いて、ローカル DB2 HTML ドキュメントか、外 部の Web サイトを表示している場合、インフォメーション・センターから外部 の Web サイトを開こうとすると Netscape でエラーが発生します。エラーは次 のように表示されます。「Netscape は <外部サイト> というファイルまたはデ ィレクトリーを見つけることができません。」 この問題に対処するには、外部の Web サイトを開く前に開いている Netscape ブラウザーを閉じます。 Netscape が再起動し、外部の Web サイトが表示され ます。 このエラーはすでに開いている Netscape で、ローカルの DB2 HTML ドキュメ ントを開こうとしても起こりませんのでご注意ください。 インフォメーション・センター開始時の問題 いくつかのシステムで、スタート・メニュー、ファースト・ステップ、または db2ic コマンドを使用してインフォメーション・センターを呼び出すと、開始 が遅い場合があります。この問題が発生した場合は、コントロール・センター を開始し、「ヘルプ」-->「 インフォメーション・センター」と選択します。 ストアード・プロシージャー・ビルダー Java ストアード・プロシージャー (z/OS または OS/390 対応) に対するサポー ト フィックスパック 7 では、DB2 for z/OS or OS/390 バージョン 7 用に解釈さ れた Java ストアード・プロシージャーを作成するストアード・プロシージャ ー・ビルダーに、次の拡張機能が追加されました。 * 実コストのサポート * エラー・メッセージ処理の拡張 * LINUX/390 サーバーの使用可能化 * ストアード・プロシージャーのスキーマ名での @ 記号のサポート コンパイルされた Java ストアード・プロシージャーは、z/OS または OS/390 のどのバージョンでもサポートされておらず、ストアード・プロシージャー・ ビルダーを使用して作成できません。これは、 DB2 のすべてにバージョンに関 して当てはまります。 要件: * 前提条件および DB2 for z/OS or OS/390 におけるセットアップ・タスクに ついては、APAR PQ52329 を参照してください。 * コレクション ID は、z/OS または OS/390 で JDBC ドライバーをバインド する際に使用したものと一致していなければなりません。 * DB2SPB.ini ファイルを変更して、以下の項目を組み込みます。 SPOPTION_WLM_JAVA_ENVIRONMENT = WLMENVJ SPOPTION_JAVAPROC_BUILDER = SYSPROC.DSNTJSPP SPOPTION_BIND_OPTIONS_JAVA = ACT(REP) SPOPTION_COLLIDJ = DSNJDBC ストアード・プロシージャー・ビルダーを使用して z/OS または OS/390 用の Java ストアード・プロシージャーを作成するには、次のようにします。 1. 「Java ストアード・プロシージャーの挿入」ウィザードを開きます。 a. プロジェクト・ツリーの z/OS または OS/390 データベース接続の下で、 ストアード・プロシージャー・フォルダーを右マウス・ボタン・クリッ クします。 b. 「挿入」->「ウィザードを使用した Java ストアード・プロシージャー」 とクリックします。ウィザードが開きます。 2. 次のように z/OS または OS/390 オプションを指定して、ウィザードを実行 します。 * コレクション ID は、JDBC ドライバーが z/OS または OS/390 でバイン ドされた際に BIND PACKAGE(collid) で指定されたものと同じでなけれ ばなりません。 * Java パッケージのデフォルトはプロシージャー名ですが、これを任意の 名前に変更することができます。 3. 「了解」をクリックします。ストアード・プロシージャーが作成され、プロ ジェクト・ツリーにリストされます。 4. ストアード・プロシージャーを右マウス・ボタン・クリックして、「ビルド 」をクリックします。 SQL ストアード・プロシージャー (z/OS または OS/390 対応) に対するサポー ト フィックスパック 7 では、ストアード・プロシージャー・ビルダーで、 DB2 for z/OS or OS/390 バージョン 7 (APAR JR16764) 用にストアード・プロシー ジャーを作成する際の ALTER プロシージャーの使用が拡張されました。 ストアード・プロシージャー・ビルダーを使用して z/OS または OS/390 用の SQL ストアード・プロシージャーを作成するには、次のようにします。 1. 「SQL ストアード・プロシージャーの挿入」ウィザードを開きます。 a. プロジェクト・ツリーの z/OS または OS/390 データベース接続の下で、 ストアード・プロシージャー・フォルダーを右マウス・ボタン・クリッ クします。 b. 「挿入」->「ウィザードを使用した SQL ストアード・プロシージャー」 とクリックします。ウィザードが開きます。 2. 次のように z/OS または OS/390 オプションを指定して、ウィザードを実行 します。 * コレクション ID は、JDBC ドライバーが z/OS または OS/390 でバイン ドされた際に BIND PACKAGE(collid) で指定されたものと同じでなけれ ばなりません。 * SQL パッケージのデフォルトはプロシージャー名ですが、これを任意の 名前に変更することができます。 3. 「了解」をクリックします。ストアード・プロシージャーが作成され、プロ ジェクト・ツリーにリストされます。 4. ストアード・プロシージャーを右マウス・ボタン・クリックして、「ビルド 」を選択します。 z/OS または OS/390 資料に関するストアード・プロシージャー・ビルダーの参 照の更新 ストアード・プロシージャー・ビルダーのオンライン・ヘルプの「SQL ストア ード・プロシージャーの概要」ページに記載されている、「IBM DB2 Universal Database SQL Procedures Guide and Reference Version 6」への参照は無くな りました。 z/OS または OS/390 サーバーにおける SQL ストアード・プロシージャーの作 成についての詳細は、以下の資料を参照してください。 * DB2 UDB for z/OS or OS/390 SQL Reference * DB2 UDB for z/OS or OS/390 Application Programming and SQL Guide 結果セット・プロパティーの設定に対するサポート フィックスパック 7 では、ストアード・プロシージャー・ビルダーで、結果セ ットを戻すストアード・プロシージャーを実行する際のパフォーマンスが改善 されました。 ストアード・プロシージャー・ビルダーを使用して、テストを目的としたスト アード・プロシージャーを実行することができます。ストアード・プロシージ ャー・ビルダーを使用してストアード・プロシージャーを実行することによ り、データベースを正常に作成するためのテストや結果セットの表示をテスト することができます。ストアード・プロシージャーが大きな結果セットを戻す 場合には、結果ペインに表示する行および列の数を制限することも考えられま す。 ストアード・プロシージャーの結果セット・プロパティーを編集するには、次 のようにします。 1. 「ファイル」->「環境プロパティー」とクリックします。 2. 「環境プロパティー」ノートブックの「出力」タブをクリックします。 3. 結果ペインにストアード・プロシージャーの結果セットのすべての行を表示 する場合は、「すべての行を表示」チェック・ボックスを選択します。結果 ペインに表示する行数を制限する場合には、「すべての行を表示」チェッ ク・ボックスのチェックを外して、「表示する行数」フィールドに行数を入 力します。 4. ストアード・プロシージャーの結果セットの各列に含まれるすべてのデータ を結果ペインに表示する場合は、「各列のすべてのデータを表示」チェッ ク・ボックスを選択します。結果ペインに表示する列幅を制限する場合に は、各列のすべてのデータを表示」チェック・ボックスのチェックを外し て、最大列幅」フィールドに数 (文字数を指定) を入力します。データは、 結果ペインに表示される際に、指定された最大列幅に合うように切り捨てら れます。 5. 「OK」をクリックして、変更を適用します。 Windows NT における DB2 データベースからのプロシージャーのドロップ ストアード・プロシージャー・ビルダーの以前のバージョンでは、Windows NT システムで稼働している DB2 データベースからプロシージャーをドロップする 際に、DROP PROCEDURE が正しく作動しませんでした。 フィックスパック 7 では、ストアード・プロシージャー・ビルダーで、Windows NT システムで稼働している DB2 データベースからプロシージャーを正しくド ロップできるようになりました。 ウィザード データベース作成ウィザードの拡張サイズの設定 データベース作成ウィザードを使用して、新規データベースのユーザー表スペ ース (カタログまたは一時表以外) の拡張サイズおよびプリフェッチ・サイ ズ・パラメーターを設定することができます。この機能は、ウィザードの「ユ ーザー表」ページのユーザー表スペースに少なくとも 1 つのコンテナーが含ま れている場合にのみ使用できます。 MQSeries 補助ウィザード DB2 バージョン 7.2 では新しい MQSeries 補助ウィザードが利用できます。こ のウィザードは、 DB2 MQSeries 関数を使って MQSeries キューから読み取る 表関数を作成します。 DB2 MQSeries 関数も バージョン 7.2 に新規に追加さ れたものです。このウィザードは、それぞれの MQSeries メッセージを、ユー ザーの指定によって、区切られたストリングまたは固定長列として処理できま す。処理された表関数はユーザーの指定に従って構文解析し、それぞれの MQSeries メッセージをその表関数の行として返します。このウィザードでは、 表関数の上部にビューを作成したり、MQSeries メッセージや表関数の結果をプ レビューすることもできます。このウィザードは、ストアード・プロシージャ ー・ビルダーまたはデータウェアハウス・センターから立ち上げることができ ます。 このウィザードの要件は以下の通りです。 * MQSeries バージョン 5.2 * MQSeries アプリケーション・メッセージング・インターフェース (AMI) * DB2 MQSeries 関数 上記の要件の詳細は、"MQSeries"を参照してください。 サンプルおよび MQSeries 補助ウィザード・チュートリアルについては、 http://www.ibm.com/software/data/db2/udb/ide のチュートリアル・セクショ ンを参照してください。 OLE DB 補助ウィザード このウィザードのガイドに従うと、Microsoft OLE DB 標準をサポートする別の データベース・プロバイダーのデータを読み取る表関数を作成することができ ます。オプションとして、OLE DB 表機能で読み取られるデータで DB2 表を作 成すること、および OLE DB 表機能のビューを作成することができます。この ウィザードは、ストアード・プロシージャー・ビルダーまたはデータウェアハ ウス・センターから立ち上げることができます。 このウィザードの要件は以下の通りです。 * OLE DB プロバイダー (Oracle、Microsoft SQL Server など) * OLE DB サポート関数 サンプルおよび OLE DB 補助ウィザード・チュートリアルについては、 http://www.ibm.com/software/data/db2/udb/ide のチュートリアル・セクショ ンを参照してください。 第 V 部 ビジネス・インテリジェンス ビジネス・インテリジェンス・チュートリアル 改訂されたビジネス・インテリジェンス・チュートリアル フィックスパック 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」-->「ファースト・ステップ」と選択してください。 DB2 ユニバーサル・データベース クイック・ツアー DB2 Linux または Linux/390 版ではクイック・ツアーは利用できません。 クイック・ツアーは、少ないシステム・フォントでも実行できるよう最適化さ れています。 OS/2 のクイック・ツアーを正しく表示できるよう、お使いの Web ブラウザーのフォント・サイズを調整する必要がある場合があります。フォン ト・サイズの調整についての情報は、お使いの Web ブラウザーのヘルプをご参 照ください。クイック・ツアーを正しく表示するには (SBCS のみ)、8 ポイン トの Helv フォントのご使用をお勧めします。日本語および韓国語をご利用の お客さまは、8 ポイントの明朝フォントのご使用をお勧めします。フォントの 設定を変更する際は、「プリファレンス」ウィンドウの「フォント」ページで 「デフォルト・フォントを使用、ドキュメント指定のフォントを上書きする」 のオプションが選択されていることを確認してください。 場合によっては、クイック・ツアーが後に 2 つ目のブラウザー・ウィンドウを 立ちあげます。この問題を解決するには、クイック・ツアーをクローズし、 "Netscape を立ち上げようとした場合のエラー・メッセージ"のステップに従っ てください。 クイック・ツアーを立ち上げているときに、以下と同様の JavaScript エラー を受信する場合があります。 ファイル:/C/Program Files/SQLLIB/doc/html/db2qt/index4e.htm、行 65: ウィンドウが定義されていません。 この JavaScript エラーは、クイック・ツアーが立ち上がった後、「クイッ ク・ツアーの立ち上げ」ページ、index4e.htm が自動的に閉じるのを妨げます。 index4e.htm が表示されているブラウザー・ウィンドウを閉じると、「クイッ ク・ツアーの立ち上げ」ページを閉じることができます。 『変更された点』セクションの『データ管理』トピックでは、「オンデマン ド・ログ保存サポート」が、バージョン 7.1 でサポートされていると記述され ています。これは当てはまりません。また、次の記述もあります。 ログ・ファイルのサイズが 4GB から 32GB に増えました。 この文は次のように訂正してください。 アクティブ・ログ・スペースの合計が 4GB から 32GB に増えました。 DB2 データ・リンク・マネージャーの記述をしているセクションには、次の内 容の文があります。 Also, it now supports the use of the Veritas XBSA interface for backup and restore using NetBackup. この文は次のように訂正してください。 Also, it now supports the XBSA interface for file archival and restore. Storage managers that support the XBSA interface include Legato NetWorker and Veritas NetBackup. データウェアハウス・センター 管理の手引き 入手可能なアップデート版 「データウェアハウス・センター 管理の手引き」はフィックスパック 4 の一 部として更新され、最新の PDF は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support からオンラ インでダウンロードできます。これらの注釈の情報は、更新された解説書への 追加情報です。更新された資料は、すべて CD でも入手できます。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介して注文できます。 DB2 サービスへの連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 ウェアハウス・サーバーの機能強化 フィックスパック 5 では、ウェアハウス・サーバーに対して次の改善が行われ ました。 構成パラメーターの更新 サーバーは、空ストリングへのサービス名というような重要な構成パ ラメーターの更新を行わなくなりました。 メッセージ DWC7906 の更新 メッセージ DWC7906 には、従属関係問題を報告する際の先行ステッ プの名前が含まれるようになりました。 フィックスパック 4 では、ウェアハウス・サーバーに対して次の改善が行われ ました。 エージェント・シャットダウン時のエラー (rc = 7170)、2 次 rc = 6106 このエラーは、サーバーがシャットダウン要求を出す前にエージェン トがシャットダウンされた場合に発生します。 このエラーは、従来 はむだにレポートされたもので、今後はレポートされません。 ログ・ファイルに書き込まれるシステム・メッセージおよびコメント ユーザー定義のプログラムが実行を完了すると、システム・メッセー ジおよびコメントがウェアハウス・ログ・ファイルに書き込まれま す。これらのメッセージは、今回から「進行中の作業」表示ウィンド ウに表示されるようになりました。 増分コミットが正しく機能するようになりました ステップがターゲット・データベースを取り込み中であり、増分コ ミットの値が 0 より大きい場合は、エラー前にコミットされた結果 はすべてターゲット・データベースに出力されます。フィックスパッ ク 4 より前では、結果の一部が削除されていました。 トレース・レベル・エラー修正後は、ウェアハウス・サーバーを稼働できません ウェアハウス・サーバーは、ロギング・ディレクトリーの名前をシス テム環境変数 VWS_LOGGING から検索します。VWS_LOGGING が欠落し ているか、無効なディレクトリー名を指している場合は、代わりに TEMP システム環境変数が使用されます。TEMP が欠落しているか、無 効なディレクトリー名を指している場合は、ロガー・トレース・ファ イルが c:\ に書き込まれます。これによってフィックスパック 4 よ り前のバージョンのエラーが修正されます。このエラーは、レジスト リーから無効なロギング・ディレクトリー名を検索するために発生し ていました。 ストアード・プロシージャーのコミット・コマンドへの追加サポート ウェアハウス・サーバーは、ユーザー定義のストアード・プロシージ ャーが実行された後で、コミット・コマンドをエージェントに送信し ます。 拡張されたサンプル・コンテンツ ウェアハウス・サーバーは、エージェント・シャットダウン・メッセ ージを待つ必要がなくなったので、サンプル・コンテンツがより効率 的に実行されます。 トレース・ログ・ファイルのサイズが制御できるようになりました 新しいシステム環境変数 VWS_SERVER_LOG_MAX を使用することによっ て、トレース・ログ・ファイルのサイズを制御できるようになりまし た。 VWS_SERVER_LOG_MAX の値が 0 より大きい値に設定された場合 は、ログ・ファイルが、VWS_SERVER_LOG_MAX の値によって示される バイト数にほぼ等しいサイズに達すると、ウェアハウス・サーバーは ログ・ファイルの拡大を停止します。ログ・ファイルが最大サイズに 達すると、最新のトレース・ログ項目が保存され、最も古い項目が上 書きされます。広範なトレースを実行する場合は、VWS_SERVER_LOG_ MAX=150000000 (150M) は、適切なサイズです。 OS/390 エージェントを使用して Trillium バッチ・システム JCL を実行 OS/390 エージェントは、データウェアハウスの「メタデータのインポート」ノ ートブックから作成された Trillium バッチ・システム・ユーザー定義プログ ラムをサポートするようになりました。以前は、Trillium バッチ・システム JCL ファイルを実行するには、 Windows、AIX、または Solaris オペレーティ ング環境エージェントを使用して、 JCL をリモートで実行する必要がありまし た。このアップデートにより、 JCL を OS/390 エージェントで開始できるよう になりました。 「メタデータのインポート」ノートブックを使用して Trillium バッチ・シス テム用に Trillium バッチ・システム・ユーザー定義プログラムを作成する場 合、 JCL が同じシステムにエージェントとしてある場合でも、リモート・ホス トを OS/390 エージェントのための接続用に選択しなければなりません。リモ ート・ホスト接続用にパラメーターをすべて入力してください。 Trillium バッチ・システム・ユーザー定義プログラムのステップを作成した ら、 Trillium バッチ・システム・ステップのプロパティー・ノートブックを 使用して、エージェント・サイトを、使用する OS/390 エージェント・サイト に変更します。 JCL や出力エラー・ファイルの名前にブランクや括弧が含まれている場合は、 それらを スクリプトまたは JCL、または出力エラー・ファイルのフィールドに 入力する際に、二重引用符で囲む必要があります。 データウェアハウス・センターの 2 つの新規サンプル・プログラム EEE_Load および File_Wait の 2 つの新規サンプル・プログラムがデータウ ェアハウス・センターに組み込まれました。EEE_Load program を使用すると、 ご使用のデータウェアハウジング・プロセス内で DB2 UDB EEE オートローダ ー・プログラムを実行するステップを作成することができます。 File_Wait プ ログラムを使用すると、あるファイルを待機し、そのファイルが使用可能にな ったときにプロセス内の次のステップを実行するステップを作成することがで きます。これらのプログラムについて詳しくは、データウェアハウス・センタ ー・サーバーがインストールされているシステムの、 ..\SQLLIB\TEMPLATES\SAMPLES ディレクトリーにある README.UDP ファイルを 参照してください。 更新された DB2 ウェアハウス・マネージャーによる ETI.Extract(R) 移行プロ グラムの管理 DB2 ウェアハウス・マネージャーによる ETI.Extract(R) 移行プログラムの管 理は、更新され、オンラインで http://www.ibm.com/software/data/db2/udb/winos2unix/support から入手で きます。 共通ウェアハウス・メタデータ交換 (CWMI) を使用したインポートおよびエクス ポート 入門 タグ言語ファイルの既存のサポートに加えて、データウェアハウス・センター は、共通ウェアハウス・メタモデル (CWM) 標準に準拠する XML ファイルとの 間でメタデータをインポートおよびエクスポートできるようになりました。こ れらの CWM 準拠 XML ファイルのインポートおよびエクスポートは、 共通ウェ アハウス・メタデータ交換 (CWMI) と呼ばれます。 次のデータウェアハウス・センター・オブジェクトからメタデータをインポー トおよびエクスポートできます。 * ウェアハウス・ソース * ウェアハウス・ターゲット * プロセス、ソース、ターゲット、ステップ、およびカスケード関係を含むサ ブジェクト・エリア * ユーザー定義プログラム CWMI インポートおよびエクスポート・ユーティリティーは現在、次の種類のメ タデータをサポートしていません。スケジュール、ウェアハウス・スキーマ、 ユーザー、およびグループ。 データウェアハウス・センターは、インポートおよびエクスポート・プロセスの 結果を含むログ・ファイルを作成します。一般にログ・ファイルは、 x:\program files \sqllib\logging ディレクトリー (x: は DB2 がインストー ルされているドライブ) または VWS_LOGGING 環境変数として指定されたディレ クトリーに作成されます。ログ・ファイルはプレーン・テキストです。テキス ト・エディターで表示することができます。 メタデータのインポート メタデータは、データウェアハウス・センターから、またはコマンド行からイ ンポートすることができます。 インポート・プロセスを通じて作成された新しいオブジェクトは、デフォルトの データウェアハウス・センター・セキュリティー・グループに割り当てられま す。詳しくは、「リリース情報」の『インポート後のセキュリティーの更新』を 参照してください。 ステップに関するメタデータをインポートしている場合は、複数のファイルを ステップに関連付けることができます。ステップに関するメタデータは XML フ ァイルに保管されますが、ステップは BLOB として保管された関連データを持 っている場合があります。BLOB メタデータは XML ファイルと同じファイル名 を持っていますが、これは番号の拡張子の付いた個別のファイルです。関連ス テップ・ファイルはすべて、インポート時には同じディレクトリーになければ なりません。 テストまたは実動モード時のステップの更新 データウェアハウス・センターがステップのメタデータを更新するためには、 ステップが開発モードになければなりません。ステップがテストまたは実動モ ードにある場合は、メタデータをインポートする前にステップを開発モードに デモートしてください。 1. データウェアハウス・センターにログオンします。 2. デモートしたいステップを右クリックし、「モード」をクリックします。 3. 「開発」をクリックします。 これでステップが開発モードになります。メタデータのインポート後、ステッ プをテストまたは実動モードに戻してください。 データウェアハウス・センターからのデータのインポート メタデータをデータウェアハウス・センターからインポートすることができま す。 1. データウェアハウス・センターにログオンします。 2. 左のペインで「ウェアハウス」をクリックします。 3. 「選択」->「メタデータのインポート」->「ファイルの交換」をクリックし ます。 4. 「メタデータのインポート」ウィンドウで、インポートしたいメタデータを 含むファイル名を指定します。ファイル名を入力するか、またはファイルを ブラウズして探すことができます。 * 場所が分かっている場合は、インポートしたいファイルの完全修飾パス とファイル名を入力します。メタデータを XML 形式でインポートしたい ことを指定するために、必ず .xml ファイル拡張子を指定してくださ い。指定しない場合は、ファイルが正しく処理されません。 * ファイルをブラウズするには、以下を行います。 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 になります。 このパラメータ | ーはオプションです。 インポート・ユーティリティー実行後のメタデータの更新 インポート後のセキュリティーの更新 セキュリティー上の観点から、データウェアハウス・センターはパスワードを インポートまたはエクスポートしません。新しいオブジェクトに対して、必要 に応じてパスワードを更新する必要があります。インポートの考慮事項につい て詳しくは、「データウェアハウスセンター 管理の手引き」、第 12 章、「デ ータウェアハウス・センター・メタデータのエクスポートおよびインポート」 を参照してください。 メタデータをインポートすると、すべてのオブジェクトがデフォルト・セキュ リティー・グループ に割り当てられます。オブジェクトに対してアクセス権を 持つグループを変更することができます。 1. データウェアハウス・センターにログオンします。 2. 変更したいオブジェクトを含むフォルダーを右クリックします。 3. 「プロパティー」をクリックし、次に「セキュリティー」タブをクリックし ます。 4. 「選択ウェアハウス・グループ」リストからグループを除去するか、または 使用可能ウェアハウス・グループ」リストからグループを追加します。 5. 「了解」をクリックします。 メタデータのエクスポート メタデータは、データウェアハウス・センターから、またはコマンド行からエ クスポートすることができます。 一部のステップは、BLOB として保管されたメタデータを持っています。 BLOB メタデータは、ステップの XML と同じファイル名を持つ個別のファイルにエク スポートされますが、拡張子には番号が付けられます (.1、.2、以下同様)。 データウェアハウス・センターからのデータのエクスポート メタデータをデータウェアハウス・センターからエクスポートすることができ ます。 1. データウェアハウス・センターにログオンします。 2. 左のペインで「ウェアハウス」をクリックします。 3. 「選択」->「メタデータのエクスポート」->「ファイルの交換」をクリック します。 4. 「メタデータのエクスポート」ウィンドウで、エクスポートしたいメタデー タを含むファイル名を指定します。ファイル名を入力するか、またはファイ ルをブラウズして探すことができます。 * 使用したいファイルの完全修飾パスとファイル名が分かっている場合は、 「ファイル名」入力フィールドに入力します。メタデータを XML 形式で エクスポートしたいことを指定するために、必ず .xml ファイル拡張子 を指定してください。 * ファイルをブラウズするには、以下を行います。 a. 省略符号 (...) プッシュボタンをクリックします。 b. 「ファイル」ウィンドウで、 ファイルの種類を XML に変更します。 c. 正しいディレクトリーに変更し、エクスポートしたいファイルを選択 します。 注: 選択した既存ファイルは、いずれもエクスポートされるメタデー タで上書きされます。 d. 「了解」をクリックします。 5. 「メタデータのエクスポート」ウィンドウに正しいファイル名が表示された ら、「使用可能オブジェクト」リストでエクスポートしたいメタデータを持 つオブジェクトをクリックします。 6. > 記号をクリックして、選択したオブジェクトを「使用可能オブジェクト」 リストから「選択オブジェクト」リストへ移動します。エクスポートしたい オブジェクトがすべて選択オブジェクト」リストにリストされるまで、上記 を繰り返してください。 7. 「了解」をクリックします。 データウェアハウス・センターは、エクスポートすることを選択したデータウ ェアハウス・センター・オブジェクトに関する情報を含む 入力 ファイルを作 成し、次にこれらのオブジェクトに関するメタデータをエクスポートします。 データウェアハウス・センターがファイルをエクスポートしている間、進行ウ ィンドウが表示されます。 コマンド行を使用してメタデータをエクスポート メタデータをコマンド行からエクスポートするには、まず 入力 ファイルを作 成しておかなければなりません。入力ファイルは拡張子が .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 になり | ます。 このパラメーターはオプシ | ョンです。 タグ言語メタデータ・インポート/エクスポート・ユーティリティー キー定義 タグ言語ファイルで定義された 1 次キーおよび外部キーは、コントロール・デ ータベースですでに定義されたキーと同じであれば無視されます。キーがすで に定義されたものと異なる場合は、エラーが発生します。 ステップおよび処理のスケジュール ステップおよび処理がインポート・ユーティリティーによって削除されること はなくなりました。タグ・ファイルで定義されたスケジュールがスケジュール の現行リストに追加されるようになりました。これによって重複スケジュール が表示される場合があります。重複スケジュールは、ステップが実動モードに プロモートされる前にユーザーが削除する必要があります。 SAP ステップ情報 論理的に矛盾する表が作成される可能がある 次の条件がすべて満たされた場合、論理的に整合性が保たれていないターゲッ ト表が作成される可能性があります。 1. BO に GetList および GetDetail エクスポート・パラメーターがあり、す べてのキー・フィールドをマップしている。 2. SAP ステップの「プロパティー」ノートブックの「出力パラメーター」ペー ジ上で、パラメーター・マッピングに使用された SAP パラメーター名と異 なるパラメーター名の GetList エクスポート・パラメーターを選択してい る。 注: 「SAP パラメーター名」とは、完全修飾名のピリオドの前に表示され る、パラメーターの一部を指します。例えば、DocList.DOCNUMBER パ ラメーターの場合、"DocList" が SAP パラメーター名です。 3. SAP ステップの「プロパティー」ノートブックの「出力パラメーター」ペー ジで、 GetDetail エクスポート・パラメーターを選択している。 例: DocumentNumber はキー・フィールドです。DocList.DOCNUMBER および DocNumberSelection.OPTION は GetList エクスポート・パラメーターです。 DocData.USERNAME は GetDetail エクスポート・パラメーターです。 DocumentNumber を DocList.DOCNUMBER にマップします。(条件 1) 出力パラメーターとして DocNumberSelection.OPTION を選択します。 (DocNumberSelection と DocList は異なる SAP パラメーター名なので、条件 2 に該当します。) 出力パラメーターとして DocData.USERNAME を選択します。(これは GetDetail エクスポート・パラメーターなので、条件 3 に該当します。) これらの条件より、列のソースが GetList および GetDetail パラメーターで あるターゲット表が作成されます。ただし、列間の関連の論理的な整合性は保 証されません。 SAP コネクター情報 SAP コネクター・インストール上の制約事項 SAP コネクターは、SAP R/3 システムの英語のインストールのみをサポートし ています。 GetDetail BAPI のパフォーマンス GetDetail が大量の入力パラメーターを持っていれば、GetDetail BAPI のパフ ォーマンスは低くなります。 Web コネクター情報 サポートされている WebSphere Site Analyzer のバージョン Web コネクターは、WebSphere Site Analyzer バージョン 4.0 のみをサポート しています。現時点では、バージョン 4.1 はサポートしていません。 DB2 OLAP スターター・キット IBM DB2 OLAP スターター・キットを使用すれば、特定のオペレーティング・シ ステム・プラットフォームでの Oracle、MS-SQL、Sybase、および Informix リ レーショナル・データベース管理システム (RDBMS) の サポートが追加されま す。バージョン 7.2 には、DB2 をはじめ、サポートされるすべての RDBMS の スクリプトおよびツールが含まれます。制限事項があります。詳細について は、"既知の問題および制限事項"を参照してください。 DB2 ユニバーサル・データベース・バージョン 7.2 の DB2 OLAP スターター・ キットのサービス・レベルは、Hyperion Essbase 6.1 のパッチ 2 と Hyperion Integration Server 2.0 のパッチ 2 と同じです。 OLAP Server Web サイト DB2 OLAP スターター・キットの最新のインストールおよび使用上のヒントにつ いては、 DB2 OLAP Server Web サイトのライブラリー・ページを参照してくだ さい。 http://www.ibm.com/software/data/db2/db2olap/library.html サポートされるオペレーティング・システム・サービス・レベル 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 で起動します。 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 Solaris オペレーティング環境用の追加構成 Solaris オペレーティング環境では、OLAP スターター・キットが適切な ODBC ドライバーにリンクしていなければ、エラーが発生する場合があります。 この ようなエラーを回避するには、次のコマンドを実行します。このコマンドは、 $ARBORPATH/bin にリンクを作成して、OLAP ドライバー sqllib/lib/libdb2.so を指します。 ln -s $HOME/sqllib/lib/libdb2.so libodbcinst.so すべてのオペレーティング・システム用の追加構成 DB2 ユニバーサル・データベース、バージョン 7 のフィックスパック 3 から は、DB2 OLAP スターター・キットに、Java を必要とする機能が含まれるよう になりました。フィックスパック 3 以降をインストールすると、OLAP サーバ ー・コンソールに次のようなエラー・メッセージが表示される場合がありま す。 Can not find [directory] [/export/home/arbor7sk/sqllib/essbase/java/], required to load JVM. このエラーを訂正するには、次のステップを実行します。 1. DB2 インスタンス所有者としてログオンする。 2. DB2 OLAP スターター・キットをインストールしたディレクトリーを検索す る。 このディレクトリーのデフォルト名は、essbase です。 3. essbase ディレクトリーに java という名のサブディレクトリーを作成す る。 4. java サブディレクトリーに次の空ファイルを作成する。 * essbase.jar * essdefs.dtd * jaxp.jar * parser.jar * udf.policy ODBC を OLAP スターター・キット用に構成 IBM DB2 OLAP スターター・キット 7.2 は、OLAP Integration Server からリ レーショナル・データ・ソースおよび OLAP メタデータ・カタログへの 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/ を参照してください。 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 V4.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 V4.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 V4.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 ドライバー。 UNIX システム上でのデータ・ソースの構成 AIX および Solaris システムでは、環境変数を ODBC 用に手動で設定し、 odbc.ini ファイルを編集して、リレーショナル・データ・ソースおよび OLAP メタデータ・カタログを構成する必要があります。新規にドライバーまたはデ ータ・ソースを追加する場合、あるいはドライバーまたはデータ・ソースを変 更する場合は、 odbc.ini ファイルを必ず編集してください。 AIX または Solaris システム上で DB2 OLAP スターター・キットを使用して、 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 Solaris オペレーティング環境: ドライバー名は、/opt/IBMdb2/V7.1/lib/ libdb2_36.so Solaris オペレーティング環境用サンプル ODBC ソース項目: [SAMPLE] Driver=/opt/IBMdb2/V7.1/lib/libdb2_36.so Description=DB2 ODBC Database Database=SAMPLE 環境変数の構成 UNIX システムでは、環境変数を設定して、ODBC コア・コンポーネントへのア クセスを可能にする必要があります。必須変数を設定する is.sh および is.csh シェル・スクリプトがスターター・キット・ホーム・ディレクトリーにありま す。ODBC データ・ソースに接続する前に、これらのスクリプトの 1 つを実行 しなければなりません。OLAP スターター・キットの実行に使用するユーザー名 のログイン・スクリプトに、これらのスクリプトを組み込んでください。 odbc.ini ファイルの編集 odbc.ini ファイルでデータ・ソースを構成するには、ODBC データ・ソースの 名前と記述を追加し、またデータ・ソース名のために作成する別のセクション では、ODBC ドライバー・パス、ファイル名、およびその他のドライバー設定値 を入力する必要があります。インストール・プログラムは、サンプルの odbc.ini ファイルを ISHOME ディレクトリーにインストールします。このファ イルには、サポートされている ODBC ドライバーに関する汎用の ODBC 接続お よび構成情報が含まれています。リレーショナル・データ・ソースおよび OLAP メタデータ・カタログに対して、使用する ODBC ドライバーをマップするため の開始点としてこのファイルを使用してください。 odbc.ini ファイル以外のファイルを使用する場合は、使用するファイルの名前 に ODBCINI 環境変数を必ず設定してください。 データ・ソースの 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 の編集を終了したら、ファイルを保存し、テキスト・エディター を終了させます。 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 Oracle の ODBC 設定の例 次の例で、odbc.ini を編集して、MERANT バージョン 3.6 ODBC ドライバーを 使い、Oracle バージョン 8 (Solaris オペレーティング環境) のリレーショナ ル・データ・ソース oradata に接続する方法を説明します。この例では、 LogonID および Password は、 OLAP スターター・キットのユーザー名および パスワードで使用する実際の値でオーバーライドされます。 [ODBC Data Sources] oradata=Oracle8 Source Data on Solaris ... [myoracle] Driver= /export/home/users/dkendric/is200/odbclib/ARor815.so Description=my oracle source UNIX システムでの OLAP メタデータ・カタログの構成 AIX および Solaris システムでの OLAP メタデータ・カタログの構成は、デー タ・ソースの構成と類似しています。OLAP メタデータ・カタログ・データベー スの場合、"odbc.ini ファイルの編集"に記載されているように、データ・ソー スの名前とセクションを odbc.ini ファイルに追加します。そのほかに必要な 変更はありません。 OLAP メタデータ・カタログ・データベースを ODBC データ・ソースとして構成 する前に、サポートされている RDBMS にそれを作成する必要があります。 次の例で、odbc.ini を編集して、固有の ODBC ドライバーを使用し、DB2 バー ジョン 6.1 (Solaris オペレーティング環境) の OLAP メタデータ・カタログ TBC_MD に接続する方法を説明します。 [ODBC Data Sources] ocd6a5a=db2 v6 ... [ocd6a5a] Driver=/home/db2instl/sqllib/lib/db2.0 Description=db2 Windows システムでのデータ・ソースの構成 Windows NT または Windows 2000 システムで リレーショナル・データ・ソー スを構成するには、ODBC Administrator を実行してから、OLAP モデルおよび メタアウトラインの作成に使用するデータ・ソースとの接続を作成する必要が あります。Windows コントロール・パネルから ODBC Administrator ユーティ リティーを実行します。次の例で DB2 データ・ソースを作成します。ほかの RDBMS のダイアログ・ボックスは異なることがあります。 ODBC Administrator でリレーショナル・データ・ソースを構成するには、以下 のステップを実行します。 1. Windows デスクトップで、「コントロール・パネル」ウィンドウを開く。 2. 「コントロール・パネル」ウィンドウで、以下のステップの 1 つを実行す る。 a. Windows NT で、ODBC アイコンをダブルクリックし、「ODBC データ・ソ ース・アドミニストレーター」ダイアログ・ボックスを開く。 b. Windows 2000 で、「管理ツール」アイコンをダブルクリックしてから、 データ・ソース (ODBC)」アイコンをダブルクリックし、「ODBC デー タ・ソース・アドミニストレーター」ダイアログ・ボックスを開く。 3. 「ODBC データ・ソース・アドミニストレーター」ダイアログ・ボックスで、 「システム DSN」タブをクリックする。 4. 「追加」をクリックして、「データ・ソースの新規作成」ダイアログ・ボッ クスを開く。 5. ODBC Administrator の「データ・ソースの新規作成」ダイアログ・ボック スで、 IBM DB2 ODBC Driver などの適切なドライバーを選択し、「完了」 をクリックして、「ODBC IBM DB2 ドライバー - 追加」ダイアログ・ボック スを開く。 6. 「ODBC IBM DB2 ドライバー - 追加」ダイアログ・ボックスの「データベー ス別名」ドロップダウン・リストで、適切なリレーショナル・ソース・デー タのデータベースの名前 (例えば、サンプル・アプリケーションの TBC) を 選択する。 7. 「説明」テキスト・ボックスで、このドライバーの使用方法を示す任意の説 明を入力し、追加」をクリックする。例えば、My Business データベースを 示すには次のような説明を入力します。 Customers, products, markets 次のように入力して、サンプル・アプリケーション・データベースを示すこ とができます。 Sample relational data source 説明は、「OLAP Starter Kit Desktop」から接続するときに選択できるデ ータ・ソースを特定するのに役立ちます。 8. 「了解」をクリックし、「ODBC データ・ソース・アドミニストレーター」 ダイアログ・ボックスに戻る。入力したデータ・ソース名およびデータ・ソ ース名にマップしたドライバーが「システム DSN」タブの「システム・デー タ・ソース」リスト・ボックスに表示されます。 データ・ソースの構成情報を編集するには、以下の通りにします。 1. データ・ソース名を選択し、「構成」をクリックして、「ODBC IBM DB2 - 追加」ダイアログ・ボックスを開く。 2. 変更したい情報を訂正する。 3. 「了解」を 2 回クリックし、終了する。 Windows システムでの OLAP メタデータ・カタログの構成 Windows NT または Windows 2000 で OLAP メタデータ・カタログを構成するに は、 ODBC Administrator を実行してから、OLAP メタデータ・カタログ・デー タベースが含まれるデータ・ソースとの接続を作成します。 次の例で DB2 データ・ソースを作成します。ほかの RDBMS のダイアログ・ボ ックスは異なることがあります。OLAP メタデータ・カタログのデータ・ソース を作成するには、次のステップを実行します。 1. デスクトップで、「コントロール・パネル」ウィンドウを開く。 2. 「コントロール・パネル」ウィンドウで、以下のステップの 1 つを実行す る。 a. Windows NT で、「ODBC」アイコンをダブルクリックし、「ODBC デー タ・ソース・アドミニストレーター」ダイアログ・ボックスを開く。 b. Windows 2000 で、「管理ツール」アイコンをダブルクリックしてから、 データ・ソース (ODBC)」アイコンをダブルクリックし、「ODBC デー タ・ソース・アドミニストレーター」ダイアログ・ボックスを開く。 3. 「ODBC データ・ソース・アドミニストレーター」ダイアログ・ボックスで、 「システム DSN」タブをクリックする。 4. 「追加」をクリックして、「データ・ソースの新規作成」ダイアログ・ボッ クスを開く。 5. ODBC Administrator の「データ・ソースの新規作成」ダイアログ・ボック スで、 IBM DB2 ODBC Driver などの適切なドライバーを選択し、「完了」 をクリックして、「ODBC IBM DB2 ドライバー - 追加」ダイアログ・ボック スを開く。 6. 「データベース別名」ドロップダウン・リストの、「ODBC IBM DB2 ドライ バー - 追加」ダイアログ・ボックスで、適切な OLAP メタデータ・カタロ グのデータベースの名前 (例えば、サンプル・アプリケーションの TBC_MD) を選択する。選択したデータベースの名前は、「データ・ソース名」テキス ト・ボックスに自動的に表示されます。 7. データ・ソースの名前を変更したいときには、「データ・ソース名」テキス ト・ボックスに表示されている名前を選択して、このドライバーの使用方法 を示す名前を入力し、「追加」をクリックする。例えば、次のような名前を 入力すれば、最初の OLAP メタデータ・カタログに接続するためにそのドラ イバーを使用していることを示せるでしょう。 OLAP Catalog first サンプル・アプリケーション OLAP メタデータ・カタログのデータベースに 接続していることを示すには、次の名前を入力すればよいでしょう。 TBC_MD 8. 「説明」テキスト・ボックスで、このドライバーの使用方法を示す説明を入 力する。例えば、OLAP メタデータ・カタログを説明するには、次のような 記述を入力します。 My first models and metaoutlines 次のような説明を入力すれば、サンプル・アプリケーション OLAP メタデー タ・カタログ・データベースを記述できるでしょう。 Sample models and metaoutlines 上記のような説明は、OLAP スターター・キット・デスクトップから OLAP メタデータ・カタログに接続するときに選択する対象のカタログを特定する ヒントとなります。 9. 「了解」をクリックし、「ODBC データ・ソース・アドミニストレーター」 ダイアログ・ボックスに戻る。入力したデータ・ソース名およびデータ・ソ ース名にマップしたドライバーが「システム DSN」タブの「システム・デー タ・ソース」リスト・ボックスに表示されます。 データ・ソースの構成情報を編集するには、以下の通りにします。 1. データ・ソース名を選択し、「構成」をクリックして、「ODBC IBM DB2 - 追加」ダイアログ・ボックスを開く。 2. 変更したい情報を訂正する。 3. 「了解」を 2 回クリックし、終了する。 データ・ソースを構成したら リレーショナル・データ・ソースおよび OLAP メタデータ・カタログの構成が 完了すると、 OLAP スターター・キットから接続することができます。次に、 OLAP モデルおよびメタアウトラインの作成、変更、および保存を行うことがで きます。 SQL サーバー ODBC ドライバーは、SQL サーバー・データベースを呼び出す間 にタイムアウトになる可能性があります。データベースが使用中でないときに 再試行してください。ドライバー・タイムアウト期間を長くすれば、この問題 を回避できる場合があります。詳しくは、ご使用のドライバーの ODBC 文書を 参照してください。 ODBC 接続の問題およびソリューションの詳細については、「OLAP Integration Server System Administrator's Guide」を参照してください。 OLAP スターター・キット・デスクトップからのログイン OLAP スターター・キット・デスクトップを使用して 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 は、このユーザー名とパスワー ドをホスト・オペレーティング・システムとは別に管理します。 スターター・キットのログインの例 以下の例は、OLAP サンプルを作成済みで、OLAP スターター・キットのインス トール中に管理者ユーザー ID として db2admin を、管理者パスワードとして password を選択したと想定しています。 * OLAP Integration Server の場合: サーバーは localhost、 OLAP メタデ ータ・カタログは TBC_MD、ユーザー名は db2admin、パスワードは password です。 * DB2 OLAP Server の場合: サーバーは localhost、ユーザー名は db2admin です。 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. TBC_MD、TBC、および OLAP_CAT 用の ODBC を構成します。 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 データベースに対して繰り返し ます。 アプリケーションを OLAP スターター・キット・バージョン 7.2 に移行 インストール・プログラムは、OLAP スターター・キットのサンプル・アプリケ ーション、データベース、およびデータ・ファイルを再インストールしませ ん。既存のアプリケーションやデータベースは何の影響も受けません。ただ し、インストールを行う前に、アプリケーションやデータベースのバックアッ プを忘れずに行ってください。 アプリケーションを開くと、アプリケーションは自動的に バージョン 7.2 に 移行されます。 既知の問題および制限事項 このセクションでは、DB2 OLAP スターター・キットでの既知の制限事項をリス トします。 Windows プラットフォームでの Informix RDBMS と Merant ドライバーの互換性 Windows プラットフォーム用の Merant ドライバーを Informix RDBMS で動作させるには、以下の 2 行を PATH ステートメントに追加する 必要があります。 * C:\Informix * 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 ドライバーを使用 するには、以下のいずれかを実行する必要があります。 * スターター・キットを起動する前に、LANG 環境変数を "en_US" に 設定する。例えば、Korn シェルの場合、次のように入力します。 export LANG='en_US' OLAP スターター・キットを起動するたびに、この変数を設定し ます。 * 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 はサポートしません。一部の環境で は上記のコンポーネントを混合して使用しても動作します が、機構的に違いがあるために問題が発生する可能性があ ります。 OLAP スプレッドシート・アドイン EQD ファイルの欠落 DB2 OLAP スターター・キットでは、スプレッドシート・アドインは Query Designer (EQD) と呼ばれるコンポーネントを持っています。 チュートリアル と呼ばれるボタンを含む EQD のオンライン・ヘルプ・メニューはどれも表示し ません。 EQD チュートリアルで表示される資料は「OLAP スプレッドシート・ アドイン使用者の手引き (Excel 版)」、および「OLAP スプレッドシート・ア ドイン使用者の手引き (1-2-3 版)」の第 2 章のサブセットです。EQD チュー トリアルのすべての情報は インフォメーション・センターのブックの HTML バ ージョンおよび PDF バージョンで使用可能です。 情報カタログ・マネージャー管理の手引き 情報カタログ・マネージャー初期設定ユーティリティー 情報カタログ・マネージャー (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 ステートメントに付加しま す。 表 9. SQL ステートメント +-------------------------+-------------------------------------------+ | IN MYTABLESPACE | MYTABLESPACE のデータを持つ表を作成します | +-------------------------+-------------------------------------------+ | DATA CAPTURE CHANGES | 表を作成して、SQL の変更を拡張形式でログ | | | に記録します | +-------------------------+-------------------------------------------+ | IN ACCOUNTING INDEX IN | ACCOUNTING 内のデータおよび ACCOUNT_IDX | | ACCOUNT_IDX | 内の索引を持つ表を作成します | +-------------------------+-------------------------------------------+ コンテンツ・ファイルの最大サイズは 1 バイト文字にして 1000 文字です。 この新しい機能は Windows および UNIX システムでのみ使用可能です。 ライセンス交付の問題 以下のメッセージを受け取った場合は、ソフトウェア販売店あるいは IBM に連 絡してください。 FLG0083E: You do not have a valid license for the IBM Information Catalog Manager Initialization utility. DB2 ウェアハウス・マネージャーあるいは IBM DB2 OLAP Server を購入して、 情報カタログ・マネージャー・コンポーネントをインストールする必要があり ます。それは情報カタログ・マネージャー初期設定ユーティリティーを含んで います。 インストールの問題 DB2 ウェアハウス・マネージャーあるいは IBM DB2 OLAP Server をインストー ルする場合、また同じワークステーションに別の情報カタログ・マネージャー 管理者コンポーネント (DB2 ユニバーサル・データベース CD-ROM を使用) を インストールする場合は、情報カタログ初期設定ユーティリティーを上書きす る必要があります。この場合、 \sqllib\bin ディレクトリーから、ファイル createic.bak および flgnmwcr.bak を検出し、createic.exe および flgnmwcr.exe におのおのリネームします。 DB2 ユニバーサル・データベースから追加情報カタログ・マネージャーのコン ポーネントをインストールする場合、そのコンポーネントはデータウェアハウ ス・マネージャーをインストールしたワークステーションとは別のワークステ ーションである必要があります。詳しくは、「DB2 ウェアハウス・マネージャー インストールの手引き」の『第 3 章 情報カタログ・マネージャー・コンポー ネントのインストール』を参照してください。 情報カタログ・マネージャーの機能強化 情報カタログ・マネージャーには、次の機能強化が含まれています。 ICM では、ソースまたはターゲット・データベース、表または列用の ETI フィ ルター情報のインポートがサポートされるようになりました。 ウェアハウスへ の登録時に、フィルター情報を保管するために、新しい ICM オブジェクト・タ イプ、ETI 変換データが使用されます。これによって、これらのオブジェクト は、ソースまたはターゲット・データベース、あるいはそれが定義された表ま たは列にリンクされます。 ICM は、異なる ETI 変換を同じ ICM カタログに登録した結果、特定のソース またはターゲット・データベース、表または列を複数の ETI 変換データ・オブ ジェクトにリンクできます。 異なる ETI 変換を同じ ICM カタログに登録した結果、特定のターゲット列が 複数のトランスフォーメーションを収容できるようになったので、同じ機能が トランスフォーメーションにも適用されます。 このために、ICM は、ETI* Extract マッピングをインポートする際にトランスフォーメーションに変更を 加えます。 これらのフィーチャーを使用可能にするには、ETI*Extract 4.2.1 を MetaScheduler 4.1.0 と併用してデータウェアハウス・マネージャーに登録し ます。これらのフィーチャーを使用可能にする際の詳細については、DB2 ウェ アハウス・マネージャーの「ヒント」のセクション ( http://www.ibm.com/software/data/db2/datawarehouse/support.html) を参照 してください。キーワード「ETI」または「アプリケーション・データ」で検索 します。 情報カタログ・マネージャーと 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 環境パラメーターを除去すると、以下の機能は使用できなくなります。 * 情報カタログ・ユーザー * 情報カタログ・アドミニストレーター * 情報カタログ・マネージャー LC_ALL パラメーターの除去により、ICM 以外の機能が影響を受けることはあ りません。 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 を参照してください。 情報カタログのセットアップ 第 1 章の最初のセクションにあるステップ 2「情報カタログの設定」には次の 記述があります。 When you install either the DB2 Warehouse Manager or the DB2 OLAP Server, a default information catalog is created on DB2 Universal Database for Windows NT. この記述は誤りです。新規情報カタログを定義する必要があります。詳しく は、『情報カタログの作成』セクションを参照してください。 別の製品とのメタデータの交換 第 6 章『別の製品とのメタデータの交換』の『発行する OLAP オブジェクトの 識別』セクションの 2 番目の段落に、次の記述があります。 When you publish DB2 OLAP Integration Server metadata, a linked relationship is created between an information catalog "dimensions within a multi-dimensional database" object type and a table object in the OLAP Integration Server. これを次のように訂正します。 When you publish DB2 OLAP Integration Server metadata, a linked relationship is created between an information catalog "dimensions within a multi-dimensional database object and a table object". この記述は、付録 C『メタデータ・マッピング』の『情報カタログ・マネージ ャーおよび OLAP Server 間のメタデータ・マッピング』セクションにもありま す。 flgnxoln コマンドでのメタデータの交換 第 6 章『メタデータの交換』に『発行する OLAP オブジェクトの識別』という セクションがあります。このセクションの終わりに、flgnxoln コマンドを使用 して OLAP Server メタデータを情報カタログに発行する例があります。この例 の誤りは、db2olap.ctl および db2olap.ff ファイル用ディレクトリーを x:\Program Files\sqllib\logging として表示されている点です。正しいディ レクトリー名は 87 ページの記述のとおり、x:\Program Files\sqllib\exchange です。 MDISDGC コマンドでのメタデータの交換 第 6 章『別の製品とのメタデータの交換』の『タグ言語ファイルで MDIS 規格 合致メタデータの変換』(97 ページ)。 MS-DOS コマンド・プロンプトから MDISDGC コマンドを実行できません。 DB2 コマンド・ウィンドウから MDISDGC コマンドを実行する必要があります。セクションの最初の文、「MDIS 規格合致 メタデータのタグ言語ファイルの変換」も同様に MS-DOS コマンド・プロンプ トから DGMDISC コマンドを実行する必要があると書かれています。 DB2 コマ ンド・ウィンドウから DGMDISC コマンドを実行する必要があります。 プログラムの呼び出し 「情報カタログ 管理の手引き」の例には、ディレクトリー名 Program Files が含まれるコマンドを示すものがあります。パス名の一部として、Program Files が含まれるプログラムを呼び出す時、プログラム呼び出しを二重引用符 で囲む必要があります。付録 B『事前定義の情報カタログ・マネージャーのオ ブジェクト・タイプ』の、『事前定義のオブジェクト・タイプで情報カタログ を初期化する』セクションに、この例が含まれています。このセクションの例 を使用すると、 DOS プロンプトからこれを実行する場合に、次のエラーを受け 取ります。次の例が正しいです。 "X:Program Files\SQLLIB\SAMPLES\SAMPDATA\DGWDEMO" /T userid password dgname 情報カタログ・マネージャー・プログラミングの手引きおよび解説書 情報カタログ・マネージャー理由コード 付録 D: 情報カタログ・マネージャー理由コードについて、いくつかのテキス トが以下の理由コードで極右の列が切り捨てられる可能性があります。 31014, 32727, 32728, 32729, 32730, 32735, 32736, 32737, 33000, 37507, 37511, 39206。テキストが切り捨てられた場合、完全な列を表示するブックの HTML バ ージョンを参照してください。 情報カタログ・マネージャー 使用者の手引き 第 2 章には、『サーバー・ノードおよびリモート情報カタログの登録』という セクションがあります。このセクションは、情報カタログ・マネージャーを使 用して、リモート情報カタログを登録する前に、DB2 コントロール・センター から完了することができる、ステップをリストしています。セクションの最後 の段落では、DB2 コントロール・センターからのステップ (システムの追加、 インスタンスの追加、およびデータベースの追加) が完了した後で、情報カタ ログ・マネージャーを開く前に、コントロール・センターをシャットダウンす る必要があるとなっています。これは誤りです。情報カタログ・マネージャー を開く前に、コントロール・センターをシャットダウンする必要はありませ ん。 同じ訂正が、オンライン・ヘルプのタスク「サーバー・ノードおよびリモート 情報カタログの登録」と、「サーバー・ノードおよび情報カタログ」ウィンド ウのオンライン・ヘルプにも該当します。 情報カタログ・マネージャー: オンライン・メッセージ FLG メッセージへの修正 メッセージ FLG0260E メッセージ説明の 2 番目の文を以下のように修正します。 The error caused a rollback of the information catalog, which failed. The information catalog is not in stable condition, but no changes were made. メッセージ FLG0051E メッセージ説明の 2 番目の中黒を以下のように修正します。 情報カタログに含まれているオブジェクトまたはオブジェクト・タイプが 多過ぎます。 管理者応答を以下のように修正します。 インポート機能を使用して、現在の情報カタログ・マネージャーから オブジェクトあるいはオブジェクト・タイプをいくつか削除してください。 メッセージ FLG0003E メッセージ説明を以下のように修正します。 情報カタログは、使用する前に登録されている必要があります。 情報カタログが正しく登録されていません。 メッセージ FLG0372E メッセージ説明の最初の文を以下のように修正します。 The ATTACHMENT-IND value was ignored for an object because that object is an Attachment object. メッセージ FLG0615E メッセージの 2 番目の文は次のように訂正します。 The Information Catalog Manager has encountered an unexpected database error or cannot find the bind file in the current directory or path. 情報カタログ・マネージャー: オンライン・ヘルプ 情報カタログ・ウィンドウ:誤った選択メニュー・オープン・アイテムのオンラ イン・ヘルプは「選択済みオブジェクトのオープン」となっています。それは 「定義検索ウィンドウのオープン」となります。 Web 用情報カタログ・マネージャー DB2 UDB (OS/390 版) システムの情報カタログを使用する場合、大文字小文字 を区別しない検索は利用できません。これは単純検索および拡張機能検索のど ちらにも当てはまります。 DB2 UDB (OS/390 版) のすべての検索が単純検索で 大文字小文字を区別するとはオンライン・ヘルプは明記していません。さら に、たとえ基礎オブジェクトがない場合でも、すべてのグループ区分されてい るオブジェクトは拡張可能です。 DB2 ウェアハウス・マネージャー インストールの手引き 入手可能な「DB2 ウェアハウス・マネージャー インストールの手引き」のアッ プデート版 「DB2 ウェアハウス・マネージャー インストールの手引き」は更新されてい て、最新の .pdf は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support からオンラ インでダウンロードできます。更新された資料は、すべて CD でも入手できま す。この CD は、PTF 番号 U478862 を使用して、サービスを介して注文できま す。これらの注釈の情報は、更新された解説書への追加情報です。 ウェアハウス・トランスフォーマーのソフトウェア要件 Java 開発者キット (JDK) バージョン 1.1.8 またはそれ以降を、ウェアハウ ス・トランスフォーマーを使用したいデータベースにインストールする必要が あります。 SAP R/3 用コネクター SAP R/3 ビジネス・オブジェクトのフィールドから DB2 表に列をマッピングす ると、生成された列名が 30 文字を超える場合があります。この場合、生成さ れた列名には、SAP フィールド名の最初の 30 文字のみが反映されます。生成 された名前が希望する名前と異なる場合、表の「プロパティー」ノートブック を使用して変更することができます。 インストール前提条件 SAP ソース・ページの宛先フィールドに値が指定されている場合は、RFC_INI 環境を設定します。 例えば、RFC_INI=c:\rfcapl.ini に設定します。この変数 を設定した後、マシンをリブートしなければなりません。 Web 用コネクター Web 用コネクターを実行中に問題があった場合、コネクターのトレースを送る よう IBM サービスが要求することがあります。 Web 用コネクターのトレースを可能にするには、ウェアハウス・センター・エ ージェント・トレースを 0 よりも大きいレベルに設定します。トレース・ファ イルの名前は WSApid.log (pid は エージェントの Windows プロセス ID) で す。トレース・ファイルは \sqllib\logging ディレクトリーに作成されます。 インストール前提条件 Java ランタイム環境 (JRE) または Java 仮想計算機 (JVM) バージョン 1.2.2 またはそれ以降をインストールし、デフォルトにします。この JRE のバージョ ンをデフォルトにするには、1.2.2 JRE パスをシステム PATH 変数に追加します (例えば、C:\JDKs\IBM\java12\bin;)。デフォルト JRE を変更した後、マシン をリブートしなければなりません。 Java をインストールしていない場合、デ ータウェアハウス・コネクター・インストール CD からインストールできます。 iSeries エージェントのポストインストールの考慮事項 第 4 章『AS/400 (iSeries) ウェアハウス・エージェントのインストール』の セクションの『ポストインストールの考慮事項』サブセクションで、最初の段 落を次のように変更します。 ウェアハウス・エージェントは、すべてのステップ機能を単一の作業単 位で実行します。V4R5 より前においては、DB2 ユニバーサル・データベ ース (iSeries 版) は単一コミット有効範囲内で挿入できる行数を 400 万に制限していました。この制限は V4R5 では 5 億行まで増やされまし た。V4R4 (またはこれ以前の) システムを使用していて、照会がこのサ イズを超える場合は、照会を分割するか、ウェアハウスが提供する FTP プログラムを使用してデータを移動してください。 iSeries ウェアハウス・エージェントでトランスフォーマーを使用する前に 第 4 章のセクション『iSeries エージェントでのトランスフォーマーの使用 前』と、そのすべてのサブセクションを除去します。 クエリー・パトローラー管理の手引き DB2 クエリー・パトローラー・クライアントの分離コンポーネント DB2 クエリー・パトローラー・クライアントは、DB2 管理クライアントの部品 ではない分離コンポーネントです。これは、「クエリー・パトローラー・イン ストールの手引き」に指示されているように、 DB2 管理クライアントのインス トール中にはインストールされないことを意味します。その代わり、クエリ ー・パトローラー・クライアントを別々にインストールする必要があります。 クエリー・パトローラー・クライアントとクエリー・パトローラー・サーバーの バージョンおよびレベルは同じでなければなりません。 ノード状況の変更 「クエリー・パトローラー管理の手引き」の『ノード管理』セクションで、以 下の内容が更新されました。 ノード状況を変更するには、以下の手順に従ってください。 1. 「ノード管理」ページで、「ノード」を選択します。 2. 「表示/編集」をクリックします。 「ノードの詳細情報」ウィンドウが開きます。 3. 「要求状況」フィールドで新規状況を選択します。 注: 要求状況 は、「ノードの詳細情報」ウィンドウの中で、変更可能な唯 一のフィールドです。その他のフィールドはすべて、DB2 クエリー・ パトローラーによって提供される値を表示しています。 4. 「OK」をクリックします。 以下のリストは、ノード・パラメーターごとの情報を提供します。 ノード ID ノードの ID を提供します。 ノード状況 現行ノード状況を含みます。 * 「アクティブ」は、ノードでジョブが実行可能であることを示し ます。 * 「非アクティブ」は、ノードの「DB2 クエリー・パトローラー」 コンポーネントがシャットダウンしていることを示します。ノー ドは DB2 クエリー・パトローラーで利用不能です。ノードを再び アクティブにするには、iwm 管理ユーザー・アカウントを使用して dqpstart コマンドを発行します。 * 「静止中」は、ノードが静止状態になろうとしていることを示し ます。実行中のジョブは完了しますが、ノードでスケジュールさ れる新規ジョブはありません。 * 「静止」は、ノードが静止していることを示します。ノードは DB2 クエリー・パトローラーで使用可能ですが、そのノードにスケジ ュールされている新規ジョブはありません。 要求状況 ノード状況が以下の状況に変更されることを示します。 * 「アクティブ」は、ノードがアクティブになることを示します。 * 「非アクティブ」は、ノードが非アクティブになることを示しま す。実行中のジョブは完了し、スケジュールされる新規ジョブは ありません。 * 「強制」は、ノードが即時に非アクティブになることを示しま す。実行中のジョブは即時に終了し、スケジュールされる新規ジ ョブはありません。 * 「静止」は、ノードが静止状態になることを示します。実行中の ジョブは完了します。 状況の最終変更日時 ノード状況の最終変更日時を示します。 スケジュールされたジョブ 実行がスケジュールされたジョブ数と、このノードで実行中のジョブ 数を提供します。 CPU 使用率 ノードの CPU 使用率をパーセント (0 - 100) で提供します。 CPU 使用率情報が収集されていない場合は、値は -1 です。 使用可能なディスク 結果が作成されるファイル・システム内の使用可能なバイト数を示し ます。ディスク使用率がモニターされていない場合は、値は -1 で す。 ノード・マネージャー PID ノード・マネージャー・プロセスのプロセス ID を示します。 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 照会管理の使用可能化 「照会管理の使用可能化」の『概説およびインストール』の章のテキストは、 以下の通りに修正します。 You must be the owner of the data base, or you must have SYSADM, SYSCTRL, or SYSMAINT authority to set database configuration parameters. 制御表の表スペースのロケーション 第 1 章『システム概説』の「DB2 クエリー・パトローラー制御表」で、次のテ キストをセクションの最初の段落の終わりに追加してください。 DB2 クエリー・パトローラー制御表の表スペースが単一ノードのノード・グル ープになければ、DB2 クエリー・パトローラーは正常に機能しません。 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 iwm_cmd コマンドの新しいパラメーター 新しい -v パラメーターが iwm_cmd コマンドに追加され、指定のノードで実行 されていたジョブの状況をリカバリーできるようになりました。非アクティ ブ・ノードのジョブのみリカバリー可能です。このコマンドは、ノード障害が あり、そのノードでジョブが実行されているか、またはその時点で取り消し中 のジョブがあるときに実行してください。「実行」状態だったジョブは再実行 依頼され、「キュー」状態に戻ります。「取り消し中」状態だったジョブは 「取り消し済み」状態に設定されます。 構文の一部は次の通りです。 >>-iwm_cmd--+-------------------------------+-------------------> '--u--user_id--+--------------+-' '--p--password-' >---v--node_id_to_recover-------------------------------------->< node_id_to_recover ジョブがリカバリーされるノードを指定します。 新しいレジストリー変数: DQP_RECOVERY_INTERVAL iwm_scheduler がリカバリー・ファイルを検索する間隔を分単位で設定するた めに使用される、 DQP_RECOVERY_INTERVAL という新しいレジストリー変数があ ります。デフォルトは 60 分です。 Query Administrator の開始 『DB2 クエリー・パトローラーを管理する QueryAdministrator の使用』の章 では、 Windows のスタート・メニューから QueryAdministrator の開始の手順 を提供しています。最初のステップは以下のテキストを提供します。 Windows を使用している場合、DB2 クエリー・パトローラー --> QueryAdministrator を IBM DB2 プログラム・グループから選択できます。 テキストは以下の通りに修正します。 DB2 クエリー・パトローラー --> QueryAdmin ユーザー管理 『DB2 クエリー・パトローラーを管理する QueryAdministrator の使用』の章 の『ユーザー管理』セクションでは、最大経過時間のパラメーター定義におい て、値が 0 あるいは -1 に設定されている場合、照会は常に完了まで実行する ことを示します。このパラメーターは負の値にセットできません。このテキス トは、「値が 0 にセットされた場合、照会は常に完了まで実行します。」に修 正します。 最大照会パラメーターは DB2 クエリー・パトローラーが同時に実行するジョブ の最大数を指定します。最大照会は 0 から 32767 の範囲の整数である必要が あります。 データ・ソース管理 第 3 章『DB2 クエリー・パトローラーを管理する Query Administrator の使 用』では、一部のデータ・ソース・パラメーターについての記述が変更または 追加されています。 静的コストは、照会の DB2 見積コスト (タイマーオン単位) です。このコスト は、各ジョブのジョブ入力に保管されます。これは、照会モニターを使用して ジョブの詳細を参照するときに「見積コスト」として示されます。 ゼロ・コスト照会は、ゼロの静的コスト、または見積コストによる照会です。 実際に見積コストがゼロの照会はありません (どんなに簡単な照会でも、コス トは 5 程度かかります)。むしろこれが発生するのは、ジョブを「コスト分析 を行なわない」オプションを指定して実行依頼した場合です。このオプション を選択できるのは、それが可能なようにユーザー・プロファイルをセットアッ プしておいた場合だけです。たいていの場合は、ユーザー・プロファイルをこ のようにはセットアップしません。このオプションの指定は、スーパーユーザ ー (他の管理者、選択した特別のユーザー、またはご自身など) 用にする必要 があります。そうすれば、これらのユーザーはどのような照会も実行できま す。これらのユーザーが出す照会はゼロ・コストとして扱われるため、照会の 優先順位は高くなります。 コスト時間ゼロ、コスト時間スロープ、コスト時間間隔、および最小コスト時 間はもう使用されません。 コスト係数は、タイマーオン単位の静的コストを変換するための乗数であり、 アカウンティング表の中のコストではありません。アカウンティング表の中の コストは、静的コストにコスト係数を乗じた値と等しくなります。 ジョブ・キューの作成 『DB2 クエリー・パトローラーを管理する QueryAdministrator の使用』の章の 『ジョブ・キュー管理』セクションでは、「ジョブ・キューの作成」ステップ の画面取りは第 2 ステップ後に表示されます。 QueryAdministrator ツールの ジョブ・キュー管理ページで、「新規」をクリックする場合、新しい「ジョ ブ・キュー」ウィンドウについての情報が開きます。 ジョブ・キュー・ページあるいはジョブ・キュー・タブを参照するには、それ ぞれジョブ・キュー管理ページあるいはジョブ・キュー管理タブを読んでくだ さい。 ジョブ・アカウンティング表 第 11 章『DB2 クエリー・パトローラー・システムのモニター』のジョブ・ア カウンティングのセクションにジョブ・アカウンティング表の列の説明があり ます。表名は IWM.IWM003_JOB_ACCT です。 コマンド行インターフェースの使用 DB2 クエリー・パトローラー・システムで照会を実行依頼および結果表を作成 するためのユーザー権限を持っている場合は、データベース上で CREATETAB 権 限が必要となります。DQP_RES_TBLSPC プロファイル変数が未設定の場合か、あ るいは DQP_RES_TBLSPC プロファイル変数がデフォルト表スペースの名前に設 定されている場合、ユーザーはデータベースの CREATETAB 権限を必要としませ ん。ユーザーはデフォルト表スペースに表を作成するための権限を持っている ので、この場合は結果表の作成は成功します。 クエリー・イネーブラー注意事項 * キーセット・カーソルを使用する第三者の照会ツールを使用する場合、照会 はインターセプトされません。クエリー・イネーブラーに対して照会をイン ターセプトするためには、以下を含めるために db2cli.ini ファイルを変更 する必要があります。 [common] DisableKeySetCursor=1 * AIX クライアントの場合、環境変数 LIBPATH がセットされないことを確認 してください。 JDK で出荷されているライブラリー libXext.a は、 /usr/lib/X11 サブディレクトリーのライブラリーと互換性がありません。 クエリー・イネーブラー GUI で問題が起こります。 ブランク列ページを返すことができる DB2 クエリー・パトローラー・トラッカ ー フィックスパック 3 には DB2 クエリー・パトローラー・トラッカーの修正が 含まれています。トラッカーは、列にヒットしない照会を正しくレポートしま す。このような照会の例としては、"SELECT COUNT(*) FROM ..." などがありま す。この種の照会は、表にあるいずれの列にもヒットしません。トラッカーは 列ページとしてブランク・ページを表示します。このブランク列ページは不良 とは見なされません。 DB2 クエリー・パトローラー・トラッカー GUI ツールの追加情報 アカウンティング表は、履歴ジョブ・データを表示または解析するのに使用す るとき、トラッカー・ツールによって使用されます。トラッカーを使用するに は、管理者は、まず最初に Query Administrator を使用して「システム管理」 パネルのアカウンティング状況を「表への書き込み」に変更する必要がありま す。これにより、ジョブ完了時には常に、追加の情報がジョブ・アカウンティ ング表に保管されます。 次に、管理者はクエリー・パトローラー・サーバーにユーザー iwm でログオン し、iwm_tracker (トラッカー・バックエンド) ツールを実行します。このツー ルは、システム負荷が低い時、またはトラッカー・ツールを使用する直前に、 定期的に実行する必要があります。 最後に、これらの 2 つのタスクが終了すると、トラッカー GUI ツールを実行 して、ジョブ・データの表示と解析が可能になります。 コスト係数がデフォルト値の場合は、トラッカーを使用する各ジョブについて 表示されるコストは、照会モニターを使用して表示されるコストと同じ値にな ります。どちらの場合も、時間はタイマーオン単位の表示です。 しかしながら、値を別の単位で表示したい場合があります。システム使用量を 各ユーザー別に請求するとします。例えば、課金が 10 000 作業タイマーオン について 1 ドルとすれば、コスト係数 0.0001 と入力します。これによりトラ ッカーは各ジョブの変換、保管、および表示のコストをドル単位で示します。 「Query Patroller Administration Guide」には、メガバイト単位のドルが記 載されていますが、これは誤りで、タイマーオン単位のドルに置き換える必要 があります。 クエリー・パトローラーおよびレプリケーション・ツール クエリー・パトローラー バージョン 7 はレプリケーション・ツール (asnapply、 asnccp、djra、および analyze) の照会をインターセプトし、こ れらのツールに誤動作を発生させます。この問題を回避するには、これらのツ ールを実行するときは動的照会管理を使用不可にします。 クエリー・パトローラーのパフォーマンス改善 次のテキストが、第 6 章『パフォーマンスの調整』の末尾に表示される必要が あります。 BIND オプション、INSERT BUF を使用して、DB2 クエリー・パトローラーのパ フォーマンスを改善する デフォルトでは、DB2 クエリー・パトローラーは管理する照会の結果を保管す るために、結果表を作成します。 これらの結果表への挿入のパフォーマンスを 改善するために、DB2 クエリー・パトローラー・バインド・ファイルのいずれ かをバインドする際に、INSERT BUF オプションを指定します。 次のようにして DB2 クエリー・パトローラー・バインド・ファイルをデータベ ースにバインドします。 Windows の DB2_RUNTIME\bnd ディレクトリーまたは、UNIX の DB2_RUNTIME/bnd パスから、次のコマンドを入力する。 db2 connect to database user iwm using password db2 bind @db2qp.lst blocking all grant public db2 bind iwmsx001.bnd insert buf db2 bind @db2qp_sp.lst db2 commit database は、DB2 クエリー・パトローラーによって管理される置き換えデー タベースであり、password は、管理ユーザー・アカウント iwm のパスワード です。 バージョン 6 で作成されたクエリー・パトローラー・ユーザー用の EXECUTE 特 権の消失 新規のストアード・プロシージャー (IWM.DQPGROUP、IWM.DQPVALUR、 IWM.DQPCALCT、および IWM.DQPINJOB) がクエリー・パトローラー バージョン 7 に追加されたため、バージョン 6 で作成された既存のユーザーは、このパッケ ージでの EXECUTE 権限を保持しません。この問題を自動的に訂正するアプリケ ーションが、フィックスパック 1 に追加されています。 DQP ユーザー情報を変更するために DQP Query Admin を使用しようとする場合 には、ユーザー・リストから既存のユーザーを除去しないようにしてくださ い。 クエリー・パトローラーの制約事項 JVM (Java 仮想計算機) のプラットフォーム制限により、照会イネーブラー は、HP-UX および NUMA-Q ではサポートされていません。また、クエリー・パ トローラー・トラッカーは NUMA-Q ではサポートされていません。クエリー・ パトローラー・クライアント・ツールのすべてが必要な場合、 HP-UX または NUMA-Q サーバーに対して、このツールを実行するには、Windows NT などの別 のプラットフォームを使用することをお勧めします。 付録 B. DB2 クエリー・パトローラー・クライアントのトラブルシューティング 付録 B『DB2 クエリー・パトローラー・クライアントのトラブルシューティン グ』の『照会イネーブラーの一般的な問題』セクションの問題 2 に記述されて いる最初の中黒のテキストを次のテキストに置き換えてください。 パス設定に jre が含まれていることを確認します。 第 VI 部 アプリケーション開発 管理 API 解説書 db2ArchiveLog (新規 API) db2ArchiveLog 回復可能データベースのアクティブ・ログ・ファイルをクローズして切 り捨てます。ユーザー出口が使用可能な場合にはアーカイブ要求を実行 します。 権限 以下のいずれかとなります。 * sysadm * sysctrl * sysmaint * dbadm 必要な接続 この API は、指定されたデータベースへの接続を自動的に確立します。 指定されたデータベースへの接続がすでに確立されている場合、 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; } db2ArchiveLogStruct 汎用 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; } db2ArchiveLogStruct API パラメーター version 入力。2 番目のパラメーターとして渡される変数 pDB2ArchiveLogStruct のバージョンおよびリリース・レベル を指定します。 pDB2ArchiveLogStruct 入力。db2ArchiveLogStruct 構造へのポインター。 pSqlca 出力。sqlca 構造へのポインター。 iAliasLen 入力。4 バイトの符号なし整数で、データベース別名の長さを バイト数で表します。 iUserNameLen ユーザー名の長さ (バイト単位) を表す 4 バイトの符号なし 整数。ユーザー名を使用しない場合は、0 に設定してくださ い。 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 入力。将来の使用のために予約されています。 db2ConvMonStream 使用上の注意の中で、スナップショット・データ・ストリーム・タイプの構造 は、 SQLM_ELM_SUBSECTION は sqlm_subsection である必要があります。 db2DatabasePing (新規 API) db2DatabasePing - データベースの Ping クライアントとデータベース・サーバーの間の基礎接続のネットワーク 応答時間をテストします。この API は、ホスト・データベース・サーバ ーが、直接またはゲートウェイ経由で DB2 コネクトからアクセスされる ときにアプリケーションによって使用されます。 権限 なし 必要な接続 データベース API 組み込みファイル 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 あるいはそれ以降に対して使用されます。 pParmStruct 入力。db2DatabasePingStruct 構造へのポインター。 iDbAliasLength 入力。データベース別名の長さを示します。 注: このパラメーターは現在使用されていません。将来の利 用のために予約してあります。 iDbAlias 入力。データベース別名を示します。 注: このパラメーターは現在使用されていません。将来の利 用のために予約してあります。 iNumIterations 入力。テスト要求反復数を示します。値は、 1 から 32767 ま でにしてください。 poElapsedTime 出力。エレメントの数が iNumIterations に等しい 32 ビット 配列へのポインターを示します。配列の各エレメントには、 1 つのテスト要求反復用に、マイクロ秒単位の経過時間が含まれ ます。 注: アプリケーションは、この API を呼び出す前に、この配 列へのメモリー割り振りについての責任を負います。 pSqlca 出力。sqlca 構造へのポインター。この構造体の詳細について は、管理 API 解説書」を参照してください。 使用上の注意 データベース接続は、この API を呼び出す前に存在している必要があり ます。存在していない場合、エラーが起きます。 この関数は、PING コマンドを使用して呼び出すこともできます。このコ マンドの説明については、コマンド解説書」をご覧ください。 db2HistData 以下の項目を表 11 に追加する必要があります。 db2HistData 構造のフィール ド: +-----------------------+----------------------+----------------------+ | フィールド名 | データ・タイプ | 記述 | +-----------------------+----------------------+----------------------+ | oOperation | char | 表 12 を参照。 | +-----------------------+----------------------+----------------------+ | oOptype | char | 表 13 を参照。 | +-----------------------+----------------------+----------------------+ 以下の表が表 11 の後に追加されます。 表 12。db2HistData 構造内の oOperation の有効なイベント値。 +----+-----------+----------------------------+-----------------------+ | 値 | 記述 | C 定義 | COBOL/FORTRAN 定義 | +----+-----------+----------------------------+-----------------------+ | A | 表ペース | DB2HISTORY_OP_ADD_TABLESPA | DB2HIST_OP_ADD_TABLES | | | の追加 | CE | PACE | +----+-----------+----------------------------+-----------------------+ | B | バックア | DB2HISTORY_OP_BACKUP | DB2HIST_OP_BACKUP | | | ップ | | | +----+-----------+----------------------------+-----------------------+ | C | ロード・ | DB2HISTORY_OP_LOAD_COPY | DB2HIST_OP_LOAD_COPY | | | コピー | | | +----+-----------+----------------------------+-----------------------+ | D | ドロップ | DB2HISTORY_OP_DROPPED_TABL | DB2HIST_OP_DROPPED_TA | | | された表 | E | BLE | +----+-----------+----------------------------+-----------------------+ | 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_TABLESPA | DB2HIST_OP_REN_TABLES | | | スの名前 | CE | PACE | | | 変更 | | | +----+-----------+----------------------------+-----------------------+ | O | 表スペー | DB2HISTORY_OP_DROP_TABLESP | DB2HIST_OP_DROP_TABLE | | | スのドロ | ACE | SPACE | | | ップ | | | +----+-----------+----------------------------+-----------------------+ | 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_TABLESPA | DB2HIST_OP_ALT_TBS | | | スの変更 | CE | | +----+-----------+----------------------------+-----------------------+ | U | アンロー | DB2HISTORY_OP_UNLOAD | DB2HIST_OP_UNLOAD | | | ド | | | +----+-----------+----------------------------+-----------------------+ 以下の表も追加されます。 表 13。db2HistData 構造内の有効な oOptype 値。 +--------+--------+--------------------+-----------------------------+ | oOpera | oOptyp | 記述 | C/COBOL/FORTRAN 定義 | | tion | e | | | +--------+--------+--------------------+-----------------------------+ | B | F | オフライン | DB2HISTORY_OPTYPE_OFFLINE | | |--------|--------------------|-----------------------------| | | N | オンライン | DB2HISTORY_OPTYPE_ONLINE | | |--------|--------------------|-----------------------------| | | I | 増分オフライン | DB2HISTORY_OPTYPE_INCR_OFFL | | | | | INE | | |--------|--------------------|-----------------------------| | | O | 増分オンライン | DB2HISTORY_OPTYPE_INCR_ONLI | | | | | NE | | |--------|--------------------|-----------------------------| | | D | 差分オフライン | DB2HISTORY_OPTYPE_DELTA_OFF | | | | | LINE | | |--------|--------------------|-----------------------------| | | E | 差分オンライン | DB2HISTORY_OPTYPE_DELTA_ONL | | | | | IN | +--------+--------+--------------------+-----------------------------+ | 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_OFFL | | | | | INE | | |--------|--------------------|-----------------------------| | | O | 増分オンライン | DB2HISTORY_OPTYPE_INCR_ONLI | | | | | NE | +--------+--------+--------------------+-----------------------------+ | T | C | コンテナーの追加 | DB2HISTORY_OPTYPE_ADD_CONT | | |--------|--------------------|-----------------------------| | | R | 再平衡 | DB2HISTORY_OPTYPE_REB | +--------+--------+--------------------+-----------------------------+ db2HistoryOpenScan 以下の値が iCallerAction パラメーターに追加されます。 DB2HISTORY_LIST_CRT_TABLESPACE 他のフィルターを通過する CREATE TABLESPACE および DROP TABLESPACE レコードのみを選択します。 db2Runstats db2Runstats API が統計を索引からのみ収集する場合は、それ以前に収集され た分散統計は保存されます。そうでない場合は、それ以前に収集された分散統 計は API によってドロップされます。 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; db2XaGetInfo (新規 API) db2XaGetInfo - リソース・マネージャー用情報の取得 一度 xa_open コールが行われていると、特定のリソース・マネージャー の情報を抽出します。 権限 なし 必要な接続 データベース API 組み込みファイル 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 のみ検索す ることができます。 db2XaListIndTrans (sqlxphqr に入れ替わる新規 API) db2XaListIndTrans - 未 確定トランザクションをリストする 現在接続されているデータベースの全未確定トランザクションのリストを 提供します。 有効範囲 この API は、発行されたノードにだけ影響します。 権限 以下のいずれかとなります。 * sysadm * dbadm 必要な接続 データベース API 組み込みファイル 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 - 未確定トランザクションのロールバック」があります。 ログ・レコード失念 以下の情報は、『MPP 従属ノードの準備』セクションの『付録 F』に追加され ます。 このログ・レコードは、未確定トランザクションのロールバック後、または 2 フェーズ・コミットのコミット後に書き込まれます。ログ・レコードは、トラ ンザクションの終わりにマークを付けるために書き込まれ、保持されているロ グ・リソースを解放します。トランザクションを失念するためには、トランザ クションがヒューリスティックに完了した状態になっている必要があります。 表 10. ログ・レコード失念の構造 +-----------------------+----------------------+----------------------+ | 記述 | タイプ | オフセット (バイト単 | | | | 位) | +-----------------------+----------------------+----------------------+ | ログ・ヘッダー | LogManagerLogRecordH | 0(20) | | | eader | | +-----------------------+----------------------+----------------------+ | 時刻 | sqluint64 | 20(8) | +---------------------------------------------------------------------+ | 全長: 28 バイト | +---------------------------------------------------------------------+ sqlaintp - エラー・メッセージの取得 以下の使用上の注意がこの API の説明に追加されます。 In a multi-threaded application, sqlaintp must be attached to a valid context; otherwise, the message text for SQLCODE -1445 cannot be obtained. sqlbctcq - 表スペース・コンテナー照会のクローズ ロードはこの API の有効な許可レベルではありません。 sqleseti - クライアント情報の設定 この API によって提供されるデータ値には、SQL 特殊レジスターによるアクセ スも可能です。これらのレジスターに入れられる値は、データベース・コー ド・ページの形で保管されます。この API によって提供されるデータ値は、特 殊レジスターに保管される前にデータベース・コード・ページに変換されます。 データベース・コード・ページへの変換後のサイズがサポートされる最大サイ ズを超えているデータ値は、サーバー上で保管される前に切り捨てられます。 特殊レジスターから戻されるのは、これらの切り捨て後の値です。オリジナル のデータ値もサーバー上で保管されます。それらはデータベース・コード・ペ ージには変換されません。変換されていない値を戻させるには、 sqleqryi API を呼び出します。 sqlubkp - データベースのバックアップ BackupType パラメーターの場合、 SQLUB_FULL 値が SQLUB_DB に置き換えられ ます。データベース内のすべての表スペースのバックアップが行われます。 新しい増分バックアップ機能をサポートするために、 SQLUB_INCREMENTAL およ び SQLUB_DELTA パラメーターも追加されます。増分バックアップ・イメージと は、最新の正常な全バックアップ以降に変更されたすべてのデータベース・デ ータのコピーです。差分バックアップ・イメージとは、任意のタイプについて の最新の正常なバックアップ以降に変更されたすべてのデータベース・データ のコピーです。 sqlureot - 表の再編成 以下の文が使用上の注意に追加されます。 REORGANIZE TABLE は、索引拡張子に基づく索引を使用できません。 sqlurestore - データベースのリストア RestoreType パラメーターの場合、 SQLUD_FULL 値が SQLUD_DB に置き換えら れます。データベース内のすべての表のリストアが行われます。これはオフラ インで実行されます。 新しい増分リストア機能をサポートするために、 SQLUD_INCREMENTAL パラメー ターも追加されます。 増分バックアップ・イメージとは、最新の正常な全バックアップ以降に変更さ れたすべてのデータベース・データのコピーです。 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 SQLFUPD locklist トークンの名前は SQLF_DBTN_LOCKLIST から SQLF_DBTN_LOCK_LIST に変更され ました。 locklist パラメーターは SMALLINT から 64 ビットの符号なし INTEGER に変更されました。更新可能データベース構成パラメーターの表に以 下が追加されました。 +-----------------+-----------------+----------------+----------------+ | パラメーター名 | トークン | トークン値 | データ・タイプ | +-----------------+-----------------+----------------+----------------+ | locklist | SQLF_DBTN_LOCK_ | 704 | Uint64 | | | LIST | | | +-----------------+-----------------+----------------+----------------+ このパラメーターの新しい最大値は 524 288 です。 さらに、『第 3 章 データ構造』の表 53、更新可能データベース構成パラメー ターにリストされている dbheap のトークン値 701 は誤りです。正しい値は 58 です。 SQLEDBDESC SQLDBCSS (sqlenv に定義された) の有効値のリストに 2 つの値が追加されま す。追加される値は以下の通りです。 SQL_CS_SYSTEM_NLSCHAR 文字タイプに対して NLS バージョンの比較ルーチンを使用するシス テムからの照合シーケンス。 SQL_CS_USER_NLSCHAR 文字タイプに対して NLS バージョンの比較ルーチンを使用するユー ザーからの照合シーケンス。 DB2 アプリケーション構築の手引き 入手可能なアップデート版 「DB2 アプリケーション構築の手引き」はフィックスパック 4 の一部として更 新され、最新の PDF は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support からオンラ インでダウンロードできます。更新された資料は、すべて CD でも入手できま す。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介して注文で きます。DB2 サービスへの連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 Linux on S/390 および zSeries サポート DB2 for Linux on S/390 and zSeries は、以下のオペレーティング・システム 環境をサポートします。 * SuSE v7.0 * SuSE SLES 7 * TurboLinux v6.1 注: DB2 バージョン 7 を SuSE SLES 7 で実行するには、libstdc++ v6.1 compat RPM (SuSE Linux Enterprise Server Developer's Edition CD セットの CD 1 に収録) をパス "CD1/suse/a1/compat.rpm" にインスト ールする必要があります。これはルートとして行う必要があります。 RPM をインストールするには、CD イメージをディレクトリーにマウントしま す。例えば、ディレクトリー /mnt にマウントするには、コマンド rpm -Uh /mnt/CD1/suse/a1/compat.rpm を使用して RPM をインストールし、その後 ldconfig を実行します。 Linux Rexx サポート DB2 for Linux for Intel x86 (32 ビット) は、Object REXX Interpreter for Linux バージョン 2.1 をサポートします。 DB2 for Linux on S/390 は Object REXX 2.2.0 for Linux/390 をサポートし ます。 コンパイルされた SQL プロシージャーの配布についての追加情報 UNIX システム上で、インスタンス所有者 (すなわち、その下で DB2 エンジン が実行されるユーザー) と $DB2PATH/adm/.fenced ファイルの所有者が、確実 に、同じ 1 次グループに属するようにしてください。別の方法として、これら の 2 人のユーザーのそれぞれが、相手方の 1 次グループに属するようにする こともできます。 GET ROUTINE または PUT ROUTINE 操作 (またはそれらの対応するプロシージャ ー) を正常に実行できなかった場合は、常に、エラー (SQLSTATE 38000) およ び失敗の原因についての情報を提供する診断テキストが一緒に戻されます。例 えば、GET ROUTINE に指定したプロシージャー名が SQL プロシージャーを示し ていない場合、診断テキスト "100, 02000" が戻されます。ここで、"100" お よび "02000" はそれぞれ、SQLCODE および SQLSTATE で、これによって問題の 原因が示されます。この例における SQLCODE および SQLSTATE は、特定のプロ シージャー名に対して指定した行が、カタログ表の中で見つからなかったこと を示します。 Application Development Guide 入手可能なアップデート版 「Application Development Guide」はフィックスパック 4 の一部として更新 され、最新の PDF は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support からオンラ インでダウンロードできます。これらの注釈の情報は、更新された解説書への 追加情報です。更新された資料は、すべて CD でも入手できます。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介して注文できます。 DB2 サービスへの連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 C/C++ ルーチン (UDF、ストアード・プロシージャー、あるいはメソッド) を Windows 上で登録する際の予防策 C または C++ ルーチン (UDF、ストアード・プロシージャー、あるいはメソッ ド) を Windows(R) オペレーティング・システム上で登録する場合は、ルーチ ン本体を CREATE ステートメントの EXTERNAL NAME 文節で識別する際に、以下 の予防策をとってください。ルーチン本体の認識に絶対パス ID を使用する場 合は、.dll 拡張子を追加する必要があります。以下に例を示します。 CREATE PROCEDURE getSalary( IN inParm INT, OUT outParm INT ) LANGUAGE c PARAMETER STYLE sql DYNAMIC RESULT SETS 1 FENCED THREADSAFE RETURNS NULL ON NULL INPUT EXTERNAL NAME 'd:\mylib\myfunc.dll' 「Java で作成されたストアード・プロシージャーのデバッグ」に対する修正 第 21 章『デバッグの準備』で、db2dbugd コマンドを使用するようにとの記述 がありますが、これは誤りです。代わりに、次のコマンドを使用してください。 idebug -qdaemon -quiport=portno デフォルト・ポート番号は 8000 です。idebug は IBM 分散デバッガーのクラ イアント・サイド・デーモンで、VisualAge for Java および WebSphere Studio Application Developer に添付されています。 executeQuery および executeUpdate に対する新しい要件 J2EE 1.3 標準に準拠するために、DB2 JDBC ドライバーは、フィックスパック 5 の時点で、executeQuery で非照会ステートメントを使用することも、 executeUpdate で照会ステートメントを使用することもできなくなっています。 それを行おうとすると、以下のいずれかの例外になります。 * CLI0637E QUERY を検出できません。 * CLI0637E UPDATE を検出できません。 ステートメントのタイプが不明の場合は、execute() を使用してください。 追加されたメソッドに対する JDBC ドライバーのサポート CallableStatement.getBlob() と CallableStatement.getClob() JDBC ドライバーは、メソッド CallableStatement.getBlob() と CallableStatement.getClob() をサポートするようになりました。 DB2 は、ス トアード・プロシージャー・パラメーター内の LOB ロケーターをサポートしな いため、CREATE PROCEDURE で指定される値の LOB データについて、考えられ る最大サイズを保持できるだけの十分なシステム・メモリーが使用可能でなけ ればなりません。メモリーが十分でない場合は、メモリー不足例外になります。 このサポートは、アンカタログのストアード・プロシージャーについてはあり ません。 Statement.setFetchSize(int rows) と ResultSet.setFetchSize(int rows) JDBC ドライバーは、Statement.setFetchSize(int rows) と ResultSet.setFetchSize(int rows) をサポートするようになりました。これら のメソッドは、ResultSet のパフォーマンスを向上させるために使用できるよ うになりました。 JDBC および 64-bit システム JDBC は、64-bit アドレッシングを使用するインスタンスまたはクライアントに 対してはサポートされません。この制限には、64-bit を実行する DB2 UDB バ ージョン 7 (AIX V4.3.3 版、AIX V5 版、Solaris オペレーティング・システム 版、および HP-UX 版) も含みます。ただし、システムが DB2 UDB の 64 ビッ ト・バージョンを実行するか 32 ビット・バージョンを実行するかにかかわら ず、JDBC は 32 ビット・インスタンスでサポートされています。 IBM OLE DB Provider (DB2 UDB 版) IBM OLE DB Provider (DB2 版) の使用法についての詳細は、 http://www.ibm.com/software/data/db2/udb/ad/v71/oledb.html を参照してく ださい。 CLI の手引きおよび解説書 ランタイム・クライアントを使用するデータベース・ユーティリティーのバイン ド ランタイム・クライアントを使用して、データベース・ユーティリティー (イ ンポート、エクスポート、 REORG、コマンド行プロセッサー)、および DB2 CLI バインド・ファイルを、データベースとともに使用する前に各データベースに バインドすることはできません。 DB2 管理クライアントまたは DB2 アプリケ ーション開発クライアントを使用する必要があります。 データベース・ユーティリティーおよび DB2 CLI バインド・ファイルを、各デ ータベースとともに使用する前にそれらのデータベースにバインドしなければ なりません。ネットワーク環境では、異なるオペレーティング・システムで実 行している複数のクライアントを使用しているか、または異なるバージョンや サービス・レベルの DB2 を使用している場合、各オペレーティング・システム と DB2 のバージョンの組み合わせに対して、ユーティリティーを一度ずつバイ ンドしなければなりません。 CLI アプリケーションで静的 SQL の使用 CLI アプリケーションでの静的 SQL の使用について、詳しくは以下の Web ペ ージをご覧ください。 http://www.ibm.com/software/data/db2/udb/staticcli/ JDBC/ODBC/CLI 静的プロファイル の制限 JDBC/ODBC/CLI 静的プロファイルは、現在、簡単なアプリケーションをターゲ ットとしています。多くの機能内容や、実行中の複雑なプログラム・ロジック が複雑なアプリケーションを意味しているわけではありません。 SQL ステートメントは、プロファイル・セッションで取り込まれるためには、 正常に実行されている必要があります。マッチング・セッションでは、アンマ ッチの動的ステートメントは動的 JDBC/ODBC/CLI コールとして実行が継続しま す。 SQL ステートメントはステートメント・マッチングで有効な候補であるには、 取り込まれたり、バインドされたりしたステートメントが文字単位で等しくな らなければなりません。スペースは有効です。例えば、"COL = 1" は "COL=1" と異なると見なされます。 一致するヒット数を増やすため、リテラルの代りに パラメーター・マーカーを使用します。 事前バインドの静的 SQL ステートメントがあるアプリケーションを実行する 際、動的ステートメントに振る舞いを制御するレジスターは静的に変換された ステートメントの影響を与えません。 アプリケーションが後続の DML ステートメントを参照するオブジェクトに DDL を実行する場合、取り込んだファイルの中でこれらのステートメントをすべて 検索できます。JDBC/ODBC/CLI 静的プロファイル・バインド・ツールがそれら をバインドしようとします。バインドの試みは、VALIDATE(RUN) バインド・オ プションをサポートする DBMS では成功しますが、そうでないものは失敗しま す。このケースでは、アプリケーションは静的プロファイルを使用する必要が あります。 データベース管理者は、アプリケーション固有の要求に応じて、SQL ステート メントを追加、変更、除去するためのキャプチャー・ファイルを編集すること ができます。 ADT トランスフォーム 以下の記述を、ブックの既存の情報と置き換えてください。 * 新規記述子タイプ (smallint) SQL_DESC_USER_DEFINED_TYPE_CODE が次の値 と一緒にあります。 SQL_TYPE_BASE 0 (これは USER_DEFINED_TYPE ではありません) SQL_TYPE_DISTINCT 1 SQL_TYPE_STRUCTURED 2 This value can be queried with either SQLColAttribute or SQLGetDescField (IRD only). 以下の属性が実際のタイプ名を取得するのに追加されます。 SQL_DESC_REFERENCE_TYPE SQL_DESC_STRUCTURED_TYPE SQL_DESC_USER_TYPE The above values can be queried using SQLColAttribute or SQLGetDescField (IRD only). * アプリケーションで必要になった場合のために、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 タイプ として戻すようにします。この属性は、トランスフォームを行う前に必要で す。 * デフォルトで属性はオフであり、基本タイプ情報は SQL タイプとして戻 されます。 * 使用可能な場合、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); 第 1 章 CLI の概要 DB2 CLI と組み込み SQL の相違 『DB2 CLI を使用する利点』セクションのリストの最後から 3 番目の項目は無 視してください。正しい情報は次の通りです。 DB2 CLI を使用すると、DB2 ユニバーサル・データベース・サーバー、DB2 (MVS/ESA 版) サーバー (バージョン 5 以降)、または OS/400 サーバー (バー ジョン 5 以降) に常駐しているストアード・プロシージャーから生成された複 数の行および結果セットを検索できます。 OS/400 で複数結果セットの検索が サポートされるようにするためには、当該のサーバーに PTF (プログラム一時 修正) SI01761 を適用する必要があります。 OS/400 システム管理者に連絡し て、この PTF が適用済みであるかどうかを確認してください。 第 3 章 拡張フィーチャーの使用法 マルチスレッド・アプリケーションの書き込み 以下を『マルチスレッド・ミックス・アプリケーション』セクションの終わり に追加します。 注: デフォルトのスタック・サイズを使用せずに、スタック・サイズを少なく とも 256 000 に増やすことをお勧めします。DB2 では、DB2 関数の呼び 出し時に必要な最小スタック・サイズは 256 000 です。したがって、お 使いのアプリケーションと、 DB2 関数呼び出し時の最小要件の両方を十 分に満たす合計スタック・サイズが割り当てられていることを確認する 必要があります。 DB2 CLI ユニコード・アプリケーションの作成 以下は、この章の新しいセクションです。 DB2 CLI ユニコード・アプリケーションのサポート領域には次の 2 つがありま す。 1. ANSI ストリング引き数の代わりにユニコード・ストリング引き数を受け入 れ可能な関数のセットの追加。 2. ユニコード・データを記述する、新しい C および SQL データ・タイプの追 加。 以下のセクションは、これらの領域の両方についての詳細を提供します。ユニ コード・アプリケーションと認識されるためには、アプリケーションは接続を 行う前に、 SQL_ATTR_ANSI_APP 接続属性を SQL_AA_FALSE に設定する必要があ ります。これを行うと、 CLI は、データベースとの希望する連絡方法として、 必ずユニコードを使用します。 ユニコード関数 ODBC API 関数には、ストリング引き数の形式を示す接尾部があります。ユニコ ードを受け入れる関数の接尾部は W で終わります。 ANSI を受け入れる関数に は接尾部は付きません。 注: ODBC は A で終わる名前を持つ、同等の関数を追加しますが、 DB2 CLI は この関数を使用しません。 次は DB2 CLI で使用可能な関数のリストで、ANSI 版とユニコード版の両方が 含まれています。 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 SQLGetStmtAttr SQLStatistics SQLError SQLNativeSQL SQLTablePrivileges SQLExecDirect SQLPrepare SQLTables 引き数が常にストリングの長さであるユニコード関数は、この引き数を文字数 として解釈します。サーバー・データに対して長さの情報を返す関数は、表示 サイズと精度を文字数で示します。長さ (データの転送サイズ) がストリング または非ストリングのデータを参照するときは、長さはバイト数として解釈さ れます。例えば、SQLGetInfoW は長さをバイト数として取りますが、 SQLExecDirectW は文字数を使用します。CLI は、結果セットからのデータを、 アプリケーションのバインドに応じて、ユニコードまたは ANSI で返します。 アプリケーションが SQL_C_CHAR にバインドする場合、ドライバーは SQL_WCHAR データを SQL_CHAR に変換します。ODBC ドライバー・マネージャー (使用する 場合) は、 ANSI ドライバーについては SQL_C_WCHAR を SQL_C_CHAR にマップ しますが、ユニコード・ドライバーについてはマッピングを行いません。 新しいデータ・タイプと有効な変換 追加の ODBC および CLI 定義のデータ・タイプが、ユニコード・データベース に適応させるために追加されました。これらのタイプは既存の C タイプおよび SQL タイプのセットを補足します。新しい C タイプ、SQL_C_WCHAR は、 C バ ッファーにネイティブ・エンディアン形式の UCS-2 データが含まれていること を指示します。新しい SQL タイプの SQL_WCHAR、SQL_WVARCHAR、および SQL_WLONGVARCHAR は、特定の列またはパラメーター・マーカーにユニコード・ データが含まれていることを示します。 DB2 ユニコード・データベースの場 合、グラフィック列は新規のタイプを使用して記述されます。 表 11. サポートされるデータ変換 +----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+ | SQL データ・ | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | | タイプ | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | | | L | L | L | L | L | L | L | L | L | L | L | L | L | L | L | L | L | L | | | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | | | C | C | C | C | C | C | C | C | C | C | C | C | C | C | C | C | C | C | | | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | | | C | W | L | S | T | F | D | T | T | T | B | B | D | C | B | D | B | N | | | H | C | O | H | I | L | O | Y | Y | Y | I | I | B | L | L | B | I | U | | | A | H | N | O | N | O | U | P | P | P | N | T | C | O | O | C | G | M | | | R | A | G | R | Y | A | B | E | E | E | A | | H | B | B | L | I | E | | | | R | | T | I | T | L | _ | _ | _ | R | | A | _ | _ | O | N | R | | | | | | | N | | E | D | T | T | Y | | R | L | L | B | T | I | | | | | | | T | | | A | I | I | | | | O | O | _ | | C | | | | | | | | | | T | M | M | | | | C | C | L | | | | | | | | | | | | E | E | E | | | | A | A | O | | | | | | | | | | | | | | S | | | | T | T | C | | | | | | | | | | | | | | T | | | | O | O | A | | | | | | | | | | | | | | A | | | | R | R | T | | | | | | | | | | | | | | M | | | | | | O | | | | | | | | | | | | | | P | | | | | | R | | | +----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+ | 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 は変換をサポートしていません。 * データは LOB ロケーター・タイプに変換されません。ロケーターは データ値を表示します。詳しくは、ラージ・オブジェクトの使用」を 参照してください。 * 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 (1) に設定すると、すべてのユニコード・データは 最初に (サーバーに送信される前に) アプリケーションのローカル・コー ド・ページに変換されます。このことが原因で、ローカル・コード・ページ では表示できないデータが失われることがあります。 2. ConnectCodepage キーワードの説明: 余分な接続オーバーヘッドを避けるために、データ・ソースへの 接続時に使用する特定のコード・ページを指定します。 db2cli.ini キーワード構文 ConnectCodepage = 0 | 1 | <任意の有効な db2 コード・ページ> デフォルト設定 0 DB2 CLI/ODBC 設定タブ: このキーワードは CLI/ODBC 設定ノートブックで設定することは できません。このキーワードを使用するためには、db2cli.ini フ ァイルを直接編集する必要があります。 使用上の注意: 非ユニコード・アプリケーションは、データベースへの接続時には常にその アプリケーションのローカル・コード・ページか DB2Codepage 環境設定を 使用します。デフォルトでは、CLI により、ユニコード・アプリケーション はユニコード・データベースへの接続時には常に UTF-8 および UCS-2 コー ド・ページを使用します。非ユニコード・データベースへの接続時のデフォ ルトでは、データベース・サーバーが DB2 (Windows 版)、DB2 (Unix 版)、 または DB2 (OS/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 版) につい ては、余分な処理が必要にならないため、このキーワードを設定する必要は ありません。 トランザクション・モニターとしての Microsoft Transaction Server (MTS) 『インストールおよび構成』サブセクションに記載されている DISABLEMULTITHREAD 構成キーワードのデフォルト値は、次のように訂正されま す。 * DISABLEMULTITHREAD キーワード (デフォルトは 0) スクロール可能カーソル 以下の情報は『スクロール可能カーソル』セクションに追加されています。 サーバー側のスクロール可能カーソル・サポート (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 カーソルのデフォルト属性をリ ストします。 表 12. 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 ファイルに設定します。 表 13. スクロール可能カーソル・サポート前のアプリケーションの振る舞いを リストアする構成キーワード値 +----------------------+----------------------------------------------+ | 構成キーワード設定 | 説明 | +----------------------+----------------------------------------------+ | PATCH2=6 | スクロール可能カーソル (キーセット・ドリブン | | | および静的) がサポートされていない というメ | | | ッセージを返します。CLI は、スクロール可能カ | | | ーソルの要求をフォワードのみカーソルに 自動 | | | 的にダウングレードします。 | +----------------------+----------------------------------------------+ | DisableKeysetCursor= | サーバー側とクライアント側の両方のキーセッ | | 1 | ト・ドリブン・スクロール可能カーソルを使用不 | | | 可にします。 これは、キーセット・ドリブン・ | | | カーソルが要求されたときに、CLI ドライバーに | | | よって アプリケーションが静的カーソルを提供 | | | することを強制するために使用されます。 | +----------------------+----------------------------------------------+ | UseServerKeysetCurso | クライアント側のキーセット・ドリブン・カーソ | | r=0 | ル・ライブラリーを使用して キーセット・ドリ | | | ブン・カーソルをシミュレートするアプリケーシ | | | ョンに対してサーバー側の キーセット・ドリブ | | | ン・カーソルを使用不可にします。 サーバー側 | | | のキーセット・ドリブン・カーソルで問題が発生 | | | した場合のみ、このオプションを使用します。 | | | クライアント側のカーソルは大量のオーバーヘッ | | | ドを発生させ、 通常、サーバー側のカーソルよ | | | りパフォーマンスが劣ってしまうためです。 | +----------------------+----------------------------------------------+ 複合 SQL の使用 以下の注釈がブックから欠落しています。 Any SQL statement that can be prepared dynamically, other than a query, can be executed as a statement inside a compound statement. Note: Inside Atomic Compound SQL, savepoint, release savepoint, and rollback to savepoint SQL statements are also disallowed. Conversely, Atomic Compound SQL is disallowed in savepoint. ストアード・プロシージャーの使用 SQL および Java ストアード・プロシージャーの作成特権およびデバッグ特権 次の特権を SQL ストアード・プロシージャーを作成、デバッグ、実行するユー ザーに認可する必要があります。 * db2 grant CONNECT on database to userid * db2 grant IMPLICIT_SCHEMA on database to userid * db2 grant BINDADD on database to userid * db2 grant SELECT on SYSIBM.SYSDUMMY1 to userid * db2 grant SELECT on SYSCAT.PROCEDURES to userid * db2 grant UPDATE on DB2DBG.ROUTINE_DEBUG to userid 次の特権を Java ストアード・プロシージャーを作成、デバッグ、実行するユ ーザーに認可する必要があります。 * db2 grant CONNECT on database to userid * db2 grant IMPLICIT_SCHEMA on database to userid * db2 grant BINDADD on database to userid (Java ストアード・プロシージ ャーを SQLJ を使用する静的 SQL で作成する場合のみ必要) * db2 grant SELECT on SYSIBM.SYSDUMMY1 to userid * db2 grant SELECT on SYSCAT.PROCEDURES to userid * db2 grant UPDATE on DB2DBG.ROUTINE_DEBUG to userid DB2DBG.ROUTINE_DEBUG 表を作成するには、次のコマンドを実行してください。 db2 -tf sqllib/misc/db2debug.ddl Java ストアード・プロシージャーについて詳しくは、「アプリケーション開発 の手引き」を参照してください。 CLI でのストアード・プロシージャーの記述 以下は、CLI ストアード・プロシージャーに対する文書化されていない制限で す。 If you are making calls to multiple CLI stored procedures, the application must close the open cursors from one stored procedure before calling the next stored procedure. More specifically, the first set of open cursors must be closed before the next stored procedure tries to open a cursor. 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 お勧めするアプローチとしては、実行時に自動バインドするのを回避するため に、データベースが、作成される時に、このパッケージを常にバインドする方 法があります。自動バインドは、ユーザーに特権がない場合、または別のアプ リケーションが同時に自動バインドを行っている場合には失敗します。 第 4 章 CLI/ODBC の構成とサンプル・アプリケーションの実行 構成キーワード CURRENTFUNCTIONPATH CURRENTFUNCTIONPATH キーワードの最後の段落は無視してください。正しい情 報は次の通りです。 このキーワードは、現行ユーザーのスキーマ以外のスキーマ名に定義されている 非修飾関数およびストアード・プロシージャー参照を解決するためのプロセス の一部として使用されます。スキーマ名の順序は、関数名とプロシージャー名 が解決される順序を決定します。関数およびプロシージャーの解決について詳 しくは、「SQL 解説書」を参照してください。 SKIPTRACE 新規構成キーワードを以下で説明します。 キーワードの説明: CLI アプリケーションがトレース機能から除外されるのを許可しま す。 db2cli.ini キーワード構文 SKIPTRACE = 0 | 1 デフォルト設定 トレース機能をスキップしません。 DB2 CLI/ODBC 設定タブ: このキーワードは CLI/ODBC 設定ノートブックで設定することはでき ません。このキーワードを使用するためには、db2cli.ini ファイル を直接編集する必要があります。 使用上の注意: このキーワードを使用すると、トレース機能が CLI アプリケーショ ンをバイパスするのを許可することにより、パフォーマンスを向上さ せることができます。したがって、DB2 トレース機能 db2trc をオン にし、このキーワードを 1 に設定すると、トレースには CLI アプリ ケーションの実行の情報は含まれません。 トレース情報を必要としない UNIX プラットフォーム上の実稼働環境 には、SKIPTRACE をオンにすることをお勧めします。テスト環境では トレース出力が役立つこともあるので、詳細な実行の情報を必要とす る場合は、このキーワードをオフにする (あるいはデフォルト設定の ままにする) ことができます。 SKIPTRACE は、db2cli.ini 構成ファイルの [COMMON] セクションで 設定されなければなりません。 第 5 章 DB2 CLI 関数 SQLBindFileToParam - LOB ファイル参照を LOB パラメーターにバインド SQLBindFileToParam() CLI 関数の最後のパラメーター、IndicatorValue は現 在「出力 (据え置き)」と書かれています。これは「入力 (据え置き)」となり ます。 SQLColAttribute -- 列属性を戻す 以下の更新事項が引き数 SQL_DESC_AUTO_UNIQUE_VALUE および SQL_DESC_UPDATABLE の「説明」欄に追加されます。 SQL_DESC_AUTO_UNIQUE_VALUE どの DB2 SQL データ・タイプの場合でも、NumericAttributePtr には SQL_FALSE が戻されます。常に SQL_FALSE が戻されるのは、現在 DB2 CLI はある列が一致列かどうかを判別できないからです。この制限 は、ODBC 仕様に完全には準拠していないためのものです。 UNIX お よび Windows サーバー版 DB2 CLI の将来のバージョンでは、自動固 有化がサポートされるようになります。 SQL_DESC_UPDATABLE 列データ・タイプが更新可能データ・タイプかどうかを指示します。 * どの DB2 SQL データ・タイプの場合でも、NumericAttributePtr には SQL_ATTR_READWRITE_UNKNOWN が戻されます。これが戻され るのは、現在 DB2 CLI はある列が更新可能かどうかを判別できな いからです。 UNIX および Windows サーバー版 DB2 CLI の将来 のバージョンでは、ある列が更新可能かどうかを判別できるよう になります。 SQLGetData - 列からのデータの入手 続くテキストが、SQLGetData の SQLSTATE 表の SQLSTATE 22007 の「説明」列 にある現行のセンテンスに取って代わります。 ストリングから日付時刻形式への変換が指示されていましたが、無効なストリ ングまたは値が指定されていたか、値が無効な日付でした。 SQLGetInfo - 一般情報の取得 『SQLGetInfo によって戻される情報』の下の『使用法』セクションに記載され ている情報は、次のように訂正されます。 * InfoType SQL_CURSOR_CLOSE_BEHAVIOR は SQL_CLOSE_BEHAVIOR でなければ なりません。 * SQL_DATABASE_NAME (ストリング) の注は、次のようになっていなければな りません。 注: このストリングは、非ホスト・システムで SELECT CURRENT SERVER ス テートメントによって戻されるのと同じものです。 DB2 (OS/390 版) や DB2 (OS/400 版) のようなホスト・データベースの場合は、戻さ れるストリングは DCS データベース名 (DB2 コネクト・ゲートウェ イでの CATALOG DCS DATABASE DIRECTORY コマンドの発行時に指定さ れたもの) です。 SQLGetLength - ストリング値の長さの検索 表 113「SQLGetLength の引き数」の脚注は、次のように訂正されます。 注: a これには DBCLOB データ用の文字が使用されます。 SQLNextResult - 次の結果セットを別のステートメント・ハンドルに関連付ける 次のテキストが第 5 章『DB2 CLI 関数』に追加されました。 目的 仕様: DB2 CLI 7.x 構文 SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2); 関数の引き数 表 14. SQLNextResult 引き数 +-----------+---------------+--------+--------------------------------+ | データ・ | 引き数 | 使用 | 記述 | | タイプ | | | | +-----------+---------------+--------+--------------------------------+ | SQLHSTMT | StatementHand | 入力 | ステートメント・ハンドル。 | | | le | | | +-----------+---------------+--------+--------------------------------+ | SQLHSTMT | StatementHand | 入力 | ステートメント・ハンドル。 | | | le | | | +-----------+---------------+--------+--------------------------------+ 使用法 ストアード・プロシージャーは、終了後にカーソルをオープンしたままにして おくことで、複数の結果セットを返します。最初の結果セットは常に、ストア ード・プロシージャーを呼び出したステートメント・ハンドルを使用すること によってアクセスされます。複数の結果セットが返される場合、 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() はこ れをサポートしません。 戻りコード * SQL_SUCCESS * SQL_SUCCESS_WITH_INFO * SQL_STILL_EXECUTING * SQL_ERROR * SQL_INVALID_HANDLE * SQL_NO_DATA_FOUND 診断 表 15. SQLNextResult SQLSTATEs +--------+-------------------+----------------------------------------+ | SQLSTA | 記述 | 説明 | | TE | | | +--------+-------------------+----------------------------------------+ | 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 属性を使用して | | | | 設定することができます。 | +--------+-------------------+----------------------------------------+ 制約事項 SQLMoreResults() だけがパラメーター化照会に使用できます。 参照 * 525 ページの『SQLMoreResults - 結果セットが他にもあるかを判別してく ださい』 * 120 ページの『ストアード・プロシージャーから返される結果セット』 SQLSetEnvAttr - 環境属性の設定 以下は、『使用法』の『環境属性』セクションの追加の環境属性です。 SQL_ATTR_KEEPCTX 環境ハンドルがフリーの場合にコンテキストを保持するかどうかを指 定する 32 ビット整数値です。この属性は、環境レベルにおいて設定 される必要があります。マルチスレッド・アプリケーションは、各ス レッドの接続、データベース・リソース、およびデータ伝送に関連し たコンテキストを管理するためにこの属性を使用できます。可能な値 は以下の通りです。 * SQL_FALSE: スレッドの環境ハンドルがフリーになったときにアプ リケーションはコンテキストを解放します。これがデフォルト値 です。 * SQL_TRUE: スレッドの環境ハンドルがフリーになったときに、コ ンテキストは同じ接続にある他の既存のスレッドに使用可能であ り、コンテキストは有効なままです。SQL_ATTR_KEEPCTX を SQL_TRUE に設定すると、マルチスレッド・アプリケーションにお ける競合コンテキストに関連した問題をいくつか解決できます。 注: これは IBM 拡張です。 SQLSetStmtAttr -- ステートメント関連のオプションの設定 ステートメント属性 SQL_ATTR_QUERY_TIMEOUT に関する既存の情報は、以下の 情報に置き換えられます。 SQL_ATTR_QUERY_TIMEOUT (DB2 CLI v2) SQL ステートメントの実行を何秒待ったらアプリケーションに制御を 戻すかについて、その秒数を表す 32 ビット整数値。このオプション は、実行時間の長い照会を終了させるために設定および使用できま す。値 0 は、タイムアウトにならないことを意味します。 DB2 CLI は、マルチスレッド化をサポートするすべてのプラットフォームで非 ゼロ値をサポートします。 付録 C. DB2 CLI および ODBC 以下の新しいセクションがこの付録に追加されました。 ODBC ユニコード・アプリケーション ユニコード ODBC アプリケーションは、主に UCS-2 で文字を検索します。これ は、ODBC 関数のユニコード・バージョン (接尾部 "W" を持つもの) を呼び出 してユニコード・データ・タイプを指定するという方法で行われます。アプリ ケーションはローカル・コード・ページを明示的に指定しません。それでもア プリケーションは ANSI 関数を呼び出し、ローカル・コード・ページ・ストリ ングを渡すことができます。 例えば、アプリケーションは SQLConnectW() を呼び出し、DSN、ユーザー ID、 およびパスワードをユニコード引き数として渡すことができます。次にアプリ ケーションは、 SQLExecDirectW() を呼び出し、ユニコード SQL ステートメン ト・ストリングを渡し、 ANSI ローカル・コード・ページ・バッファー (SQL_C_CHAR) およびユニコード・バッファー (SQL_C_WCHAR) の組み合わせを バインドします。データベース・データ・タイプは、ユニコードの場合とそう でない場合があります。 CLI アプリケーションが SQL_ATTR_ANSI_APP を SQL_AA_FALSE に設定して SQLSetConnectAttr を呼び出すか、SQL_ATTR_ANSI_APP の値を設定しないで SQLConnectW を呼び出す場合、アプリケーションはユニコード・アプリケーシ ョンと見なされます。これは、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_TRUE に設定されている場合、DB2 CLI はすべて のユニコード・データを、サーバーに送る前に、ローカル・コード・ページに 変換します。 付録 D 拡張スカラー関数 日時関数 次の関数が、付録 D『拡張スカラー関数』の日付および時刻関数のセクション から抜けています。 DAYOFWEEK_ISO( date_exp ) 1 週間の曜日を、1 から 7 の範囲の整数値として date_exp で戻し ます。 1 は月曜を表します。この関数と DAYOFWEEK() 関数との間の 相違に注意してください。 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 の詳細については、この 「リリース情報」の『コマンド解説書』をご覧ください。 付録 K DB2 CLI/ODBC/JDBC トレース機能の使用 この付録内のこのセクションは更新されています。トレース機能についての最 新情報は問題判別の手引き」の『トレース』の章をご覧ください。 メッセージ解説書 入手可能なアップデート版 「メッセージ解説書」はフィックスパック 4 の一部として更新され、最新の PDF は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support か らオンラインでダウンロードできます。更新された資料は、すべて CD でも入 手できます。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介し て注文できます。DB2 サービスへの連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 メッセージの更新 次の表は、メッセージ解説書の最新版が出版された以降に変更されたメッセー ジを示しています。この中に、メッセージ・テキストをオンラインで表示する 方法についての説明が含まれています。 表 16. 新規および変更メッセージ +----------------------------------+----------------------------------+ | メッセージ・コード | 変更内容 | +----------------------------------+----------------------------------+ | SQL2554N | 新規理由コード | +----------------------------------+----------------------------------+ | SQL0490N | 新規メッセージ | +----------------------------------+----------------------------------+ | SQL20214N | 新規メッセージ | +----------------------------------+----------------------------------+ | SQL20211N | 新規メッセージ | +----------------------------------+----------------------------------+ 次の表は、メッセージ解説書の最新版が出版された以降に変更された SQL 状態 を示しています。この中に、メッセージ・テキストをオンラインで表示する方 法についての説明が含まれています。 表 17. 新規 SQLSTATE メッセージ +----------------------------------+----------------------------------+ | SQLSTATE 値 | 意味 | +----------------------------------+----------------------------------+ | 428B7 | SQL ステートメントで指定された数 | | | 値が、有効な範囲内にありません。 | +----------------------------------+----------------------------------+ | 428FI | ORDER OF が指定されましたが、tab | | | le-designator に ORDER BY 文節が | | | 含まれていません。 | +----------------------------------+----------------------------------+ | 428FJ | ORDER BY は、ビューまたはサマリ | | | ー表の外部全選択では許可されてい | | | ません。 | +----------------------------------+----------------------------------+ オンラインでのメッセージ・テキストの読み取り DB2 がインストールされているオペレーティング・システムの操作についてよ く理解されていることを前提としています。 次の DB2 メッセージは、オペレーティング・システムのコマンド行からアクセ スできます。 接頭部 説明 ASN DB2 レプリケーションによって生成されるメッセージ CCA クライアント構成アシスタントによって生成されるメッセージ CLI コール・レベル・インターフェースによって生成されるメッセージ DBA コントロール・センターおよびデータベース管理によって生成される メッセージ DBI インストールおよび構成によって生成されるメッセージ DB2 コマンド行プロセッサーによって生成されるメッセージ DWC データウェアハウス・センターによって生成されるメッセージ FLG 情報カタログ・マネージャーによって生成されるメッセージおよび理 由コード GSE DB2 地理情報エクステンダーによって生成されるメッセージ SAT DB2 サテライトによって生成されるメッセージ SPM 同期点マネージャーによって生成されるメッセージ SQJ Java の組み込み SQL (SQLJ) によって生成されるメッセージ SQL 警告またはエラー状態が検出されたときにデータベース・マネージャ ーによって生成されるメッセージ 同様に、SQLSTATE 値に関連したメッセージ・テキストは、オンラインでも入手 できます。 メッセージ ID は、3 文字のメッセージ接頭語 (上記のリスト参照) と、それ に続く 4 桁または 5 桁のメッセージ番号から成ります。エラー・メッセージ の重大度を示す最後の 1 桁は、オプショナルです。 これらのエラー・メッセージについてのヘルプにアクセスするには、オペレー ティング・システムのコマンド・プロンプトで、次のように入力します。 db2 "? XXXnnnnn" XXX はメッセージ接頭語を表し、 nnnnn はメッセージ番号を表します。 注: db2 コマンドのパラメーターとして受け入れられるメッセージ ID は、大 文字小文字の区別はされません。また、終了文字も必要ありません。 したがって、次のコマンドは同じ結果になります。 * db2 "? SQL0000N" * db2 "? sql0000" * db2 "? SQL0000n" メッセージ・テキストが長すぎて画面に入らない場合、次のコマンドを使用し ます (UNIX ベースのシステム、およびその他の 'more' をサポートするシステ ムの場合)。 db2 "? XXXnnnnn" | more ヘルプは、対話式入力モードでも呼び出すことができます。対話式入力モード に入るには、オペレーティング・システムのコマンド・プロンプトで、次のよ うに入力します。 db2 対話式入力モードに入ったあと、次のコマンド・プロンプトにコマンドを入力 します。 db2 => このモードで DB2 メッセージ・ヘルプを表示するには、コマンド・プロンプト で、次のように入力します。 ? XXXnnnnn 注: メッセージ・テキストが画面の長さを超えるようであれば、非グラフィカ ル・ワークステーションのユーザーの場合、出力を 'more' (UNIX ベー スのシステムの場合) プログラムにパイピングすることができます。あ るいは、出力をファイルにリダイレクトして、あとでブラウズすること ができます。 所定の SQLSTATE 値に関連したメッセージ・テキストは、次のコマンドによっ て検索できます。 db2 "? nnnnn" または db2 "? nn" nnnnn は 5 桁の SQLSTATE (英数字) で、nn は 2 桁の SQLSTATE クラス・コ ード (SQLSTATE 値の最初の 2 桁) です。 SQL 解説書 入手可能な SQL 解説書 のアップデート版 「SQL 解説書」は更新されていて、最新の .pdf は、 http://www.ibm.com/software/data/db2/udb/winos2unix/support からオンラ インでダウンロードできます。これらの注釈の情報は、更新された解説書への 追加情報です。更新された資料は、すべて CD でも入手できます。この CD は、PTF 番号 U478862 を使用して、DB2 サービスを介して注文できます。 DB2 サービスへの連絡方法は、 http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report でご覧になれます。 新しい関数とプロシージャーの使用可能化 バージョン 7 フィックスパックには、新しい SQL 組み込みスカラー関数が含 まれています。これらの新しい関数については、「SQL 解説書」の更新分を参 照してください。新しい関数は、データベース・サーバー・コードが新しいサ ービス・レベルにアップグレードされるとき、各データベースで自動的に使用 可能にはなりません。これらの新しい関数を使用可能にするには、システム管 理者がサーバーの各データベースを指定したコマンド db2updv7 を実行しなけ ればなりません。このコマンドによって、コマンド実行前に作成されたデータ ベース・オブジェクトが、新しい関数シグニチャーに一致する可能性のある既 存の関数シグニチャーを使用することを保証する項目がデータベースに作成さ れます。 MQSeries 関数 (DB2MQ スキーマに定義されているもの) を使用可能化する方法 については "MQSeries"を参照してください。 SET SERVER OPTION - 資料のエラー SET SERVER OPTION ステートメントの「注:」に、誤解を招く情報が含まれてい ました。現在、「注:」は次のように記述されています。 * SET SERVER OPTION は、現在、パスワード、fold_id、および fold_pw のサ ーバー・オプションのみをサポートします。 この記述は正しくありません。SET SERVER OPTION は、すべてのサーバー・オ プション (IBM 提供ではないラッパー用のサーバー・オプションも含む) をサ ポートします。この注は無視してください。 CREATE TABLESPACE コンテナー文節に関する訂正とコンテナー・ストリング情報 リモート・リソース (LAN のリダイレクトされたドライブや、NFS をマウント したファイル・システムなど) は、現在 NEC iStorage S4100 および S2100、 Network Appliance Filers、IBM iSCSI、または IBM Network Attached Storage を使用する際にのみサポートされています。これは、現在資料において「リモ ート・リソースはサポートされていない」と記載されていることへの訂正です。 CREATE TABLESPACE EXTENTSIZE 情報への修正 CREATE TABLESPACE ステートメントは、ギガバイトで指定される EXTENTSIZE 値は受け入れません。 GRANT (表、ビュー、またはニックネーム特権) - 資料のエラー GRANT (表、ビュー、またはニックネーム特権) ステートメントの「注:」に、 紛らわしい項目が入っていました。現在、「注:」は次のように記述されていま す。 * ニックネームに対する操作は、ニックネームを参照するステートメントが処 理されるときにデータ・ソースで使用される許可 ID の特権によって異なる ため、ニックネームには、DELETE、INSERT、SELECT、および UPDATE 特権は 定義されません。 このテキストは無視してください。この注は、このテキストを除けば、そのま まで正しい記述です。 MQSeries 情報 スカラー関数 MQPUBLISH >>-MQPUBLISH--(-------------------------------------------------> >--+---------------------------------------------+--msg-data----> '-publisher-service--,--+-------------------+-' '-service-policy--,-' >--+---------------------------------+--)---------------------->< '-,--topic--+-------------------+-' | (1) | '-,--correl-id------' 注: 1. correl-id は、service および policy が事前に定義されていない場合、指 定できません。 スキーマは DB2MQ です。 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 経由で送信されるデータを含むストリング式です。タイプ VARCHAR のストリングが 4000 バイトの場合は、最大サイズです。ストリングが CLOB の場合は、最大 1MB までのサイズを取る可能性があります。 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' が返されます。 MQREADCLOB >>-MQREADCLOB--(--+----------------------------------------+----> '-receive-service--+-------------------+-' '-,--service-policy-' >--)----------------------------------------------------------->< スキーマは DB2MQ です。 MQREADCLOB 関数は、service-policy に定義されているサービス・ポリシーの 品質を使用して、receive-service によって指定されている MQSeries ロケー ションからメッセージを返します。この操作を実行しても、receive-service に関連するキューからこのメッセージが除去されることはありませんが、代わ りにキューの先頭にあるメッセージが返されます。戻り値は、このメッセージ を含む最大長 1MB の CLOB です。戻されるメッセージが使用できない場合、 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 MQREADCLOB() 例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 サービス "MYSERVICE" により指定されているキューの先頭にあるメッセージが 読み取られます。 VALUES MQREADCLOB('MYSERVICE') 例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により指定されているキューの先頭にあるメッセージが読み取られます。 VALUES MQREADCLOB('MYSERVICE','MYPOLICY') 上記の例ではすべて、正常終了するとメッセージの内容が最大サイズ 1MB の CLOB として返されます。メッセージが使用できない場合、NULL が返されます。 MQRECEIVECLOB >>-MQRECEIVECLOB------------------------------------------------> >--(--+----------------------------------------------------------+--)->< '-receive-service--+-------------------------------------+-' '-,--service-policy--+--------------+-' '-,--correl-id-' スキーマは DB2MQ です。 MQRECEIVECLOB 関数は、サービス・ポリシー service-policy の品質を使用し て、receive-service によって指定されている MQSeries ロケーションからの メッセージを返します。この操作を実行すると、receive-service に関連する キューからこのメッセージが除去されます。 correl-id が指定されている場 合、一致する相関 ID を持つ最初のメッセージが返されます。 correl-id が指 定されていない場合、キューの先頭にあるメッセージが返されます。戻り値 は、このメッセージを含む最大長 1MB の CLOB です。戻されるメッセージが使 用できない場合、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 リポジトリー・ファイルに定義されているポリシーを参 照します(1)。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 MQRECEIVECLOB() 例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 サービス "MYSERVICE" により指定されているキューの先頭にあるメッセージが 受信されます。 VALUES MQRECEIVECLOB('MYSERVICE') 例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により指定されているキューの先頭にあるメッセージが受信されます。 VALUES MQRECEIVECLOB('MYSERVICE','MYPOLICY') 例 4: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により指定されているキューの先頭から '1234' に一致する相関 ID を持つ最 初のメッセージが受信されます。 VALUES MQRECEIVECLOB('MYSERVICE',MYPOLICY','1234') 上記の例ではすべて、正常終了するとメッセージの内容が最大サイズ 1MB の CLOB として返されます。メッセージが使用できない場合、NULL が返されます。 MQSEND >>-MQSEND--(--+----------------------------------------+--------> '-send-service--,--+-------------------+-' '-service-policy--,-' >--msg-data--+-------------------+--)-------------------------->< | (1) | '-,--correl-id------' 注: 1. correl-id は、service および policy が事前に定義されていない場合、指 定できません。 スキーマは DB2MQ です。 MQSEND 関数は、service-policy により定義されているサービス・ポリシーの 品質を使用して、msg-data に含まれているデータを、send-service により指 定されている MQSeries ロケーションに送信します。任意指定のユーザー定義 メッセージ相関 ID は、correl-id によって指定することができます。この関 数は、正常に終了すると '1' の値を返し、正常に終了しないと '0' の値を返 します。 msg-data MQSeries 経由で送信されるデータを含むストリング式です。データがタイプ VARCHAR の場合は、最大サイズは 4000 バイト、タイプ CLOB の場合は、1MB です。 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' のスカラー値が返されます。 表関数 MQREADALLCLOB >>-MQREADALLCLOB--(---------------------------------------------> >--+----------------------------------------+--+----------+-----> '-receive-service--+-------------------+-' '-num-rows-' '-,--service-policy-' >--)----------------------------------------------------------->< スキーマは DB2MQ です。 MQREADALLCLOB 関数は、サービス・ポリシー service-policy の品質を使用し て、receive-service によって指定されている MQSeries ロケーションからの メッセージおよびメッセージ・メタデータを含む表を返します。この操作を実 行しても、receive-service に関連するキューからこのメッセージが除去され ることはありません。 num-rows が指定されている場合、num-rows メッセージの最大数が返されます。 num-rows が指定されていない場合、使用可能なすべてのメッセージが返されま す。返される表には以下の列が含まれます。 * MSG - MQSeries メッセージの内容を含む CLOB 列。 * CORRELID - メッセージを関連させるために使用される相関 ID を持つ VARCHAR(24) 列。 * TOPIC - 使用可能な場合、メッセージが発行されたときに使用されたトピッ クを持つ VARCHAR(40) 列。 * QNAME - メッセージが受信されたキューの名前を持つ VARCHAR(48) 列。 * MSGID - このメッセージに割り当てられた MQSeries 固有 ID を持つ CHAR(24) 列。 * MSGFORMAT - MQSeries により定義されているようなメッセージの形式を持つ VARCHAR(8) 列。一般的なストリングの形式は MQSTR 形式です。 receive-service メッセージの読み取り元である論理 MQSeries 宛先を含むストリングです。 receive-service が指定されている場合、AMT.XML リポジトリー・ファイル に定義されているサービス・ポイントを参照します。サービス・ポイントと は、メッセージの送受信元である論理エンドポイントのことです。サービ ス・ポイントの定義には、MQSeries キュー・マネージャーおよびキューの 名前が含まれます。詳しくは「MQSeries アプリケーション・メッセージン グ・インターフェース」を参照してください。 receive-service が指定さ れていない場合、DB2.DEFAULT.SERVICE が使用されます。 receive-service の最大サイズは 48 バイトです。 service-policy このメッセージの処理に使用される MQSeries AMI サービス・ポリシーを含 むストリングです。 service-policy が指定されている場合、AMT XML リポ ジトリー・ファイルに定義されているポリシーを参照します。サービス・ポ リシーは、このメッセージング操作に適用されるサービス・オプションの品 質のセットを定義します。このオプションには、メッセージ優先順位とメッ セージ持続性が含まれます。詳しくは「MQSeries アプリケーション・メッ セージング・インターフェース」マニュアルを参照してください。 service-policy が指定されていない場合、デフォルトの DB2.DEFAULT.POLICY が使用されます。service-policy の最大サイズは 48 バイトです。 num-rows この関数により返されるメッセージの最大数を含む正の整数です。 例: 例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューか らすべてのメッセージが受信されます。メッセージとすべてのメタデータが表 として返されます。 SELECT * FROM table (MQREADALLCLOB()) T 例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 サービス MYSERVICE により指定されているキューの先頭からすべてのメッセー ジが受信されます。 MSG 列と CORRELID 列だけが返されます。 SELECT T.MSG, T.CORRELID FROM table (MQREADALLCLOB('MYSERVICE')) T 例 3: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの 先頭が読み取られます。 '1234' の CORRELID を持つメッセージだけが返され ます。列はすべて返されます。 SELECT * FROM table (MQREADALLCLOB()) T WHERE T.CORRELID = '1234' 例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの 先頭から最初の 10 メッセージが受信されます。列はすべて返されます。 SELECT * FROM table (MQREADALLCLOB(10)) T MQRECEIVEALLCLOB >>-MQRECEIVEALLCLOB--(------------------------------------------> >--+----------------------------------------------------------+--> '-receive-service--+-------------------------------------+-' '-,--service-policy--+--------------+-' '-,--correl-id-' >--+-----------------+--)-------------------------------------->< '-+---+--num-rows-' '-,-' スキーマは DB2MQ です。 MQRECEIVEALLCLOB 関数は、サービス・ポリシー service-policy の品質を使用 して、receive-service によって指定されている MQSeries ロケーションからの メッセージおよびメッセージ・メタデータを含む表を返します。この操作を実 行すると、receive-service に関連するキューからこのメッセージが除去され ます。 correl-id が指定されている場合、一致する相関 ID を持つメッセージだけが 返されます。correl-id が指定されていない場合、キューの先頭にあるメッセ ージが返されます。 num-rows が指定されている場合、num-rows メッセージの最大数が返されます。 num-rows が指定されていない場合、有効なすべてのメッセージが返されます。 返される表には以下の列が含まれます。 * MSG - MQSeries メッセージの内容を含む CLOB 列。 * CORRELID - メッセージを関連させるために使用される相関 ID を持つ VARCHAR(24) 列。 * TOPIC - 使用可能な場合、メッセージが発行されたときに使用されたトピッ クを持つ VARCHAR(40) 列。 * QNAME - メッセージが受信されたキューの名前を持つ VARCHAR(48) 列。 * MSGID - このメッセージに割り当てられた MQSeries 固有 ID を持つ CHAR(24) 列。 * MSGFORMAT - MQSeries により定義されているようなメッセージの形式を持つ VARCHAR(8) 列。一般的なストリングの形式は MQSTR 形式です。 receive-service メッセージの受信元である論理 MQSeries 宛先を含むストリングです。 receive-service が指定されている場合、AMT.XML リポジトリー・ファイル に定義されているサービス・ポイントを参照します。サービス・ポイントと は、メッセージの送受信元である論理エンドポイントのことです。サービ ス・ポイントの定義には、MQSeries キュー・マネージャーおよびキューの 名前が含まれます。詳しくは「MQSeries アプリケーション・メッセージン グ・インターフェース」マニュアルを参照してください。 receive-service が指定されていない場合、DB2.DEFAULT.SERVICE が使用されます。 receive-service の最大サイズは 48 バイトです。 service-policy このメッセージの処理に使用される MQSeries AMI サービス・ポリシーを含 むストリングです。 service-policy が指定されている場合、AMT XML リポ ジトリー・ファイルに定義されているポリシーを参照します。サービス・ポ リシーは、このメッセージング操作に適用されるサービス・オプションの品 質のセットを定義します。このオプションには、メッセージ優先順位とメッ セージ持続性が含まれます。詳しくは「MQSeries アプリケーション・メッ セージング・インターフェース」マニュアルを参照してください。 service-policy が指定されていない場合、デフォルトの DB2.DEFAULT.POLICY が使用されます。service-policy の最大サイズは 48 バイトです。 correl-id このメッセージに関連した相関 ID を含むオプションのストリングです。 correl-id は、要求を応答に関連させるために、要求および応答のシナリオ でよく指定されます。これが指定されていない場合、相関 ID は指定されま せん。 correl-id の最大サイズは 24 バイトです。 num-rows この関数により返されるメッセージの最大数を含む正の整数です。 例: 例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューか らすべてのメッセージが受信されます。メッセージとすべてのメタデータが表 として返されます。 SELECT * FROM table (MQRECEIVEALLCLOB()) T 例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 サービス MYSERVICE により指定されているキューの先頭からすべてのメッセー ジが受信されます。 MSG 列と CORRELID 列だけが返されます。 SELECT T.MSG, T.CORRELID FROM table (MQRECEIVEALLCLOB('MYSERVICE')) T 例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により指定されているキューの先頭からすべてのメッセージが受信されます。 '1234' の CORRELID を持つメッセージだけが返されます。 MSG 列と CORRELID 列だけが返されます。 SELECT T.MSG, T.CORRELID FROM table (MQRECEIVEALLCLOB('MYSERVICE','MYPOLICY','1234')) T 例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの 先頭から最初の 10 メッセージが受信されます。列はすべて返されます。 SELECT * FROM table (MQRECEIVEALLCLOB(10)) T MQSeries 関数でサポートされるようになった CLOB データ MQSeries 関数 (DB2MQ スキーマで定義された関数) には、VARCHAR データに加 えて、CLOB データでも使用できる機能が含まれるようになりました。新規関数 が CLOB データ・タイプを処理する場合もあれば、既存の関数が CLOB と VARCHAR データの両方を処理するようになった場合もあります。いずれの場合 も、CLOB 関数の構文は、VARCHAR の場合と同一です。CLOB データの使用をサ ポートする関数と VARCHAR データの使用をサポートする関数は、次の表にリス トされています。 表 18. CLOB データ・タイプをサポートする MQSeries 関数 +----------------------------------+----------------------------------+ | VARCHAR データ用に使用される関数 | CLOB データ用に使用される関数 | +----------------------------------+----------------------------------+ | MQPUBLISH | MQPUBLISH | +----------------------------------+----------------------------------+ | MQREAD | MQREADCLOB | +----------------------------------+----------------------------------+ | MQRECEIVE | MQRECEIVECLOB | +----------------------------------+----------------------------------+ | MQSEND | MQSEND | +----------------------------------+----------------------------------+ | MQREADALL | MQREADALLCLOB | +----------------------------------+----------------------------------+ | MQRECEIVEALL | MQRECEIVEALLCLOB | +----------------------------------+----------------------------------+ MQSeries 関数 (DB2MQ スキーマに定義されているもの) を使用可能化する方法 については "MQSeries"を参照してください。 データ・タイプ情報 データ・タイプのプロモーション このセクションでは、表 5 に各データ・タイプの優先順位リストが示されま す。以下に注意してください。 1. ユニコード・データベースの場合、以下が同等のデータ・タイプと見なされ ます。 * CHAR および GRAPHIC * VARCHAR および VARGRAPHIC * LONG VARCHAR および LONG VARGRAPHIC * 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 データ・タイプ間のキャスト 次の項目が、「特殊タイプを含む次のキャストがサポートされています」と紹 介されているリストに追加されました。 * ユニコード・データベースの場合、VARCHAR または VARGRAPHIC からソー ス・データ・タイプ CHAR または GRAPHIC の特殊タイプ DT へのキャスト。 以下は、「表 6. 組み込みデータ・タイプ間でサポートされるキャスト」に対 する更新です。影響を受ける表の行のみが示されています。 表 19. 組み込みデータ・タイプ間でサポートされているキャスト +----------------------+-----+-----+-----+-----+-----+-----+-----+----+ | ターゲット・データ・ | C | V | L | C | G | V | L | D | | タイプ -> | H | A | O | L | R | A | O | B | | | A | R | N | O | A | R | N | C | | | R | C | G | B | P | G | G | L | | | | H | V | | H | R | V | O | | | | A | A | | I | A | A | B | | | | R | R | | C | P | R | | | | | | C | | | H | G | | | ソース・データ・タイ | | | H | | | I | R | | | プ V | | | A | | | C | A | | | | | | R | | | | P | | | | | | | | | | H | | | | | | | | | | I | | | | | | | | | | C | | +----------------------+-----+-----+-----+-----+-----+-----+-----+----+ | 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 | - | - | Y2 | Y1 | Y | Y | Y | Y | +----------------------+-----+-----+-----+-----+-----+-----+-----+----+ 1 キャストはユニコード・データベースでのみサポートされています。 2 キャストはユニコード・データベースでのみサポートされています。 明示的なキャストのみがサポートされます。 割り当てと比較 文字および漢字データの両方を含む割り当てと比較は、ストリングのいずれか がリテラルのときにのみサポートされます。関数解決については、漢字リテラ ルと文字リテラルは文字および漢字関数パラメーターの両方に一致します。 以下は、「表 7. 割り当てと比較についてのデータ・タイプ互換性」に対する 更新です。影響を受ける表の行と、新しい脚注 6 のみが示されています。 +-------+-----+------+------+-------+-----+-----+----+----+------+----+ | オペ | 2 | 10 | 浮動 | 文字 | 漢 | 日 | 時 | タ | バイ | UD | | ラン | 進 | 進数 | 少数 | スト | 字 | 付 | 刻 | イ | ナリ | T | | ド | 整 | | 点 | リン | ス | | | ム | ー・ | | | | 数 | | | グ | ト | | | ・ | スト | | | | | | | | リ | | | ス | リン | | | | | | | | ン | | | タ | グ | | | | | | | | グ | | | ン | | | | | | | | | | | | プ | | | +-------+-----+------+------+-------+-----+-----+----+----+------+----+ | 文字 | No | No | No | Yes | Yes | 1 | 1 | 1 | No | 2 | | スト | | | | | 6 | | | | 3 | | | リン | | | | | | | | | | | | グ | | | | | | | | | | | +-------+-----+------+------+-------+-----+-----+----+----+------+----+ | 漢字 | 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 章 言語エレメント』の『ストリング 変換の規則』を参照してください。 結果データ・タイプの規則 ユニコード・データベースの文字および漢字ストリング これは、サブセクション『漢字ストリング』の後に挿入される新しいサブセク ションです。 ユニコード・データベースでは、文字ストリングと漢字ストリングには互換性 があります。 +-------------------+-------------------+-----------------------------+ | オペランド... | 他のオペランド... | 結果のデータ・タイプ... | +-------------------+-------------------+-----------------------------+ | GRAPHIC(x) | CHAR(y) または | GRAPHIC(z)、z = max(x,y) | | | GRAPHIC(y) | | +-------------------+-------------------+-----------------------------+ | VARGRAPHIC(x) | CHAR(y) または | VARGRAPHIC(z)、z = max(x,y) | | | VARCHAR(y) | | +-------------------+-------------------+-----------------------------+ | VARCHAR(x) | GRAPHIC(y) または | VARGRAPHIC(z)、z = max(x,y) | | | VARGRAPHIC | | +-------------------+-------------------+-----------------------------+ | 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) | +-------------------+-------------------+-----------------------------+ ストリング変換の規則 3 番目のポイントが、このセクションの次のリストに追加されました。 コード・ページの各ペアについて、次の規則を順番に適用することで結果が決 定されます。 * コード・ページが等しい場合、結果はそのコード・ページになります。 * コード・ページが BIT DATA (コード・ページ 0) 結果のコード・ページは BIT DATA になります。 * ユニコード・データベースで、あるコード・ページが他のコード・ページと 異なるエンコード・スキームでデータを指定する場合、結果は UTF-8 では なく UCS-2 になります (つまり、漢字データ・タイプが文字データ・タイ プに優先します)。1 * それ以外の場合、結果のコード・ページは「SQL 解説書」の『第 3 章 言語 エレメント』のストリング変換の規則』セクションの表 8 で決定されます。 表の「最初」の項目は、最初のオペランドからのコード・ページが選択され ることを意味し、「2 番目」は 2 番目のオペランドからのコード・ページ が選択されることを意味します。 1 非ユニコード・データベースでは、異なるエンコード・スキーム間 の変換はサポートされていません。 式 以下が追加されました。 ユニコード・データベースでは、文字または漢字ストリングを受け入れる式 は、変換がサポートされるストリング・タイプを受け入れます。 連結演算子 以下がこのサブセクションの終わりに追加されました。 ユニコード・データベースでは、文字ストリング・オペランドと漢字ストリン グ・オペランドの両方を含む連結は、最初に文字オペランドを漢字オペランド に変換します。非ユニコード・データベースでは、連結は文字および漢字オペ ランドの両方を扱うことはできません。 述部 次の項目が、「次の規則がすべてのタイプの述部に適用されます」という文で 紹介されているリストに追加されました。 * ユニコード・データベースでは、文字または漢字ストリングを受け入れる述 部はすべて、変換がサポートされるストリング・タイプを受け入れます。 ユニコード情報 スカラー関数およびユニコード ユニコード・データベースでは、文字または漢字ストリングを受け入れるスカ ラー関数はすべて、変換がサポートされるストリング・タイプを受け入れま す。 GRAPHIC タイプと DATE/TIME/TIMESTAMP の互換性 以下のセクションでは、日時値の「文字ストリング」表記という言い方は、 「ストリング」表記に変更されています。DB2 は、ユニコード・データベース に限り、日時値の「漢字ストリング」表記をサポートするようになりました。 日時値のストリング表記 データ・タイプが DATE、TIME、または TIMESTAMP の値は、ユーザーがすぐに 理解できる形の内部形式で表されます。しかし、日付値、時刻値、およびタイ ム・スタンプ値も、ストリングで表すことができます。データ・タイプが DATE、TIME、または TIMESTAMP の定数または変数は存在しないため、ストリン グで表すことができるのは便利です。日時値を検索するには、その前に、その 日時値がストリング変数に割り当てられている必要があります。CHAR 関数また は GRAPHIC 関数 (ユニコード・データベースのみ) は、日時値をストリング表 記に変更するために使用できます。ストリング表記は、プログラムがプリコン パイルされるかデータベースにバインドされるときに DATETIME オプションの 指定によってオーバーライドされない限り、通常は、データベースの国別/地域 別コードに関連した、日時値のデフォルト形式です。 その長さにかかわらず、ラージ・オブジェクト・ストリング、LONG VARCHAR 値 または LONG VARGRAPHIC 値を、日時値を表すために使用することはできません (SQLSTATE 42884)。 内部日時値の操作で日時値の有効なストリング表記が使用される場合、そのス トリング表記は、操作の前に、日付、時刻、またはタイム・スタンプの内部形 式に変換されます。 日付、時刻、およびタイム・スタンプのストリングに、文字と数字以外は含め ることはできません。 日付ストリング、時刻ストリング、および日時ストリング これらの用語の定義が少し変更されています。「文字ストリング」表記という 言い方は、「ストリング」表記に変更されました。 データ・タイプ間のキャスト DATE、TIME、および TIMESTAMP を GRAPHIC および VARGRAPHIC にキャストで きるようになりました。GRAPHIC および VARGRAPHIC を DATE、TIME、および TIMESTAMP にキャストできるようになりました。漢字ストリングはユニコー ド・データベースでのみサポートされます。 割り当てと比較 割り当てと比較において、漢字ストリングと、DATE 値、TIME 値、および TIMESTAMP 値の間でデータ・タイプの互換性ができました。漢字ストリングは ユニコード・データベースでのみサポートされます。 日時の割り当て 日時の割り当てにおける基本ルールは、DATE 値、TIME 値、または TIMESTAMP 値は、一致するデータ・タイプ (DATE、TIME、または TIMESTAMP のそれぞれ) の列か、あるいは、固定長または可変長ストリング変数またはストリング列に のみ割り当てることができるということです。LONG VARCHAR、CLOB、LONG VARGRAPHIC、 DBCLOB、または BLOB 変数または列に割り当てることはできませ ん。 日時値がストリング変数またはストリング列に割り当てられるとき、ストリン グ表記への変換は自動的に行われます。日付、時刻、またはタイム・スタンプ のどの部分においても、先行ゼロは保持されます。ターゲットに必要な長さ は、ストリング表記のフォーマットによって異なります。ターゲットの長さが 必要な長さよりも長く、しかもターゲットが固定長ストリングである場合は、 右にブランクが埋め込まれます。ターゲットの長さが必要な長さよりも短い場 合は、日時値のタイプとターゲットのタイプによって、結果は異なります。 ターゲットがホスト変数の場合、以下のルールが適用されます。 * DATE: 変数の長さが 10 文字より短い場合、エラーになります。 * TIME: USA フォーマットが使用されている場合、変数の長さは、8 文字以上 である必要があります。その他のフォーマットの場合、長さは 5 文字以上 である必要があります。 ISO または JIS フォーマットを使用する場合で、ホスト変数の長さが 8 文 字未満であれば、時刻の「秒」部分は結果から省略され、標識変数があれ ば、そこに割り当てられます。SQLCA の SQLWARN1 フィールドが設定され て、省略されたことが示されます。 * TIMESTAMP: ホスト変数が 19 文字未満の場合、エラーになります。長さが 19 文字以上、26 文字未満の場合、値の「マイクロ秒」部分の末尾桁は省略 されます。 SQLCA の SQLWARN1 フィールドが設定されて、省略されたこと が示されます。 DATE >>-DATE--(--expression--)-------------------------------------->< スキーマは SYSIBM です。 DATE 関数は、値からの日付を戻します。 引き数は、日付、タイム・スタンプ、3 652 059 以下の正数、日付またはタイ ム・スタンプの有効なストリング表記、または、LONG VARCHAR、CLOB、LONG VARGRAPHIC、DBCLOB、BLOB 以外の、長さが 7 のストリングである必要があり ます。 ユニコード・データベースだけが、日付またはタイム・スタンプの漢字ストリ ング表記の引き数をサポートします。 引き数が長さ 7 のストリングである場合、そのストリングは yyyynnn 形式 で、有効な日付を表している必要があります。ここで、yyyy は年を表す数字 で、nnn は年間通算日を表す 001 から 366 の間の数字です。 この関数の結果は日付です。引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。引き数が NULL であれば、結果は NULL 値にな ります。 その他のルールは、引き数のデータ・タイプによって異なります。 * 引き数が日付またはタイム・スタンプ、あるいは、日付またはタイム・スタ ンプを表す有効なストリングである場合: * 結果は、値の日付部分です。 * 引き数が数値である場合: * 結果は、1 月 1 日 (0001) 以後の日付で、n-1 です。n は数値の整数部 分です。 * 引き数が長さ 7 のストリングである場合: * 結果は、ストリングが表す日付です。 例: 列 RECEIVED (タイム・スタンプ) の内部値が '1988-12-25-17.12.30.000000' を表していると想定します。 * この例では、'1988-12-25' の内部表記になります。 DATE(RECEIVED) * この例では、'1988-12-25' の内部表記になります。 DATE('1988-12-25') * この例では、'1988-12-25' の内部表記になります。 DATE('25.12.1988') * この例では、'0001-02-04' の内部表記になります。 DATE(35) GRAPHIC >>-GRAPHIC--(--graphic-expression--+------------+--)----------->< '-,--integer-' スキーマは SYSIBM です。 GRAPHIC 関数は、漢字ストリング・タイプの GRAPHIC 表記、あるいは日時タイ プの GRAPHIC 表記を戻します。 graphic-expression 漢字ストリング値を戻す式 です。 integer 結果の GRAPHIC データ・タイプの長さ属性を指定する整数値です。値は 1 から 127 の間でなければなりません。integer が指定されなければ、結果 の長さは、1 番目の引き数の長さと同じになります。 この関数の結果は GRAPHIC です。引き数が NULL となる可能性がある場合、結 果が NULL となる可能性があります。引き数が NULL であれば、結果は NULL 値になります。 日時から漢字: >>-GRAPHIC--(--datetime-expression--+--------------+--)-------->< '-,--+-ISO---+-' +-------+ +-EUR---+ +-JIS---+ '-LOCAL-' 日時から漢字 datetime-expression 次の 3 つのデータ・タイプのいずれかの式です。 日付 結果は、2 番目の引き数で指定された形式で表され た、日付の漢字ストリング表記です。結果の長さは 10 です。2 番目の引き数が指定されており、かつそれが有 効な値でない場合は、エラーになります (SQLSTATE 42703)。 時刻 結果は、2 番目の引き数で指定された形式で表された、 時刻の漢字ストリング表記です。結果の長さは 8 で す。2 番目の引き数が指定されており、かつそれが有効 な値でない場合は、エラーになります (SQLSTATE 42703)。 タイム・スタンプ このタイプには 2 番目の引き数は当てはまりません。 指定しないでください (SQLSTATE 42815)。結果は、タ イム・スタンプの漢字ストリング表記です。結果の長さ は 26 です。 ストリングのコード・ページは、アプリケーション・サーバーで のデータベースのコード・ページです。 TIME >>-TIME--(--expression--)-------------------------------------->< スキーマは SYSIBM です。 TIME 関数は、値からの時刻を戻します。 引き数は、時刻またはタイム・スタンプであるか、または LONG VARCHAR、 CLOB、 LONG VARGRAPHIC、DBCLOB、BLOB を除く、時刻またはタイム・スタンプ を表す有効なストリング表記である必要があります。 ユニコード・データベースだけが、時刻またはタイム・スタンプの漢字ストリ ング表記の引き数をサポートします。 この関数の結果は時刻です。引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。引き数が NULL であれば、結果は NULL 値にな ります。 その他のルールは、引き数のデータ・タイプによって異なります。 * 引き数が時刻である場合: * 結果は、その時刻です。 * 引き数がタイム・スタンプである場合: * 結果は、そのタイム・スタンプの時刻部分です。 * 引き数がストリングである場合: * 結果は、そのストリングが表す時刻です。 例: * サンプルの IN_TRAY 表から、1 日のうち (任意の日)、受信してから現在時 刻まで、少なくとも 1 時間以上経過したメモをすべて選択します。 SELECT * FROM IN_TRAY WHERE TIME(RECEIVED) >= CURRENT TIME + 1 HOUR TIMESTAMP >>-TIMESTAMP--(--expression--+-------------+--)---------------->< '-,expression-' スキーマは SYSIBM です。 TIMESTAMP 関数は、1 つの値または 1 組の値から、タイム・スタンプを戻しま す。 ユニコード・データベースだけが、日付、時刻、またはタイム・スタンプが漢 字ストリングで表記された引き数をサポートします。 引き数のルールは、2 番目の引き数が指定されたかどうかによって異なります。 * 引き数が 1 つだけ指定された場合: * その引き数は、タイム・スタンプ、タイム・スタンプの有効なストリン グ表記、または、LONG VARCHAR、CLOB、LONG VARGRAPHIC、DBCLOB、また は BLOB を除く、長さが 14 のストリングである必要があります。 長さが 14 のストリングは、有効な日時を表す yyyyxxddhhmmss の形式 の数字のストリングである必要があります。ここで yyyy は年、xx は 月、dd は日、hh は時、mm は分、ss は秒です。 * 両方の引き数が指定された場合: * 1 番目の引き数は日付または日付を表す有効なストリングであり、2 番 目のストリングは、時刻または時刻を表す有効なストリングである必要 があります。 この関数の結果はタイム・スタンプです。どちらかの引き数が NULL となる可 能性がある場合、結果が NULL となる可能性があります。どちらかの引き数が NULL であれば、結果は NULL 値になります。 もう一方のルールは、2 番目の引き数が指定されたかどうかによって異なりま す。 * 両方の引き数が指定された場合: * 結果は、1 番目の引き数で指定された日付と、2 番目の引き数で指定さ れた時刻が入ったタイム・スタンプです。タイム・スタンプのマイクロ 秒の部分はゼロです。 * 引き数が 1 つだけ指定され、それがタイム・スタンプである場合: * 結果は、そのタイム・スタンプです。 * 引き数が 1 つだけ指定され、それがストリングである場合: * 結果は、そのストリングが表すタイム・スタンプです。引き数が長さ 14 のストリングの場合、タイム・スタンプのマイクロ秒の部分はゼロにな ります。 例: * 列 START_DATE (日付) が 1988-12-25 の値で、列 START_TIME (時刻) が 17.12.30 の値を表していると想定します。 TIMESTAMP(START_DATE, START_TIME) 値 '1988-12-25-17.12.30.000000' が戻されます。 VARGRAPHIC 文字から Vargraphic: >>-VARGRAPHIC--(--character-string-expression--)--------------->< 日時から Vargraphic: >>-VARGRAPHIC--(--datetime-expression--)----------------------->< 漢字から Vargraphic: >>-VARGRAPHIC--(--graphic-string-expression--+------------+-----> '-,--integer-' >--)----------------------------------------------------------->< スキーマは SYSIBM です。 VARGRAPHIC 関数は、次のものの漢字ストリング表記を戻します。 * 1 バイト文字から 2 バイト文字に変換した、文字ストリング値 * 日時値 (ユニコード・データベースのみがサポート) * 1 番目の引き数が漢字ストリングのタイプであれば、漢字ストリング値 この関数の結果は、いろいろな長さの漢字ストリング (VARGRAPHIC データ・タ イプ) です。 1 番目の引き数が NULL となる可能性がある場合、結果が NULL となる可能性があります。 1 番目の引き数が NULL であれば、結果は NULL 値 になります。 文字から Vargraphic character-string-expression 値が LONG VARCHAR または CLOB 以外の文字ストリングのデータ・タイプで あり、かつ最大長が 16 336 バイト未満の式でなければなりません。 結果の長さ属性は、引き数の長さ属性と同じです。 S が character-string-expression の値を表すとします。S の中の各 1 バイ ト文字は、それに対応する 2 バイト表記、または 2 バイトの置換文字に変換 されます。S の中の各 2 バイト文字は、「そのまま」マップされます。2 バイ ト文字の 1 番目のバイトが S の最後のバイトである場合、その文字は、2 バ イトの置換文字に変換されます。S 内の文字の順序は保持されます。 以下は、変換に関する追加の考慮事項です。 * ユニコード・データベースの場合、この関数は、文字ストリングを、オペラ ンドのコード・ページから UCS-2 に変換します。オペランドに指定された 文字は、DBCS 文字も含めて、すべて変換されます。2 番目の引き数が指定 された場合、それによって、結果の UCS-2 ストリングの必要な長さ (UCS-2 文字の数) が指定されます。 * VARGRAPHIC 関数による 2 バイト・コード・ポイントへの変換は、オペラン ドのコード・ページに基づいて行われます。 * オペランドの 2 バイト文字は変換されません。それ以外の文字はすべて、 それぞれ対応する 2 バイト表現に変換されます。対応する 2 バイト表現が ない場合、そのコード・ページの 2 バイトの置換文字が使用されます。 * 結果に置換文字が 1 つ以上戻されると、警告またはエラー・コードは生成 されません。 日時から Vargraphic datetime-expression 値が DATE、TIME、または TIMESTAMP データ・タイプである式です。 漢字から Vargraphic graphic-string-expression 漢字ストリング値を戻す式です。 integer いろいろな長さとなる結果の漢字ストリングの長さ属性です。値は 0 から 16 336 の間でなければなりません。この引き数が指定されなければ、結果 の長さは、1 番目の引き数の長さと同じになります。 graphic-string-expression の長さが結果の長さ属性よりも長い場合、切り捨 てられる文字がすべてブランクで、しかも graphic-string-expression が長ス トリング (LONG VARGRAPHIC または DBCLOB) でない限り、切り捨てが行われ、 警告が戻されます (SQLSTATE 01004)。 ユニコード・データベースのより大きな索引キー ALTER TABLE レジストリー変数 DB2_INDEX_2BYTEVARLEN がオンであったときに定義された、 1 次および固有キーを含む索引の一部である可変長列の長さを 255 バイトを超 える長さに変更することができます。実際、可変長列は外部キーに関係してい ますが、レジストリー値の設定にかかわらず、列を 255 バイトを超える長さに 変更することを妨げるわけではありません。ただし、対応する 1 次キーの長さ が 255 バイトを超えていないかぎり、長さが 255 を超えるデータを表に挿入 することはできません。これが可能なのは、レジストリー変数 ON で 1 次キー が作成された場合だけです。 CREATE INDEX レジストリー変数 DB2_INDEX_2BYTEVARLEN が ON であれば、長さが 255 バイ トを超える可変長列に索引を定義できます。 CREATE TABLE レジストリー変数 DB2_INDEX_2BYTEVARLEN が ON になっていれば、可変キー 部分を持つ 1 次および固有キーのサイズを 255 より大きくすることができま す。長さが 255 バイトを超える可変長列に外部キーを定義できます。 ALLOCATE CURSOR ステートメントの注の誤り ALLOCATE CURSOR ステートメントの「注:」で、2 つの項目が間違って印刷され ています。これらの項目の情報は、無視してください。 GET DIAGNOSTICS ステートメントの追加オプション GET DIAGNOSTICS ステート メント GET DIAGNOSTICS ステートメントは、直前に呼び出された SQL ステート メントに関する情報を入手するのに使用されます。このステートメント の構文は、以下のように更新されました。 コマンド構文 >>-GET DIAGNOSTICS----------------------------------------------> >--+-SQL-variable-name--=--+-ROW_COUNT-----+-+----------------->< | '-RETURN_STATUS-' | '-| condition-information |---------------' condition-information: |--EXCEPTION--1-------------------------------------------------> .-,------------------------------------------. V | >----SQL-variable-name--=--+-MESSAGE_TEXT-----+-+---------------| '-DB2_TOKEN_STRING-' コマンド・パラメーター SQL-variable-name 割り当てのターゲットである変数を識別します。ROW_COUNTまたは RETURN_STATUS が指定された場合、この変数は整変数でなければなり ません。整変数でない場合は、変数は CHAR または VARCHAR でなけ ればなりません。 SQL 変数は複合ステートメントで定義できます。 ROW_COUNT 直前に呼びされた SQL ステートメントに関連する行数を識別します。 直前の SQL ステートメントが DELETE、INSERT、または UPDATE ステ ートメントの場合、 ROW_COUNT はそのステートメントによって、そ れぞれ削除、挿入、または更新された行数を識別します。その際に、 トリガーまたは参照保全制約によって影響を受ける行は除外されま す。直前のステートメントが PREPARE ステートメントの場合、 ROW_COUNT は、準備済みステートメントの結果行の見積もり数を識別 します。 RETURN_STATUS 直前に実行された SQL ステートメントが、状況を戻すプロシージャ ーを呼び出す CALL ステートメントの場合に、そのステートメントに 関連するストアード・プロシージャーから戻される状況値を識別しま す。直前のステートメントがそのようなステートメントでなければ、 戻される値は特に意味のない、何らかの整数です。 condition-information 直前に実行された SQL ステートメントに対するエラーまたは警告情 報を戻すよう指定します。エラーに関する情報が必要な場合は、GET DIAGNOSTICS ステートメントは、エラーをハンドルするハンドラーに 指定された最初のステートメントでなければなりません。警告に関す る情報が必要で、ハンドラーが警告状態を制御するようにしたい場合 は、 GET DIAGNOSTICS ステートメントはそのハンドラーで最初のス テートメントに指定しなければなりません。ハンドラーが警告条件の 制御を得ないようにする場合は、 GET DIAGNOSTICS ステートメント を実行する次のステートメントにします。 MESSAGE_TEXT 直前に実行された SQL ステートメントから戻されるエラーや警告 メッセージ・テキストを識別します。メッセージ・テキストは、 ステートメントが処理されるデータベース・サーバーの言語で戻 されます。ステートメントが SQLCODE ゼロで完了すると、空スト リングまたはブランクが戻されます。 DB2_TOKEN_STRING 直前に実行された SQL ステートメントから戻されるエラーや警告 メッセージ・トークンを識別します。ステートメントが SQLCODE ゼロで完了するか、または SQLCODE にトークンがないと、空スト リングまたはブランクが戻されます。 副選択内の ORDER BY DB2 は、副選択および全選択の ORDER BY をサポートするようになりました。 全選択 以下に、order-by-clause の位置を示す、変更後の全選択の構文図の一部を示 します。 >>-+-subselect---------+----------------------------------------> +-(fullselect)------+ '-| values-clause |-' .----------------------------------------------. V | >----+------------------------------------------+-+-------------> '-+-UNION---------+--+-subselect---------+-' +-UNION ALL-----+ +-(fullselect)------+ +-EXCEPT--------+ '-| values-clause |-' +-EXCEPT ALL----+ +-INTERSECT-----+ '-INTERSECT ALL-' >--+-----------------+----------------------------------------->< '-order-by-clause-' ORDER BY 文節を含む全選択は、以下では指定できません。 * サマリー表 * ビューの最外部全選択 (SQLSTATE 428FJ SQLCODE -20211) 全選択内の ORDER BY 文節は、照会から戻される行の順序には影響しません。 ORDER BY 文節は、最外部全選択で指定された場合のみ、戻された行の順序に影 響します。 副選択 以下に、order-by-clause の位置を示す、変更後の副選択の完全な構文図を示 します。 >>-select-clause--from-clause--+--------------+-----------------> '-where-clause-' >--+-----------------+--+---------------+-----------------------> '-group-by-clause-' '-having-clause-' >--+-----------------+----------------------------------------->< '-order-by-clause-' 副選択の文節は、以下の順序で処理されます。 1. FROM 文節 2. WHERE 文節 3. GROUP BY 文節 4. HAVING 文節 5. SELECT 文節 6. ORDER BY 文節 ORDER BY 文節を含む副選択は、以下では指定できません。 * ビューの最外部全選択 * サマリー表 * 副選択が括弧で囲まれていない場合 例えば、以下の構文は無効です (SQLSTATE 428FJ SQLCODE -20211)。 SELECT * FROM T1 ORDER BY C1 UNION SELECT * FROM T2 ORDER BY C1 以下の例が有効です。 (SELECT * FROM T1 ORDER BY C1) UNION (SELECT * FROM T2 ORDER BY C1) 副選択内の ORDER BY 文節は、照会から戻される行の順序には影響しません。 ORDER BY 文節は、最外部全選択で指定された場合のみ、戻された行の順序に影 響します。 order-by-clause 以下に、変更後の order-by-clause の完全な構文図を示します。 .-,------------------------------. V .-ASC--. | >>-ORDER BY----+-sort-key--+------+---------+-+---------------->< | '-DESC-' | '-ORDER OF--table-designator-' sort-key: |--+-simple-column-name--+--------------------------------------| +-simple-integer------+ '-sort-key-expression-' ORDER OF table-designator table-designator で使用されているのと同じ配列が副選択の結果表に適用 されることを指定します。この文節を指定する副選択の FROM 文節に、 table-designator と一致する表参照がなければなりません (SQLSTATE 42703)。指定されている table-designator に対応する副選択 (または全選 択) は、データに従属する ORDER BY 文節を含む必要があります (SQLSTATE 428FI SQLCODE -20210)。ネストされた副選択 (または全選択)の ORDER BY 文節の列が外部の副選択 (または全選択) に組み込まれ、またこれらの列が ORDER OF 文節の代わりに指定されたかのように、同じ配列が適用されます。 表指定子に関する詳細は、「SQL 解説書」の『あいまいさを避けるための列 名修飾子』を参照してください。 このフォームは、全選択では使用できないことに注意してください (全選択 の古いフォームを除く)。例えば、以下の例は無効です。 (SELECT C1 FROM T1 ORDER BY C1) UNION SELECT C1 FROM T2 ORDER BY ORDER OF T1 以下の例が有効です。 SELECT C1 FROM (SELECT C1 FROM T1 UNION SELECT C1 FROM T2 ORDER BY C1 ) AS UTABLE ORDER BY ORDER OF UTABLE select-statement 以下に、変更後の select-statement の完全な構文図を示します。 >>-+-----------------------------------+--fullselect------------> | .-,-----------------------. | | V | | '-WITH----common-table-expression-+-' >--fetch-first-clause--*--+--------------------+----------------> +-read-only-clause---+ | (1) | '-update-clause------' >--*--+---------------------+--*--+--------------+------------->< '-optimize-for-clause-' '-WITH--+-RR-+-' +-RS-+ +-CS-+ '-UR-' 注: 1. 全選択に order-by-clause が含まれる場合は、 update-clause を指定する ことはできません。 SELECT INTO ステートメント 構文 .-,-------------. V | >>-select-clause--INTO----host-variable-+--from-clause----------> >--+--------------+--+-----------------+--+---------------+-----> '-where-clause-' '-group-by-clause-' '-having-clause-' >--+-----------------+--+--------------+----------------------->< '-order-by-clause-' '-WITH--+-RR-+-' +-RS-+ +-CS-+ '-UR-' OLAP 関数 (window-order-clause) 以下に、変更後の window-order-clause を示す、OLAP 関数の構文図の一部を 示します。 window-order-clause: .-,--------------------------------------------. V .-| asc option |--. | |--ORDER BY----+-sort-key-expression--+-----------------+-+-+---| | '-| desc option |-' | '-ORDER OF--table-designator---------------' asc option: .-NULLS LAST--. |--ASC--+-------------+-----------------------------------------| '-NULLS FIRST-' desc option: .-NULLS FIRST-. |--DESC--+-------------+----------------------------------------| '-NULLS LAST--' ORDER BY (sort-key-expression,...) 区画内の行の配列を定義し、OLAP 関数の値を決定したり、あるいは window-aggregation-group-clause の ROW 値の意味を判別したりします (照会結果セットの配列は定義されません)。 sort-key-expression ウィンドウ区画内の行の配列の定義に使用される式です。 sort-key-expression 内で参照される各列名は、OLAP 関数を含み、副選択 の結果セットの列を明確に参照するものでなければなりません (SQLSTATE 42702 または 42703)。各 sort-key-expression の長さは、 255 バイトを 超えてはなりません (SQLSTATE 42907)。sort-key-expression は、スカラ ー全選択を組み込むことはできません (SQLSTATE 42822)。また、可変の関 数、あるいは外部処理を伴う関数を組み込むことはできません (SQLSTATE 42845)。この文節は、RANK および DENSE_RANK 関数で必要です (SQLSTATE 42601)。 ASC sort-key-expression の値を昇順にします。 DESC sort-key-expression の値を降順にします。 NULLS FIRST ウィンドウ配列において、ソート順序は、すべての非 NULL 値の 前に NULL 値が置かれます。 NULLS LAST ウィンドウ配列において、ソート順序は、すべての非 NULL 値の 後に NULL 値が置かれます。 ORDER OF table-designator table-designator で使用されているのと同じ配列が副選択の結果表に適用 されることを指定します。この文節を指定する副選択の FROM 文節に、 table-designator と一致する表参照がなければなりません (SQLSTATE 42703)。指定されている table-designator に対応する副選択 (または全選 択) は、データに従属する ORDER BY 文節を含む必要があります (SQLSTATE 428FI SQLCODE -20210)。ネストされた副選択 (または全選択)の ORDER BY 文節の列が外部の副選択 (または全選択) に組み込まれ、またこれらの列が ORDER OF 文節の代わりに指定されたかのように、同じ配列が適用されます。 表指定子に関する詳細は、「SQL 解説書」の『あいまいさを避けるための列 名修飾子』を参照してください。 GET_ROUTINE_SAR プロシージャー用の新規入力引き数 このプロシージャーは、タイプ INTEGER の入力引き数である hide_body_flag をサポートするようになりました。この引き数は、ルーチン・テキストがカタ ログから抽出されたときに、ルーチン本文を隠すかどうかを、(以下のいずれか を使用して) 指定します。 0 ルーチン・テキストをそのままにします。これがデフォルト値です。 1 ルーチン・テキストがカタログから抽出されたときに、ルーチン本文 を空の本文と置き換えます。 >>-GET_ROUTINE_SAR----------------------------------------------> >--(--sarblob--,--type--,--routine_name_string--+-------------------+--)->< '-,--hide_body_flag-' SET INTEGRITY ステートメントに必要な許可 保全性の検査をオフにするためにこのステートメントを使用する場合、ステー トメントの許可 ID の特権に、少なくとも以下のいずれかが含まれていなけれ ばなりません。 * CONTROL 特権: * 指定された表、 * ステートメントによって保全性検査がオフになった下層外部キー表、お よび * ステートメントによって保全性検査がオフになった下層即時サマリー表。 * SYSADM または DBADM 権限 * LOAD 権限 付録 N. 例外表 「メッセージ列構造の例外表」の 2 行目と 6 行目に、それぞれ最初とその次 に検出される制約違反のタイプが示されていますが、次のタイプが抜けていま した。 'D' - Delete Cascade violation ユニコード更新 入門 ユニコード標準は、書かれた文字とテキストのための汎用文字エンコード・ス キームです。 文字セットを非常に正確に定義すると同時に、少数のエンコード も定義します。 テキスト・データの国際的な交換と、グローバル・ソフトウェ アの基礎の作成を可能にするエンコード・マルチリンガル・テキストの一貫性 のある方法を定義します。 ユニコードには 2 つのエンコード・スキーム、UTF-16 および UTF-8 が備えら れています。 デフォルトのエンコード・スキームは 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 バイトを必要とします。 DB2 ユニコード・データベースおよびアプリケーション UTF-8 のコード・セットを指定して作成された DB2 ユニバーサル・データベー ス Unix 版、Windows 版、および OS/2 版を使用すれば、UCS-2 と UTF-8 の両 方のフォーマットのデータを保管できます。このようなデータベースは、ユニ コード・データベースと呼ばれます。 SQL 文字データは UTF-8 を使用してエ ンコードされ、SQL 漢字データは UCS-2 を使用してエンコードされます。 つ まり、MBCS 文字は、単一バイト文字および 2 バイト文字の両方を含めて文字 列に保管され、DBCS 文字は、漢字の列に保管されます。 アプリケーションのコード・ページは、DB2 がデータの保管に使用するコー ド・ページに一致しない場合があります。非ユニコード・データベースでは、 コード・ページが同じでない場合、データベース・マネージャーがクライアン トとサーバーの間で転送される文字および漢字 (純粋な DBCS) データを変換し ます。ユニコード・データベースでは、クライアント・コード・ページと UTF-8 間のデータの変換はデータベース・マネージャーによって自動的に実行されま すが、漢字 (UCS-2) データはクライアントとサーバーの間で変換されずに渡さ れます。 データベース・マネージャーによって実行されるコード・ページ変換 図 1. データベース・マネージャーによって実行されるコード・ページ変換 注: 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 にオーバーライド されます。 * 次のコマンドでアプリケーション・コード・ページを UTF-8 (1208) に 設定します。 db2set DB2CODEPAGE=1208 * 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. GRAPHIC リテラルは G 接頭部を使用して、文字リテラルと区別されます。 例えば、以下のようになります。 SELECT * FROM mytable WHERE mychar = 'utf-8 data' AND mygraphic = G'ucs-2 data' 注: G 接頭部はユニコード・データベースの場合、オプションです。 詳細および更新されたサポートについては、 "ユニコード・データベースの リテラル"を参照してください。 5. CLI/ODBC および JDBC アプリケーションのサポートは、組み込みアプリケ ーションのサポートとは異なります。CLI/ODBC サポートに関する情報につ いては、 "CLI の手引きおよび解説書"を参照してください。 6. UCS-2 のバイト順序は、プラットフォーム間で異なる場合があります。内部 的に DB2 はビッグ・エンディアン形式を使用します。 資料の更新 これらのリリース情報には、DB2 バージョン 7.1 でユニコードを使用する際の 次の情報に対する更新が含まれています。 * SQL 解説書: 第 3 章 言語エレメント 第 4 章 関数 第 6 章 SQL ステートメント * CLI ガイドおよび解説書: 第 3 章 拡張フィーチャー 付録 C DB2 CLI および ODBC * DB2 データ移動ユーティリティー手引きおよび解説書、付録 C エクスポー ト/インポート/ロード・ユーティリティー・ファイル形式 DB2 でのユニコードの使用法については、「管理の手引き」の各国語サポート (NLS) の付録『DB2 UDB でのユニコード・サポート』を参照してください。 第 VII 部 ホスト・システムへの接続 DB2 コネクト 使用者の手引き 増加する DB2 コネクト・データ転送速度 照会結果セットの行のブロック化に新しさがないのに対して、バージョン 6.1 リリース以降の DB2 (z/OS 版) (従来 DB2 (OS/390 版) と呼ばれていた) に は、DB2 コネクトなどのリモート・クライアントに対する OPEN または FETCH 要求に応答して複数の照会ブロックを戻す機能がありました。一度に 1 ブロッ クの行データを要求して DB2 (z/OS 版) サーバーに繰り返し要求を送信するの ではなく、クライアントはオプションでサーバーが追加の数の照会ブロックを 送り返すように要求できるようになりました。このような追加の照会ブロックを エクストラ照会ブロックと呼びます。 この新しいフィーチャーを使用すれば、クライアントはネットワーク回線反転 の数を最小化することができ、ネットワーク・パフォーマンスに大きな影響を 及ぼします。クライアントがサーバーに送信する照会ブロックへの要求の数が 減ると、パフォーマンスが大幅に押し上げられます。これは、送受信間のスイ ッチは、パフォーマンスの観点から高価な操作だからです。DB2 コネクトは、 DB2 (z/OS 版) サーバーからデフォルトでエクストラ照会ブロックを要求する ことによって、このパフォーマンス改善を活用できるようになりました。 TCP/IP の優先ネットワーク・プロトコル用のエクストラ照会ブロック (各ブロ ックは、最大 32K バイトまでの長さを取ることができる) の戻しを最大限利用 するために、ウィンドウ・スケーリング拡張機能も DB2 コネクトの RFC-1323 の下で設計済みとして使用可能化されます。このフィーチャーを使用すれば、 TCP/IP は動的かつ効率的に、送受信ウィンドウ・サイズを調整して、エクスト ラ照会ブロックを介して戻される可能性がある大量のデータを収容できます。 エクストラ照会ブロック バージョン 6.1 以降の DB2 (z/OS 版) サーバーにおけるエクストラ照会ブロ ック・サポートは、「DB2 DDF インストール」パネルの EXTRA BLOCKS SRV パ ラメーターを介して構成されます。 このパラメーターは、要求に対して DB2 がクライアントに送り返すことができるエクストラ照会ブロックの最大数を制 御し、0 〜 100 の間の値に設定できます。パラメーター値を 0 に設定する と、エクストラ照会ブロックを戻すことができなくなります。デフォルト値の 100 は、この設定値を理想的なレベル以下にするネットワークのあらゆる特質 を排除して、このフィーチャーを最大限に利用するために使用します。 アプリケーションが、同じ場所に配置された DB2 コネクト・インストールを介 して直接、または別の DB2 コネクト・サーバー・インストールを介して DB2 (z/OS 版) にアクセスするクライアント・サイドで、対応する DB2 コネクト・ サポートをカーソル単位でまたは次を使用してステートメント・ベースで活動 化する各種の方法があります。 * カーソルの照会行セット・サイズ * カーソルに関連した SELECT ステートメント上の 'OPTIMIZE for N ROWS' 節 * カーソルに関連した SELECT ステートメント上の 'FETCH FIRST N ROWS ONLY' 節 オプション 1 は、このセクションでは取り扱っていません。これは、DB2 コネ クト・バージョン 7.1 フィックスパック 2 の DB2 (z/OS 版) スクロール可能 サポートの一部としてすでにインプリメントされているからです。このセクシ ョンの焦点は、次のように異なる SQL API を使用してエクストラ照会ブロック を使用可能にすることではなく、オプション 2 および 3 の使用に当てられて います。 1. 組み込み SQL * SELECT ステートメント自体の上で 'OPTIMIZE for N ROWS' 節または 'FETCH FIRST N ROWS ONLY' 節 (あるいはその両方) を指定することに よって、照会のためにエクストラ照会ブロックを呼び出します。 * 'OPTIMIZE for N ROWS' 節を指定すると、DB2 (z/OS 版) は、EXTRA BLOCKS SRV DDF インストール・パラメーターの設定に応じて、必要な行 数をブロックして DB2 コネクトに戻そうとします。アプリケーション は、N 行を超えたフェッチを選択できます。これは、照会結果セットに 最終的に戻すことができる行数の合計を DB2 (z/OS 版) が N に制限し ていないからです。 * 'FETCH FIRST N ROWS ONLY' 節も同様に機能しますが、照会結果セット は、DB2 (z/OS 版) によって N 行に制限されています。N 行を超えてフ ェッチすると、SQL コード +100 (データの終わり) が表示されます。 2. CLI/ODBC * SQL_MAX_ROWS ステートメント属性を介して照会のためにエクストラ照会 ブロックを呼び出します。 * DB2 コネクトは、DB2 (z/OS 版) 6.x サーバーの場合、'OPTIMIZE for N ROWS' 節にタグを付けます。照会結果セットに最終的に戻すことができ る行数が DB2 (z/OS 版) によって N に制限されていなくても、N 行を 超すフェッチが試みられた場合には、CLI/ODBC は、アプリケーションに SQL_NO_DATA_FOUND を戻します。 * 代わりに 'FETCH FIRST N ROWS ONLY' 節が DB2 (z/OS 版) 7.1 以降の サーバーに対して使用されます。組み込み SQL の場合と同様に、照会結 果セットは、DB2 (z/OS 版) によって N 行に制限されています。 N 行 を超えてフェッチすると、SQL_NO_DATA_FOUND が表示されます。 3. JDBC * setMaxRows 方式を介して照会のためにエクストラ照会ブロックを呼び出 します。 CLI/ODBC の使用可能化と同様に、DB2 コネクトは、DB2 (z/OS 版) サーバー 6.x の場合、'OPTIMIZE for N ROWS' 節にタグを付け、DB2 (z/OS 版) サーバー 7.1 以降の場合、'FETCH FIRST N ROWS ONLY' 節に タグを付けます。 RFC-1323 ウィンドウ・スケーリング TCP/IP 用に RFC-1323 拡張機能をサポートするすべての Windows および UNIX プラットフォーム上では、フィックスパック 4 時点で、ウィンドウ・スケーリ ングがサポートされています。このフィーチャーは、DB2 レジストリー変数 DB2SORCVBUF を介して DB2 (Windows および UNIX 版) 上で使用可能化するこ とができます。ウィンドウ・スケーリングを使用可能にするには、DB2 レジス トリー変数 DB2SORCVBUF を 64K を超える任意の値に設定します (例えば、DB2 (Windows または UNIX 版) 上では、db2set DB2SORCVBUF =65537 を発行できま す)。最大の送受信バッファー・サイズは、個々のオペレーティング・システム によって異なります。 構成されたバッファー・サイズが受信されたことを確 認するために、ユーザーはデータベース・マネージャー構成パラメーター DIAGLEVEL を 4 (通知) に設定し、db2diag.log ファイルをチェックしてメッ セージを調べることができます。 ウィンドウ・スケーリングを有効にするには、接続の両端で使用可能化される 必要があります。例えば、ウィンドウ・スケーリングを DB2 コネクト・ワーク ステーションとホストの間で使用可能にするには、このフィーチャーは、オペ レーティング・システム TCP/IP スタックにより、直接的に、または DB2 製品 を通じて間接的にワークステーションとホストの両方で活動状態になければな りません。例えば、DB2 (z/OS 版) の場合、ウィンドウ・スケーリングは、現 在、オペレーティング・システムを介して TCPRCVBUFRSIZE を 64K を超す任意 の値に設定することによってのみ、活動化できます。 リモート DB2 クライアントが、DB2 コネクト・サーバー・ワークステーション を介してホスト DB2 にアクセスするために使用される場合、ウィンドウ・スケ ーリングはクライアント上でも使用可能にすることができます。同じトークン を取ることによって、ウィンドウ・スケーリングは、ホスト DB2 が関係してい ない場合に、リモート DB2 クライアントとワークステーション DB2 サーバー との間でも使用可能にすることができます。 ウィンドウ・スケーリングはネットワーク・パフォーマンスを向上させるよう に設計されていますが、期待されたパフォーマンスの向上が常に実現するとは 限りません。イーサネットまたはトークンリング LAN アダプターに使用される フレーム・サイズ、IP MTU サイズ、およびその他の通信リンク全体のルーター における設定値などの要因間の相互作用は、ウィンドウ・スケーリングが使用 可能化されると、性能低下を引き起こす可能性さえあります。デフォルトで は、ウィンドウ・スケーリングは、送受信双方のバッファーを 64K に設定して 使用不可になっています。ユーザーは、ウィンドウ・スケーリングをオンにし た場合の影響を評価し、必要なあらゆる調整をネットワークに加える準備をす る必要があります。ネットワークのパフォーマンス向上のためのネットワーク の調整に関する手引きについては、http://www.networking.ibm.com/per/ per10.html にあるホワイト・ペーパーを参照してください。 疎結合トランザクションに対する DB2 コネクト・サポート DB2 コネクトの中の疎結合トランザクションに対するサポートは、DB2 (OS/390 版) バージョン 6 以降にアクセスする、XA 分散アプリケーションをインプリ メントするユーザーのためのものです。このサポートによって、同じグローバ ル・トランザクションの異なるブランチが、DB2 (OS/390 版) 上のロック・ス ペースを共用できるようになります。このフィーチャーによって、同じグロー バル・トランザクション内の別のブランチの結果、分散トランザクションの 1 つのブランチがロック・タイムアウトまたはデッドロックとなるウィンドウが 少なくなります。 DB2 コネクトが、同じグローバル・トランザクションの異な るブランチにサービスする各接続に XID を送信するのであれば、DB2 (OS/390 版) バージョン 6 は、この状態で、ロック・スペースを共用します。 Kerberos サポート DB2 ユニバーサル・データベースは、非 DRDA 環境でユーザーを認証する手段 として、現在、Kerberos セキュリティー・プロトコルをサポートしています。 DB2/390 V7.1 から Kerberos セキュリティーのサポートが開始されるため、DB2 コネクトは、DRDA AR 機能を追加して、DB2/390 の接続に Kerberos 認証を使 用できるようにします。 発券システムを処理する Kerberos 認証レイヤーは、Win2K アクティブ・ディ レクトリーのメカニズムに統合されます。アプリケーションのクライアント・ サイドおよびサーバー・サイドは、それぞれ Kerberos SSP (Security Support Provider、セキュリティー・サポート・プロバイダー) クライアントおよびサ ーバーのモジュールと通信します。SSPI (Security Support Provider Interface、セキュリティー・サポート・プロバイダー・インターフェース) は、Kerberos SSP および他のセキュリティー・プロトコルに対して高水準のイ ンターフェースを提供します。 通信プロトコル・サポート SNA 接続の場合、APPC ノードをカタログするとき、SECURITY=NONE を使用する 必要があります。 標準セットアップ Kerberos 認証を使用するように DB2 を構成する手順には、次の設定作業が含 まれます。 * ネットワーク上で共用されるアクティブ・ディレクトリー内における DB2 の (サービスとしての) 許可ポリシー * Kerberos 鍵配布センター (KDC、Key Distribution Centers) 間の信頼関係 最も単純なシナリオでは、構成する、少なくとも 1 つの KDC 信頼関係、すな わち、クライアント・ワークステーションを制御する KDC と OS/390 システム との間の信頼関係が存在します。OS/390 R10 では、ホストが UNIX KDC として 振る舞うことができるようにする、OS/390 の RACF 機能を通して Kerberos 発 券処理を提供します。 DB2 コネクトは、いつものように、3 層の設定でルーター機能を提供します。 これは、Kerberos セキュリティーが使用されているときは、認証における役割 を引き受けません。代わりに、単にクライアントのセキュリティー・トークンを DB2/390 に渡します。このように、DB2 コネクト・ゲートウェイが、クライア ントまたはホストの Kerberos レルムのメンバーである必要はありません。 Kerberos を使用するためには、両方の DB2 コネクト・ゲートウェイは、認証 タイプ KERBEROS で接続がカタログされる必要があります。クライアントは、 認証 NOT_SPEC または Kerberos のどちらでカタログすることもできます。ク ライアントおよびゲートウェイのこれ以外の認証タイプの組み合わせは、 sqlcode -1401 (認証タイプのミスマッチ) になってしまいます。 下位レベルとの互換性 Kerberos サポートのための DB2 の要件: DB2 UDB クライアント: バージョン 7.1 (OS: Windows 2000) DB2 コネクト: バージョン 7.1 + フィックスパック 1 (OS: すべて) DB2/390: バージョン 7.1 DB2/390 については、さらに、OS/390 バージョン 2 リリース 10 以降で実行 するという要件があります。DB2 コネクト バージョン 7.1 クライアントから 接続する場合は、下位レベルの DB2/390 システムに対し、さらに暗黙の要件が 存在します。これらの DB2/390 システムは Kerberos をサポートしませんが、 サポートされていない DRDA SECMEC に正しく応答しません。この問題を解決す るために、該当する PTF を適用してください。 * UQ41941 (DB2/390 V5.1 用) * UQ41942 (DB2/390 V6.1 用) コネクティビティー補足 VM 環境でのアプリケーション・サーバーのセットアップ 以下の文を、「ネットワーク情報の提供」のサブセクション「アプリケーショ ン・サーバーを定義する」の最初の行の後に追加してください。 RDB_NAME が DBNAME パラメーターの SQLSTART EXEC で提供されています。 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 アプリケーションの中には、LITERAL_PREFIX または LITERAL_SUFFIX 列のどちらかについて SQL_NULL_DATA が SQLGetTypeInfo() 関数に戻されたとき、トラップされるものがあり ます。これは、ドライバーに、空ストリングを戻すよう強制します。 Impromptu 2.0 で必要です。 4 これはタイム・スタンプの時刻と小数部がゼロの場合、ドライバーに 入力タイム・スタンプ・データを日付データとして扱うよう強制しま す。Microsoft Access で必要です。 8 これはタイム・スタンプの日付部分が 1899-12-30 の場合、ドライバ ーに入力タイム・スタンプ・データを時刻データとして扱うよう強制 します。Microsoft Access で必要です。 16 未使用。 32 ドライバーに、SQL_LONGVARCHAR、SQL_LONGVARBINARY、および SQL_LONGVARGRAPHIC 列に関する情報を戻さないように強制します。 アプリケーションには、長いフィールドがサポートされないように見 えます。Lotus 123 で必要です。 64 これは、ドライバーにグラフィックス終了出力ストリングの NULL 化 を強制します。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 ドライバーに、Microsoft Query アプリケーションが DB2 MVS 同義 語を処理するよう、強制します。 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 - ドライバーに、スキーマー呼び出しに対し、バージョン 5 に類似する結果 セットではなく、バージョン 2.1.2 に類似する結果セット (SQLColumns(), SQLProcedureColumns() など) を強制的に戻させます。 5 - ドライバーに、入力 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 は、ODBC 構文をサポートしません。この構文では、 結合文節内の ON 文節において括弧が使用できます。この PATCH2 をオンに すると、外部結合文節がエスケープ・シーケンスにある場合、IBM DB2 ODBC ドライバーが括弧を剥奪します。この PATCH2 は、DB2 MVS 4.1 に対して行っ ている場合にのみ使用してください。 接続性の補足 395 20 - 現行では、MVS 上の DB2 は、両方のオペランド (expression ? BETWEEN ?) として、パラメーター・マーカーを伴う述部をサポートしません。この パッチをオンにすると、IBM ODBC ドライバーは、述部を (expression >= ? および expression <<= ?) に書き換えます。 21 - ストアード・プロシージャーのすべての OUTPUT 専用パラメーターを SQL_NULL_DATA に設定します。 22 - この PATCH2 により、IBM ODBC ドライバーは、OUTER 結合がサポート されないと報告します。これは、col1 が 254 文字より長く、外部結合 ステートメントを使用している場合の、SELECT DISTINCT col1 または ORDER BY col1 を生成するアプリケーションのためのもので、DB2 UDB がエラーを戻します (DB2 UDB が 254 より大きなバイトの列を、この 使用ではサポートしないため)。 23 - cbColDef=0 でバインドしたパラメーターに入力を最適化しません。 24 - 時刻値を文字としてマッピングするアクセス予備手段。 25 - 10 進列に対するアクセス予備手段 - char 表記における後続ゼロ の除去。 26 - qlcode 464 をアプリケーションに戻しません。 結果セットが戻され たことを示します。 27 - SQLTables にアプリケーションが有効な値を指定していても、TABLETYPE キーワード値を強制的に使用させます。 28 - 実際の列を重複列として記述します。 29 - 10 進列に対する ADO 予備手段 - 1 > x > -1 の場合、値 x に対する先行 ゼロを除去 (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 - 予約済み。 第 VIII 部 追加の情報 追加の情報 DB2 Everywhere は DB2 Everyplace に変更されました DB2 Everywhere の名称が DB2 Everyplace に変更になりました。 DB2 UDB バージョン 7 のユーザー補助機能 DB2 UDB 製品ファミリーには、体の不自由な方のために製品をより使いやすく する機能が用意されています。以下のような機能があります。 * キーボードの入力および操作を簡単にする機能 * プロパティーの表示を強調する機能 * 音と表示により警告を促すオプション * 補助技術の互換性 * オペレーティング・システムのユーザー補助機能との互換性 * 利用しやすい文書形式 キーボードによる入力および操作 キーボード入力 DB2 コントロール・センターはキーボードのみを使用して操作することができ ます。メニュー項目とコントロールではユーザーがキーボードから直接、コン トロールを活動状態にしたり、メニュー項目を選択したりできるアクセス・キ ーを提供しています。アクセス・キーはコントロールやメニューの上に下線で 表示されており、自己文書化することができます。 キーボード・フォーカス UNIX ベースのシステムでは、キーボード・フォーカスの位置が反転表示され、 ウィンドウが活動状態のエリアとユーザーのキー・ストロークが影響する位置 を示しています。 ディスプレイを見やすくする機能 DB2 コントロール・センターには、ユーザー・インターフェースを強調し、視 力の低いユーザーでも身近に感じられるようにする多くの機能があります。こ れらの補助機能にはハイコントラスト設定やカスタマイズ可能なフォント・プ ロパティーのサポートなどが含まれています。 ハイコントラスト・モード コントロール・センターのインターフェースはオペレーティング・システムが 提供するハイコントラスト・モードをサポートしています。この機能は背景色 と前景色とのコントラストが強い方が望ましいユーザーを補助する機能です。 フォント設定 コントロール・センターのインターフェースは、テキストの色やサイズ、フォ ントを、ユーザーがメニューとダイアログ・ウィンドウから選べるようになっ ています。 色の非依存 本製品のあらゆる機能を使う上で、ユーザーが色を見分ける必要はありません。 選べる警告キュー ユーザーは、警告を受ける場合の方法として、音の合図と目で見える合図を選 ぶことができます。 補助技術の互換性 DB2 コントロール・センターのインターフェースは Via Voice などの画面読み 込みアプリケーションと互換性があります。アプリケーション・モード時、コ ントロール・センターのインターフェースは、目の不自由なユーザーが画面上 の情報を利用できるよう、これらの補助アプリケーションに必要なプロパティ ーを所有しています。 利用しやすい資料 DB2 ファミリー製品の資料は利用しやすい HTML 形式です。これによりユーザ ーはブラウザーを参照できるよう設定することで資料を表示することができま す。画面読み込みや、他の補助技術を使用することも可能です。 マウスが必要 Windows を除くすべてのプラットフォームで、ツールを使用するためにマウス が必要になります。 「バインド・ファイルが見つかりません」のエラーで DB2 ランタイム・クライ アント結果からバインドを試みる DB2 ランタイム・クライアントは、バインド・ファイルのフルセットを持って いないので、 DB2 ランタイム・クライアントから GUI ツールのバインディン グを行うことはできません。この操作は、DB2 管理クライアントのみ行うこと ができます。 サーチ・ディスカバリー サーチ・ディスカバリーは、ブロードキャスト・メディアでのみサポートされ ています。例えば、サーチ・ディスカバリーは ATM アダプターを介しては機能 しません。ただしこの制限は既知のディスカバリーには適用されません。 HP-UX 11 のメモリー・ウィンドウ メモリー・ウィンドウは、ラージ HP 64 ビット・マシンで、32 ビット・アプ リケーションの共有メモリーの 1.75GB よりもたくさんのメモリーを利用した いユーザー向けです。 64 ビット・バージョンの DB2 を実行する場合、メモリ ー・ウィンドウは必要ありません。メモリー・ウィンドウは、処理ごとまたは 処理のグループごとに、1 の共有メモリーが使用可能です。これは、インスタ ンス独自の 1GB の共有メモリーと、0.75GB のグローバル共有メモリーを所有 することができます。ユーザーがこれを利用したい場合、複数インスタンス を、それぞれ独自のウィンドウで実行することができます。メモリー・ウィン ドウを使用する場合の前提条件と状態は、次の通りです。 * DB2 EE 環境 * パッチ: 拡張ソフトウェア 12/98、および PHKL_17795 * $DB2INSTANCE 変数がインスタンスに設定されている * メモリー・ウィンドウで実行したい DB2 インスタンスごとに、 /etc/services.window ファイルに項目がある必要があります。例えば: db2instance1 50 db2instance2 60 注: インスタンス名とインスタンス ID の間には、シングル・スペースのみが 入ります。 * サーバーで実行、およびシングル・ステートメントより多くのものが必 要な DB2 コマンドは、 TCP/IP ループバック方式を使用して実行する必 要があります。これは、メモリー・ウィンドウが最初のステートメント の処理を終了した時に、シェルが終了しているためです。 DB2 サービス は、この完了方法について認識しています。 * メモリー・ウィンドウで実行するインスタンスに対して、実行したい DB2 コマンドは、db2win (sqllib/bin にあります) で始まる必要がありま す。以下に例を示します。 db2win db2start db2win db2stop * メモリー・ウィンドウの外側で実行される DB2 コマンド (メモリー・ウ ィンドウは実行中) は、 1042 を返す必要があります。以下に例を示し ます。 db2win db2start <== OK db2 connect to db <==SQL1042 db2stop <==SQL1042 db2win db2stop <== OK * DB2 EEE 環境 * パッチ: 拡張ソフトウェア 12/98、および PHKL_17795 * $DB2INSTANCE 変数がインスタンスに設定されている * DB2_ENABLE_MEM_WINDOWS レジストリー変数は TRUE に設定されている必 要があります。 * メモリー・ウィンドウで実行したい各論理ノードのインスタンスごとに、 /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 * EE 環境内のみで使用されている DB2 コマンドに db2win の前置きを付 けてはいけません。 DB2 DFS クライアント・イネーブラーのアンインストール DB2 DFS クライアント・イネーブラーがアンインストールされる前に、root は 使用中の DFS ファイルがないか、 DFS ファイル・スペースにあるシェルを開 いているユーザーがいないか、確認する必要があります。 root で、以下のコ マンドを実行します。 stop.dfs dfs_cl /... がもうマウントされていないことを確認します。 mount | grep -i dfs これが実行されていないと、DB2 DFS クライアント・イネーブラーがアンイン ストールされると、マシンをリブートしなくてはなりません。 Windows NT 上でのクライアントの認証 新規の DB2 レジストリー変数 DB2DOMAINLIST は、Windows NT 環境での既存の クライアント認証メカニズムを補うために導入されました。この変数は、複数の Windows NT ドメインを定義するために、DB2 (Windows NT 版) サーバー上で使 用します。このリスト上で定義されたドメインに属しているユーザーからの接 続、または接続要求のみが受け入れられます。 このレジストリー変数は、DB2 サーバーおよびクライアントのバージョン 7 (またはそれ以降) が稼働する、純粋な Windows NT ドメイン環境下でのみ使用 するようにしてください。 このレジストリー変数を設定する際の情報については、「管理の手引き: パフ ォーマンス 」の『DB2 レジストリーと環境変数』のセクションを参照してくだ さい。 連合システムの制約 以下は、連合システムに適用される制約です。 * Oracle データ・タイプである NCHAR、NVARCHAR2、NCLOB、および BFILE は、ニックネームに関係する照会ではサポートされません。 * サーバー作成オプション、サーバー変更オプションおよびドロップ・サーバ ー・オプションのコマンドはコントロール・センターからの実行はサポート していません。これらのコマンドを実行するには、コマンド行プロセッサー (CLP) を使用する必要があります。 * ニックネームを呼び出す照会では、DB2 UDB は通常、 DFT_SQLMATHWARN デ ータベース構成オプションにしたがいません。その代わり、DFT_SQLMATHWARN の設定に関係なく、DB2 UDB はリモート・データ・ソースから演算エラー か、警告を直接戻します。 * CREATE SERVER ステートメントは、大文字小文字を区別しない照合シーケン スのデータ・ソースに「I」を設定する COLSEQ サーバー・オプションを許 可していません。 * ALTER NICKNAME ステートメントは、無効なオプションが指定されると SQL0901N を返します。 * Oracle、Microsoft SQL Server、および Sybase データ・ソース、数値デー タ・タイプは、 DB2 の BIGINT データ・タイプにはマップされません。デ フォルトでは、10 <= p <= 18、および s = 0 のような、Oracle の数値 (p,s) データは、 DB2 の DECIMAL データ・タイプにマップされます。 MPP 区分表を用いた連合制限 1 つの SQL ステートメントを使用してデータ・ソースからデータを選択し、DB2 連合サーバー上の MPP 区分表に直接、データを挿入、更新、または削除しよう とすると、SQL0901N エラーが表示されます。連合機能では、ニックネームから 選択して、MPP 区分表に挿入することは許可されません。 フィックスパック 4 (またはそれ以上) を適用すると、次のステップを使用し てデータを選択し、データを MPP 区分表に挿入できます。 1. カスタマー・アプリケーション環境において、DB2NODE 環境変数をエクスポ ートして、アプリケーションが常に接続しなければならないノードを指定す る。 EXPORT DB2NODE=x ただし、x は、ノード番号。 2. 指定されたノードだけを含むノード・グループを作成する。 CREATE NODEGROUP nodegroup_name ON NODE(x) ただし、x は、ノード番号。 3. ノード・グループに表スペースを作成する。 CREATE TABLESPACE tablespace_name IN NODEGROUP nodegroup_name 4. 表スペースに一時表を作成する。 CREATE TABLE temp_table_name IN tablespace_name 5. アプリケーションの INSERT 操作を 2 つのステップに分割する。 * INSERT INTO temp_table_name SELECT * FROM nickname * INSERT INTO MPP_partitioned_table SELECT * from temp_table_name INSERT ステートメントを 2 つのステートメントに分割すると、ステートメン ト・レベル・コミットおよびロールバック・セマンティクスが変更されます。 例えば、1 つのステートメントをロールバックするのではなく、今後は 2 つの ステートメントをロールバックする必要があります。 さらに、DB2NODE 環境変 数に関連したノード番号を変更した場合は、アプリケーション・パッケージを 無効にして再バインドする必要があります。 上記のステップを実行すれば、データ・ソースからデータを選択し、MPP 区分 表にデータを挿入できます。 1 つのステートメントを使用してデータ・ソース からデータを選択し、MPP 区分表のデータを更新、または削除しようとすると、 引き続き、SQL0901N エラーが表示されます。 この制約事項は、DB2 ユニバー サル・データベース・バージョン 8 では削除されます。 DataJoiner 制約 連合環境内で実行された分散要求は、読み取り専用操作に限定されています。 ヘブライ語の情報カタログ・マネージャー (Windows NT 版) 情報カタログ・マネージャーのコンポーネントはヘブライ語で使用でき、 DB2 ウェアハウス・マネージャー (Windows NT 版) の CD で提供されています。 ヘブライ語の翻訳は IL_ICM.ZIP という ZIP ファイルで提供されており、 DB2 ウェアハウス・マネージャー (Windows NT 版) CD の DB2\IL ディレクトリー にあります。 情報カタログ・マネージャーのヘブライ語翻訳版をインストールするには、まず DB2 ウェアハウス・マネージャー (Windows NT 版) の英語版と、 Windows NT のヘブライ語使用可能バージョンでのすべての前提条件をインストールしま す。 DB2 ウェアハウス・マネージャー (Windows NT 版) をインストールしたら、 IL_ICM.ZIP ファイルを DB2\IL ディレクトリーから、DB2 ウェアハウス・マネ ージャー (Windows NT 版) をインストールしたディレクトリーに解凍します。 ZIP ファイル内にディレクトリー構造が作成されるように、解凍したプログラ ムに正しいオプションが指定されていることを確認してください。 ファイルを解凍すると、グローバル環境変数 LC_ALL が En_US から Iw_IL に 変更する必要があります。設定を変更するには、以下を行います。 1. Windows NT コントロール パネルをオープンし、「システム」アイコンをダ ブルクリックします。 2. 「システムのプロパティ」ウィンドウで「環境」タブをクリックし、「シス テム変数」セクションで変数 LC_ALL を見つけます。 3. 変数をクリックして、「値」編集ボックスに値を表示させます。値を En_US から Iw_IL に変更します。 4. 「設定」ボタンをクリックします。 5. 「システムのプロパティ」ウィンドウと「コントロール パネル」をクロー ズします。 これで、情報カタログ・マネージャーのヘブライ語版がインストールできまし た。 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:none common_communication sqlccspmconnmgr_APPC_init Probe:19 SPM0453C Microsoft SNA が始動していないため、同期点マネージャーが始動 しません。 2000-04-20-13.18.23.033000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:302 Appid:none common_communication sqlccsna_start_listen Probe:14 DIA3001E「SNA SPM」プロトコル・サポートは正常に開始されませんでした。 2000-04-20-13.18.23.603000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:none common_communication sqlccspmconnmgr_listener Probe:6 DIA3103E Error encountered in APPC protocol support. APPC verb "APPC(DISPLAY 1 BYTE)". Primary rc was "F004". Secondary rc was "00000000". db2diag.log のファイルにそのような項目があり、そのタイム・スタンプが最 新のものと一致している場合、次のように実行する必要があります。 1. db2stop を呼び出します。 2. SnaServer サービスを開始します (まだ開始していない場合)。 3. db2start を呼び出します。 db2diag.log ファイルを再び確認し、その項目がもう、追加されていないこと を確かめます。 Windows NT および Windows 2000 での DB2 に対するサービス・アカウント要件 DB2 (Windows NT または Windows 2000 版) のインストール中に、セットアッ プ・プログラムは、いくつかの Windows サービスを作成し、このサービスごと にサービス・アカウントを割り当てます。 DB2 を正しく実行するには、セット アップ・プログラムは、DB2 に関連したサービス・アカウントに対して、次の ユーザー権限を付与します。 * オペレーティング・システムの一部としての動作 * トークン・オブジェクトの作成 * 割り当て量の増加 * サービスとしてログオン * 処理レベル・トークンの置換 DB2 サービスに対して、別のサービス・アカウントを使用したい場合は、この ユーザー権限をサービス・アカウントに付与する必要があります。 このユーザー権限の他に、サービス・アカウントは DB2 製品がインストールさ れているディレクトリーに対して、書き込みアクセスも必要です。 DB2 管理サーバー・サービス (DB2DAS00 サービス) に対するサービス・アカウ ントには、他の DB2 サービスの開始および停止を行う権限 (つまり、サービ ス・アカウントがパワー・ユーザー・グループに属している必要があります。) と、DB2 が管理する DB2 インスタンスに対する DB2 SYSADM 権限も必要となり ます。 データウェアハウス・センター (DWC) で使用されるすべてのユーザー定義プロ グラムをコミットする DB2 ストアード・プロシージャー・ビルダーで作成されたストアード・プロシ ージャーをデータウェアハウス・センター (DWC) のユーザー定義プログラムと して使用したい場合は、ストアード・プロシージャーの con.close(); ステー トメントの前に、次のステートメントを挿入してください。 con.commit(); このステートメントが挿入されていないと、ストアード・プロシージャーが行 った変更は、ストアード・プロシージャーが DWC から実行される時にロールバ ックされます。 DWC のユーザー定義プログラムすべてが、データベースに影響する変更用に、 組み込まれた DB2 機能を明白にコミットする必要があります。つまり、ユーザ ー定義のプログラムに COMMIT ステートメントを追加する必要があります。 Windows NT 上でのクライアント・サイド・キャッシング DB2 データ・リンクがインストールされている Windows NT サーバー・マシン にある READ PERM DB ファイルに有効なトークンを使用して共有ドライブによ ってアクセスしようとしている場合、ファイルは期待通りオープンされます。 ただしその後、同じトークンを使用した後続のオープン要求は実際にはサーバ ーに届きませんが、クライアント上のキャッシュからサービスされます。トー クンの有効期限が切れた後でも、項目はまだキャッシュにあるため、ファイル の内容はユーザーに対して可視であり続けます。ただしこの問題は、ファイルが Windows NT ワークステーション上にある場合は発生しません。 この解決策は、レジストリー項目 \\HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Lanmanserver\Parameters\EnableOpLocks を Windows NT サーバーでゼロに設定することです。 このレジストリー設定によ り、サーバー上のファイルが共有ドライブを通じてクライアントからアクセス されると、要求はクライアント・キャッシュからサービスされる代わりに、常 にサーバーに到達します。このため、トークンはすべての要求についてもう一 度検査されます。 この解決策の欠点は、これが共有ドライブを通じたサーバーからのすべてのフ ァイル・アクセスのパフォーマンス全体に影響を与えることです。この設定で も、ファイルがサーバー自体でマップされた共有ドライブを通じてアクセスさ れる場合は、他のクライアント・マシンからのアクセスとは異なり、要求はキ ャッシュからサービスされます。このため、トークンの期限切れは起きません。 注: どの場合でも、ファイル・アクセスがローカル・アクセスであり、共有ド ライブからのものでなければ、トークンの検査と後続のトークンの期限 切れは予定通りに行われます。 ライフ・サイエンス データ・コネクト 新規ラッパー フィックスパック 4 で、ライフ・サイエンス データ・コネクトに 2 つの新規 ラッパーが追加されました。 1 つは、AIX 上の Documentum 用、もう 1 つは Windows NT 上の Excel 用です。さらに、表構造ファイル・ラッパーが、AIX から Windows NT、 Solaris、Linux、および HP-UX システムに移植されていま す。 フィックスパック 5 では、AIX 上の BLAST ラッパーが DB2 ライフ・サイエン ス データ・コネクトに追加されました。Documentum ラッパーが AIX から Windows NT、 Windows 2000、および Solaris オペレーティング環境に移植さ れました。 フィックスパック 6 では、BLAST ラッパーが AIX から Windows NT、Windows 2000、HP-UX、および Solaris オペレーティング環境に移植されました。 特記事項- ライフ・サイエンス データ・コネクトには、Apache Software および ICU か らのコードが含まれます。 IBM およびその直接または間接の子会社は、本コー ドを特定物として現存するままの状態で提供し、商品性の保証、特定目的適合 性の保証および法律上の瑕疵担保責任を含むすべての明示もしくは黙示の保証 責任を負わないものとします。また、補償、賠償の義務も適用されないものと します。 Apache ソフトウェア・ライセンス バージョン 1.1 Copyright (c) 1999-2001 The Apache Software Foundation. All Rights Reserved. ICU 1.8.1 およびそれ以降 Copyright (c) 1995-2001 International Business Machines Corporation and others All rights reserved. SQL Assist の機能強化 SQL Assist ツールにより、ユーザーは、表結合で "=" 以外の結合演算子を指 定できるようになりました。 SQL Assist ツールの「結合」ページで「結合タ イプ」ボタンをクリックすることによって呼び出される「結合タイプ」ダイア ログが拡張され、結合演算子のドロップダウン・リストが組み込まれました。 使用可能な演算子は "="、"<>"、"<"、">"、"<="、および ">=" です。 SQL Assist は、シンプルな SQL ステートメントの作成でユーザーの役に立つツー ルです。これはコマンド・センター (「対話式」タブ)、コントロール・センタ ー (「ビューの作成」および「トリガーの作成」ダイアログ)、ストアード・プ ロシージャー・ビルダー (「SQL ストアード・プロシージャーの挿入」ウィザ ード)、およびデータウェアハウス・センター (SQL 処理ステップ) から使用で きます。 バックアップおよびリストア・コマンドのヘルプ 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]"; 「ウェアハウス・マネージャー」は「DB2 ウェアハウス・マネージャー」 製品画面および製品ドキュメントに出てくるすべての「ウェアハウス・マネー ジャー」というフレーズは、「DB2 ウェアハウス・マネージャー」と読んでく ださい。 第 IX 部 付録 付録. 特記事項 本書に記載の製品、サービス、または機能が日本においては提供されていない 場合があります。日本で利用可能な製品、サービス、および機能については、 日本 IBM の営業担当員にお尋ねください。本書で IBM 製品、プログラム、ま たはサービスに言及していても、その IBM 製品、プログラム、またはサービス のみが使用可能であることを意味するものではありません。これらに代えて、 IBM の知的所有権を侵害することのない、機能的に同等の製品、プログラム、 またはサービスを使用することができます。ただし、IBM 以外の製品、プログ ラムまたはサービスの操作性の評価および検証は、お客様の責任で行っていた だきます。 IBM は、本書に記載されている内容に関して特許権 (特許出願中のものを含む) を保有している場合があります。本書の提供は、お客様にこれらの特許権につ いて実施権を許諾することを意味するものではありません。実施権の許諾につ いては、下記の宛先に書面にてご照会ください。 〒106-0032 東京都港区六本木 3-2-31 IBM World Trade Asia Corporation Licensing 以下の保証は、国または地域の法律に沿わない場合は、適用されません。 IBM およびその直接または間接の子会社は、本書を特定物として現存するまま の状態で提供し、商品性の保証、特定目的適合性の保証および法律上の瑕疵担 保責任を含むすべての明示もしくは黙示の保証責任を負わないものとします。 国または地域によっては、法律の強行規定により、保証責任の制限が禁じられ る場合、強行規定の制限を受けるものとします。 この情報には、技術的に不適切な記述や誤植を含む場合があります。本書は定 期的に見直され、必要な変更 (たとえば、技術的に不適切な記述や誤植など) は、本書の次版に組み込まれます。 IBM は予告なしに、随時、この文書に記載 されている製品またはプログラムに対して、改良または変更を行うことがあり ます。 本書において IBM 以外の Web サイトに言及している場合がありますが、便宜 のため記載しただけであり、決してそれらの Web サイトを推奨するものではあ りません。それらの Web サイトにある資料は、この IBM 製品の資料の一部では ありません。それらの Web サイトは、お客様の責任でご使用ください。 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 以外の製品に関する情報は、その製品の供給者、出版物、もしくはその他 の公に利用可能なソースから入手したものです。IBM は、それらの製品のテス トは行っておりません。したがって、他社製品に関する実行性、互換性、また はその他の要求については確証できません。 IBM 以外の製品の性能に関する質 問は、それらの製品の供給者にお願いします。 IBM の将来の方向または意向に関する記述については、予告なしに変更または 撤回される場合があり、単に目標を示しているものです。 本書には、日常の業務処理で用いられるデータや報告書の例が含まれています。 より具体性を与えるために、それらの例には、個人、企業、ブランド、あるい は製品などの名前が含まれている場合があります。これらの名称はすべて架空 のものであり、名称や住所が類似する企業が実在しているとしても、それは偶 然にすぎません。 著作権使用許諾: 本書には、様々なオペレーティング・プラットフォームでのプログラミング手 法を例示するサンプル・アプリケーション・プログラムがソース言語で掲載さ れています。お客様は、サンプル・プログラムが書かれているオペレーティン グ・プラットフォームのアプリケーション・プログラミング・インターフェー スに準拠したアプリケーション・プログラムの開発、使用、販売、配布を目的 として、いかなる形式においても、IBM に対価を支払うことなくこれを複製 し、改変し、配布することができます。このサンプル・プログラムは、あらゆ る条件下における完全なテストを経ていません。従って IBM は、これらのサン プル・プログラムについて信頼性、利便性もしくは機能性があることをほのめ かしたり、保証することはできません。 それぞれの複製物、サンプル・プログラムのすべての部分、またはすべての派 生した創作物には、次のように、著作権表示を入れていただく必要があります。 (C) (お客様の会社名) (西暦年). このコードの一部は、IBM Corp. のサンプ ル・プログラムの派生物です。 (C) Copyright IBM Corp. _年を入れる_. All Rights Reserved. 商標 アスタリスク (*) 付きの以下の用語は、IBM Corporation の商標です。 ACF/VTAM IBM AISPO IMS AIX IMS/ESA AIX/6000 LAN DistanceMVS AIXwindows MVS/ESA AnyNet MVS/XA APPN Net.Data AS/400 OS/2OS/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 Connect SQL/400 DB2 Extenders System/370 DB2 OLAP Server System/390 DB2 Universal Database SystemView Distributed Relational VisualAge Database Architecture VM/ESA DRDA VSE/ESA eNetwork VTAM Extended Services WebExplorer FFST WIN-OS/2 First Failure Support Technology 以下は、それぞれ各社の商標または登録商標です。 Microsoft、Windows、Windows NT および Windows ロゴは、Microsoft Corporation の米国およびその他の国における商標です。 Java およびすべての Java 関連の商標およびロゴは、Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。 UNIX は、The Open Group がライセンスしている米国およびその他の国におけ る登録商標です。 他の会社名、製品名およびサービス名などはそれぞれ各社の商標または登録商 標です。 ---------------------------------------------------------------------- (1) サービス・ポリシーは、このメッセージング操作に適用されるべきサービ ス・オプションの品質のセットを定義します。このオプションには、メッ セージ優先順位とメッセージ持続性が含まれます。詳しくは「MQSeries アプリケーション・メッセージング・インターフェース」マニュアルを参 照してください。