c# - What is causing "The wait completed due to an abandoned mutex"? -
i have connection class handles informix database queries. has 2 functions; 1 perform simple queries, , 1 homecoming datatable. intermittently (especially when allow session sit down bit, such 10 minutes) i'll abandoned mutex error on conn.open command when requesting new info.
here code in question:
public datatable calldtquery(string query) { datatable dt = new datatable(); using (ibm.data.informix.ifxconnection conn = new ibm.data.informix.ifxconnection(sqlconnection)) { seek { ibm.data.informix.ifxdataadapter adapter = new ifxdataadapter(); adapter.selectcommand = new ibm.data.informix.ifxcommand(query, conn); conn.open(); //error location. adapter.fill(dt); conn.close(); } grab (ibm.data.informix.ifxexception ex) { logerror(ex, query); senderroremail(ex, query); displayerror(); } } homecoming dt; } additionally, here simple query function, other function in application connects database:
public string callsimplequery(string query, string command) { string result = ""; using (ibm.data.informix.ifxconnection conn = new ibm.data.informix.ifxconnection(sqlconnection)) { seek { ibm.data.informix.ifxdataadapter adapter = new ifxdataadapter(); conn.open(); switch (command) { case "update": adapter.updatecommand = new ibm.data.informix.ifxcommand(query, conn); result = adapter.updatecommand.executenonquery().tostring(); break; case "delete": adapter.deletecommand = new ibm.data.informix.ifxcommand(query, conn); result = adapter.deletecommand.executenonquery().tostring(); break; case "select": adapter.selectcommand = new ibm.data.informix.ifxcommand(query, conn); result = adapter.selectcommand.executescalar().tostring(); break; case "insert": adapter.insertcommand = new ibm.data.informix.ifxcommand(query, conn); result = adapter.insertcommand.executenonquery().tostring(); break; } conn.close(); } grab (ibm.data.informix.ifxexception ex) { logerror(ex, query); senderroremail(ex, query); displayerror(); } } homecoming result; } here error generated:
error message = wait completed due abandoned mutex. message source: mscorlib ============================= message target: boolean waitone(int64, boolean) ============================= stack trace: @ system.threading.waithandle.waitone(int64 timeout, boolean exitcontext) @ system.threading.waithandle.waitone(int32 millisecondstimeout, boolean exitcontext) @ system.threading.waithandle.waitone() @ ibm.data.informix.ifxconnpoolmanager.getpool(ifxconnsettings key) @ ibm.data.informix.ifxconnpoolmanager.open(ifxconnection connection) @ ibm.data.informix.ifxconnection.open() @ xxx.connections.calldtquery(string query) in d:\inetpub\wwwroot\intranet\cwsheet-test2\app_code\connections.cs:line 75 @ xxx.details.page_load(object sender, eventargs e) in d:\inetpub\wwwroot\intranet\cwsheet-test2\details.aspx.cs:line 29 @ system.web.util.callihelper.eventargfunctioncaller(intptr fp, object o, object t, eventargs e) @ system.web.util.callieventhandlerdelegateproxy.callback(object sender, eventargs e) @ system.web.ui.control.onload(eventargs e) @ system.web.ui.control.loadrecursive() @ system.web.ui.page.processrequestmain(boolean includestagesbeforeasyncpoint, boolean includestagesafterasyncpoint) when error occurs, instead of going grab block , running log, send, , display error functions, instead drops application_error block on global.asax. since wrapped within try/catch block, i'm not sure cause this. additionally, whatever reason application hangs on calldtquery on occasion. i'll flipping through pages of records in formview , hang on calldtquery request. might go through after min or two, , hang indefinitely until application times out after 30 minutes.
i've been reading bit mutex, have not ever used before. mutex beingness used beingness generated automatically asp.net application. in mind, i'm not sure how troubleshoot or resolve issue. suggestions?
so turns out issue ibm.data.informix.dll version using (2.90.) found documentation explaining issue here: http://www.iiug.org/forums/development-tools/index.cgi/read/109
once updated newer version (3.50), abandoned mutex errors went away. intermittent hang issue disappeared well.
c# asp.net
No comments:
Post a Comment