সম্পাদনা / উপস্থাপনা: ডিবি লিংক কোয়েরিতে সময়সীমা সম্পর্কে আমি বিশেষত আগ্রহী হওয়ায় এই প্রশ্নটি এসও থেকে স্থানান্তরিত হয়েছে। এসও থেকে সরবরাহকৃত কাজটি কিছুটা ঠিক আছে তবে আমি নিজেই প্রশ্নটিতে আগ্রহী।
অনুপ্রেরণা:
আমার কাছে একটি জিজ্ঞাসা ছিল "চিরদিনের জন্য" (2 দিনের বেশি, আমি অধিবেশনটি মেরে ফেলা পর্যন্ত) যা ডেটাবেস লিঙ্কটি ব্যবহার করে। সমস্যাটি দেখে মনে হয়েছিল যে রিমোট ডাটাবেসটি অনুপলব্ধ হয়ে গেছে এবং এখনও কিছু অজানা কারণে কোনও ORA-02068
উত্থাপিত হয়নি (এখানে আলোচনা করা হবে না) এবং কোয়েরিটি কেবল অপেক্ষা করেছিল এবং অপেক্ষা করেছিল।
(ক্যোয়ারী একটি dbms_scheduler কাজ দ্বারা জারি করা হয়েছে, যা একটি পিএল / এসকিউএল প্যাকেজে একটি প্রক্রিয়া চালায় a ফলস্বরূপ, কাজটিও আটকে ছিল But তবে এটি এই প্রশ্নের মূল বিষয়টির জন্য বিশেষ আগ্রহী নয়))
আমি আমার পরীক্ষার একটি ডিবি চুপচাপ মোডে রেখে এই পরিস্থিতিটি অনুকরণ করেছি এবং এটি একটি ডাটাবেসের লিঙ্কে অনুসন্ধান করেছি। প্রত্যাশিত হিসাবে, ক্যোয়ারীটি ম্যানুয়ালি বাতিল হওয়া বা দূরবর্তী ডিবি অদৃশ্য না হওয়া পর্যন্ত অপেক্ষা করছিল।
প্রশ্ন:
রিমোট ডাটাবেসের আচরণ এবং আপ-টাইমের উপর আমার কোনও নিয়ন্ত্রণ নেই, তাই ডাটাবেস লিঙ্কটি ব্যবহার করে এমন কোনও প্রশ্নের জন্য একটি সময়সীমা নির্ধারণের জন্য আমি কিছুটা সম্ভাবনার সন্ধান করছি।
আমি ইতিমধ্যে প্রোফাইল ( CPU_PER_CALL
ইত্যাদি), sqlnet.ora
প্যারামিটারগুলি দেখেছি , স্থানীয় নামকরণের প্যারামিটারগুলি সরাসরি সংযুক্ত স্ট্রিংয়ের (যেমন (connect_timeout=10)
ডেটাবেস লিঙ্ক সংজ্ঞাতে যুক্ত করা) যুক্ত করে একটি কমান্ড চালিয়েছি ... for update wait 1
, তবে তারা হয় ব্যস্ত বা নিষ্ক্রিয় সেশনের জন্য কাজ করে তবে তা নয় অপেক্ষা অধিবেশন জন্য।
সুতরাং আমি ডাটাবেস লিঙ্কের "স্থানীয়" পাশের কিছু বিকল্পের সন্ধানে যাচ্ছি, যা ধরণের ডেটাবেস লিঙ্কগুলির উপর প্রশ্নের জন্য একটি সময়সীমা নির্ধারণ করে।
কিছু নির্দিষ্ট সমাধানের মতো alter session set xyz
বা select ... from a@b "wait 100" --(yes, I know this syntax doesn't exist)
প্রশংসা করা হবে, কারণ এই নির্দিষ্ট ডিবিগুলিতে আমার কোনও ডিবিএ অধিকার নেই।
আমি বর্তমানে 10gR2 এ আছি তবে কয়েক সপ্তাহের মধ্যে 11gR2 এ আপগ্রেড করছি, সুতরাং এই সংস্করণের যে কোনওটির জন্য ধারণা কার্যকর হবে।