আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
লক্ষণ
Edge UI অথবা Edge ম্যানেজমেন্ট API কলের মাধ্যমে 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
সম্ভাব্য কারণসমূহ
এই সমস্যার সাধারণ কারণগুলো হলো:
কারণ বিস্তারিত জন্য মেসেজ প্রসেসর এবং ক্যাসান্ড্রার মধ্যে নেটওয়ার্ক সংযোগের সমস্যা নেটওয়ার্ক সংযোগ সমস্যা অথবা ফায়ারওয়াল নিয়মের কারণে মেসেজ প্রসেসর এবং ক্যাসান্ড্রার মধ্যে যোগাযোগ ব্যর্থ হয়েছে। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা ক্যাসান্ড্রা রিস্টার্টের কারণে ডেপ্লয়মেন্ট ত্রুটি নিয়মিত রক্ষণাবেক্ষণের অংশ হিসেবে রিস্টার্ট করার কারণে ক্যাসান্ড্রা নোড(গুলো) অনুপলব্ধ ছিল। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা ক্যাসান্ড্রাতে রিড রিকোয়েস্ট লেটেন্সিতে আকস্মিক বৃদ্ধি যদি ক্যাসান্ড্রা নোডটি একই সাথে বিপুল সংখ্যক রিড অপারেশন সম্পাদন করে, তাহলে রিড রিকোয়েস্ট ল্যাটেন্সি হঠাৎ বেড়ে যাওয়ার কারণে এটি ধীরগতিতে সাড়া দিতে পারে। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা ১৫ মেগাবাইটের চেয়ে বড় এপিআই প্রক্সি বান্ডেল ক্যাসান্ড্রাকে এমনভাবে কনফিগার করা হয়েছে যাতে ১৫ মেগাবাইটের চেয়ে বড় এপিআই প্রক্সি বান্ডেলকে অনুমতি না দেওয়া হয়। এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা মেসেজ প্রসেসর এবং ক্যাসান্ড্রার মধ্যে নেটওয়ার্ক সংযোগের সমস্যা
রোগ নির্ণয়
দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
- এপিআই প্রক্সিটি আনডিপ্লয় এবং রিডিপ্লয় করুন। যদি মেসেজ প্রসেসর এবং ক্যাসান্ড্রার মধ্যে সাময়িক কোনো সংযোগ সমস্যা হয়ে থাকে, তাহলে ত্রুটিটি দূর হয়ে যেতে পারে।
সতর্কীকরণ: প্রোডাকশন এনভায়রনমেন্টে ত্রুটি দেখা গেলে আনডিপ্লয় করবেন না।
- যদি সমস্যাটি অব্যাহত থাকে, তাহলে ডেপ্লয়মেন্ট স্ট্যাটাস পরীক্ষা করতে এবং কোনো কম্পোনেন্টে কোনো ত্রুটি আছে কিনা তা যাচাই করতে নিচের ম্যানেজমেন্ট এপি কলটি চালান:
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" }
- যে মেসেজ প্রসেসরগুলিতে ডেপ্লয়মেন্ট ত্রুটি দেখাচ্ছে, সেগুলি পুনরায় চালু করুন। যদি কোনো অস্থায়ী নেটওয়ার্ক সমস্যা হয়ে থাকে, তাহলে ত্রুটিটি চলে যাবে:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- রিস্টার্ট করা মেসেজ প্রসেসরটিতে ডেপ্লয়মেন্ট সফল হয় কিনা তা দেখতে ধাপ #২ পুনরাবৃত্তি করুন। যদি কোনো ত্রুটি না পাওয়া যায়, তাহলে বুঝতে হবে সমস্যাটির সমাধান হয়ে গেছে।
- মেসেজ প্রসেসরটি প্রতিটি ক্যাসান্ড্রা নোডের সাথে ৯০৪২ এবং ৯১৬০ পোর্টে সংযোগ করতে সক্ষম কিনা তা পরীক্ষা করুন:
- যদি টেলনেট উপলব্ধ থাকে, তাহলে টেলনেট ব্যবহার করুন:
telnet <Cassandra_IP> 9042 telnet <Cassandra_IP> 9160
- যদি টেলনেট উপলব্ধ না থাকে, তাহলে নিম্নলিখিতভাবে নেটক্যাট ব্যবহার করে সংযোগ পরীক্ষা করুন:
nc -vz <Cassandra_IP> 9042 nc -vz <Cassandra_IP> 9160
- যদি আপনি "Connection Refused" বা "Connection timed out" প্রতিক্রিয়া পান, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমের সাথে যোগাযোগ করুন।
- যদি টেলনেট উপলব্ধ থাকে, তাহলে টেলনেট ব্যবহার করুন:
- যদি সমস্যাটি অব্যাহত থাকে, তাহলে পরীক্ষা করে দেখুন প্রতিটি ক্যাসান্ড্রা নোড 9042 এবং 9160 পোর্টে লিসেন করছে কিনা:
netstat -an | grep LISTEN | grep 9042 netstat -an | grep LISTEN | grep 9160
- যদি ক্যাসান্ড্রা নোডগুলি 9042 বা 9160 পোর্টে লিসেন না করে, তাহলে নির্দিষ্ট ক্যাসান্ড্রা নোড(গুলি) রিস্টার্ট করুন:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- যদি সমস্যাটি অব্যাহত থাকে, তাহলে আপনার নেটওয়ার্ক অপারেশন টিমের সাথে যোগাযোগ করুন।
- এপিআই প্রক্সিটি আনডিপ্লয় এবং রিডিপ্লয় করুন। যদি মেসেজ প্রসেসর এবং ক্যাসান্ড্রার মধ্যে সাময়িক কোনো সংযোগ সমস্যা হয়ে থাকে, তাহলে ত্রুটিটি দূর হয়ে যেতে পারে।
সমাধান
আপনার নেটওয়ার্ক অপারেশন টিমের সাথে কাজ করে মেসেজ প্রসেসর এবং ক্যাসান্ড্রার মধ্যেকার নেটওয়ার্ক সংযোগের সমস্যাটি সমাধান করুন।
ক্যাসান্ড্রা রিস্টার্টের কারণে ডেপ্লয়মেন্ট ত্রুটি
নিয়মিত রক্ষণাবেক্ষণের অংশ হিসেবে ক্যাসান্ড্রা নোডগুলো সাধারণত পর্যায়ক্রমে রিস্টার্ট করা হয়। ক্যাসান্ড্রা রক্ষণাবেক্ষণের কাজ চলাকালীন যদি এপিআই প্রক্সি ডেপ্লয় করা হয়, তাহলে ক্যাসান্ড্রা ডেটাস্টোরে অ্যাক্সেস না থাকার কারণে ডেপ্লয়মেন্টগুলো ব্যর্থ হয়।
দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
রোগ নির্ণয়
- ডেপ্লয়মেন্টের সময় ক্যাসান্ড্রা নোডগুলি রিস্টার্ট করা হয়েছিল কিনা তা পরীক্ষা করুন। এটি করার জন্য, ক্যাসান্ড্রা লগ অথবা ক্যাসান্ড্রা নোডের সর্বশেষ স্টার্টআপ টাইম লগগুলি দেখুন:
grep"shutdown"/opt/apigee/var/log/apigee-cassandra/system.log
সমাধান
- ক্যাসান্ড্রা চালু আছে কিনা তা নিশ্চিত করুন।
- মেসেজ প্রসেসরগুলো ৯০৪২ এবং ৯১৬০ পোর্টে ক্যাসান্ড্রা ডেটাস্টোরের সাথে সংযোগ করতে পারছে কিনা তা পরীক্ষা করুন।
ক্যাসান্ড্রাতে রিড রিকোয়েস্ট লেটেন্সিতে আকস্মিক বৃদ্ধি
ক্যাসান্ড্রাতে উচ্চ সংখ্যক রিড নির্ভর করে স্বতন্ত্র ব্যবহারের ক্ষেত্র এবং সেইসব প্রক্সির ট্র্যাফিক প্যাটার্নের উপর, যেগুলিতে এমন পলিসি থাকে যেগুলির জন্য ক্যাসান্ড্রা থেকে রিড অ্যাক্সেসের প্রয়োজন হয়।
উদাহরণস্বরূপ, যদি OAuth পলিসির জন্য refresh_token গ্রান্ট টাইপে একটি GET কল করা হয়, এবং রিফ্রেশ টোকেনটি অনেকগুলো অ্যাক্সেস টোকেনের সাথে যুক্ত থাকে, তাহলে এর ফলে ক্যাসান্ড্রা থেকে প্রচুর পরিমাণে রিড হতে পারে। এর কারণে ক্যাসান্ড্রাতে রিড রিকোয়েস্ট ল্যাটেন্সি বেড়ে যেতে পারে।
রোগ নির্ণয়
দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

