3.7.2.2.6 例外

activate_object()の実行中にエラーが発生した場合、アプリケーション・コードでは、CORBA標準例外またはTobjS::ActivateObjectFailed例外を生成する必要があります。例外が発生すると、TPフレームワークは例外を捕捉して、以下のイベントが発生します。

  • アクティブ化が失敗します。
  • クライアントが呼び出したメソッドは実行されません。
  • activate_object()がトランザクション内で実行され、クライアントがトランザクションを開始した場合、トランザクションはロールバックされません
  • クライアントに対してCORBA::OBJECT_NOT_EXIST例外が生成されます。

    ノート:

    操作呼出しを受信したときにトランザクションを自動的に開始する場合、各CORBAインタフェースに対して、AUTOTRANYesに設定します。AUTOTRANYesに設定しても、インタフェースがすでにトランザクション・モードにある場合は無効です。AUTOTRANの詳細は、『CORBAトランザクションの使用』を参照してください。
  • 発生した例外に基づいて、次のようにメッセージがユーザー・ログ(ULOG)ファイルに書き込まれます:
    TobjS::ActivateObjectFailed
    "TPFW_CAT:24: ERROR: Activating object - application raised 
    TobjS::ActivateObjectFailed. Reason = reason  . Interface =  
    interfaceName  , OID =  oid  " 
    reasonはユーザー指定の理由を示し、interfaceNameoidはそれぞれ呼び出されたCORBAオブジェクトのインタフェースIDとオブジェクトIDを示します。
    TobjS::OutOfMemory
    "TPFW_CAT:22: ERROR: Activating object - application raised 
    TobjS::OutOfMemory. Reason = reason. Interface = interfaceName, OID = 
    oid"
    reasonはユーザー指定の理由を示し、interfaceNameoidはそれぞれ呼び出されたCORBAオブジェクトのインタフェースIDとオブジェクトIDを示します。
    CORBA::Exception
    "TPFW_CAT:25: ERROR: Activating object - CORBA Exception not handled 
    by application. Exception ID = exceptionID. Interface = interfaceName, 
    OID = oid"
    exceptionID は例外のインタフェースID、interfaceNameoid はそれぞれ呼び出されたCORBAオブジェクトのインタフェースIDとオブジェクトIDを示します。
    Other exception
    "TPFW_CAT:26: ERROR: Activating object - Unknown Exception not handled 
    by application. Exception ID = exceptionID. Interface = interfaceName, 
    OID = oid"
    exceptionID は例外のインタフェースID、interfaceNameoid はそれぞれ呼び出されたCORBAオブジェクトのインタフェースIDとオブジェクトIDを示します。