1

appfabric キャッシュの通知を構成しています。最初の追加操作は、1 つの通知を送信しています。しかし、同じキャッシュ アイテムを新しい値に置き換える (更新) か、そのアイテムを削除すると、その 1 つの操作に対して複数の通知を受け取ります。私が行っている手術の種類とは何の関係もないと思います。複数の追加通知も見たからです。私が台無しにしている設定はありますか?? コードバック ファイルにデリゲートを記述しました。1回の操作でも一定時間継続してデリゲートを叩いています。

私の構成は次のとおりです。

<dataCacheClient requestTimeout="150000" channelOpenTimeout="19000" maxConnectionsToServer="10">
    <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
    <clientNotification pollInterval="30" maxQueueLength="10000" />
    <hosts>
        <host name="192.10.14.20" cachePort="22233"/>

    </hosts>
    <securityProperties mode="None" protectionLevel="None" />
    <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456"
                         maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000"
                         receiveTimeout="600000"/>
</dataCacheClient>

そして、デリゲートを持つ私のコードは次のとおりです。

  public void myCacheLvlDelegate(string myCacheName, string myRegion, string myKey, DataCacheItemVersion itemVersion, DataCacheOperations OperationId, DataCacheNotificationDescriptor nd)
    {
        //display some of the delegate parameters
        StringBuilder ResponseOfCache = new StringBuilder("A cache-level notification was triggered!");
        ResponseOfCache.Append("   ; Cache: " + myCacheName);
        ResponseOfCache.Append("   ; Region: " + myRegion);
        ResponseOfCache.Append("   ; Key: " + myKey);
        ResponseOfCache.Append("   ; Operation: " + OperationId.ToString());
        string value = ManualDataCacheOperations.GetCacheValue(myTestCache, txtKey.Text).ToString();
        Legend.Append(string.Format("{0} - Operation {1} Performed at {2}{3}", myKey, OperationId.ToString(), DateTime.Now.ToShortTimeString(), Environment.NewLine));

    }

教えてくださいどこに行方不明ですか?? 同じアイテムに対して複数の通知が送信されるのはなぜですか。役に立つ場合は、2 つのホストを持つクラスターを使用しています。また、セッション管理にも同じキャッシュを使用します。

4

1 に答える 1

0

まず、コールバックを 1 つだけ追加したことを確認してください。単純ですが、複数のコールバックが追加されているケースをあまりにも多く見てきました。

キャッシュ通知がポーリングに基づいていることを理解することは非常に重要です。

キャッシュ通知を使用すると、アプリケーションは一定の間隔 ( pollInterval) でキャッシュ クラスターをチェックして、新しい通知が利用可能かどうかを確認します。

したがって、2 回のチェックの間にキーを 10 回更新すると、10 件の通知が届きます。

于 2013-07-16T14:44:11.967 に答える