Class OutputConnectorPool
- java.lang.Object
-
- org.apache.manifoldcf.agents.outputconnectorpool.OutputConnectorPool
-
- All Implemented Interfaces:
IOutputConnectorPool
public class OutputConnectorPool extends java.lang.Object implements IOutputConnectorPool
An implementation of IOutputConnectorPool. Coordination and allocation among cluster members is managed within. These objects are thread-local, so do not share them among threads.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classOutputConnectorPool.LocalPoolActual static output connector pool
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String_rcsidprotected static OutputConnectorPool.LocalPoollocalPoolLocal connector poolprotected IThreadContextthreadContextThread context
-
Constructor Summary
Constructors Constructor Description OutputConnectorPool(IThreadContext threadContext)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseAllConnectors()Clean up all open output connector handles.voidflushUnusedConnectors()Flush only those connector handles that are currently unused.IOutputConnectorgrab(IOutputConnection outputConnection)Get an output connector.IOutputConnector[]grabMultiple(java.lang.String[] orderingKeys, IOutputConnection[] outputConnections)Get multiple output connectors, all at once.voidpollAllConnectors()Idle notification for inactive output connector handles.voidrelease(IOutputConnection connection, IOutputConnector connector)Release an output connector.voidreleaseMultiple(IOutputConnection[] connections, IOutputConnector[] connectors)Release multiple output connectors.
-
-
-
Field Detail
-
_rcsid
public static final java.lang.String _rcsid
- See Also:
- Constant Field Values
-
localPool
protected static final OutputConnectorPool.LocalPool localPool
Local connector pool
-
threadContext
protected final IThreadContext threadContext
Thread context
-
-
Constructor Detail
-
OutputConnectorPool
public OutputConnectorPool(IThreadContext threadContext) throws ManifoldCFException
Constructor- Throws:
ManifoldCFException
-
-
Method Detail
-
grabMultiple
public IOutputConnector[] grabMultiple(java.lang.String[] orderingKeys, IOutputConnection[] outputConnections) throws ManifoldCFException
Get multiple output connectors, all at once. Do this in a particular order so that any connector exhaustion will not cause a deadlock.- Specified by:
grabMultiplein interfaceIOutputConnectorPool- Parameters:
orderingKeys- are the keys which determine in what order the connectors are obtained.outputConnections- are the connections to use the build the connector instances.- Throws:
ManifoldCFException
-
grab
public IOutputConnector grab(IOutputConnection outputConnection) throws ManifoldCFException
Get an output connector. The connector is specified by an output connection object.- Specified by:
grabin interfaceIOutputConnectorPool- Parameters:
outputConnection- is the output connection to base the connector instance on.- Throws:
ManifoldCFException
-
releaseMultiple
public void releaseMultiple(IOutputConnection[] connections, IOutputConnector[] connectors) throws ManifoldCFException
Release multiple output connectors.- Specified by:
releaseMultiplein interfaceIOutputConnectorPool- Parameters:
connections- are the connections describing the instances to release.connectors- are the connector instances to release.- Throws:
ManifoldCFException
-
release
public void release(IOutputConnection connection, IOutputConnector connector) throws ManifoldCFException
Release an output connector.- Specified by:
releasein interfaceIOutputConnectorPool- Parameters:
connection- is the connection describing the instance to release.connector- is the connector to release.- Throws:
ManifoldCFException
-
pollAllConnectors
public void pollAllConnectors() throws ManifoldCFExceptionIdle notification for inactive output connector handles. This method polls all inactive handles.- Specified by:
pollAllConnectorsin interfaceIOutputConnectorPool- Throws:
ManifoldCFException
-
flushUnusedConnectors
public void flushUnusedConnectors() throws ManifoldCFExceptionFlush only those connector handles that are currently unused.- Specified by:
flushUnusedConnectorsin interfaceIOutputConnectorPool- Throws:
ManifoldCFException
-
closeAllConnectors
public void closeAllConnectors() throws ManifoldCFExceptionClean up all open output connector handles. This method is called when the connector pool needs to be flushed, to free resources.- Specified by:
closeAllConnectorsin interfaceIOutputConnectorPool- Throws:
ManifoldCFException
-
-