আমি সংযোগের স্ট্রিংটি সংশোধন করে টাইমআউট বাড়াতে পারি web.config
?
আমি সংযোগের স্ট্রিংটি সংশোধন করে টাইমআউট বাড়াতে পারি web.config
?
উত্তর:
হ্যাঁ, আপনি ;Connection Timeout=30
আপনার সংযোগের স্ট্রিংয়ে সংযোজন করতে পারেন এবং আপনার পছন্দসই মানটি নির্দিষ্ট করতে পারেন।
Connection Timeout
সম্পত্তিতে টাইমআউট মান সেট করা সেকেন্ডে প্রকাশিত সময় । যদি এই সম্পত্তিটি সেট না করা থাকে তবে সংযোগের সময়সীমা মান হ'ল ডিফল্ট মান (15 সেকেন্ড)।
তদুপরি, সময়সীমা মানটি সেট করে 0
আপনি উল্লেখ করছেন যে আপনার সংযোগের প্রয়াস অসীম সময়ের জন্য অপেক্ষা করছে। ডকুমেন্টেশনে বর্ণিত হিসাবে, এটি এমন কিছু যা আপনার সংযোগের স্ট্রিংয়ে সেট করা উচিত নয়:
0 এর মান কোনও সীমাবদ্ধতা নির্দেশ করে না এবং একটি সংযোগস্ট্রিং এ এড়ানো উচিত কারণ সংযোগের চেষ্টা অনির্দিষ্ট সময়ের জন্য অপেক্ষা করে।
হুমমম ...
ডারিন যেমন বলেছিলেন, আপনি একটি উচ্চ সংযোগের সময়সীমা মান নির্দিষ্ট করতে পারেন তবে আমি সন্দেহ করি এটি সত্যিই সমস্যা।
আপনি যখন সংযোগের সময়সীমা পান, সাধারণত নিম্নলিখিতগুলির মধ্যে একটিতে এটি সমস্যা:
নেটওয়ার্ক কনফিগারেশন - আপনার ওয়েব সার্ভার / ডেভ বাক্স এবং এসকিউএল সার্ভারের মধ্যে ধীর সংযোগ। সময়সীমা বাড়ানো এটিকে সংশোধন করতে পারে তবে অন্তর্নিহিত সমস্যাটি তদন্ত করা বুদ্ধিমানের কাজ হবে।
সংযোগ স্ট্রিং। আমি এমন সমস্যাগুলি দেখেছি যেখানে কোনও ভুল ব্যবহারকারীর নাম / পাসওয়ার্ড কোনও কারণে "অ্যাক্সেস অস্বীকৃত" নির্দেশ করে আসল ত্রুটির পরিবর্তে একটি সময়সীমা ত্রুটি দেয়। এটি হওয়া উচিত নয়, তবে জীবন এটি।
সংযোগ স্ট্রিং 2: আপনি যদি সার্ভারের নামটি ভুলভাবে বা অসম্পূর্ণভাবে (উদাহরণস্বরূপ mysqlserver
পরিবর্তে mysqlserver.webdomain.com
) নির্দিষ্ট করে থাকেন তবে আপনি একটি সময়সীমা পেয়ে যাবেন। কমান্ড লাইন থেকে সংযোগ স্ট্রিং-এ উল্লিখিত ঠিকানার মতো সার্ভারের নাম ব্যবহার করে আপনি সার্ভারকে পিং করতে পারেন ?
সংযোগ স্ট্রিং 3: যদি সার্ভারের নামটি আপনার ডিএনএসে থাকে (বা হোস্ট ফাইল), তবে একটি ভুল বা অ্যাক্সেস অ্যাক্সেসযোগ্য আইপি-র প্রতি নির্দেশ করে, আপনি একটি মেশিন-না-পাওয়া-ইশ ত্রুটির পরিবর্তে একটি সময়সীমা পেয়ে যাবেন।
আপনি যে ক্যোয়ারীতে কল করছেন তার সময় শেষ হচ্ছে। এটি সার্ভারের সাথে সংযোগ সমস্যা হিসাবে দেখা যায় তবে আপনার অ্যাপটি কীভাবে স্ট্রাকচারিত হয় তার উপর নির্ভর করে আপনি সময় শেষ হওয়ার আগে আপনার ক্যোয়ারি কার্যকর করা হচ্ছে এমন পর্যায়ে পৌঁছাতে পারবেন।
সংযোগ ফাঁস। কতটি প্রক্রিয়া চলছে? কতগুলি মুক্ত সংযোগ? আমি নিশ্চিত না যে কাঁচা ADO.NET সংযোগ পুলিং সঞ্চালন করে, প্রয়োজনীয় আলা এন্টারপ্রাইজ লাইব্রেরি যখন স্বয়ংক্রিয়ভাবে সংযোগগুলি বন্ধ করে দেয় বা যেখানে কনফিগার করা আছে সেখানে। এটি সম্ভবত একটি লাল উত্তেজনা। ডাব্লুসিএফ এবং ওয়েব পরিষেবাদিগুলির সাথে কাজ করার সময়, যদিও আমার অবসন্ন সংযোগগুলির সাথে সমস্যা হয়েছিল যার ফলে সময়সীমা এবং অন্যান্য অনিচ্ছাকৃত আচরণ ঘটে।
চেষ্টা করার বিষয়গুলি:
এসকিউএল ম্যানেজমেন্ট স্টুডিওর সাথে সার্ভারের সাথে সংযোগ করার সময় আপনি কী সময়সীমা পেয়েছেন? যদি তা হয় তবে নেটওয়ার্ক কনফিগারেশনে সমস্যা সম্ভবত। ম্যানেজমেন্ট স্টুডিওর সাথে সংযোগ করার সময় আপনি যদি সমস্যাটি না দেখেন তবে সমস্যাটি আপনার অ্যাপটিতে থাকবে, সার্ভারের সাথে নয়।
এসকিউএল প্রোফাইলার চালান, এবং তারের জুড়ে আসলে কী চলছে তা দেখুন। আপনি সত্যিই সংযোগ করছেন কিনা তা বলতে সক্ষম হওয়া উচিত, বা কোনও ক্যোয়ারী যদি সমস্যা হয়।
ম্যানেজমেন্ট স্টুডিওতে আপনার ক্যোয়ারি চালান, এবং এটি কতক্ষণ সময় নেয় তা দেখুন।
শুভকামনা!
আপনি যদি এটিকে গতিশীলভাবে পরিবর্তন করতে চান তবে আমি SQLConnectionStringBuilder ব্যবহার পছন্দ করি ।
এটি আপনাকে সংযোগস্ট্রিং অর্থাৎ স্ট্রিংকে ক্লাস অবজেক্টে রূপান্তর করতে দেয়, সমস্ত সংযোগের স্ট্রিং বৈশিষ্ট্যই এর সদস্য হয়ে উঠবে।
এক্ষেত্রে আসল সুবিধাটি হ'ল আপনার যদি চিন্তা করতে হবে না যে কানেকশনটাইমআউট স্ট্রিং অংশটি ইতিমধ্যে সংযোগের স্ট্রিংয়ে উপস্থিত রয়েছে কিনা?
এটি যেমন কোনও অবজেক্ট তৈরি করে এবং স্ট্রিংকে ম্যানিপুলেট করার চেয়ে অবজেক্টে মান নির্ধারণ করা সর্বদা ভাল।
কোড নমুনা এখানে:
var sscsb = new SqlConnectionStringBuilder(_dbFactory.Database.ConnectionString);
sscsb.ConnectTimeout = 30;
var conn = new SqlConnection(sscsb.ConnectionString);
ConnectionTimeout
সম্পত্তি তৈরি করা SqlConnection
ভাল ধারণা বলে মনে হয়েছিল।