413 অনুরোধ সত্তা খুব বড় - TooBigBody

আপনি 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 দ্বারা অসংকুচিত করার পর অনুমোদিত সীমার চেয়ে বড় হয়ে যায়। এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা

সাধারণ রোগ নির্ণয়ের পদক্ষেপ

এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:

এপিআই মনিটরিং

এপিআই মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. উপযুক্ত ভূমিকা সম্পন্ন একজন ব্যবহারকারী হিসেবে Apigee Edge UI-তে সাইন ইন করুন
  2. যে প্রতিষ্ঠানে আপনি বিষয়টি তদন্ত করতে চান, সেখানে যান।

  3. Analyze > API Monitoring > Investigate পৃষ্ঠায় যান।
  4. সেই নির্দিষ্ট সময়সীমাটি নির্বাচন করুন যার মধ্যে আপনি ত্রুটিগুলো লক্ষ্য করেছেন।
  5. ফল্ট কোডটি আরও নির্দিষ্ট করতে আপনি প্রক্সি ফিল্টারটি নির্বাচন করতে পারেন।
  6. সময়ের সাপেক্ষে ফল্ট কোডের লেখচিত্র অঙ্কন করুন।
  7. নীচে দেখানো অনুযায়ী, এমন একটি সেল নির্বাচন করুন যেটিতে ফল্ট কোড protocol.http.TooBigBody http.TooBigBody এবং স্ট্যাটাস কোড 413 রয়েছে:

  8. ফল্ট কোড protocol.http.TooBigBody সম্পর্কিত তথ্য নিচে দেখানো হলো:

  9. '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 দ্বারা আনকম্প্রেস করার পর পেলোড সাইজটি অনুমোদিত সীমার চেয়ে বেশি হয়ে যায়।

