|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface InboundConnectionCache<C extends Connection>
A concurrent connection cache for passively created connections (e.g. from an acceptor). Here a Connection is an abstraction of a Socket or SocketChannel: basically some sort of resource that is expensive to acquire, and can be re-used freely. The cache maintains a loose upper bound on the number of cached connections, and reclaims connections as needed.
This cache places minimal requirements on the Connections that it contains:
Some simple methods are provided for monitoring the state of the cache: numbers of busy and idle connections, and the total number of connections in the cache.
Access is also provided to the cache configuration: maxParallelConnections, highWaterMark, and numberToReclaim. Currently these can only be set when the cache is created. XXX We may wish to make the cache configuration dynamically configurable.
Method Summary | |
---|---|
void |
requestProcessed(C conn,
int numResponseExpected)
Indicate that request processing has been completed for a request received on conn. |
void |
requestReceived(C conn)
Mark a connection as busy because a request is being processed on the connection. |
void |
responseSent(C conn)
Inform the cache that a response has been sent on a particular connection. |
Methods inherited from interface com.sun.xml.ws.transport.tcp.connectioncache.spi.transport.ConnectionCache |
---|
close, getCacheType, highWaterMark, numberOfBusyConnections, numberOfConnections, numberOfIdleConnections, numberOfReclaimableConnections, numberToReclaim |
Method Detail |
---|
void requestReceived(C conn)
Note that this problem is inherent in a distributed system. We could in any case reclaim a connection AFTER a client has sent a request but BEFORE the request is received. Note that AFTER and BEFORE refer to global time which does not really exist in a distributed system (or at least we want to pretend it is not available). XXX Should we age out connections? This would require actual time stamps, rather than just an LRU queue.
void requestProcessed(C conn, int numResponseExpected)
void responseSent(C conn)
When a Connection is idle, and has no pending responses, it is eligible for reclamation.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |