Planen und Entwerfen der Architektur mit dem Microsoft-Dienst für DRDA

Die folgenden Abschnitte enthalten Hilfe für das Planen und Entwerfen der Architektur von Lösungen mit dem Microsoft-Dienst für DRDA (DRDA-Dienst).

Planung

Unternehmens-IT-Organisationen müssen neue Lösungen bereitstellen und gleichzeitig die Effizienz von Entwicklern steigern und Kosten senken. Der DRDA-Dienst bietet Technologien und Tools, mit denen IT-Experten und Unternehmensentwickler neue Lösungen basierend auf Microsoft SQL Server bereitstellen und gleichzeitig vorhandene Workloads basierend auf IBM DB2 verbinden können. Das folgende Diagramm zeigt die übergeordnete Architektur der Technologien und Komponenten einer DRDA-Dienstlösung, die IBM DB2-Clients mit Microsoft SQL Server-Datenbanken verbindet.

HIS DRDA Planung

Die vorherige Abbildung zeigt den Plan zum Verbinden von IBM CICS für z/OS-Clientprogramme über DB2 für z/OS und den Dienst für DRDA mit Microsoft SQL Server-Remotedatenbanken.

Der Microsoft Service for DRDA (Distributed Relational Database Architecture) ist ein Anwendungsserver (AS), mit dem DRDA-Anwendungsanforderungsclients (AR) wie IBM DB2 für z/OS und DB2 für IBM i statische SQL-Anweisungen ausführen können, die SQL Server gespeicherten Prozeduren zugeordnet sind. Der DRDA-Dienst bietet hostinitiierte Datenintegration, die für Unternehmen während einer phasenweisen Workloadmigration oder für den täglichen Betrieb zur Unterstützung von Remotebatch- oder Business Intelligence-Lösungen von entscheidender Bedeutung ist.

Der DRDA-Dienst bietet die folgenden Features.

  • Zugriff von DRDA-Clients auf SQL Server über eine TCP/IP-Netzwerkverbindung.

  • Sicherheitsauthentifizierung und Datenverschlüsselung.

  • Verteilte Zweiphasencommittransaktionen.

  • Statische SQL Anweisungen, die SQL Server-Aufrufen gespeicherter Prozeduren zugeordnet sind.

  • Eingeschränkte Befehle der dynamischen Datenbearbeitungssprache, die T-SQL-Befehlen zugeordnet sind.

  • Datentypzuordnung und -konvertierung, Zeichenfolgencodierung und datetime-Formatierung.

  • Fehlercode- und Textzuordnung zu DRDA-Antwortnachrichten und formatierten Fehlerobjekten.

  • Ein Ablaufverfolgungs-Hilfsprogramm zum Aufzeichnen von Datenflüssen und Befehlen, das Problembehandlung ermöglicht.

Architektur der verteilten relationalen Datenbank

