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

يتم الآن عرض مستندات 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، انتقل إلى واجهات برمجة التطبيقات > تهيئة البيئة وتحقق من وجود ذاكرة التخزين المؤقت في علامة التبويب ذاكرات التخزين المؤقت في البيئة المحددة. إذا لم تكن ذاكرة التخزين المؤقت موجودة، يكون هذا هو سبب الخطأ.

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

درجة الدقّة

تأكَّد من إرفاق سياسة Response Cache (ذاكرة التخزين المؤقت للاستجابة) بمسار طلب واحد فقط في جميع مسارات الخادم الوكيل لواجهة برمجة التطبيقات.

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

درجة الدقّة

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

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