diff options
author | Jose <jose@zeroc.com> | 2009-12-04 06:51:23 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2009-12-04 06:51:23 +0100 |
commit | 0ad40835182795b5f9bedeea10aeb6f07c666e7d (patch) | |
tree | 5dff55b02aefb5854a972eb2cef128d1537d5c47 /java/src/Freeze/SharedDbEnv.java | |
parent | Bug 4408 - plugin does not work with x64 only installation (diff) | |
download | ice-0ad40835182795b5f9bedeea10aeb6f07c666e7d.tar.bz2 ice-0ad40835182795b5f9bedeea10aeb6f07c666e7d.tar.xz ice-0ad40835182795b5f9bedeea10aeb6f07c666e7d.zip |
4089 - IceGrid database corruption.
Diffstat (limited to 'java/src/Freeze/SharedDbEnv.java')
-rw-r--r-- | java/src/Freeze/SharedDbEnv.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/java/src/Freeze/SharedDbEnv.java b/java/src/Freeze/SharedDbEnv.java index b39088ec48f..e9747b1894b 100644 --- a/java/src/Freeze/SharedDbEnv.java +++ b/java/src/Freeze/SharedDbEnv.java @@ -271,6 +271,9 @@ public class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable Ice.Properties properties = key.communicator.getProperties(); _trace = properties.getPropertyAsInt("Freeze.Trace.DbEnv"); + String propertyPrefix = "Freeze.DbEnv." + _key.envName; + String dbHome = properties.getPropertyWithDefault(propertyPrefix + ".DbHome", _key.envName); + _fileLock = new IceUtilInternal.FileLock(dbHome + "/Freeze.lock"); try { if(_ownDbEnv) @@ -289,7 +292,6 @@ public class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable // config.setLockDetectMode(com.sleepycat.db.LockDetectMode.YOUNGEST); - String propertyPrefix = "Freeze.DbEnv." + _key.envName; if(properties.getPropertyAsInt(propertyPrefix + ".DbRecoverFatal") != 0) { config.setRunFatalRecovery(true); @@ -317,7 +319,6 @@ public class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable try { - String dbHome = properties.getPropertyWithDefault(propertyPrefix + ".DbHome", _key.envName); java.io.File home = new java.io.File(dbHome); _dbEnv = new com.sleepycat.db.Environment(home, config); } @@ -465,6 +466,14 @@ public class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable _dbEnv = null; } } + + // + // Release the file lock + // + if(_fileLock != null) + { + _fileLock.release(); + } } private static String @@ -524,4 +533,6 @@ public class SharedDbEnv implements com.sleepycat.db.ErrorHandler, Runnable private java.util.Map<String, MapDb> _sharedDbMap = new java.util.HashMap<String, MapDb>(); private static java.util.Map<MapKey, SharedDbEnv> _map = new java.util.HashMap<MapKey, SharedDbEnv>(); + + private IceUtilInternal.FileLock _fileLock; } |