0

DB2 をデータベースとして使用する古い EJB 2.1 プロジェクトがあります。
プログラムからデータベースに送信された SQL クエリを確認したい。どうやってやるの。DB2を使用しています。永続性はコンテナ管理の永続性です。( CMP)

Hibernate には<property name="hibernate.show_sql" value="true"/>、同じ効果が欲しいというようなものがあります。:-)

4

1 に答える 1

0

パーシスタンス層から SQL をキャプチャーするための適切なオプションが見つからない場合、DB2 は、ドライバー・レベルおよびデータベース・サーバーでいくつかの強力なトレース・オプションを提供します。それぞれのアプローチには長所と短所があります。

EJB プロジェクトが古いと説明したので、パーシスタンス レイヤーが IBM の JDBC Type 2 ドライバーを使用している可能性があります。これは、基本的に DB2 の Call Level Interface のラッパーです。 db2cli.ini ファイル。

より新しく、より一般的なドライバーは、JDBC Type 4 の「ユニバーサル ドライバー」である db2jcc.jar です。これは、接続文字列に追加したり、アプリケーションによって実行時に設定したりできるプロパティを通じてトレースを処理します。

私はアプリケーション サーバーよりもデータベースを扱うことが多いので、SQL をキャプチャするための個人的な好みは、SQL ステートメントと詳細な統計をフラット ファイルまたは一連の専用テーブルにキャプチャするステートメント イベント モニターを定義することです。イベント モニターは、ワークロード全体のほんの一部について詳細なトレース レコードを収集できるようにする、さまざまなフィルタリング メカニズムを提供します。イベント モニターのもう 1 つの魅力的な側面は、DBA がアプリケーション サーバーを中断することなくイベント モニターを開始または停止できることです。イベント モニターは大量のデータをすばやく収集できるため、いくつかの SQL クエリで結果を簡単に分析できるため、テーブルをイベント モニターのターゲットとして使用することを好みます。

于 2012-03-07T22:46:04.970 に答える