summaryrefslogtreecommitdiff
path: root/java/src/Freeze/SharedDbEnv.java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2009-12-04 06:51:23 +0100
committerJose <jose@zeroc.com>2009-12-04 06:51:23 +0100
commit0ad40835182795b5f9bedeea10aeb6f07c666e7d (patch)
tree5dff55b02aefb5854a972eb2cef128d1537d5c47 /java/src/Freeze/SharedDbEnv.java
parentBug 4408 - plugin does not work with x64 only installation (diff)
downloadice-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.java15
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;
}