Updated Branches: refs/heads/master e103ab6d0 -> c537b5a75
making member expiry time configurable from startup script Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/e96fcec2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/e96fcec2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/e96fcec2 Branch: refs/heads/master Commit: e96fcec250cec2f7f1b7e8abbc2835449b370e4e Parents: b38d87c Author: Isuru <[email protected]> Authored: Wed Feb 5 11:45:04 2014 +0530 Committer: Isuru <[email protected]> Committed: Wed Feb 5 11:45:04 2014 +0530 ---------------------------------------------------------------------- .../apache/stratos/autoscaler/Constants.java | 3 ++ .../stratos/autoscaler/PartitionContext.java | 39 ++++++++++++++++++++ .../distribution/src/main/resources/stratos.bat | 2 +- .../distribution/src/main/resources/stratos.sh | 1 + 4 files changed, 44 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e96fcec2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java index 691535e..6e9c5e4 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java @@ -47,4 +47,7 @@ public class Constants { public static final String SECOND_DERIVATIVE_OF_MEMORY_CONSUMPTION = "second_derivative_memory_consumption"; public static final String SECOND_DERIVATIVE_OF_LOAD_AVERAGE = "second_derivative_load_average"; + + //member expiry interval + public static final String MEMBER_EXPIRY_INTERVAL = "member.expiry.interval"; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e96fcec2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java index 06d115e..6e6829e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java @@ -83,6 +83,12 @@ public class PartitionContext implements Serializable{ this.activeMembers = new ArrayList<MemberContext>(); this.terminationPendingMembers = new ArrayList<MemberContext>(); + // check if a different value has been set for expiryTime + long memberExpiryInterval = getMemberExpiryInterval(); + if (memberExpiryInterval != -1) { + setExpiryTime(memberExpiryInterval); + log.info("Member expiry interval set as " + memberExpiryInterval); + } } public PartitionContext(Partition partition) { @@ -95,6 +101,14 @@ public class PartitionContext implements Serializable{ this.obsoletedMembers = new CopyOnWriteArrayList<String>(); // this.faultyMembers = new CopyOnWriteArrayList<String>(); memberStatsContexts = new ConcurrentHashMap<String, MemberStatsContext>(); + + // check if a different value has been set for expiryTime + long memberExpiryInterval = getMemberExpiryInterval(); + if (memberExpiryInterval != -1) { + setExpiryTime(memberExpiryInterval); + log.info("Member expiry interval set as " + memberExpiryInterval); + } + Thread th = new Thread(new PendingMemberWatcher(this)); th.start(); } @@ -358,6 +372,31 @@ public class PartitionContext implements Serializable{ return false; } + private long getMemberExpiryInterval () { + + // if expiry time has been set in startup scrip with 'member.expiry.interval', use that + String memberExpiryInterval = System.getProperty(Constants.MEMBER_EXPIRY_INTERVAL); + long memberExpiryIntervalLongVal = -1; + + if (memberExpiryInterval != null) { + + try { + memberExpiryIntervalLongVal = Long.parseLong(memberExpiryInterval); + + } catch (NumberFormatException e) { + log.warn("Invalid value specified for [member.expiry.interval] in the startup script, default value of 15 mins will be used"); + return -1; + } + + if (memberExpiryIntervalLongVal < 0) { + log.warn("Invalid value specified for [member.expiry.interval] in the startup script, default value of 15 mins will be used"); + return -1; + } + } + + return memberExpiryIntervalLongVal; + } + private class PendingMemberWatcher implements Runnable { private PartitionContext ctxt; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e96fcec2/products/autoscaler/modules/distribution/src/main/resources/stratos.bat ---------------------------------------------------------------------- diff --git a/products/autoscaler/modules/distribution/src/main/resources/stratos.bat b/products/autoscaler/modules/distribution/src/main/resources/stratos.bat index 78307f8..0c3af11 100644 --- a/products/autoscaler/modules/distribution/src/main/resources/stratos.bat +++ b/products/autoscaler/modules/distribution/src/main/resources/stratos.bat @@ -167,7 +167,7 @@ set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% set JAVA_ENDORSED=".\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" -set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -DandesConfig=qpid-config.xml -Ddisable.cassandra.server.startup=true -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\log4j.properties" -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Djndi.properties.dir="%CARBON_HOME%/repository/conf" -Dcarbon.logs.path="%CARBON_HOME%\r epository\logs" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -DandesConfig=qpid-config.xml -Ddisable.cassandra.server.startup=true -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\repository\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\log4j.properties" -Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Djndi.properties.dir="%CARBON_HOME%/repository/conf" -Dcarbon.logs.path="%CARBON_HOME%\r epository\logs" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dmember.expiry.interval=900000 -Dcarbon.classpath=%CARBON_CLASSPATH% :runJava echo JAVA_HOME environment variable is set to %JAVA_HOME% http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e96fcec2/products/autoscaler/modules/distribution/src/main/resources/stratos.sh ---------------------------------------------------------------------- diff --git a/products/autoscaler/modules/distribution/src/main/resources/stratos.sh b/products/autoscaler/modules/distribution/src/main/resources/stratos.sh index 77f7a91..3da2613 100644 --- a/products/autoscaler/modules/distribution/src/main/resources/stratos.sh +++ b/products/autoscaler/modules/distribution/src/main/resources/stratos.sh @@ -299,6 +299,7 @@ do -Djava.security.egd=file:/dev/./urandom \ -Dfile.encoding=UTF8 \ -Djndi.properties.dir="$CARBON_HOME/repository/conf" \ + -Dmember.expiry.interval=900000 \ org.wso2.carbon.bootstrap.Bootstrap $* status=$? done
