2012-01-24 11 views
1

Glassfishサーバーにデプロイされたアプリケーションがあります。このメソッドはリモートで呼び出されます(標準のJNDIおよびIIOP over RMI機能を使用)。複数のネットワークコールを回避し、アプリケーションの動作を最適化するために、クライアントにキャッシュ機能をいくつかインストールしたいと思います。私は、すべてのキャッシュが透過的に 扱われるインターフェイス上のどのリモートインタフェースの呼び出しは、アノテーションを使用してキャッシュすることができ EJBリモートインタフェースでキャッシュを使用する

  • 宣言するどのように私は

    • 、optimaly、のためのキャッシュ機能を持つことができますので、

      オプションとして、クライアントアプリケーションがWeldを使用してリモートEJBインスタンスを使用することを言及する必要があります。これは、オプションでEJBメソッド呼び出しを傍受するために使用できます。

  • +0

    私は1998年にこの問題を正確に取り組んだ(注釈、インターセプタ、またはCDIなし)。私は良い解決策を見いだしたとは思わない! –

    +0

    [javax.cache](http://gregluck.com/blog/archives/2011/10/javax-cache-the-new-java-caching-standard/)は良い出発点です。 (ブログエントリでは、Weldアプリケーションでそのキャッシュを導入する方法についても言及しています)。 – Riduidel

    +0

    @Riduidel javax.cacheはJava EE 7で導入されます。 – yatskevich

    答えて

    0

    それは、ほとんどのオープンソースのキャッシュ「ベンダー」今日JCache JSRと一緒にいくつかの準標準化されたキャッシュの注釈を提供開始する、のように思える:

    それだけです。 私の現在のスタックによれば、ehcacheの実装は "実験的"とマークされ、仕様とともに進化しているので、最良の選択肢(今のところ)はInfinispanになる可能性があります。

    1

    オプションの1つは、キャッシュ動作をカプセル化するServiceLocatorパターンをクライアントで使用することです。 JNDIルックアップの後に受け取るキャッシュ・スタブ・クラス。そして、後でそれを再利用することができます。追加のJNDI呼び出しを避けることができます。

    関連する問題