問題タブ [shared-cache]
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.
c# - DataCache 操作 - 成功の検証
Windows Azure 共有キャッシュ:
次のようにするとします。
Trace.WriteLine
コードがコマンドに到達した場合、操作は正常に完了したと言えますか? (そうしないと、 がスローされDataCacheException
ます。
イベントCacheOperationCompleted
に登録できることはわかっていますが、コードはテスト操作の成功に代わる良い方法ですか? (Put/Remove メソッド用)。
ありがとう
caching - WindowsAzureの役割内キャッシュと共有キャッシュ
AzureにWebサイトがあり、そのWebサイトにコンテンツをキャッシュしたいと考えています。コンテンツを更新するアプリはAzureの外部にあります。このシナリオは共有キャッシュで機能します。ただし、共有キャッシングはレガシー機能と見なされているため、ロール内キャッシングの使用を含む代替ソリューションを検討したいと思いました。キャッシュされたコンテンツは非常に小さく、1 MBを超えてはならず、C#コードによって消費されます。
Webロール内で同じ場所に配置されたキャッシュ、またはワーカーロールを使用した専用キャッシュを使用できます。
ロール内キャッシュを使用していた質問は次のとおりです。
同じ場所に配置されたキャッシュを外部アプリから更新するにはどうすればよいですか?
外部アプリから同じ場所に配置されたキャッシュを更新する方法があった場合、キャッシュ通知を使用して、同じ場所に配置されたすべてのキャッシュノードを無効にすることができます。
現在、エクストラスモールWebロールインスタンスを使用しています。スモール/ミディアムインスタンスにアップグレードする必要がありますか?
専用キャッシングは私たちのシナリオに適していますか?
前もって感謝します。
spring - JPA2.0vs. javax.persistence.sharedCache.mode
Spring 3.2.0、Eclipselink 2.5.0-M9 を使用
persistence.xml に以下が含まれている場合:
次に、実行時に emf.getProperties() を介して EntityManagerFactory を調べると、このプロパティは設定されません。
ただし、代わりに Spring entityManagerFactory 構成に入れると:
次に、emf.getProperties() からプロパティを取得できます。
また、Spring 構成を使用する場合、共有キャッシュが実際には有効になっていないようです。これにより、スプリングコンテナに正しく設定していないと思います。
アイデア?
c# - ローカルおよびクラウドで Azure 共有キャッシュを構成する
共有キャッシングを機能させることに完全に途方に暮れています。
ローカルで mvc4 サイトを実行していて、そこからクラウド プロジェクトを作成しました。ロールのキャッシュを有効にし、これを同じ場所に配置するように設定しました。これまでのところすべて順調です。
NuGet からWindows Azure Caching 2.1 パッケージを追加して、関連するライブラリをインストールし、Web 構成も更新しました。
configSections :
構成:
指示に従いidentifer
、要素の属性にロール名を追加しautoDiscover
てアプリを実行すると、これでハングしているように見えます (失敗していると思います)。
ストレージ エミュレーターを実行し、コンピューティング エミュレーターからサイトをデバッグしています。Azureキャッシュを使用するように構成されたサイトを機能させることができないようです。
caching - Windows azure 共有キャッシュで CreateRegion を使用できる
Windows azure caching perview を使用しており、windows azure 共有キャッシュを使用しています。
In-Role キャッシュではなく、別のキャッシュ サービスを使用する。
次のリンクには、共有キャッシュでリージョンを使用できないと書かれていますが。
http://msdn.microsoft.com/en-us/library/windowsazure/hh914155.aspx
しかし、私にとってはうまく機能しています。
注: タグではなくリージョンのみを使用しています。
それは正しいですか、それとも私は何か間違ったことをしています。
jpa - DuplicateKeys の JPA 2.0 共有キャッシュの問題
この投稿は、JPA の永続性の問題に関するものです。使用される JPA プロバイダーは、weblogic 12c によって提供される Oracle Toplink であり、EclipseLink を使用して構築されます。
ユーザーは「n」回の対話/トランザクションを行い、アプリは各トランザクションを DB に書き込みます。負荷が高い場合、トランザクションの書き込み中にアプリで重複キーの例外が発生します。
最初のトランザクションは DB に正常に書き込まれますが、後続のトランザクションは重複キー例外で拒否されることがあります。
私が言ったように、アプリは共有キャッシュがデフォルトで有効になっているJPA 2.0を使用しています。これは共有キャッシュと関係があると思います。
これは、JPA 1.0 を使用する Weblogic 10 でも同じアプリが正常に動作し、共有キャッシュの概念がないためです。
ここで問題に戻ります。挿入トランザクションに参加する各エンティティは、オーバーライドされた hashcode/equals() を持つ埋め込まれた主キー クラスによって一意に識別されます (クラス定義については以下を参照してください)。
主キーは、sessionid(FIRST_USER_SESSION) とトランザクション番号 (最初の挿入の場合は 01、2 番目の挿入の場合は 02 ....) の組み合わせです。例: FIRST_USER_SESSION と 01
1 番目のトランザクション pk: FIRST_USER_SESSION01 2 番目のトランザクション pk: FIRST_USER_SESSION02
最初の挿入トランザクション (pk FIRST_USER_SESSION 01 のエンティティ) を書き込む前に、L2 キャッシュでチェックされ、キャッシュにないため、DB に正常に永続化されました。
最初のトランザクションを書き込んだ後、L2 キャッシュで更新されます (FIRST_USER_SESSION 01 キーを持つエンティティがキャッシュされます)。
2 番目の挿入トランザクション (キー FIRST_USER_SESSION 02 を持つエンティティ) の場合、永続化する前に L2 キャッシュがチェックされ、2 番目のトランザクションのエンティティは L2 キャッシュに既に存在するエンティティと同一であると考えられます。pk は異なりますが (FIRST_USER_SESSION02)、フレームワークはそれを重複オブジェクトとして識別していると思います (equals() と hashcode() のオーバーライドに基づく)。
その結果、挿入のために同じ重複オブジェクトが試行され、重複キー例外がスローされます。
質問 1) 私の理解は正しいですか? これを尋ねている理由は、すべてのエンティティが一意のキーを持っており、これは大量の場合にのみ発生するためです。他のトランザクション(エンティティ)が同じハッシュコードを返し、オブジェクトを同一にしている可能性があります。
質問 2) この場合、エンティティが分離キャッシュを使用し、常に更新され、すぐに期限切れになるようにすることはできますか (以下のコードを参照)。
このエンティティのキャッシュを無効にしたいだけです。コメントをお知らせください
}
質問 3) この変更を行った後、アプリケーションの負荷テストを行う必要があります。アプリに対するユーザーは、MQ および HTTP を介して対話します。MQ に十分なメッセージを送信する必要がある
c# - Windows Azure キャッシュ サービスを使用した LocalCache に到着した通知の処理
WindowsAzure サイトの Windows Azure キャッシュ サービス インスタンスを拡張するために localCache をセットアップしようとしています。オブジェクトの古さを防ぐために、clientNotifications を設定しています。メイン キャッシュからの更新を 30 秒 (またはそれ以下) ごとにポーリングします。
ローカル キャッシュにあるオブジェクトの更新/削除を処理する通知コールバックを設定したいと思っていますが、Microsoft のドキュメントには、「キャッシュ通知は、ローカルにキャッシュされたオブジェクトの自動無効化も提供します」と記載されています。これは、クライアント通知を有効にすると、システムが自動的にこのローカル無効化を行うということですか? それとも、コールバックとカスタム コードが必要ですか? また、この通知は各 Web インスタンスに届くことが保証されていますか?
そうでない場合は、コールバックを設定する必要があります (具体的な C# の例はまだ見つかりません --ヒント ヒント)。コールバック内で、ローカル キャッシュ内のキャッシュされたオブジェクトのみを無効にする必要があります (プライマリ キャッシュは既に更新されているため更新されません)。プライマリ キャッシュに触れずにローカル キャッシュを更新する方法は何ですか?
ありがとう -- 意味があったことを願っています (ドキュメントが不足しています)。
hibernate - JPA 共有キャッシュ / WildFly の二次キャッシュ
私はWildFly 8.1を使用しているので、JPA 2.1とHibernate 4.3.5
WildFlyでJPA共有キャッシュ・二次キャッシュを利用したい
WildFly のドキュメントに従います: https://docs.jboss.org/author/display/WFLY8/JPA+Reference+Guide#JPAReferenceGuide-UsingtheInfinispansecondlevelcache
ここに私のpersitience.xmlがあります:
プロパティ hibernate.cache.use_second_level_cache を true に設定し、shared-cache-mode を ENABLE_SELECTIVE に設定します
そして、キャッシュしたいエンティティ (@Entity) には、次のように @Cacheable(true) の注釈が付けられます。
しかし、Web ページにアクセスするたびに (同じセッションで) 既にページにアクセスしている場合でも、休止状態で @Cacheable(true) として示したすべてのエンティティを取得するために多くの選択が生成されます。
というわけで共有キャッシュ・二次キャッシュが機能していないようです
私は何か見落としてますか?
ありがとうございます
persitence.xml で hibernate.cache.use_query_cache を true に設定しようとしました
そして、私が使用しているクエリのヒント
しかし、問題は残ります
私もWildFlyの新しいバージョンを試してみました:8.2なのでHibernate 4.3.7ですが、問題は残ります
java - 共有キャッシュなしの JPA find() および refresh()
共有キャッシュが無効になっている場合、これらのメソッドは同等であるかどうか疑問に思います。
これらのメソッドは、既存のトランザクション内で呼び出されることはありません。データベースは、JPA のみを使用してこのアプリケーションによって排他的にアクセスされ、トリガー/ストアド プロシージャ/その他は定義されていません。
私の推測では、次の理由から、それらは同等です。
- em.find() は共有キャッシュ (L2) を検索しますが、空です (無効)
- em.find() は独自のキャッシュ (L1) を検索しますが、空です (前のトランザクションがない = em は新しい)
- em.find() はデータベースにアクセスします
- em.refresh() は db にもう一度アクセスしますが、このシナリオではエンティティは常に同じです
私は何か見落としてますか?