Lookup Cache politikası dağıtım hatasıyla ilgili sorunları giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

InvalidTimeout

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

Bir LookupCache politikasının <CacheLookupTimeoutInSeconds> öğesi negatif bir sayıya ayarlanırsa API proxy'sinin dağıtımı başarısız olur.

Örneğin, <CacheLookupTimeoutInSeconds> öğesi -1 ise API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. LookupCache politikasında <CacheLookupTimeoutInSeconds> öğesi için belirtilen geçersiz değeri tanımlayın. Bu bilgiyi hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada <CacheLookupTimeoutInSeconds> öğesi için kullanılan geçersiz değer -1'dir:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Hatayı içeren API proxy'sindeki tüm LookupCache politikalarını inceleyin. <CacheLookupTimeoutInSeconds> öğesinin belirtildiği bir veya daha fazla LookupCache politikası olabilir. Geçersiz değerin (yukarıdaki 1. adımda tanımlanan) <CacheLookupTimeoutInSeconds> öğesi için belirtildiği LookUpCache politikasını belirleyin.

    Örneğin, aşağıdaki politika yapılandırması, hata mesajıyla eşleşen -1 değerinin <CacheLookupTimeoutInSeconds> değerini belirtir:

    <?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> negatif bir tam sayı olarak belirtilmişse hatanın nedeni budur.

Çözünürlük

LookupCache politikasının <CacheLookupTimeoutInSeconds> öğesinin değerinin her zaman sıfırdan büyük bir tam sayı olarak belirtildiğinden emin olun.

Yukarıda gösterilen örnek LookupCache politikasını düzeltmek için <CacheLookupTimeoutInSeconds> öğesini 30 olarak değiştirebilirsiniz.

<?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

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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]

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

Bu hata, <CacheResource> öğesi, API proxy'sinin dağıtıldığı ortamda bulunmayan bir ada ayarlandığında oluşur.

Teşhis

  1. LookupCache politikasının <CacheResource> öğesinde kullanılan geçersiz önbelleği ve hatanın oluştuğu ortamı belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz önbelleğin adı tokencache, ortamın adı ise test'dir.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Hatayı içeren API proxy'sindeki tüm LookupCache politikalarını inceleyin. Geçersiz önbelleğin (1. adımda tanımlanan) <CacheResource> öğesinde belirtildiği belirli LookupCache politikasını belirleyin.

    Örneğin, aşağıdaki politika <CacheResource> değerini tokencache olarak belirtir. Bu değer, hata mesajıyla eşleşir:

    <?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. Önbelleğin (1. adımda belirlenir) belirli bir ortamda (1. adımda tanımlanır) tanımlanıp tanımlanmadığını doğrulayın.

    Edge kullanıcı arayüzünde ADMIN > Environment > test'e gidin ve Environment Configuration'ın Caches (Önbellekler) sekmesinde önbelleğin olup olmadığını kontrol edin. Önbellek yoksa hatanın nedeni budur.

    Örneğin, aşağıdaki ekran görüntüsünde tokencache adlı önbelleğin mevcut olmadığını görebilirsiniz.

    tokencache adlı önbellek, test ortamında tanımlanmadığı için şu hatayı alırsınız:

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

Çözünürlük

<CacheResource> öğesinde belirtilen önbellek adının, API proxy'sini dağıtmak istediğiniz ortamda oluşturulduğundan emin olun.

Önbelleği oluşturma hakkında bilgi için Ortam önbelleği oluşturma ve düzenleme başlıklı makaleyi inceleyin.

CacheNotFound

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si aracılığıyla dağıtılması şu gibi bir hata mesajına neden olur ve API proxy'sinin dağıtım durumu kısmen dağıtılmış olarak işaretlenir:

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

Örnek hata mesajı

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

Neden

Bu hata, hata mesajında belirtilen belirli önbellek belirli bir Mesaj İşleyici bileşeninde oluşturulmamışsa oluşur.

Çözünürlük

Özel bulut kullanıcısıysanız lütfen aşağıdaki talimatları uygulayın:

  1. API proxy dağıtımlarını listeleyin ve hangi mesaj işlemcilerde steps.cache.CacheNotFound hatası olduğunu belirleyin.

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

    Örnek Çıkış

    {
      "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. Hatayı gözlemlediğiniz mesaj işleyicinin UUID'lerini not edin steps.cache.CacheNotFound. UUID ile ilişkili ileti işlemcisinin ana makine adını/IP adresini belirleyin.

  3. İlgili Mesaj İşleyici'de oturum açın ve aşağıdaki komutu kullanarak yeniden başlatın:

    apigee-service edge-message-processor restart

Public Cloud kullanıcısıysanız veya sorun Private Cloud'da devam ediyorsa yardım için Apigee Destek Ekibi ile iletişime geçin.