- আপনি যদি বিটা মনিটরিং ড্যাশবোর্ড ইনস্টল করে থাকেন, তাহলে ক্যাসান্ড্রা ড্যাশবোর্ডে যান এবং সমস্যাকালীন সময়ের জন্য 'রিড রিকোয়েস্টস' চার্টটি পর্যালোচনা করুন। এছাড়াও 'রিড রিকোয়েস্ট ল্যাটেন্সি' চার্টটিও পর্যালোচনা করুন।
- রিড রিকোয়েস্ট এবং রিড ল্যাটেন্সি পরীক্ষা করার জন্য বিকল্প টুল হলো
nodetool cfstatsকমান্ড। এই কমান্ডটি কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আরও বিস্তারিত জানতে ক্যাসান্ড্রা ডকুমেন্টেশন দেখুন।
সমাধান
দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
- ক্যাসান্ড্রার পারফরম্যান্স স্বাভাবিক হয়ে গেলে ডেপ্লয়মেন্টটি আবার চেষ্টা করুন। সম্পূর্ণ ক্যাসান্ড্রা রিংটি স্বাভাবিক আছে কিনা তা নিশ্চিত করুন।
- (ঐচ্ছিক) সংযোগ স্থাপিত হয়েছে কিনা তা নিশ্চিত করতে মেসেজ প্রসেসরগুলো রোলিং রিস্টার্ট করুন।
- দীর্ঘমেয়াদী সমাধানের জন্য, এপিআই ট্র্যাফিকের সেই ধরণগুলো পর্যালোচনা করুন যা ক্যাসান্ড্রা ডেটাস্টোরে উচ্চ রিড অপারেশনের কারণ হতে পারে। এই সমস্যাটির সমাধানে সহায়তার জন্য Apigee Edge Support-এর সাথে যোগাযোগ করুন।
- যদি বিদ্যমান ক্যাসান্ড্রা নোডগুলো আগত ট্র্যাফিক সামলাতে পর্যাপ্ত না হয়, তাহলে প্রয়োজন অনুযায়ী হার্ডওয়্যারের ক্ষমতা অথবা ক্যাসান্ড্রা ডেটাস্টোর নোডের সংখ্যা বৃদ্ধি করুন।
১৫ মেগাবাইটের চেয়ে বড় এপিআই প্রক্সি বান্ডেল
ক্যাসান্ড্রাতে এপিআই প্রক্সি বান্ডেলের আকার ১৫ মেগাবাইটে সীমাবদ্ধ। যদি এপিআই প্রক্সি বান্ডেলের আকার ১৫ মেগাবাইটের বেশি হয়, তাহলে এপিআই প্রক্সি ডিপ্লয় করার চেষ্টা করার সময় আপনি "ডেটাস্টোর অ্যাক্সেস করার সময় ত্রুটি" (Error while accessing datastore) দেখতে পাবেন।
রোগ নির্ণয়
দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
- মেসেজ প্রসেসর লগ (
/opt/apigee/var/log/edge-message-processor/logs/system.log) পরীক্ষা করে দেখুন নির্দিষ্ট এপিআই প্রক্সিটি ডেপ্লয়মেন্টের সময় কোনো ত্রুটি ঘটেছে কিনা। - যদি আপনি নিচের চিত্রে দেখানো ত্রুটির মতো কোনো ত্রুটি দেখতে পান, তাহলে এই ডিপ্লয়মেন্ট ত্রুটির কারণ হলো এপিআই প্রক্সি বান্ডেলের আকার ১৫ মেগাবাইটের বেশি।
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>
সমাধান
রিসোর্স ফাইলের সংখ্যা খুব বেশি হলে এপিআই প্রক্সি বান্ডেলটি বড় হয়ে যাবে। এই সমস্যা সমাধানের জন্য নিম্নলিখিত উপায়গুলো ব্যবহার করুন:
সমাধান #১: রিসোর্স ফাইলগুলোকে এনভায়রনমেন্ট বা অর্গানাইজেশন লেভেলে স্থানান্তর করুন।
- যেকোনো রিসোর্স ফাইল, যেমন NodeJS স্ক্রিপ্ট ফাইল ও মডিউল, জাভাস্ক্রিপ্ট ফাইল, JAR ফাইল, এনভায়রনমেন্ট বা অর্গানাইজেশন লেভেলে সরিয়ে নিন। রিসোর্স ফাইল সম্পর্কে আরও তথ্যের জন্য Edge ডকুমেন্টেশন দেখুন।
- এপিআই প্রক্সিটি স্থাপন করুন এবং দেখুন ত্রুটিটি দূর হয় কিনা।
যদি সমস্যাটি অব্যাহত থাকে অথবা কোনো কারণে আপনি রিসোর্স ফাইলগুলো এনভায়রনমেন্ট বা অর্গানাইজেশন লেভেলে সরাতে না পারেন, তাহলে সমাধান #২ প্রয়োগ করুন।
সমাধান #২: ক্যাসান্ড্রাতে এপিআই প্রক্সি বান্ডেল সাইজ বৃদ্ধি করুন
দ্রষ্টব্য: শুধুমাত্র Edge Private Cloud ব্যবহারকারীরাই নিম্নলিখিত ধাপগুলি অনুসরণ করতে পারবেন। আপনি যদি Edge Public Cloud ব্যবহার করেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
Edge-এ অনুমোদিত API প্রক্সি বান্ডেলের সর্বোচ্চ আকার নিয়ন্ত্রণকারী Cassandra প্রপার্টি thrift frame transport size- এর আকার বাড়াতে এই ধাপগুলো অনুসরণ করুন:
- নিম্নলিখিত ফাইলটি তৈরি করুন, যদি এটি বিদ্যমান না থাকে:
/opt/apigee/customer/application/cassandra.properties
- ফাইলটিতে নিম্নলিখিত লাইনটি যোগ করুন, এবং <size> এর জায়গায় বড় বান্ডেলের জন্য প্রয়োজনীয় সাইজ সেটিংটি বসান:
conf_cassandra_thrift_framed_transport_size_in_mb=<size>
- ক্যাসান্ড্রা পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- ক্লাস্টারের সমস্ত ক্যাসান্ড্রা নোডে ১ থেকে ৩ নম্বর ধাপগুলো পুনরাবৃত্তি করুন।
যদি সমস্যাটি অব্যাহত থাকে, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।