kevin
2005-12-22 17:38:02 UTC
I got this error, for the first time today:
System.Data.SqlClient.SqlException: Unable to start a nested transaction for
OLE DB provider 'SQLOLEDB'. A nested transaction was required because the
XACT_ABORT option was set to OFF.
[OLE/DB provider returned message: Cannot start more transactions on this
session.]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionLocal::StartTransaction returned 0x8004d013: ISOLEVEL=4096].
I am moving data from server V3 to servers V4 and V5, using a linked server
via a SQL account on V3. I only do selects from V3 and all writes are to V4
or V5. All sp's use BEGIN TRAN (not BEGIN DISTRIBUTED TRAN) and error
handling to ROLLBACK or COMMIT. When writing data to two database on V5 I
get the above error, but no problems when writing to V4.
I checked Connections tab of the SQL SERVER Properties box of all three
severs and all default connection options are unchecked. I also checked all
SP's and the text XACT_ABORT does not exist.
Hell, I had never even heard of this option until today. My solution was to
add SET XACT_ABORT ON and OFF on each sp that executes against databases on
the V5 server.
1. What is the default value for XACT_ABORT?
2. Since it is a connection setting, could it be set in some db, login or
connectionstring option?
3. How do I turn it back on ?
4. Is it safe to just default all sp's with this set on?
gracias!!
kevin
System.Data.SqlClient.SqlException: Unable to start a nested transaction for
OLE DB provider 'SQLOLEDB'. A nested transaction was required because the
XACT_ABORT option was set to OFF.
[OLE/DB provider returned message: Cannot start more transactions on this
session.]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionLocal::StartTransaction returned 0x8004d013: ISOLEVEL=4096].
I am moving data from server V3 to servers V4 and V5, using a linked server
via a SQL account on V3. I only do selects from V3 and all writes are to V4
or V5. All sp's use BEGIN TRAN (not BEGIN DISTRIBUTED TRAN) and error
handling to ROLLBACK or COMMIT. When writing data to two database on V5 I
get the above error, but no problems when writing to V4.
I checked Connections tab of the SQL SERVER Properties box of all three
severs and all default connection options are unchecked. I also checked all
SP's and the text XACT_ABORT does not exist.
Hell, I had never even heard of this option until today. My solution was to
add SET XACT_ABORT ON and OFF on each sp that executes against databases on
the V5 server.
1. What is the default value for XACT_ABORT?
2. Since it is a connection setting, could it be set in some db, login or
connectionstring option?
3. How do I turn it back on ?
4. Is it safe to just default all sp's with this set on?
gracias!!
kevin