ビジネス・コンポーネント受信アダプタのサブクラス化

Business Components of Java受信アダプタをサブクラス化して、独自のプログラム・ロジックを実装できます。このクラスのメソッドをオーバーライドして、次の処理を行う独自のコードを追加できます。

サブクラス化したアダプタのためのクライアント・コードの生成をアクティビティ・モデラーに指定するには、「スイムレーン」プロパティ・ダイアログの「アダプタ」ページを使用します。このページで、「サブクラスの使用」チェック・ボックスを選択し、サブクラス化したファイルの完全修飾クラス名を入力します。

サブクラス・コードの記述

受信アダプタをサブクラス化するには、Business ComponentsReceivingAdapterクラスであるoracle.bm.ebiadapters.Business ComponentsReceivingAdapterを拡張し、独自の機能を提供するようにメソッドをオーバーライドする必要があります。 たとえば、次のようになります。

class MyAdapterSubclass extends oracle.bm.ebiadapters.Business ComponentsReceivingAdapter
   {
      ...
   }    

メッセージ変換のオーバーライド

次に示すのは、カスタム・メッセージ変換メソッドです。

public String doCustomTransformation(String message)
{
   //
   // Place your message transformation code here
   //
   return newMessage;
}    

これは、Oracle AQからメッセージをデキューした後でコールされます。このメソッドをオーバーライドして、独自のメッセージ変換コードを実装します。このメソッドは解析の前に適用されるので、メッセージ自体はXMLでなくても構いません。このメソッドはString newMessageを返します。返される文字列は有効なXMLである必要があります。そうでない場合は、解析が失敗します。

カスタムのメッセージ変換では、特定のビジネス・コンポーネント・アプリケーションがデキューされたデータを使用するために必要となる変換コードをすべて記述します。たとえば、次の処理が可能です。

このメソッドには、デフォルトのメッセージ変換コードはありません。独自のコードを追加せずにこのメソッドを適用しても、メッセージには影響しません。

パーサー・エラー処理のオーバーライド

次に示すのは、パーサー・エラー処理メソッドです。

public void doParseErrorHandling(Exception e, String Message)
{
   //
   // Place your message transformation code here.
   //
}    

これがコールされるのは、デキューされたメッセージ・ペイロードの解析中にエラー(XMLParseExceptionSAXExceptionまたはIOException)が発生した場合です。複数メッセージを処理する受信アダプタでは、解析エラーによってアダプタ全体に障害が発生することはありません。このメソッドはクリーン・アップのために使用できます。このメソッドをオーバーライドして、独自のパーサー・エラー処理ロジックを実装します。エラーを処理すると、制御はメッセージ処理ループに戻ります。

このメソッドには、デフォルトのパーサー・エラー処理コードはありません。独自のコードを追加せずにこのメソッドを適用しても、効果はありません。

トランザクション処理のオーバーライド

次に示すのは、トランザクション処理メソッドです。

public void handleTransaction(ApplicationModule appmod, int numOfMessageReceived)

{
   //
   // Place your transaction handling code here
   //

}    

これは、アプリケーション・モジュールをコミットして、トランザクションを終了するときにコールされます。デフォルトでは、このメソッドは、メッセージを受信するたびにアプリケーション・モジュールのトランザクションをコミットします。別の動作または複雑な動作が必要な場合には、このメソッドをオーバーライドします。たとえば、スループットを向上するには、numOfMessagesReceivedパラメータを使用すると、メッセージが10個受信された後にアプリケーション・モジュールをコミットできます。

注意: メッセージを1つ受信するたびにコミットすることをお薦めします。コミットしない場合、データが消失することがあります。


関連項目

メッセージ・アダプタの基本

ビジネス・コンポーネント受信アダプタ

ビジネス・コンポーネント受信アダプタ・クライアント・コードの生成

独自のビジネス・コンポーネント受信アダプタ・クライアント・コードの作成

 

 

Copyright © 1997, 2004, Oracle. All rights reserved.