আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
উপসর্গ
ক্লায়েন্ট অ্যাপ্লিকেশনটি API কলগুলির প্রতিক্রিয়া হিসাবে ত্রুটি কোড protocol.http.TooBigBody
সহ 502 Bad Gateway
একটি HTTP স্ট্যাটাস কোড পায়।http.TooBigBody।
ত্রুটি বার্তা
ক্লায়েন্ট অ্যাপ্লিকেশন নিম্নলিখিত প্রতিক্রিয়া কোড পায়:
HTTP/1.1 502 Bad Gateway
উপরন্তু, আপনি নিম্নলিখিত ত্রুটি বার্তা পর্যবেক্ষণ করতে পারেন:
{ "fault":{ "faultstring":"Body buffer overflow", "detail":{ "errorcode":"protocol.http.TooBigBody" } } }
সম্ভাব্য কারণ
HTTP প্রতিক্রিয়ার অংশ হিসাবে Apigee Edge-এ টার্গেট/ব্যাকএন্ড সার্ভার দ্বারা পাঠানো পেলোডের আকার Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি হলে এই ত্রুটি ঘটে।
এখানে ত্রুটির সম্ভাব্য কারণ রয়েছে:
কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
---|---|---|
প্রতিক্রিয়া পেলোডের আকার অনুমোদিত সীমার চেয়ে বেশি | Apigee-এ HTTP প্রতিক্রিয়ার অংশ হিসাবে টার্গেট/ব্যাকএন্ড সার্ভার দ্বারা পাঠানো পেলোডের আকার Apigee-তে অনুমোদিত সীমার চেয়ে বেশি। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
প্রতিক্রিয়া পেলোডের আকার ডিকম্প্রেশনের পরে অনুমোদিত সীমা ছাড়িয়ে গেছে | Apigee-এ HTTP প্রতিক্রিয়ার অংশ হিসাবে লক্ষ্য/ব্যাকএন্ড সার্ভার দ্বারা সংকুচিত বিন্যাসে পাঠানো পেলোডের আকার Apigee দ্বারা ডিকম্প্রেস করার সময় অনুমোদিত সীমার চেয়ে বেশি। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলির মধ্যে একটি ব্যবহার করুন:
API মনিটরিং
API মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- Apigee Edge UI এ একটি উপযুক্ত ভূমিকা সহ ব্যবহারকারী হিসাবে সাইন ইন করুন৷
আপনি যে সংস্থায় সমস্যাটি তদন্ত করতে চান সেখানে যান।
- এনালাইজ > API মনিটরিং > ইনভেস্টিগেট পেজে নেভিগেট করুন।
- নির্দিষ্ট সময়সীমা নির্বাচন করুন যেখানে আপনি ত্রুটিগুলি পর্যবেক্ষণ করেছেন।
- আপনি ফল্ট কোড সংকুচিত করতে প্রক্সি ফিল্টার নির্বাচন করতে পারেন।
- সময়ের বিরুদ্ধে প্লট ফল্ট কোড ।
ফল্ট কোড
protocol.http.TooBigBody
আছে এমন একটি সেল নির্বাচন করুন। http.TooBigBody নীচে দেখানো হয়েছে:আপনি ফল্ট কোড
protocol.http.TooBigBody
সম্পর্কে তথ্য দেখতে পাবেন। http.TooBigBody নীচে দেখানো হয়েছে:লগ দেখুন ক্লিক করুন এবং ব্যর্থ অনুরোধের জন্য সারি প্রসারিত করুন।
- লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
- স্ট্যাটাস কোড:
502
- ফল্ট উত্স:
target
- ফল্ট কোড:
protocol.http.TooBigBody
।
- স্ট্যাটাস কোড:
- যদি ফল্ট সোর্সের ভ্যালু
target
থাকে এবং ফল্ট কোডের মানprotocol.http.TooBigBody
থাকে ।
ট্রেস
ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:
- ট্রেস সেশন সক্ষম করুন এবং হয়:
-
502 Bad Gateway
ত্রুটি ঘটতে অপেক্ষা করুন, বা - আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, তাহলে API কল করুন এবং
502 Bad Gateway
ত্রুটি পুনরুত্পাদন করুন৷
-
- ব্যর্থ অনুরোধগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
- ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
নিচে দেখানো হিসাবে লক্ষ্য সার্ভার ফেজ থেকে প্রাপ্ত প্রতিক্রিয়া ঠিক পরে ফেজ ত্রুটি নেভিগেট করুন:
ট্রেস থেকে ত্রুটির মান নোট করুন:
- ত্রুটি:
Body buffer overflow
- error.class :
com.apigee.errors.http.server.BadGateway
এটি নির্দেশ করে যে অ্যাপিজি এজ (মেসেজ প্রসেসর উপাদান) ব্যাকএন্ড সার্ভার থেকে রেসপন্স পাওয়ার সাথে সাথে পেলোড সাইজ অনুমোদিত সীমা অতিক্রম করার কারণে ত্রুটিটি ছুড়ে দেয়।
- ত্রুটি:
আপনি নীচে দেখানো হিসাবে ক্লায়েন্ট পর্যায়ে পাঠানো প্রতিক্রিয়া ব্যর্থতা দেখতে পাবেন:
- ট্রেস থেকে ত্রুটির মান নোট করুন। উপরের নমুনা ট্রেস দেখায়:
- ত্রুটি:
502 Bad Gateway
- ত্রুটি বিষয়বস্তু:
{"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
- ত্রুটি:
বিভিন্ন পরিস্থিতিতে নিচে দেখানো হিসাবে লক্ষ্য সার্ভার ফেজ থেকে প্রাপ্ত প্রতিক্রিয়া নেভিগেট করুন:
সংকুচিত
দৃশ্যকল্প #1: প্রতিক্রিয়া পেলোড অসংকুচিত আকারে পাঠানো হয়েছে
ট্রেস থেকে ত্রুটির মান নোট করুন:
- টার্গেট সার্ভার থেকে প্রাপ্ত প্রতিক্রিয়া :
200 OK
- বিষয়বস্তু-দৈর্ঘ্য ( প্রতিক্রিয়া শিরোনাম বিভাগ থেকে): ~11MB
সংকুচিত
পরিস্থিতি #2: সংকুচিত আকারে পেলোড পাঠানোর অনুরোধ
ট্রেস থেকে ত্রুটির মান নোট করুন:
- টার্গেট সার্ভার থেকে প্রাপ্ত প্রতিক্রিয়া :
200 OK
- বিষয়বস্তু-এনকোডিং : আপনি যদি প্রতিক্রিয়া শিরোনাম বিভাগে এই শিরোনামটি দেখতে পান তবে মানটি নোট করুন। উদাহরণস্বরূপ, এই উদাহরণে মান হল
gzip
।
- টার্গেট সার্ভার থেকে প্রাপ্ত প্রতিক্রিয়া :
প্রতিক্রিয়া বিষয়বস্তু বিভাগের অধীনে বডি নোট করুন:
{"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং সম্পর্কিত বিবরণ দেখতে এটিতে ক্লিক করুন।
- ধাপের বিবরণে ভেরিয়েবল রিড বিভাগে স্ক্রোল করুন এবং
target.received.content.length
এর মান নির্ধারণ করুন যা নির্দেশ করে:- রেসপন্স পেলোডের প্রকৃত আকার যখন এটি আনকম্প্রেসড ফরম্যাটে পাঠানো হয় এবং
- Apigee দ্বারা ডিকম্প্রেশনের পরে প্রতিক্রিয়া পেলোডের আকার, যখন পেলোডটি সংকুচিত বিন্যাসে পাঠানো হয়। এই দৃশ্যে এটি সর্বদা অনুমোদিত সীমা (10 MB) এর মান হিসাবে একই হবে৷
সংকুচিত
দৃশ্যকল্প #1: প্রতিক্রিয়া পেলোড অসংকুচিত আকারে পাঠানো হয়েছে
target.received.content.length এর মান নোট করুন:
শিরোনাম অনুরোধ করুন মান target.received.content.length ~11 এমবি সংকুচিত
পরিস্থিতি #2: সংকুচিত আকারে পেলোড পাঠানোর অনুরোধ
target.received.content.length এর মান নোট করুন:
অনুরোধ শিরোনাম মান target.received.content.length ~10 MB নিচের সারণীটি ব্যাখ্যা করে কেন
502
ত্রুটিটি Apigee দ্বারা দুটি পরিস্থিতিতে দেওয়া হয়েছে target.received.content.length- এর মানের উপর ভিত্তি করে:দৃশ্যকল্প target.received.content.length এর মান ব্যর্থতার কারণ অসংকুচিত বিন্যাসে রেসপন্স পেলোড ~11 এমবি আকার > অনুমোদিত সীমা 10 MB সংকুচিত বিন্যাসে প্রতিক্রিয়া পেলোড ~10 MB ডিকম্প্রেশনের সময় আকারের সীমা ছাড়িয়ে গেছে
এনজিআইএনএক্স
NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP
502
ত্রুটি সম্পর্কে মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন। NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
যেখানে: ORG , ENV , এবং PORT# প্রকৃত মান দিয়ে প্রতিস্থাপিত হয়৷
- একটি নির্দিষ্ট সময়ের মধ্যে কোন
502
ত্রুটি আছে কিনা তা দেখতে অনুসন্ধান করুন (যদি সমস্যাটি অতীতে ঘটে থাকে) বা502
সাথে এখনও কোনও অনুরোধ ব্যর্থ হচ্ছে কিনা। - আপনি যদি X-Apigee-fault-code-এর সাথে
protocol.http.TooBigBody
এর মানের সাথে502
টি ত্রুটি খুঁজে পান, তাহলে X-Apigee-ফল্ট-সোর্সের মান নির্ধারণ করুন।NGINX অ্যাক্সেস লগ থেকে নমুনা 502 ত্রুটি:
NGINX অ্যাক্সেস লগ থেকে উপরের নমুনা এন্ট্রিতে X-Apigee- ফল্ট-কোড এবং X-Apigee-ফল্ট-সোর্সের জন্য নিম্নলিখিত মান রয়েছে:
প্রতিক্রিয়া শিরোনাম মান এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.TooBigBody
এক্স-অ্যাপিজি-ফল্ট-উৎস target
কারণ: রেসপন্স পেলোড সাইজ অনুমোদিত সীমার চেয়ে বেশি
রোগ নির্ণয়
- এপিআই মনিটরিং, ট্রেস টুল, বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে পরিলক্ষিত ত্রুটির জন্য ফল্ট কোড , ফল্ট সোর্স এবং রেসপন্স পেলোড সাইজ নির্ধারণ করুন, যেমনটি পরিস্থিতি #1 এর সাথে সাধারণ রোগ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
- যদি ফল্ট সোর্সের মান
target
থাকে, তাহলে এটি নির্দেশ করে যে টার্গেট/ব্যাকএন্ড সার্ভার দ্বারা Apigee-এ পাঠানো প্রতিক্রিয়া পেলোডের আকার Apigee এজে অনুমোদিত সীমার চেয়ে বেশি। - ধাপ 1 থেকে নির্ধারিত রেসপন্স পেলোড সাইজ যাচাই করুন।
- যদি পেলোড সাইজ > 10 MB অনুমোদিত সীমা থাকে, তাহলে এটি ত্রুটির কারণ।
- যদি পেলোডের আকার ~ 10 MB অনুমোদিত সীমা থাকে, তাহলে প্রতিক্রিয়া পেলোড সংকুচিত বিন্যাসে পাস করা সম্ভব। কারণ-এ যান: প্রতিক্রিয়া পেলোডের আকার ডিকম্প্রেশনের পরে অনুমোদিত সীমা ছাড়িয়ে গেছে ।
- নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে প্রকৃত প্রতিক্রিয়া চেক করে প্রতিক্রিয়া পেলোডের আকার প্রকৃতপক্ষে > 10 এমবি অনুমোদিত সীমা কিনা তা যাচাই করুন:
- লক্ষ্য/ব্যাকএন্ড সার্ভারে করা প্রকৃত অনুরোধে আপনার অ্যাক্সেস না থাকলে, রেজোলিউশনে যান।
- আপনার যদি টার্গেট/ব্যাকএন্ড সার্ভারে করা প্রকৃত অনুরোধে অ্যাক্সেস থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
- আপনি যদি একজন পাবলিক ক্লাউড/প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে ব্যাকএন্ড সার্ভার থেকে সরাসরি ব্যাকএন্ড সার্ভারে বা অন্য কোনো মেশিন থেকে অনুরোধ করুন যেখান থেকে আপনাকে ব্যাকএন্ড সার্ভারে অনুরোধ করার অনুমতি দেওয়া হয়েছে।
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন তবে আপনি বার্তা প্রসেসরগুলির একটি থেকে ব্যাকএন্ড সার্ভারে অনুরোধও করতে পারেন।
- কন্টেন্ট-লেংথ হেডার চেক করে প্রতিক্রিয়ায় পাস করা পেলোডের আকার যাচাই করুন।
- যদি আপনি দেখতে পান যে পেলোডের আকার Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি, তাহলে এটিই সমস্যার কারণ।
ব্যাকএন্ড সার্ভার থেকে নমুনা প্রতিক্রিয়া:
curl -v https://BACKENDSERVER-HOSTNAME/testfile
* About to connect() to 10.14.0.10 port 9000 (#0) * Trying 10.14.0.10... * Connected to 10.14.0.10 (10.148.0.10) port 9000 (#0) > GET /testfile HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 10.14.0.10:9000 > Accept: */* > < HTTP/1.1 200 OK < Accept-Ranges: bytes < Content-Length: 11534336 < Content-Type: application/octet-stream < Last-Modified: Wed, 30 Jun 2021 08:18:02 GMT < Date: Wed, 30 Jun 2021 09:22:41 GMT < ----snipped---- <Response Body>
উপরের উদাহরণে, আপনি দেখতে পারেন যে
Content-Length: 11534336 (which is ~11 MB)
যা এই ত্রুটির কারণ কারণ এটি Apigee Edge-এ অনুমোদিত সীমা অতিক্রম করেছে।
রেজোলিউশন
রেজোলিউশন পড়ুন।
কারণ: রেসপন্স পেলোড সাইজ ডিকম্প্রেশনের পর অনুমোদিত সীমা ছাড়িয়ে গেছে
যদি প্রতিক্রিয়া পেলোড সংকুচিত বিন্যাসে পাঠানো হয় এবং প্রতিক্রিয়া শিরোনাম Content-Encoding
gzip ,
Apigee প্রতিক্রিয়া পেলোডকে ডিকম্প্রেস করে। ডিকম্প্রেশন প্রক্রিয়া চলাকালীন, যদি Apigee পেলোডের আকার Apigee এজ-এ অনুমোদিত সীমার চেয়ে বেশি বলে মনে করে। , তারপর এটি আরও ডিকম্প্রেশন বন্ধ করে এবং 502 Bad Gateway
এবং ত্রুটি কোড protocol.http.TooBigBody
সাথে সাথে সাথেই প্রতিক্রিয়া জানায়।
রোগ নির্ণয়
- এপিআই মনিটরিং, ট্রেস টুল বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে পরিলক্ষিত ত্রুটির জন্য ফল্ট কোড, ফল্ট সোর্স এবং রেসপন্স পেলোড সাইজ নির্ণয় করুন যেমনটি দৃশ্য #2 এর সাথে সাধারণ রোগ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
- যদি ফল্ট সোর্সের মান
target
থাকে, তাহলে এটি নির্দেশ করে যে টার্গেট/ব্যাকএন্ড অ্যাপ্লিকেশন দ্বারা Apigee-এ পাঠানো প্রতিক্রিয়া পেলোড আকার Apigee এজে অনুমোদিত সীমার চেয়ে বেশি। - ধাপ 1 থেকে নির্ধারিত রেসপন্স পেলোড সাইজ যাচাই করুন।
- যদি পেলোড সাইজ > 10 MB অনুমোদিত সীমা থাকে, তাহলে এটি ত্রুটির কারণ।
- যদি পেলোডের আকার ~ 10 MB অনুমোদিত সীমা থাকে, তাহলে প্রতিক্রিয়া পেলোড সংকুচিত বিন্যাসে পাস করা সম্ভব। এই ক্ষেত্রে, কম্প্রেসড রেসপন্স পেলোডের আনকম্প্রেসড সাইজ চেক করুন।
- আপনি যাচাই করতে পারেন যদি লক্ষ্য/ব্যাকএন্ড থেকে প্রতিক্রিয়া সংকুচিত বিন্যাসে পাঠানো হয় এবং নিম্নোক্ত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে অসংকুচিত আকার অনুমোদিত সীমার চেয়ে বেশি হয়:
ট্রেস
ট্রেস টুল ব্যবহার করে:
- আপনি ব্যর্থ অনুরোধের জন্য একটি ট্রেস ক্যাপচার করে থাকলে, ট্রেস এবং এ বিস্তারিত পদক্ষেপগুলি পড়ুন
- target.received.content.length এর মান নির্ধারণ করুন
- ক্লায়েন্টের অনুরোধে Content-Encoding:
gzip
হেডার আছে কিনা তা যাচাই করুন
- যদি target.received.content.length- এর মান 10 MB অনুমোদিত সীমার কাছাকাছি হয় এবং প্রতিক্রিয়া শিরোনাম Content-Encoding:
gzip
, তাহলে এই ত্রুটির কারণ।
প্রকৃত অনুরোধ
প্রকৃত অনুরোধ ব্যবহার করে:
- লক্ষ্য/ব্যাকএন্ড সার্ভারে করা প্রকৃত অনুরোধে আপনার অ্যাক্সেস না থাকলে, রেজোলিউশনে যান।
- আপনার যদি টার্গেট/ব্যাকএন্ড সার্ভারে করা প্রকৃত অনুরোধে অ্যাক্সেস থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
- প্রতিক্রিয়ায় পাঠানো
Content-Encoding
হেডার সহ প্রতিক্রিয়ায় পাস করা পেলোডের আকার যাচাই করুন। - আপনি যদি দেখেন যে প্রতিক্রিয়া শিরোনাম
Content-Encoding
gzip
এ সেট করা আছে এবং পেলোডের অসংকুচিত আকার Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি, তাহলে এটি এই ত্রুটির কারণ।ব্যাকএন্ড সার্ভার থেকে প্রাপ্ত নমুনা প্রতিক্রিয়া:
curl -v https://BACKENDSERVER-HOSTNAME/testzippedfile.gz
* About to connect() to 10.1.0.10 port 9000 (#0) * Trying 10.1.0.10... * Connected to 10.1.0.10 (10.1.0.10) port 9000 (#0) > GET /testzippedfile.gz HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 10.1.0.10:9000 > Accept: */* > < HTTP/1.1 200 OK < Accept-Ranges: bytes < Content-Encoding: gzip < Content-Type: application/x-gzip < Last-Modified: Wed, 30 Jun 2021 08:18:02 GMT < Testheader: test < Date: Wed, 07 Jul 2021 10:14:16 GMT < Transfer-Encoding: chunked < ----snipped---- <Response Body>
উপরের ক্ষেত্রে, শিরোনাম
Content-Encoding: gzip
পাঠানো হয়েছে এবং প্রতিক্রিয়াতেtestzippedfile.gz
ফাইলের আকার সীমার চেয়ে কম, তবে অসঙ্কোচিত ফাইলtestzippedfile
এর আকার ছিল ~15 MB।
- প্রতিক্রিয়ায় পাঠানো
বার্তা প্রসেসর লগ
বার্তা প্রসেসর লগ ব্যবহার করে:
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP
502
ত্রুটি সম্পর্কে মূল তথ্য নির্ধারণ করতে বার্তা প্রসেসর লগ ব্যবহার করতে পারেন। বার্তা প্রসেসর লগ চেক করুন
/opt/apigee/var/log/edge-message-processor/logs/system.log
একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) কোন
502
ত্রুটি আছে কিনা বা502
এর সাথে এখনও কোন অনুরোধ ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন। আপনি নিম্নলিখিত অনুসন্ধান স্ট্রিং ব্যবহার করতে পারেন:grep -ri "chunkCount"
grep -ri "BadGateway: Body buffer overflow"
- আপনি
system.log
থেকে নিচের মত লাইন পাবেন (TotalRead
এবংchunkCount
আপনার ক্ষেত্রে ভিন্ন হতে পারে):2021-07-07 09:40:47,012 NIOThread@7 ERROR HTTP.SERVICE - TrackingInputChannel.checkMessageBodyTooLarge() : Message is too large. TotalRead 10489856 chunkCount 2571 2021-07-07 09:40:47,012 NIOThread@7 ERROR HTTP.CLIENT - HTTPClient$Context.onInputException() : ClientInputChannel(ClientChannel[Connected: Remote:10.148.0.10:9000 Local:10.148.0.9:42240]@9155 useCount=1 bytesRead=0 bytesWritten=182 age=23ms lastIO=0ms isOpen=true).onExceptionRead exception: {} com.apigee.errors.http.server.BadGateway: Body buffer overflow 2021-07-07 09:40:47,012 NIOThread@7 ERROR ADAPTORS.HTTP.FLOW - AbstractResponseListener.onException() : AbstractResponseListener.onError(HTTPResponse@77cbd7c4, Body buffer overflow)
ডিকম্প্রেশন প্রক্রিয়া চলাকালীন, মেসেজ প্রসেসর মোট রিড বাইট > 10 এমবি নির্ধারণ করার সাথে সাথে, এটি নিম্নলিখিত লাইনটি বন্ধ করে এবং মুদ্রণ করে:
Message is too large. TotalRead 10489856 chunkCount 2571
এটি বোঝায় যে রেসপন্স পেলোড সাইজ 10 MB এর বেশি এবং Apigee ত্রুটিটি ছুঁড়ে দেয় যখন সাইজ 10 MB সীমা অতিক্রম করতে শুরু করে এবং
protocol.http.TooBigBody
হিসাবে ফল্ট কোড সহ
- আপনি ব্যর্থ অনুরোধের জন্য একটি ট্রেস ক্যাপচার করে থাকলে, ট্রেস এবং এ বিস্তারিত পদক্ষেপগুলি পড়ুন
রেজোলিউশন
আকার ঠিক করুন
বিকল্প #1 [প্রস্তাবিত]: টার্গেট সার্ভার অ্যাপ্লিকেশনটি ঠিক করুন যাতে Apigee সীমা অতিক্রম করে পেলোড আকার না পাঠানো হয়
- নির্দিষ্ট টার্গেট সার্ভারের প্রতিক্রিয়া/পেলোড সাইজ সীমাতে সংজ্ঞায়িত অনুমোদিত সীমার চেয়ে বেশি পাঠানোর কারণ বিশ্লেষণ করুন।
- যদি এটি পছন্দসই না হয় তবে আপনার লক্ষ্য সার্ভার অ্যাপ্লিকেশনটি পরিবর্তন করুন যাতে এটি অনুমোদিত সীমার চেয়ে কম প্রতিক্রিয়া / পেলোড আকার পাঠায়।
- যদি এটি পছন্দসই হয় এবং আপনি অনুমোদিত সীমার চেয়ে বেশি প্রতিক্রিয়া/পেলোড পাঠাতে চান তবে পরবর্তী বিকল্পগুলিতে যান।
স্বাক্ষরিত URL প্যাটার্ন
বিকল্প #2 [প্রস্তাবিত]: Apigee JavaCallout এর মধ্যে স্বাক্ষরিত URL প্যাটার্ন ব্যবহার করুন
10 MB-এর থেকে বড় পেলোডের জন্য, Apigee একটি Apigee JavaCallout-এর মধ্যে একটি স্বাক্ষরিত URL প্যাটার্ন ব্যবহার করার পরামর্শ দেয়, এজ কলআউট দ্বারা চিত্রিত: GitHub-এ স্বাক্ষরিত URL জেনারেটর উদাহরণ৷
স্ট্রিমিং
বিকল্প #3: স্ট্রিমিং ব্যবহার করুন
যদি আপনার API প্রক্সির খুব বড় অনুরোধ এবং/অথবা প্রতিক্রিয়াগুলি পরিচালনা করতে হয়, তাহলে আপনি Apigee-এ স্ট্রিমিং সক্ষম করতে পারেন।
CwC
বিকল্প #4: বাফার সীমা বাড়ানোর জন্য CwC প্রপার্টি ব্যবহার করুন
এই বিকল্পটি শুধুমাত্র তখনই ব্যবহার করা উচিত যখন আপনি প্রস্তাবিত বিকল্পগুলির কোনোটি ব্যবহার করতে পারবেন না কারণ ডিফল্ট আকার বাড়ানো হলে কর্মক্ষমতা সমস্যা হতে পারে।
Apigee একটি CwC প্রপার্টি প্রদান করে যা এটিকে অনুরোধ এবং রেসপন্স পেলোড সাইজ সীমা বাড়াতে দেয়। বিশদ বিবরণের জন্য, রাউটার বা বার্তা প্রসেসরে বার্তা আকারের সীমা সেট করুন দেখুন।
সীমা
Apigee আশা করে যে ক্লায়েন্ট অ্যাপ্লিকেশন এবং ব্যাকএন্ড সার্ভার Apigee এজ লিমিটে Request/response size
জন্য নথিভুক্ত সীমার চেয়ে বেশি পেলোড আকার পাঠাবে না।
- আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে Apigee Edge Limits- এ
Request/response size
জন্য নথিভুক্ত অনুরোধ এবং প্রতিক্রিয়া পেলোড আকারের সর্বোচ্চ সীমা। - আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি অনুরোধ এবং প্রতিক্রিয়া পেলোড আকারের জন্য ডিফল্ট সর্বোচ্চ সীমা পরিবর্তন করতে পারেন (যদিও এটি একটি প্রস্তাবিত অনুশীলন নয়)। আপনি বর্তমান সীমা কিভাবে চেক করবেন এর নির্দেশাবলী অনুসরণ করে সর্বাধিক অনুরোধের পেলোড আকারের সীমা নির্ধারণ করতে পারেন।
বর্তমান সীমা চেক কিভাবে?
এই বিভাগটি ব্যাখ্যা করে যে কীভাবে HTTPResponse.body.buffer.limit
সম্পত্তিটি মেসেজ প্রসেসরে একটি নতুন মান সহ আপডেট করা হয়েছে তা যাচাই করতে হবে।
মেসেজ প্রসেসর মেশিনে,
/opt/apigee/edge-message- processor/conf
ডিরেক্টরিতেHTTPResponse.body.buffer.limit
প্রপার্টি অনুসন্ধান করুন এবং নীচে দেখানো হিসাবে কী মান সেট করা হয়েছে তা দেখতে পরীক্ষা করুন:grep -ri "HTTPResponse.body.buffer.limit" /opt/apigee/edge-message-processor/conf
উপরের কমান্ড থেকে নমুনা ফলাফল নিম্নরূপ:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPResponse.body.buffer.limit=10m
উপরের উদাহরণের আউটপুটে, লক্ষ্য করুন যে প্রপার্টি
HTTPResponse.body.buffer.limit
http.properties
এ10m
মান সহ সেট করা হয়েছে।এটি নির্দেশ করে যে ব্যক্তিগত ক্লাউডের জন্য Apigee-এ কনফিগার করা অনুরোধের পেলোড আকারের সীমা হল 10 MB৷
আপনার যদি এখনও Apigee সাপোর্ট থেকে কোনো সহায়তার প্রয়োজন হয়, তাহলে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন- এ যান।
ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে
নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন, এবং তারপর Apigee Edge সহায়তার সাথে যোগাযোগ করুন:
আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:
- প্রতিষ্ঠানের নাম
- পরিবেশের নাম
- API প্রক্সি নাম
-
502
ত্রুটি পুনরুত্পাদন করতে ব্যবহৃত সম্পূর্ণ কার্ল কমান্ড - API অনুরোধের জন্য ট্রেস ফাইল
- পেলোডের আকার সহ লক্ষ্য/ব্যাকএন্ড সার্ভার থেকে প্রতিক্রিয়ার সম্পূর্ণ আউটপুট
আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:
- ব্যর্থ অনুরোধের জন্য পরিলক্ষিত সম্পূর্ণ ত্রুটি বার্তা
- প্রতিষ্ঠানের নাম
- পরিবেশের নাম
- API প্রক্সি বান্ডেল
- ব্যর্থ API অনুরোধের জন্য ট্রেস ফাইল
-
502
ত্রুটি পুনরুত্পাদন করতে ব্যবহৃত সম্পূর্ণ কার্ল কমান্ড - পেলোডের আকার সহ লক্ষ্য/ব্যাকএন্ড সার্ভার থেকে প্রতিক্রিয়ার সম্পূর্ণ আউটপুট
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