What are different System Contracts in JCA?
System Contracts
An application server and an EIS collaborate to keep all system-level mechanisms, such as transactions, security, and connection management, transparent from the application components.
The JCA Version 1.0 defines the following set of system-level contracts between an application server and EIS, which enables outbound connectivity to an EIS:
A Connection Management contract that lets an application server pool connections to an underlying EIS, and lets application components connect to an EIS. This leads to a scalable application environment that can support a large number of clients requiring access to EISs
An application server and an EIS collaborate to keep all system-level mechanisms, such as transactions, security, and connection management, transparent from the application components.
The JCA Version 1.0 defines the following set of system-level contracts between an application server and EIS, which enables outbound connectivity to an EIS:
A Connection Management contract that lets an application server pool connections to an underlying EIS, and lets application components connect to an EIS. This leads to a scalable application environment that can support a large number of clients requiring access to EISs
A Transaction Management contract between the transaction manager and transactional access to EIS resource managers. It lets an application server use a transaction manager to manage transactions across multiple resource managers.
A Security contract that enables a secure access to an EIS. This contract provides support for a secure application environment, which reduces security threats to the EIS and protects valuable information resources managed by the EIS.
JCA Version 1.5 defines the following set of system-level contracts between an application server and EIS, which enables inbound connectivity from an EIS:
A Transaction Inflow contract that allows a resource adapter to propagate an imported transaction to an application server. This contract also allows a resource adapter to flowin transaction completion and crash recovery calls initiated by an EIS, and ensures that the ACID properties of the imported transaction are preserved.
JCA Version 1.5 defines the following set of system-level contracts between an application server and EIS, which enables inbound connectivity from an EIS:
A Transaction Inflow contract that allows a resource adapter to propagate an imported transaction to an application server. This contract also allows a resource adapter to flowin transaction completion and crash recovery calls initiated by an EIS, and ensures that the ACID properties of the imported transaction are preserved.
A Message Inflow contract that allows a resource adapter to asynchronously deliver messages to message endpoints residing in the application server independent of the specific messaging style, messaging semantics and messaging infrastructure used to deliver messages. It provides pluggability for message providers (Java Message Service (JMS), Java API for XML Messaging (JAXM), and so on) to any J2EE technology-compatible application server via a resource adapter.
JCA Version 1.5 also defines the following set of system-level contracts between an application server and EIS, which enables resource adapter lifecycle management and thread management:
A Lifecycle Management contract that allows an application server to manage the lifecycle of a resource adapter. 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 undeployment or during an orderly shutdown of the application server.
A Work Management contract that allows a resource adapter to do work (monitor network endpoints, call application components, etc.) by submitting Work instances to an application server for execution.