স্ট্যাটাস রেসপন্স কোড

নিম্নলিখিত স্ট্যাটাস কোডগুলি জিআরপিসি প্রতিক্রিয়াগুলিতে ফেরত দেওয়া যেতে পারে। এই সাইটে নথিভুক্ত gRPC-এর সমস্ত সংস্করণের জন্য এটি প্রযোজ্য।

কোড স্ট্যাটাস মন্তব্য
0 OK Success ফিরে
1 CANCELLED অপারেশনটি বাতিল করা হয়েছে, সাধারণত কলার দ্বারা।
2 UNKNOWN উদাহরণস্বরূপ, এই ত্রুটিটি ফেরত দেওয়া হতে পারে যখন অন্য ঠিকানা স্থান থেকে প্রাপ্ত একটি স্ট্যাটাস মান একটি ত্রুটি-স্থানের অন্তর্গত হয় যা এই ঠিকানার স্থানটিতে পরিচিত নয়। এছাড়াও API-এর দ্বারা উত্থাপিত ত্রুটিগুলি যা যথেষ্ট ত্রুটির তথ্য প্রদান করে না এই ত্রুটিতে রূপান্তরিত হতে পারে৷
3 INVALID_ARGUMENT ক্লায়েন্ট একটি অবৈধ যুক্তি নির্দিষ্ট করেছে৷
4 DEADLINE_EXCEEDED অপারেশন সম্পূর্ণ হওয়ার আগেই সময়সীমা শেষ হয়ে গেছে। সিস্টেমের অবস্থা পরিবর্তন করে এমন অপারেশনগুলির জন্য, অপারেশনটি সফলভাবে সম্পন্ন হলেও এই ত্রুটিটি ফিরে আসতে পারে। উদাহরণস্বরূপ, একটি সার্ভার থেকে একটি সফল প্রতিক্রিয়া যা সময়সীমা শেষ হওয়ার জন্য যথেষ্ট দেরি হয়েছিল৷
5 NOT_FOUND কিছু অনুরোধ করা সত্তা খুঁজে পাওয়া যায়নি.
6 ALREADY_EXISTS একটি ক্লায়েন্ট তৈরি করার চেষ্টা করেছে এমন সত্তা ইতিমধ্যেই বিদ্যমান।
7 PERMISSION_DENIED কলারের নির্দিষ্ট অপারেশন চালানোর অনুমতি নেই। কিছু সম্পদ নিঃশেষ করার কারণে প্রত্যাখ্যানের জন্য PERMISSION_DENIED ব্যবহার করবেন না; সেই ত্রুটিগুলির জন্য পরিবর্তে RESOURCE_EXHAUSTED ব্যবহার করুন৷ যদি কলকারীকে সনাক্ত করা না যায় তবে PERMISSION_DENIED ব্যবহার করবেন না (সেই ত্রুটিগুলির জন্য UNAUTHENTICATED ব্যবহার করুন)। একটি PERMISSION_DENIED ত্রুটি কোড প্রাপ্ত করার জন্য অনুরোধটি বৈধ বা অনুরোধ করা সত্তা বিদ্যমান বা অন্যান্য পূর্ব-শর্তগুলিকে সন্তুষ্ট করে তা বোঝায় না৷
8 RESOURCE_EXHAUSTED কিছু রিসোর্স শেষ হয়ে গেছে, সম্ভবত একটি প্রতি-ব্যবহারকারী কোটা, অথবা সম্ভবত পুরো ফাইল সিস্টেমটি স্থানের বাইরে।
9 FAILED_PRECONDITION অপারেশনটি প্রত্যাখ্যান করা হয়েছে কারণ অপারেশনটি কার্যকর করার জন্য সিস্টেমটি প্রয়োজনীয় অবস্থায় নেই৷ উদাহরণস্বরূপ, যে ডিরেক্টরিটি মুছে ফেলা হবে সেটি খালি নয় বা একটি অ-ডিরেক্টরিতে rmdir অপারেশন প্রয়োগ করা হয়।
10 ABORTED অপারেশনটি স্থগিত করা হয়েছিল, সাধারণত একটি সিকোয়েন্সার চেক ব্যর্থতা বা লেনদেন বাতিলের মতো একযোগে সমস্যার কারণে।
11 OUT_OF_RANGE অপারেশনটি বৈধ পরিসীমা অতিক্রম করার চেষ্টা করা হয়েছে৷
12 UNIMPLEMENTED অপারেশনটি বাস্তবায়িত হয় না বা এই পরিষেবাতে সমর্থিত/সক্ষম নয়৷
13 INTERNAL অভ্যন্তরীণ ত্রুটি. এর মানে হল যে অন্তর্নিহিত সিস্টেমের দ্বারা প্রত্যাশিত কিছু invariants ভেঙে গেছে। এই ত্রুটি কোড গুরুতর ত্রুটির জন্য সংরক্ষিত.
14 UNAVAILABLE পরিষেবাটি বর্তমানে অনুপলব্ধ৷ এটি সম্ভবত একটি ক্ষণস্থায়ী অবস্থা যা ব্যাকঅফের সাথে পুনরায় চেষ্টা করলে সংশোধন করা যেতে পারে।
15 DATA_LOSS পুনরুদ্ধারযোগ্য ডেটা ক্ষতি বা দুর্নীতি।
16 UNAUTHENTICATED অনুরোধটির অপারেশনের জন্য বৈধ প্রমাণীকরণ শংসাপত্র নেই৷