IBM DB2-Clients und -Server kommunizieren mithilfe des DRDA-Protokolls (DRDA = Distributed Relational Database Architecture) und entsprechender Formate. Der DRDA-Dienst fungiert als DRDA-Anwendungsserver (AS), um DRDA Application Requester(AR)-Clients die Interaktion mit Microsoft SQL Server-Datenbanken zu ermöglichen. Der DRDA-Dienst unterstützt eine begrenzte Anzahl von DRDA-Codepunkten, die in den von The Open Group (http://www.opengroup.org) veröffentlichten Architekturverweisen definiert sind.

  • DRDA, Version 5, Volume 1: Distributed Relational Database Architecture (DRDA)

  • DRDA, Version 5, Volume 2: Formatted Data Object Content Architecture (FD:OCA)

  • DRDA, Version 5, Volume 3: Distributed Data Management (DDM) Architecture

    Sie können DRDA V5 Vol. 3: Distributed Datenverwaltung Architecture, Publikationsnummer C114, in der Open Group Bookstore (https://go.microsoft.com/fwlink/?LinkID=219127& clcid=0x409).

IBM DB2-Server und -Clients

Microsoft, IBM und Drittanbieter implementieren DRDA-Protokolle und -Formate in verschiedenen DRDA Application Requester(AR)-Clienttechnologien. Der DRDA-Dienst unterstützt eingehende Verbindungen von DRDA AR-Clients, die dem Standard DRDA Version 5 entsprechen, einschließlich DRDA ARs, die in diesen IBM- und Microsoft-Produkten enthalten sind.

  • IBM DB2 für z/OS 12 und 11

  • IBM DB2 für IBM i 7.4, 7.3 und 7.2

  • IBM DB2 für LUW 11.5, 11 und 10.5

    Microsoft Host Integration Server umfasst zwei DRDA-Anwendungsanforderungsclients, einen, der für die Verbindung mit IBM DB2-Remotedatenbankservern entwickelt wurde, und einer für die Verbindung mit IBM Informix-Remotedatenbankservern. Diese DRDA-ARs unterstützen eine Teilmenge der DRDA-Version 5.0. Der Microsoft-Client für DB2 unterstützt die folgenden Datenanbieter für DB2:

  • Microsoft ODBC-Treiber für DB2

  • Microsoft OLE DB-Anbieter für DB2

  • Microsoft ADO.NET Framework-Datenanbieter für DB2

  • Microsoft BizTalk Adapter für DB2

    Der Dienst für DRDA bietet grundlegende DRDA-Unterstützung für Microsoft DRDA-Clients und IBM DRDA-Clients.

Enterprise Single Sign-On

Der DRDA-Dienst verwendet Microsoft Enterprise Single Sign-On, um eingehende Host-Anmeldeinformationen (z. B. RACF-Benutzerautorisierungsbezeichner) ausgehenden Windows Active Directory(AD)-Anmeldeinformationen zuzuordnen. Dadurch kann der DRDA-Dienst mithilfe von integrierter Sicherheit eine Verbindung mit SQL Server herstellen.

Einmaliges Anmelden

Die vorherige Abbildung zeigt, wie der DRDA-Dienst mit aktiviertem Enterprise Single Sign-On eingehende DRDA-Anmeldeinformationen ausgehenden SQL Server-Anmeldeinformationen zuordnen kann.

Hostinitiiertes ESSO erfordert erhöhte Berechtigungen in Active Directory (eingeschränkte Kerberos-Delegierung und „Beliebiges Authentifizierungsprotokoll verwenden“). ESSO erfordert einen Kerberos-Dienstprinzipalnamen für den SQL Server Computer, mit dem der DRDA-Dienst eine Verbindung herstellt. .

Microsoft SQL Server

Unternehmensadministratoren und -entwickler setzen auf Microsoft SQL Server, um unternehmenskritische Datenplattformen für Branchenanwendungen zu erstellen. SQL Server hilft Unternehmen, durch Datenermittlung in der gesamten Organisation neue Erkenntnisse zu gewinnen und gleichzeitig Tools für konsistente Daten, umfassende Analysen und Data Warehousing bereitzustellen. Der DRDA-Dienst kann vorhandene IBM-Hostworkloads basierend auf Microsoft SQL Server mit neuen Lösungen verbinden, um heterogene Unternehmensanwendungen und Business Intelligence zu ermöglichen.

Der DRDA-Dienst nutzt den Microsoft SQL Server-Netzwerkclient und ADO.NET Framework-Datenanbieter für SQL Server, um Konnektivität und Datenzugriff auf SQL Server-Datenbanken zu realisieren. Weitere Informationen zu Microsoft SQL Server finden Sie unter http://www.microsoft.com/sql.

Aufbau

Der DRDA-Dienst ermöglicht Konnektivität über ein IBM DB2-Remoteclientprogramm und eine lokale Microsoft SQL Server-Datenbank, indem er Kompatibilitätsdienste basierend auf dem branchenüblichen DRDA (Distributed Relational Database Architecture) bereitstellt, der die Kommunikation zwischen DB2-Client und -Server in Form einer Reihe von Protokollcodepunkten und -formaten definiert. Der DRDA-Dienst wird innerhalb von DRDA als Anwendungsserver (AS) betrieben. Die IBM DB2-Clientprogramme (z. B. COBOL TOS und CICS für z/OS) werden lokal an DB2 für z/OS und Funktionen innerhalb von DRDA als Application Requester(AS)-Clients angefügt. Der DRDA-Dienst ist ein Windows-Dienstprogramm, das eine Instanz von Microsoft-.NET Framework hostet. Er stellt mit dem Microsoft ADO.NET Framework-Datenanbieter für SQL Server und dem zugrunde liegenden Microsoft SQL Server-Netzwerkclient eine Verbindung mit einer lokalen oder Remoteinstanz von Microsoft SQL Server her.

DRDA-Dienstlösung

Die vorherige Abbildung zeigt eine DRDA-Dienstlösung, die IBM DB2 für z/OS mit Microsoft SQL Server verbindet.

Konnektivität

Architektur der verteilten relationalen Datenbank

Der DRDA-Dienst konvertiert DRDA-Codepunkte und -Datenformate in entsprechende Microsoft ADO.NET Verbindungen, -Transaktionen, -Befehle, -Datentypen und -Fehlerobjekte. Der DRDA-Dienst hat in erster Linie die Funktion, statisches SQL für DB2-Pakete und die Anweisungsausführung funktional gespeicherten Microsoft SQL Server-Prozedur- und -CALL-Anweisungen zuzuordnen. Der DRDA-Dienst verarbeitet die DRDA-Protokollflows gemäß der Definition in der Architektur basierend auf den verschiedenen DRDA-Managern.

Netzwerkdatentransporte und -transaktionen

Der DRDA-Dienst unterstützt eingehende authentifizierte DRDA-Clientverbindungen über ein TCP/IP-Netzwerk. SNA APPC over LU6.2 über HPR/IP (High Performance Routing over Internet Protocol) wird vom DRDA-Dienst nicht unterstützt. Zum Herstellen einer Verbindung mit SQL Server verwendet der DRDA-Dienst einen zugrunde liegenden Microsoft ADO.NET-Anbieter für SQL Server und einen SQL Netzwerkclient, der In-Memory-, Named Pipes- und TCP/IP-Netzwerkverbindungen unterstützt.

Standardmäßig lauscht der DRDA-Dienst am DRDA-Standardport 446 auf eingehende Verbindungen und akzeptiert alle DRDA-Clientverbindungsanforderungen. Optional kann der DRDA-Dienst an einer anderen vorkonfigurierten Portnummer lauschen. Zur Verbesserung der Sicherheit kann der DRDA-Dienst außerdem so konfiguriert werden, dass er eingehende Verbindungsanforderungen aus einer vordefinierten Liste von Remotenetzwerkadressen akzeptiert.

Um zuverlässige Updates im gesamten Netzwerk zu ermöglichen, unterstützt der DRDA-Dienst Zweiphasencommittransaktionen für DRDA DUW (Distributed Unit of Work). Die DRDA DUW-Transaktionen werden SQL Server-Transaktionen über den Microsoft ADO.NET Framework-Datenanbieter für SQL Server und den zugrunde liegenden SQL Netzwerkclient zugeordnet.

Pooling und Failover

Der DRDA-Dienst unterstützt das SQL-Clientverbindungspooling durch Konfigurieren der SQL-Clientpoolingoptionen in den SQL Server-Verbindungszeichenfolgenargumenten in der Konfiguration der DRDA-Dienst-App. Darüber hinaus bietet der DRDA-Dienst einen internen Verbindungspool, der eingehende DRDA AR-Clientverbindungen und -Authentifizierungsanmeldeinformationen ausgehenden SQL Server-Datenbankverbindungen und -Anmeldeinformationen zuordnet.

DRDA-Fehlertolerantes Failover

Der Primär- und der Partnerserver des DRDA-Diensts arbeiten zusammen, um fehlertolerantes Failover zu gewährleisten.

Der DRDA-Dienst kann in Gruppen von zwei (2) Servern (einer pro Computer) ausgeführt werden, um grundlegende Fehlertoleranz bereitzustellen. Wenn ein DRDA AR-Client eine Verbindung mit einer SQL Server Datenbank herstellt, gibt der DRDA-Dienst eine DRDA SRVLST (Serverliste) mit einer gewichteten Liste von Datenserverinstanzen zurück. Im Fall eines Failovers eines primären DRDA-Diensts kann der DRDA AR diese Informationen verwenden, um eine Verbindung mit dem alternativen Mitglied eines DRDA-Dienstcomputerpaars herzustellen. In Verbindung mit SQL Server-Clustering oder -Spiegelung kann diese Technologie einen angemessenen fehlertoleranten Failoverschutz bieten.

Authentifizierung und Verschlüsselung

Zum Schutz von Informationen unterstützt der DRDA-Dienst allgemeine DRDA-Authentifizierungs- und Datenverschlüsselungstechnologien. Der DRDA-Dienst kann beispielsweise grundlegende Authentifizierung (EBCDIC-codierter Nur-Text-Benutzername mit Kennwort) oder sichere Authentifizierung mit 256-Bit-AES (Advanced Encryption Standard) unterstützen. Darüber hinaus kann der DRDA-Dienst kombinierte Authentifizierung und Verschlüsselung mit SSL (Secure Sockets Layer) V3.0 oder TLS (Transport Layer Security) V1.0 unterstützen.

Zum Bereitstellen integrierter Authentifizierung kann der DRDA-Dienst die Überprüfung und Zuordnung von eingehenden Anmeldeinformationen mit Microsoft ESSO (Enterprise Single Sign-On) mit der ausgehenden SQL Server-Authentifizierung unter Verwendung von Windows SSPI (Security Support Provider Interface) kombinieren. Beispielsweise kann der DRDA-Dienst mit ESSO zusammenarbeiten, um einen IBM RACF-Benutzernamen (Resource Access Control Facility) und ein Kennwort einer Microsoft Windows Active Directory-Domäne und einem Benutzernamen zuzuordnen, mit denen eine Verbindung mit integrierter Sicherheit mit einer Remote-SQL Server-Datenbank hergestellt werden kann.

Kompatibilität

Statisches und dynamisches SQL

In erster Linie ermöglicht es der DRDA-Dienst DB2-Clientprogrammen, remote definiertes statisches SQL für DB2-Pakete durch Zuordnung der Paketanweisungen zu gespeicherten SQL Server-Prozeduren auszuführen. Wenn beispielsweise eine DB2-Administrator- oder -Programmiererbindung ein DB2-Paket in SQL Server kopiert, konvertiert der DRDA-Dienst die DRDA BNDSQLSTT-Datenflüsse (Bind SQL-Anweisung) in SQL Server T-SQL CREATE PROCEDURE-Anweisungen. Wenn das DB2-Programm die Remotepaketanweisung ausführt, konvertiert der DRDA-Dienst die DRDA OPNQRY (Open Query) oder EXCSQLSTT (Execute SQL-Anweisung) in eine CALL-Anweisung.

Zweitens unterstützt der DRDA-Dienst eingeschränkte dynamische SQL Vorgänge, damit DB2-Clientprogramme SQL Server T-SQL-Remotebefehle ausführen können. Beispielsweise kann ein DB2-Administrator QMF (Query Management Facility) für z/OS verwenden, um eine SQL Server-Remotetabelle abzufragen.

SQL-Syntax

Der DRDA-Dienst verfügt über einen eingeschränkten DB2-ANSI zum SQL Server T-SQL Befehlssyntaxtransformator, der zum Binden von Paketen verwendet wird und statische und dynamische SQL-Anweisungen ausführt. Optional bietet der DRDA-Dienst zusätzliche kompatible DB2-Funktionen in Form von CLR-basierten SQL Server-Funktionen.

Der DRDA-Dienst bietet eine ersetzbare Paketbindungskomponente für die Verarbeitung von DRDA BNDSQLSTT (Bind SQL-Anweisung) zu SQL Server T-SQL CREATE PROCEDURE-Anweisungen. Beispielsweise kann ein unabhängiger Softwarehersteller (Independent Software Vendor, ISV) oder Unternehmensentwickler eine benutzerdefinierte Paketbindungskomponente implementieren, um Syntax, Datentyp, Codierung oder andere erforderliche Konvertierungen zu unterstützen.

Katalog- und Schemanamen

Der DRDA-Dienst bietet eine grundlegende Zuordnung von übergeordneten Objektbezeichnern, einschließlich Katalog- und Schemanamen. Der DRDA-Dienst kann z. B. einen eingehenden DRDA RDBNAM (Name einer relationalen Datenbank) einem ausgehenden SQL Server-Datenbanknamen zuordnen. Darüber hinaus kann der DRDA-Dienst einen eingehenden DRDA COLLID (Sammlungsbezeichner) einem ausgehenden SQL Server-Schemanamen zuordnen.

Datentypkonvertierung

Um plattformübergreifende Interoperabilität zwischen SQL Server Datenbanken unter Windows-Betriebssystemen und DB2-Servern unter z/OS und IBM i zu unterstützen, bietet der DRDA-Dienst eine Reihe von Datentypzuordnungen und Konvertierungen, die in XML-Dateien (DB2ToMSSql.xml und MSSQLToDB2.xml) definiert sind. Beispielsweise kann der DRDA-Dienst eingehende DB2 DECIMAL-Daten zuordnen und in ausgehendes SQL Server-Money konvertieren.

Zeichenfolgencodierungen

Der DRDA-Dienst unterstützt die Konvertierung von DB2 EBCDIC-Zeichenfolgencodierungen in SQL Server ANSI- und UNICODE-Codierungen. Optional unterstützt der DRDA-Dienst geänderte ersetzbare Windows-Konvertierungsdateien von EBCDIC in UNICODE NLS (National Language Support). Darüber hinaus bietet der DRDA-Dienst In-Line-Zeichenersetzung basierend auf einer vordefinierten Zuordnung mithilfe von CCSID-Hexadezimalwertpaaren (CCSID = Coded Character Set Identifier).

datetime-Formatierung

Der DRDA-Dienst bietet DB2 DATE-/TIME-/TIMESTAMP-Inlinewerte für die Konvertierung in SQL Server-date/time-/datetime2-Format- und Zeichenfolgenliteralwerte. Der DRDA-Dienst kann z. B. einen eingehenden DB2-formatierten TIMESTAMP-Zeichenfolgenliteralwert im Format JJJJ-MM-TT-hh.mm.ss.tttttt in einen ausgehenden SQL Server-datetime2(6)-Wert im Format JJJJ-MM-TT hh:mm:ss.tttttt konvertieren.

Verwaltung

Ein Administrator kann den DRDA-Dienst konfigurieren, indem er die Datei „MsDrdaService.exe.config“ zusammen mit XML-Hilfsdateien (Datentypen und Fehlerzuordnung) vor dem Starten des DRDA-Diensts ändert. Optional bietet der DRDA-Dienst sofortiges Lesen der Datei „MsDrdaService.exe.config“, um dynamische Konfigurationsupdates zu aktivieren.

Konfiguration

Nach der Installation können IT-Experten die Konfiguration des DRDA-Diensts anpassen, indem sie die Datei „MsDrdaService.exe.config“ bearbeiten und andere XML-Dateien aktualisieren. Im Folgenden finden Sie eine Liste der DRDA-Dienstkomponenten, konfigurierbaren Elemente und Konfigurationsspeicher.

Komponente Elemente Konfigurationsspeicher
DRDA-Dienst Dienstanmeldeinformationen

Sicherheitsrichtlinienrechte

Verbindungs-Manager

Sicherheits-Manager

SQL-Zugriffs-Manager

Datenbank-Manager
Windows-Registrierung

MsDrdaService.exe.config

MSDRDAErrorMappings.xml
Datenkonvertierung Datentypzuordnungen

Date-, Time-, DateTime-Formate
DB2ToMSSql.xml MSSQLToDB2.xml

MsDrdaService.exe.config
Codepagekonvertierung Benutzerdefinierte Codepages

Codepunktzuordnungen
Windows-Registrierung

MsDrdaService.exe.config
Bindungslistener Standardlistener

Benutzerdefinierter Listener
MsDrdaService.exe.config
Ablaufverfolgungslistener Textlistener

Konsolenlistener

ETW-Listener

Benutzerdefinierter Listener
MsDrdaService.exe.config
Ereignisprotokoll Ereignisse Anwendungsprotokoll
Systemmonitor Counters Windows-Registrierung

MsDrdaService.exe.config

In der vorherigen Tabelle sind die konfigurierbaren Komponenten, Elemente und Konfigurationsspeicher des DRDA-Diensts aufgeführt.

Ablaufverfolgung

Der DRDA-Dienst unterstützt mehrere Ablaufverfolgungsoptionen: Konsolenlistener-Ablaufverfolgung, Textlistener-Ablaufverfolgung, Ereignisprotokolllistener, ETW-Listener (ETW = Event Tracing for Windows, Ereignisablaufverfolgung für Windows) und benutzerdefinierte Ablaufverfolgung. Bei Ausführung des DRDA-Diensts im Windows-Konsolenmodus verwendet der Administrator die Konsolenablaufverfolgung, um Ablaufverfolgungsdaten auf dem Bildschirm auszugeben. Bei Ausführung des DRDA-Diensts im Windows-Dienstmodus verwendet der Administrator die Textablaufverfolgung, um Ablaufverfolgungsdaten in eine lesbare Textdatei auszugeben. Der DRDA-Dienst stellt automatisch Ablaufverfolgungselemente des Ereignisprotokolllisteners im Windows-Ereignisprotokoll bereit. Der Administrator verwendet die ETW-Ablaufverfolgung für Datensammlung mit hoher Geschwindigkeit. Optional kann der Unternehmensentwickler einen benutzerdefinierten Ablaufverfolgungslistener implementieren, um alle oder ausgewählte Ablaufverfolgungsdaten an eine andere Komponente auszugeben.

Buchhaltung und Protokollierung

Der DRDA-Dienst unterstützt die standardmäßigen DRDA-Buchhaltungscodepunkte: Name der Clientarbeitsstation; Clientbenutzer-ID; Clientanwendungsname; und Clientbuchhaltung. Ein Unternehmensentwickler kann dynamische Werte in seinem Programm angeben, mit denen die DRDA-Clientbuchhaltungseigenschaften aufgefüllt werden. Der DRDA-Dienst liest die Werte zur Laufzeit, um die DRDA-Dienstablaufverfolgung zu füllen, wodurch die Korrelation von Problemen mit einem bestimmten Anwendungs- und Benutzerkontext ermöglicht wird. Optional kann der Unternehmensentwickler den Ablaufverfolgungslistener eines DRDA-Dienstkunden implementieren, um DRDA-AR-Clientanforderungen zu protokollieren. Beispielsweise kann der Ablaufverfolgungslistener eines Kunden ausgewählten Netzwerk- und Datenbankzugriff basierend auf einem Clientkontowert in einer SQL Server-Remoteprotokollierungsdatenbank protokollieren.

Fehlerzuordnung

Der DRDA-Dienst gibt SQL Server-Fehler in Form einer DRDA-Codepunkt-Antwortnachricht (Reply Message, RM) oder als DRDA SQLCARD (SQL Communications Area Reply Data) zurück. Bei häufigen Problemen verwendet der DRDA-Dienst standardmäßig eine integrierte Tabelle, um SQL-Fehlercodes und -Fehlerzeichenfolgen DRDA-Antwortnachrichten und -Fehlern zuzuordnen. Zudem verwendet der DRDA-Dienst eine externe „MsDrdaErrorMappings.xml“-Datei zum Zuordnen von SQL Server-Fehlercode und -Fehlertext zu SQLCODE, SQLSTATE, Ursachencode und Fehlermeldung.