問題タブ [oscache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
27538 参照

java - OSCacheとEHCache

これまで、このようなキャッシュを使用したことはありません。問題は、データベースから500,000以上のレコードをロードし、いくつかの選択/フィルタリングを高速で実行したいということです。

キャッシュの使用を考えていますが、事前にEHCacheOSCacheを見つけましたが、何か意見はありますか?

0 投票する
2 に答える
2119 参照

java - spring-modules を使用して OSCache 内のオブジェクトのキャッシュ時間を設定するにはどうすればよいですか?

いくつかのキャッシュが必要なアプリケーションがあり、一部の半静的データについては、更新する前に最大時間 (たとえば 10 分) キャッシュに保持したいと考えています。私のシステムはデータを取得するだけで、更新することはありません。そのため、プロパティを使用してキャッシュをフラッシュするタイミングがわかりません。OSCache のドキュメントでは、このような有効期限は、プログラム API と taglib の構成の両方を使用して設定できますが、spring-modules のドキュメントではこの問題について言及されていません。

これを行うことができるかどうか、またはどのように行うことができるかを誰かが知っていますか?

0 投票する
1 に答える
3129 参照

java - Ehcacheでの更新ポリシーの設定

Ehcacheでデータ更新ポリシーを指定するものはありますか?現在、アプリケーションをOSCacheからEhcacheに移行していますが、設定timeToIdleとを除いて、要素を更新する必要がある時期を指定する方法が見つからないようですtimeToLive

私が欲しいのは、キャッシュから要素にアクセスするときに、関連するリソースをチェックしてlastUpdateTime、キャッシュ要素よりも後で更新されたかどうかを確認することです。はいの場合、キャッシュを更新します。それ以外の場合は、キャッシュからコンテンツを提供します。

OSCacheでは、これはNeedsRefreshExceptionsをキャッチし、要素のカスタム更新ポリシーを設定することによって行われました。しばらくの間ドキュメントを調べてきましたが、Ehcacheでこれを実現する方法や例を見つけることができませんでした。

どんな助けでもいただければ幸いです:)。

アレックス

0 投票する
1 に答える
424 参照

grails - oscacheでgrails1.2を設定するには?

私はこれをします :

そして

しかし、私はこのエラーしか受け取りません:

どうすればできますか?

0 投票する
1 に答える
1119 参照

caching - キャッシング パターン: OpenSymphony OsCache "group" パラダイムを何と呼びますか (そしてどのように置き換えますか)

キャッシュの達人にとってはキャッシュの問題です。

環境

OpenSymphony の OsCache を数年間使用しており、より優れた、より強力な、より高速な、積極的に開発されたキャッシング製品への移行を検討しています。

問題

OsCache の「グループ エントリ」機能を使用しましたが、他の場所では見つかりませんでした。

つまり、OsCache を使用すると、「エントリの挿入時」に 1 つまたは複数のグループを指定できます。後で、各エントリのキーを知らなくても、「エントリのグループ」を無効にすることができます。

OsCache の例

このメカニズムを使用したコード例を次に示します。

代替: マッチャー メカニズム

エントリを無効にするために「キーマッチャー」パターンを使用する、元チームメンバーによって作成された別の自家製キャッシュを使用します

このアプローチでは、「キー」とマッチャーのクラスを次のように定義します。

マッチャー:

使用法:

このメカニズムの実装は単純ですが、パフォーマンスのマイナス面があります。グループを無効にするために各エントリをスピンする必要があります。(ただし、データベースをスピンするよりも高速です)。

質問

  • (警告:これはばかげているように聞こえるかもしれません)この機能を何と呼びますか? OsCache ではこれを「キャッシュ グループ」と呼びます。JbossCache も EhCache も、それを定義も実装もしていないようです。レルム?領域?王国?
  • この「キャッシュ グループ/リージョン」パラダイムの標準パターンは存在しますか?
  • 新星キャッシング製品 (ehcache、coherence、jbosscache など) はこの問題をどのように処理しますか?
  • このパラダイムは jcache 仕様にはありませんよね? (JSR-107)
  • 「大量無効化」をどのように処理しますか? キャッシュは、古くなるまでは優れています。広いスワスを無効にできる API は大きな助けになります。(たとえば、管理者はボタンを押して、たとえば特定のフォーラムのすべてのキャッシュされた投稿エントリをクリアしたい)

ありがとう

意思

0 投票する
2 に答える
1679 参照

