تحديد المشاكل وحلّها في ما يتعلّق بنشر سياسة ذاكرة التخزين المؤقت للاستجابة

أنت تعرض مستندات 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.

مثال على لقطة شاشة للخطأ

السبب

إذا تم ضبط العنصر <CacheLookupTimeoutInSeconds> في سياسة Responsecache على رقم سالب، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

على سبيل المثال، إذا كان <CacheLookupTimeoutInSeconds> هو -1، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد القيمة غير الصالحة المستخدَمة للعنصر <CacheLookupTimeoutInSeconds> في سياسة Responsecache. يمكنك العثور على هذه المعلومات في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، القيمة غير الصالحة المستخدَمة للعنصر <CacheLookupTimeoutInSeconds> هي -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. افحص جميع سياسات ResponseCache في خادم وكيل واجهة برمجة التطبيقات المحدّد حيث حدث الخطأ. قد تكون هناك سياسة واحدة أو أكثر من سياسات Responsecache يتم فيها تحديد العنصر <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> كعدد صحيح سالب، يكون هذا هو سبب الخطأ.

الدقة

يمكنك التأكّد من تحديد قيمة العنصر <CacheLookupTimeoutInSeconds> في السياسة Responsecache دائمًا كعدد صحيح غير سالب.

لتصحيح مثال سياسة ResponseCache الواردة أعلاه، يمكنك تعديل <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

مثال على لقطة شاشة للخطأ

السبب

يحدث هذا الخطأ إذا تم ضبط العنصر <CacheResource> في سياسة Responsecache على اسم غير متوفّر في البيئة التي يتم فيها تفعيل الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد ذاكرة التخزين المؤقت غير الصالحة والمستخدَمة في العنصر <CacheResource> ضمن سياسة ذاكرة التخزين المؤقت للاستجابة والبيئة التي حدث فيها الخطأ. يمكنك العثور على كلا العنصرَين في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم ذاكرة التخزين المؤقت غير الصالحة itemscache واسم البيئة هو prod.

    Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
    
  2. فحص جميع سياسات Responsecache في خادم وكيل واجهة برمجة التطبيقات المحدّد حيث يتعذّر حدث. تحديد سياسة Responsecache المحدّدة التي تتضمّن ذاكرة التخزين المؤقت غير الصالحة تم تحديد (الذي تم تحديده في الخطوة رقم 1) في عنصر <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، انتقل إلى APIs > تهيئة البيئة والتحقق من وجود ذاكرة التخزين المؤقت في علامة التبويب ذاكرات التخزين المؤقت في البيئة المحددة. إذا لم تكن ذاكرة التخزين المؤقت موجودة، فهذا هو سبب الخطأ.

    على سبيل المثال، لاحظ في لقطة الشاشة أدناه أنّ ذاكرة التخزين المؤقت التي تحمل الاسم "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.

مثال على لقطة شاشة للخطأ

السبب

يحدث هذا الخطأ إذا تم إرفاق سياسة Responsecache نفسها بمسارات طلبات متعدّدة ضمن أي مسارات للخادم الوكيل لواجهة برمجة التطبيقات.

على سبيل المثال، إذا كان لديك سياسة Responsecache نفسها مُرفقة في الطلب المسبق لكل من نقاط النهاية المستهدفة والخادم الوكيل، سيحدث هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Responsecache التي تم إرفاقها أكثر من مرة. يمكنك العثور على هذه المعلومات في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم سياسة Responsecache هو 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. افحص جميع تدفقات الطلبات في نقاط النهاية المستهدَفة والخادم الوكيل لواجهة برمجة التطبيقات حيث حدث الخطأ. في حال إرفاق سياسة Responsecache نفسها في مسارَين أو أكثر من عمليات الطلب، يكون هذا هو سبب الخطأ.

    في المثال التالي، تم ضبط سياسة Responsecache Response-Cache-1 نفسها في مسار الطلب لنقطة نهاية الخادم الوكيل التلقائية PreFlow ونقطة النهاية المستهدفة التلقائية 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 بمسار طلب واحد فقط على مستوى جميع مسارات الخادم الوكيل لواجهة برمجة التطبيقات.

لتصحيح المثال المعروض أعلاه، عليك إزالة سياسة 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.

مثال على لقطة شاشة للخطأ

السبب

يحدث هذا الخطأ إذا تم إرفاق سياسة Responsecache نفسها بمسارات استجابة متعدّدة داخل أي مسارات لخادم وكيل لواجهة برمجة التطبيقات.

على سبيل المثال، إذا كان لديك سياسة Responsecache نفسها مُرفقة في الردّ المسبق لكل من نقاط النهاية المستهدفة والخادم الوكيل، سيحدث هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Responsecache التي تم إرفاقها أكثر من مرة. يمكنك العثور على هذه المعلومات في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم سياسة Responsecache هو 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. افحص جميع تدفقات الطلبات في نقاط النهاية المستهدَفة والخادم الوكيل لواجهة برمجة التطبيقات حيث حدث الخطأ. في حال إرفاق سياسة ResponseCache نفسها في مسارَين أو أكثر للردود، يكون هذا هو سبب الخطأ.

    في المثال التالي، تم ضبط سياسة Responsecache Response-Cache-1 نفسها في مسار الاستجابة لنقطة نهاية الخادم الوكيل التلقائية PreFlow ونقطة النهاية المستهدفة التلقائية 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>
        ...
    

الدقة

يُرجى التأكُّد من إرفاق سياسة Responsecache بمسار استجابة واحد فقط على مستوى جميع مسارات الخادم الوكيل لواجهة برمجة التطبيقات.

لتصحيح المثال الوارد أعلاه، عليك إزالة سياسة Responsecache 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.

مثال على لقطة شاشة للخطأ

أو

السبب

يحدث هذا الخطأ إذا كان العنصر <SkipCacheLookup> أو <SkipCachePopulation> في سياسة Responsecache يحتوي على شرط غير صالح.

التشخيص

  1. يمكنك مراجعة جميع سياسات Responsecache في خادم وكيل واجهة برمجة التطبيقات التي حدث فيها الخطأ، والتحقّق مما إذا كانت هناك أي سياسات تتضمّن شروطًا محددة لعناصر <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

السبب

يحدث هذا الخطأ إذا لم يتم إنشاء ذاكرة التخزين المؤقت المحددة المذكورة في رسالة الخطأ على مكون محدد من معالجات الرسائل.

الدقة

إذا كنت أحد مستخدمي السحابة الإلكترونية الخاصة، يمكنك اتّباع التعليمات التالية:

  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. حدِّد اسم المضيف/عنوان IP لمعالج الرسائل من المعرّف الفريد العالمي (UUID).

  3. قم بتسجيل الدخول إلى معالج الرسائل المحدد وإعادة تشغيله باستخدام الأمر التالي:

    apigee-service edge-message-processor restart

في حال كنت من مستخدمي Public Cloud أو إذا استمرت المشكلة في Private Cloud، يُرجى التواصل مع فريق دعم Apigee للحصول على مساعدة.