আমরা যে কয়েকটি ব্লকিংয়ের মুখোমুখি হয়েছি তা সনাক্ত করতে আমার সত্যিই সমস্যা হচ্ছে।
রুট SPID স্থিতি অবরুদ্ধ করে 'ঘুমন্ত', cmd কমান্ড 'কম্যান্ড AWAITING' করা হয়, এবং sqltext
হয় SET TRANSACTION ISOLATION LEVEL READ COMMITTED
।
আমি যখন অবরুদ্ধ লেনদেনগুলি গণনা প্রতিবেদনের মাধ্যমে শীর্ষস্থানীয় লেনদেনগুলি দেখি, এসকিউএল-এর বিবৃতি অবরুদ্ধ করা হয় '-'।
আমি এসকিউএল-তে একটি ট্রেস সম্পাদন করেছি এবং যখন ব্লকিংয়ের ফলে রুট ব্লক করা এসপিআইডিটি সনাক্ত করা হয় তবে এটি আমাকে কোথাও নিয়ে যায়নি। শেষ ট্রেস স্টেটমেন্ট sqltext
উপরের মত একই SET TRANSACTION ISOLATION LEVEL READ COMMITTED
।
আমি সম্পর্কিত সমস্ত সঞ্চিত পদ্ধতি পরীক্ষা করে দেখেছি যে তারা নিশ্চিত / ক্যাচ বগিন ট্রান / কমিট ট্রান / রোলব্যাক ট্রান বিবৃতি রয়েছে তা নিশ্চিত করতে পারি (আমরা সমস্ত কিছুর জন্য সঞ্চিত প্রক্রিয়া ব্যবহার করি যাতে কোনও স্ট্যান্ডেলোন স্টেটমেন্ট থাকে না)। এই সমস্যাটি সবেমাত্র গত 24 ঘন্টা ধরেই শুরু হয়েছিল এবং কেউ সিস্টেমে কোনও পরিবর্তন করেছে বলে দাবি করছে না।
সমাধান: আমাদের মধ্যে খুব কম ব্যবহৃত স্টোরেজ পদ্ধতিতে একটি সন্নিবেশের সাথে ত্রুটি ছিল (কলামগুলির সংখ্যা মেলে না), তবে ঠিক কী ঘটছে তা নিয়ে আমরা এখনও বিভ্রান্ত।
সমস্ত ট্রেস তথ্যের দিকে তাকানোর সময়, এই সঞ্চিত পদ্ধতির জন্য এক্সেক স্টেটমেন্টটি সময়ে তালিকাভুক্ত করা হত, তবে ব্লকিং এসপিআইডি-তে ব্লক হওয়ার ঠিক আগে কখনও হয়নি। দেখে মনে হয়েছিল এটি ব্লক করা শুরু করার পরে, ট্রেস এটি কার্যকর করা রেকর্ড করে নি (বা এর মধ্যে থাকা কোনও বিবৃতি)। তবে অন্যান্য সময় রয়েছে যে ট্রেসটি এটি কার্যকর করে রেকর্ড করেছিল এবং কোনও ব্লকিং ঘটেনি।
সঞ্চিত পদ্ধতি ত্রুটির প্রতিবেদনটি একজন ব্যবহারকারীর কাছ থেকে এসেছিল এবং আমি একাধিক এক্সইসি স্টেটমেন্টগুলি ট্রেস করে খুঁজে এসএসএমএসে চালাতে সক্ষম হয়েছি। আমি তাদের চালানোর সময় কখনই আমাদের কোনও অবরুদ্ধ ঘটনা ঘটেনি বা তারা ঝুলছে। তারা প্রত্যাশা মতো দৌড়েছিল (ক্যাচের ব্লকটি ত্রুটির পরে লেনদেনটিকে ফিরিয়ে নিয়েছিল এবং ফেরৎ নিয়ে গেছে)। সঞ্চিত প্রক্রিয়া ঠিক করার পরে, আমরা আবার সমস্যাটি দেখিনি।