また、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への対応も順次行われる予定です。
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つの方法となります。
後述するOracle Database Extensions for .NET(ODE.NET)を使用することで、ストアドプロシージャを.NET準拠言語で作成することが可能になりました。.NETストアドプロシージャを開発する際には、ODP.NETを使用してデータベースにアクセスすることが可能です。
そのほかにも、LOB型データのパフォーマンスを向上させるためのプロパティの追加や、.NETアプリケーション上でストアドプロシージャ/ファンクション間でのREF CURSORの受け渡しを可能にする機能の追加が行われており、より柔軟な開発がサポートされるようになっています。
次回以降に解説予定の各機能・ツールは、このODP.NETの使用を前提としたものです。これらの機能・ツールを使用することで、より容易に高付加価値なアプリケーションを作成することが可能になります。(次ページへ続く)
Copyright © ITmedia, Inc. All Rights Reserved.