লুকআপ ক্যাশে নীতি স্থাপনার ত্রুটি সমস্যা সমাধান

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

অবৈধ সময়সীমা

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

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 হয়, তাহলে এপিআই প্রক্সির ডেপ্লয়মেন্ট ব্যর্থ হবে।

রোগ নির্ণয়

  1. LookupCache পলিসিতে <CacheLookupTimeoutInSeconds> এলিমেন্টের জন্য নির্দিষ্ট করা অবৈধ মানটি শনাক্ত করুন। আপনি এই তথ্যটি এরর মেসেজে খুঁজে পেতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত এররটিতে, <CacheLookupTimeoutInSeconds> এলিমেন্টের জন্য ব্যবহৃত অবৈধ মানটি হলো -1 :

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. যে নির্দিষ্ট এপিআই প্রক্সিতে ব্যর্থতা ঘটেছে, সেখানকার সমস্ত লুকআপক্যাশ পলিসি পরীক্ষা করুন। সেখানে এক বা একাধিক লুকআপক্যাশ পলিসি থাকতে পারে যেখানে <CacheLookupTimeoutInSeconds> এলিমেন্টটি নির্দিষ্ট করা আছে। সেই লুকআপক্যাশ পলিসিটি শনাক্ত করুন যেখানে <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> একটি ঋণাত্মক পূর্ণসংখ্যা হিসাবে নির্দিষ্ট করা হয়, তাহলে সেটাই ত্রুটির কারণ।

সমাধান

নিশ্চিত করুন যে 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>

অবৈধ ক্যাশ রিসোর্স রেফারেন্স

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

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

ত্রুটির স্ক্রিনশটের উদাহরণ

কারণ

এই ত্রুটিটি ঘটে যদি <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. যে নির্দিষ্ট এপিআই প্রক্সিতে ব্যর্থতা ঘটেছে, সেখানকার সমস্ত লুকআপক্যাশ পলিসি পরীক্ষা করুন। সেই নির্দিষ্ট লুকআপক্যাশ পলিসিটি শনাক্ত করুন যেখানে <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-তে, ADMIN > Environment > test- এ যান এবং Environment Configuration- এর Caches ট্যাবে ক্যাশেটি আছে কিনা তা পরীক্ষা করুন। যদি ক্যাশেটি না থাকে, তাহলে সেটাই ত্রুটির কারণ।

    উদাহরণস্বরূপ, নিচের স্ক্রিনশটে লক্ষ্য করুন যে tokencache নামের ক্যাশেটি বিদ্যমান নেই।

    test এনভায়রনমেন্টে tokencache নামের ক্যাশটি সংজ্ঞায়িত না থাকায় আপনি এই ত্রুটিটি পাচ্ছেন:

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

সমাধান

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

ক্যাশে কীভাবে তৈরি করতে হয় সে সম্পর্কে তথ্যের জন্য "পরিবেশ ক্যাশে তৈরি এবং সম্পাদনা" দেখুন।

ক্যাশ পাওয়া যায়নি

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

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. এপিআই প্রক্সি ডিপ্লয়মেন্টগুলোর তালিকা করুন এবং নির্ধারণ করুন কোন মেসেজ প্রসেসরগুলোতে 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. যে মেসেজ প্রসেসরে আপনি ` steps.cache.CacheNotFound ত্রুটিটি লক্ষ্য করছেন, তার UUID(গুলি) নোট করুন। উক্ত UUID-এর সাথে যুক্ত মেসেজ প্রসেসরের হোস্ট নেম/আইপি অ্যাড্রেস শনাক্ত করুন।

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

    apigee-service edge-message-processor restart

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