Friday, March 23, 2012

Error on updatable subscription

After a lot of troubles I make working the Transaction Replication between 2
pc.
The replication is transaction with updatable subriber with update
subscription and queue update on failover.
While it works well if the connection between the two pc is ok, if I
disconnect the subscriber from the network and try to make a update on a
table I receive this message:
SQL Server Enterprise Manager
Another user has modified the contents of this table or view; the database
row you are modifying no longer exists in the database.
Database error: '[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: Connection failure]
[Microsoft][ODBC SQL Server Driver][SQL Server]OLE DB error trace [OLE/DB
Provider 'SQLOLEDB' ITransactionJoi JoinTransaction returned 0x8004d01c].
[Microsoft][ODBC SQL Server Driver][SQL Server]The operation could not be
performed because the OLE DB provider 'SQLOLEDB' was unable to begin a
distributed transaction.'
The table has a primary key which is of type identity, both on the publisher
and subcriber, then there is a column of type guid for replication.
I don't need to do insert on the subscription but only update.
Thanks in advance.
Were any of the tables owned by different object owners and did you change
the object owners at any point in time?
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Sam" <z.sam-No-Spam-@.libero.it> wrote in message
news:%232Ap103lFHA.3656@.TK2MSFTNGP09.phx.gbl...
> After a lot of troubles I make working the Transaction Replication between
2
> pc.
> The replication is transaction with updatable subriber with update
> subscription and queue update on failover.
> While it works well if the connection between the two pc is ok, if I
> disconnect the subscriber from the network and try to make a update on a
> table I receive this message:
> --
> SQL Server Enterprise Manager
> --
> Another user has modified the contents of this table or view; the database
> row you are modifying no longer exists in the database.
> Database error: '[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
> provider returned message: Connection failure]
> [Microsoft][ODBC SQL Server Driver][SQL Server]OLE DB error trace [OLE/DB
> Provider 'SQLOLEDB' ITransactionJoi JoinTransaction returned 0x8004d01c].
> [Microsoft][ODBC SQL Server Driver][SQL Server]The operation could not be
> performed because the OLE DB provider 'SQLOLEDB' was unable to begin a
> distributed transaction.'
>
> The table has a primary key which is of type identity, both on the
publisher
> and subcriber, then there is a column of type guid for replication.
> I don't need to do insert on the subscription but only update.
> Thanks in advance.
>
|||"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:uGyJz84lFHA.3568@.TK2MSFTNGP10.phx.gbl...
> Were any of the tables owned by different object owners and did you change
> the object owners at any point in time?
>
No, the owner is olways dbo ad it not change.
Initially I used sql server autentication, but there was problem, as you can
see from my post of 29/07 then I changed into Windows autentication using a
login from a domain and go all until I unplug the network cable at the
subscriber.
Thanks
|||"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:uGyJz84lFHA.3568@.TK2MSFTNGP10.phx.gbl...
> Were any of the tables owned by different object owners and did you change
> the object owners at any point in time?
>
I think to have found the solution: I should run the sp_setreplfailovermode
setting the failover_mode to queued.
I noticed that if I leave failover_mode to queued it works well too.
There may be any problem doing so?
Thanks.

No comments:

Post a Comment