Jakarta Connectors (JCA; formerly Java EE Connector Architecture and J2EE Connector Architecture) is a Java programming language tool for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI). While JDBC is specifically used to connect Java applications to databases, JCA is a more generic architecture for connection to legacy systems. JCA was developed under the Java Community Process as JSR 16 (JCA 1.0), JSR 112 (JCA 1.5) and JSR 322 (JCA 1.6). JCA and Java EE J2EE Version 1.3 requires application servers to support JCA Version 1.0. J2EE Version 1.4 requires application servers to support JCA Version 1.5. Java EE Version 6 requires application servers to support JCA version 1.6. Contracts The Jakarta Connector Architecture defines a standard for connecting a compliant application server to an EIS. It defines a standard set of system-level contracts between the Jakarta EE application server and a resource adapter. The system contracts defined by Version 1.0 of the J2EE Connector Architecture are described by the specification as follows: Connection management Connection management enables an application server to pool connections to the underlying EIS and enables application components to connect. This leads to a scalable application environment that can support a large number of clients. Transaction management Transaction management enables an application server to use a transaction manager to manage transactions across multiple resource managers. This contract also supports transactions that are managed internal to an EIS resource manager without the necessity of involving an external transaction manager. Security management Security management reduces security threats to the EIS and protects valuable information resources managed by the EIS. JCA Version 1.5 adds system contracts to the specification as follows: Life cycle management Life cycle management enables an application server to manage the life cycle of a resource adapter from initiation through upgrades to obsolescence. This contract provides a mechanism for the application server to bootstrap a resource adapter instance during its deployment or application server startup, and to notify the resource adapter instance during its withdrawal or during an orderly shutdown. Work management Work management enables a resource adapter to do work (monitor network endpoints, invoke application components, and so on) by submitting work instances to an application server for execution. The application server dispatches threads to execute submitted work instances. This allows a resource adapter to avoid creating or managing threads directly, and allows an application server to efficiently