আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
লক্ষণ
ক্লায়েন্ট অ্যাপ্লিকেশনটি এপিআই কলের প্রতিক্রিয়া হিসাবে 413 Request Entity Too Large HTTP স্ট্যাটাস কোড এবং protocol.http.TooBigBody এরর কোড পায়।
ত্রুটি বার্তা
ক্লায়েন্ট অ্যাপ্লিকেশনটি নিম্নলিখিত প্রতিক্রিয়া কোডটি পায়:
HTTP/1.1 413 Request Entity Too Large
এছাড়াও, আপনি নিম্নলিখিত ত্রুটি বার্তাটি দেখতে পারেন:
{
"fault":{
"faultstring":"Body buffer overflow",
"detail":{
"errorcode":"protocol.http.TooBigBody"
}
}
}সম্ভাব্য কারণসমূহ
ক্লায়েন্ট অ্যাপ্লিকেশন কর্তৃক HTTP অনুরোধের অংশ হিসেবে Apigee Edge-এ প্রেরিত পেলোড সাইজ যদি Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি হয়, তাহলে এই ত্রুটিটি ঘটে।
এই ত্রুটির সম্ভাব্য কারণগুলো নিচে দেওয়া হলো:
| কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
|---|---|---|
| অনুরোধ পেলোডের আকার অনুমোদিত সীমার চেয়ে বড় | ক্লায়েন্ট অ্যাপ্লিকেশন কর্তৃক Apigee Edge-এ পাঠানো HTTP অনুরোধের অংশ পেলোডের আকার Apigee Edge-এর অনুমোদিত সীমার চেয়ে বেশি। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
| ডিকম্প্রেশনের পর অনুরোধকৃত পেলোডের আকার অনুমোদিত সীমা অতিক্রম করেছে। | ক্লায়েন্ট অ্যাপ্লিকেশন কর্তৃক Apigee Edge-এ পাঠানো HTTP অনুরোধের অংশ হিসেবে সংকুচিত ফরম্যাটের পেলোডটি, Apigee Edge দ্বারা অসংকুচিত করার পর অনুমোদিত সীমার চেয়ে বড় হয়ে যায়। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:
এপিআই মনিটরিং
এপিআই মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- উপযুক্ত ভূমিকা সম্পন্ন একজন ব্যবহারকারী হিসেবে Apigee Edge UI-তে সাইন ইন করুন ।
যে প্রতিষ্ঠানে আপনি বিষয়টি তদন্ত করতে চান, সেখানে যান।

- Analyze > API Monitoring > Investigate পৃষ্ঠায় যান।
- সেই নির্দিষ্ট সময়সীমাটি নির্বাচন করুন যার মধ্যে আপনি ত্রুটিগুলো লক্ষ্য করেছেন।
- ফল্ট কোডটি আরও নির্দিষ্ট করতে আপনি প্রক্সি ফিল্টারটি নির্বাচন করতে পারেন।
- সময়ের সাপেক্ষে ফল্ট কোডের লেখচিত্র অঙ্কন করুন।
নীচে দেখানো অনুযায়ী, এমন একটি সেল নির্বাচন করুন যেটিতে ফল্ট কোড
protocol.http.TooBigBodyhttp.TooBigBody এবং স্ট্যাটাস কোড413রয়েছে:
ফল্ট কোড
protocol.http.TooBigBodyসম্পর্কিত তথ্য নিচে দেখানো হলো:
- 'View logs'-এ ক্লিক করুন এবং ব্যর্থ অনুরোধটির সারিটি প্রসারিত করুন। তারপর 'Logs ' উইন্ডো থেকে, নীচে দেখানো বিবরণগুলি নোট করুন:
অসংকুচিত
দৃশ্যকল্প #১: অনুরোধ পেলোড অসংকুচিত আকারে পাঠানো হয়েছে

লগস উইন্ডো থেকে নিম্নলিখিত বিবরণগুলো নোট করুন:
- স্ট্যাটাস কোড:
413 - ত্রুটির উৎস:
proxy - ত্রুটি কোড:
protocol.http.TooBigBody. - অনুরোধের দৈর্ঘ্য (বাইট):
15360440(~১৫ এমবি)
যদি ফল্ট সোর্সের মান '
proxyহয়, ফল্ট কোডের মান 'protocol.http.TooBigBody' হয় এবং রিকোয়েস্ট লেংথ ১০ মেগাবাইটের বেশি হয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্টের পাঠানো HTTP রিকোয়েস্টের পেলোড সাইজ Apigee-তে অনুমোদিত সীমার চেয়ে বেশি।সংকুচিত
দৃশ্যকল্প #২: অনুরোধ পেলোড সংকুচিত আকারে পাঠানো হয়েছে

