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

Upload: adalhaid-gerger

Post on 05-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

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