J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater...

21
J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef Künzel Systemberater [email protected] +49 (0)89 96271 224

Transcript of J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater...

Page 1: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

J2EE Conformance vonJDBC 2.0 - Middleware und

EJB Applikation Server

Detlef Künzel [email protected]

+49 (0)89 96271 224

Page 2: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +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

Page 3: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Java 2 , Enterprise Edition

Applikationsmodel Beschreibt, wie man eine J2EE Applikation entwickelt

Plattform Spezifikationen Definiert J2EE Anforderungen

Kompatibilitäts Testtool Überprüfung ob konform mit J2EE Plattform

Referenz Implementierung Zusammenarbeit mit J2EE Plattform

Page 4: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

J2EE Architektur

Page 5: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

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

Page 6: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

JDBC 2.0 Einführung Neue Features

JDBC Core (java.sqljava.sql) Scrollable-Cursors Unterstützung Neue Datentypen Batch Updates

JDBC Optional Package (javax.sqljavax.sql) Java Naming and Directory Interface (JNDI) Connection Pooling Verteilte Transaktionen RowSets

Page 7: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

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);...

Page 8: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

JNDI Architecture

Page 9: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Connection Pooling: Object Diagram

Standard JDBC Standard JDBC ConnectionConnectionInterfacesInterfaces

Page 10: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

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 unternehmens- kritische Applikationen XA, 2 Phase-Commit, Long Transaction sind (fast) Synonyme

EJB Server

DBMS 1

Java Virtual Machine

Java Applet

DBMS 2

RM I

2PC

Page 11: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

XA Transactions Object Diagram

Standard JDBC Standard JDBC ConnectionConnectionInterfacesInterfaces

Page 12: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

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

Page 13: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Welche Applikationserver unterstützen verteilte Transaktionen?

IBM - Websphere ab Version 3.5 IONA - I-Portal Applicationserver Gemstone - Gemstone/J

bei anderen klären ob XADataSource-Interface unterstützt wird

Page 14: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

DataDirect SequeLink Java Edition

Ein universeller JDBC-Treiber für alle Datenbanken, dadurch maximale DB-Unabhä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

Page 15: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Enterprise Java Bean

SessionBeans

modellieren Prozesse und AbläufeZugriff auf Datenbankenz.B. Abfrage des Kontostandes

Einem Client zugeordnetanonym

Transiente Objektekurzlebig, für eine Sitzungüberleben Systemabsturz nicht

EntityBeans

Repräsentieren Geschäftsabläufeverknüpft mit Datenbankenz.B. Daten eines Bankkontos

Von mehreren Clients nutzbarbesitzt Identität

Persistente Objektelanglebig überleben Systemabstürze

Page 16: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Transaktionssteuerungdurch 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)

Page 17: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Transaction Attribute Summaryfür implizite Steuerung

Page 18: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Beans und TransaktionenBeispiel

Session Bean:SB_KundenPflege

Methoden:Anlegen()Aendern()Suche()

Entity Bean:EB_KundeMethoden:ejbStore() ejbLoad()

Deployment Descriptor:SB_KundenPflege:

TX_SUPPORTS

Deployment Descriptor:EB_Kunde:

TX_MANDATORY

Page 19: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Beispiel Code (in EJB)// Create multi-component, multi-distributor order// in Bean-Demarcated Session BeanContext 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);

Page 20: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Beispiel Code (2)

stmt1 = con1. createStatement();stmt2 = con2. createStatement();... Transaktion hier ...// if order can be completely filled, create the

order, otherwise// rollbackif (flag)ut. commit();elseut. rollback();

Page 21: J2EE Conformance von JDBC 2.0 - Middleware und EJB Applikation Server Detlef KünzelSystemberater Detlef.Kuenzel@merant.com +49 (0)89 96271 224.

Vielen Dank !

Detlef Künzel [email protected]

+49 (0)89 96271 224