<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://luminoussheep.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=JCA</id>
	<title>JCA - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://luminoussheep.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=JCA"/>
	<link rel="alternate" type="text/html" href="https://luminoussheep.net/mediawiki/index.php?title=JCA&amp;action=history"/>
	<updated>2026-05-11T19:22:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://luminoussheep.net/mediawiki/index.php?title=JCA&amp;diff=50&amp;oldid=prev</id>
		<title>Martin: Created page with &quot;Somewhat dated JCA article: http://java.sun.com/j2ee/connector/giga/RPA-112000-00018.htm  Current: http://java.sun.com/developer/technicalArticles/J2EE/connectorarch1_5/  Exam...&quot;</title>
		<link rel="alternate" type="text/html" href="https://luminoussheep.net/mediawiki/index.php?title=JCA&amp;diff=50&amp;oldid=prev"/>
		<updated>2021-09-14T21:22:35Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Somewhat dated JCA article: http://java.sun.com/j2ee/connector/giga/RPA-112000-00018.htm  Current: http://java.sun.com/developer/technicalArticles/J2EE/connectorarch1_5/  Exam...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Somewhat dated JCA article:&lt;br /&gt;
http://java.sun.com/j2ee/connector/giga/RPA-112000-00018.htm&lt;br /&gt;
&lt;br /&gt;
Current:&lt;br /&gt;
http://java.sun.com/developer/technicalArticles/J2EE/connectorarch1_5/&lt;br /&gt;
&lt;br /&gt;
Example of inbound messaging:&lt;br /&gt;
http://www.ibm.com/developerworks/java/library/j-jca1/&lt;br /&gt;
&lt;br /&gt;
Example of usage&lt;br /&gt;
http://java.sun.com/developer/technicalArticles/J2EE/connectorclient/index.html&lt;br /&gt;
&lt;br /&gt;
= Java Connector Architecture =&lt;br /&gt;
Moves integration issues of connection management, transactions, security to the application server, provides a standard interface CCI for communicating with EIS.&lt;br /&gt;
&lt;br /&gt;
* Required to support legacy/existing infrastructure add new technologies&lt;br /&gt;
* Helps model and automate processes&lt;br /&gt;
* Enables integration of systems in different divisions that were never written to be integrated&lt;br /&gt;
Requirements:&lt;br /&gt;
* scalable&lt;br /&gt;
* secure&lt;br /&gt;
* transactional&lt;br /&gt;
* platform independent - same RA can work on all app servers&lt;br /&gt;
* Supplied as a resource adaptor - rar file&lt;br /&gt;
&lt;br /&gt;
JCA must satisfy three contracts:&lt;br /&gt;
* CCI (actually optional but enables tooling)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;System level contract&amp;#039;&amp;#039;&amp;#039; for the application server&lt;br /&gt;
* EIS specific interface&lt;br /&gt;
&lt;br /&gt;
==== System level contract ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;bold&amp;#039;&amp;#039;&amp;#039; - new in 1.5&lt;br /&gt;
* connection management&lt;br /&gt;
* transaction management&lt;br /&gt;
* security&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;lifecycle&amp;#039;&amp;#039;&amp;#039; - notification of start up and shut down&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;message inflow&amp;#039;&amp;#039;&amp;#039; - to support asynchronous messages&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;work management&amp;#039;&amp;#039;&amp;#039; - allows resource adaptor to submit work to appserver&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;transaction inflow&amp;#039;&amp;#039;&amp;#039; - allows application server to be part of external transaction&lt;br /&gt;
&lt;br /&gt;
===== lifecycle management =====&lt;br /&gt;
must be supported - must offer java bean with start(BootStrapContext ctx) and stop() methods&lt;br /&gt;
&lt;br /&gt;
===== work management =====&lt;br /&gt;
optional&lt;br /&gt;
* allows the adaptor to appserver&lt;br /&gt;
* Submit an implementation of the Work interface to the WorkManager (as found in the BootStrapContext) of the app server&lt;br /&gt;
* run() method like thread + release() method for clean up code&lt;br /&gt;
&lt;br /&gt;
====== work listener ======&lt;br /&gt;
optional&lt;br /&gt;
* receives updates about work submitted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== message inflow ======&lt;br /&gt;
* allows both synchronous and asynchronous inbound communication&lt;br /&gt;
* Must implement ResourceAdaptor and ActivationSpec interfaces&lt;br /&gt;
* ResourceAdaptor - activate/deactivate endpoints&lt;br /&gt;
** activation includes a MessageEndpointFactory parameter for creating endpoints within the app server - on receiving a message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== transaction inflow ======&lt;br /&gt;
&lt;br /&gt;
== CCI ==&lt;br /&gt;
Common Client Interface&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/technicalArticles/J2EE/connectorclient/index.html&lt;br /&gt;
* Common client API to access different systems&lt;br /&gt;
* defines things such as transactions, getting a connection, sending/receiving data (records)&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
== EAI ==&lt;br /&gt;
Enterprise Architecture Integration&lt;br /&gt;
* standard methodology for applications and data sources to communicate&lt;br /&gt;
* designed to solve heterogeneous environment problems&lt;br /&gt;
&lt;br /&gt;
== Web ==&lt;br /&gt;
EAI driven by web requirements and technologies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is an EIS ==&lt;br /&gt;
Enterprise information system&lt;br /&gt;
* Bespoke enterprise applications&lt;br /&gt;
** Typically developed in a different language&lt;br /&gt;
* ERP Enterprise Resource Planning&lt;br /&gt;
** Production control, inventory management, HR&lt;br /&gt;
* Mainframe transaction processing systems&lt;br /&gt;
* Databases - data critical to the enterprise&lt;br /&gt;
&lt;br /&gt;
== EIS problems ==&lt;br /&gt;
* Transaction support&lt;br /&gt;
** do they support two phase commit - allowing integration and distributed transactions&lt;br /&gt;
* Technology limitations - administration &lt;br /&gt;
* Integration - specific technology&lt;br /&gt;
* Level of abstraction&lt;br /&gt;
&lt;br /&gt;
== Problems solved by JCA ==&lt;br /&gt;
* Complexity of transaction support&lt;br /&gt;
* Vendor specific API - need to learn new interface each time&lt;br /&gt;
* Scalability - pooling&lt;br /&gt;
&lt;br /&gt;
== Types of adaptor ==&lt;br /&gt;
* synchronous&lt;br /&gt;
* asynchronous - considered loosely coupled&lt;br /&gt;
** scale well&lt;br /&gt;
** increased complexity&lt;br /&gt;
** may loose security/transaction context&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
JMS may be used as part of the solution when integrating.&lt;br /&gt;
&lt;br /&gt;
Historically JCA 1.0 only supported synchronous adaptors so JMS was used to create an asynchronous mechanism&lt;br /&gt;
JCA 1.5 now supports asynchronous adaptors&lt;br /&gt;
&lt;br /&gt;
JEE 5.0 requires JCA 1.5 support&lt;br /&gt;
JCA 2.0 will include ability to plug in JMS providers, XML support in the CCI, metadata support in the CCI - auto discovery&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
</feed>