Kein Folientitel - Java Forum Stuttgart

Werbung
J2EE Conformance von
JDBC 2.0 - Middleware und
EJB Applikation Server
Detlef Künzel
Systemberater
[email protected]
+49 (0)89 96271 224
Agenda




Java 2 Enterprise Edition
JDBC 2.0 Einführung
Datenbankintegration mit JDBC 2.0
Enterprise Java Beans in Zusammenhang
mit JDBC 2.0
Java 2 , Enterprise Edition

Applikationsmodel


Plattform Spezifikationen


Definiert J2EE Anforderungen
Kompatibilitäts Testtool


Beschreibt, wie man eine J2EE Applikation entwickelt
Überprüfung ob konform mit J2EE Plattform
Referenz Implementierung

Zusammenarbeit mit J2EE Plattform
J2EE Architektur
Java 2 Plattform und JDBC

Java 2 Standard Edition


JDBC 2.0 core Spezifikation
Java 2 Enterprise Edition
Enterprise Java Beans 1.1
 JDBC 2.0 Optional Package
 Java Servlets
 Java Server Pages
 Zertifizierung Verfahren mit J2EE Reference
Implementierung

JDBC 2.0 Einführung
Neue Features

JDBC Core (java.sql)
Scrollable-Cursors Unterstützung
 Neue Datentypen
 Batch Updates


JDBC Optional Package (javax.sql)
Java Naming and Directory Interface (JNDI)
 Connection Pooling
 Verteilte Transaktionen
 RowSets

Scrollable Result Sets
Statement stmt =
con.createStatement(ResultSet.TYPE_SCROLL
ResultSet srs = stmt.executeQuery("SELECT COF_NAME,
PRICE
srs.afterLast();
while (srs.previous()) {
String name = srs.getString("COF_NAME");
float price = srs.getFloat("PRICE");
System.out.println(name + " " + price);
}
srs.absolute(4);
srs.relative(-2);
...
JNDI Architecture
Connection Pooling: Object Diagram
Standard JDBC
Connection
Interfaces
Was sind Verteilte Transaktionen ?
Transaktionen auf mehrere, auch
heterogenen Datenbanken
 Alle beteiligte Datenbanken
sind immer in einem konsistenten
Zustand
 Früher immer von einem
Transaktions-Monitor gesteuert
 Unabdingbar für unternehmenskritische Applikationen
 XA, 2 Phase-Commit, Long
Transaction sind (fast) Synonyme

Java Virtual
Machine
Java
Applet
RM I
EJB Server
2PC
DBMS 1
DBMS 2
XA Transactions Object Diagram
Standard JDBC
Connection
Interfaces
JDBC 2.0: Distributed XA Transactions

Wenige Code-Änderungen:
Kein Connection.commit()
 Kein Connection.rollback()
 Kein Connection.setAutoCommit()



Stattdessen in dem DataSource object verwaltet
JDBC Treiber muß folgende JDBC XA
Interfaces implementieren:
javax.sql.XADataSource
 javax.sql.XAConnection


In SequeLink Java Edition seit Dezember 1999
Welche Applikationserver unterstützen
verteilte Transaktionen?




IBM - Websphere ab Version 3.5
IONA - I-Portal Applicationserver
Gemstone - Gemstone/J
bei anderen klären ob XADataSourceInterface unterstützt wird
DataDirect SequeLink Java Edition





Ein universeller JDBC-Treiber für alle
Datenbanken, dadurch maximale DBUnabhängigkeit
Kombiniert Performance von Typ 4-Lösung mit
Flexibilität von Typ 3
Einsetzbar in beliebigen Java-Konfigurationen,
da 100% Pure Java zertifiziert
Beste Möglichkeit für Java/OS 390
Verwendet von Javasoft im Rahmen der J2EE
Zertifizierungsverfahren
Enterprise Java Bean
SessionBeans
EntityBeans
modellieren Prozesse und Abläufe
Zugriff auf Datenbanken
z.B. Abfrage des Kontostandes
Repräsentieren Geschäftsabläufe
verknüpft mit Datenbanken
z.B. Daten eines Bankkontos
Einem Client zugeordnet
anonym
Von mehreren Clients nutzbar
besitzt Identität
Transiente Objekte
kurzlebig, für eine Sitzung
überleben Systemabsturz nicht
Persistente Objekte
langlebig
überleben Systemabstürze
Transaktionssteuerung
durch JavaBeans

Explizit (SessionBeans)


ist nicht J2EE konform wird aus Performensgründen
jedoch häufig angewendet
Implizit (EntityBeans)

Bean managed
Zustandssicherung durch Bean
 Bean-Provider codiert DB-Aufruf
(als Teil der Bean-Business-Logic)


Container managed
Zustandssicherung durch Container
 Container generiert DB-Aufrufe (Deployment Deskriptor
spezifiziert zu sicheren Bean-Attributen)

Transaction Attribute Summary
für implizite Steuerung
Beans und Transaktionen
Beispiel
Session Bean:
SB_KundenPflege
Methoden:
Anlegen()
Aendern()
Suche()
Deployment Descriptor:
SB_KundenPflege:
TX_SUPPORTS
Entity Bean:
EB_Kunde
Methoden:
ejbStore()
ejbLoad()
Deployment Descriptor:
EB_Kunde:
TX_MANDATORY
Beispiel Code (in EJB)
// Create multi-component, multi-distributor order
// in Bean-Demarcated Session Bean
Context ctx = new InitialContext();
ds1 = (DataSource) ctx.lookup("jdbc/ inventoryDB1");
ds2 = (DataSource) ctx.lookup("jdbc/ inventoryDB2");
ut = ctx. getUserTransaction();
ut. begin();
con1 = ds1.getConnection( user1, password1);
con2 = ds2.getConnection( user2, password2);
Beispiel Code (2)
stmt1 = con1. createStatement();
stmt2 = con2. createStatement();
... Transaktion hier ...
// if order can be completely filled, create the order,
otherwise
// rollback
if (flag)
ut. commit();
else
ut. rollback();
Vielen Dank !
Detlef Künzel
Systemberater
[email protected]
+49 (0)89 96271 224
Herunterladen