c# - How to avoid MSTDC -
i want synchronize data between 2 sql servers 2008 express edition. avoid escalating sql queries ms dtc service (ms dtc service not running). synchronization use stored procedures without transactions.
i have more stored procedure. procedures download data linked server , store local db works fine.
i using stored procedures upload data linked server. inside stored procedure have no transaction used.
when run stored procedure sql management studio, data correctly uploaded server. when call procedure .net 4.0 c# code, ends error
8501 - msdtc on server 'compname\sqlexpress2008' unavailable.
no transactions used within application code. data uploaded code. cannot figure out when msdtc necessary , when not.
why msdtc needed when no transaction used?
edit1:
i have little progress. code used calling stored procedure. first time when procedure called, data correctly uploaded server. next time ends exception 8501.
sqlcommand sqlcmd = new sqlcommand("spuploadunsendstockdocument"); sqlcmd.commandtype = commandtype.storedprocedure; sqlcmd.parameters.addwithvalue("@pdebug", false); sqlcmd.parameters.addwithvalue("@boxid", boxid); // return value parameter sqlparameter returnvalue = new sqlparameter("returnval", sqldbtype.int); returnvalue.direction = parameterdirection.returnvalue; sqlcmd.parameters.add(returnvalue); try { using (sqlconnection conn = new sqlconnection(dbconnection.connectionstring)) { conn.open(); sqlcmd.connection = conn; sqlcmd.executescalar(); sqlcmd.dispose(); conn.close(); } if (convert.toint16(returnvalue.value) == 1) logerror("error while sending"); return convert.toint16(returnvalue.value) == 0; } catch (exception ex) { log(ex); return false; }
why trying manage sync'ing yourself?
how come not using built in replication features built-in sql server 2008 express?
http://technet.microsoft.com/en-us/library/ms165686(v=sql.105).aspx
this allow push , pull between databases keep them synchronized.
Comments
Post a Comment