ICF supports multiple connector types, based on the implementation of the
connector interface, and the
configuration interface. These two interfaces determine whether the connector can be pooled, and whether its configuration is stateful. Before you begin developing your connector, decide on the connector type, based on the system to which you are connecting. For an overview of how the ICF framework manages each connector type, refer to Connector instance management.
This section outlines the different connector types.
The basic connector is a non-poolable connector. Each operation is executed on a new instance of the connector. ICF creates a new instance of the Connector class and uses a new or existing instance of the connector configuration to initialize the instance before the operation is executed. After the execution, ICF disposes of the connector instance.
- Poolable Connector
Before an operation is executed, an existing connector instance is pulled from the Connector Pool. If there is no existing instance, a new instance is created. After the operation execution, the Connector instance is released and placed back into pool.
The ICF framework pools instances of a poolable connector, rather than pooling connections within the connector.
For a basic (non-stateful) configuration, each time the configuration is used (when an operation is validated or a new connector instance is initialized, a new Configuration instance is created and configured with the Configuration properties.
- Stateful Configuration
With a stateful configuration, the configuration instance is created only once and is used until the Facade or Connector Pool that is associated with the Configuration is disposed of.
The following table illustrates how these elements combine to determine the connector type.
Entirely stateless combination. A new Configuration and Connector instance are created for each operation.
Connector initialization is an expensive operation, so it is preferable to keep connector instances in a pool. A new configuration is required only when a new connector instance is added to the pool.
The configuration can be used to make the heavy resource initialization. The less intensive connector instance can then execute the operation.
The configuration must be shared between the instances in the same pool and the connector initialization is expensive.
For detailed information on how the ICF framework manages each of these connector types, refer to Connector instance management.