From 1e94796de05e34d208f4a74ea0ddc41bbee70fc2 Mon Sep 17 00:00:00 2001 From: erilong Date: Thu, 6 Mar 2014 14:14:16 +0000 Subject: [PATCH] 0001609: File sync mutex limits scaling multiple clients - fix SQL to work on MySQL --- .../symmetric/service/impl/ClusterServiceSqlMap.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ClusterServiceSqlMap.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ClusterServiceSqlMap.java index 0af61b105a..a53ba165f2 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ClusterServiceSqlMap.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ClusterServiceSqlMap.java @@ -34,8 +34,8 @@ public ClusterServiceSqlMap(IDatabasePlatform platform, Map repl "where lock_action=? and lock_type=? and (lock_time is null or lock_time < ? or locking_server_id=?)"); putSql("acquireSharedLockSql", - "update $(lock) set lock_type=?, locking_server_id=?, lock_time=?, shared_count=shared_count+1, " + - "shared_enable=(case when shared_count = 0 then 1 else shared_enable end) " + + "update $(lock) set lock_type=?, locking_server_id=?, lock_time=?, " + + "shared_enable=(case when shared_count = 0 then 1 else shared_enable end), shared_count=shared_count+1 " + "where lock_action=? and (lock_type=? or lock_time is null or lock_time < ?) " + "and (shared_enable = 1 or shared_count = 0)"); @@ -51,10 +51,11 @@ public ClusterServiceSqlMap(IDatabasePlatform platform, Map repl "where lock_action=? and lock_type=? and locking_server_id=?"); putSql("releaseSharedLockSql", - "update $(lock) set last_lock_time=?, last_locking_server_id=?, shared_count=shared_count-1, " + + "update $(lock) set last_lock_time=?, last_locking_server_id=?, " + "shared_enable=(case when shared_count = 1 then 0 else shared_enable end), " + "locking_server_id = (case when shared_count = 1 then null else locking_server_id end), " + - "lock_time = (case when shared_count = 1 then null else lock_time end) " + + "lock_time = (case when shared_count = 1 then null else lock_time end), " + + "shared_count=shared_count-1 " + "where lock_action=? and lock_type=?"); putSql("releaseExclusiveLockSql",