2

Oracle Coherence は初めてです。ドキュメントを読み、コマンド プロンプトを使用してハンズオンを行いました。理解に問題はありません。次に、Oracle コヒーレンス ツールを使用して Eclipse をダウンロードしました。以下に示すように、オラクルコヒーレンス用のアプリケーションクライアントを作成しました http://docs.oracle.com/cd/E18686_01/coh.37/e18692/installjdev.htm

私も同じように走りました。コンソール アプリケーションで行ったように、正常に動作していました。次に、同じワークスペースに新しいプロジェクトを作成し、名前付きキャッシュにアクセスするメイン クラスを作成し、以下のコードを使用していくつかの値を配置および取得しました。

package coherenceClient;

import com.tangosol.net.CacheFactory;
import com.tangosol.net.NamedCache;

public class Main {
    public static void main(String[] args) {

        NamedCache cache = CacheFactory.getCache("myCache");

        cache.put("MyFirstCacheObject", "This is my first Cache Object");

        System.out.println(cache.get("MyFirstCacheObject"));
    }
}

同じ値を取得しました。次に、別のクラスを作成して同じ値を取得しようとしましたが、null が返されました。コードに間違いはありませんか?

package coherenceClient;

import com.tangosol.net.CacheFactory;
import com.tangosol.net.NamedCache;

public class Recevier {
public static void main(String[] args) {

    NamedCache cache = CacheFactory.getCache("myCache");
    System.out.println(cache.get("MyFirstCacheObject"));
}
}
4

3 に答える 3

3

コヒーレンス・キャッシュがJVMに存在する(スタンドアロン・サーバーとして実行されていない)場合、プログラムの終了後にすべてのデータが破棄されます(インメモリー記憶域を使用します)。Thread.sleep(200000); を入れてみてください。最初のプログラムの最後まで実行し、タイムアウト内に 2 番目のインスタンスを実行します。

于 2012-08-22T14:37:05.520 に答える
1

コマンドプロンプトで、サーバーを(スタンドアロンとして)起動し、クライアントがサーバーに参加しました。したがって、キャッシュにデータを挿入したクライアントがサーバーセッションを離れた場合でも、サーバーが停止するまで、キャッシュ内のすべてのデータを使用できます。
ただし、上記の場合、コヒーレンスキャッシュはJVM(Eclipse)自体に存在し、スタンドアロンサーバーとしては存在しません。したがって、プログラムが存在する場合はnull値を取得します。

于 2012-08-23T07:56:06.070 に答える