hibernate - キャッシング/第2レベルのキャッシュにいつ行くのですか?詳細を含む実際的なシナリオはありますか?

私は、MS SQLServer2005データベースを使用してSpring-Hibernateで開発された自動車メーカーに属するWebベースのアプリケーションに取り組んでいます。

このアプリケーションを介して、エンドユーザーはWebベースのインターフェイスを介して車、バス、トラックなどの作成を要求できます。ユーザーがログインすると、車両の技術仕様をキャプチャするためのHTMLフォームが表示されます。たとえば、誰かが車をリクエストしたい場合は、エンジンのメーカー/モデル、タイヤ、シャーシの詳細などを指定できます。全体で100のフォーム要素があります。 [車両リクエストの作成]画面で、オプションを表示するためのドロップダウン(選択ボックス)が30%あります(つまり、ユーザーはそのうちの1つを選択できます)。これらのSELECTボックスは、データベース(マスターデータ)に保存されている値から入力されます。このマスタデータは、バックエンドでストアドプロシージャを実行することにより、少なくとも週に1回変更されます。

このアプリケーションには世界中で約10,000人のユーザーがおり、新しい車両のリクエストでは毎日最大で5000ヒットが見込まれます。つまり、5000回の車両作成フォームが表示されます。

私の質問は、マスターデータから表示されるフォームフィールドの値を保存するために第2レベルのキャッシュオプションを使用する必要がありますか?

これらの値は、週に1回だけ変更される一連のマスターテーブルから表示されるため、マスターデータのキャッシュはパフォーマンスの向上に役立つと思いますが、アプリケーションをに移動していないため、よくわかりません。実際のパフォーマンスを確認し、本当にキャッシングが必要かどうかを確認するためのプロダクション。

キャッシングを使用する場合、それを構成する方法を理解するために1〜2週間を費やす必要があるかもしれませんが、実際のメリットが見られずに1〜2週間を費やしたくありませんか?

これについて専門家の助けが必要です。また、誰かが実際のシナリオを共有できる場合は、キャッシングが本当に必要な場合に非常に役立ちます。

0 投票する
1 に答える
2395 参照

java - グローバル EhCache 容量の指定

プロジェクト コードを OSCache から EhCache に移行しようとしています。

OSCache は、第 2 レベルの Hibernate キャッシュ プロバイダーとしてだけでなく、異なる性質の他のオブジェクトを格納するためにも使用されています。それらはすべて、キャッシュ キーが重複していないため、衝突することなく同じキャッシュ インスタンスを喜んで共有しました。

EhCache に移行する際の大きな違いの 1 つは、各リージョンに異なるキャッシュ インスタンスがあることです。これは、異なる性質のデータが別々に存在するため、ルックアップ速度を向上させることができるため、潜在的に優れています。残念ながら、これには構成地獄の代償があります。説明させてください。

OSCache の世界では、キャッシュ容量をたとえば 10000 に設定します。特定のインストールでより多くの RAM が必要な場合、またはその余裕がある場合は、簡単に 50000 まで増やすことができます。EhCache で、すべての地域のこのデルタの部分ごとに設定を変更する必要があります。

さらに、あるインストールではタイプ X のオブジェクトの使用率が高く、別のインストールではタイプ Y のオブジェクトのチャーンが多い場合があります。数十のインストールがあり、各インストールには数百の異なるキャッシュがあります。このためには、キャッシュ パターンの監視と設定の微調整だけを行うだけの人を大量に雇わなければなりません。

CacheManagerある種のグローバル キャッシュ容量設定があることを期待していましたが、エントリの使用状況に応じて、各内部キャッシュがより多くの容量を求めて戦います。ただし、キャッシュ容量を設定する唯一の方法は、CacheConfigurationに対して多対 1 である経由CacheManagerです。

これまでのところ、Hibernate がすべてのエンティティに対して 1 つのグローバル キャッシュを使用するように強制するしかありません。誰もそれを行う方法を知っていますか? 私のシナリオに適した他の解決策はありますか?

0 投票する
1 に答える
1140 参照

hibernate - WebSphere Application Server と連携した Hibernate のクラスター対応キャッシュ

タイトルは次のリンクから来ています: Using Spring and Hibernate with WebSphere Application Server

それが今でも真実なのだろうか?

