問題タブ [hazelcast-imap]
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.
hazelcast - ArrayDataSerializableFactory が id のインスタンスを作成できない場所で HazelcastSerializationException を取得する
Web アプリケーションがデータを取得するために Hazelcast キャッシュにクエリを実行しているときに、HazelcastSerializationException がスローされるという問題に直面しています。hazelcast-all-3.6.6.jar を使用しています。
以下は、サーバー ログから収集された同じスタック トレースです。
この例外は、QueryResultRow を取得した後、シリアル化に失敗する Hazelcast クラスにあります。以下は、正確に失敗した場合のコード スニペットです。
以下は toObject() メソッドの実装です。
hazelcast - Hazelcast が「多数の」エントリを含むマップの読み込みに失敗する
40000 を超えるエントリを含むマップをロードしようとすると、Hazelcast で問題が発生します。
エントリの数を約 40000 に制限すると、Hazelcast はマップを正常にロードします。それをはるかに超えると、次の例外が繰り返しスローされます。Hazelcast MapLoader を使用しています。MapLoader.getAllKeys は、結果のサイズに関係なく正常に実行されます。ロードされるオブジェクトのバッチごとに例外がスローされます。
単一ノードで Hazelcast バージョン 3.7.2 を使用しています。ヘルプやガイダンスは大歓迎です。
java - hazelcast の分散ローディングはブロックされていますか?
現在、私は MapStore に裏打ちされた IMap を持っています。この IMap は起動時に読み込まれ、何百万ものエントリがあります。マップが完全に読み込まれると、クライアントは Imap.values() と述語を使用してエントリを取得します。この読み込みは、起動時にうまく機能します。
ここで、すべてのデータを定期的に (たとえば、2 時間ごとに) リロードする必要があります。リロードを強制するために IMap.loadAll(true) を使用しています。MapStore (loadAllKeys() + loadAll(keys)) は、完全なロードを完了するのに約 4 分かかります。この 4 分間で、述語を介して imap にクエリを送信するすべてのクライアントが、リロードが完了するまでブロックされているようです。
私の場合、クラスターを 4 分間 (実際には 1 秒も) ブロックできません。
- 本当に Imap.loadAll が述語クエリをブロックしていますか?
- imap を非ブロッキングとして構成するか、IMap.loadAll() の非ブロッキング代替が存在する可能性があります。
HC 3.7.2、2 ノード、Java 8 で試しています。
java - Hazelcast 'IdentifiedDataSerializable': writeData HashMap インスタンス
Hazelcast の IdentifiedDataSerializable インターフェイスを使用していくつかのクラスをシリアル化し始めましたが、単純な java.util.map インスタンスを writeData にする必要があるときに何かが正しく機能しません。
しかし、それは例外をスローします:java.io.NotSerializableException
次のように、マップの単一のエントリのみを保存する場合:
それは動作します!
ここで何が欠けていますか?
別の質問: 私のクラスでは、次の宣言があります。
writeData\readData
'static final'
メンバーに必要ですか?それともstatic
必要がないからですか?
ありがとうございました!
hazelcast - カスタム オブジェクトをキーとして使用すると、Hazelcast のマップから要素を取得できません
私はHazelast Mapを使用しており、カスタムクラスのオブジェクトであるキーに対してオブジェクトを保存しようとしていますHMapKey
。HMapKey
これがクラスのスニペットです。
上記のコードでわかるように、keyCode
2 つのオブジェクトを比較するために equals() メソッドでのみ使用しています。time
したがって、変数にどんな値があっても構いません。しかし、このオブジェクトを Hazelcast の Map のキーとして使用して取得しようとすると、Hazelcast はキー クラスのすべての変数をチェックしているとkeyCode
思いtime
ますNULL
。Hazelcast にすべての変数チェックを行わず、既存のequals()
メソッドのみを使用するように指示する構成はありますか?
マップからデータを取得しようとしているコードは次のとおりです
つまり、挿入中にキーオブジェクトを作成しましnew HMapKey("code1",123)
たが、取得中に新しいオブジェクトを作成しnew HMapKey("code1",0)
ていて、null 値として返されています。一方、試してみるとうまくいきnew HMapKey("code1",123)
ます。
java - 更新されたレコードを保存するために Hazelcast キャッシュが空にならない
更新された Db レコードを配置できるように、5 分後に hazelcast マップを空にしたいと考えています。しかし、null にはならず、古いレコードがまだ含まれています。以下は、hazelcast キャッシュ サーバーにある私の hazlecast.xml ファイルです。
私のJavaコードは次のようなものです:
ヘーゼルキャストの宣言:
getDataFromCache() のメソッド実装:--