ডেটাস্টোর অ্যাক্সেস করতে ত্রুটি৷

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

উপসর্গ

এজ ইউআই বা এজ ম্যানেজমেন্ট এপিআই কলের মাধ্যমে API প্রক্সি রিভিশনের স্থাপনা ব্যর্থ হয় "Error while accessing datastore"

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

Error in deployment for environment qa.

The revision is deployed, but traffic cannot flow. Error while accessing datastore;Please retry later

সম্ভাব্য কারণ

এই সমস্যার জন্য সাধারণ কারণগুলি হল:

  1. কারণ বিস্তারিত জন্য
    মেসেজ প্রসেসর এবং ক্যাসান্দ্রার মধ্যে নেটওয়ার্ক সংযোগ সমস্যা নেটওয়ার্ক সংযোগ সমস্যা বা ফায়ারওয়াল নিয়মের কারণে মেসেজ প্রসেসর এবং ক্যাসান্দ্রার মধ্যে যোগাযোগের ব্যর্থতা। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা
    ক্যাসান্ড্রা পুনরায় চালু হওয়ার কারণে স্থাপনার ত্রুটি৷ ক্যাসান্দ্রা নোড(গুলি) অনুপলব্ধ কারণ এটি রুটিন রক্ষণাবেক্ষণের অংশ হিসাবে পুনরায় চালু করা হয়েছিল৷ এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা
    ক্যাসান্দ্রার রিড রিকোয়েস্ট লেটেন্সিতে স্পাইক করুন যদি ক্যাসান্ড্রা নোড (গুলি) প্রচুর সংখ্যক সমবর্তী পাঠ সম্পাদন করে, তবে এটি পড়ার অনুরোধের বিলম্বিততার কারণে ধীরে ধীরে প্রতিক্রিয়া জানাতে পারে। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা
    API প্রক্সি বান্ডেল 15MB এর থেকে বড় ক্যাসান্দ্রাকে 15MB এর চেয়ে বড় API প্রক্সি বান্ডেলকে অনুমতি না দেওয়ার জন্য কনফিগার করা হয়েছে৷ এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা

    মেসেজ প্রসেসর এবং ক্যাসান্দ্রার মধ্যে নেটওয়ার্ক সংযোগ সমস্যা

    রোগ নির্ণয়

    দ্রষ্টব্য: শুধুমাত্র এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে পারেন৷ আপনি যদি এজ পাবলিক ক্লাউডে থাকেন, Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।

    1. এপিআই প্রক্সি আনডিপ্লয় করুন এবং রিডিপ্লোয় করুন। যদি বার্তা প্রসেসর এবং ক্যাসান্দ্রার মধ্যে একটি অস্থায়ী সংযোগ সমস্যা ছিল, তাহলে ত্রুটিটি দূরে যেতে পারে।

      সতর্কীকরণ: উৎপাদন পরিবেশে ত্রুটি দেখা গেলে তা সরিয়ে ফেলবেন না।

    2. যদি সমস্যাটি থেকে যায়, তাহলে ডিপ্লয়মেন্ট স্ট্যাটাস চেক করতে নিচের ম্যানেজমেন্ট এপি কলটি চালান এবং কোনো উপাদানে কোনো ত্রুটি আছে কিনা তা পরীক্ষা করুন:
      curl -u sysadmin@email.com https://management:8080/v1/o/<org>/apis/<api>/deployments

      বার্তা প্রসেসরগুলির একটিতে ডেটাস্টোর অ্যাক্সেস করার সময় নমুনা স্থাপনার স্থিতি আউটপুট ত্রুটি দেখাচ্ছে

      {
      "environment" : [ {
      "aPIProxy" : [ {
      "name" : "simple-python",
      "revision" : [ {
      "configuration" : {
      "basePath" : "/",
      "steps" : [ ]
      },
      "name" : "1",
      "server" : [ {
      "status" : "deployed",
      "type" : [ "message-processor" ],
      "uUID" : "2acdd9b2-17de-4fbb-8827-8a2d4f3d7ada"
      }, {
      "error" : "Error while accessing datastore;Please retry later",
      "errorCode" : "datastore.ErrorWhileAccessingDataStore",
      "status" : "error",
      "type" : [ "message-processor" ],
      "uUID" : "42772085-ca67-49bf-a9f1-c04f2dc1fce3"
      } 
      "state" : "error"
      } 
    3. বার্তা প্রসেসর(গুলি) পুনরায় চালু করুন যা স্থাপনার ত্রুটি দেখায়। যদি একটি অস্থায়ী নেটওয়ার্ক সমস্যা ছিল, তাহলে ত্রুটিটি চলে যাওয়া উচিত:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    4. পুনরায় চালু হওয়া মেসেজ প্রসেসরে স্থাপনা সফল হয় কিনা তা দেখতে ধাপ #2 পুনরাবৃত্তি করুন। যদি কোন ত্রুটি পাওয়া যায় না, তাহলে এটি নির্দেশ করে যে সমস্যাটি সমাধান করা হয়েছে।
    5. বার্তা প্রসেসর পোর্ট 9042 এবং 9160 এর প্রতিটি ক্যাসান্ড্রা নোডের সাথে সংযোগ করতে সক্ষম কিনা তা পরীক্ষা করুন:
      1. যদি টেলনেট পাওয়া যায়, তাহলে টেলনেট ব্যবহার করুন:
        telnet <Cassandra_IP> 9042
        telnet <Cassandra_IP> 9160
      2. যদি টেলনেট উপলভ্য না থাকে, তাহলে নেটক্যাট ব্যবহার করে কানেক্টিভিটি চেক করুন:
        nc -vz <Cassandra_IP> 9042
        nc -vz <Cassandra_IP> 9160
      3. আপনি যদি "সংযোগ প্রত্যাখ্যান" বা "সংযোগের সময় শেষ" প্রতিক্রিয়া পান, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমকে নিযুক্ত করুন।
    6. যদি সমস্যাটি অব্যাহত থাকে, তাহলে পরীক্ষা করুন যে প্রতিটি ক্যাসান্দ্রা নোড 9042 এবং পোর্ট 9160 পোর্টে শুনছে কিনা:
      netstat -an | grep LISTEN | grep 9042
      netstat -an | grep LISTEN | grep 9160
    7. যদি ক্যাসান্দ্রা নোডগুলি 9042 বা 9160 পোর্টে শুনতে না পায়, তাহলে নির্দিষ্ট ক্যাসান্দ্রা নোডগুলি পুনরায় চালু করুন:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    8. যদি সমস্যাটি থেকে যায়, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমকে নিযুক্ত করুন।

রেজোলিউশন

আপনার নেটওয়ার্ক অপারেশন টিমের সাথে কাজ করুন এবং মেসেজ প্রসেসর এবং ক্যাসান্দ্রার মধ্যে নেটওয়ার্ক কানেক্টিভিটি সমস্যা সমাধান করুন।

ক্যাসান্ড্রা পুনরায় চালু হওয়ার কারণে স্থাপনার ত্রুটি৷

নিয়মিত রক্ষণাবেক্ষণের অংশ হিসাবে ক্যাসান্দ্রা নোডগুলি সাধারণত পর্যায়ক্রমে পুনরায় চালু করা হয়। যদি ক্যাসান্দ্রা রক্ষণাবেক্ষণ কাজের সময় API প্রক্সিগুলি মোতায়েন করা হয়, তাহলে ক্যাসান্দ্রা ডেটাস্টোরে অ্যাক্সেসযোগ্যতার কারণে স্থাপনাগুলি ব্যর্থ হয়।

দ্রষ্টব্য: শুধুমাত্র এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে পারেন৷ আপনি যদি এজ পাবলিক ক্লাউডে থাকেন, Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।

রোগ নির্ণয়

  1. স্থাপনের সময় ক্যাসান্দ্রা নোডগুলি পুনরায় চালু হয়েছে কিনা তা পরীক্ষা করুন৷ এটি ক্যাসান্দ্রা লগ বা ক্যাসান্দ্রা নোডের সাম্প্রতিক স্টার্টআপ টাইম লগগুলি পরীক্ষা করে করা যেতে পারে:

    grep " shutdown " /opt/apigee/var/log/apigee-cassandra/system.log

রেজোলিউশন

  1. নিশ্চিত করুন ক্যাসান্দ্রা আপ এবং চলমান আছে।
  2. বার্তা প্রসেসরগুলি পোর্ট 9042 এবং 9160 এ ক্যাসান্ড্রা ডেটাস্টোরের সাথে সংযোগ করতে সক্ষম কিনা তা পরীক্ষা করুন৷

ক্যাসান্দ্রার রিড রিকোয়েস্ট লেটেন্সিতে স্পাইক করুন

ক্যাসান্ড্রা-তে প্রচুর পরিমাণে পঠনগুলি ব্যক্তিগত ব্যবহারের ক্ষেত্রে এবং প্রক্সিগুলিতে ট্র্যাফিক প্যাটার্নের উপর নির্ভরশীল যেগুলিতে ক্যাসান্ড্রা থেকে পড়ার অ্যাক্সেসের প্রয়োজন হয় এমন নীতি রয়েছে৷

উদাহরণস্বরূপ, যদি OAuth নীতির জন্য রিফ্রেশ_টোকেন অনুদানের ধরণে একটি GET কল কল করা হয় এবং রিফ্রেশ টোকেনটি অনেকগুলি অ্যাক্সেস টোকেনের সাথে যুক্ত থাকে, তাহলে এর ফলে ক্যাসান্দ্রা থেকে উচ্চ পরিমাণে রিড হতে পারে। এটি ক্যাসান্দ্রার পড়ার অনুরোধের বিলম্ব বৃদ্ধির কারণ হতে পারে।

রোগ নির্ণয়

দ্রষ্টব্য: শুধুমাত্র এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে পারেন৷ আপনি যদি এজ পাবলিক ক্লাউডে থাকেন, Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।

  1. আপনি যদি বিটা মনিটরিং ড্যাশবোর্ড ইনস্টল করে থাকেন, তাহলে ক্যাসান্ড্রা ড্যাশবোর্ডটি দেখুন এবং সমস্যার সময়কালের জন্য "রিকুয়েস্ট পড়ুন" চার্ট পর্যালোচনা করুন। এছাড়াও "রিড রিকোয়েস্ট লেটেন্সি" এর জন্য চার্ট পর্যালোচনা করুন।
  2. রিড রিকোয়েস্ট এবং রিড লেটেন্সি চেক করার জন্য বিকল্প টুল হল nodetool cfstats কমান্ড। এই কমান্ডটি ব্যবহার করার জন্য আরও বিশদ পেতে ক্যাসান্দ্রা ডকুমেন্টেশন দেখুন।

রেজোলিউশন

দ্রষ্টব্য: শুধুমাত্র এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে পারেন৷ আপনি যদি এজ পাবলিক ক্লাউডে থাকেন, Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।

  1. ক্যাসান্দ্রার পারফরম্যান্স স্বাভাবিক অবস্থায় ফিরে আসার পরে আবার স্থাপনার চেষ্টা করুন। নিশ্চিত করুন যে পুরো ক্যাসান্দ্রা রিংটি স্বাভাবিক।
  2. (ঐচ্ছিক) সংযোগ স্থাপন করা হয়েছে তা নিশ্চিত করতে বার্তা প্রসেসরে একটি রোলিং রিস্টার্ট করুন।
  3. দীর্ঘমেয়াদী সমাধানের জন্য, API ট্র্যাফিক প্যাটার্নগুলি পর্যালোচনা করুন যা সম্ভবত ক্যাসান্ড্রা ডেটাস্টোরে উচ্চতর পাঠে অবদান রাখবে। এই সমস্যা সমাধানে সহায়তার জন্য Apigee Edge সহায়তার সাথে যোগাযোগ করুন।
  4. যদি বিদ্যমান ক্যাসান্দ্রা নোড(গুলি) আগত ট্র্যাফিক পরিচালনা করার জন্য পর্যাপ্ত না হয়, তাহলে হয় হার্ডওয়্যার ক্ষমতা বা ক্যাসান্দ্রা ডেটাস্টোর নোডের সংখ্যা যথাযথভাবে বাড়ান।

API প্রক্সি বান্ডেল 15MB এর থেকে বড়

এপিআই প্রক্সি বান্ডেলের আকার ক্যাসান্দ্রায় 15MB এ সীমাবদ্ধ। যদি API প্রক্সি বান্ডেলের আকার 15 MB-এর বেশি হয়, তাহলে আপনি API প্রক্সি স্থাপন করার চেষ্টা করার সময় "ডেটাস্টোর অ্যাক্সেস করার সময় ত্রুটি" দেখতে পাবেন।

রোগ নির্ণয়

দ্রষ্টব্য: শুধুমাত্র এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে পারেন৷ আপনি যদি এজ পাবলিক ক্লাউডে থাকেন, Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।

  1. মেসেজ প্রসেসর লগগুলি পরীক্ষা করুন ( /opt/apigee/var/log/edge-message-processor/logs/system.log ) এবং নির্দিষ্ট API প্রক্সি স্থাপনের সময় কোন ত্রুটি ঘটেছে কিনা তা দেখুন।
  2. আপনি যদি নীচের চিত্রে দেখানো একটির মতো একটি ত্রুটি দেখতে পান, তাহলে স্থাপনার ত্রুটিটি কারণ API প্রক্সি বান্ডেলের আকার হল > 15 MB৷
    2016-03-23 18:42:18,517 main ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.fetchDynamicCompositeColumns() : Error while querying columnfamily : [api_proxy_revisions_r21, adevegowdat@v1-node-js] for rowkey:{}
    com.netflix.astyanax.connectionpool.exceptions.TransportException: TransportException: [host=None(0.0.0.0):0, latency=159(486), attempts=3]org.apache.thrift.transport.TTransportException: Frame size (20211500) larger than max length (16384000)!
            at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:197) ~[astyanax-thrift-1.56.43.jar:na]
            at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65) ~[astyanax-thrift-1.56.43.jar:na]
    ...<snipped>
            Caused by: org.apache.thrift.transport.TTransportException: Frame size (20211500) larger than max length (16384000)!
            at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137) ~[libthrift-0.9.1.jar:0.9.1]
            at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) ~[libthrift-0.9.1.jar:0.9.1]
            at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) ~[libthrift-0.9.1.jar:0.9.1]
    ...<snipped>

রেজোলিউশন

খুব বেশি রিসোর্স ফাইল থাকলে API প্রক্সি বান্ডেল বড় হবে। এই সমস্যাটি সমাধান করতে নিম্নলিখিত সমাধানগুলি ব্যবহার করুন:

সমাধান #1: সম্পদ ফাইলগুলিকে পরিবেশ বা সংস্থার স্তরে সরান

  1. নোডজেএস স্ক্রিপ্ট ফাইল এবং মডিউল, জাভাস্ক্রিপ্ট ফাইল, JAR ফাইলের মতো যেকোনও রিসোর্স ফাইলকে পরিবেশ বা সংস্থার স্তরে নিয়ে যান। রিসোর্স ফাইল সম্পর্কে আরও তথ্যের জন্য, এজ ডকুমেন্টেশন দেখুন।
  2. API প্রক্সি স্থাপন করুন এবং ত্রুটিটি চলে যায় কিনা তা দেখুন।

যদি সমস্যাটি থেকে যায় বা আপনি কোনো কারণে রিসোর্স ফাইলগুলিকে পরিবেশ বা সংস্থার স্তরে স্থানান্তর করতে না পারেন, তাহলে সমাধান #2 প্রয়োগ করুন।

সমাধান #2: Cassandra এ API প্রক্সি বান্ডেলের আকার বাড়ান

দ্রষ্টব্য: শুধুমাত্র এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে পারেন৷ আপনি যদি এজ পাবলিক ক্লাউডে থাকেন, Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।

ক্যাসান্ড্রা প্রপার্টি থ্রিফ্ট ফ্রেম ট্রান্সপোর্ট সাইজ বাড়ানোর জন্য এই পদক্ষেপগুলি অনুসরণ করুন, যা এজ-এ অনুমোদিত API প্রক্সি বান্ডেলের সর্বাধিক আকার নিয়ন্ত্রণ করে:

  1. নিম্নলিখিত ফাইলটি তৈরি করুন, যদি এটি বিদ্যমান না থাকে:
    /opt/apigee/customer/application/cassandra.properties
  2. ফাইলটিতে নিম্নলিখিত লাইনটি যোগ করুন, <size> কে বড় বান্ডেলের জন্য প্রয়োজনীয় আকারের সেটিং দিয়ে প্রতিস্থাপন করুন:
    conf_cassandra_thrift_framed_transport_size_in_mb=<size>
  3. ক্যাসান্দ্রা পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  4. ক্লাস্টারের সমস্ত ক্যাসান্ড্রা নোডগুলিতে # 1 থেকে # 3 পর্যন্ত পদক্ষেপগুলি পুনরাবৃত্তি করুন।

যদি সমস্যাটি থেকে যায়, Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।