私は、IBM DistributedMap および DistributedObjectCache を使用するアプリケーションを、ehCache または osCache に沿ったものに移行することに関心があります。IBM の 2 つのキャッシュ モデルをこれまで読んだ限りでは、どこにクエリをキャッシュできるかわかりません。何かが足りないかもしれません。もしそうなら、正しい場所に案内してください。WAS 7.x を使用しています。

クラスター化された環境で ehCache または osCache を使用する際に懸念事項はありますか?

0 投票する
1 に答える
951 参照

macros - Freemarker ファイルでの Struts2 インクルード タグの使用に関する問題

これが私のシーンです:</p>

1、実際に変数 id は、blow(TestAction.java) のように宣言されます。


2、web.xml の構成:


3、freemarker ファイル (test.ftl) で呼び出されます:


4、エラーメッセージ:


私のコードに何か問題がありますか?

0 投票する
2 に答える
1658 参照

java - Tomcat 5.5 の webapp でサードパーティ コンポーネントによるロギングを制御するにはどうすればよいですか?

Linux で Tomcat 5.5 を使用しています。私たちの webapp は、そのロギングに log4j を使用し (機能ベースであり、多くのロガーはありません)、意図的にロガーの加法性を false に設定します。ロガーは独自のログファイルに記録します。それらのどれもコンソールに記録しません。

私たちが抱えている問題は、ロガーのレベルが DEBUG に設定されている場合に、サードパーティ コンポーネント、特に oscache から catalina.out に大量のデバッグ ログが記録されるようになることです。

.../common/classes に最小限の log4j.properties ファイルがあります。

.../webapps/ourapp/WEB-INF/classes に log4g.properties ファイルはありません。

最初に試したのはに変更することlog4j.rootLogger=ERROR, A1でしたが、違いはありませんでした。

次に試したのは、.../webapps/ourapp/WEB-INF/classes/log4j.properties ファイルを 1 行だけ作成することでした。

それが oscache ロギングを停止するかどうかを確認します。それはできましたが、驚くべきことに (私にとって) oscache ロギングだけでなく、不要なロギングをすべて停止しました。そのため、その行をコメントアウトして、もう一度試しました。何からの不要なログ記録もまだありません。ファイルを脇に移動したところ、不要なログが戻ってきました。長さ 0 の log4j.properties を作成したところ、不要なログはすべて削除されました (!) これは短期間のことですが、他にどのようなログが破棄されているのか (そしてその理由!) が気になります。だから頼るだけじゃもったいない。

Tomcat 5.5 ドキュメントの「ロギング」の章では、プロパティ ファイルを WEB-INF/classes に配置することでアプリごとの構成を行うことができると単に述べていますが、それがどのように相互作用するかについては (少なくとも私が見つけたわけではありませんが) 説明していません。 common/classes で指定された構成。

そう:

  • そもそも、サードパーティのコンポーネントはどのように catalina.out にログを記録していますか? 彼らのロギングはルートロガーにバブルアップする可能性があると思いますが、ルートロガーレベルがエラーにまで上がってもログを記録するのはなぜですか?
  • ロガーのロガー レベルを DEBUG に設定すると、このロギングが開始されるのはなぜですか? ロガーには独自の名前が付けられているため、oscache やその他のものがロガーの先祖になることはありません。
  • 長さがゼロの WEB-INF/classes/log4j.properties ファイルでさえ、大量のログ記録を停止するのはなぜですか?
  • これを「正しい」方法で行い、(私にとって) 奇妙な副作用に頼ってオフにするのではなく、意味のある方法でログを制限するにはどうすればよいですか?


好奇心旺盛で好奇心旺盛。デバッグをオンにするというマットの提案を試しました。また、webapp 用により広範な log4j.properties ファイルを作成しました。

Tomcat が起動すると、次のように表示されます。

しかし、oscache ロガーのレベルがエラーに設定されているという事実にもかかわらず、ログにはまだ次のようなものが表示されます。

oscache ロガー レベルを ERROR に強制している場合 (log4j デバッグ出力ではエラーになっていると表示されます)、なぜこの DEBUG メッセージが送信されるのでしょうか? コード内のレベルをオーバーライドする子ロガー?

私が気付いたのは、webapp の log4j.properties ファイルで oscache ロガーの「加法性」行のコメントを外すと、ログが実際に消えてしまうことです。そのため、oscache ロギングは、独自のものではなく、祖先のアペンダーに依存しているようです。しかし、oscache logger レベルを ERROR に設定しても、これらのことが止められないというのは、さらに奇妙に思えます。