লগস উইন্ডো থেকে নিম্নলিখিত বিবরণগুলো নোট করুন:
- স্ট্যাটাস কোড:
413 - ত্রুটির উৎস:
proxy - ত্রুটি কোড:
protocol.http.TooBigBody. - অনুরোধের দৈর্ঘ্য (বাইট):
15264(~১৫ কিলোবাইট)
যদি ফল্ট সোর্সের মান '
proxyহয়, ফল্ট কোডের মান 'protocol.http.TooBigBodyহয় এবং রিকোয়েস্ট লেংথ ১০ মেগাবাইটের কম হয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্টের পাঠানো HTTP রিকোয়েস্টের কম্প্রেসড ফরম্যাটের পেলোড সাইজ অনুমোদিত সীমার চেয়ে কম, কিন্তু Apigee দ্বারা আনকম্প্রেস করার পর পেলোড সাইজটি অনুমোদিত সীমার চেয়ে বেশি হয়ে যায়। - স্ট্যাটাস কোড:
ট্রেস
ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:
- ট্রেস সেশনটি সক্রিয় করুন এবং হয়
-
413 Request Entity Too Largeত্রুটিটি ঘটা পর্যন্ত অপেক্ষা করুন অথবা - আপনি যদি সমস্যাটি পুনরায় তৈরি করতে পারেন, তাহলে এপিআই কলটি করুন এবং
413 Request Entity Too Largeত্রুটিটি পুনরায় ঘটান।
-
নিশ্চিত করুন যে ‘Show all Flow Infos’ চালু আছে।

- ব্যর্থ হওয়া অনুরোধগুলোর মধ্যে একটি নির্বাচন করুন এবং ট্রেসটি পরীক্ষা করুন।
- "ক্লায়েন্টের কাছ থেকে অনুরোধ প্রাপ্ত" পর্যায়ে যান।
অসংকুচিত
দৃশ্যকল্প #১: অনুরোধ পেলোড অসংকুচিত আকারে পাঠানো হয়েছে

নিম্নলিখিত তথ্যগুলো লক্ষ্য করুন:
- কন্টেন্ট-এনকোডিং: উপস্থিত নেই
- বিষয়বস্তুর দৈর্ঘ্য:
15360204
সংকুচিত
দৃশ্যকল্প #২: অনুরোধ পেলোড সংকুচিত আকারে পাঠানো হয়েছে

নিম্নলিখিত তথ্যগুলো লক্ষ্য করুন:
- কন্টেন্ট-এনকোডিং:
gzip - বিষয়বস্তুর দৈর্ঘ্য:
14969 - কন্টেন্ট-টাইপ:
application/x-gzip
- ট্রেসের বিভিন্ন ধাপ অতিক্রম করে ত্রুটিটি কোথায় ঘটেছে তা খুঁজে বের করুন।
আপনি সাধারণত 'Request Receipted from Client' ধাপের পরের ফ্লোতে ত্রুটিটি দেখতে পাবেন, যেমনটি নিচে দেখানো হয়েছে:

