連載
» 2005年11月05日 00時00分 公開

.NETでOracleアプリを作ろう(1):Oracleにおける.NET開発環境の概要 (2/4)

[小海友和,日本オラクル]

ODP.NETのADO.NET 2.0への対応状況

 また、ADO.NET準拠ということで、ADO.NET 2.0との違いも気になるところかもしれません。ODP.NETは現在、OTN-Jで公開されている最新のバージョン(10.1.0.4.0)ですでにMARS注1などのADO.NET 2.0の新機能の一部を有しています。近々、公開が予定されているODP.NET 10.2では、Oracleデータベース固有の機能を生かす、以下の新しい機能の追加が行われていますし、ADO.NET2.0への対応も順次行われる予定です。

  • Real Application Clusters(RAC)に最適化されたコネクションプーリング
  • データベース変更通知サービス
  • クライアント識別子のサポート
  • .NETストアドプロシージャのサポート
注1MARS
1つの接続で複数の結果セットを扱うことができる機能。

RACに最適化されたコネクションプーリング

 RACに対するコネクションプーリングが最適化されたことで、RACへの接続要求があった場合、データベース上で設定されたポリシーに従い自動的にコネクションを負荷分散することが可能になっています。RACに接続するアプリケーションを開発し、この機能を使用するには、OracleConnectionクラスのConnectionStringプロパティにロードバランスの設定を追加するだけでこの機能が実現できます(リスト3)。

"user id=scott;password=tiger;data source=orcl;load balancing=true"
リスト3 コネクションのロードバランスの設定
赤字部分がRACに対するコネクションプーリングを有効にするためのロードバランス設定

 また、1つのノードが障害でダウンした場合に、プール内のコネクションを自動的に変更する機能も追加されていますが、この機能もConnectionの文字列に「HA Events=true」を追加するだけで利用が可能です。

データベース変更通知サービス

 ADO.NET 2.0の新機能として、データが更新された際にデータベースから通知を受け取る機能が追加されていますが、ODP.NET 10.2にも同様の機能が追加されています。これにより、よりデータの整合性、リアルタイム性の高いアプリケーションを容易に作成することが可能となりました。

クライアント識別子のサポート

 ODP.NET 10.2ではOracleConnectionクラスにClientIdプロパティが追加されています。このプロパティに文字列をセットすることで、そのセッションに固有の名前を付けることができます。通常、3層アプリケーションではアプリケーションからデータベースへの接続は同一のスキーマ(データベースのユーザー)を使用することが多いですが、これではデータベース上からは、どのユーザーが接続しているのか把握できません。ClientIdを使用すると、クライアントの識別子を簡単にセットすることができるため、セキュリティの問題を解決する1つの方法となります。

.NETストアドプロシージャのサポート

 後述するOracle Database Extensions for .NET(ODE.NET)を使用することで、ストアドプロシージャを.NET準拠言語で作成することが可能になりました。.NETストアドプロシージャを開発する際には、ODP.NETを使用してデータベースにアクセスすることが可能です。

 そのほかにも、LOB型データのパフォーマンスを向上させるためのプロパティの追加や、.NETアプリケーション上でストアドプロシージャ/ファンクション間でのREF CURSORの受け渡しを可能にする機能の追加が行われており、より柔軟な開発がサポートされるようになっています。

 次回以降に解説予定の各機能・ツールは、このODP.NETの使用を前提としたものです。これらの機能・ツールを使用することで、より容易に高付加価値なアプリケーションを作成することが可能になります。(次ページへ続く)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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