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

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

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:[apiproxy_name];Organization:[organization];Environment:[environment]

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

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

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

কারণ

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

ডায়াগনসিস

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

    Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. কাজ না করা PopulateCache নীতি XML পরীক্ষা করুন এবং <CacheResource> এলিমেন্টের জন্য নির্দিষ্ট করা ক্যাশের নাম সমস্যার মেসেজের সাথে মিলছে কিনা তা যাচাই করুন।

    এই উদাহরণে, <CacheResource> এলিমেন্টে নির্দিষ্ট করা ক্যাশের নাম হল tokencache:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <PopulateCache async="false" continueOnError="false" enabled="true" name="PopulateCache-Token">
        <DisplayName>PopulateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <Source>token</Source>
    </PopulateCache>
    
  3. নির্দিষ্ট এনভায়রনমেন্টে (১ম ধাপে শনাক্ত করা) ক্যাশে (১ম ধাপে নির্ধারণ করা) সংজ্ঞায়িত করা হয়েছে কিনা তা যাচাই করুন।

    Edge UI-তে, অ্যাডমিন > এনভায়রনমেন্ট > টেস্ট বিকল্পে নেভিগেট করুন এবং এনভায়রনমেন্ট কনফিগারেশন-এর ক্যাশে ট্যাবে ক্যাশে আছে কিনা তা চেক করুন। ক্যাশে না থাকলে, সেটিই হল সমস্যার কারণ।

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

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

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

রেজোলিউশন

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

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

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

কারণ

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

রেজোলিউশন

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

  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 সহায়তা টিমের সাথে যোগাযোগ করুন।