रिस्पॉन्स कैश नीति के डिप्लॉयमेंट से जुड़ी गड़बड़ी ठीक करना

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

InvalidTimeout

गड़बड़ी संदेश

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

Error Saving Revision revision_number
CacheLookupTimeoutInSeconds value value should be greater than zero.

गड़बड़ी के मैसेज का उदाहरण

Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.

गड़बड़ी का उदाहरण

वजह

अगर Responseकैश नीति का <CacheLookupTimeoutInSeconds> एलिमेंट, नेगेटिव नंबर पर सेट है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता.

उदाहरण के लिए, अगर <CacheLookupTimeoutInSeconds> -1 है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता.

संक्रमण की जांच

  1. Responseकैश नीति में, <CacheLookupTimeoutInSeconds> एलिमेंट के लिए इस्तेमाल की गई अमान्य वैल्यू की पहचान करें. आपको यह जानकारी गड़बड़ी के मैसेज में मिल सकती है. उदाहरण के लिए, यहां दी गई गड़बड़ी में <CacheLookupTimeoutInSeconds> एलिमेंट के लिए इस्तेमाल की गई अमान्य वैल्यू -1 है:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. जिस एपीआई प्रॉक्सी में गड़बड़ी हुई है उसमें सभी Responseकैश नीतियों की जांच करें. ऐसी एक या एक से ज़्यादा Response cache नीतियां हो सकती हैं जिनमें <CacheLookupTimeoutInSeconds> एलिमेंट दिया गया हो.

    उदाहरण के लिए, यह नीति कॉन्फ़िगरेशन <CacheLookupTimeoutInSeconds> को -1 पर सेट करता है, जो गड़बड़ी के मैसेज से मेल खाता है:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
        <DisplayName>Response Cache-1</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.uri" type="string"/>
        </CacheKey>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <ExpiryDate/>
            <TimeOfDay/>
            <TimeoutInSec ref="">3600</TimeoutInSec>
        </ExpirySettings>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
    </ResponseCache>
    
  3. अगर <CacheLookupTimeoutInSeconds> को नेगेटिव पूर्णांक के तौर पर बताया गया है, तो इस गड़बड़ी की वजह से ही गड़बड़ी हुई है.

रिज़ॉल्यूशन

यह पक्का करें कि Responseकैश नीति के <CacheLookupTimeoutInSeconds> एलिमेंट की वैल्यू, हमेशा एक गैर-ऋणात्मक पूर्णांक के रूप में दी गई हो.

ऊपर दिखाई गई उदाहरण Responseकैश नीति को ठीक करने के लिए, <CacheLookupTimeoutInSeconds> element को 30 में बदलें.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache-1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" type="string"/>
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSec ref="">3600</TimeoutInSec>
    </ExpirySettings>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
</ResponseCache>

InvalidCacheResourceReference

गड़बड़ी संदेश

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

Error Deploying Revision revision_number to environment
Invalid cache resource reference cache_resource in Step definition response_cache_policy_name. Context Revision:revision_number;APIProxy:ResponseCache;Organization:organization;Environment:environment

गड़बड़ी के मैसेज का उदाहरण

Error Deploying Revision 2 to prod
Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod

गड़बड़ी का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब Response cache नीति में <CacheResource> एलिमेंट किसी ऐसे नाम पर सेट होता है जो उस एनवायरमेंट में मौजूद नहीं है जहां एपीआई प्रॉक्सी को डिप्लॉय किया जा रहा है.