ট্রেস

ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. ট্রেস সেশনটি সক্রিয় করুন এবং হয়
    • 413 Request Entity Too Large ত্রুটিটি ঘটা পর্যন্ত অপেক্ষা করুন অথবা
    • আপনি যদি সমস্যাটি পুনরায় তৈরি করতে পারেন, তাহলে এপিআই কলটি করুন এবং 413 Request Entity Too Large ত্রুটিটি পুনরায় ঘটান।
  2. নিশ্চিত করুন যে ‘Show all Flow Infos’ চালু আছে।

  3. ব্যর্থ হওয়া অনুরোধগুলোর মধ্যে একটি নির্বাচন করুন এবং ট্রেসটি পরীক্ষা করুন।
  4. "ক্লায়েন্টের কাছ থেকে অনুরোধ প্রাপ্ত" পর্যায়ে যান।

    অসংকুচিত

    দৃশ্যকল্প #১: অনুরোধ পেলোড অসংকুচিত আকারে পাঠানো হয়েছে

    নিম্নলিখিত তথ্যগুলো লক্ষ্য করুন:

    • কন্টেন্ট-এনকোডিং: উপস্থিত নেই
    • বিষয়বস্তুর দৈর্ঘ্য: 15360204

    সংকুচিত

    দৃশ্যকল্প #২: অনুরোধ পেলোড সংকুচিত আকারে পাঠানো হয়েছে

    নিম্নলিখিত তথ্যগুলো লক্ষ্য করুন:

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

  7. ট্রেস থেকে ত্রুটির মানটি লক্ষ্য করুন। উপরের নমুনা ট্রেসটি দেখাচ্ছে:
    • ত্রুটি: Body buffer overflow
    • error.class: com.apigee.errors.http.user.RequestTooLarge
  8. 'Response Sent to Client'-এ যান এবং ট্রেস থেকে ত্রুটির মানগুলো নোট করুন। নীচের নমুনা ট্রেসটি দেখাচ্ছে:

    • ত্রুটি: 413 Request Entity Too Large
    • ত্রুটির বিষয়বস্তু: {"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
  9. ট্রেসটিতে AX (অ্যানালিটিক্স ডেটা রেকর্ড করা) পর্যায়ে যান এবং সেটিতে ক্লিক করুন।
  10. ফেজ ডিটেইলস সেকশনে, নিচে স্ক্রল করে ভ্যারিয়েবলস রিড পর্যন্ত যান।

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

    অসংকুচিত

    দৃশ্যকল্প #১: অসংকুচিত আকারে পেলোড অনুরোধ করুন

    client.received.content.length ভেরিয়েবল: 15360204

    সংকুচিত

    দৃশ্যকল্প #২: সংকুচিত বিন্যাসে অনুরোধ পেলোড

    client.received.content.length ভেরিয়েবল: 10489856

  12. নিম্নলিখিত সারণিতে `client.received.content.length` ভেরিয়েবলের মানের উপর ভিত্তি করে দুটি পরিস্থিতিতে Apigee কেন 413 ত্রুটিটি ফেরত দেয় তা ব্যাখ্যা করা হয়েছে:
    দৃশ্যকল্প client.received.content.length এর মান ব্যর্থতার কারণ
    অসংকুচিত ফরম্যাটে পেলোড অনুরোধ করুন ~১৫ এমবি আকার ১০ মেগাবাইটের অনুমোদিত সীমার চেয়ে বেশি।
    সংকুচিত বিন্যাসে পেলোড অনুরোধ করুন ~১০ এমবি

    চাপ কমানোর সময় আকারের সীমা অতিক্রম করা হয়েছে

এনজিআইএনএক্স

NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP 413 ত্রুটি সম্পর্কিত মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন।
  2. NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:

    /opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log

  3. একটি নির্দিষ্ট সময়কালে কোনো 413 ত্রুটি ছিল কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো অনুরোধ 413 ত্রুটির কারণে ব্যর্থ হচ্ছে কিনা তা অনুসন্ধান করে দেখুন।
  4. যদি আপনি 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 দ্বারা ডিকম্প্রেশনের পর পেলোডের আকার সীমা অতিক্রম করে যায়।

কারণ: অনুরোধ পেলোডের আকার অনুমোদিত সীমার চেয়ে বেশি

রোগ নির্ণয়

  1. সিনারিও #১ (আনকম্প্রেসড)-এর সাধারণ ডায়াগনোসিস ধাপে ব্যাখ্যা করা পদ্ধতি অনুসারে, এপিআই মনিটরিং, ট্রেস টুল বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে পরিলক্ষিত ত্রুটির জন্য ফল্ট কোড , ফল্ট সোর্স এবং রিকোয়েস্ট পেলোড সাইজ নির্ধারণ করুন।
  2. যদি ফল্ট সোর্সের মান ' policy বা proxy হয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা Apigee-তে পাঠানো রিকোয়েস্ট পেলোড সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি।
  3. ধাপ #১ থেকে নির্ধারিত রিকোয়েস্ট পেলোড সাইজ যাচাই করুন।
  4. নিম্নলিখিত ধাপগুলি অনুসরণ করে প্রকৃত অনুরোধটি পরীক্ষা করার মাধ্যমে আপনি যাচাই করতে পারেন যে অনুরোধের পেলোড সাইজ অনুমোদিত সীমা ১০ মেগাবাইটের চেয়ে সত্যিই বেশি কিনা:
    1. ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে না থাকে, তাহলে রেজোলিউশন- এ যান।
    2. ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
      1. অনুরোধে প্রেরিত পেলোডের আকার যাচাই করুন।
      2. যদি আপনি Apigee Edge-এ পেলোডের আকার অনুমোদিত সীমার চেয়ে বেশি দেখতে পান, তাহলে সেটাই সমস্যার কারণ।
      3. নমুনা অনুরোধ:

        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 মেসেজটি ফেরত পাঠায়।

রোগ নির্ণয়

  1. ফল্ট কোড ও ফল্ট সোর্স নির্ণয় করুন। এবং সিনারিও #২ (সংকুচিত) এর সাধারণ রোগ নির্ণয়ের ধাপগুলিতে ব্যাখ্যা করা অনুযায়ী এপিআই মনিটরিং, ট্রেস টুল, বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে পর্যবেক্ষণ করা ত্রুটির জন্য অনুরোধ পেলোড আকার
  2. যদি ফল্ট সোর্সের মান ' policy বা proxy হয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা Apigee-তে পাঠানো রিকোয়েস্ট পেলোড সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি।
  3. ধাপ ১ থেকে নির্ধারিত রিকোয়েস্ট পেলোড সাইজ যাচাই করুন।
    • যদি পেলোড সাইজ অনুমোদিত সীমা ১০ মেগাবাইটের বেশি হয়, তাহলে সেটাই ত্রুটির কারণ।
    • যদি পেলোডের আকার অনুমোদিত সীমা ১০ মেগাবাইটের কম হয়, তাহলে হতে পারে যে রিকোয়েস্ট পেলোডটি কম্প্রেসড ফরম্যাটে পাঠানো হয়েছে। এই ক্ষেত্রে, কম্প্রেসড রিকোয়েস্ট পেলোডটির আনকম্প্রেসড আকার যাচাই করুন।
  4. নিম্নলিখিত পদ্ধতিগুলোর মধ্যে যেকোনো একটি ব্যবহার করে আপনি যাচাই করতে পারেন যে ক্লায়েন্টের অনুরোধটি সংকুচিত ফরম্যাটে পাঠানো হয়েছিল কিনা এবং অসংকুচিত আকারটি অনুমোদিত সীমার চেয়ে বেশি ছিল কিনা:

    ট্রেস

    ট্রেস টুল ব্যবহার করে যাচাই করতে:

    1. যদি আপনি ব্যর্থ হওয়া অনুরোধটির ট্রেস সংগ্রহ করে থাকেন, তাহলে ট্রেস এবং অংশে বিস্তারিত ধাপগুলো অনুসরণ করুন।
      1. client.received.content.length ভেরিয়েবলের মান নির্ধারণ করুন।
      2. ক্লায়েন্টের অনুরোধে Content-Encoding: gzip হেডারটি ছিল কিনা তা যাচাই করুন।
    2. যদি client.received.content.length ভেরিয়েবলের মান অনুমোদিত সীমা ১০ মেগাবাইটের বেশি হয় এবং রিকোয়েস্ট হেডারে Content-Encoding: gzip থাকে, তাহলে সেটাই এই ত্রুটির কারণ।

    প্রকৃত অনুরোধ

    প্রকৃত অনুরোধ ব্যবহার করে যাচাই করতে:

    1. ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে না থাকে, তাহলে রেজোলিউশন- এ যান।
    2. ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
      1. অনুরোধে পাঠানো Content-Encoding হেডারের সাথে প্রেরিত পেলোডের আকার যাচাই করুন।
      2. 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 এ সেট করা আছে কিনা তা জানতে ক্লায়েন্ট লগগুলো দেখুন।

    মেসেজ প্রসেসর লগ

    মেসেজ প্রসেসর লগ ব্যবহার করে যাচাই করতে:

    1. আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP 413 ত্রুটি সম্পর্কিত মূল তথ্য নির্ধারণ করতে মেসেজ প্রসেসর লগ ব্যবহার করতে পারেন।
    2. মেসেজ প্রসেসর লগগুলো পরীক্ষা করুন:

      /opt/apigee/var/log/edge-message-processor/logs/system.log

    3. একটি নির্দিষ্ট সময়কালে কোনো 413 ত্রুটি ছিল কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো অনুরোধ 413 ত্রুটির কারণে ব্যর্থ হচ্ছে কিনা তা অনুসন্ধান করে দেখুন।

      আপনি নিম্নলিখিত সার্চ স্ট্রিংগুলো ব্যবহার করতে পারেন:

      grep -ri "chunkCount"
      
      grep -ri "RequestTooLarge"
      
    4. আপনি 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
    5. ডিকম্প্রেশন প্রক্রিয়া চলাকালীন, মেসেজ প্রসেসর যখনই নির্ধারণ করে যে মোট পঠিত বাইটের পরিমাণ ১০ মেগাবাইটের বেশি, তখনই এটি থেমে যায় এবং নিম্নলিখিত লাইনটি প্রিন্ট করে:
      Message is too large.  TotalRead 10489856 chunkCount 2570

      এর মানে হলো রিকোয়েস্ট পেলোড সাইজ ১০ মেগাবাইটের বেশি এবং যখন সাইজ ১০ মেগাবাইটের সীমা অতিক্রম করতে শুরু করে, তখন Apigee protocol.http.TooBigBody ফল্ট কোড সহ RequestTooLarge এররটি দেখায়।

সমাধান

নির্দিষ্ট আকার

বিকল্প #১ [সুপারিশকৃত]: ক্লায়েন্ট অ্যাপ্লিকেশনটিকে এমনভাবে ঠিক করুন যাতে এটি অনুমোদিত সীমার চেয়ে বড় পেলোড সাইজ না পাঠায়।

  1. Limits- এ সংজ্ঞায়িত অনুমোদিত সীমার চেয়ে নির্দিষ্ট ক্লায়েন্টটির বেশি আকারের অনুরোধ / পেলোড পাঠানোর কারণ বিশ্লেষণ করুন।
  2. যদি এটি অনাকাঙ্ক্ষিত হয়, তবে আপনার ক্লায়েন্ট অ্যাপ্লিকেশনটি এমনভাবে পরিবর্তন করুন যাতে এটি অনুমোদিত সীমার চেয়ে কম আকারের অনুরোধ / পেলোড পাঠায়।

    উপরে আলোচিত উদাহরণে, আপনি নিচে দেখানো অনুযায়ী test5mbfile (আকার ৫ এমবি) পেলোড হিসেবে পাস করে সমস্যাটি সমাধান করতে পারেন:

    curl https://<host>/testtoobigbody -k -X POST -F file=@test5mbfile -v
    
  3. যদি আপনি অনুমোদিত সীমার চেয়ে বেশি অনুরোধ/পেলোড পাঠাতে চান, তাহলে পরবর্তী বিকল্পগুলিতে যান।

স্বাক্ষরিত 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 জন্য নথিভুক্ত অনুমোদিত সীমার চেয়ে বড় পেলোড সাইজ পাঠাবে না।

  1. আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে অনুরোধ এবং প্রতিক্রিয়া পেলোড আকারের সর্বোচ্চ সীমা Apigee Edge Limits-Request/response size জন্য নথিভুক্ত করা অনুযায়ী হবে।
  2. আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে আপনি হয়তো রিকোয়েস্ট এবং রেসপন্স পেলোড সাইজের ডিফল্ট সীমা পরিবর্তন করে থাকতে পারেন (যদিও এটি একটি অনুচিত কাজ)। ‘বর্তমান সীমা কীভাবে পরীক্ষা করবেন’ অংশে দেওয়া নির্দেশাবলী অনুসরণ করে আপনি সর্বোচ্চ রিকোয়েস্ট পেলোড সাইজের সীমা নির্ধারণ করতে পারেন।

বর্তমান সীমা কীভাবে পরীক্ষা করবেন?

এই অংশে ব্যাখ্যা করা হয়েছে কিভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরগুলিতে HTTPRequest.body.buffer.limit প্রপার্টিটি একটি নতুন মান দ্বারা আপডেট করা হয়েছে।

  1. মেসেজ প্রসেসর মেশিনে, /opt/apigee/edge-message- processor/conf ডিরেক্টরিতে HTTPRequest.body.buffer.limit প্রপার্টিটি খুঁজুন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে কী মান সেট করা হয়েছে তা পরীক্ষা করে দেখুন:
    grep -ri "HTTPRequest.body.buffer.limit" /opt/apigee/edge-message-processor/conf
    
  2. উপরোক্ত কমান্ড থেকে প্রাপ্ত নমুনা ফলাফলটি নিম্নরূপ:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPRequest.body.buffer.limit=10m
  3. উপরের উদাহরণ আউটপুটে লক্ষ্য করুন যে, 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