عیب‌یابی خطای استقرار خط‌مشی «حافظه نهان جستجو»

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

InvalidTimeout

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر 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> در خط‌مشی LookupCache روی عدد منفی تنظیم شود، استقرار پراکسی API ناموفق خواهد بود.

برای مثال، اگر عنصر <CacheLookupTimeoutInSeconds> برابر با -1 باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. مقدار نامعتبر مشخص‌شده برای عنصر <CacheLookupTimeoutInSeconds> در خط‌مشی LookupCache را شناسایی کنید. می‌توانید این اطلاعات را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، مقدار نامعتبر استفاده‌شده برای عنصر <CacheLookupTimeoutInSeconds>، -1 است:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. همه خط‌مشی‌های LookupCache را در «پراکسی API» خاصی که در آن خرابی رخ داده است بررسی کنید. ممکن است یک یا چند خط‌مشی LookupCache وجود داشته باشد که عنصر <CacheLookupTimeoutInSeconds> در آن‌ها مشخص شده باشد. خط‌مشی LookUpCache را که مقدار نامعتبر (شناسایی‌شده در مرحله ۱ در بالا) برای عنصر <CacheLookupTimeoutInSeconds> در آن مشخص شده است شناسایی کنید.

    برای مثال، پیکربندی خط‌مشی زیر مقدار <CacheLookupTimeoutInSeconds> از -1 را مشخص می‌کند که با پیام خطا مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. اگر <CacheLookupTimeoutInSeconds> به‌عنوان عدد صحیح منفی مشخص شده باشد، این دلیل خطا است.

وضوح

مطمئن شوید که مقدار عنصر <CacheLookupTimeoutInSeconds> خط‌مشی LookupCache همیشه به‌عنوان عدد صحیح غیرمنفی مشخص شود.

برای اصلاح خط‌مشی LookupCache مثال نشان‌داده‌شده در بالا، می‌توانید عنصر <CacheLookupTimeoutInSeconds> را به 30 تغییر دهید.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
    <DisplayName>LookupCache-Token</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.queryparam.client_id"/>
    </CacheKey>
    <CacheResource>tokencache</CacheResource>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSec>3600</TimeoutInSec>
    </ExpirySettings>
    <AssignTo>usertoken</AssignTo>
</LookupCache>

InvalidCacheResourceReference

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

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

نمونه پیام خطا

Error Deploying Revision 2 to test
Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test

نماگرفت خطای نمونه

علت

این خطا زمانی رخ می‌دهد که عنصر <CacheResource> روی نامی تنظیم شده باشد که در محیطی که پراکسی API در آن مستقر می‌شود وجود ندارد.

تشخیص

  1. حافظه نهان نامعتبر استفاده‌شده در عنصر <CacheResource> از خط‌مشی LookupCache و محیطی که خطا در آن رخ داده است را شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام حافظه نهان نامعتبر tokencache و نام محیط test است.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. همه خط‌مشی‌های LookupCache را در «پراکسی API» خاصی که در آن خرابی رخ داده است بررسی کنید. خط‌مشی خاص LookupCache را که در آن حافظه نهان نامعتبر (شناسایی‌شده در مرحله ۱) در عنصر <CacheResource> مشخص شده است شناسایی کنید.

    برای مثال، خط‌مشی زیر مقدار <CacheResource> را tokencache مشخص می‌کند که با پیام خطا مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <CacheLookupTimeoutInSeconds/>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. بررسی کنید که آیا حافظه نهان (تعیین‌شده در مرحله #۱) در محیط خاص (شناسایی‌شده در مرحله #۱) تعریف شده است یا نه.

    در «میانای کاربری Edge»، به ADMIN > Environment > test پیمایش کنید و بررسی کنید که آیا حافظه نهان در برگه Caches از Environment Configuration وجود دارد یا نه. اگر حافظه نهان وجود نداشته باشد، دلیل خطا همین است.

    برای مثال، در نماگرفت زیر توجه کنید که حافظه نهان با نام tokencache وجود ندارد.

    چون حافظه نهان با نام tokencache در محیط test تعریف نشده است، این خطا را دریافت می‌کنید:

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
    

وضوح

مطمئن شوید نام حافظه نهان مشخص‌شده در عنصر <CacheResource> در محیطی که می‌خواهید پراکسی API را در آن مستقر کنید ایجاد شده باشد.

برای اطلاعات بیشتر درباره نحوه ایجاد حافظه نهان، به ایجاد و ویرایش حافظه نهان محیط مراجعه کنید.

CacheNotFound

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» منجر به پیام خطایی مانند این می‌شود و وضعیت استقرار «پراکسی API» به‌عنوان «استقرار جزئی» علامت‌گذاری می‌شود:

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

نمونه پیام خطا

Error Cache : configCache, not found in organization : kkalckstein-eval__test

علت

این خطا زمانی رخ می‌دهد که حافظه نهان خاص ذکرشده در پیام خطا در یک جزء «پردازشگر پیام» خاص ایجاد نشده باشد.

وضوح

اگر کاربر ابر خصوصی هستید، لطفاً دستورالعمل‌های زیر را دنبال کنید:

  1. فهرست استقرار پراکسی «میانای برنامه‌سازی کاربردی» را تهیه کنید و مشخص کنید کدام «پردازنده‌های پیام» خطای steps.cache.CacheNotFound را دارند.

    curl -u $USERID:$USERPASSWORD http://:8080/v1/organizations//environments//apis//revisions//deployments

    نمونه برونداد

    {
      "aPIProxy" : "TestCache",
      "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 : configCache, not found in organization : kkalckstein-eval__test",
        "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

اگر کاربر ابر عمومی هستید یا اگر مشکل در ابر خصوصی همچنان ادامه دارد، برای دریافت راهنمایی با پشتیبانی Apigee تماس بگیرید.