DE60035800T2 - Verfahren zum unterstützen von verteilten transaktionen mit jdbc 1.0 -treibern - Google Patents
Verfahren zum unterstützen von verteilten transaktionen mit jdbc 1.0 -treibern Download PDFInfo
- Publication number
- DE60035800T2 DE60035800T2 DE60035800T DE60035800T DE60035800T2 DE 60035800 T2 DE60035800 T2 DE 60035800T2 DE 60035800 T DE60035800 T DE 60035800T DE 60035800 T DE60035800 T DE 60035800T DE 60035800 T2 DE60035800 T2 DE 60035800T2
- Authority
- DE
- Germany
- Prior art keywords
- database
- transaction
- jdbc
- connection
- driver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Description
- Hintergrund der Erfindung
- 1. Gebiet der Erfindung
- Die vorliegende Erfindung betrifft im Allgemeinen eine Transaktionsunterstützung in einer Berechnungsumgebung für verteilte Objekt und insbesondere ein Verfahren für eine verteilte Transaktionsunterstützung unter Verwendung von JDBC-1.0-Treibern.
- 2. Beschreibung des verwandten Standes der Technik
- Java Database-Konnektivität oder JDBC ist eine allgemeine SQL-Datenbankzugriffs-Anwendungsprogrammschnittstelle (API – applications program interface) für die Java-Programmiersprache. Diese API stellt eine einheitliche Schnittstelle für eine Vielzahl von unterschiedlichen Datenbank-Modulen bereit, die es Programmierern erlaubt, eine einzelne Datenbankschnittstelle zum Zugreifen auf eine Vielzahl von unterschiedlichen Datenbänken zu schreiben. Die ursprüngliche JDBC-1.0-Spezifikation wurde neulich durch die Freigabe einer JDBC-2.0-Kern-API-Spezifikation, Version 1.0, 30. Mai 1998 und einer JDBC-2.0-Standarderweiterungs-API-Spezifikation, Version 1.0, 7. Dezember 1998 aktualisiert.
- Wie in
1 gezeigt, werden, wenn eine Datenbankverbindung von einem JDBC 1.0 Treiber erhalten wird, alle Datenbankzugriffe, die über diese Verbindung durchgeführt werden, von der Transaktion durchgeführt, die spezifisch für diese Verbindung ist. Falls es zum Beispiel drei Datenbankverbindungen C1, C2, C3 gibt, wird die Arbeit, die über die drei Verbindungen durchgeführt wird, in drei getrennte, unabhängige Transaktionen T1, T2, T3 getrennt. - Die JDBC-2.0-Standarderweiterung-API definiert eine Unterstützung für verteilte Transaktionen unter Verwendung des Standard-Zwei-Phasen-Übergabeprotokolls, das in der Java-Transaktions-API (JTA – Java Transaction API) definiert ist. Dieses Merkmal erlaubt, dass viele JDBC-Verbindungen zu vielen Datenbanken unter gleichen, globalen Transaktion koordiniert werden. Mit anderen Worten wird eine Serie von Arbeit durch einzelne Komponenten in eine einzelne Einheit von Arbeit gruppiert, z.B. eine einzelne Transaktion. Wie zum Beispiel in
2 dargestellt, ist es mit einem JDBC-2.0-Standarderweiterungs-Treiber möglich, mehrfache Datenbankverbindungen C4, C5, C6 derart zu erhalten, dass sie alle in der gleichen, globalen Transaktion T4 eingetragen sind. Mit anderen Worten ist die gesamte Arbeit, die über diese Verbindungen C4, C5, C6 durchgeführt wird, ein Teil der gleichen, globalen Transaktion T4. - Eine Unterstützung für die JDBC-2.0-Standarderweiterungs-API ist jedoch optional und viele Datenbanken stellen lediglich JDBC-1.0-Treiber bereit. Die JDBC-1.0-Treiber umfassen keine Unterstützung für verteilte Transaktionen wie in der JDBC-2.0-Standarderweiterung definiert. Es wäre daher wünschenswert, eine begrenzte Unterstützung für verteilte Transaktionen unter Verwendung von JDBC-1.0-Treibern bereitzustellen, ohne die Notwendigkeit eines JDBC-2.0-Standarderweiterungs-kompatiblen-Treibers.
- Zusammenfassung der Erfindung
- Die vorliegende Erfindung stellt eine Gestaltung und Implementation von Klassen bereit, die die Simulation eines JDBC-2.0-Standarderweiterungs-Treiberverhaltens unter Verwendung von Standard-JDBC-1.0-Treibern erlauben. Statt einem Erzeugen einer neuen physikalischen Datenbankverbindung für jede Verbindungsanfrage, hält ein Schnittstellen-Treiber intern eine Abbildung in einer Tabelle zwischen einem globalen Transaktionsidentifikator und der physikalischen Datenbankverbindung aufrecht. Selbst falls eine Anwendung mehrere Verbindungen zu der gleichen Datenbank anfordert, wird der Gesamtdatenbankzugriff durch diese Verbindungen tatsächlich zu der gleichen, physikalischen Datenbankverbindung umgeleitet, wie diese in der Tabelle aufrechterhalten wird. Dies erlaubt es, dass die gesamte Arbeit unter der gleichen Transaktion koordiniert wird.
- Zunächst hält ein Adapter eine Tabelle von Abbildungen zwischen globalen Transaktionsidentifikatoren und zugeordneten, physikalischen Verbindungen aufrecht. Wenn eine Komponente eine Datenbankverbindung anfordert, wird der Komponente eine virtuelle Verbindung zugewiesen. Wenn die Komponente versucht auf die Verbindung zuzugreifen, bestimmt der Adapter, ob eine physikalische Verbindung mit der Transaktion der Komponente verknüpft ist. Falls nicht, wird eine physikalische Verbindung erzeugt und die Tabelle wird aktualisiert. Die virtuelle Verbindung der Komponente wird dann dynamisch mit der physikalischen Verbindung beschaltet, die mit der Transaktion der Komponente verknüpft ist. Daher wird der Zugriff der Komponente zu der physikalischen Verbindung umgeleitet. Aus der Sicht der Datenbank wird lediglich eine physikalische Verbindung aufgebaut und mit lediglich einer Transaktion verknüpft. Die Arbeit, die von unterschiedlichen Komponenten durchgeführt wird, wird dadurch automatisch unter der gleichen Transaktion gruppiert.
- Kurze Beschreibung der Zeichnungen
- Die vorliegende Erfindung wird leicht durch die folgende detaillierte Beschreibung in Verbindung mit den begleitenden Zeichnungen verstanden, wobei gleiche Bezugszeichen gleiche strukturelle Elemente bezeichnen und in denen:
-
1 Datenbankverbindungen darstellt, die gemäß einem JDBC-1.0-Treiber durchgeführt werden; -
2 Datenbankverbindungen darstellt, die gemäß einem JDBC-2.0-Treiber durchgeführt werden; -
3 ist ein Diagramm einer typischen J2EE-RI-Implementation; -
4 stellt die Beziehung zwischen einem Container, Komponenten, einem JDBC-Treiber und einer Datenbank dar; -
5(A) stellt einen Container dar, der konfiguriert ist, einen JDBC-2.0-Treiber zu verwenden; -
5(B) stellt einen Container dar, der gemäß der vorliegenden Erfindung konfiguriert ist; -
6 stellt eine bevorzugte Ausführung der vorliegenden Erfindung dar; und -
7 ist ein Flussdiagramm des Betriebs der vorliegenden Erfindung. - Detaillierte Beschreibung der Erfindung
- Die folgende Beschreibung wird bereitgestellt, um es irgendeiner auf dem Gebiet tätigen Person zu ermöglichen, die Erfindung durchzuführen und zu verwenden und stellt die besten Ausführungsarten dar, die von dem Erfinder zum Ausführen der Erfindung genannt sind. Unterschiedliche Modifikationen jedoch werden leicht den auf dem Gebiet tätigen Fachleuten ersichtlich, da die Grundprinzipien der vorliegenden Erfindung hierin insbesondere definiert wurden, um ein Verfahren für eine verteilte Transaktionsunterstützung unter Verwendung von JDBC-1.0-Treibern bereitzustellen.
- Die Java 2 Platform Enterprise Edition (J2EE) von Sun Microsystems ist eine Plattform zum Konstruieren von Java- Technologie-basierender-Vielschichtanwendungen über ein verteiltes, Objekt orientiertes Unternehmen. Eine bestimmte J2EE-kompartible Implementierung ist als die J2EE-Reference Implementation oder J2EE RI bekannt. Die J2EE RI umfasst eine Implementierung eines Java-Transaktionsdienstes (JTS – Java Transaction Service) und eine Java-Transaction-API (JTA). Der JTS wird durch die Java-Transaction Service-Entwurfspezifikation, Version 0,95, 1. März 1999 spezifiziert und die JTA wird von der Java-Transaction-API-Spezifikation, Version 1.0.1, 29. April 1999 spezifiziert. Die JTA-Spezifizierung spezifiziert die Schnittstellen auf höchster Ebene zwischen einem Transaktionsmanager und irgendwelchen anderen Parteien, die an einem verteilten Übertragungssystem beteiligt sind, wie zum Beispiel die Anwendung, den Ressourcen-Manager und den Anwendungsserver.
- Eine typische J2EE-Implementation ist in
3 dargestellt. Die J2EE-Implementation10 kann auf einer oder mehreren physikalischen Maschinen installiert werden, da der J2EE-Standard keine vordefinierte Hardware-Konfiguration spezifiziert. Die Standardarchitektur unterstützt zwei Arten von Komponenten, Web-Komponenten und Enterprise Java Bean-(EJB) Komponenten141 ,142 und ebenso Anwendungs-Clients. Die Web-Komponenten umfassen Jave Server Pages (JSP)121 und servlets122 . Die JSP-Komponenten121 können zum Beispiel über einen Web-Browser20 unter Verwendung von http zugegriffen werden. Jeder Typ einer Komponente ist innerhalb eines „Containers"12 ,14 ,16 ,17 enthalten, der eine Umgebung bereitstellt, in der die Komponenten oder Anwendungen laufen. Eine J2EE-Implementation10 kann mehrere Container vom gleichen Typ16 ,17 enthalten und die Container können in einer verteilten Umgebung existieren. Einzelne Komponenten können mit anderen über die Container oder mit externen Datenbanken18 interagieren. Jeder Container weist seinen eigenen Transaktions-Manager124 ,144 ,164 auf, um Transaktionen innerhalb des Containers zu verwalten. Die Transaktions-Manager können mit anderen Transaktions-Managern kommunizieren, um eine Transaktions-Statusinformation zu bestimmen. - Wie in
4 dargestellt, kann jede Komponente401 in einem Container40 eine Verbindung mit einer Datenbank18 öffnen, um die gleiche Datenbankfunktion durchzuführen. Diese Datenbankanforderungen werden durch einen JDBC-Treiber405 gehandhabt. Jedoch sehen, wie oben beschrieben, JDBC-1.0-Treiber vor, dass jede Verbindung mit der Datenbank eine unabhängige Transaktion darstellt. Idealerweise wären alle Komponenten, die an der gleichen Transaktion arbeiten, in der Lage, eine getrennte Verbindung zu öffnen, jedoch alle Verbindungen mit der gleichen Transaktion verknüpft aufzuweisen. Eine Lösung ist es, einen JDBC-2.0-Standarderweiterungs-Treiber zu verwenden, der es Containern erlaubt, Transaktionen dynamisch mit mehreren Verbindungen zu verknüpfen. Jedoch haben viele Datenbanken keinen kommerziellen JDBC-2.0-Treiber bereitgestellt. Daher stellt die vorliegende Erfindung eine Zwischenlösung bereit, die eine begrenzte Unterstützung für verteilte Transaktionen unter Verwendung existierender JDBC-1.0-Treiber bereitstellt. - Die vorliegende Erfindung stellt eine Gestaltung und eine Implementierung von Klassen bereit, die die Simulation von JDBC-2.0-Standarderweiterungs-Treiberverhalten unter Verwendung von JDBC-1.0-Treibern erlauben. Wie hierin definiert, wird die vorliegende Erfindung als ein JDBC-2.0-Standarderweiterungs-Adapter oder einfach ein Adapter bezeichnet. Statt einem Erzeugen einer neuen, physikalischen Datenbankverbindung für jede Verbindungsanfrage, hält der Adapter intern eine Abbildung in einer Tabelle zwischen einem globalen Transaktions-Identifikator und der physikalischen Datenbankverbindung aufrecht. Selbst falls eine Anwendung mehrere Verbindungen zu der gleichen Datenbank für die gleiche Transaktion anfordert, wird der gesamte Datenbankzugriff über diese Verbindungen tatsächlich zu der gleichen, physikalischen Datenbankverbindung umgeleitet, wie diese in der Tabelle aufrechterhalten wird. Dies erlaubt es, dass die gesamte Arbeit unter der gleichen Transaktion koordiniert wird.
- Die vorliegende Erfindung schirmt einen Container von einem Erkennen ab, das zwei unterschiedliche Versionen eines JDBC-Treibers existieren. Insbesondere weist, wie in
5(A) gezeigt, der Container50 einen JDBC-2.0-Standarderweiterungs-Treiber501 auf und daher sieht der Container eine JDBC-2.0-Standarderweiterungs-API502 . Der Container52 in5(B) jedoch weist einen JDBC-1.0-Treiber521 auf. Gewöhnlich würde der Container52 eine JDBC-1.0-API522 sehen. Die vorliegende Erfindung umfasst jedoch einen JDBC-2.0-Standarderweiterungs-Adapter523 , um die gleiche JDBC-2.0-Standarderweiterungs-API524 dem Container52 darzustellen, wie diese von dem Container50 mit einem 2.0-Treiber gesehen werden würde. - Falls daher der zugrunde liegende Treiber ein JDBC-2.0-Standarderweiterungs-Treiber ist, ist es kein Problem und die vorliegende Erfindung wird nicht implementiert. Falls der Treiber jedoch ein 1.0-Treiber ist, erweitert der Adapter
523 die Funktionalität des 1.0-Treibers, um ihn aus der Perspektive des Containers wie einen 2.0-Treiber verhalten zu lassen, ohne jegliche spezifische Unterstützung von den Datenbanken. - Der Betrieb des Adapters
523 wird nun in Bezug auf6 beschrieben. Statt einem sofortigen Öffnen einer Verbindung zu der Datenbank601 , wenn eine Komponente602 eine Anfrage tätigt, wird der Komponente eine Verbindung62 gegeben, die anfänglich nicht mit der Datenbank601 verbunden ist (z.B. eine „virtuelle Verbindung"). Eine getrennte Tabelle60 wird aufrechterhalten, die einen globalen Transaktions-Identifikator mit einer physikalischen Verbindung zu der Datenbank verknüpft. Zum Beispiel wird eine Transaktion T1 mit einer physikalischen Verbindung C1 verknüpft. -
7 ist ein Flussdiagramm, das den Betrieb der vorliegenden Erfindung darstellt. Zunächst hält der Adapter523 eine Tabelle von Abbildungen zwischen globalen Transaktions-Identifikatoren und verknüpften physikalischen Verbindungen aufrecht (Schritt70 ). Wenn eine Komponente eine Datenbankverbindung anfordert, wird der Komponente eine virtuelle Verbindung zugewiesen (Schritt72 ). Wenn die Komponente versucht, auf die virtuelle Verbindung zuzugreifen, bestimmt der Adapter, ob oder ob nicht eine physikalische Verbindung mit der Transaktion der Komponente verknüpft ist (Schritt74 ). Falls nicht, wird eine neue physikalische Verbindung erzeugt und die Tabelle aktualisiert (Schritt80 ). Die virtuelle Verbindung wird dann dynamisch mit der physikalischen Verbindung beschaltet (verbunden), die mit der Transaktion der Komponente verknüpft ist (Schritt76 ). Der Datenbankzugriff wird daher zu der physikalischen Verbindung umgeleitet (Schritt78 ). Aus der Sicht der Datenbank wird lediglich eine physikalische Verbindung aufgebaut und mit lediglich einer Transaktion verknüpft. Die Arbeit, die von den unterschiedlichen Komponenten durchgeführt wird, wird daher automatisch unter der gleichen Transaktion gruppiert. - Die vorliegende Erfindung ist jedoch etwas begrenzt. Damit die vorliegende Erfindung arbeitet, müssen die Komponenten in dem gleichen Prozess oder einer Java Virtual Machine vorliegen, da sie ansonsten nicht in der Lage sind, die gleiche physikalische Verbindung zu teilen. Eine tatsächliche JDBC-2.0-Standarderweiterungsimplementation würde diese Einschränkung nicht aufweisen. Da nicht alle Datenbanken die Fähigkeit haben, mehrere Verbindungen für eine einzelne Transaktion zu unterstützen, erlaubt es die vorliegende Erfindung diesen Datenbanken in einer begrenzten Weise, die gleichen Ergebnisse zu erzielen, ohne einen fortschrittlichen JDBC-Treiber aufzuweisen. Durch Verwenden einer Schnittstelle innerhalb des Containers braucht der Container lediglich die 2.0-Standarderweiterungs-API zu verstehen, während die Datenbanken mit einem 1.0-Treiber interagieren.
- Die auf dem Gebiet tätigen Fachleute werden verstehen, dass unterschiedliche Anpassungen und Modifikationen der gerade beschriebenen, bevorzugten Ausführungen konfiguriert werden können, ohne von dem Umfang der Erfindung abzuweichen. Daher ist es selbstverständlich, dass innerhalb des Umfangs der angehängten Ansprüche die Erfindung anders als hierin spezifisch beschrieben ausgeführt werden kann.
Claims (18)
- Verfahren zur verteilten Transaktionsunterstützung auf einem Computersystem mit einem Datenbanksystem unter Verwendung eines Datenbanktreibers, wobei das Verfahren durch die Schritte gekennzeichnet ist: Verknüpfen einer physikalischen Datenbankverbindung mit jeder Transaktion; Zuordnen einer virtuellen Datenbankverbindung (
62 ) zu einer Komponente, die eine Datenbankverbindung (72 ) anfordert; und Verknüpfen jeder virtuellen Datenbankverbindung mit einer physikalischen Datenbankverbindung basierend auf einem Transaktionsidentifikator (76 ). - Verfahren nach Anspruch 1 weiter mit den Schritten: dynamisches Austauschen virtueller Verbindungen, die mit der gleichen physikalischen Verbindung verknüpft sind, um Datenbankverbindungen für jede der Komponenten bereitzustellen.
- Verfahren nach Anspruch 2, wobei der Datenbanktreiber ein JBDC 1.0-Treiber ist.
- Verfahren nach Anspruch 3, wobei das Verfahren eine Simulation eines JDBC 2.0 Standard Extension-Treiberverhaltens bereitstellt.
- Verfahren nach Anspruch 4, wobei der Schritt eines Verknüpfens den Schritt eines Bildens einer Tabelle von Transaktions- und Verbindungsbeziehungen umfasst.
- Verfahren nach Anspruch 5, wobei das Verfahren als ein Adapter implementiert ist, der eine Schnittestelle zu einem JDBC 1.0-Treiber bilden kann.
- Verfahren nach Anspruch 6, wobei der Adapter eine JDBC 2.0 API-Schnittstelle bereitstellt, wie von einem Container gesehen.
- Verfahren nach Anspruch 7, wobei alle der Komponenten, die mit einer Transaktion verknüpft sind, auf dem gleichen Prozess oder einer Java Virtual Machine (JVM) sind.
- Verfahren nach Anspruch 8, wobei das Computersystem ein Java 2 Platform Enterprise Edition (J2EE) – System ist.
- Verfahren für einen Computersystem-Datenbanktreiberadapter (
523 ) zum Verknüpfen vieler Datenbankverbindungen mit einer einzelnen Transaktion, wobei das Verfahren durch die Schritte gekennzeichnet ist: Verknüpfen einer physikalischen Datenbankverbindung mit jeder Transaktion durch Bilden einer Tabelle von Transaktions- und physikalischen Verbindungsbeziehungen; Zuordnen einer virtuellen Datenbankverbindung (62 ) zu einer Komponente, die eine Datenbankverbindung (72 ) anfordert; und Verknüpfen jeder virtuellen Datenbankverbindung mit einer physikalischen Datenbankverbindung basierend auf einem Transaktionsidentifikator (76 ), der in der Tabelle (76 ) gespeichert ist; und dynamisches Austauschen virtueller Verbindungen, die mit der gleichen physikalischen Verbindung verknüpft sind, um Datenbankverbindungen für jede der Komponenten bereitzustellen. - Verfahren nach Anspruch 10, wobei der Adapter eine Simulation eines JDBC 2.0 Standard Extension-Treiberverhaltens bereitstellt.
- Verfahren nach Anspruch 12, wobei der Adapter eine Schnittestelle zu einem JDBC 1.0-Treiber bilden kann.
- Verfahren nach Anspruch 12, wobei der Adapter eine JDBC 2.0 API-Schnittstelle bereitstellt, wie von einem Container gesehen.
- Verfahren nach Anspruch 13, wobei alle der Komponenten, die mit einer Transaktion verknüpft sind, auf dem gleichen Prozess oder einer Java Virtual Machine (JVM) sind.
- Verfahren nach Anspruch 14, wobei das Computersystem ein Java 2 Platform Enterprise Edition (J2EE) – System ist.
- Verfahren zum Simulieren eines JDBC 2.0 Standard Extension-Treiberverhaltens unter Verwendung eines Standard-JDBC 1.0-Treibers, wobei das Verfahren durch die Schritte gekennzeichnet ist: Erzeugen einer Abbildung in einer Tabelle (
60 ) zwischen globalen Transaktionsidentifikatoren (T1, T2, T3) und physikalischen Datenbankverbindungen (C1, C2, C3); und Umleiten aller Datenbankverbindungsanfragen, die mit einem globalen Transaktionsidentifikator verknüpft sind, über die gleiche physikalische Datenbankverbindung, wie in der Tabelle aufrecht erhalten. - Verfahren nach Anspruch 16, wobei der Schritt eines Umleitens die Schritte umfasst; und Verknüpfen jeder virtuellen Datendankverbindung mit einer physikalischen Datenbankverbindung basierend auf dem Transaktionsidentifikator der Komponente.
- Verfahren nach Anspruch 17, weiter mit dem Schritt: dynamisches Austauschen virtueller Verbindungen, die mit der gleichen physikalischen Verbindung verknüpft sind, um Datenbankverbindungen für jede der Komponenten bereitzustellen.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US333141 | 1999-06-14 | ||
US09/333,141 US6411956B1 (en) | 1999-06-14 | 1999-06-14 | Method for distributed transaction support using JDBC 1.0 drivers |
PCT/US2000/015930 WO2000077686A2 (en) | 1999-06-14 | 2000-06-09 | Method for distributed transaction support using jdbc 1.0 drivers |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60035800D1 DE60035800D1 (de) | 2007-09-13 |
DE60035800T2 true DE60035800T2 (de) | 2008-04-30 |
Family
ID=23301478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60035800T Expired - Lifetime DE60035800T2 (de) | 1999-06-14 | 2000-06-09 | Verfahren zum unterstützen von verteilten transaktionen mit jdbc 1.0 -treibern |
Country Status (6)
Country | Link |
---|---|
US (1) | US6411956B1 (de) |
EP (1) | EP1252584B1 (de) |
JP (1) | JP2003529120A (de) |
AU (1) | AU5478200A (de) |
DE (1) | DE60035800T2 (de) |
WO (1) | WO2000077686A2 (de) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1182479C (zh) * | 2000-01-07 | 2004-12-29 | 国际商业机器公司 | 有效地收集、整理和访问证书吊销表的***和方法 |
US6938256B2 (en) | 2000-01-18 | 2005-08-30 | Galactic Computing Corporation | System for balance distribution of requests across multiple servers using dynamic metrics |
US20040259774A1 (en) * | 2000-03-08 | 2004-12-23 | Enrique Alvarez | Therapeutic polypeptides, nucleic acids encoding same, and methods of use |
US8538843B2 (en) | 2000-07-17 | 2013-09-17 | Galactic Computing Corporation Bvi/Bc | Method and system for operating an E-commerce service provider |
US6816905B1 (en) * | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
US7136857B2 (en) * | 2000-09-01 | 2006-11-14 | Op40, Inc. | Server system and method for distributing and scheduling modules to be executed on different tiers of a network |
US20030050932A1 (en) * | 2000-09-01 | 2003-03-13 | Pace Charles P. | System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks |
US20020184337A1 (en) * | 2001-05-21 | 2002-12-05 | Anders Hyldahl | Method and computer system for constructing references to virtual data |
US6567809B2 (en) * | 2001-06-08 | 2003-05-20 | International Business Machines Corporation | Disabling and reloading enterprise java beans using database trigger programs |
US7571215B2 (en) * | 2001-07-16 | 2009-08-04 | Bea Systems, Inc. | Data replication protocol |
US7409420B2 (en) * | 2001-07-16 | 2008-08-05 | Bea Systems, Inc. | Method and apparatus for session replication and failover |
US6918013B2 (en) * | 2001-07-16 | 2005-07-12 | Bea Systems, Inc. | System and method for flushing bean cache |
US7702791B2 (en) * | 2001-07-16 | 2010-04-20 | Bea Systems, Inc. | Hardware load-balancing apparatus for session replication |
US20030023898A1 (en) * | 2001-07-16 | 2003-01-30 | Jacobs Dean Bernard | Layered architecture for data replication |
US7028030B2 (en) * | 2001-08-30 | 2006-04-11 | Bea Systems, Inc. | Cluster caching with concurrency checking |
US6826601B2 (en) * | 2001-09-06 | 2004-11-30 | Bea Systems, Inc. | Exactly one cache framework |
US7113980B2 (en) * | 2001-09-06 | 2006-09-26 | Bea Systems, Inc. | Exactly once JMS communication |
KR100429514B1 (ko) | 2001-12-12 | 2004-05-03 | 삼성전자주식회사 | 네트워크관리프로토콜에 있어 정보 보관용관리정보베이스의 데이터베이스 억세스방법 및 시스템 |
US7930704B2 (en) * | 2002-02-06 | 2011-04-19 | Oracle International Corporation | J2EE component extension architecture |
US7392302B2 (en) | 2002-02-21 | 2008-06-24 | Bea Systems, Inc. | Systems and methods for automated service migration |
US20030182426A1 (en) * | 2002-03-21 | 2003-09-25 | Sun Microsystems, Inc. | Apparatus and method of lazy connection transaction enlistment |
US6850942B2 (en) * | 2002-04-26 | 2005-02-01 | International Business Machines Corporation | System and method for providing multiple virtual database connections in a relational database system |
US7337184B1 (en) * | 2002-07-17 | 2008-02-26 | International Business Machines Corporation | Topology mapping of a multitier compute infrastructure |
US7243306B1 (en) | 2002-07-17 | 2007-07-10 | International Business Machines Corporation | Service descriptor for a multitier compute infrastructure |
US7962590B1 (en) * | 2002-07-17 | 2011-06-14 | International Business Machines Corporation | Automated discovery of a multitier compute infrastructure |
US7210143B2 (en) * | 2002-07-17 | 2007-04-24 | International Business Machines Corporation | Deployment of applications in a multitier compute infrastructure |
US7506342B2 (en) * | 2002-07-23 | 2009-03-17 | Bea Systems, Inc. | System and method for implementing J2EE connector architecture |
US7698434B2 (en) * | 2002-08-29 | 2010-04-13 | Bea Systems, Inc. | J2EE connector architecture |
US8145759B2 (en) | 2002-11-04 | 2012-03-27 | Oracle America, Inc. | Dynamically configurable resource pool |
US7743083B2 (en) * | 2003-04-24 | 2010-06-22 | Oracle America, Inc. | Common transaction manager interface for local and global transactions |
US7610305B2 (en) | 2003-04-24 | 2009-10-27 | Sun Microsystems, Inc. | Simultaneous global transaction and local transaction management in an application server |
US20040267690A1 (en) * | 2003-06-26 | 2004-12-30 | International Business Machines Corporation | Integrated development environment with context sensitive database connectivity assistance |
US7640545B2 (en) * | 2003-07-14 | 2009-12-29 | Sun Microsytems, Inc. | Transaction manager freezing |
US7739252B2 (en) | 2003-07-14 | 2010-06-15 | Oracle America, Inc. | Read/write lock transaction manager freezing |
US8521875B2 (en) * | 2003-09-04 | 2013-08-27 | Oracle America, Inc. | Identity for data sources |
US8266326B2 (en) * | 2003-09-15 | 2012-09-11 | Oracle America, Inc. | Frameworks for integrating information systems |
US7257605B2 (en) * | 2004-02-09 | 2007-08-14 | International Busniess Machines Corporation | System for heterogeneous distributed transaction management in database systems |
US7757226B2 (en) * | 2004-03-17 | 2010-07-13 | Oracle International Corporation | Method and mechanism for performing a rolling upgrade of distributed computer software |
US20050251523A1 (en) * | 2004-05-07 | 2005-11-10 | Oracle International Corporation | Minimizing downtime for application changes in database systems |
US8060482B2 (en) | 2006-12-28 | 2011-11-15 | Intel Corporation | Efficient and consistent software transactional memory |
US8037467B2 (en) * | 2007-10-26 | 2011-10-11 | International Business Machines Corporation | Single stream processing with multi-version support of application operating environments |
US7962782B2 (en) * | 2008-05-20 | 2011-06-14 | International Business Machines Corporation | Modifying connection records |
US8972438B2 (en) | 2010-12-06 | 2015-03-03 | International Business Machines Corporation | Database access for native applications in a virtualized environment |
US9424007B2 (en) * | 2011-06-02 | 2016-08-23 | Open Invention Network, Llc | System and method for pervasive software platform-based model driven architecture transaction aware application generator |
US20140032608A1 (en) * | 2012-07-30 | 2014-01-30 | Gregory P. Comeau | Database adapter |
US20160092037A1 (en) * | 2014-09-25 | 2016-03-31 | Osix Corporation | Computer-Implemented Methods, Computer Readable Media, And Systems For Distributed Processing |
CN110022367A (zh) * | 2019-04-11 | 2019-07-16 | 软通动力信息技术(集团)有限公司 | 一种事务处理方法和事务处理*** |
CN111694846B (zh) * | 2020-06-04 | 2023-08-29 | 贵州易鲸捷信息技术有限公司 | 一种基于Type 2 JDBC驱动的分离模式分布式存储过程实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167253A (en) * | 1995-01-12 | 2000-12-26 | Bell Atlantic Network Services, Inc. | Mobile data/message/electronic mail download system utilizing network-centric protocol such as Java |
US5899990A (en) * | 1997-03-31 | 1999-05-04 | Sun Microsystems, Inc. | Java-to-Database Connectivity Server |
US6256637B1 (en) * | 1998-05-05 | 2001-07-03 | Gemstone Systems, Inc. | Transactional virtual machine architecture |
-
1999
- 1999-06-14 US US09/333,141 patent/US6411956B1/en not_active Expired - Lifetime
-
2000
- 2000-06-09 JP JP2001503093A patent/JP2003529120A/ja active Pending
- 2000-06-09 DE DE60035800T patent/DE60035800T2/de not_active Expired - Lifetime
- 2000-06-09 EP EP00939743A patent/EP1252584B1/de not_active Expired - Lifetime
- 2000-06-09 WO PCT/US2000/015930 patent/WO2000077686A2/en active IP Right Grant
- 2000-06-09 AU AU54782/00A patent/AU5478200A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2000077686A3 (en) | 2002-08-15 |
EP1252584B1 (de) | 2007-08-01 |
US6411956B1 (en) | 2002-06-25 |
EP1252584A2 (de) | 2002-10-30 |
AU5478200A (en) | 2001-01-02 |
DE60035800D1 (de) | 2007-09-13 |
JP2003529120A (ja) | 2003-09-30 |
WO2000077686A2 (en) | 2000-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60035800T2 (de) | Verfahren zum unterstützen von verteilten transaktionen mit jdbc 1.0 -treibern | |
DE69523939T2 (de) | Verfahren zur erzeugung von objektstrukturen für den zugriff auf konventionelle, nicht objekt-orientierte geschäftsanwendungen | |
DE3852324T2 (de) | Verfahren und System zur Netzwerkverwaltung. | |
EP0825524B1 (de) | Verfahren zur Verwaltung der Benennung von Objekten | |
DE69228621T2 (de) | Objektorientiertes verteiltes Rechnersystem | |
DE68919976T2 (de) | Verfahren zur Herstellung von aktuellen Terminaladressen für Systemanwender die verteilte Anwendungsprogramme in einer SNA LU 6.2-Netzwerkumbegung verarbeiten. | |
DE69112156T2 (de) | Gerät zur Realisierung von Datenbanken zum Verschaffen von objektorientiertem Aufrufen von Anwendungsprogrammen. | |
DE69829442T2 (de) | System und Verfahren für transparenten, globalen Zugang zu physikalischen Geräten in einem Rechnersystem | |
DE69832354T2 (de) | Netzwerkverwaltungsrahmenwerk | |
DE69229888T2 (de) | Netzwerkverwaltungssystem und relationelle Datenbank dafür | |
DE68919631T2 (de) | Verfahren zur Verarbeitung von Programmteilen eines verteilten Anwendungsprogramms durch einen Hauptrechner und einen intelligenten Arbeitsplatz in einer SNA LU 6.2-Netzwerkumgebung. | |
DE69220093T2 (de) | Verarbeitungsnetzwerk für verteilte anwendungsprogramme. | |
DE69129479T2 (de) | Verteiltes Rechnersystem | |
DE69606184T2 (de) | Klient-server-brücke | |
DE69228819T2 (de) | Konfigurations- und Betriebsverfahren eines Telekommunikationsgeräts | |
DE69425699T2 (de) | Integrierung von Systemverwaltungsdiensten mit einem unterliegenden Systemobjektmodell | |
DE69523142T2 (de) | Verteiltes datenbanksystem | |
DE69533786T2 (de) | Vorrichtung zum Erzeugen von objektorientierten Schnittstellen für relationale Datenbanken und von dieser Vorrichtung durchgeführtes Verfahren | |
DE69804673T2 (de) | Verfahren und system zum erstellen von indizien, die klassen einer objekt-orientierten anwendung entsprechen, in einer relationalen datenbank | |
DE69830285T2 (de) | Auf Beans basiertes Verwaltungssystem | |
DE69424597T2 (de) | Erweiterbares Dateiensystem | |
DE69510226T2 (de) | Verfahren und vorrichtung zur aktualisierung oder änderung eines netzwerkverzeichnisses | |
DE69229453T2 (de) | Verfahren und Anordnung zum Zugriff auf eine relationelle Datenbank, ohne eine objektorientierte Umgebung verlassen zu müssen | |
DE69029441T2 (de) | System für den Aufruf von Prozeduren von einem Fernnetzwerkknotenpunkt | |
DE69323196T2 (de) | Rechnersystem und Verfahren zur Ausführung von mehreren Aufgaben |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |