WebSphere Application Server for z/OS, Version 6.1   
             オペレーティング・システム: z/OS

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

例: 読み取り専用のエンティティー Bean の使用

読み取り専用のエンティティー Bean を使用する EJB アプリケーションの書き込みの使用シナリオと例を紹介します。

使用のシナリオ

カスタマーは、価格設定および配送 率情報のカタログのデータベースを持っていて、それは毎日遅くても現地時 間の午後 10 時 00 分 (24 時間制では 22 時 00 分) に更新されます。 このデータに対して読み取り専用アクセス権を持つ EJB アプリケーションの書き込みが行われます。 つまり、このアプリケーションは決して価格設定データベースを更新しません。 更新は何か他のアプリケーションを介して行われます。

カスタマーのエンティティー Bean ローカル・イ ンターフェースは以下のようになります。

	public interface ItemCatalogData extends EJBLocalObject {
	 
	  public int getItemPrice();
	 
	  public int getShippingCost(int destinationCode);
	 
	}

この EntityBean を起動して配送を含む合計コストを計算する Stateless SessionBean メソッド (TxRequired であることが前提) 内のコー ドは、以下のようになります。

	.....
	// Some transactional steps occur prior to this point, such as removing the item from 
  // inventory, etc.
  // Now obtain the price of this item and start to calculate the total cost to the purchaser
 
  ItemCatalogData theItemData = 
	    (ItemCatalogData) ItemCatalogDataHome.findByPrimaryKey(theCatalogNumber);
 
	int totalcost = theItemData.getItemPrice();
	 
	// ...     some other processing, etc. in the interim
	// ...
	// ...
	 
	// Add the shipping costs
	totalcost = totalcost + theItemData.getShippingCost(theDestinationPostalCode);
アプリケーション・アセンブル時間で、カスタマーはこの Bean のための EJB キャッシング・パラメーターを以下のように設定します。
  • ActivateAt = ONCE
  • LoadAt = DAILY
  • ReloadInterval = 2200

毎晩 22 時 00 分以降の最初の getItemPrice() メソッド の呼び出しで、EJB コンテナーはデータベースから価格設定情報を再ロードします。 getItemPrice() および getShippingCost() への呼び出しの間に時計が 22 時 00 分となった場合、このトランザクション内の最初のメソッド起動は 22 時 00 分より前に発生したため、getShippingCost() メソッドは、データベースに対し 22 時 00 分に発生した可能性のあるあらゆる変更よりも前に持っていた値を戻しま す。 従って、使用された品目価格と配送コストはお互いに同期のままで残ります。




関連概念
エンタープライズ Bean
並行性制御
関連タスク
JNDI を使用するアプリケーションの開発
関連資料
Enterprise JavaBeans 仕様の WebSphere 拡張機能
エンタープライズ Bean 開発のためのベスト・プラクティス
エンタープライズ Bean: 学習用リソース
参照トピック    

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

最終更新: Jan 21, 2008 9:12:22 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/ae/rejb_readonly.html