संक्रमण की जांच

  1. रिस्पॉन्स कैश नीति के <CacheResource> एलिमेंट में इस्तेमाल की जा रही अमान्य कैश मेमोरी की पहचान करें. साथ ही, उस एनवायरमेंट की पहचान करें जहां गड़बड़ी हुई. आपको ये दोनों आइटम, गड़बड़ी के मैसेज में मिल सकते हैं. उदाहरण के लिए, यहां दी गई गड़बड़ी में, अमान्य कैश मेमोरी का नाम itemscache और एनवायरमेंट का नाम prod है.

    Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
    
  2. उस एपीआई प्रॉक्सी में सभी Responseकैश नीतियों की जांच करें जहां गड़बड़ी हुई है. उस Response cache नीति की पहचान करें जहां <CacheResource> एलिमेंट में अमान्य कैश मेमोरी (पहले चरण में पहचानी गई) के बारे में बताया गया है.

    उदाहरण के लिए, इस नीति में <CacheResource> की वैल्यू को itemscache के तौर पर बताया गया है, जो गड़बड़ी के मैसेज में दी गई वैल्यू से मेल खाता है:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="ItemsResponseCache">
      <DisplayName>ItemsResponseCache</DisplayName>
      <Properties/>
      <CacheKey>
          <Prefix/>
          <KeyFragment ref="request.uri" type="string"/>
      </CacheKey>
      <CacheResource>itemscache</CacheResource>
      <Scope>Exclusive</Scope>
      <ExpirySettings>
          <ExpiryDate/>
          <TimeOfDay/>
          <TimeoutInSec ref="">3600</TimeoutInSec>
      </ExpirySettings>
      <SkipCacheLookup/>
      <SkipCachePopulation/>
    </ResponseCache>
    
  3. पुष्टि करें कि कैश मेमोरी (चरण #2 में तय की गई) को खास एनवायरमेंट (चरण #1 में पहचाना गया) में तय किया गया है या नहीं.

    Edge यूज़र इंटरफ़ेस (यूआई) में, एपीआई > एनवायरमेंट कॉन्फ़िगरेशन पर जाएं और देखें कि किसी खास एनवायरमेंट में कैश टैब में कैश मेमोरी मौजूद है या नहीं. अगर कैश मेमोरी मौजूद नहीं है, तो इस गड़बड़ी की वजह से ऐसा हो सकता है.

    उदाहरण के लिए, नीचे दिए गए स्क्रीनशॉट में देखें कि itemscache नाम की कैश मेमोरी मौजूद नहीं है.

    itemscache नाम की कैश मेमोरी को prod एनवायरमेंट में तय नहीं किया गया है, इसलिए आपको यह गड़बड़ी मिली है:

    Invalid cache resource reference does_not_exist in Step definition Response-Cache-1. Context Revision:2;APIProxy:ResponseCache;Organization:kkalckstein-eval;Environment:prod
    

रिज़ॉल्यूशन

पक्का करें कि <CacheResource> एलिमेंट में बताया गया कैश नाम उस एनवायरमेंट में बनाया गया हो जहां आपको एपीआई प्रॉक्सी डिप्लॉय करना है.

कैश मेमोरी बनाने के तरीके के बारे में जानने के लिए, एनवायरमेंट कैश मेमोरी बनाना और उसमें बदलाव करना पर जाएं.

ResponseCacheStepAttachmentNotAllowedReq

गड़बड़ी संदेश

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

Error Deploying Revision revision_number to environment
Response cache step definition response_cache_policy_name can not be attached more than once in the request path.

गड़बड़ी के मैसेज का उदाहरण

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the request path.

गड़बड़ी का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब API प्रॉक्सी के किसी भी फ़्लो में एक से ज़्यादा अनुरोध पाथ से एक ही Response cache नीति अटैच की गई हो.

उदाहरण के लिए, अगर प्रॉक्सी और टारगेट एंडपॉइंट, दोनों के अनुरोध प्रीफ़्लो में एक ही Response cache नीति अटैच की गई हो, तो यह गड़बड़ी दिखती है.

संक्रमण की जांच

  1. उस Responseकैश नीति के नाम की पहचान करें जिसे एक से ज़्यादा बार अटैच किया गया है. आपको यह जानकारी गड़बड़ी के मैसेज में मिल सकती है. उदाहरण के लिए, यहां दी गई गड़बड़ी में Responseकैश नीति का नाम Response‐cache‐1 है.

    Error Deploying Revision 2 to test
    Response cache step definition Response-Cache-1 can not be attached more than once in the request path.
    
  2. एपीआई प्रॉक्सी के प्रॉक्सी और टारगेट एंडपॉइंट में मौजूद सभी अनुरोध फ़्लो की जांच करें, जहां गड़बड़ी हुई. अगर दो या उससे ज़्यादा रिक्वेस्ट फ़्लो में एक ही Response cache नीति अटैच की गई हो, तो इस गड़बड़ी की वजह यही है.

    यहां दिए गए उदाहरण में, डिफ़ॉल्ट प्रॉक्सी एंडपॉइंट PreFlow के अनुरोध पाथ में, इसी Responseकैश नीति Response-Cache-1 को कॉन्फ़िगर किया गया है और डिफ़ॉल्ट टारगेट एंडपॉइंट PreFlow में भी इसी नीति को कॉन्फ़िगर किया गया है:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Request>
        ...
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TargetEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request/>
            <Response/>
        </PreFlow>
        <PostFlow name="PostFlow">
            <Request>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Request>
        ...
    

रिज़ॉल्यूशन

पक्का करें कि एपीआई प्रॉक्सी के सभी फ़्लो में, रिस्पॉन्स कैश नीति को सिर्फ़ एक अनुरोध पाथ से जोड़ा गया हो.

ऊपर दिए गए उदाहरण को ठीक करने के लिए, दोनों में से किसी एक अनुरोध फ़्लो से Responsecache नीति Response-Cache-1 को हटाएं.

ResponseCacheStepAttachmentNotAllowedResp

गड़बड़ी संदेश

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

Error Deploying Revision revision_number to environment
Response cache step definition response_cache_policy_name can not be attached more than once in the response path.

गड़बड़ी के मैसेज का उदाहरण

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the response path.

गड़बड़ी का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब API प्रॉक्सी के किसी भी फ़्लो में, एक जैसी Responsecache नीति को एक से ज़्यादा रिस्पॉन्स पाथ से जोड़ा जाता है.

उदाहरण के लिए, अगर प्रॉक्सी और टारगेट एंडपॉइंट, दोनों के रिस्पॉन्स प्रीफ़्लो में एक ही Responseकैश नीति अटैच की गई है, तो यह गड़बड़ी दिखती है.

संक्रमण की जांच

  1. उस Responseकैश नीति के नाम की पहचान करें जिसे एक से ज़्यादा बार अटैच किया गया है. आपको यह जानकारी गड़बड़ी के मैसेज में मिल सकती है. उदाहरण के लिए, यहां दी गई गड़बड़ी में Responseकैश नीति का नाम Response-Cache-1 है.

    Error Deploying Revision 2 to test
    Response cache step definition Response-Cache-1 can not be attached more than once in the response path.
    
  2. एपीआई प्रॉक्सी के प्रॉक्सी और टारगेट एंडपॉइंट में मौजूद सभी अनुरोध फ़्लो की जांच करें, जहां गड़बड़ी हुई. अगर दो या उससे ज़्यादा रिस्पॉन्स फ़्लो में एक ही Response cache नीति अटैच की गई हो, तो यही गड़बड़ी की वजह है.

    यहां दिए गए उदाहरण में, डिफ़ॉल्ट प्रॉक्सी एंडपॉइंट PreFlow के रिस्पॉन्स पाथ में इसी Responseकैश नीति Response-Cache-1 को कॉन्फ़िगर किया गया है और डिफ़ॉल्ट टारगेट एंडपॉइंट PreFlow में भी इसी नीति को कॉन्फ़िगर किया गया है:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request>
                <Step>
                    <Name>Response-Cache</Name>
                </Step>
            </Request>
            <Response>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Response>
        </PreFlow>
        ...
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TargetEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request/>
            <Response/>
        </PreFlow>
        <PostFlow name="PostFlow">
            <Request/>
            <Response>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Response>
        </PostFlow>
        ...
    

रिज़ॉल्यूशन

पक्का करें कि एपीआई प्रॉक्सी के सभी फ़्लो में, Responseये से जुड़ी नीति को सिर्फ़ एक रिस्पॉन्स पाथ से जोड़ा गया हो.

ऊपर दिए गए उदाहरण को ठीक करने के लिए, दो रिस्पॉन्स पाथ में से किसी एक से Response cache नीति Response-Cache-1 को हटाएं.

InvalidMessagePatternForErrorCode

गड़बड़ी संदेश

इनमें से किसी भी गड़बड़ी के मैसेज के साथ, Edge यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई की मदद से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

या

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

गड़बड़ी के मैसेज का उदाहरण

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

या

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

गड़बड़ी का उदाहरण

या

वजह

यह गड़बड़ी तब दिखती है, जब ResponseCache नीति के <SkipCacheLookup> या <SkipCachePopulation> एलिमेंट में अमान्य स्थिति दी गई हो.

संक्रमण की जांच

  1. एपीआई प्रॉक्सी में गड़बड़ी वाली सभी Responseकैश नीतियों की जांच करें और देखें कि क्या कोई ऐसी नीति है जिसमें <SkipCacheLookup> और/या <SkipCachePopulation> एलिमेंट के लिए शर्तें तय की गई हों.

  2. देखें कि क्या <SkipCacheLookup> और/या <SkipCachePopulation> एलिमेंट के लिए दी गई शर्त अमान्य है. अगर हां, तो यही गड़बड़ी की वजह है.

    यहां दिए गए उदाहरण में, <SkipCachePopulation> एलिमेंट JavaScript ऑपरेटर === का इस्तेमाल करके, यह पता लगाता है कि बराबर वैल्यू और बराबर टाइप किस अमान्य हैं.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
        <DisplayName>Response Cache-1</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.uri" type="string"/>
        </CacheKey>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <ExpiryDate/>
            <TimeOfDay/>
            <TimeoutInSec ref="">3600</TimeoutInSec>
        </ExpirySettings>
        <CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds>
        <SkipCacheLookup>request.header.bypass-cache === "true"</SkipCacheLookup>
    </ResponseCache>
    

    ऑपरेटर === अमान्य है, इसलिए आपको गड़बड़ी का यह मैसेज मिल रहा है:

    Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
    

रिज़ॉल्यूशन

यह पक्का करें कि <SkipCacheLookup> और/या <SkipCachePopulation> एलिमेंट के लिए तय की गई शर्त हमेशा मान्य हो.

ऊपर दी गई, Responsecache की नीति के उदाहरण को ठीक करने के लिए, <SkipCacheLookup> में बदलाव किया जा सकता है, ताकि = ऑपरेटर का इस्तेमाल किया जा सके:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache-1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" type="string"/>
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSec ref="">3600</TimeoutInSec>
    </ExpirySettings>
    <CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds>
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
</ResponseCache>

CacheNotFound

गड़बड़ी संदेश

Edge यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई की मदद से एपीआई प्रॉक्सी को डिप्लॉय करने पर, इस तरह का गड़बड़ी का मैसेज दिखता है. साथ ही, एपीआई प्रॉक्सी के डिप्लॉयमेंट स्टेटस को 'कुछ हद तक डिप्लॉय किया गया' के तौर पर मार्क किया जाता है:

Error: Cache : cache_resource, not found in organization : organization__environment.

गड़बड़ी के मैसेज का उदाहरण

Error Cache : Response-Cache-1, not found in organization : kkalckstein-eval__prod

वजह

यह गड़बड़ी तब होती है, जब गड़बड़ी के मैसेज में बताए गए कैश को किसी खास Message प्रोसेसर कॉम्पोनेंट पर न बनाया गया हो.

रिज़ॉल्यूशन

अगर आप प्राइवेट क्लाउड के उपयोगकर्ता हैं, तो इन निर्देशों का पालन करें:

  1. एपीआई प्रॉक्सी डिप्लॉयमेंट की सूची बनाएं और तय करें कि किन मैसेज प्रोसेसर में गड़बड़ी है steps.cache.CacheNotFound.

    आउटपुट का सैंपल

    curl -u $USERID:$USERPASSWORD http://<management-server-host>:8080/v1/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/deployments
    {
      "aPIProxy" : "ResponseCache",
      "environment" : [ {
        "configuration" : {
          "basePath" : "/",
          "configVersion" : "SHA-512:45d3f39783414d3859bf2dec4135d8f5f9960ee6b2d361db2799c82693a8e3f8b95dbbb37c547eb3c0a3819d8ca51727f390502bcaefdf1f113263521a9023b6",
          "steps" : [ ]
        },
        "name" : "prod",
        "server" : [ {
          "pod" : {
            "name" : "pod1",
            "region" : "us-central1"
          },
          "status" : "deployed",
          "type" : [ "message-processor" ],
          "uUID" : "f2e5e34a-5630-43a9-8fef-48a5b9da76d1"
        }, {
          "pod" : {
            "name" : "pod1",
            "region" : "us-central1"
          },
          "status" : "deployed",
          "type" : [ "message-processor" ],
          "uUID" : "879a6538-a5e0-4503-b142-9cb2b4e0623d"
        }, {
        "error" : "Cache : Response-Cache-1, not found in organization : kkalckstein-eval__prod",
        "errorCode" : "steps.cache.CacheNotFound",
        "status" : "error",
        "type" : [ "message-processor" ],
         "uUID" : "a8f9ce0b-c32d-48a9-b26c-9c75d8bf467d"
    },
    ...
        "state" : "deployed"
      } ],
      "name" : "2",
      "organization" : "kkalckstein-eval"
    
  2. मैसेज प्रोसेसर के उस UUID पर ध्यान दें जिसमें आपको गड़बड़ी steps.cache.CacheNotFound दिखती है. UUID से Message प्रोसेसर के होस्ट नेम/आईपी पते की पहचान करें.

  3. उस खास Message प्रोसेसर में लॉग इन करें और नीचे दिए गए निर्देश का इस्तेमाल करके उसे रीस्टार्ट करें:

    apigee-service edge-message-processor restart

अगर आप पब्लिक क्लाउड के उपयोगकर्ता हैं या प्राइवेट क्लाउड से जुड़ी समस्या अब भी बनी हुई है, तो मदद के लिए Apigee की सहायता टीम से संपर्क करें.