আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
ভিডিও
ভিডিও | বর্ণনা |
---|---|
500 অভ্যন্তরীণ সার্ভার ত্রুটি - ব্যাকএন্ড দ্বারা সৃষ্ট | ব্যাকএন্ড সার্ভার দ্বারা সৃষ্ট একটি রিয়েল-টাইম 500 Internal Server Error দেখায় এবং ত্রুটির সমাধান এবং সমাধানের পদক্ষেপ সহ। |
উপসর্গ
ক্লায়েন্ট অ্যাপ্লিকেশনটি API কলগুলির প্রতিক্রিয়া হিসাবে Internal Server Error
বার্তা সহ 500
এর একটি HTTP স্ট্যাটাস কোড পায়।
HTTP স্থিতি কোড 500
একটি সাধারণ ত্রুটি প্রতিক্রিয়া। এর মানে হল যে সার্ভারটি একটি অপ্রত্যাশিত অবস্থার সম্মুখীন হয়েছে যা এটিকে অনুরোধটি পূরণ করতে বাধা দিয়েছে৷ এই ত্রুটিটি সাধারণত সার্ভার দ্বারা ফেরত দেওয়া হয় যখন অন্য কোন ত্রুটি কোড উপযুক্ত হয় না।
ত্রুটি বার্তা
ক্লায়েন্ট অ্যাপ্লিকেশন নিম্নলিখিত প্রতিক্রিয়া কোড পায়:
HTTP/1.1 500 Internal Server Error
উপরন্তু, আপনি নীচে দেখানো একটির মত একটি ত্রুটি বার্তা পর্যবেক্ষণ করতে পারেন:
নমুনা #1
নমুনা ব্যাকএন্ড সার্ভার প্রতিক্রিয়া #1
{"errorMessage":"Sorry either your e-mail or password didn't match.", "errorParameters":"{}", "errorCode":"500", "errorKey":"INVALID_EMAILPASSWORD"}
নমুনা #2
নমুনা ব্যাকএন্ড সার্ভার প্রতিক্রিয়া #2
<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <Error> <code>500</code> <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message> </Error> </Body> </Envelope>
সম্ভাব্য কারণ
500 Internal Server Error
অনেক কারণের কারণে ব্যাকএন্ড সার্ভার দ্বারা ফিরে আসতে পারে। এই প্লেবুকটি ব্যাখ্যা করে যে কীভাবে সাধারণ পদক্ষেপগুলি ব্যবহার করে সমস্যা সমাধান করা যায় এবং এই ত্রুটির কারণ নির্বিশেষে সমাধান করা যায়৷
এই সমস্যার সম্ভাব্য কারণগুলি নিম্নরূপ:
কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
---|---|---|
ব্যাকএন্ড সার্ভারে ত্রুটি৷ | ব্যাকএন্ড সার্ভার কোনো কারণে ব্যর্থ হতে পারে। | এজ প্রাইভেট এবং পাবলিক ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলির মধ্যে একটি ব্যবহার করুন:
API মনিটরিং
পদ্ধতি #1: API মনিটরিং ব্যবহার করা
API মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- Apigee Edge UI এ একটি উপযুক্ত ভূমিকা সহ ব্যবহারকারী হিসাবে সাইন ইন করুন৷
আপনি যে সংস্থায় সমস্যাটি তদন্ত করতে চান সেখানে যান।
- এনালাইজ > API মনিটরিং > ইনভেস্টিগেট পেজে নেভিগেট করুন।
- নির্দিষ্ট সময়সীমা নির্বাচন করুন যেখানে আপনি ত্রুটিগুলি পর্যবেক্ষণ করেছেন।
সময়ের বিরুদ্ধে প্লট ফল্ট কোড ।
একটি ঘর নির্বাচন করুন যার ফল্ট কোড আছে
messaging.adaptors.http.flow.ErrorResponseCode
নীচে দেখানো হয়েছে:( বড় ছবি দেখুন )
ফল্ট কোড
messaging.adaptors.http.flow.ErrorResponseCode
সম্পর্কে তথ্য নীচে দেখানো হয়েছে:( বড় ছবি দেখুন )
লগ দেখুন ক্লিক করুন এবং ব্যর্থ অনুরোধের জন্য সারি প্রসারিত করুন।
( বড় ছবি দেখুন )
- লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
- বার্তা আইডি অনুরোধ করুন
- স্ট্যাটাস কোড:
500
- ফল্ট উত্স:
target
- ফল্ট কোড:
messaging.adaptors.http.flow.ErrorResponseCode
ট্রেস
পদ্ধতি #2: ট্রেস টুল ব্যবহার করে
ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:
- ট্রেস সেশন সক্রিয় করুন এবং হয়
- ত্রুটি কোড
messaging.adaptors.http.flow.ErrorResponseCode
সহ500 Internal Server Error
ত্রুটির জন্য অপেক্ষা করুন, অথবা - আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, তাহলে সমস্যাটি পুনরুত্পাদন করতে API কল করুন
500 Internal Server Error
- ত্রুটি কোড
সমস্ত ফ্লোইনফোস সক্ষম করা আছে তা নিশ্চিত করুন:
- ব্যর্থ অনুরোধগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
- ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
নিচে দেখানো হিসাবে লক্ষ্য সার্ভার ফেজ থেকে প্রাপ্ত প্রতিক্রিয়ার পরে আপনি সাধারণত একটি প্রবাহে ত্রুটিটি খুঁজে পাবেন:
( বড় ছবি দেখুন )
- ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং এটিতে ক্লিক করুন।
ফেজ বিশদ প্রতিক্রিয়া শিরোনাম বিভাগে নীচে স্ক্রোল করুন এবং নীচে দেখানো হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source , এবং X-Apigee-বার্তা-আইডির মান নির্ধারণ করুন:
( বড় ছবি দেখুন )
- X-Apigee-fault-code , X-Apigee-fault-source , এবং X-Apigee-Message-ID এর মানগুলি নোট করুন:
প্রতিক্রিয়া শিরোনাম | মান |
---|---|
এক্স-অ্যাপিজি-ফল্ট-কোড | messaging.adaptors.http.flow.ErrorResponseCode |
এক্স-অ্যাপিজি-ফল্ট-উৎস | target |
এক্স-অ্যাপিজি-মেসেজ-আইডি | MESSAGE_ID |
এনজিআইএনএক্স
পদ্ধতি #3: NGINX অ্যাক্সেস লগ ব্যবহার করে
NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP
500 Internal Server Error
সম্পর্কে মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন। NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log
- ত্রুটি কোড
messaging.adaptors.http.flow.ErrorResponseCode
এর সাথে একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা500
500
সাথে কোনো অনুরোধ ব্যর্থ হয় কিনা তা দেখতে অনুসন্ধান করুন। আপনি যদি X-Apigee-fault-code- এর সাথে
messaging.adaptors.http.flow.ErrorResponseCode
এর মানের সাথে মিলে যাওয়া500
ত্রুটি খুঁজে পান, তাহলে X-Apigee-fault-source এর মান নির্ধারণ করুন৷NGINX অ্যাক্সেস লগ থেকে নমুনা 500 ত্রুটি:
( বড় ছবি দেখুন )
NGINX অ্যাক্সেস লগ থেকে উপরের নমুনা এন্ট্রিতে X-Apigee-fault-code এবং X-Apigee-fault-source এর জন্য নিম্নলিখিত মান রয়েছে:
হেডার মান এক্স-অ্যাপিজি-ফল্ট-কোড messaging.adaptors.http.flow.ErrorResponseCode
এক্স-অ্যাপিজি-ফল্ট-উৎস target
কারণ: ব্যাকএন্ড সার্ভারে ত্রুটি
রোগ নির্ণয়
ব্যাকএন্ড সার্ভার দ্বারা প্রতিক্রিয়া 500 Internal Server Error
বিভিন্ন কারণে হতে পারে। আপনাকে প্রতিটি পরিস্থিতি স্বাধীনভাবে নির্ণয় করতে হবে।
- এপিআই মনিটরিং, ট্রেস টুল, বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে দেখা ত্রুটির জন্য ফল্ট কোড, ফল্ট সোর্স নির্ণয় করুন যা সাধারণ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
- যদি ফল্ট সোর্স
target
হয় এবং ফল্ট কোডটি হয়messaging.adaptors.http.flow.ErrorResponseCode
, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভার দ্বারা ত্রুটিটি ফেরত এসেছে। - আপনি সমস্যার কারণ নির্ণয় করতে নিম্নলিখিত পদক্ষেপগুলির মধ্যে একটি ব্যবহার করতে পারেন:
ট্রেস
ট্রেস ব্যবহার করে:
আপনার যদি ব্যর্থতার জন্য একটি ট্রেস সেশন থাকে তবে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
- ট্রেসে, API অনুরোধটি নির্বাচন করুন যা
500 Internal Server Error
সাথে ব্যর্থ হয়েছে। নিচের চিত্রে দেখানো ব্যর্থ API অনুরোধ থেকে লক্ষ্য সার্ভার ফেজ থেকে প্রাপ্ত প্রতিক্রিয়া নির্বাচন করুন:
( বড় ছবি দেখুন )
ফেজ বিশদ বিভাগে স্ক্রোল করুন এবং প্রতিক্রিয়া বিষয়বস্তু পরীক্ষা করুন, যাতে ব্যাকএন্ড সার্ভার থেকে প্রতিক্রিয়া রয়েছে।
নমুনা প্রতিক্রিয়া বিষয়বস্তু:
<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <Error> <code>500</code> <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message> </Error> </Body> </Envelope>
উপরের প্রতিক্রিয়ায়, নোট করুন যে ব্যাকএন্ড সার্ভার থেকে ত্রুটি বার্তা অনুমোদিত নয়। এটি ইঙ্গিত দেয় যে ব্যবহারকারী অবৈধ শংসাপত্রগুলি পাস করেছেন এবং সেই কারণেই তারা এই ত্রুটিটি পাচ্ছেন৷
ব্যাকএন্ড সার্ভারে কল করুন
ব্যাকএন্ড সার্ভারে সরাসরি কল করা:
আপনি ব্যাকএন্ড সার্ভারে সরাসরি কল করতে পারেন এবং:
- Apigee Edge-এর মাধ্যমে যখন অনুরোধ করা হয়েছিল তখন আপনি একই
500 Internal Server Error
প্রতিক্রিয়া পেয়েছেন কিনা তা যাচাই করুন - ব্যাকএন্ড সার্ভার থেকে প্রাপ্ত ত্রুটি বার্তা (প্রতিক্রিয়া) পরীক্ষা করুন
ব্যাকএন্ড সার্ভারে সরাসরি কল করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
- নিশ্চিত করুন যে আপনার কাছে সমস্ত প্রয়োজনীয় শিরোনাম, ক্যোয়ারী প্যারামিটার এবং যেকোনো শংসাপত্র রয়েছে যা অনুরোধের অংশ হিসাবে ব্যাকএন্ড সার্ভারে পাস করতে হবে।
- যদি ব্যাকএন্ড পরিষেবা সর্বজনীনভাবে অ্যাক্সেসযোগ্য হয়, তাহলে আপনি
curl
কমান্ড, পোস্টম্যান, বা অন্য কোনও REST ক্লায়েন্ট ব্যবহার করতে পারেন এবং সরাসরি ব্যাকএন্ড সার্ভার API-কে আহ্বান করতে পারেন। যদি ব্যাকএন্ড সার্ভার শুধুমাত্র মেসেজ প্রসেসর থেকে অ্যাক্সেসযোগ্য হয়, তাহলে আপনি
curl
কমান্ড, পোস্টম্যান, বা অন্য কোন REST ক্লায়েন্ট ব্যবহার করতে পারেন এবং সরাসরি মেসেজ প্রসেসর থেকে ব্যাকএন্ড সার্ভার API চালু করতে পারেন।- ব্যাকএন্ড পরিষেবাটি সত্যিই
500 Internal Server Error
ফিরিয়ে দিচ্ছে কিনা তা যাচাই করুন এবং ব্যাকএন্ড সার্ভার দ্বারা প্রত্যাবর্তিত ত্রুটি বার্তা (প্রতিক্রিয়া) পরীক্ষা করুন এবং এই ত্রুটির কারণ নির্ধারণ করুন।
ব্যাকএন্ড সার্ভার লগ
ব্যাকএন্ড সার্ভার লগ ব্যবহার করে
- ব্যাকএন্ড সার্ভার লগগুলি পর্যালোচনা করুন এবং ত্রুটি এবং এর কারণ সম্পর্কে আরও বিস্তারিত জানার চেষ্টা করুন৷
- যদি সম্ভব হয়, ত্রুটি এবং কারণ সম্পর্কে আরও বিশদ পেতে ব্যাকএন্ড সার্ভারে ডিবাগ মোড সক্ষম করুন৷
- ট্রেসে, API অনুরোধটি নির্বাচন করুন যা
আপনি ব্যর্থ API প্রক্সির নির্দিষ্ট লক্ষ্য এন্ডপয়েন্টে প্রক্সি চেইনিং ব্যবহার করছেন কিনা তা পরীক্ষা করুন; অর্থাৎ, যদি টার্গেট সার্ভার/টার্গেট এন্ডপয়েন্ট Apigee Edge-এ অন্য প্রক্সি আহ্বান করে। এটি নির্ধারণ করতে:
যদি আপনার কাছে ব্যর্থ অনুরোধের ট্রেস থাকে, তাহলে লক্ষ্য সার্ভার পর্বে পাঠানো অনুরোধে নেভিগেট করুন এবং কার্ল দেখান ক্লিক করুন।
- টার্গেট সার্ভারে পাঠানো অনুরোধের জন্য কার্ল উইন্ডোটি খোলে যেখান থেকে আপনি লক্ষ্য সার্ভার হোস্ট উপনাম নির্ধারণ করতে পারেন।
- আপনার API প্রক্সির টার্গেট এন্ডপয়েন্ট পর্যালোচনা করুন এবং লক্ষ্য সার্ভারের ব্যাকএন্ড সার্ভার URL বা হোস্টের নাম অন্য প্রক্সি বা আপনার নিজস্ব ব্যাকএন্ড সার্ভারের দিকে নির্দেশ করে কিনা তা পরীক্ষা করুন৷
- যদি লক্ষ্য সার্ভার হোস্ট উপনাম একটি ভার্চুয়াল হোস্ট উপনাম নির্দেশ করে, তাহলে এটি প্রক্সি চেইনিং। এই ক্ষেত্রে,
500 Internal Server Error
আসলে কী ঘটছে তা নির্ধারণ না করা পর্যন্ত আপনাকে চেইনড প্রক্সির জন্য উপরের সমস্ত পদক্ষেপগুলি পুনরাবৃত্তি করতে হবে। এই ক্ষেত্রে500 Internal Server Error
অন্যান্য পর্যায়ে অন্যান্য শৃঙ্খলিত প্রক্সিগুলিতেও ঘটতে পারে যা এই প্লেবুক বা 500 অভ্যন্তরীণ সার্ভার ত্রুটি প্লেবুকে দেওয়া নির্দেশাবলী ব্যবহার করে নির্ণয় এবং সমাধান করা যেতে পারে। - যদি লক্ষ্য সার্ভার হোস্ট ওরফে আপনার ব্যাকএন্ড সার্ভারের দিকে নির্দেশ করে, তাহলে রেজোলিউশনে যান।
রেজোলিউশন
যদি এটি নিশ্চিত করা হয় যে 500
ত্রুটিটি ব্যাকএন্ড সার্ভার থেকে আসছে, তাহলে সমস্যাটি যথাযথভাবে সমাধান করতে আপনার ব্যাকএন্ড সার্ভার দলের সাথে কাজ করুন।
উপরে আলোচনা করা উদাহরণে, এই সমস্যাটি সমাধান করার জন্য আপনাকে ব্যবহারকারীদের বৈধ শংসাপত্র পাস করার অনুরোধ করতে হতে পারে।
উল্লেখ্য মূল পয়েন্ট
-
500 Internal Server Error
জন্য ব্যাকএন্ড সার্ভার দ্বারা প্রত্যাবর্তিত প্রকৃত ত্রুটি বার্তাটি কেবল তখনই দেখা যাবে যদি আপনি ব্যর্থ অনুরোধগুলির জন্য ট্রেস সেশনটি ক্যাপচার করেন৷ - নিরাপত্তার কারণে ব্যাকএন্ড সার্ভারের প্রতিক্রিয়া API মনিটরিং, NGINX অ্যাক্সেস লগ, বা মেসেজ প্রসেসর লগ ইন করা হবে না।
- আপনি ব্যাকএন্ড সার্ভার লগগুলি পর্যালোচনা করতে পারেন বা
500 Internal Server Error
সম্পর্কে আরও বিশদ পেতে এবং/অথবা ব্যাকএন্ড সার্ভার দ্বারা ফিরে আসা ত্রুটি বার্তাটি দেখতে ব্যাকএন্ডে ডিবাগ মোড সক্ষম করতে পারেন৷
ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে
উপরের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন এবং Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।
আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:
- প্রতিষ্ঠানের নাম
- পরিবেশের নাম
- API প্রক্সি নাম
-
500
ত্রুটি পুনরুত্পাদন করতেcurl
কমান্ডটি সম্পূর্ণ করুন -
500 Internal Server Error
সহ অনুরোধ ধারণকারী ট্রেস ফাইল - যদি বর্তমানে
500
ত্রুটি না ঘটছে তবে অতীতে500
ত্রুটি ঘটেছে এমন সময় অঞ্চলের তথ্য সহ সময়কাল প্রদান করুন।
আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:
- ব্যর্থ অনুরোধের জন্য পরিলক্ষিত সম্পূর্ণ ত্রুটি বার্তা
- প্রতিষ্ঠান, পরিবেশের নাম, এবং API প্রক্সি নাম যার জন্য আপনি
500
ত্রুটি পর্যবেক্ষণ করছেন - API প্রক্সি বান্ডেল
-
500 Internal Server Error
সহ অনুরোধ ধারণকারী ট্রেস ফাইল - 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
- টাইমজোন তথ্য সহ সময়কাল যখন
500
ত্রুটি ঘটেছে।