WebSphere Application Server, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

作業域の完了

このタスクについて

アプリケーションは、作業域の使用を終了した後に、UserWorkArea インターフェースの complete メソッドを呼び出して、その作業域を終了する必要があります。 これにより、呼び出し元のスレッドとの関連が終了 し、作業域は破棄されます。 complete メソッドがネストされた作業域上に呼び出された場合、 ネストされた作業域は終了し、 親作業域が現行の作業域となります。 呼び出し元のスレッドに 関連付けられている作業域がない場合は、NoWorkArea 例外が作成されます。

すべての作業域には 終了処理が必要です。また作業域は親プロセスによってのみ終了できます。 例えば、クライアント の作成した作業域でサーバーが complete メソッドを呼び出そうとした場合、NotOriginator 例外が作成されます。 サーバー・プロセスで作成された作業域は、呼び出し元のクライアント・プロセスに戻されることはありません。

注: 作業域サービス はローカルとリモートの間の完全な透過性を要求します。 2 つの Bean が偶然同じサーバー内にデプロイされ、その結果、同じ JVM および プロセスにデプロイされた場合でも、他の作業域からの呼び出しで開始した作業域は完了し、いかなる リモート呼び出しの後でも要求元の Bean は常に同じ状態になります。

次のコード例は、クライアント・アプリケーションで作成された作業域の終了を 示したものです。

public class SimpleSampleServlet {
   ...
   userWorkArea.begin("SimpleSampleServlet");
   userWorkArea.set("company",
       SimpleSampleCompany.Main, PropertyModeType.read_only);
   userWorkArea.set("priority", SimpleSamplePriority.Silver);
   ...

   // Do application work.
   ...

   // Terminate the work area.
   try {
      userWorkArea.complete();
   }

   catch (NoWorkArea e) {
      // There is no work area associated with this thread.
      ...
   }

   catch (NotOriginator e) {
      // The work area was imported into this process.
      ...
   }
  ...
}

次のコード例は、リモート呼び出しで以前に作成したネスト済み作業域を 完了させるサンプル・アプリケーションを示したものです。

public class SimpleSampleBeanImpl implements SessionBean {

    public String [] test() {
      ...

      // Begin a nested work area.
      userWorkArea.begin("SimpleSampleBean");
      try {
        userWorkArea.set("company",
                         SimpleSampleCompany.London_Development);
      }
      catch (NotOriginator e) {
      }

      SimpleSampleCompany company =
         (SimpleSampleCompany) userWorkArea.get("company");
      SimpleSamplePriority priority =
         (SimpleSamplePriority) userWorkArea.get("priority");

      // Complete all nested work areas before returning.
      try {
        userWorkArea.complete();
      }
      catch (NoWorkArea e) {
      }
      catch (NotOriginator e) {
      }
   }
}




関連概念
ネストされた作業域
関連タスク
新規の作業域の開始
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 22, 2008 12:07:38 AM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/workarea/tasks/twa_complete.html