連載
» 2007年07月05日 00時00分 公開

.NETユーザー必見! Oracle 10gのお作法(4):IISを使用したWebサービスからのPL/SQLデバッグ (3/3)

[三谷亮太,日本オラクル]
前のページへ 1|2|3       

IIS上でのPL/SQLデバッグ

 いよいよ今回の主題であるIISを使用したPL/SQLのデバッグを行います。ローカルIIS環境でデバッグを行うために、以下の手順を実施する必要があります。

  1. 環境変数の設定
  2. ブレークポイントの設定
  3. Oracle外部アプリケーション・デバッガの起動
  4. 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
リスト6 データベース接続メソッドに環境変数の設定を追加C#のコードを表示する
:マシン名は環境に応じて書き換えてください

 なお、PL/SQLのデバッグを行わずにアプリケーションを実行する際は、接続前に下記のコードで環境変数をクリアしてください。

Environment.SetEnvironmentVariable("ORA_DEBUG_JDWP", _
    "", _
    EnvironmentVariableTarget.Process)

2. ブレークポイントの設定

 PL/SQLにステップインするためには、データベース接続を行う前に一度デバッグを止める必要があります。そのためConnectionクラスのOpenメソッドを実行する前にブレークポイントを設定しておきます(図7)。

図7 データベース接続メソッドにブレークポイントを設定 図7 データベース接続メソッドにブレークポイントを設定

 同様に、PL/SQL内にもブレークポイントを設定します(図8)。

図8 PL/SQL内にブレークポイントを設定 図8 PL/SQL内にブレークポイントを設定

3. Oracle外部アプリケーション・デバッガの起動

 デバッグ実行を開始し、UpdateSalary Webサービスを起動します(図9)。

図9 UpdateSalary Webサービスの実行 図9 UpdateSalary Webサービスの実行

 [起動]ボタンを押すとブレークポイントで停止しますので、[ツール]メニューから[Oracle外部アプリケーション・デバッガの起動]を選択します(図10)。

図10 デバッガの起動 図10 デバッガの起動

 アプリケーションは環境変数で設定したポートにアクセスするため、待ち受けるポート番号には同一の番号を指定します(図11)。

図11 デバッガのポートを指定 図11 デバッガのポートを指定

 コネクションの確立前にOracle外部アプリケーション・デバッガの起動を行う必要があることに注意してください。起動せずに接続するとエラーとなる可能性があります。また、ファイルシステムでのデバッグ時と異なり、「Oracleアプリケーションへのデバッグ」のチェックは不要です。

4. PL/SQLのデバッグ

 Oracle外部アプリケーション・デバッガの起動後にデバッグを再開すると、PL/SQLブロックでデバッグが停止します。ステップ実行やクイックウォッチなどの操作も可能です(図12)。

図12 クイックウォッチの実行 図12 クイックウォッチの実行

 正常に終了すると、戻り値「1」が表示されます(図13)。

図13 正常終了 図13 正常終了

 GetEmpData Webサービスを起動すると、変更された値が確認できます(図14)。

図14 GetEmpData Webサービスの実行結果 図14 GetEmpData Webサービスの実行結果

 以上の手順によってローカルIIS上でのPL/SQLデバッグが可能となります。リモートIISに対するデバッグも含め、Webサーバ上でのPL/SQLデバッグは開発およびテスト時の大きな助けとなることでしょう。

 次回はOracleの独自機能を使用したアプリケーション開発について解説します。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。