0

応答をプロキシにキャッシュしたいのですが、プロキシに再度アクセスすると、キャッシュされたデータが取得されます。キャッシュ メディエーターを使用してみましたが、データが実際にキャッシュされているかどうかを確認できません。つまり、基本的に私が達成しようとしているのは、キャッシュにデータがある場合、エンドポイントにヒットしてはならないということです。応答を送信する必要があります。キャッシュから。お返事をお待ちしています。前もって感謝します

サービスコードは次のとおりです。

public class GetMirrorValue {
    public String getValue(String data) throws Exception {
    System.out.println("Inside Service code");
        return data;
    }
}

私のinSequenceは:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="CheckCacheSeq">
   <cache scope="per-host" collector="false" hashGenerator="org.wso2.caching.digest.DOMHASHGenerator" timeout="20">
      <implementation type="memory" maxSize="100"/>
   </cache>
   <send>
      <endpoint key="DummyEP"/>
   </send>
</sequence>

私のアウトシーケンスは次のとおりです。

<outSequence xmlns="http://ws.apache.org/ns/synapse">
   <cache scope="per-host" collector="true"/>
   <send/>
</outSequence>

しかし、試行ツールを使用してプロキシサービスを連続してヒットするたびに、サーバーの System.out.println("Inside Service code"); で毎回キャッシュからではなく、サービスからデータを取得します System.out.println("Inside Service code"); 印刷されますか?

4

2 に答える 2

1

リクエストがヒットしたら、バックエンド サービス (プロキシ サービスによって呼び出されるエンドポイント) を変更して、サーバー ログに何かを出力できます。最初のリクエストはバックエンドにヒットする必要があります。その後、キャッシュされた期間内に、リクエストはバックエンド サービスに送信されません。キャッシュの有効期限が切れた後にのみ、バックエンド サービスに移動します。したがって、バックエンド サーバー ログの出力を見ると、キャッシュの動作を確認できます。

http://docs.wso2.org/wiki/display/ESB460/Sample+420%3A+Simple+Cache+Implemented+on+ESB+for+the+Actual+Service

于 2013-05-14T08:15:08.383 に答える
0

ESB でワイヤログを有効にして、ESB を通過する要求/応答を確認できます。

于 2015-11-20T20:32:24.787 に答える