- ট্রেস থেকে ত্রুটির মানটি লক্ষ্য করুন। উপরের নমুনা ট্রেসটি দেখাচ্ছে:
- ত্রুটি:
Body buffer overflow - error.class:
com.apigee.errors.http.user.RequestTooLarge
- ত্রুটি:
'Response Sent to Client'-এ যান এবং ট্রেস থেকে ত্রুটির মানগুলো নোট করুন। নীচের নমুনা ট্রেসটি দেখাচ্ছে:
- ত্রুটি:
413 Request Entity Too Large - ত্রুটির বিষয়বস্তু:
{"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}

- ত্রুটি:
- ট্রেসটিতে AX (অ্যানালিটিক্স ডেটা রেকর্ড করা) পর্যায়ে যান এবং সেটিতে ক্লিক করুন।
ফেজ ডিটেইলস সেকশনে, নিচে স্ক্রল করে ভ্যারিয়েবলস রিড পর্যন্ত যান।

- `client.received.content.length` ভেরিয়েবলটির মান নির্ণয় করুন, যা নির্দেশ করে:
- অনুরোধ পেলোডের প্রকৃত আকার যখন এটি অসংকুচিত বিন্যাসে পাঠানো হয় এবং
- যখন পেলোডটি সংকুচিত ফরম্যাটে পাঠানো হয়, তখন Apigee দ্বারা ডিকম্প্রেশনের পর রিকোয়েস্ট পেলোডের আকার। এই ক্ষেত্রে এটি সর্বদা অনুমোদিত সীমার (১০ এমবি) সমান হবে।
অসংকুচিত
দৃশ্যকল্প #১: অসংকুচিত আকারে পেলোড অনুরোধ করুন

client.received.content.length ভেরিয়েবল:
15360204সংকুচিত
দৃশ্যকল্প #২: সংকুচিত বিন্যাসে অনুরোধ পেলোড

client.received.content.length ভেরিয়েবল:
10489856 - নিম্নলিখিত সারণিতে `client.received.content.length` ভেরিয়েবলের মানের উপর ভিত্তি করে দুটি পরিস্থিতিতে Apigee কেন
413ত্রুটিটি ফেরত দেয় তা ব্যাখ্যা করা হয়েছে:দৃশ্যকল্প client.received.content.length এর মান ব্যর্থতার কারণ অসংকুচিত ফরম্যাটে পেলোড অনুরোধ করুন ~১৫ এমবি আকার ১০ মেগাবাইটের অনুমোদিত সীমার চেয়ে বেশি। সংকুচিত বিন্যাসে পেলোড অনুরোধ করুন ~১০ এমবি চাপ কমানোর সময় আকারের সীমা অতিক্রম করা হয়েছে
এনজিআইএনএক্স
NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP
413ত্রুটি সম্পর্কিত মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন। NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log- একটি নির্দিষ্ট সময়কালে কোনো
413ত্রুটি ছিল কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো অনুরোধ413ত্রুটির কারণে ব্যর্থ হচ্ছে কিনা তা অনুসন্ধান করে দেখুন। - যদি আপনি
protocol.http.TooBigBodyএর মানের সাথে মিলে যাওয়া X-Apigee-fault-code সহ কোনো413ত্রুটি খুঁজে পান, তাহলে X-Apigee-fault-source-এর মান নির্ধারণ করুন।অসংকুচিত
দৃশ্যকল্প #১ : অসংকুচিত বিন্যাসে অনুরোধ পেলোড আকার

NGINX অ্যাক্সেস লগ থেকে নেওয়া উপরের নমুনা এন্ট্রিটিতে X-Apigee-fault-code এবং X-Apigee-fault-source-এর জন্য নিম্নলিখিত মানগুলি রয়েছে:
প্রতিক্রিয়া হেডার মূল্য এক্স-এপিজি-ফল্ট-কোড protocol.http.TooBigBodyএক্স-এপিজি-ফল্ট-সোর্স policyঅনুরোধের দৈর্ঘ্য লক্ষ্য করুন:
15360440(১৪.৬ এমবি > অনুমোদিত সীমা)সংকুচিত
দৃশ্যকল্প #২ : সংকুচিত বিন্যাসে অনুরোধ পেলোড আকার

NGINX অ্যাক্সেস লগ থেকে নেওয়া উপরের নমুনা এন্ট্রিটিতে X-Apigee-fault-code এবং X-Apigee-fault-source-এর জন্য নিম্নলিখিত মানগুলি রয়েছে:
প্রতিক্রিয়া হেডার মূল্য এক্স-এপিজি-ফল্ট-কোড protocol.http.TooBigBodyএক্স-এপিজি-ফল্ট-সোর্স policyঅনুরোধের দৈর্ঘ্য লক্ষ্য করুন:
15264(১৪.৯ কেবি < অনুমোদিত সীমা)এই পরিস্থিতিতে, অনুরোধের দৈর্ঘ্য অনুমোদিত সীমার চেয়ে কম হওয়া সত্ত্বেও Apigee Edge
413ফেরত দেয়, কারণ অনুরোধটি হয়তো সংকুচিত আকারে পাঠানো হয়েছিল এবং Apigee Edge দ্বারা ডিকম্প্রেশনের পর পেলোডের আকার সীমা অতিক্রম করে যায়।
কারণ: অনুরোধ পেলোডের আকার অনুমোদিত সীমার চেয়ে বেশি
রোগ নির্ণয়
- সিনারিও #১ (আনকম্প্রেসড)-এর সাধারণ ডায়াগনোসিস ধাপে ব্যাখ্যা করা পদ্ধতি অনুসারে, এপিআই মনিটরিং, ট্রেস টুল বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে পরিলক্ষিত ত্রুটির জন্য ফল্ট কোড , ফল্ট সোর্স এবং রিকোয়েস্ট পেলোড সাইজ নির্ধারণ করুন।
- যদি ফল্ট সোর্সের মান '
policyবাproxyহয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা Apigee-তে পাঠানো রিকোয়েস্ট পেলোড সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি। - ধাপ #১ থেকে নির্ধারিত রিকোয়েস্ট পেলোড সাইজ যাচাই করুন।
- যদি পেলোড সাইজ অনুমোদিত সীমা ১০ মেগাবাইটের বেশি হয়, তাহলে সেটাই ত্রুটির কারণ।
- যদি পেলোডের আকার অনুমোদিত সীমা ১০ মেগাবাইটের কম হয়, তাহলে হতে পারে যে অনুরোধের পেলোডটি সংকুচিত (compressed) আকারে পাঠানো হচ্ছে। 'কারণ: ডিকম্প্রেশনের পর অনুরোধের পেলোডের আকার অনুমোদিত সীমা অতিক্রম করেছে' অংশে যান।
- নিম্নলিখিত ধাপগুলি অনুসরণ করে প্রকৃত অনুরোধটি পরীক্ষা করার মাধ্যমে আপনি যাচাই করতে পারেন যে অনুরোধের পেলোড সাইজ অনুমোদিত সীমা ১০ মেগাবাইটের চেয়ে সত্যিই বেশি কিনা:
- ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে না থাকে, তাহলে রেজোলিউশন- এ যান।
- ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
- অনুরোধে প্রেরিত পেলোডের আকার যাচাই করুন।
- যদি আপনি Apigee Edge-এ পেলোডের আকার অনুমোদিত সীমার চেয়ে বেশি দেখতে পান, তাহলে সেটাই সমস্যার কারণ।
নমুনা অনুরোধ:
curl http://<hostalias>/testtoobigbody -k -X POST -F file=@test15mbfile -v
উপরের ক্ষেত্রে,
test15mbfileফাইলটির সাইজ প্রায় ১৫ মেগাবাইট। আপনি যদি অন্য কোনো ক্লায়েন্ট ব্যবহার করেন, তাহলে পাঠানো পেলোডের সাইজ জানতে ক্লায়েন্ট লগগুলো দেখুন।
সমাধান
সমাধানে যান।
কারণ: ডিকম্প্রেশনের পর অনুরোধকৃত পেলোড সাইজ অনুমোদিত সীমা অতিক্রম করেছে
যদি রিকোয়েস্ট পেলোডটি কম্প্রেসড ফরম্যাটে পাঠানো হয় এবং রিকোয়েস্ট হেডার Content-Encoding gzip , Apigee রিকোয়েস্ট পেলোডটিকে ডিকম্প্রেস করে। ডিকম্প্রেশন প্রক্রিয়ার সময়, যদি Apigee পেলোডের সাইজ অনুমোদিত সীমা ১০ মেগাবাইটের বেশি পায়, তাহলে এটি পরবর্তী ডিকম্প্রেশন বন্ধ করে দেয় এবং সাথে সাথে protocol.http.TooBigBody এরর কোডসহ 413 Request Entity Too Large মেসেজটি ফেরত পাঠায়।
রোগ নির্ণয়
- ফল্ট কোড ও ফল্ট সোর্স নির্ণয় করুন। এবং সিনারিও #২ (সংকুচিত) এর সাধারণ রোগ নির্ণয়ের ধাপগুলিতে ব্যাখ্যা করা অনুযায়ী এপিআই মনিটরিং, ট্রেস টুল, বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে পর্যবেক্ষণ করা ত্রুটির জন্য অনুরোধ পেলোড আকার ।
- যদি ফল্ট সোর্সের মান '
policyবাproxyহয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা Apigee-তে পাঠানো রিকোয়েস্ট পেলোড সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি। - ধাপ ১ থেকে নির্ধারিত রিকোয়েস্ট পেলোড সাইজ যাচাই করুন।
- যদি পেলোড সাইজ অনুমোদিত সীমা ১০ মেগাবাইটের বেশি হয়, তাহলে সেটাই ত্রুটির কারণ।
- যদি পেলোডের আকার অনুমোদিত সীমা ১০ মেগাবাইটের কম হয়, তাহলে হতে পারে যে রিকোয়েস্ট পেলোডটি কম্প্রেসড ফরম্যাটে পাঠানো হয়েছে। এই ক্ষেত্রে, কম্প্রেসড রিকোয়েস্ট পেলোডটির আনকম্প্রেসড আকার যাচাই করুন।
- নিম্নলিখিত পদ্ধতিগুলোর মধ্যে যেকোনো একটি ব্যবহার করে আপনি যাচাই করতে পারেন যে ক্লায়েন্টের অনুরোধটি সংকুচিত ফরম্যাটে পাঠানো হয়েছিল কিনা এবং অসংকুচিত আকারটি অনুমোদিত সীমার চেয়ে বেশি ছিল কিনা:
ট্রেস
ট্রেস টুল ব্যবহার করে যাচাই করতে:
- যদি আপনি ব্যর্থ হওয়া অনুরোধটির ট্রেস সংগ্রহ করে থাকেন, তাহলে ট্রেস এবং অংশে বিস্তারিত ধাপগুলো অনুসরণ করুন।
- client.received.content.length ভেরিয়েবলের মান নির্ধারণ করুন।
- ক্লায়েন্টের অনুরোধে Content-Encoding:
gzipহেডারটি ছিল কিনা তা যাচাই করুন।
- যদি client.received.content.length ভেরিয়েবলের মান অনুমোদিত সীমা ১০ মেগাবাইটের বেশি হয় এবং রিকোয়েস্ট হেডারে Content-Encoding:
gzipথাকে, তাহলে সেটাই এই ত্রুটির কারণ।
প্রকৃত অনুরোধ
প্রকৃত অনুরোধ ব্যবহার করে যাচাই করতে:
- ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে না থাকে, তাহলে রেজোলিউশন- এ যান।
- ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
- অনুরোধে পাঠানো
Content-Encodingহেডারের সাথে প্রেরিত পেলোডের আকার যাচাই করুন। Apigee Edge-এ পেলোডের অসংকুচিত আকার অনুমোদিত সীমার চেয়ে বেশি কিনা তা পরীক্ষা করে দেখুন।
নমুনা অনুরোধ:
curl https://<hostalias>/testtoobigbody -k -X POST -F file=@test15mbfile.gz -H "Content-Encoding: gzip" -v
উপরের ক্ষেত্রে,
test15mbfile.gzফাইলটির সাইজ নির্ধারিত সীমার চেয়ে কম; তবে, অসংকুচিতtest15mbfileফাইলটির সাইজ প্রায় ১৫ মেগাবাইট এবং এরContent-Encodingহেডারটি হলোgzip।আপনি যদি অন্য কোনো ক্লায়েন্ট ব্যবহার করেন, তাহলে প্রেরিত পেলোডের আকার এবং
Content-Encodingহেডারটিgzipএ সেট করা আছে কিনা তা জানতে ক্লায়েন্ট লগগুলো দেখুন।
- অনুরোধে পাঠানো
মেসেজ প্রসেসর লগ
মেসেজ প্রসেসর লগ ব্যবহার করে যাচাই করতে:
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP
413ত্রুটি সম্পর্কিত মূল তথ্য নির্ধারণ করতে মেসেজ প্রসেসর লগ ব্যবহার করতে পারেন। মেসেজ প্রসেসর লগগুলো পরীক্ষা করুন:
/opt/apigee/var/log/edge-message-processor/logs/system.logএকটি নির্দিষ্ট সময়কালে কোনো
413ত্রুটি ছিল কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো অনুরোধ413ত্রুটির কারণে ব্যর্থ হচ্ছে কিনা তা অনুসন্ধান করে দেখুন।আপনি নিম্নলিখিত সার্চ স্ট্রিংগুলো ব্যবহার করতে পারেন:
grep -ri "chunkCount"
grep -ri "RequestTooLarge"
- আপনি
system.logএ নিম্নলিখিতগুলির মতো লাইনগুলি দেখতে পাবেন (আপনার ক্ষেত্রেTotalReadএবংchunkCountভিন্ন হতে পারে):2021-07-06 13:29:57,544 NIOThread@1 ERROR HTTP.SERVICE - TrackingInputChannel.checkMessageBodyTooLarge() : Message is too large. TotalRead 10489856 chunkCount 2570 2021-07-06 13:29:57,545 NIOThread@1 INFO HTTP.SERVICE - ExceptionHandler.handleException() : Exception trace: com.apigee.errors.http.user.RequestTooLarge : Body buffer overflow
- ডিকম্প্রেশন প্রক্রিয়া চলাকালীন, মেসেজ প্রসেসর যখনই নির্ধারণ করে যে মোট পঠিত বাইটের পরিমাণ ১০ মেগাবাইটের বেশি, তখনই এটি থেমে যায় এবং নিম্নলিখিত লাইনটি প্রিন্ট করে:
Message is too large. TotalRead 10489856 chunkCount 2570
এর মানে হলো রিকোয়েস্ট পেলোড সাইজ ১০ মেগাবাইটের বেশি এবং যখন সাইজ ১০ মেগাবাইটের সীমা অতিক্রম করতে শুরু করে, তখন Apigee
protocol.http.TooBigBodyফল্ট কোড সহRequestTooLargeএররটি দেখায়।
- যদি আপনি ব্যর্থ হওয়া অনুরোধটির ট্রেস সংগ্রহ করে থাকেন, তাহলে ট্রেস এবং অংশে বিস্তারিত ধাপগুলো অনুসরণ করুন।
সমাধান
নির্দিষ্ট আকার
বিকল্প #১ [সুপারিশকৃত]: ক্লায়েন্ট অ্যাপ্লিকেশনটিকে এমনভাবে ঠিক করুন যাতে এটি অনুমোদিত সীমার চেয়ে বড় পেলোড সাইজ না পাঠায়।
- Limits- এ সংজ্ঞায়িত অনুমোদিত সীমার চেয়ে নির্দিষ্ট ক্লায়েন্টটির বেশি আকারের অনুরোধ / পেলোড পাঠানোর কারণ বিশ্লেষণ করুন।
যদি এটি অনাকাঙ্ক্ষিত হয়, তবে আপনার ক্লায়েন্ট অ্যাপ্লিকেশনটি এমনভাবে পরিবর্তন করুন যাতে এটি অনুমোদিত সীমার চেয়ে কম আকারের অনুরোধ / পেলোড পাঠায়।
উপরে আলোচিত উদাহরণে, আপনি নিচে দেখানো অনুযায়ী
test5mbfile(আকার ৫ এমবি) পেলোড হিসেবে পাস করে সমস্যাটি সমাধান করতে পারেন:curl https://<host>/testtoobigbody -k -X POST -F file=@test5mbfile -v
- যদি আপনি অনুমোদিত সীমার চেয়ে বেশি অনুরোধ/পেলোড পাঠাতে চান, তাহলে পরবর্তী বিকল্পগুলিতে যান।
স্বাক্ষরিত URL প্যাটার্ন
বিকল্প #২ [সুপারিশকৃত]: Apigee JavaCallout-এর মধ্যে সাইনড ইউআরএল প্যাটার্ন ব্যবহার করুন
১০ মেগাবাইটের চেয়ে বড় পেলোডের জন্য, Apigee একটি Apigee JavaCallout-এর মধ্যে signed URLs প্যাটার্ন ব্যবহার করার পরামর্শ দেয়, যা GitHub-এ থাকা Edge Callout: Signed URL Generator উদাহরণটিতে দেখানো হয়েছে।
স্ট্রিমিং
বিকল্প #৩ : স্ট্রিমিং ব্যবহার করুন
আপনার এপিআই প্রক্সিকে যদি খুব বড় আকারের অনুরোধ এবং/অথবা প্রতিক্রিয়া সামলাতে হয়, তাহলে আপনি Apigee-তে স্ট্রিমিং চালু করতে পারেন।
সিডব্লিউসি
বিকল্প #৪ : বাফার সীমা বাড়াতে CwC প্রপার্টি ব্যবহার করুন
এই বিকল্পটি কেবল তখনই ব্যবহার করা উচিত যখন আপনি প্রস্তাবিত কোনো বিকল্পই ব্যবহার করতে পারবেন না, কারণ ডিফল্ট আকার বাড়ানো হলে পারফরম্যান্সে সমস্যা দেখা দিতে পারে।
Apigee একটি CwC প্রপার্টি প্রদান করে যা রিকোয়েস্ট এবং রেসপন্স পেলোড সাইজের সীমা বাড়াতে সাহায্য করে। বিস্তারিত জানতে, রাউটার বা মেসেজ প্রসেসরে মেসেজ সাইজের সীমা নির্ধারণ দেখুন।
সীমা
Apigee আশা করে যে ক্লায়েন্ট অ্যাপ্লিকেশন এবং ব্যাকএন্ড সার্ভার, Apigee Edge Limits- এ Request/response size জন্য নথিভুক্ত অনুমোদিত সীমার চেয়ে বড় পেলোড সাইজ পাঠাবে না।
- আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে অনুরোধ এবং প্রতিক্রিয়া পেলোড আকারের সর্বোচ্চ সীমা Apigee Edge Limits- এ
Request/response sizeজন্য নথিভুক্ত করা অনুযায়ী হবে। - আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে আপনি হয়তো রিকোয়েস্ট এবং রেসপন্স পেলোড সাইজের ডিফল্ট সীমা পরিবর্তন করে থাকতে পারেন (যদিও এটি একটি অনুচিত কাজ)। ‘বর্তমান সীমা কীভাবে পরীক্ষা করবেন’ অংশে দেওয়া নির্দেশাবলী অনুসরণ করে আপনি সর্বোচ্চ রিকোয়েস্ট পেলোড সাইজের সীমা নির্ধারণ করতে পারেন।
বর্তমান সীমা কীভাবে পরীক্ষা করবেন?
এই অংশে ব্যাখ্যা করা হয়েছে কিভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরগুলিতে HTTPRequest.body.buffer.limit প্রপার্টিটি একটি নতুন মান দ্বারা আপডেট করা হয়েছে।
- মেসেজ প্রসেসর মেশিনে,
/opt/apigee/edge-message- processor/confডিরেক্টরিতেHTTPRequest.body.buffer.limitপ্রপার্টিটি খুঁজুন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে কী মান সেট করা হয়েছে তা পরীক্ষা করে দেখুন:grep -ri "HTTPRequest.body.buffer.limit" /opt/apigee/edge-message-processor/conf
- উপরোক্ত কমান্ড থেকে প্রাপ্ত নমুনা ফলাফলটি নিম্নরূপ:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPRequest.body.buffer.limit=10m
উপরের উদাহরণ আউটপুটে লক্ষ্য করুন যে,
http.propertiesফাইলেHTTPRequest.body.buffer.limitপ্রপার্টিটির মান10mসেট করা হয়েছে।এর থেকে বোঝা যায় যে, Apigee for Private Cloud-এ কনফিগার করা রিকোয়েস্ট পেলোড সাইজের সীমা হলো ১০ মেগাবাইট।
আপনার যদি এখনও Apigee Support-এর কাছ থেকে কোনো সাহায্যের প্রয়োজন হয়, তাহলে Must gather diagnostic information- এ যান।
রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে
নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন, এবং তারপর Apigee Edge Support-এর সাথে যোগাযোগ করুন:
আপনি যদি পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- সংস্থার নাম
- পরিবেশের নাম
- এপিআই প্রক্সি নাম
-
413ত্রুটিটি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণ কার্ল কমান্ড। - এপিআই অনুরোধগুলির ট্রেস ফাইল
আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- ব্যর্থ অনুরোধগুলির জন্য সম্পূর্ণ ত্রুটি বার্তা পরিলক্ষিত হয়েছে।
- সংস্থার নাম
- পরিবেশের নাম
- এপিআই প্রক্সি বান্ডেল
- ব্যর্থ হওয়া এপিআই অনুরোধগুলির ট্রেস ফাইল
-
413ত্রুটিটি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণ কার্ল কমান্ড। NGINX অ্যাক্সেস লগ
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_logযেখানে: ORG , ENV এবং PORT# প্রকৃত মান দ্বারা প্রতিস্থাপিত হয়।
- মেসেজ প্রসেসর সিস্টেম লগ
/opt/apigee/var/log/edge-message-processor/logs/system.log