2017-09-15 12 views
0

私はMFP 8.0を使用しており、アダプタレベルでキャッシュを実装する必要があります。MFP 8.0アダプタキャッシュ

MFPサーバが起動するたびに、サーバが再起動するまですべてのデータベースをキャッシュにダンプします。

ここで、データベースを呼び出す代わりに、データベースを呼び出すトランザクションまたはアダプタプロシージャを使用するたびに、キャッシュから読み取る必要があります。

答えて

0

アダプターは、バックエンドシステムへの読み取り専用およびトランザクションアクセスモードをサポートします。

アダプターは、JavaまたはJavaScriptで実装されたサーバーサイドコードを含むMavenプロジェクトです。アダプタは、 必要なサーバー側のロジックを実行し、バックエンドシステムからクライアントアプリケーションへの 情報の転送と取得、および サービスの仲介を行います。

JSONStoreは、軽量でドキュメント指向のストレージシステムを提供するオプションのクライアントサイドAPIです。 JSONStoreにより永続的な保存が可能 のJSONのドキュメント。アプリケーションを実行しているデバイスが オフラインの場合でも、アプリケーション内のドキュメントは JSONStoreにあります。この永続的で常に利用可能なストレージは、たとえば、デバイスに利用可能なネットワーク がない場合、 がドキュメントにアクセスできるようにするのに便利です。

0

説明から、データが格納されているカスタムDBについて話している場合は、データをキャッシュするロジックを実装する必要があります。

アダプタのクラスは2種類ありますと<AdapterName>Resource.javaです。 <> Application.javaには、ライフサイクルメソッド - init()destroy()が含まれています。

init()メソッドでDBからキャッシュにデータをロードするカスタムコードをキャッシュに配置する必要があります。また、destroy()で取り外してください。

トランザクションアクセス中(<> Resource.javaになる)、既に作成したキャッシュを参照します。

しかし、負荷のかかるシステムでは、あなたの要件は理想的ではないかもしれません。次の点を考慮する必要があります。

a)アダプタの初期化が遅れています。誤って書かれたコードでも、アダプターの初期化が中断されることがあります。アダプターは、初期化されるまで要求を処理するために使用できません。クラスター環境の場合、ロードされるデータの量に応じて、すべてのクラスター・メンバーのアダプター・ロードが遅れます。このアダプターを対象とするクライアント要求は、初期設定が完了するまでランタイム例外を受け取ります。

b)キャッシュをメモリに保持するということは、ヒープ内のスペースが非常に多く消費されることを意味します。 DBが増大し続けると、アダプタの初期化やヒープの使用に悪影響を与えます。

c)最新のレベルでデータを管理しており、使用後もデータを掃除しています。

要約すると、可能ですが、お勧めしません。これは非常に小さなデータセットの場合には機能しますが、これはうまく拡張できません。アダプタの設計は、データ/バックエンドシステムへのトランザクションアクセスを提供することです。アダプターは、設計通りに使用する必要があります。

関連する問題