কখনও কখনও একাধিক ত্রুটি কোড প্রযোজ্য হতে পারে. পরিষেবাগুলি প্রযোজ্য সবচেয়ে নির্দিষ্ট ত্রুটি কোডটি ফেরত দেবে। উদাহরণস্বরূপ, FAILED_PRECONDITION এর চেয়ে OUT_OF_RANGE পছন্দ করুন যদি উভয় কোডই প্রযোজ্য হয়। একইভাবে, FAILED_PRECONDITION এর চেয়ে NOT_FOUND বা ALREADY_EXISTS পছন্দ করুন।

FAILED_PRECONDITION বনাম ABORTED বনাম অনুপলব্ধ

নিম্নলিখিত একটি লিটমাস পরীক্ষা যা আপনাকে FAILED_PRECONDITION , ABORTED এবং UNAVAILABLE মধ্যে সিদ্ধান্ত নিতে সাহায্য করতে পারে:

  • UNAVAILABLE ব্যবহার করুন যদি ক্লায়েন্ট শুধুমাত্র ব্যর্থ কল পুনরায় চেষ্টা করতে পারে।
  • ABORTED ব্যবহার করুন যদি ক্লায়েন্টকে উচ্চ-স্তরে পুনরায় চেষ্টা করা উচিত, যেমন যখন একটি ক্লায়েন্ট-নির্দিষ্ট পরীক্ষা-এবং-সেট ব্যর্থ হয় যা নির্দেশ করে যে ক্লায়েন্টের একটি পঠন-সংশোধন-লেখার ক্রম পুনরায় চালু করা উচিত।
  • FAILED_PRECONDITION ব্যবহার করুন যদি সিস্টেমের অবস্থা স্পষ্টভাবে ঠিক না হওয়া পর্যন্ত ক্লায়েন্ট পুনরায় চেষ্টা না করে। উদাহরণস্বরূপ, যদি একটি "rmdir" ব্যর্থ হয় কারণ ডিরেক্টরিটি খালি না থাকে, তাহলে FAILED_PRECONDITION ফেরত দেওয়া ভাল কারণ ক্লায়েন্টকে ফাইলগুলি ডিরেক্টরি থেকে মুছে না দেওয়া পর্যন্ত পুনরায় চেষ্টা করা উচিত নয়।

INVALID_ARGUMENT বনাম FAILED_PRECONDITION বনাম OUT_OF_RANGE

নিম্নলিখিতটি একটি লিটমাস পরীক্ষা যা আপনাকে INVALID_ARGUMENT , FAILED_PRECONDITION , এবং OUT_OF_RANGE এর মধ্যে সিদ্ধান্ত নিতে সাহায্য করতে পারে :

  • সিস্টেমের অবস্থা নির্বিশেষে আর্গুমেন্ট সমস্যাযুক্ত হলে INVALID_ARGUMENT ব্যবহার করুন। যেমন: একটি বিকৃত URL
  • সিস্টেমের অবস্থার কারণে কোনো মান পরিসীমার বাইরে থাকলে OUT_OF_RANGE ব্যবহার করুন। উদাহরণস্বরূপ, start_date হল start_date_restrict এর আগে।
  • সিস্টেমের অবস্থার কারণে মানটি অবৈধ হলে FAILED_PRECONDITION ব্যবহার করুন, কিন্তু এটি একটি OUT_OF_RANGE মান নয়৷