লুক-আপ ক্যাশে নীতি প্রয়োগ সংক্রান্ত সমস্যার সমাধান করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

InvalidTimeout

ত্রুটি বার্তা

Edge UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি ডেপ্লয়মেন্ট এই সমস্যার মেসেজ সহ ব্যর্থ হয়:

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.

সমস্যার স্ক্রিনশটের উদাহরণ

কারণ

LookupCache নীতির <CacheLookupTimeoutInSeconds> এলিমেন্ট নেগেটিভ সংখ্যায় সেট করা থাকলে, API প্রক্সি ডেপ্লয় করা যায় না।

যেমন, <CacheLookupTimeoutInSeconds> এলিমেন্ট -1 হলে, API প্রক্সি ডেপ্লয় করা যায় না।

ডায়াগনসিস

  1. LookupCache নীতিতে <CacheLookupTimeoutInSeconds> এলিমেন্টের জন্য নির্দিষ্ট করা ভুল মান শনাক্ত করুন। আপনি সমস্যার মেসেজে এই তথ্য দেখতে পাবেন। যেমন, নিম্নলিখিত সমস্যার ক্ষেত্রে, <CacheLookupTimeoutInSeconds> এলিমেন্টের জন্য ব্যবহৃত ভুল ভ্যালু হল -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. যেখানে সমস্যা হয়েছে সেই নির্দিষ্ট API প্রক্সিতে সব LookupCache নীতি পরীক্ষা করুন। এক বা একাধিক LookupCache নীতি থাকতে পারে যেখানে <CacheLookupTimeoutInSeconds> এলিমেন্ট নির্দিষ্ট করা আছে। LookUpCache নীতি শনাক্ত করুন যেখানে <CacheLookupTimeoutInSeconds> এলিমেন্টের জন্য ভুল মান (উপরে #১ ধাপে শনাক্ত করা হয়েছে) নির্দিষ্ট করা হয়েছে।

    যেমন, নিম্নলিখিত নীতি কনফিগারেশন -1-এর <CacheLookupTimeoutInSeconds>-এর ভ্যালু নির্দিষ্ট করে, যা সমস্যার মেসেজের সাথে ম্যাচ করে:

    <?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>-এর মান ঋণাত্মক পূর্ণসংখ্যা হিসেবে উল্লেখ করা হলে, সেটিই সমস্যার কারণ।

রেজোলিউশন

LookupCache নীতির <CacheLookupTimeoutInSeconds> এলিমেন্টের ভ্যালু সবসময় অঋণাত্মক পূর্ণসংখ্যা হিসেবে নির্দিষ্ট করা আছে কিনা তা নিশ্চিত করুন।

উপরে দেখানো 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

ত্রুটি বার্তা

Edge UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি ডেপ্লয়মেন্ট এই সমস্যার মেসেজ সহ ব্যর্থ হয়:

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

সমস্যার স্ক্রিনশটের উদাহরণ

কারণ

API প্রক্সি যেখানে ডেপ্লয় করা হচ্ছে সেই এনভায়রনমেন্টে <CacheResource> এলিমেন্ট এমন নামে সেট করা থাকলে, যা সেখানে নেই, তাহলে এই সমস্যা হয়।

ডায়াগনসিস

  1. LookupCache নীতি-এর <CacheResource> এলিমেন্টে ব্যবহৃত ভুল ক্যাশে এবং যে এনভায়রনমেন্টে সমস্যা হয়েছে তা শনাক্ত করুন। আপনি সমস্যার মেসেজে এই দুটি আইটেমই দেখতে পাবেন। যেমন, নিচের এই সমস্যার ক্ষেত্রে, ভুল ক্যাশের নাম হল tokencache এবং এনভায়রনমেন্টের নাম হল test.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. যেখানে সমস্যা হয়েছে সেই নির্দিষ্ট API প্রক্সিতে সব LookupCache নীতি পরীক্ষা করুন। নির্দিষ্ট 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 UI-তে, অ্যাডমিন > এনভায়রনমেন্ট > টেস্ট বিকল্পে নেভিগেট করুন এবং এনভায়রনমেন্ট কনফিগারেশন-এর ক্যাশে ট্যাবে ক্যাশে আছে কিনা তা চেক করুন। ক্যাশে না থাকলে, সেটিই হল সমস্যার কারণ।

    যেমন, নিচের স্ক্রিনশটে লক্ষ্য করুন যে tokencache নামের কোনও ক্যাশে নেই।

    test এনভায়রনমেন্টে tokencache নামের ক্যাশে ডিফাইন করা নেই বলে আপনি এই সমস্যাটি দেখতে পাবেন:

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

রেজোলিউশন

<CacheResource> এলিমেন্টে উল্লেখ করা ক্যাশের নাম, আপনি যে এনভায়রনমেন্টে API প্রক্সি ডেপ্লয় করতে চান সেখানে তৈরি করা হয়েছে কিনা তা নিশ্চিত করুন।

ক্যাশে কীভাবে তৈরি করতে হয় সেই বিষয়ে তথ্য পেতে এনভায়রনমেন্ট ক্যাশে তৈরি ও এডিট করা দেখুন।

CacheNotFound

ত্রুটি বার্তা

Edge UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি ডেপ্লয় করলে, এই ধরনের একটি সমস্যার মেসেজ দেখানো হয় এবং API প্রক্সির ডেপ্লয়মেন্ট স্ট্যাটাস আংশিকভাবে ডেপ্লয় করা হয়েছে হিসেবে চিহ্নিত করা হয়:

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

সমস্যার মেসেজের উদাহরণ

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

কারণ

সমস্যার মেসেজে উল্লেখ করা নির্দিষ্ট ক্যাশে, নির্দিষ্ট মেসেজ প্রসেসর কম্পোনেন্টে তৈরি না হলে এই সমস্যা হয়।

রেজোলিউশন

আপনি প্রাইভেট ক্লাউড ব্যবহারকারী হলে, নিচে দেওয়া নির্দেশাবলী অনুসরণ করুন:

  1. API প্রক্সি ডিপ্লয়মেন্টের তালিকা তৈরি করুন এবং কোন মেসেজ প্রসেসরে সমস্যা 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। UUID-এর সাথে যুক্ত মেসেজ প্রসেসরের হোস্ট নেম/IP অ্যাড্রেস শনাক্ত করুন।

  3. নির্দিষ্ট মেসেজ প্রসেসরে লগ-ইন করুন এবং নিম্নলিখিত কমান্ড ব্যবহার করে এটি রিস্টার্ট করুন:

    apigee-service edge-message-processor restart

আপনি পাবলিক ক্লাউড ব্যবহারকারী হলে অথবা প্রাইভেট ক্লাউডে সমস্যা চলতে থাকলে, সহায়তার জন্য Apigee সহায়তা টিমের সাথে যোগাযোগ করুন।