Verteilte Transaktionen mit EJBs und JDBC 2.0

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Object Relational Mapping (ORM). Objektmodell - Datenbankmodell.
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP.
Transaction Synchronization for XML Data in Client Server Web Applications Stefan Böttcher & Adelhard Türling Universität Paderborn.
PL/SQL - Kurze Einführung -.
Karo IT Viehmarkt Neumarkt Karo IT Neumarkt GmbH | Tel.:
R. Zankl – Ch. Oelschlegel – M. Schüler – M. Karg – H. Obermayer R. Gottanka – F. Rösch – P. Keidler – A. Spangler th Expert Meeting Business.
SAP Best Practices Baseline Package U.S. Scenario Overview
Microsoft Referenzarchitekturen- Infrastruktur für Connected Systems
1 Sascha Michael Competence Manager Integration Umsetzung einer SOA-basierten Retail Plattform.
Windows Vista Deployment
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
Dr. M. Schlottke Common Description of Web Services Source: P. Gerbert, 2002 Web Services allow to establish B2B e-commerce on the fly Web Services allow.
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
ATHOS Benutzertreffen 2007
Dynamische Webseiten Java servlets.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Datenbank-Zugriffsschnittstellen am Beispiel von Oracle und PL/SQL.
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
ansprechendes Design Übersichtlichkeit simple(selbsterklärende) Navigation unsere Credos : design programming Ltd.
Oracle interMedia Audio Vortrag für das Seminar Oracle Zusatzoptionen Chris Haußmann.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Compuware Corporation MDA and Pattern how to do more with less Andreas Herzig Java Solutions Manager Central Europe.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Brückenschlag zwischen J2EE 1.4 und Mainframe
GSI GSI Status Juni 2005 Michael Dahlinger, IT 14/6/2005.
JDBC: JAVA Database Connectivity
CTS2 based Terminology Server – Overview – Project eBPG
Enterprise JavaBeans Architektur Folien zum IFC-Vortrag am
INSTITUT FÜR DATENTECHNIK UND KOMMUNIKATIONS- NETZE 1 Steffen Stein, TU Braunschweig, 2009 A Timing-Aware Update Mechanism for Networked Real-Time Systems.
Microsoft Office Forms Server
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner | Bildquellen : [1]
Sanjay Patil Standards Architect – SAP AG April 2008
EJB-Applikationsserver
Vergleich der verschiedenen kommerziellen Datenbanksysteme
Softwareentwicklung mit Oracle Lite & Delphi
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
| Basel Von der SharePoint Taskliste zum gemanagten Project in Project Server Luca Argentiero Solution Specialist Microsoft
ORMapper: NHibernate Henning Eiben
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
XML IV: Cocoon 2.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #9 SQL (Teil 4)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Web Application Engineering & Content Management.
Softwaresponsoren Mediasponsoren. Vorstellung KnowledgeCenter Neue Sprachfeautres in VB 9.0 LINQ to SQL in der Praxis.
Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner | Bildquellen : [1]
Digital Dashboard Toolkit 2001 SharePoint Portal Server released targeting portal market SharePoint Team Services (STS) released as free add-
Informations-Forum: SAP Interoperabilität
Agile ALM for Plex/2E CM MatchPoint ALM. Themen Agenda CM MatchPoint ALM Übersicht CM MatchPoint 5.2 Web und Mobile Entwicklung Agile ALM / DevOps CM.
Datenbankanbindung mit
Fakultät für informatik informatik 12 technische universität dortmund Memory architecture description languages - Session 20 - Peter Marwedel TU Dortmund.
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
SQL Server 2005 CLR Integration Sebastian Weber Microsoft Deutschland GmbH
Technische Universität München 1 CADUI' June FUNDP Namur G B I The FUSE-System: an Integrated User Interface Design Environment Frank Lonczewski.
Java 7 Änderungen in der neuen Version Thomas Nagel 17. Juni 2012.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
© abaXX Java als Plattform für die Abbildung von B2B Geschäftsprozessen Di 7 :
Verteilte Anwendungen: J2EE
Vorlesung #8 SQL (Teil 5).
 Präsentation transkript:

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

