Community
Showing results for 
Search instead for 
Do you mean 
Reply

Permanently disable Synchronisation? Or Alert if it's re-enabled?

New Member
Posts: 17
Country: Australia

Permanently disable Synchronisation? Or Alert if it's re-enabled?

Hi All,

 

So we discovered the hard way, a couple of weeks ago, that you can't enable synchronisation if you have 25 concurrent users on your DB. (Well, maybe you could, but it'd require rewriting most of the triggers and stored procedures in your DB to take table locking into account.  I learnt far more about the SQL internals of Act than I ever wanted to last week! On the upside, one little change to a config variable stored in the DB, and all those deadlocks when we have more than two people trying to login at a time have gone away! ).

 

Yesterday, somehow (I assume user error? But noone is owning up to purposefully opening the sychronisation control panel, and clicking Enable..), synchronisation became enabled on our main ACT Database again, and we had to pull the network cable on the server to be able to disable it (the background noise from 25 staff with Act.Outlook.Service running doing its heartbeat queries was too much load to be able to run the disable function!).

 

So now I'm wondering if there's a way to ensure that synchronisation can't be turned on for this particular database?  Or if there's an SQL query I can shove into OpManager to alert us if it's been re-enabled? (Or a log file to watch?)

 

Thanks,

 

Damien

Bronze Super Contributor
Posts: 1,679
Country: Australia

Re: Permanently disable Synchronisation? Or Alert if it's re-enabled?

Not that I'm aware of.

 

Is this database to database sync or Sync with Outlook (Calendar/Contacts)?

 

If it's database to database (App/Network/Internet) then you could use the firewall to block traffic on port 65100 which is the default port Network Sync works on. Won't help if they change the default port tho.

 

If it's Sync with Outlook, I'd run a scheduled task to kill the process.

 

If it's Act.Outlook.Services.exe (required for attaching emails to Contact Histories) then do the same, use a scheduled task to kill the process.

 

It's a brute force approach, but occasionally it's the quicker path to resolution.

 

I'd recommend PsKill from Microsoft: http://technet.microsoft.com/en-au/sysinternals/bb896683

 

Ben.

New Member
Posts: 17
Country: Australia

Re: Permanently disable Synchronisation? Or Alert if it's re-enabled?

Thanks,

I must email you with the results of the other week - was rather technical, but really interesting.. End result was that someone at Sage needs to go to a DBA course, and learn about row level locking.. The amount of stored procedures and triggers which cause deadlocks because of bad coding was really quite amazing!).

It's the database to database sync which we need to ensure stays disabled for this one database (we need it to remain enabled on the other databases on the same server though). Blocking the port 65100 traffic won't work, as that doesn't stop Sync from being *enabled* - which is the whole problem..

Enabling Sync on a database enables a whole bucketload of Triggers on all the tables, which cause Sync-specific tables to be written and updated on all insert/update/delete activities. And the way sage have written these triggers means that it's really quite impossible to support more than probably ~10 concurrent users unless you have your SQL database files served from ram on some crazy enterprise-licensed SQL server. (aka as part of each trigger, they select the whole table, then iterate through the rows looking to see if it matches some condition, then update/delete the row if needed. Thus locking the WHOLE table while this operation is happening!). In our case, where we have 25 users running outlook auto-attach, plus ACT on each PC (so for EVERY received email, it's fetching the 'act address book'. plus the normal heartbeat stored procedure calls from Act), that's enough traffic to deadlock the database from two people trying to add a history entry to the database within the same 10 second period!
Bronze Super Contributor
Posts: 1,679
Country: Australia

Re: Permanently disable Synchronisation? Or Alert if it's re-enabled?

This sounds like a great place for sync improvements to be made?

Wonder if anyone from Sage would like to chime in on perhaps why or how it's come to be like this?

New Member
Posts: 17
Country: Australia

Re: Permanently disable Synchronisation? Or Alert if it's re-enabled?

Yeah, I think it could support SO much more load, if the triggers and stored procs were cleaned up some! That said, we're on 2012, for all I know 2013 is so much better? Smiley Happy