Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

JCA Release 1.5

Durch JCA (J2EE Connection Architekture) kön­nen externe Systeme, wie z.B. Enterprise Information Syteme, an einen J2EE Application Server ange­bun­den wer­den. JCA bie­tet ein fle­xi­bles Framework an, wel­ches es erlaubt, unter­schied­li­che Kommunikationswege, wie z.B. Message Queueing oder Files anzu­bin­den. Bei der Kommunikation mit exter­nen Systemen wird zwi­schen der Inbound- und Outbound-Kommunikation unter­schie­den. In dem fol­gen­den Beispiel soll eine Inbound-Kommunikation zwi­schen einem MQ Manager und einem Application Server erfol­gen. Dabei soll ein MessageDriven Bean beim Eingang einer neuen Message ange­spro­chen wer­den.

247-1

Der Inbound Resource Adapter besteht aus den Komponenten:

  • MQResourceAdapter
  • MQEndpointConsumer
  • MQWorkConsumer
  • MQActivationSpec
  • ra.xml

Im JCA Deploymentdiscriptor ra.xml wird der ResourceAdapter, der MessageListener und die ActivationSpec Klasse ange­ge­ben. Zusätzlich kön­nen Parameter wie, z.B. der Name des Queue-Managers oder der Host ange­ge­ben wer­den. Als Beispiel hier ein Auszug aus der ra.xml:

ramxl_image

Die Klasse MQActivationSpec wird zur Übertragung von Konfigurationen an den ResourcenAdapter benö­tigt (Auszug):

mqactivationspec

In der Klasse MQWorkConsumer fin­det die eigent­li­che Arbeit statt. Es wird die Verbindung durch den EndpointConsumer zum MQServer auf­ge­baut und in einem Thread wird peri­odisch (pol­ling) nach neuen Messages in der Queue gesucht. Wird eine Nachricht gefun­den, wird diese an die MethodeonMessage des MessageDrivenBean über­ge­ben. Beispiel das Thread der Work-Klasse:

run_thread

Die Methode zur Übergabe der emp­fan­ge­nen Nachricht an onMessage des MessageDrivenBean sieht wie folgt aus:

onmessage_uebergabe

Die MessageDrivenBean Klasse, die die Verarbeitung der ein­ge­gan­ge­nen Nachricht über­nimmt, muss das Interface MessageListener imple­men­tie­ren und im EJB Deploymentdescriptor ein­ge­tra­gen wer­den.

MQResourceAdapter ist die Implementierung des ResourceAdapters. Diese Klasse reagiert auf Lifecycle Ereignisse des Application Servers und sorgt für die Instanziierung, Start und Stop des Listeners.

mqresourceadapter

Der eigene ResourceAdapter muss in den DeploymentDescriptor des jewei­li­gen Applicationserver ein­ge­tra­gen wer­den. In die­sem Beispiel sieht der Eintrag so aus:

ejb_jar

Der Ablauf einer Instanziierung eines Resource Adapters sieht in einem Sequenzdiagram, wel­ches in der ConnectorArchitecture Specification zu fin­den ist, wie folgt aus:

240-1

 

Links zum Thema:

1. Februar 2009
||

Related Posts

Pin It on Pinterest