Anwendungen für Datenzugriff entwickeln
Mit Hilfe von Datenzugriffsanwendungen können Sie Daten aus externen Quellen für die Verwendung in Ihrer Anwendungsserverumgebung bearbeiten.
Informationen zu diesem Vorgang
- mit Standard-APIs oder erweiterten APIs
- mit CMP-Beans (Container Managed Persistence)
- mit BMP-Beans (Bean Managed Persistence), Session-Beans oder Webkomponenten.
- mit Service Data Objects (SDO)
Vorgehensweise
- Legen Sie fest, wie der Datenzugriff zu implementieren ist.
Das EJB-Programmiermodell (Enterprise JavaBeans) unterscheidet mehrere Arten serverseitiger Komponenten: Entity-Beans, Session-Beans, MDBs und Servlets. Von diesen Arten werden für das Modellieren von Geschäftskomponenten einer Anwendung in der Regel Entity-Beans verwendet. Entity-Beans zeichnen sich durch ihren Status und ihr Verhalten aus.
Der Status von Entity-Beans ist persistent und wird in einer Datenbank gespeichert. Wenn eine Entity-Bean geändert wird, wird der Status mit dem Datenbanksatz synchronisiert, der diese Bean repräsentiert. Das EJB-Modell stellt zwei Arten von Entity-Beans bereit, die sich hinsichtlich des Persistenzmechanismus unterscheiden: CMP-Beans (Container-Managed Persistence) und BMP-Beans (Bean-Managed Persistence).
- Bei BMP-Beans erstellt der Entwickler manuell den Code zur Verwaltung des persistenten Status der Bean.
- Bei CMP-Beans wird der persistente Status der Bean
vom EJB-Container verwaltet. Die Verwaltung des
persistenten Status ist eine komplexe und schwierige Task. Verwendet ein Entwickler CMP-Beans, kann er sich voll
auf die Geschäftslogik konzentrieren, weil der Container für das Persistenzverhalten zuständig ist.
Typische Beispiele für CMP-Beans sind Customer, Account usw. Da CMP-Beans Objekte sind, erfolgt der Zugriff auf ihre Daten (ihren Status) mit Feldzugriffsmechanismen. Eine Entity-Bean Customer wird wahrscheinlich Felder wie name und phoneNumber haben. Auf diese Datenelemente wird mit den Zugriffsmechanismen getName()/setName() und getPhoneNumber()/setPhoneNumber() zugegriffen. Als Entwickler müssen Sie sich nicht damit befassen, wie diese Daten in der Back-End-Datenbank gespeichert oder aus dieser abgerufen werden. Sie können davon ausgehen, dass die Integrität der Daten durch den Container gewährleistet wird.
Weitere Informationen zur Entwicklung von Entity-Beans finden Sie im Artikel "Enterprise-Beans entwickeln".Tipps:Wenn Sie eine maximale Effizienz bei Anwendungsanforderungen an relationale Datenbanken erzielen möchten, sollten Sie Structured Query Language in Java™ (SQLJ) für die Entwicklung von BMP- und CMP-Beans verwenden. Diese Option ist für Anwendungen verfügbar, die den DB2 Universal JDBC Driver für den Zugriff auf DB2-Datenbanken verwenden.
Von dieser Treiberanforderung sind SQLJ-gestützte BMP-Beans, die auf DB2 for z/OS zugreifen, als einzige ausgenommen. Dieses Schema setzt den traditionellen Treiber für DB2 for z/OS voraus (erforderlich für DB2 for z/OS Local JDBC Provider RRS).
Außerdem sollten Sie die Cursoroffenhaltung für eine potenzielle Leistungssteigerung in Erwägung ziehen. Ausführliche Informationen finden Sie im Artikel "Unterstützung für die Cursoroffenhaltung in JDBC-Anwendungen".
Durch Cursoroffenhaltung können Sie die Effizienz von Anwendungsanforderungen an relationale Datenbank erhöhen.
Eine Alternative zur Entwicklung von Entity-Beans ist die Verwendung des SDO-Framework (Service Data Objects). SDO ist ein einheitliches Gerüst für die Entwicklung von Datenanwendungen. Wenn Sie SDO verwenden, müssen Sie mit den technologiespezifischen APIs nicht vertraut sein, um auf Daten zugreifen und diese nutzen zu können. Sie müssen nur eine API, die SDO API, kennen, mit der Sie Daten aus mehreren Quellen, einschließlich relationalen Datenbanken, Entity-EJB-Komponenten, XML-Seiten, Web-Services, Java Connector Architecture, JavaServer Pages usw. bearbeiten können.
- Suchen Sie mit einer Ressourcenreferenz eine Datenquelle oder Verbindungsfactory.
Weitere Informationen finden Sie im Artikel "Mit Ressourcenreferenzen für relationalen Zugriff Datenquellen suchen". Führen Sie diesen Schritt nicht aus, wenn Sie mit CMP-Beans arbeiten.
Der EJB-Container übernimmt diesen Prozess für CMP-Beans.
Wenn Sie Anwendungen in WebSphere Application Server ausführen möchten, muss Ihr Code Ressourcenreferenzen auf logisch benannte Datenquellen oder Verbindungsfactorys verwenden. Die Zuordnung von Ressourcenreferenzen zu echten Ressourcen wird gewöhnlich während der Assemblierung vorgenommen. Der Administrator von Application Server konfiguriert diese Ressourcen.
- Für relationale Datenbanken konfigurieren Administratoren einen JDBC-Provider und die zugehörigen Datenquellen für den integrierten relationalen Ressourcenadapter von WebSphere (RRA, Relational Resource Adapter).
- Für den Zugriff auf nicht relationale Datenbanken installieren Administratoren einen JCA-Ressourcenadapter (Java EE Connector Architecture) in einem Anwendungsserver und konfigurieren die zugehörigen Verbindungsfactorys.
Eine generische Arbeitskontextimplementierung ist ein Mechanismus, mit dem ein Ressourcenadapter die Kontexte steuern kann, in denen Arbeitsinstanzen, die vom Ressourcenadapter zur Ausführung an den Arbeitsmanager des Produkts übergeben werden, ausgeführt werden. Durch die Übergabe einer Arbeitsinstanz, die die Schnittstelle "WorkContextProvider" implementiert, kann der Ressourcenadapter verschiedene Typen von Kontexten an WebSphere Application Server weitergeben. Falls die weitergegebenen Kontexttypen unterstützt werden, definiert der Anwendungsserver anschließend den bereitgestellten Kontext als Ausführungskontext der Arbeitsinstanz.
- Rufen Sie eine Verbindung zu einer Datenquelle oder Verbindungsfactory ab. Ausführliche Informationen finden Sie
im Abschnitt
"Verbindungen abrufen" des Artikels "Lebenszyklus von Verbindungen". Führen Sie diesen Schritt nicht aus, wenn Sie mit CMP-Beans arbeiten.
Der EJB-Container übernimmt diesen Prozess für CMP-Beans.
Die Architektur der Verbindungsverwaltung für relationalen und prozedurorientieren Zugriff auf Enterprise Information Systems (EIS) basiert auf der JCA-Spezifikation (Java EE Connector Architecture). Der Verbindungsmanager fasst die Verbindungen eines Anwendungsservers zu Pools zusammen und verwaltet diese. Er kann Verbindungen verwalten, die über Ressourcenadapter, die in der JCA-Spezifikation definiert sind, oder Datenquellen, die in der JDBC-Spezifikation für Erweiterungen definiert sind, abgerufen werden.
Verwenden Sie die Thread-ID, um der Verwendung einen Eigner zuzuordnen. Weitere Informationen finden Sie im Artikel "Unterstützung für Thread-IDs verwenden".
Unterartikel
Unterstützung von Threadidentitäten verwenden
Mit der Funktion für Threadidentitäten können Sie eine Thread-ID als Eigner einer Verbindung zuordnen, wenn Sie die Verbindung zum ersten Mal anfordern. Die Funktion "Threadidentität" wird nur auf JCA-Ressourcenadapter (Java Enterprise Edition Connector Architecture, Java EE) und RRA-JDBC-Provider (Relational Resource Adapter, Java Database Connectivity), die die Verwendung von Threadidentitäten als Verbindungseigner unterstützen, angewendet.Liberty-Anwendung, die MongoDB verwendet, auf das vollständige Profil portieren
Sie können eine Liberty-Anwendung, die MongoDB verwendet, portieren, damit diese unter dem vollständigen WebSphere Application Server-Profil ausgeführt wird.Bean Validation in RAR-Modulen verwenden
WebSphere Application Server validiert JavaBeans-Integritätsbedingungen für RAR-Dateien (Resource Adapter Archive) gemäß der Spezifikation Java Connector Architecture (JCA) Version 1.6.Unterstützung von JCA 1.6 für Annotationen in RAR-Modulen
Die Spezifikation Java Connector Architecture (JCA) Version 1.6 fügt die Unterstützung für Java-Annotationen in RAR-Modulen hinzu. Annotationen bieten eine Möglichkeit zur Angabe von Metadaten oder Konfigurationsdaten für ein RAR-Modul in den Klassendateien, aus denen sich das Modul zusammensetzt.Erweiterungen zu APIs für Datenzugriff
Wenn eine einzige API für Datenzugriff keine vollständige Lösung für Ihre Anwendungen darstellt, verwenden Sie Erweiterungen für WebSphere Application Server, um eine Interoperabilität von JCA- und JDBC-APIs zu erreichen.Datenbanktabellen aus der exportierten Tabellendatendefinitionssprache erneut erstellen
Wenn Sie mit den Implementierungstools von WebSphere Application Server eine EJB-JAR-Datei mit CMP-Entity-Beans implementieren, wird die Zieldatenbank ausgewählt und eine entsprechende Datei Tabelle.ddl erstellt. Diese Datei enthält die erforderliche SQL-Anweisung für das Generieren der Datenbanktabelle für Ihre CMP-Beans.Technologien für CMP-Beans
WebSphere Application Server stellt CMP-Services bereit, die über die durch die EJB-Spezifikation (Enterprise JavaBeans) festgelegten Standards hinausgehen.Synchronisation von Entity-Beans und Datenspeichern bearbeiten
Sie können angeben, dass ein bestimmter EJB-Typ seinen Status vor dem Aufruf von "findBy" nicht mit dem persistenten Speicher synchronisieren soll. Für den Aufruf können Sie Umgebungsvariablen oder eine Markierungsschnittstelle verwenden.ejbStore-Aufrufe in nicht geänderten EntityBean-Instanzen vermeiden
Sie können Ihre EntityBean-Instanzen so konfigurieren, dass ein Aufruf der Methode "ejbStore" umgangen wird, wenn die Instanzen während der aktuellen Transaktion nicht geändert wurden.Vorteile von Ressourcenreferenzen
WebSphere Application Server erfordert, dass Ihr Code Anwendungsserverressourcen (z. B. Datenquellen oder J2C-Verbindungsfactorys) über logische Namen referenziert anstatt direkt im JNDI-Namespace (Java Naming and Directory Interface) auf diese Ressourcen zuzugreifen. Diese logischen Namen werden Ressourcenreferenzen genannt.Datenzugriff mit JCA-Connector (Java EE Connector Architecture)
Wenn Sie mit einer JCA-kompatiblen Anwendung (Java EE Connector Architecture) in WebSphere Application Server auf Daten zugreifen möchten, müssen Sie Ressourcenadapter und Verbindungsfactorys konfigurieren und verwenden.Tipps für die Entwicklung von JDBC-Anwendungen
Wenn Sie bewährte Verfahren befolgen, um die Effizienz von JDBC-Abfragen zu maximieren, können Sie die Anwendungsleistung erhöhen.Unterstützung der Cursoroffenhaltung in JDBC-Anwendungen
Das Feature "Cursoroffenhaltung" kann den Systemaufwand für JDBC-Interaktionen mit Ihrer relationalen Datenbank verringern und auf diesem Wege zu einer Steigerung des Anwendungsdurchsatzes beitragen.Typen von Datenzugriffsbeans
Für eine vereinfachte Programmierung von Datenzugriffen stellt WebSphere Application Server eine spezielle Klassenbibliothek bereit, die viele Methoden der JDBC-API (Java Database Connectivity) für Sie implementiert. Die Bibliothek besteht im Wesentlichen aus einer Gruppe von Servicedatenobjekten (SDO).Zugriff auf Daten von Anwendungsclients
Wenn Sie von einem Java EE-Anwendungsclient direkt auf eine Datenbank zugreifen möchten, müssen Sie von einer im Clientimplementierungsdeskriptor konfigurierten Ressourcenreferenz ein Objekt javax.sql.DataSource anfordern. Diese Ressourcenreferenz wird als Teil des Implementierungsdeskriptors für die Clientanwendung konfiguriert und verweist auf ein vorkonfiguriertes Datenquellenobjekt.Datenzugriff mit der API Service DataObjects, Version 1.0 und Version 2.01
Das SDO-Framework (Service Data Objects) ist ein datengestütztes, in XML integriertes Zugriffsverfahren, das ohne aktive Verbindung arbeitet und eine quellenunabhängige Ergebnisliste liefert.Java Database Connectivity Data Mediator Service für Datenzugriff verwenden
Die folgenden Schritte veranschaulichen, wie Sie die Metadaten für einen JDBC-DMS (Java Database Connectivity, Data Mediator Service) erstellen und den DMS-DataGraph instanziieren.EJB Data Mediator Service für Datenzugriff verwenden
Die folgenden Schritte beschreiben anhand von Codebeispielen das Erstellen der Metadaten für den EJB Data Mediator Service (DMS).Angepasste DataStoreHelper-Klasse entwickeln
Zum Erstellen einer eigenen Helper-Klasse für den Datenspeicher für Datenquellen, die vom Anwendungsserver nicht unterstützt werden, wenden Sie die WebSphere-Erweiterung, die Klasse "GenericDataStoreHelper", an. Mit Hilfe dieser Helper-Klasse kann Ihre JDBC-Konfiguration während der Transaktionen datenbankspezifische Funktionen ausführen.Liberty-Anwendung, die MongoDB verwendet, auf das vollständige Profil portieren
Sie können eine Liberty-Anwendung, die MongoDB verwendet, portieren, damit diese unter dem vollständigen WebSphere Application Server-Profil ausgeführt wird.Bean Validation in RAR-Modulen verwenden
WebSphere Application Server validiert JavaBeans-Integritätsbedingungen für RAR-Dateien (Resource Adapter Archive) gemäß der Spezifikation Java Connector Architecture (JCA) Version 1.6.Unterstützung von JCA 1.6 für Annotationen in RAR-Modulen
Die Spezifikation Java Connector Architecture (JCA) Version 1.6 fügt die Unterstützung für Java-Annotationen in RAR-Modulen hinzu. Annotationen bieten eine Möglichkeit zur Angabe von Metadaten oder Konfigurationsdaten für ein RAR-Modul in den Klassendateien, aus denen sich das Modul zusammensetzt.Erweiterungen zu APIs für Datenzugriff
Wenn eine einzige API für Datenzugriff keine vollständige Lösung für Ihre Anwendungen darstellt, verwenden Sie Erweiterungen für WebSphere Application Server, um eine Interoperabilität von JCA- und JDBC-APIs zu erreichen.Datenbanktabellen aus der exportierten Tabellendatendefinitionssprache erneut erstellen
Wenn Sie mit den Implementierungstools von WebSphere Application Server eine EJB-JAR-Datei mit CMP-Entity-Beans implementieren, wird die Zieldatenbank ausgewählt und eine entsprechende Datei Tabelle.ddl erstellt. Diese Datei enthält die erforderliche SQL-Anweisung für das Generieren der Datenbanktabelle für Ihre CMP-Beans.Technologien für CMP-Beans
WebSphere Application Server stellt CMP-Services bereit, die über die durch die EJB-Spezifikation (Enterprise JavaBeans) festgelegten Standards hinausgehen.Synchronisation von Entity-Beans und Datenspeichern bearbeiten
Sie können angeben, dass ein bestimmter EJB-Typ seinen Status vor dem Aufruf von "findBy" nicht mit dem persistenten Speicher synchronisieren soll. Für den Aufruf können Sie Umgebungsvariablen oder eine Markierungsschnittstelle verwenden.ejbStore-Aufrufe in nicht geänderten EntityBean-Instanzen vermeiden
Sie können Ihre EntityBean-Instanzen so konfigurieren, dass ein Aufruf der Methode "ejbStore" umgangen wird, wenn die Instanzen während der aktuellen Transaktion nicht geändert wurden.Vorteile von Ressourcenreferenzen
WebSphere Application Server erfordert, dass Ihr Code Anwendungsserverressourcen (z. B. Datenquellen oder J2C-Verbindungsfactorys) über logische Namen referenziert anstatt direkt im JNDI-Namespace (Java Naming and Directory Interface) auf diese Ressourcen zuzugreifen. Diese logischen Namen werden Ressourcenreferenzen genannt.Datenzugriff mit JCA-Connector (Java EE Connector Architecture)
Wenn Sie mit einer JCA-kompatiblen Anwendung (Java EE Connector Architecture) in WebSphere Application Server auf Daten zugreifen möchten, müssen Sie Ressourcenadapter und Verbindungsfactorys konfigurieren und verwenden.Tipps für die Entwicklung von JDBC-Anwendungen
Wenn Sie bewährte Verfahren befolgen, um die Effizienz von JDBC-Abfragen zu maximieren, können Sie die Anwendungsleistung erhöhen.Unterstützung der Cursoroffenhaltung in JDBC-Anwendungen
Das Feature "Cursoroffenhaltung" kann den Systemaufwand für JDBC-Interaktionen mit Ihrer relationalen Datenbank verringern und auf diesem Wege zu einer Steigerung des Anwendungsdurchsatzes beitragen.Typen von Datenzugriffsbeans
Für eine vereinfachte Programmierung von Datenzugriffen stellt WebSphere Application Server eine spezielle Klassenbibliothek bereit, die viele Methoden der JDBC-API (Java Database Connectivity) für Sie implementiert. Die Bibliothek besteht im Wesentlichen aus einer Gruppe von Servicedatenobjekten (SDO).Zugriff auf Daten von Anwendungsclients
Wenn Sie von einem Java EE-Anwendungsclient direkt auf eine Datenbank zugreifen möchten, müssen Sie von einer im Clientimplementierungsdeskriptor konfigurierten Ressourcenreferenz ein Objekt javax.sql.DataSource anfordern. Diese Ressourcenreferenz wird als Teil des Implementierungsdeskriptors für die Clientanwendung konfiguriert und verweist auf ein vorkonfiguriertes Datenquellenobjekt.Datenzugriff mit der API Service DataObjects, Version 1.0 und Version 2.01
Das SDO-Framework (Service Data Objects) ist ein datengestütztes, in XML integriertes Zugriffsverfahren, das ohne aktive Verbindung arbeitet und eine quellenunabhängige Ergebnisliste liefert.Java Database Connectivity Data Mediator Service für Datenzugriff verwenden
Die folgenden Schritte veranschaulichen, wie Sie die Metadaten für einen JDBC-DMS (Java Database Connectivity, Data Mediator Service) erstellen und den DMS-DataGraph instanziieren.EJB Data Mediator Service für Datenzugriff verwenden
Die folgenden Schritte beschreiben anhand von Codebeispielen das Erstellen der Metadaten für den EJB Data Mediator Service (DMS).Angepasste DataStoreHelper-Klasse entwickeln
Zum Erstellen einer eigenen Helper-Klasse für den Datenspeicher für Datenquellen, die vom Anwendungsserver nicht unterstützt werden, wenden Sie die WebSphere-Erweiterung, die Klasse "GenericDataStoreHelper", an. Mit Hilfe dieser Helper-Klasse kann Ihre JDBC-Konfiguration während der Transaktionen datenbankspezifische Funktionen ausführen.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_impdatacc
Dateiname:tdat_impdatacc.html