मैं कैसे एसक्यूएल सर्वर को साफ करते समय सीमा समाप्त हो SqlDependency
वस्तुओं से छुटकारा पाने के लिए? SqlDepedency
ऑब्जेक्ट से ईवेंट प्राप्त करने के बाद, मुझे एक नया ईवेंट प्राप्त करने से पहले मुझे एक नया निर्माण करने की आवश्यकता है। हालांकि, SQL सर्वर प्रक्रिया का स्मृति उपयोग तब तक चढ़ता है जब तक यह अनुमत स्मृति (SQL सर्वर एक्सप्रेस) से बाहर नहीं हो जाता। मैं पुराने प्रश्नों से कैसे छुटकारा पा सकता हूं?मैं SQL सर्वर मेमोरी से SqlDependency को कैसे साफ़ करूं?
कोड:
// Func: RegisterTableListener
using (SqlConnection cn = new SqlConnection(Properties.Settings.Default.DatabseEventConnectionString))
{
if (cmd == null)
{
cmd = cn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT HostName, LastStatus, LastDetails, xml FROM dbo.[SystemTable]";
}
lock (cmd)
{
cmd.Connection = cn;
cn.Open();
cmd.Notification = null;
// creates a new dependency for the SqlCommand
if (dep == null)
dep = new SqlDependency(cmd);
// creates an event handler for the notification of data
// changes in the database.
dep.OnChange += new OnChangeEventHandler(dependency_OnChange);
using (SqlDataReader reader = cmd.ExecuteReader())
{
// code here to read
}
}
}
// Func dependency_OnChange
//SqlDependency dep = sender as SqlDependency;
dep.OnChange -= dependency_OnChange;
RegisterTableListener();
आप 'SqlDependency' वस्तुओं कैसे बना रहे हैं? कृपया अपना कोड पोस्ट करें। क्या आप उनका सही तरीके से निपटान कर रहे हैं? – Oded
बीमार कल जब मैं काम करता हूं तो कोड के साथ मेरी टिप्पणी अपडेट करें। Sudo: SqlDependency डीईपी = नए SqlDependency (cmd); डीपी।OnChange + = मज़ा; एसक्लड पर निर्भरता IDISposable – JeremyK
लागू नहीं करता है मैंने कोड के साथ अद्यतन किया है। यहां तक कि जब मैं एक SQLDddency का केवल एक उदाहरण चलाता हूं और हर बार रोकता हूं और प्रारंभ करता हूं, तो स्मृति चढ़ता है। मैं क्या हो रहा है के बारे में अनजान हूँ। – JeremyK