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. // }
これがコールされるのは、デキューされたメッセージ・ペイロードの解析中にエラー(XMLParseException、SAXExceptionまたはIOException)が発生した場合です。複数メッセージを処理する受信アダプタでは、解析エラーによってアダプタ全体に障害が発生することはありません。このメソッドはクリーン・アップのために使用できます。このメソッドをオーバーライドして、独自のパーサー・エラー処理ロジックを実装します。エラーを処理すると、制御はメッセージ処理ループに戻ります。
このメソッドには、デフォルトのパーサー・エラー処理コードはありません。独自のコードを追加せずにこのメソッドを適用しても、効果はありません。
次に示すのは、トランザクション処理メソッドです。
public void handleTransaction(ApplicationModule appmod, int numOfMessageReceived) { // // Place your transaction handling code here // }
これは、アプリケーション・モジュールをコミットして、トランザクションを終了するときにコールされます。デフォルトでは、このメソッドは、メッセージを受信するたびにアプリケーション・モジュールのトランザクションをコミットします。別の動作または複雑な動作が必要な場合には、このメソッドをオーバーライドします。たとえば、スループットを向上するには、numOfMessagesReceivedパラメータを使用すると、メッセージが10個受信された後にアプリケーション・モジュールをコミットできます。
注意: メッセージを1つ受信するたびにコミットすることをお薦めします。コミットしない場合、データが消失することがあります。
ビジネス・コンポーネント受信アダプタ・クライアント・コードの生成
独自のビジネス・コンポーネント受信アダプタ・クライアント・コードの作成
Copyright © 1997, 2004, Oracle. All rights reserved.