আরাকজিআইএস সার্ভার দ্বারা প্রেরিত এসকিউএল অনুসন্ধানগুলি কীভাবে ট্রেড করবেন (আরকএসডিইডি) ওরাকল ডাটাবেসে?


12

আমি ওরাকল ডাটাবেসে আরকজিআইএস সার্ভার (আর্কেএসডিই) দ্বারা প্রেরিত সমস্ত এসকিউএল কোয়েরি যুক্ত একটি লগ ফাইল তৈরি করতে চাই। এটি করার কোন উপায় আছে? আমি উইন্ডোজটিতে ওরাকল 11 জি এবং আরকজিআইএস সার্ভার 10.0 ব্যবহার করছি। আরকএসডিই সরাসরি সংযোগে ব্যবহৃত হয়।


3
আপনি ওরাকলের ট্রেসিং এবং অডিটিং ব্যবহার করতে পারেন। : এই প্রশ্ন কটাক্ষপাত আছে stackoverflow.com/questions/7914354/oracle-sql-query-logging
Devdatta Tengshe

আপনি রিয়েল টাইম ট্র্যাকিং লগের জন্য টড কোয়েস্ট ব্যবহার করতে পারেন।

উত্তর:


13

যে কোনও আরকএসডি কানেকশনটি ট্রেস করার বিভিন্ন উপায় রয়েছে। ক্লায়েন্ট অ্যাপ্লিকেশন এবং আরএসএসডিই ক্লায়েন্টের মধ্যে কল এসডিই ট্রেস ফাইলে লগইন হয়েছে, এসডিইডি ইন্টারেপেট ফাইলে আরকিএসডিই ক্লায়েন্ট এবং সার্ভারের মধ্যে, আরএসএসডিএ সার্ভার পরিষেবাটিতে নির্দিষ্ট ইভেন্টগুলি লগ করবে বা সরাসরি সংযুক্ত লগ করবে এবং ডাটাবেস কলগুলি লগইন হবে ডিবিএমএস লগফাইলগুলি।

-------------------------------------------------------------
|                                                           |
|  Client (ArcObject, ArcCatalog, ArcGIS Server, ArcIMS...) |
|                                                           |
-------------------------------------------------------------
      |
      |
     \|/
------------------ --------> SDE Trace
|                |  
|  ArcSDE Client |
|                |  
------------------ --------> SDE Intercept
      |
      |
     \|/
------------------- --------> SDE Intercept
|                 | 
|  ArcSDE Server  | --------> ArcSDE Service Logfile, or direct connect log
|                 |  
------------------- 
      |
      |
     \|/
------------------
|                |  
|  DBMS          | -----------> DBMS logfiles or trace
|                |  
------------------      

আর্কএসডিই ট্রেস ফাইলগুলি আর্কএসডিই ক্লায়েন্টকে করা প্রতিটি কল লগ করে। এই ফাইলগুলি সাধারণত বড় এবং গোলমাল হয়। মধ্যে SDETraceLoc এবং SDETraceMode তাকান dbinit সাহায্যের । আপনি অ্যাপ্লিকেশন শুরু করার আগে এই মানগুলি পরিবেশ পরিবর্তনশীল হিসাবেও সেট করা যেতে পারে, এটি অ্যাপ্লিকেশন এবং সরাসরি সংযোগের জন্য কাজ করে।

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

% SDE_HOME% \ ইত্যাদি ফোল্ডারে আরকিএসডিই সার্ভিস লগফিলস, বা% SDE_Home% \ ইত্যাদি বা% TEMP% ফোল্ডারে সরাসরি সংযোগ লগফিলগুলিতে পরিষেবাটি বা সংযোগের সাথে কী চলছে সে সম্পর্কে সাধারণ তথ্য রয়েছে। লগ করা হচ্ছে এমন তথ্যের পরিমাণ এসডিইভির্ভোজ ভেরিয়েবল ( ডাবিনিট সহায়তা ) দিয়ে বাড়ানো যেতে পারে ।

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

অন্যান্য লিঙ্ক: আরও গভীর খনন - আরকিএসডিই ডেটা ব্যবহার করার সময় জিওপ্রসেসিং ত্রুটির সমস্যা সমাধানের


এই চিত্রটিতে ট্রেস এবং ইন্টারসেপ্ট অবস্থানগুলি ভুল (ট্রেসটি আরকিএসডিই ক্লায়েন্ট এবং আরকএসডিই সার্ভারের মধ্যে এপিআই-এর ভিতরে রয়েছে, এবং ইন্টারসেপ্টগুলি সার্ভার এবং আরডিবিএমএসের মধ্যে রয়েছে)। অ্যাপ্লিকেশন লগিং যেমন আর্কজিআইএস সার্ভারের আউটপুট ক্লায়েন্ট অ্যাপ্লিকেশন এবং আরকএসডিইপি এপিআইয়ের মধ্যে বসে।
ভিন্স

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

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

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

আমি সাধারণত ইন্টারসেপ্ট আউটপুটটিকে লক্ষ্য করি না, তবে আমি কেবলমাত্র API কলগুলির ('sdelist -o স্তরগুলি') উভয় ট্রেস এবং ইন্টারসেপ্ট সক্ষম করেই চালিত করেছি এবং এটি দুটি ইন্টারসেপ্ট ফাইল জেনারেট করে বলে মনে হচ্ছে (এসকিউএল ইন্টারঅ্যাকশন আই ব্যতীত) মনে আছে), সুতরাং দেখে মনে হচ্ছে আমরা এতে একমত হতে পারি :)
ভিন্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.