このセクションでは、コネクターがクライアントとして実行される場合に、コネクターのさまざまな部分がビジネス・オブジェクトを処理する方法を説明します。
- コネクターの始動時、コネクターのエージェント・クラスは以下の初期化
(Init) 処理を実行します。
- 構成プロパティーを検索します。
- コネクター構成ファイルから
Username、Password、および Environment
を取り出します。
- OneWorld コネクター・オブジェクトを作成します。
- Login メソッドと、取り出した Username および
Password を用いたパラメーターを使用して、OneWorld
サーバーにログインします。このメソッドは、SessionID を戻します。
- OneWorld インターフェース・オブジェクトのインスタンスを作成します。
- コネクター、OneWorldInterface、および SessionID
を接続プールに追加します。
- OneWorld BO ハンドラーは、動詞 ASI
を読み取り、一連の呼び出し可能な関数または子オブジェクトに変換します。
- ビジネス・オブジェクトにタイプ ACCESS_LEVEL
の子ビジネス・オブジェクトがあり、この子ビジネス・オブジェクト内部の
Username
属性にデータが取り込まれていて、アダプターが使用する値と異なる値になっている場合、BO
ハンドラーは、ACCESS_LEVEL ビジネス・オブジェクトに指定された
Username 属性および Password
属性の値を使用して新規の接続を開きます。すべてのこのようなビジネス・オブジェクトで、Username
属性および Password
属性の両方にデータが取り込まれている必要があります。
- アプリケーションがダウンしているために接続の作成が失敗した場合、BO
ハンドラーは APPRESPONSETIMEOUT を戻します。
- ユーザー名/パスワードが不正なために接続の作成が失敗した場合、BO
ハンドラーはエラーをログに記録し、FAIL の状況を返します。
- ビジネス・オブジェクトがタイプ ACCESS_LEVEL
の子ビジネス・オブジェクトを持たないか、またはこのビジネス・オブジェクト内の
Username 属性が null であるかアダプターの
Username
に指定された値と同じである場合には、使用可能な接続プールから接続を取り出します。BO
ハンドラーが使用可能な接続を要求したときに、接続プールで行われる処理を以下に示します。
- BO ハンドラーは、プール内に使用可能な接続があるかどうかをチェックします。
- 使用可能な接続がある場合には、接続の有効性をチェックします。接続が無効な場合、BO
ハンドラーは接続の再作成を試行します。
- 接続の作成が失敗した場合は、APPRESPONSETIMEOUT 状況を戻します。
- BO
ハンドラーは、その接続を使用可能なリストから除去し、使用中リストに追加します。
- 接続が使用不可であり、接続の最大数がプール・サイズよりも小さい場合には、新規の接続を開き、接続プールの使用中リストに追加します。新規接続のオープンが失敗した場合、アダプターは
APPRESPONSETIMEOUT を戻します。
- 使用可能な接続が存在せず、プール・サイズの最大限度に達している場合には、doVerbFor
スレッドは 接続が使用可能になるまで待機します。
- ビジネス・オブジェクトのタイプが BFN
の場合、アダプターは以下のアクションを実行します。
- アダプターは、OneWorld クラス OneWorldInterface
のBeginTransaction メソッドを使用してトランザクションを開始します。
- ビジネス・オブジェクトがインターフェース・クラスにマップされ、動詞 ASI
がブランクである場合、アダプターは、ビジネス・オブジェクト内に取り込まれている最初のメソッド属性または最初の子オブジェクトを検出し、実行します。
- 動詞 ASI にデータが取り込まれている場合、アダプターは
InvokeMethods を呼び出します。これにより、動詞 ASI
で指定されたすべてのメソッドをループ処理します。
- ビジネス・オブジェクトがビジネス関数にマップされる場合、呼び出し側はビジネス・オブジェクトにマップされるビジネス関数を実行します。タイプが
ACCESS_LEVEL ではない子オブジェクトが存在する場合、BO
ハンドラーはそれらをループ処理し、トップレベル・ビジネス・オブジェクト内で定義された順序で、それらに対応するビジネス関数を実行します。
- 呼び出し側は、ビジネス・オブジェクト内で定義された属性に基づいて引数を構成してから、リフレクション
API を使用して OneWorld Java オブジェクト上でメソッドを起動します。
- 完全なビジネス・オブジェクトの実行が正常に終了すると、BO
ハンドラーはオブジェクト OneWOrldInterface 上で Commit
メソッドを使用してトランザクションをコミットし、VALCHANGED
状況を戻します。
- 接続を接続プールに解放します。
- ビジネス関数が正常に実行されたときは VALCHANGED を戻します。
- ビジネス・オブジェクトのタイプが BFN で、Interface
クラスにマップされているとき、動詞 ASI
がブランクになっており、データを取り込んだ属性が無い場合は、FAIL
を戻します。
- 処理が失敗したときに FAIL を戻します。
- ConnectionEventStore
クラスは、サブスクリプション・デリバリーで以下の処理を実行します。
- コネクターがイベントを受信すると、ConnectionEventStore
クラスは以下の処理を行います。
- イベントが指定するタイプのビジネス・オブジェクトを作成します。
- イベント表が指定するオブジェクト・キーを使用して、そのビジネス・オブジェクトのキーの値とキー以外の値を設定します。
- ビジネス・オブジェクトのタイプがビジネス関数の場合、動詞に
Execute を設定します。
- ビジネス・オブジェクトのタイプがインターフェースの場合、動詞に
Retrieve を設定します。
- ビジネス・オブジェクトの取得後、コネクターは、イベントが指定する動詞を設定してビジネス・オブジェクトを
InterChange Server Express に送信します。
- 接続プールから取得したすべての接続をクローズして終了します
(Terminate)。
