.net - Are there SqlExceptions which throw but commit their data anyway? -
i've encountered error:
system.data.sqlclient.sqlexception: transaction log database 'mydatabase' full. find out why space in log cannot reused, see log_reuse_wait_desc column in sys.databases
on 1 of windows services. it's supposed retry after catching sql exception, didn't expect seemed data still going through (i'm using sqlbulkcopy btw) regardless of throwing exception. i've never encountered scenario before.
i'd know if there other scenarios such thing might happen, , if thing entirely possible @ in first place?
edit:
system.data.updateexception: error occurred while updating entries. see innerexception details. ---> system.data.sqlclient.sqlexception: transaction log database 'my_db' full. find out why space in log cannot reused, see log_reuse_wait_desc column in sys.databases @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning(tdsparserstateobject stateobj) @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqldatareader.consumemetadata() @ system.data.sqlclient.sqldatareader.get_metadata() @ system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) @ system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method) @ system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior, string method) @ system.data.sqlclient.sqlcommand.executedbdatareader(commandbehavior behavior) @ system.data.common.dbcommand.executereader(commandbehavior behavior) @ system.data.mapping.update.internal.dynamicupdatecommand.execute(updatetranslator translator, entityconnection connection, dictionary
2 identifiervalues, list
1 generatedvalues) @ system.data.mapping.update.internal.updatetranslator.update(ientitystatemanager statemanager, ientityadapter adapter) --- end of inner exception stack trace --- @ system.data.mapping.update.internal.updatetranslator.update(ientitystatemanager statemanager, ientityadapter adapter) @ system.data.entityclient.entityadapter.update(ientitystatemanager entitycache) @ system.data.objects.objectcontext.savechanges(boolean acceptchangesduringsave) @ system.data.objects.objectcontext.savechanges()
ps. if knows error code above exception, great deal well.
if thing entirely possible @ in first place?
yes possible. depends transaction management code in exception case. example:
connection connection = connectionfactory.create(); try { doworkon(connection); } catch (exception e) { log.message("sql problem", e); } { connection.commit(); }
... try commit. behaviour built in known transaction management libraries (j2ee specifies behaviour application exceptions).
i'm less familiar .net - if post full stack trace might able give better answer based on transaction management software in use.
Comments
Post a Comment