検索
連載

ASP.NETの利点を引き出すODP.NET活用法ODP.NETファーストステップ(2)(4/4 ページ)

Windowsプラットフォームにおけるアプリケーション開発は、.NETが主流となりつつある。本連載はVisual Basicから.NETへの移行を考えているOracleアプリケーション開発者に向けて、「Oracle Data Provider for .NET」を使うメリットや独自機能、新しいプログラミング・スタイルなどを解説する。(編集局)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

XML WebサービスとCOM+ Servicesの連携

 XML WebサービスとCOM+ Servicesを連携させると、トランザクションのコミットおよびロールバックを処理する特定のコードを記述する必要はなくなります。オブジェクトがトランザクションに参加するかどうかは、“宣言”によって決定することが可能になります。

 ASP.NETを使用して作成したXML Webサービスでは、XML Webサービス・メソッドに適用されたWebMethod属性のTransactionOptionプロパティを設定することでトランザクション動作を宣言できます。XML

Webサービス・メソッドの実行中に例外がスローされた場合、トランザクションは自動的に中止されます。その逆に、例外が発生しない場合は、トランザクションは自動的にコミットされます。

 XML WebサービスとCOM+ Servicesを連携させるには以下の作業を行います。

1. System.WebServices.dllの参照設定

 ASP.NET Webサービス・プロジェクトの参照設定でSystem.WebServices.dllを追加します。

図6 System.WebServices.dllの参照設定
図6 System.WebServices.dllの参照設定

2. WebメソッドのTransactionOptionの設定

 WebMethod属性のTransactionOptionプロパティを設定することでトランザクションをサポートします。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 TransactionOptionは以下の5つのオプションをサポートしています。

Transaction Option 説明
Disabled XML Webサービス・メソッドが、トランザクションのスコープ内で実行されないことを示します。要求が処理されるときに、XML Webサービス・メソッドがトランザクションなしで実行されます。
[WebMethod(TransactionOption=TransactionOption.Disabled)]
NotSupported XML Webサービス・メソッドが、トランザクションのスコープ内で実行されないことを示します。要求が処理されるときに、XML Webサービス・メソッドがトランザクションなしで実行されます。
[WebMethod(TransactionOption=TransactionOption.NotSupported)]
Supported XML Webサービス・メソッドが、トランザクションのスコープ内で実行されないことを示します。要求が処理されるときに、XML Webサービスがトランザクションなしで作成されます。
[WebMethod(TransactionOption=TransactionOption.Supported)]
Required XML Webサービス・メソッドに、トランザクションが必要であることを示します。XML Webサービス・メソッドは、トランザクションにルート・オブジェクトとしてだけ参加できるため、XML Webサービス・メソッド用に新しいトランザクションが作成されます。
[WebMethod(TransactionOption= TransactionOption.Required)]
RequiresNew XML Webサービス・メソッドに新しいトランザクションが必要であることを示します。要求が処理されるときに、新しいトランザクション内でXML Webサービスが作成されます。
[WebMethod(TransactionOption=TransactionOption.RequiresNew)]
表5 TransactionOptionがサポートする5つのオプション
XML Webサービス上でCOM+ Servicesを利用するためには、Oracle Services for Microsoft Transaction Serverがインストールされている必要があります。インストール方法についてはOTN(Oracle Technology Network)の「意外と簡単!?.NETでOracle」にて詳細な手順を説明していますので、そちらを参照してください。

ASP.NETでODP.NETを利用する際の注意点

 最後に、ASP.NETからODP.NETを利用する際の注意点を説明します。IISではASP.NETスクリプトの実行時、ASPNETユーザーとして実行されます。ASPNETユーザーのORACLE_HOMEディレクトリへのアクセス権がないと図7のようなエラーが発生しますので、アクセス権を設定する必要があります。

図7 ORACLE_HOMEへのアクセス権がないために発生するエラー画面(クリックすると拡大します)
図7 ORACLE_HOMEへのアクセス権がないために発生するエラー画面(クリックすると拡大します)

手順1

Administrator権限のあるユーザーでWindowsにログオンする。

手順2

WindowsのExplorer(Explorer.exe)を起動し、ORACLE_HOMEディレクトリを選択して右クリック。

手順3

「プロパティ」を選択し「セキュリティ」タブを開く。

手順4「追加(D)」を押し「ユーザーまたはグループの選択」画面を表示する(画像をクリックすると拡大します)。

手順5

「場所」からローカルマシンを選択し、上記の「ASPNET」を選択し「追加(A)」を押し「OK」を押して追加する。

手順6

手順5で追加したユーザーを選択し、「アクセス許可(P)」より「許可」の列にある「読み取りと実行」のチェックを付け「適用(A)」に続いて「OK」を押す。


 今回はASP.NETからODP.NETを使用する際のコーディングについて説明しました。次回は、データアクセスの詳細な説明とパフォーマンスを向上させるためのコーディングを説明します。(次回へ続く)

前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る