Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Verteilte Transaktionen mit EJBs und JDBC 2.0 Oder, Java gets paranoid ! Richard Bourke.

Ähnliche Präsentationen


Präsentation zum Thema: "Verteilte Transaktionen mit EJBs und JDBC 2.0 Oder, Java gets paranoid ! Richard Bourke."—  Präsentation transkript:

1 Verteilte Transaktionen mit EJBs und JDBC 2.0 Oder, Java gets paranoid ! Richard Bourke

2 Copyright © 1999 MERANT INC. Agenda n Verteilte Transaktionen und Object Transaktion Monitor n JDBC 2.0 Einführung n Enterprise Java Beans in Zusammenhang mit JDBC 2.0

3 Copyright © 1999 MERANT INC. 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

4 Copyright © 1999 MERANT INC. Arten von Transaktionsmonitore n Proprietär l Prozedurale Interfaces zu Sprachen wie C, C++, Cobol l Verbindungen zu Datenbanken ebenso proprietär n Object Transaction Monitor (OTM) l Basiert auf Corba Transaction Service / Microsoft DCOM l OO Interfaces möglich l Verbindung zu Datenbanken noch proprietär n Enterprise Java Beans l Grafische integration in OO Entwicklungsumgebungen l Standardisierte Interfaces zu Datenbanken

5 Copyright © 1999 MERANT INC.

6 Java 2 Platform n Standard Edition l beinhaltet JDBC 2.0 (core plus extensions) n Enterprise Edition l Enterprise Java Beans 1.1 u Java Transaction API (JTA) l Java Servlets l Java Server Pages l Compatibility Tests ( in etwa 100% Pure Java für Application Servers)

7 Copyright © 1999 MERANT INC. Was ist JDBC? n Das Datenbank-Connectivity API für Java l Low-Level / wenige Abstraktion n High-level Komponenten l Embedded SQL (SQLJ) l Object Relational Mapping Werkzeuge l Enterprise JavaBeans TM Plattformen n 4 Arten von JDBC Treibern

8 Copyright © 1999 MERANT INC. DataDirect SequeLink Java Edition n Ein universeller JDBC-Treiber für alle Datenbanken, dadurch maximale DB- Unabhängigkeit n Kombiniert Performance von Typ 4-Lösung mit Flexibilität von Typ 3 n Beste Möglichkeit für Java/OS 390 n Einsetzbar in beliebigen Java-Konfigurationen, da 100% Pure Java zertifiziert n Höchste Zuverlässigkeit und Stabilität, da auf bewährter SequeLink-Plattform basierend

9 Copyright © 1999 MERANT INC. JDBC 2.0 Neue Features java.sql JDBC Core ( java.sql ) l Scrollable-Cursors Unterstützung l Neue Datentypen l Batch Updates javax.sql JDBC Standard Extension ( javax.sql ) l Connection Pooling l Rowsets l Java Naming and Directory Interface (JNDI) l Verteilte Transaktionen

10 Copyright © 1999 MERANT INC. JDBC 2.0 n Das einzige offizielle API für Datenbank- Transactionen mit "Distributed Unit of Work" n JDBC wird als "Resource Adapter" vom Transaction Manager verwendet n Stellt dem Transaction Manager Dienste zur Verfügung: l Connection Pooling l XA Verteilte Transaktionen

11 Copyright © 1999 MERANT INC. JDBC 2.0: Connection Pooling n Transparent für die Applikationen n Wird intern vom DataSource object verwaltet durch l javax.sql.PooledConnection() (implementiert von EJB Server ) l javax.sql.ConnectionPoolDataSource (implementiert von JDBC Treiber)

12 Copyright © 1999 MERANT INC. Connection Pooling: Code Beispiel Connection con = null; try { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup( "jdbc/ inventoryDB"); con = ds. getConnection( user, password);. } finally { if (con != null) con. close();

13 Copyright © 1999 MERANT INC. JDBC 2.0: Distributed XA Transactions n Wenige Code-Änderungen: l Kein Connection.commit() l Kein Connection.rollback() l Kein Connection.setAutoCommit() n Wird intern von DataSource object verwaltet n JDBC Treiber muß folgende JDBC XA Interfaces implementieren: l javax.sql.XADataSource l javax.sql.XAConnection n In SequeLink Java Edition in Q3 99

14 Copyright © 1999 MERANT INC. XA Transactions Object Diagram

15 Copyright © 1999 MERANT INC. Transaction Attribute Summary für implizite Steuerung

16 Copyright © 1999 MERANT INC. 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);

17 Copyright © 1999 MERANT INC. Beispiel Code (2) stmt1 = con1. createStatement(); stmt2 = con2. createStatement(); Flag = true // loop through order lines for each { // check stock levels rs = stmt1. executeQuery( "select stock, arttype, price from stock " + "where artnm like ");

18 Copyright © 1999 MERANT INC. Beispiel Code (3) if (rs. getInt( stock) != 0) // decrement stock of item in DB1 stmt1. execute(" update stock set stock=" + (rs. getInt(" stock")- 1) where artnm= "); // add new account record in DB2 stmt2. execute(" insert into account values( '" + name + "', '" + address + "', " + rs. getInt(" arttype") + ", " + rs. getInt(" price") + ")"); else flag = false }

20 Copyright © 1999 MERANT INC. Referenzen n Ejb1_1-publicdraft2.pdf n jdbc spec 2.0 standard extension.pdf n Developing Mission- Critical Applications using JDBC 2.0 Technology Seth White, JavaSoft.


Herunterladen ppt "Verteilte Transaktionen mit EJBs und JDBC 2.0 Oder, Java gets paranoid ! Richard Bourke."

Ähnliche Präsentationen


Google-Anzeigen