From 0e1a3face81e3fc8b28feed6ea23cb8e716f8aa7 Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Mon, 21 May 2012 08:48:20 +0000 Subject: [PATCH] SP-45, BIS-21 specify the maximum try count SVN: 25307 --- .../TopLevelDataSetRegistratorGlobalState.java | 8 ++++++++ .../registrator/DataSetStorageRecoveryManager.java | 13 ++++++++++++- .../registrator/IDataSetStorageRecoveryManager.java | 4 ++++ .../AbstractJythonDataSetHandlerTest.java | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java index b0bd6e575ac..0144a00d437 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java @@ -154,6 +154,7 @@ public class TopLevelDataSetRegistratorGlobalState this.storageRecoveryManager = storageRecoveryManager; this.storageRecoveryManager.setDropboxRecoveryStateDir(dropboxRecoveryStateDir); this.storageRecoveryManager.setRecoveryMarkerFilesDir(recoveryMarkerFilesDirectory); + this.storageRecoveryManager.setMaximumRertyCount(getMaximumRecoveryCount(threadParameters.getThreadProperties())); // Initialize the DSS Registration Log Directory new DssRegistrationLogDirectoryHelper(dssRegistrationLogDir).initializeSubdirectories(); @@ -305,6 +306,8 @@ public class TopLevelDataSetRegistratorGlobalState public static final String PRE_COMMIT_DIR = "pre-commit-dir"; public static final String RECOVERY_MARKER_DIR = "recovery-marker-dir"; + + public static final String RECOVERY_MAX_RETRY_COUNT = "recovery-max-retry-count"; private static File getStagingDir(File storeRoot, String shareId, Properties threadProperties) { @@ -329,6 +332,11 @@ public class TopLevelDataSetRegistratorGlobalState "recovery-marker"); } + private static int getMaximumRecoveryCount(Properties threadProperties) + { + return PropertyUtils.getInt(threadProperties, RECOVERY_MAX_RETRY_COUNT, 50); + } + /** * Get a directory local to the share, respecting the user override, if one is specified, and * defaulting to the defaultDirName. diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java index a9e32fcda60..9ab0479c1f4 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java @@ -44,7 +44,9 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan private File dropboxRecoveryStateDir; private File recoveryMarkerFilesDir; - + + private int maxRetryCount = 50; + public <T extends DataSetInformation> void checkpointPrecommittedState( DataSetStorageAlgorithmRunner<T> runner) { @@ -150,4 +152,13 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan this.recoveryMarkerFilesDir = recoveryMarkerFileDir; } + public void setMaximumRertyCount(int maxRetryCount) + { + this.maxRetryCount = maxRetryCount; + } + + public int getMaximumRertyCount() + { + return this.maxRetryCount; + } } diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java index c95b94d47c8..238d5d4246d 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java @@ -70,4 +70,8 @@ public interface IDataSetStorageRecoveryManager void setDropboxRecoveryStateDir(File dropboxRecoveryStateDir); void setRecoveryMarkerFilesDir(File recoveryMarkerFileDir); + + int getMaximumRertyCount(); + + void setMaximumRertyCount(int maxRetryCount); } \ No newline at end of file diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java index d69a12583b4..9480f5a195f 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/AbstractJythonDataSetHandlerTest.java @@ -213,6 +213,7 @@ public abstract class AbstractJythonDataSetHandlerTest extends AbstractFileSyste new File(workingDirectory, "jython-handler-test")); one(storageRecoveryManager).setRecoveryMarkerFilesDir(new File( new File(workingDirectory, "recovery-marker"), "jython-handler-test")); + one(storageRecoveryManager).setMaximumRertyCount(with(any(Integer.class))); } }); } -- GitLab