diff options
author | Benoit Foucher <benoit@zeroc.com> | 2009-10-16 11:31:59 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2009-10-16 11:31:59 +0200 |
commit | ba0d6f63970277f5ccc3bf6447a5c451d007b36e (patch) | |
tree | 88a7217bec554a95a4ca256bb53d3fa6c08f5db1 /java/src/Ice/ObjectAdapterI.java | |
parent | Fixed py and rb to compile again with Enpoint changes (diff) | |
download | ice-ba0d6f63970277f5ccc3bf6447a5c451d007b36e.tar.bz2 ice-ba0d6f63970277f5ccc3bf6447a5c451d007b36e.tar.xz ice-ba0d6f63970277f5ccc3bf6447a5c451d007b36e.zip |
Added support for per-OA ACM and fix for retry on CloseConnectionException
Diffstat (limited to 'java/src/Ice/ObjectAdapterI.java')
-rw-r--r-- | java/src/Ice/ObjectAdapterI.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java index 0737878ca27..67229763453 100644 --- a/java/src/Ice/ObjectAdapterI.java +++ b/java/src/Ice/ObjectAdapterI.java @@ -798,6 +798,23 @@ public final class ObjectAdapterI implements ObjectAdapter return _servantManager; } + public int + getACM() + { + // Not check for deactivation here! + + assert(_instance != null); // Must not be called after destroy(). + + if(_hasAcmTimeout) + { + return _acmTimeout; + } + else + { + return _instance.serverACM(); + } + } + // // Only for use by IceInternal.ObjectAdapterFactory // @@ -810,6 +827,8 @@ public final class ObjectAdapterI implements ObjectAdapter _instance = instance; _communicator = communicator; _objectAdapterFactory = objectAdapterFactory; + _hasAcmTimeout = false; + _acmTimeout = 0; _servantManager = new IceInternal.ServantManager(instance, name); _activateOneOffDone = false; _name = name; @@ -899,6 +918,13 @@ public final class ObjectAdapterI implements ObjectAdapter _threadPool = new IceInternal.ThreadPool(_instance, _name + ".ThreadPool", 0); } + _hasAcmTimeout = properties.getProperty(_name + ".ACM").length() > 0; + if(_hasAcmTimeout) + { + _acmTimeout = properties.getPropertyAsInt(_name + ".ACM"); + _instance.connectionMonitor().checkIntervalForACM(_acmTimeout); + } + if(router == null) { router = RouterPrxHelper.uncheckedCast(_instance.proxyFactory().propertyToProxy(name + ".Router")); @@ -1436,6 +1462,7 @@ public final class ObjectAdapterI implements ObjectAdapter static private String[] _suffixes = { + "ACM", "AdapterId", "Endpoints", "Locator", @@ -1508,6 +1535,8 @@ public final class ObjectAdapterI implements ObjectAdapter private Communicator _communicator; private IceInternal.ObjectAdapterFactory _objectAdapterFactory; private IceInternal.ThreadPool _threadPool; + private boolean _hasAcmTimeout; + private int _acmTimeout; private IceInternal.ServantManager _servantManager; private boolean _activateOneOffDone; final private String _name; |