この章では、Oracle Database for Microsoft Windowsで.NETストアド・プロシージャまたはファンクションを作成して実行できるようにするOracle Database Extensions for .NETの概要について説明します。
この章の内容は次のとおりです。
Oracle Database Extensions for .NETには、次の機能が用意されています。
Oracleデータベース用共通言語ランタイム(CLR)ホスト
Oracle Data Provider for .NETクラスを介したデータ・アクセス
Oracle Deployment Wizard for Visual Studio .NET
Oracle Databaseは、同じコンピュータ上のOracleデータベース・プロセスの外にある外部プロセス内で、Microsoft Common Language Runtime(CLR)を管理します。Oracle DatabaseとMicrosoft Common Language Runtime (CLR)との統合により、アプリケーションではサポートされているMicrosoft Windowオペレーティング・システム上のOracle Databaseで.NETストアド・プロシージャまたはファンクションを実行できます。
アプリケーション開発者は、C#やVB.NETなど、任意の.NET準拠言語を使用してストアド・プロシージャおよびファンクションを記述し、これらの.NETストアド・プロシージャを他のPL/SQLまたはJavaストアド・プロシージャと同様にデータベースで使用できます。.NETストアド・プロシージャは、PL/SQLパッケージ、プロシージャ、ファンクションおよびSQL文からのトリガー、またはPL/SQLプロシージャやファンクションをコールできる場所ならどこからでもコールされます。
アプリケーション開発者は、通常はMicrosoft Visual Studioを使用して.NETプロシージャまたはファンクションを.NETアセンブリに組み込みます。Oracle Data Provider for .NETは、データ・アクセス用の.NETストアド・プロシージャおよびファンクションで使用されます。.NETプロシージャおよびファンクションを.NETアセンブリに組み込んだ後、開発者はOracle Developer Tools for Visual StudioのコンポーネントであるOracle Deployment Wizard for .NETを使用して、Oracleデータベースにデプロイします。
.NETストアド・プロシージャまたはファンクションは、PL/SQLラッパーが生成されているため、コール元にはPL/SQLストアド・プロシージャまたはファンクションとして表示されます。ユーザーは、このPL/SQLラッパーを介して.NETストアド・プロシージャまたはファンクションをコールします。Oracleデータ型と.NETデータ型の間に可能なマッピングはOracle Deployment Wizard for .NETにより決定されますが、ユーザーがオーバーライドできます。このマッピングは、PL/SQLラッパーによりシームレスに処理されます。
このアーキテクチャ・ダイアグラムは、クライアント・アプリケーションと2つのプロセス領域(Oracleプロセス領域および外部プロセス領域)を示しています。
Oracleプロセス領域にはOracleデータベース・インスタンスが含まれており、PL/SQLラッパーを管理します。
外部プロセス領域にはOracle CLRホストが含まれており、そこで.NETストアド・プロシージャまたはファンクションが実行されます。
Oracle CLRホストは、Oracle Database Extensions for .NETインストールの一部としてインストールされ、extproc
プロセスで実行されます。extproc
プロセスによりOracle CLRホストがロードされ、Oracle CLRホストによりMicrosoft Common Language Runtime(CLR)のインスタンスがロードされ、ラップされているPL/SQLプロシージャ用のインタフェースが提供されます。これらの仕組みは、ユーザーには表示されません。ユーザーにとっては、単にアプリケーションが他のPL/SQLストアド・プロシージャまたはファンクションをコールしているようにみえます。
注意: Microsoft .NET Frameworkをデータベースと同じコンピュータにインストールしておく必要があります。 |
.NETストアド・プロシージャまたはファンクションは、Oracleデータベースの外部プロセスで管理されます。この外部プロセスは、extproc
という異機種間サービス・エージェント、外部プロシージャ・エージェントまたは外部プロセスです。このマニュアルでは、extproc
プロセスまたはextproc
エージェントという用語を使用します。
関連項目: 『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』 |
extproc
プロセスは、次のアーキテクチャをサポートします。
専用(シングルスレッド)エージェント・アーキテクチャでは、extproc
プロセスはユーザー・セッションごとに起動されます。ユーザー・セッションの終了時にプロセスが終了します。このアーキテクチャでは、ユーザー・セッションごとに新規のextproc
プロセスを起動して停止する必要があるため、必要以上に大量のシステム・リソースを消費する可能性があります。したがって、専用エージェント・アーキテクチャは、システム・リソースとランタイム効率の点でパフォーマンスが十分であるとは言えません。
マルチスレッドextproc
プロセスでは、共有スレッドのプールが使用されます。ユーザー・セッションから要求されたタスクはキューに置かれ、最初に使用可能なスレッドにより取り出されます。
マルチスレッド・エージェント・アーキテクチャでは、専用アーキテクチャよりも効率的にシステム・リソースを使用できます。
マルチスレッドextproc
プロセスは、システム識別子(SID)ごとに個別に起動する必要があります。システムで実行中の各TNSリスナーは、一連のSIDについて着信接続要求をリスニングします。着信Oracle Net接続文字列内のSIDがリスナーのリスニング対象であれば、そのリスナーにより接続が処理されます。そのSIDに対してマルチスレッド・プロセスが起動されている場合、リスナーはそのプロセスに要求を渡します。
関連項目:
|
Oracle Data Provider for .NETは、任意のクライアント・アプリケーションからOracleデータベースへのデータ・アクセスを提供します。Oracle Data Provider for .NETは、Oracle Technology Network(OTN)から無償でダウンロードできます。
関連項目: ODP.NETクラスの詳細は、『Oracle Data Provider for .NET開発者ガイド』(Microsoft Windows用)を参照してください。 |
Oracle Developer Tools for Visual Studioは、Visual Studio開発環境と緊密に統合されているアプリケーション・ツール・セットです。Oracle Developer Toolsを使用すると、開発者は表の作成、ストアド・プロシージャの編集およびOracle Databaseでのデータ表示など、多様なアプリケーション開発タスクを実行できます。Oracle Developer Tools for Visual Studioは、Oracle Technology Network(OTN)から無償でダウンロードできます。
関連項目: Oracle Developer Tools for Visual Studioヘルプ |
Oracle Deployment Wizard for .NETは、Microsoft Visual Studioと統合されたグラフィカル・ツールで、任意の.NETプロシージャまたはファンクションを簡単にOracleデータベースにデプロイできます。これは、Oracle Developer Tools for Visual Studioの一部としてインストールされます。
関連項目: 詳細は、Oracle Developer Tools for Visual Studioのインストールにより使用できるOracle Developer Tools for Visual Studio動的ヘルプを参照してください。 |