Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
DB Engine
SQL ServerMSDESQL Server CE
Services
Analysis (Data Mining)Analysis (OLAP)DTSIntegration ServicesNotification ServicesReporting Services
Programming
CLRConnectivitySQLXML
Other Technologies
ClusteringEnglish QueryFull-Text SearchReplicationService Broker
General
Data WarehousingPerformanceSecuritySetupSQL Server ToolsOther SQL Server Topics
DirectoryUser Groups
Related Topics
MS AccessOther DB ProductsMS Server Products.NET DevelopmentVB DevelopmentJava DevelopmentMore Topics ...

SQL Server Forum / Other Technologies / Replication / July 2008

Tip: Looking for answers? Try searching our database.

subscriber_type = local and Business Logic Handler

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Rolf - 29 Jul 2008 12:06 GMT
Hi there,

I tried implementing a custom business logic handler in out replication
environment which consists out of a central publisher, three re-publishers
and a number of laptops as final subscribers.

In the UpdateHandler I check for updates on one table which are not
suitable at the time the replication takes place. Those changes can only
come from a subscriber. So if I detect such a change I first tried to simple
reject the change - but this makes the record persist in the state to be
rejected
at the subscriber database.

So I select the publishers record into the customDataSet and return the
value AccesspCustomDataset instead. This works fine between the central
publisher and the republishers (push subscription from publisher to
re-publisher).

When I tried to do the same at the SQL-Express databases which use a pull-
subscription to the re-publisher the record is rejected, but the custom record
is not applied at the subscriber side - the record stays in the wrong state...

I've read an article with a related problem at
http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=874312&SiteID=1,
where the tip was to set the subscriber_type of the SQL-Express database
from "local" to "global" - and it worked. This shall be a bug in SQL Server...

So one question remains - will I have sideeffects when setting the
subscriber_type to "global" at the SQL Express databases ?

Regards,
Rolf
Hilary Cotter - 30 Jul 2008 12:12 GMT
Local means conflicts the first conflict winner will win and its
change will stick no matter what conflicts occur after that, globally
means they are detected globally and the one with the highest priority
will stick.

For example - If a subscriber syncs with the publisher and a column
level conflict occurs, the subscriber will win the conflict (depending
on how you have configured the conflict resolver). Now the next
subscriber syncs. With Local, the subscriber's update (if it causes a
conflict) will loose with local, but win with global if its priority
is higher than the first subscriber who caused the conflict.

> Hi there,
>
[quoted text clipped - 27 lines]
> Regards,
> Rolf
Rolf - 30 Jul 2008 13:40 GMT
Hi Hilary,

thanks for the answer - so there is no other sense in using local or global
except the priority ? If yes this should be sufficient for me while I have
Prio 100 for the central and 75 for all the republishers. If I now choose
10 for each subscribing Laptop the situation should be the same...as I
use the "subscriber always win" conflict resolver.

Regards,
Rolf

> Local means conflicts the first conflict winner will win and its
> change will stick no matter what conflicts occur after that, globally
[quoted text clipped - 7 lines]
> conflict) will loose with local, but win with global if its priority
> is higher than the first subscriber who caused the conflict.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.