ビジネス・コンポーネントの属性値の検証を行う回数を減らすことによって、ネットワーク通信量を改善できます。これを行うには、アプリケーション・モジュールの同期モードを遅延に設定します。遅延モードでは、ユーザーが行った属性値の変更は、ユーザーが変更の送信処理を実行するまでクライアント層に保持されます。遅延同期モードでネットワーク通信量が減っている間は、ビジネス・コンポーネントによる属性の検証も遅れます。
デフォルトの同期モードは即時です。変更があればすぐにその変更を適用するため、属性値の検証も即時に行われます。
注意: ローカル・モード・デプロイ(クライアントとビジネス・コンポーネントが同一のVMに存在する場合)では、同期モードは常に即時になります。
アプリケーション・モジュールの同期モードを設定するには、次のようにします。
ApplicationModuleImpl
クラスのsetSyncMode()
をコールし、次のように設定します。
yourAm.setSyncMode(ApplicationModule.SYNC_IMMEDIATE);
ネットワークの最適化を優先せず、ビジネス・コンポーネントによる属性の検証をできるだけ多く行う場合は、SYNC_IMMEDIATE
に設定します。たとえば、このモードでクライアントが従業員の10の属性を設定している場合、設定された値ごとに検証を指定するために、コードではsetAttribute()
メソッドを10回コールすることになります。
または
yourAm.setSyncMode(ApplicationModule.SYNC_LAZY);
ネットワーク通信量を少なくしてアプリケーションを最適化する場合は、SYNC_LAZY
に設定します。このモードでは、クライアント側の属性設定要求はデータの変更ごとではなく、クライアントが次にビジネス・コンポーネントにイベントを送るまでバッファされます。この他にアプリケーション・コードを変更する必要はありません。たとえば、クライアントが従業員の10の属性を設定している場合、コードではクライアントが次のような操作を行った後で、setAttribute()
メソッドをコールすることになります。
postChanges()
メソッドまたはcommit()
メソッドをコールvalidate()
メソッドをコール注意: ApplicationModuleImpl
を拡張するクラス内からのコールの場合は、ApplicationModule
インタフェースを実装しているため、次のように記述するだけで済みます。
ApplicationModule yourAm = panelBinding.getApplication().getApplicationModule();
yourAm.setSyncMode(SYNC_LAZY);
その他のクラス(クライアント・コードなど)内からコールする場合、次のように定数をインタフェース名で修飾する必要があります。
ApplicationModule yourAm = panelBinding.getApplication().getApplicationModule();
yourAm.setSyncMode(ApplicationModule.SYNC_LAZY);
JClientブートストラップ・コード内で、JUApplicationオブジェクトの作成直後にsetSyncMode()
をコールします。または、getApplication()
をコールして、JClientパネルのコンストラクタに同期モードを設定することもできます。同期モードを設定する場所は、同期モードをアプリケーション全体で維持するか、またはパネル・レベルで変更するかによって異なります。