TRANXACT.AI সাহায্য

সিস্টেম মনিটর: কর্মপ্রক্রিয়া, ট্রেস, লক এবং সেশন

প্ল্যাটফর্মটি এই মুহূর্তে কী করছে, এর পেছনের ডেটাবেসের কাজ, এটি যে লকগুলো ধরে রেখেছে এবং কারা সাইন ইন করে আছে — আর এই সবকিছু কীভাবে বন্ধ করা যায়।

ওয়ার্ক প্রসেস, সিস্টেম ট্রেস এবং লকগুলো প্ল্যাটফর্ম → অপারেশনস → হেলথ-এর অধীনে, ইন্টিগ্রেশন, পাইপলাইন এবং ওয়ার্কফ্লো হেলথ স্ক্রিনগুলোর পাশে অবস্থিত; ওয়েব ও ইউজার সেশনগুলো প্ল্যাটফর্ম → অ্যাক্সেস-এর অধীনে, ইউজার্স-এর পাশে অবস্থিত। প্রত্যেকটির নিজস্ব অনুমতি রয়েছে, তাই একটি অপারেশনস রোলকে সিস্টেম পর্যবেক্ষণ করার এবং একটি অনিয়ন্ত্রিত কোয়েরি বাতিল করার অনুমতি দেওয়া যেতে পারে, কিন্তু একই সাথে সবাইকে সাইন আউট করার অনুমতি নাও দেওয়া হতে পারে।

কাজের প্রক্রিয়া

উত্তর দেওয়া হচ্ছে এমন প্রতিটি অনুরোধ, প্রতিটি ব্যাকগ্রাউন্ড ওয়ার্কার (শিডিউলার, মেইলার, প্রসেস মাইনিং, ডেটা রিটেনশন, ই-সিগনেচার সুইপস, এস্টেট রিপোর্টার) এবং প্রতিটি চলমান কন্টেইনারের প্রতিটি ব্যাচ রান—এগুলোর প্রতিটিই সেই মুহূর্তে ব্যবহৃত ডাটাবেস ব্যাকএন্ডের সাথে সংযুক্ত। এর নিচে, প্রতিটি ডাটাবেস কানেকশনের অবস্থা, এটি কিসের জন্য অপেক্ষা করছে, এর স্টেটমেন্ট ও ট্রানজ্যাকশন কতক্ষণ ধরে খোলা আছে, কে এটিকে ব্লক করেছে এবং কোন অনুরোধ বা জব এটিকে পাঠিয়েছে, তা দেখা যায়।

  • Cancel বর্তমানে চলমান স্টেটমেন্টটি থামিয়ে দেয়; ফলে অনুরোধটি অপেক্ষা না করে একটি ত্রুটির মাধ্যমে শেষ হয়ে যায়। একাধিক সারি টিক দিয়ে সেগুলোকে একসাথে থামাতে Cancel selected ব্যবহার করুন।
  • ব্যাচ রানের ক্ষেত্রে, Cancel বোতামটি রানটিকে পরবর্তী আইটেমে থামিয়ে দেয় — কোনো আইটেম মাঝপথে পরিত্যক্ত হয় না — এবং রানটি যতটুকু সম্পন্ন করেছিল, তা সহই বাতিল হিসেবে রেকর্ড করা হয়।
  • End (ডাটাবেস ব্যাকএন্ডে) সেই কানেকশনটি বন্ধ করে দেয় এবং এর ট্রানজ্যাকশনটি রোলব্যাক করে। এটি এমন সেশনের জন্য ব্যবহার করুন যা "আইডল ইন ট্রানজ্যাকশন" অবস্থায় আছে এবং লক ধরে রেখেছে, যেখানে Cancel পৌঁছাতে পারে না কারণ তখন আর কিছুই চলছে না।
  • অন্য কন্টেইনারের কাজ সেই কন্টেইনারের মাধ্যমেই বাতিল করা হয়: এটি দশ সেকেন্ডের মধ্যে কার্যকর হয়।
  • প্রতিটি বাতিল এবং সমাপ্তির জন্য কারণ জানতে চাওয়া হয়, যা আপনার নামসহ অডিট লগে নথিভুক্ত হয়।

সিস্টেম ট্রেস

ট্রেস (যেকোনো ওয়ার্ক বা ব্যাকএন্ডে) একটি প্রসেসকে সম্পূর্ণরূপে খুলে দেয়: এর পাঠানো প্রতিটি স্টেটমেন্ট, প্রতিটির জন্য নেওয়া সময় এবং ফেরত দেওয়া সারিগুলো, এটি যে লকগুলো ধরে রাখে ও যেগুলোর জন্য অপেক্ষা করে, এর সামনের সেশনগুলোর ক্রম, এর পিছনে সারিবদ্ধ সেশনগুলো, এবং বর্তমানে চলমান কোয়েরির প্ল্যান (যদি নিরাপদে দেখানো যায়)। সিস্টেম ট্রেসেস স্ক্রিনটি সবচেয়ে ধীরগতির এবং সাম্প্রতিকতম ওয়ার্কের তালিকা দেখায়, এবং — যেখানে ডাটাবেসে pg_stat_statements থাকে — সেখানে সেই স্টেটমেন্টগুলোর তালিকা দেখায় যেগুলো ডাটাবেসের সবচেয়ে বেশি সময় ব্যবহার করেছে। ব্যবহারকারীদের টাইপ করা মান কখনোই রেকর্ড করা হয় না: সেগুলো ব্যক্তিগত তথ্যের জায়গায় থাকে।

