問題タブ [jcs]
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.
jcs - JCS: 同じサーバーで実行されている 2 つの異なるアプリケーションでキャッシュにアクセスする方法
jcs: Glassfish で 2 つのアプリケーションを実行しています。あるアプリケーションに保存されているキャッシュを別のアプリケーションに取得する方法
java - データベースとしての Java キャッシュ?
Java キャッシュ ライブラリはデータベースとしてどのように使用できますか?
私はデータベースのようなものを使用していますEhcache
かJCS
?
Ehcache
永続化戦略 = localRestartableをサポートするのは Enterprise Ehcache、つまり有料版のみというのは本当ですか?
無料版はデータベースの置き換えに向いていないということですか?
アップデート
永続キャッシュがデータベースの代わりにならないのはなぜですか? データベース エンジン操作と dist ストレージを使用したキャッシュ操作の主な違いは何ですか?
以下は、neo4j (グラフ データベース) と Ehcache (キャッシュ) の比較の例です: http://vschart.com/compare/ehcache/vs/neo4j-community
java - 返されたデータベース イベントにキャッシュ メカニズムを使用する方法
私のデータベース(Oracle)は、DML 操作が実行されるときに行 ID をプッシュし、私の Java プログラムには、イベントを処理して行 ID を取得するリスナーがあります。
例: 以下は、DML 操作でデータベースから返される値です。
ROW: 操作=UPDATE、ROWID=AAASjgAABAAAVapAAA
このrowIDをキャッシュに保存する必要がありますか? Javaでこれを行うにはどうすればよいですか? 手がかりがあれば役立ちます。JCSまたはEhcacheを考えています。どちらが好ましいですか?
リスナーを介して DB イベントの一部として返された RowID の処理:
java - JCS 1.3 シャットダウン後のディスクからのキャッシュの更新
JCS 1.3 を使用して永久ディスク キャッシュを作成しようとしています。キャッシュをシャットダウンして、次に使用するときにディスクから再ロードできるようにしたい。実行に時間がかかる DB からデータを取り込む予定のデータがたくさんあります。キャッシュがディスクからリロードされるだけで、はるかに高速になります。JCS のドキュメントを読み、その構成例を使用して作業を開始しようとしましたが、これまでのところ成功していません。これが私が使用している構成です
これは、構成が正しいことを確認するために実行している非常に簡単なテストです。
JCS キャッシュ = JCS.getInstance("myRegion1"); cache.put("キー", "私の値");
出力で得られるものは次のとおりです。
誰かがこれについて正しい方向に私を向けることができますか? それが私の構成の問題なのか、それともディスクから更新するようにコードで実行する必要があるのか はわかりません。
java - JCS、メモリ内キャッシュのみを使用してデッド ノードから回復する
たとえば、ファイル ストア (jackrabbit バックエンド) として機能するサーバーがあります。このデータは、起動時にメモリ内 JCS キャッシュにプッシュされます。これはすべてうまくいくようです。
ただし、ソフトウェアはマルチノードになる可能性があるため、JCS でデータを他のノードにレプリケートする必要があります。これをテストするために、次の構成ファイルを使用しました (ノードごとにポートが反転されています)。
ノード A に 100 個のファイルをロードすると (そして 10 秒ごとに 1 でロードし続けると)、ノード B にプッシュされ、更新され続けます。
ただし、ノード B をプルダウンしてノード B を再起動すると、新しく作成されたファイルが読み込まれます。
開始時に一貫性チェックを行うにはどうすればよいので、ノード A がノード B を再検出すると (そうであるように思われます)、再同期して自己を元に戻します。つまり、100 + X をノード B に再度プッシュしますか?
ディスクキャッシュは効果的にJackRabbitバックエンドになるため、メモリキャッシュでのみ使用したい(遅いので、メモリキャッシュが必要なだけです)
ありがとう
java - ClassCastException: datastructures.instances.JClass は java.util.ArrayList にキャストできません
SOに関するCCEの質問がかなりあることは知っています。それらの大部分を詳細または簡単に読みましたが、私の状況に当てはまるものは何も見つかりません. 私の正確なエラーは次のとおりです。
Exception in thread "pool-1-thread-1" java.lang.ClassCastException: datastructures.instances.JClass cannot be cast to java.util.ArrayList
でif ((results = mCallsDownstreamCache.get(origin)) == null) {
コードでわかるようにArrayList
、キャッシュ ( HashMap
) から を要求し、それについて決定を下しています。ここでの奇妙な動作は、エラーを生成するコードでdatastructures.instances.JClass
まったく参照されていないことです。
コンテキストを提供するために、「コントローラー」からの要求を満たすデータベース「モデル」があります。これらの結果はモデルのローカルのキャッシュに保存され、存在する場合、モデルはキャッシュを返すため、データベースにアクセスする必要はありません。私のキャッシング要素は事実上、Commons の JCSのデコレーターです。
問題のある行はblock comment
andで囲まれていますinline comment
役に立つかもしれないし、役に立たないかもしれないいくつかの追加の詳細:
- データ構造は不変の 2 ペアの
Pair<V, K>
タプル クラスです。 CacheDecorator.get(V obj)
null
オブジェクトがキャッシュに存在しない場合に返されます- 私はキャストなどに関してかなり試しました
JClass
コードの他の場所に参照がありますが、問題のあるメソッドには参照がありませんJClass
はJavaクラスの表現であり、カスタム構造です