BizTalk Adapter for Oracle Database の主な機能
このセクションでは、Microsoft BizTalk Adapter for Oracle Database の新機能と非推奨の機能の一覧を示します。
テクノロジ関連の機能
機能 | コメント |
---|---|
Oracle データベースへの新しい接続方法 | (以前のバージョンのアダプターと同様に) tnsnames.ora ファイル内の net サービス名を使用して Oracle データベースに接続する以外に、アダプター クライアントは接続パラメーターを指定して Oracle データベースに直接接続できるため、ネット サービス名または tnsnames.ora ファイルを使用する必要がなくなります。 tnsnames.ora ファイルを Oracle データベースに接続する必要がない場合、環境で Oracle サーバーを追加または更新するときに、すべてのクライアント コンピューター上の tnsnames.ora ファイル内の接続パラメーター (net サービス名) を手動で更新する手間を省くことができます。 詳細については、「 Oracle データベースへの接続を作成する」を参照してください。 |
Windows 認証のサポート | アダプター クライアントは、Windows 認証を使用して Oracle データベースに接続できます。 Windows 認証を使用すると、Windows ログオン資格情報に基づいてユーザーの ID を判断できるため、Windows 環境の組み込みのセキュリティを活用するのに役立ちます。 Oracle Database アダプターでの Windows 認証の詳細については、「 Windows 認証を使用して Oracle データベースに接続する」を参照してください。 |
操作に関連する機能
機能 | コメント |
---|---|
挿入操作でのインライン値の指定のサポート | Insert 操作で InlineValue 属性を使用して、Oracle データベースのテーブルまたはビューに計算値を挿入できます。 これは省略可能な属性であり、複数レコード挿入操作のすべての単純なデータ レコードで使用できます。 この属性の値を指定すると、レコードの指定された値がオーバーライドされます。 InlineValue 属性の詳細については、「 Oracle テーブルとビューに対する挿入、更新、削除、および選択操作」を参照してください。 |
強化されたポーリング | Oracle Database アダプターでは、ストアド プロシージャ、関数、またはパッケージ化されたプロシージャまたは関数を使用して Oracle データベースを定期的にポーリングすることで、"ポーリング ベース" のデータ変更メッセージの受信がサポートされるようになりました。 SELECT ステートメントに加えて、ストアド プロシージャ、関数、またはパッケージ化されたプロシージャまたは関数を、アダプターが Oracle データベースをポーリングするために定期的に実行するポーリング ステートメントとして指定できるようになりました。 ポーリングの詳細については、「 ポーリング ベースのデータ変更メッセージの受信のサポート」を参照してください。 |
Oracle User-Defined 型 (UDT) のサポート | Oracle Database アダプターは、Oracle UDT を含む Oracle データベース内の成果物に対する操作の実行をサポートしています。 UDT のサポートの詳細については、「 Oracle Database での Oracle User-Defined の種類のサポート」を参照してください。 |
複合操作のサポート | Oracle Database アダプターを使用すると、アダプター クライアントは Oracle データベースに対して複合操作を実行できます。 複合操作には、次の任意の数の操作を任意の順序で含めることができます。 - テーブルとビューに対する操作。 - アダプターの操作として表示されるパッケージ内のストアド プロシージャ、関数、およびプロシージャまたは関数。 複合操作の詳細については、「複合操作 のメッセージ スキーマ」を参照してください。 |
ユーザーが所有していないスキーマでのストアド プロシージャの実行のサポート | Oracle Database アダプターを使用すると、現在のユーザーがスキーマの所有者でない場合でも、Oracle のスキーマに対するアクセス許可を持っている場合でも、スキーマでストアド プロシージャを実行できます。 ただし、ストアド プロシージャで RECORD 型を使用する場合は、ストアド プロシージャと同じスキーマで定義する必要があります。 Oracle Database アダプターを使用してストアド プロシージャを実行する方法については、「 Functions およびストアド プロシージャに対する操作」を参照してください。 |
データベース変更通知のサポート | アダプター クライアントは、トリガーする SELECT ステートメントに基づいて、Oracle データベースからデータベース変更通知を受信できます。 通知は、SELECT ステートメントの結果セットが変更されたときに、Oracle データベースによってアダプター クライアントに送信されます。 データベース変更通知の詳細については、「データベース変更通知 の受信に関する考慮事項」を参照してください。 |
シノニムのサポート | アダプター クライアントは、テーブル、ビュー、ストアド プロシージャ、関数、パッケージに対して作成されたシノニムに対して操作を実行できます。 シノニムの詳細、および Oracle Database アダプターを使用してシノニムに対する操作を実行する方法については、「 Oracle Database のシノニムに対する操作」を参照してください。 |
ブール型パラメーターと PL/SQL テーブル型のサポート | アダプター クライアントは、ブール値パラメーターと PL/SQL テーブルの種類を含むストアド プロシージャと関数で操作を実行できます。 |
その他の機能
機能 | コメント |
---|---|
BizTalk Serverでアダプターを使用する新しい方法 | Oracle Database アダプターは、WCF-Custom ポートまたは WCF-OracleDB ポートとして BizTalk で使用できます。 WCF-Custom ポートを使用して Oracle Database アダプターを使用する場合は、WCF-Custom ポートが既定でBizTalk Server管理コンソールに追加されるため、BizTalk Server管理コンソールに WCF-Custom ポートを追加する必要はありません。 ただし、WCF-OracleDB ポートを介して Oracle Database アダプターを使用する場合は、まずBizTalk Server管理コンソールに WCF-OracleDB アダプターを追加する必要があります。 詳細については、「BizTalk Server管理コンソールへの Oracle データベース アダプターの追加」を参照してください。 |
Oracle アダプターの非推奨の機能
次の表に、Oracle Database アダプターの現在のバージョンで非推奨となった機能を示します。
機能 | コメント |
---|---|
バインディングのプロパティ | PollingRetryCount、TransactionIsolationLevel、および LongDataTypeColumnSize バインディング プロパティは非推奨です。 メモ 受信操作のトランザクション分離レベルを設定するには、受信ポートの構成中にサービスの動作を追加して、適切な値を設定する必要があります。 トランザクション分離レベルを設定する手順については、「トランザクション分離レベル の構成」と「トランザクション タイムアウト」を参照してください。 |
メモする変更
全般
IN OUT REF CURSOR 型のパラメーターの場合
ストアド プロシージャ内で REF CURSOR 値に変更が加えられなかった場合、出力の値は入力 REF CURSOR の値と同じです。
REF CURSOR の入力データと出力データは同じ型です。
"nil" 属性の誤った動作: すべての単純なデータ型について、nil 属性の値を "true" に設定し、フィールドまたはパラメーターの値が存在する場合、Oracle データベース アダプターは NULL ではなく指定された値を誤って渡します。 回避策として、フィールドまたはパラメーターに NULL 値を渡す場合は、フィールドまたはパラメーターの値が指定されていないことを確認する必要があります。 たとえば、"name" というフィールドに NULL 値を渡すには、次のようにします。
<name xsi:nil="true"/>
Select 操作の結果セットの値の末尾にある Real、Float、Long の各データ型と、余分なゼロ (0) は切り捨てられません。 さらに、Select 操作の結果セットは、常に Real、Float、Long の各データ型に対して有効桁数 8 の値を返します。
RECORD 型のデータの処理: これらのノードに渡される値は、 SkipNilNodes バインディング プロパティの値によって異なります。 このバインディング プロパティの詳細については、「 Oracle Database のバインド プロパティを構成する」を参照してください。
送信操作: 入力 XML ファイルで指定された値を持たないパラメーターに値は送信されません。 ストアド プロシージャで既定値が指定されている場合、Oracle データベースはその値を使用します。これは、アダプターによって値が送信されなかったためです。 NULL 値を送信する必要がある場合、ユーザーは"nil" 属性の値を "true" に設定して、入力 XML ファイルで NULL ノードを指定する必要があります。
コマンド タイムアウトがサポートされています。
UpdateLOB 操作は、トランザクションの一部として実行する必要があります。 これを確認するには、 UseAmbientTransaction バインディング プロパティの値を True に設定する必要があります。
BizTalk シナリオ
送信操作: UseAmbientTransaction バインディング プロパティが "True" の場合、Oracle データベースと BizTalk MessageBox データベースに対する操作は、同じ分散トランザクション内で実行されます。 Oracle Database アダプターのトランザクションの詳細については、「Oracle Database アダプターを使用した トランザクションの処理」を参照してください。
受信操作: Oracle Database アダプターを使用する受信操作に対して、BizTalk Serverで Request-Response 受信ポートを使用することはできません。 One-Way 受信ポートのみを使用できます。
その他のシナリオ
送信操作: アダプターはトランザクションを開始しません。 ユーザーが同じトランザクション内に複数の行を挿入する場合は、System.Transactions トランザクション スコープ内で操作を実行する必要があります。 また、ユーザーは UseAmbientTransaction プロパティの値を True に設定する必要があります。 Oracle Database アダプターのトランザクションの詳細については、「Oracle Database アダプターを使用した トランザクションの処理」を参照してください。
送信操作: 同じ IRequestChannel/proxy オブジェクトに対して実行される Sll 操作は、Oracle データベースへの同じ物理接続では実行されない場合があります。
WCF チャネル モデル: Oracle データベース アダプターは、WCF チャネル モデルの使用中に IReplyChannel をサポートしていません。 ただし、受信操作を実行するために IInputChannel を使用できます。 さらに、トランザクションに関しては、アダプターは WCF Dispatcher によって開始されるトランザクションに依存して、ポーリング ステートメントを実行し、Oracle データベースに対してポーリング ステートメントを投稿します。 トランザクション分離レベルと WCF ディスパッチャーによって開始されるトランザクションのタイムアウトは、ServiceBehavior で適切な値を設定することによって制御できます。