com.remedy.arsys.api
Class DefaultProxyManager
java.lang.Object
com.remedy.arsys.api.ProxyManager
com.remedy.arsys.api.DefaultProxyManager
- public class DefaultProxyManager
- extends ProxyManager
DefaultProxyManager
is a singleton factory class that provides clients with
Proxy instances. Proxies represent connections to AR System servers and
provide access to their server via the native AR System API. Proxies are
optionally pooled by server. A client taking a proxy from the pool by
calling getProxy
must return it to the pool
when done by calling releaseProxy
and
not hold onto a reference to it.
Here the DefaultProxyManager
simply instantiates Proxy on request and terminates
its connection when a client releases it. Because a connection is maintained until the proxy
has been releasd, clients should not hold references to a proxy for extended times; an AR System
server license is also consumed while the connection is active. Behavior is undefined when holding
a reference to a released proxy and calling methods on it. Such practice will also prevent the proxy
from being garbage collected.
The default ProxyManager returned by getProxyManager
does
not pool connections. The system property
ProxyManager
class can be set to the
name of an alternative class that uses another policy. Specifically,
the API provides PoolingProxyManager
if pooling of connections is desired.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
getProxy
public Proxy getProxy(ARServerUser context,
boolean usingContextProxy)
throws ARException
- Get proxy for the AR System server specified by the context. The caller
must return the proxy after use by calling
releaseProxy
. The proxy holds one of a limited number of
connections to its associated server. The caller must not
hold a reference to the proxy after returning it.
- Specified by:
getProxy
in class ProxyManager
- Throws:
ARException
- because logging in
Proxy.ARSetLogging
failed in the server
releaseProxy
public void releaseProxy(Proxy proxy,
ARServerUser context,
boolean usingContextProxy)
- Return a proxy for possible later reuse. Whether it can be later
reused depends on whether the specific
ProxyManager
being used pools
connections or not. The specified context is used to determine which
AR System server (and its connection) is associated with this proxy. The
caller must not continue to hold a reference to the proxy
after returning it to the ProxyManager
so that when it expires its
connection can be terminated and it can be garbage collected.
- Specified by:
releaseProxy
in class ProxyManager