Agenda Verteilte Transaktionen und Object Transaktion Monitor JDBC 2.0 Einführung Enterprise Java Beans in Zusammenhang mit JDBC 2.0 NOTIZEN ___________________________________ ___________________________________ ___________________________________

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 NOTIZEN ___________________________________ ___________________________________ ___________________________________

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

Enterprise Java Beans NOTIZEN ___________________________________ ___________________________________ ___________________________________

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

Was ist JDBC? Das Datenbank-Connectivity API für Java Low-Level / wenige Abstraktion High-level Komponenten Embedded SQL (SQLJ) Object Relational Mapping Werkzeuge Enterprise JavaBeansTM Plattformen 4 Arten von JDBC Treibern NOTIZEN ___________________________________ ___________________________________ ___________________________________

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 Beste Möglichkeit für Java/OS 390 Einsetzbar in beliebigen Java-Konfigurationen, da 100% Pure Java zertifiziert Höchste Zuverlässigkeit und Stabilität, da auf bewährter SequeLink-Plattform basierend NOTIZEN ___________________________________ ___________________________________ ___________________________________

JDBC 2.0 Neue Features JDBC Core (java.sql) Scrollable-Cursors Unterstützung Neue Datentypen Batch Updates JDBC Standard Extension (javax.sql) Connection Pooling Rowsets Java Naming and Directory Interface (JNDI) Verteilte Transaktionen NOTIZEN ___________________________________ ___________________________________ ___________________________________

JDBC 2.0 Das einzige offizielle API für Datenbank-Transactionen mit "Distributed Unit of Work" JDBC wird als "Resource Adapter" vom Transaction Manager verwendet Stellt dem Transaction Manager Dienste zur Verfügung: Connection Pooling XA Verteilte Transaktionen NOTIZEN ___________________________________ ___________________________________ ___________________________________

JDBC 2.0: Connection Pooling Transparent für die Applikationen Wird intern vom DataSource object verwaltet durch javax.sql.PooledConnection() (implementiert von EJB Server ) javax.sql.ConnectionPoolDataSource (implementiert von JDBC Treiber) NOTIZEN ___________________________________ ___________________________________ ___________________________________

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(); NOTIZEN ___________________________________ ___________________________________ ___________________________________

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

XA Transactions Object Diagram NOTIZEN ___________________________________ ___________________________________ ___________________________________

Transaction Attribute Summary für implizite Steuerung NOTIZEN ___________________________________ ___________________________________ ___________________________________

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); NOTIZEN ___________________________________ ___________________________________ ___________________________________

Beispiel Code (2) // loop through order lines stmt1 = con1. createStatement(); stmt2 = con2. createStatement(); Flag = true // loop through order lines for each <component> { // check stock levels rs = stmt1. executeQuery( "select stock, arttype, price from stock " + "where artnm like <componentname>"”); NOTIZEN ___________________________________ ___________________________________ ___________________________________

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= <component>"); // add new account record in DB2 stmt2. execute(" insert into account values( '" + name + "', '" + address + "', " + rs. getInt(" arttype") + ", " + rs. getInt(" price") + ")"); else flag = false } NOTIZEN ___________________________________ ___________________________________ ___________________________________

Beispiel Code (4) // if order can be completely filled, create the order, otherwise // rollback if (flag) ut. commit(); else ut. rollback(); NOTIZEN ___________________________________ ___________________________________ ___________________________________

Referenzen Ejb1_1-publicdraft2.pdf jdbc spec 2.0 standard extension.pdf Developing Mission- Critical Applications using JDBC 2.0 Technology Seth White, JavaSoft. http://industry.java.sun.com/javaone/99/tracks/ NOTIZEN ___________________________________ ___________________________________ ___________________________________