© Copyright International Business Machines Corporation 2006. All rights reserved.
ワークベンチには 2 つの新しいタイプのデータ・プロジェクトがあります。
- データ設計プロジェクト
- データ開発プロジェクト
データ設計プロジェクトは、例えば物理データ・モデルと論理データ・モデルのようにデータ・モデルを作成し、保管するために使用します。データ開発プロジェクトはストアード・プロシージャーおよびユーザー定義の機能 (ルーチンとも言う) のようなデータ・アプリケーション開発オブジェクトを作成し、保管するために使用します。 ルーチンは、物理データ・モデルの一部としてデータ設計プロジェクトからも見ることができます。ただし、データ設計プロジェクトからのルーチンへの開発サポートは非常に限られており、データ設計プロジェクトにはルーチンのための SQL ツール・サポートはありません。 ルーチンを開発している場合は、指定されたデータ開発プロジェクトを使用することをお勧めします。こうしたデータ開発プロジェクトはウィザードやルーチン・エディター、デバッグ・サポート、および SQL ツールの統合などを含む、より完全なサポートを提供します。
テーブル・データ・エディターでは、主キーを持たない XML テーブルに対して XML 妥当性検査を行うと、その XML 妥当性検査は XML 値を挿入した最初の時だけしか実行されません。また、XML 妥当性検査による既存の XML 列の更新は失敗します。
回避方法: XML 列を含むテーブルに対して主キーを作成してください。
このエディターの複数のルート要素を操作すると、注釈付き XSD ファイルを保管するときにエラーになることがあります。
回避方法: 各ルート要素に別々の XML スキーマ文書ファイルのセットを作成してください。
XML データ型を使用し、XML スキーマを操作するには、UTF -8 データベースに接続する必要があります。 XML 文書用データベースから戻されるデータ量は無制限です。戻すデータ量によっては、パフォーマンスに影響を及ぼす場合があります。
- SQL エディターは現在、「SQL の実行」アクション中のホスト変数をサポートしていません。
回避方法: それが DML ステートメントの場合、SQL ビルダーから SQL を実行します。
- SQL ビルダーでは、完全な SQL 構文はサポートされていません。 例えば、ユーザー定義型 (UDT) およびテーブル関数はサポートされていません。
- ユーザー定義型 (UDT) はルーチンのパラメーターとしてサポートされていません。
- Ant デプロイを使用してファイル・システムから DB2 Universal Database™ for iSeries® を対象にした Java™ ストアード・プロシージャーをデプロイするには、システムのクラスパスに jt400.jar があることを確認する必要があります。DeployInstructions.txt の説明を使用してエクスポートされたストアード・プロシージャーをデプロイしようとすると、次のようなエラー・メッセージが表示される場合があります。
...[createsp] ターゲット・データベースに接続できませんでした。
[createsp] com.ibm.db2.jcc.DB2Driver...回避方法: db2jcc.jar および適切なライセンス・ファイルがシステムのクラスパスにあることを確認してください。
- Java ストアード・プロシージャーをデプロイまたは実行する場合に、「クラスのロードができない」エラーが表示されることがあります。これは、DB2 サーバーがダウン・レベル JDK の場合、RAD v7 と DB2® サーバー間の JDK バージョンが一致していないときに発生する可能性があります。
回避方法: JDK レベルが 1.4 のサーバー (例えば、DB2 Universal Database for Linux®、UNIX®、および Windows® V8.2 サーバーなど) に対して Java ストアード・プロシージャーをデプロイする場合に、「ルーチンのデプロイ」ウィザードの「コンパイル・オプション」フィールドに「-source 1.4」オプションを指定してください。 一般に、適切なコンパイル・オプション「-source JDK level」を使用して、データベース・サーバー上の JDK レベルを合わせます。
- Ant デプロイメント機能を使用してストアード・プロシージャーまたは UDF をデプロイする場合、クラスパスに tools.jar ファイルがないと次のメッセージが表示されることがあります。
tools.jar を見つけることができません。このファイルは F:¥jre¥1.4.2¥lib¥tools.jar にあると予期されていました。
tools.jar は JRE (Java ランタイム環境) の一部であり、Ant デプロイ・ツールの一部ではありません。回避方法: tools.jar は Ant スクリプトの実行には必要ありませんので、ここではこのメッセージは無視することができます。
- ストアード・プロシージャー・エディターの Java メソッド名を変更する場合は、エディターのソース・ページで右クリックし、「保管」を選択しても、プロシージャーを正しく保管できません。
回避方法: 「ファイル」->「保管」をクリックし、Ctrl+S を押すか、「保管」アイコンをクリックして、ストアード・プロシージャーを保管してください。
- 異種サーバー間 (例えば、DB2 Universal Database for Linux、UNIX、および Windows サーバーから DB2 Universal Database for z/OS® サーバーへ) でストアード・プロシージャーや UDF をドラッグ・アンド・ドロップする場合は、2 つのサーバー間のある種の非互換性について、ドラッグ・アンド・ドロップ操作中に警告が表示されます。操作を続け、ストアード・プロシージャーまたは UDF を開こうとすると、エラーが表示されることがあります。
- DB2 UDB for Linux、UNIX、および Windows V8.2 サーバーに対して SQL プロファイルを実行すると、JCC ドライバーがエラー・メッセージ・テキストを取り込むのに必要な、前提条件のストアード・プロシージャー (SYSIBM.SQLCAMESSAGECCSID) がサーバーにない場合に、NULL ポインター例外が発生することがあります。
回避方法: retrieveMessagesFromServerOnGetMessage=true の設定をしないで、サーバーへの接続を作成します。
- SQL プロシージャーの例外のモニター中に、プロシージャーで発行される INSERT、SELECT、DELETE、および UPDATE などのイベントが、DML ステートメントについて生成されます。ただし、これらのイベントは、変数代入などのプロシージャー・ステートメント用および WHILE や IF などの制御構造用の決定論的な方法で生成されるわけではありません。 そのため、プロシージャー・ステートメントに対してプロファイル情報が生成されない場合があります。
- UNIX DB2 サーバーに接続しているときに、ブレークポイントの追加やデバッグ・モードでの実行中にタイムアウト例外が起こることがあります。
- 名前に英語と中国語の両方の文字を含むストアード・プロシージャーでは、デバッガーが実行されません。
- 監視式は動的 Java ストアード・プロシージャーに対してのみ、サポートされています。 SQL および SQLJ ストアード・プロシージャーに対してはサポートされていません。
- デバッガーは、SET などの実行可能ステートメントの最初のトークンに位置していない場合は、ブレークポイントで停止しません。 また、DECLARE CONTINUE、CLOSE CURSOR、あるいは ROLLBACK でも停止しません。
- Java ストアード・プロシージャーをデバッグしており、強制終了アクションを選択すると、デバッグ・セッションが完全に終了するまでに数分かかる場合があります。この間に開始された新しいデバッグ・セッションは不規則な振る舞いをすることがあります。
- 2 つ目の Java ストアード・プロシージャーを呼び出す Java ストアード・プロシージャーをデバッグしているときには、2 番目のストアード・プロシージャーはデバッグできません。 ネストされたストアード・プロシージャーにステップインすることはできず、ネストされたストアード・プロシージャーに設定したすべてのブレークポイントは無視されます。この制限は Linux、UNIX、および Windows に当てはまります。
- Java ストアード・プロシージャーのデバッグ中に「パケット待機中にタイムアウトが発生しました」エラーが表示されたら、Java タイムアウトの設定値を高くしてください。
回避方法: Java タイムアウト設定を高くするには、ワークベンチのメニュー・バーから「ウィンドウ」>「設定」をクリックします。「Java」ノードを展開して「デバッグ」をクリックします。「デバッグの設定」ページで、「通信タイムアウト」セクションの「デバッガー・タイムアウト (ミリ秒)」の値を増やします。少なくともデフォルト値の 2 倍にすることをお勧めします。
- Java ストアード・プロシージャーをデバッグしている時に、「値の変更」アクションを使用して空ストリング値を持つ変数を変更すると、編集ダイアログの「OK」ボタンが使用可能にならない場合があります。
回避方法: このボタンを使用可能にするには、「評価の入力」ラジオ・ボタンを選択し、空ではないストリング (例えば 'a') に値を設定してから「リテラル・テキストの入力」ラジオ・ボタンを選択してください。このようにすると、「OK」ボタンが使用可能になります。
- Java ストアード・プロシージャーをデバッグしている時にローカル変数が見えない場合は、ストアード・プロシージャーが -g コンパイラー・オプションなしでデプロイされた可能性があります。
回避方法: Java ストアード・プロシージャーをデプロイする場合には必ず -g コンパイラー・オプションを指定してください。
- 変数ビューに「無効なスタック・フレーム」メッセージが表示された場合は、デバッグ・ビューにしてスタック・フレームの上のスレッド・オブジェクトをクリックしてからスタック・フレームをクリックします。これにより、変数ビューが更新され、エラーは表示されなくなります。
- DB2 UDB for iSeries V5 R4 で実行されている SQLJ ストアード・プロシージャーをデバッグしている時は、行マップを更新する iSeries PTF を 適用して Java ソースの代わりに SQLJ ソースに対応するようにしていない限り、デバッグが実行されている現在行がデバッグ・ビューに表示される SQLJ ソース行に対応しません。
- セッション・マネージャー・タイムアウトのデバッガー設定 (「ウィンドウ」>「設定」をクリックして「実行/デバッグ」を展開し、次に「DB2 ストアード・プロシージャー・デバッガー」をクリックして「セッション・マネージャー・タイムアウト (分) (Session manager timeout in minutes)」フィールドを変更する) が認識されません。
- DB2 for Linux、UNIX、および Windows では、デバッガーは大量の変数を持つストアード・プロシージャーを処理できません。変数の最大数は 200 です。
- デバッグ・セッションでのカーソル移動: プロシージャーに複数の変数宣言がある場合、次の行に移動するために「ステップイン」または「ステップオーバー」を 2 回以上クリックする必要があります。例えば、次の行では 2 回のクリックが必要です。DECLARE v_dept, v_actdept CHAR(3) また、次の行では 3 回のクリックが必要です。DECLARE v_bonus, v_deptbonus, v_newbonus DECIMAL(9,2) 変数宣言の数と同じ回数のクリックが必要です。
- Java ストアード・プロシージャーのデバッグ・セッションを開始してブレークポイントを追加してからブレークポイントを使用不可にすると、ブレークポイントがまだ使用可能のままになります。
回避方法: 新しいデバッグ・セッションを開始する場合、最初にすべての古いブレークポイントを除去し、それから新しいブレークポイントを追加します。
- 複数のデータ開発プロジェクトで作業している場合、ストアード・プロシージャーをデバッグしようとすると「ストアード・プロシージャーの PROCNAME が見つかりません。プロシージャーはワークスペースから削除された可能性があります」または「ソースが見つかりません」というエラーが表示されることがあります。
- ネストされた SQL ストアード・プロシージャーをデバッグした後、データ出力ビューに、デバッガーが実行中であり、ストアード・プロシージャーの後続の実行またはデプロイで問題が発生する可能性があると表示されたままになる場合があります。
回避方法: セッション・マネージャーを、デベロッパー製品がインストールされているクライアント・マシンで実行する必要があります。セッション・マネージャーを開始するには、製品のインストール bin ディレクトリーから db2dbgm.bat ファイルを実行します。
- DB2 V8 Linux、Unix、Windows、および z/OS サーバーでのストアード・プロシージャーのデバッグは、制限付きでサポートされています。フィックスパック 14 がインストールされている DB2 V8 サーバーでは、SQL プロシージャーのみデバッグ可能です。デバッガーが DB2 V8 サーバーに対して作業を行う場合、デベロッパー製品がインストールされているクライアント・マシンで、セッション・マネージャーも実行する必要があります。セッション・マネージャーを開始するには、製品のインストール bin ディレクトリーから db2dbgm.bat ファイルを実行します。
- ALIAS、MQT、NICKNAME、および SYNONYM はラウンド・トリップ・エンジニアリング中にはサポートされるようになりましたが、EJB マッピング・プロセスではサポートされません。
- MySQL 4.1 への限定サポート: 固有索引、自動増分列、NULL およびバイナリーの列デフォルト値のプロパティーがプロパティー・ビューで正しく表示されません。 また、C プロシージャーおよび関数はサポートされていません。
- トリガー、チェック制約、およびビューは Cloudscape® v5.1 ではサポートされていません。Cloudscape v5.1 のトリガーおよびチェック制約はデータベース・エクスプローラーには表示されません。Cloudscape v5.1 のビューは、プロパティー・ビューの SQL 本文からなくなっています。 DDL を生成したり、Cloudscape v5.1 のトリガー、チェック制約、またはビューをリバース・エンジニアリングすることはできません。
- Oracle では、ユーザー定義の構造化データ型は制限付きでサポートされています。ユーザー定義の構造化データ型の名前は、Oracle テーブル用に DDL を生成する時に、テーブル定義にインクルードされません。
- データベース・エクスプローラーでのコンテナー・オブジェクトの更新が失敗し、データベース・エクスプローラー・コンテナー内のオブジェクトの比較のために開かれた比較エディターを閉じた後に、例外「書き込みトランザクションなしではリソース・セットは変更できません」が発生する場合があります。例えば、物理データ・モデル内のテーブルとそのオリジナル・ソースを比較すると、この例外を引き起こす可能性があります。
回避方法: この問題が発生した場合は、コンテナー・オブジェクトが入っているコンテナーを選択し、更新を再試行します。例えば、テーブルの更新に失敗した場合は、そのテーブルが含まれているスキーマの更新を試行します。再試行にも失敗する場合は、データベースを切断し、再接続する必要があります。
1 列の XML データ型を持つテーブル、または非固有行数のテーブルを定義してから、テーブル・エディターを使用して行を削除すると、選択した行と一致するすべての行が削除されます。
回避方法: 重複行を持つテーブルの行を削除するのにテーブル・データ・エディターを使用しないでください。