summaryrefslogtreecommitdiff
path: root/java/src/Ice/ObjectAdapterI.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-10-16 11:31:59 +0200
committerBenoit Foucher <benoit@zeroc.com>2009-10-16 11:31:59 +0200
commitba0d6f63970277f5ccc3bf6447a5c451d007b36e (patch)
tree88a7217bec554a95a4ca256bb53d3fa6c08f5db1 /java/src/Ice/ObjectAdapterI.java
parentFixed py and rb to compile again with Enpoint changes (diff)
downloadice-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.java29
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;