তালা

যেসব লকের জন্য অপেক্ষা করা হচ্ছে, যেসব লক কাউকে ব্লক করে রেখেছে, অ্যাডভাইজরি লক (স্কিমা মাইগ্রেশন লকটি এর মধ্যে একটি), এবং যেসব ব্যাচ রান এখনও "রানিং" দেখাচ্ছে। একটি লককে স্টেল (stale) হিসেবে চিহ্নিত করা হয় যখন সেটিকে ধারণকারী ট্রানজ্যাকশনটি আপনার সেট করা থ্রেশহোল্ডের (ডিফল্টরূপে পাঁচ মিনিট) চেয়ে বেশি সময় ধরে নিষ্ক্রিয় থাকে, অথবা যখন কোনো চলমান কন্টেইনার ব্যাচ রানটির দাবি করে না — যে রানের কন্টেইনার বন্ধ হয়ে গেছে সেটি আর কখনও শেষ হবে না, এবং সেটিকে রিলিজ না করা পর্যন্ত এর শিডিউলও আবার চলবে না।

  • সমস্ত পুরোনো লক নির্বাচন করুন, তারপর নির্বাচিতগুলো রিলিজ করুন। PostgreSQL শুধুমাত্র তখনই একটি লক ফেরত দেয় যখন সেটিকে ধরে রাখা সেশনটি শেষ হয়ে যায়, তাই রিলিজ সেই সেশনটি শেষ করে দেয় এবং এর ট্রানজ্যাকশনটি রোলব্যাক করে।
  • একটি অচল লক প্রত্যাখ্যান করা হয়, যদি না আপনি ‘ফোর্স রিলিজ’ বিকল্পটি বেছে নেন — এই মুহূর্তে লক ধরে রাখা একটি সুস্থ লেনদেন শেষ করার ক্লিকটিই সেই সমস্যাটি ঘটায়, যা সমাধান করার জন্য এটি করা হয়েছিল।
  • একটি পুরনো ব্যাচ রান রিলিজ করলে তা ব্যর্থ হিসেবে চিহ্নিত হয়, ফলে এর শিডিউলটি আবার চলতে পারে।

ওয়েব ও ব্যবহারকারী সেশন

প্রতিটি ওয়েব সেশন (প্রতি ব্রাউজার বা ডিভাইসের জন্য একটি) এবং সাইন-ইন করা প্রত্যেক ব্যক্তি, এবং তারা এই মুহূর্তে কী করছে তা এখানে দেখা যাবে। ব্যক্তি অনুসারে এবং সেশন অনুসারে পরিবর্তন করুন, নাম, ঠিকানা বা উৎস দ্বারা ফিল্টার করুন, এবং একটি সেশন, একজন ব্যক্তির সমস্ত সেশন, নির্বাচিত কিছু সেশন, অথবা আপনাকে ছাড়া বাকি সবাইকে সাইন আউট করুন। সার্ভিস অ্যাকাউন্টগুলোও এখানে দেখা যায়, প্রতি টোকেনের জন্য একটি সেশন। আপনার নিজের সেশন কোনো সম্মিলিত পদক্ষেপের মাধ্যমে কখনো শেষ করা হয় না।

অনুমতি দিলে, প্ল্যাটফর্মের অধীনে রোলস স্ক্রিনে: ওয়ার্ক প্রসেস — পর্যবেক্ষণের জন্য প্রদর্শন করুন, বাতিল করার জন্য পরিবর্তন করুন, এবং একটি ব্যাকএন্ড বন্ধ করার জন্য ডিলিট করুন। সিস্টেম ট্রেস — প্রদর্শন করুন। লক — পর্যবেক্ষণের জন্য প্রদর্শন করুন, রিলিজ করার জন্য ডিলিট করুন। ওয়েব ও ইউজার সেশন — পর্যবেক্ষণের জন্য প্রদর্শন করুন, এবং ব্যবহারকারীদের সাইন আউট করার জন্য ডিলিট করুন। একজন অ্যাডমিনিস্ট্রেটর এই সবগুলোর অধিকারী হন। একটি মাল্টি-টেন্যান্ট ডেপ্লয়মেন্টে প্রতিটি টেন্যান্ট শুধুমাত্র তার নিজের কাজ এবং তার নিজের ডাটাবেস সংযোগগুলো দেখতে পায়।