IISを使用したWebサービスからのPL/SQLデバッグ:.NETユーザー必見! Oracle 10gのお作法(4)(3/3 ページ)
オラクル社が提供する3つの.NET環境用開発ツール「ODP.NET」「ODT」「ODE.NET」。Oracle 10gリリース2に対応した最新版を使って、Oracleデータベースを前提とした.NETアプリケーションの開発手法を解説する。(編集部)
IIS上でのPL/SQLデバッグ
いよいよ今回の主題であるIISを使用したPL/SQLのデバッグを行います。ローカルIIS環境でデバッグを行うために、以下の手順を実施する必要があります。
- 環境変数の設定
- ブレークポイントの設定
- Oracle外部アプリケーション・デバッガの起動
- PL/SQLのデバッグ
1. 環境変数の設定
デバッグを行うためにはWindows上で環境変数を設定する必要があります。マイコンピュータのプロパティなどからも設定可能ですが、ほかのアプリケーションに影響を与えないため、DataAccessクラスに以下の環境変数を設定するコードを追加します。
Environment.SetEnvironmentVariable("ORA_DEBUG_JDWP", _ "host=mymachine.ourdomain.com;port=8888", _ EnvironmentVariableTarget.Process)
環境変数名は「ORA_DEBUG_JDWP」、値としてデバッグを行うマシンの任意のポートを指定します。最後の引数でデバッグを行うスコープを指定します。今回はSQL Developerなど、ほかのクライアントアプリケーションに影響を与えないようにするためプロセスレベルで設定しています(リスト6)。
Public Function DbConnect() As DbConnection factory = _ DbProviderFactories.GetFactory("Oracle.DataAccess.Client") ocsb = factory.CreateConnectionStringBuilder ocsb("Data Source") = "ORCL10GR2" ocsb("User ID") = "Scott" ocsb("Password") = "Tiger" conn = factory.CreateConnection() conn.ConnectionString = ocsb.ConnectionString '環境変数を設定(マシン名は環境に応じて書き換えてください) Environment.SetEnvironmentVariable("ORA_DEBUG_JDWP", _ "host=mymachine.ourdomain.com;port=8888", _ EnvironmentVariableTarget.Process) conn.Open() Return conn End Function
なお、PL/SQLのデバッグを行わずにアプリケーションを実行する際は、接続前に下記のコードで環境変数をクリアしてください。
Environment.SetEnvironmentVariable("ORA_DEBUG_JDWP", _ "", _ EnvironmentVariableTarget.Process)
2. ブレークポイントの設定
PL/SQLにステップインするためには、データベース接続を行う前に一度デバッグを止める必要があります。そのためConnectionクラスのOpenメソッドを実行する前にブレークポイントを設定しておきます(図7)。
同様に、PL/SQL内にもブレークポイントを設定します(図8)。
3. Oracle外部アプリケーション・デバッガの起動
デバッグ実行を開始し、UpdateSalary Webサービスを起動します(図9)。
[起動]ボタンを押すとブレークポイントで停止しますので、[ツール]メニューから[Oracle外部アプリケーション・デバッガの起動]を選択します(図10)。
アプリケーションは環境変数で設定したポートにアクセスするため、待ち受けるポート番号には同一の番号を指定します(図11)。
コネクションの確立前にOracle外部アプリケーション・デバッガの起動を行う必要があることに注意してください。起動せずに接続するとエラーとなる可能性があります。また、ファイルシステムでのデバッグ時と異なり、「Oracleアプリケーションへのデバッグ」のチェックは不要です。
4. PL/SQLのデバッグ
Oracle外部アプリケーション・デバッガの起動後にデバッグを再開すると、PL/SQLブロックでデバッグが停止します。ステップ実行やクイックウォッチなどの操作も可能です(図12)。
正常に終了すると、戻り値「1」が表示されます(図13)。
GetEmpData Webサービスを起動すると、変更された値が確認できます(図14)。
以上の手順によってローカルIIS上でのPL/SQLデバッグが可能となります。リモートIISに対するデバッグも含め、Webサーバ上でのPL/SQLデバッグは開発およびテスト時の大きな助けとなることでしょう。
次回はOracleの独自機能を使用したアプリケーション開発について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.