Freigeben über


Dienstleistung für DRDA (Betrieb)

In den folgenden Abschnitten finden Sie Hilfe für den Betrieb des Microsoft-Diensts für DRDA (DRDA-Dienst).

Verwalten des DRDA-Diensts

Starten des DRDA-Diensts

Sie können den DRDA-Dienst starten, um als Dienst oder Konsolenanwendung ausgeführt zu werden.

Windows-Dienst

Mithilfe eines Befehlsfensters können Sie den DRDA-Dienst starten, um als Dienst ausgeführt zu werden, unter den in der Dienstkonfiguration definierten Anmeldeinformationen. Öffnen Sie eine Eingabeaufforderung, geben Sie net start msdrdaservice ein, und drücken Sie die EINGABETASTE.

C:\Windows\system32>net start msdrdaservice
The Microsoft Service for DRDA service is starting.
The Microsoft Service for DRDA service was started successfully.

Konsolenanwendung

Mithilfe eines Befehlsfensters können Sie den DRDA-Dienst als Konsolenanwendung unter den Anmeldeinformationen des Befehlsfensters laufen lassen.

  1. Geben Sie an einer Eingabeaufforderung "net stop msdrdaservice" ein, und drücken Sie die Eingabetaste.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC>net stop msdrdaservice
The Microsoft Service for DRDA service is stopping.
The Microsoft Service for DRDA service was stopped successfully.
  1. Geben Sie in einer Befehlszeile msdrdaservice.exe -c ein, und drücken Sie die EINGABETASTE.
Information:0:3:[Jan 24 2024 17:03:15.743] disableXaTransaction has been set to False by parsing string: False
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set TransactionExpiryDuration.
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set ResyncRetryDurationInMinutes.
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set XaIsolationLevel attribute to: SZ
Information:0:3:[Jan 24 2024 17:03:15.743] ResynchronizationManager reaching the end of transaction log file.
Information:0:5:[Jan 24 2024 17:03:15.962] Enter SessionManager::Initialize
Information:0:5:[Jan 24 2024 17:03:16.118] Exit SessionManager::Initialize
Information:0:5:[Jan 24 2024 17:03:16.118] Enter TcpConnectionManager::StartListener
Information:0:3:[Jan 24 2024 17:03:16.118] Microsoft Service for DRDA (build: 11.0.2205.0)
Information:0:3:[Jan 24 2024 17:03:16.118] TCP communication manager listening on port 446
Information:0:5:[Jan 24 2024 17:03:16.150] Exit TcpConnectionManager::StartListener
Information:0:5:[Jan 24 2024 17:03:16.150] Exit TcpConnectionManager::Initialize
Information:0:4:[Jan 24 2024 17:03:16.150] Set ServerBootstrap state to: Started

Hinweis

Der DRDA-Dienstablaufverfolgungslistener gibt Informationen in das Konsolenfenster aus. Sie müssen den Kommentar des Eintrags "DrdaAsConsoleListener" aufheben und einen TraceLevel (d. h. 5) in der MsDrdaServiceConfig.exe.config-Datei festlegen.

Beenden des DRDA-Diensts

Sie können den DRDA-Dienst beenden, wenn er als Dienst oder Konsolenanwendung ausgeführt wird.

Windows-Dienst

Mithilfe eines Befehlsfensters können Sie den DRDA-Dienst beenden, wenn er als Dienst ausgeführt wird.

  1. Geben Sie in der Eingabeaufforderung "net stop msdrdaservice" ein und drücken Sie die Eingabetaste.
C:\Windows\system32>net stop msdrdaservice
The Microsoft Service for DRDA service is stopping.
The Microsoft Service for DRDA service was stopped successfully.

Konsolenanwendung

Mithilfe eines Befehlsfensters können Sie den DRDA-Dienst beenden, wenn er als Konsolenanwendung ausgeführt wird.

  • Geben Sie STRG+C an der Eingabeaufforderung ein.
C:\Windows\system32>

Hinweis

Der DRDA-Dienst wird nicht mehr als Konsolenanwendung ausgeführt, und die Eingabeaufforderung wird angezeigt.

Verbinden von DRDA-Clients mit SQL Server-Datenbanken

Der DRDA-Dienst verarbeitet DRDA-Clientanforderungen in Verbindungen mit lokalen und Remote-SQL Server-Datenbanken. In diesem Thema wird der Betrieb der MsDrdaService-Datenbankverbindungen erläutert.

Clientverbindungen

Beim Starten des Diensts schreibt der DRDA-Dienst einen Informationseintrag in die internen DRDA-Dienstablaufverfolgungslistener und benachrichtigt den IT-Experten über den Port, auf dem der TCP Communication Manager auf in-gebundene DRDA-Anwendungsanforderungsclientverbindungen lauscht.

Information:0:3:[Jan 24 2024 17:03:16.118] TCP communication manager listening on port 446

Remote-DRDA-Anwendungsanforderungsclients stellen über eine TCP/IP-Netzwerkverbindung eine Verbindung mit dem lokalen DRDA-Dienst her. Der DRDA-Client sendet die DRDA-Protokollflüsse EXCSAT (Exchange Server Attributes), ACCSEC (Access Security) und ACCRDB (Access Relational Database) sowie die entsprechenden Datenformate, woraufhin der DRDA-Dienst diese mit DRDA-Protokollantworten beantwortet.

Authentifizierung

Um eine integrierte Authentifizierung bereitzustellen, kann der DRDA-Dienst die überprüfung und Zuordnung von Anmeldeinformationen mithilfe von Microsoft Enterprise Single Sign-On (ESSO) mit der out-gebundenen SQL Server-Authentifizierung mithilfe der Windows SSPI (Security Support Provider Interface) kombinieren. Beispielsweise kann der DRDA-Dienst mit ESSO arbeiten, um einen IBM RACF (Resource Access Control Facility) Benutzernamen und Kennwort einer Microsoft Windows Active Directory-Domäne\Benutzername zuzuordnen, mit der eine Verbindung mit integrierter Sicherheit zu einer Remote-SQL Server-Datenbank hergestellt werden kann.

SQL Server-Verbindungen

Der DRDA-Dienst kommuniziert mithilfe des ADO.NET Framework-Anbieters für SQL Server mit vorgelagerten lokalen oder Remote-SQL Server-Datenbanken. Der zugrunde liegende SQL-Client greift über eine Speicherverbindung oder über ein Netzwerk mithilfe von Named Pipes oder TCP/IP auf SQL Server zu. Der SQL-Client unterstützt optionale Verschlüsselungs- und Failoverfeatures zur Verbesserung der Sicherheit und Zuverlässigkeit. Der DRDA-Dienst unterstützt optionale Single Sign-On- und Pooling-Features zur Verbesserung der Sicherheit und Leistung. Sie können die MsDrdaService.exe.config Datei bearbeiten, um den DRDA-Dienst anzuweisen, wie der SQL-Client mit SQL Server-Verbindungen verwaltet wird.

Failoververbindungen

Der DRDA-Dienst kann in Gruppen von zwei (2) Servern , eine pro Computer, ausgeführt werden, um eine 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 Data Server-Instanzen zurück. Bei einem Ausfall eines primären DRDA-Dienstes kann der DRDA AR diese Informationen verwenden, um eine Verbindung mit dem alternativen Rechner eines Paars von DRDA-Dienstrechnern herzustellen. In Kombination mit SQL Server-Clustering oder -Spiegelung kann diese Technologie einen angemessenen Grad an fehlertoleranten Failoverschutz bieten.

Failoververbindungen

Die vorherigen Abbildungen zeigen, wie DRDA-Clients in Failoverszenarien eine erneute Verbindung mit dem DRDA-Dienstpartnerserver herstellen können.

Paketbindungsverarbeitung

Der DRDA-Dienst konvertiert statisches SQL für DB2-Pakete in gespeicherte SQL Server-Prozeduren, indem die DRDA-Befehle Begin Bind (BGNBND) und Bind SQL Statement (BNDSQLSTT) zu den SQL Server-Anweisungen DROP PROCEDURE und CREATE PROCEDURE verarbeitet werden. Ein DRDA BGNBND-Fluss enthält einen oder mehrere BNDSQLSTT-Flüsse, eine pro SQL-Anweisung, die im Paket gespeichert ist. Der DRDA-Dienst ordnet einen DRDA static SQL-Paketabschnitt (mit einer Anweisung) einer gespeicherten SQL Server-Prozedur zu. Der DRDA-Dienst ordnet die BGNBND-Paketbindungsoptionen in Kommentaren innerhalb der gespeicherten Prozeduren zu oder bewahrt sie und optionale erweiterte Eigenschaften gespeicherter Prozeduren. Der DRDA-Dienst verwendet einen internen SQL-Transformator, um SQL-Befehlssyntax, Parameter, Datentypen, Cursor und Resultsets zu konvertieren. Optional können Sie einen benutzerdefinierten Paketbindungslistener entwickeln, um die Pakete interaktiv mit dem DRDA-Dienst oder offline zu verarbeiten.

Binden des Pakets an XML-Datei

Der DRDA-Dienst kann einen einzelnen BGNBND-Fluss in eine statische SQL für DB2-Paket-XML-Datei verarbeiten, wobei die ursprünglichen Bindungsoptionen und Anweisungen beibehalten werden, wie durch die DRDA BNDSQLSTT-Flüsse definiert.

Binden des Pakets an gespeicherte Prozedur

Der DRDA-Dienst verarbeitet einen einzelnen BGNBND-Fluss in eine gespeicherte SQL Server-Prozedur, wobei die ursprünglichen Anweisungen, wie durch die DRDA BNDSQLSTT-Flüsse definiert, in die entsprechende SQL Server-Syntax transformiert werden.

Prozedur-Anweisung erstellen

Der interne Paketbindungs-Listener des DRDA-Dienstes und die meisten benutzerdefinierten Listener enthalten eine IF EXISTS-Klausel mit einer DROP PROCEDURE-Anweisung, abhängig vom Wert der PKGRPLOPT (Package Replacement Option) im BGNBND (Begin Bind) DRDA-Protokollfluss. Der Standardwert für PKGRPLOPT ist PKGRPLALW (Paketersetzung erlaubt). Optional kann der Wert PKGRPLNA (Paketersetzung nicht zulässig) angegeben werden.

Der interne DRDA-Paketbindungslistener und die meisten benutzerdefinierten Listener enthalten Kommentare direkt vor dem CREATE PROCEDURE-Anweisungstext, der die DRDA-Dienstlaufzeit darüber informiert, wie die gespeicherten Prozeduren ausgeführt werden.

Abfrageergebnismenge

Dieser Kommentar weist den DRDA-Dienst an, ein SqlClient DataReader-Objekt zu verwenden, um die Ergebnisse der SELECT-Anweisung zurückzugeben.

/****** RETURN RESULTSET ******/

Abfrageausgabeparameter

Dieser Kommentar weist den DRDA-Dienst an, AUSGABEparameter beim Aufrufen der Prozedur vorzubereiten, mit der die Daten aus der Abfrage zurückgegeben werden sollen.

/****** HAS OUTPUT PARAMS ******/

Cursor mit Haltefunktion

Dieser Kommentar weist den DRDA-Dienst an, Cursor innerhalb einer Transaktion offenzuhalten.

/****** CURSOR WITH HOLD ******/

Bindungsoptionen

Dieser Kommentar bewahrt die Laufzeit-DRDA BNDOPT (Bind-Optionen) zur zukünftigen Nutzung auf.

/****** BNDOPT: <Options><BNDCHKEXS>BNDEXSOPT</BNDCHKEXS><BNDCRTCTL>BNDNERALW</BNDCRTCTL><BNDEXPOPT>EXPNON</BNDEXPOPT><DFTRDBCOL>DBO</DFTRDBCOL><DGRIOPRL>1</DGRIOPRL><PKGATHOPT>PKGATHKP</PKGATHOPT><PKGATHRUL>OWNER</PKGATHRUL><PKGISOLVL>ISOLVLCS</PKGISOLVL><PKGOWNID>PLARSEN</PKGOWNID><PKGRPLOPT>PKGRPLALW</PKGRPLOPT><QRYBLKCTL>LMTBLKPRC</QRYBLKCTL><RDBRLSOPT>RDBRLSCMM</RDBRLSOPT><STTDATFMT>ISODATFMT</STTDATFMT><STTDECDEL>DECDELPRD</STTDECDEL><STTSTRDEL>STRDELAP</STTSTRDEL><STTTIMFMT>ISOTIMFMT</STTTIMFMT></Options> ******/

Bind- und Execute-Paketbefehle ignorieren

DRDA-Clientprogramme werden eine Reihe von Standardpaketen binden, die grundlegende DECLARE CURSOR-Anweisungen enthalten, mit denen definiert wird, wie Ergebnisse für SELECT- und CALL-Anweisungen gegen IBM DB2 für z/OS abgerufen und zurückgegeben werden. Der DRDA-Server muss diese Pakete nicht in gespeicherte SQL Server-Prozeduren konvertieren. Sie können die Bindungsverarbeitung und Speicherplatz sparen, indem Sie den DRDA-Server anweisen, diese Pakete zu ignorieren, indem Sie eine IgnoreStandardPackages.txt Datei lesen, die eine durch Trennzeichen getrennte Liste qualifizierter Paketnamen enthält.

COLIDPKGNAM
SYSIBM*
*MSCS001
*MSUR001
*MSRS001
*MSRR001
*MSNC001
NULLIDSYSSH*

Inhalt der IgnoreStandardPackages.txt Datei.

Die erste Zeile der Datei enthält ein Paar von Werten, die durch Tabs getrennt sind und Spaltenüberschriften darstellen. Die erste Spaltenüberschrift ist der COLID (Sammlungsbezeichner). Die zweite Spaltenüberschrift ist pkGNAM (Paketname). Die verbleibenden Zeilen der Datei enthalten einen Satz von tabstopptrennten Werten für den Sammlungsbezeichner und den Paketnamen.

Ein Sternchen anstelle eines Werts gibt einen beliebigen Wert an. Der Microsoft DRDA-Client bietet eine Reihe von Tools zum Definieren des Standardsatzes von Paketen in einer oder mehreren benutzerdefinierten Auflistungen. In diesem Fall weist der Wildcard den DRDA-Server an, Bindungs- und Ausführungsbefehle zu ignorieren, die auf die Microsoft DRDA-Clientstandardpakete verweisen, unabhängig davon, in welcher Sammlung die Pakete definiert sind.

Ein Sternchen am Ende einer Zeichenfolge gibt einen Teilwert an. Der IBM DB2 Connect DRDA Client bietet eine Reihe von Tools zum Definieren des Standardsatzes von Paketen in einer NULLID-Sammlung mit einem Startpaketnamenwert von SYSSH. In diesem Fall weist der Wildcard den DRDA-Server an, Bindungs- und Ausführungsbefehle zu ignorieren, die auf den vollständigen Satz von IBM DB2 Connect DRDA-Clientstandardpaketen verweisen.

Datentypen

Der DRDA-Dienst bietet Kompatibilität über heterogene Anbieterprodukte und -technologien hinweg, indem diese Plattformkonvertierungen bereitgestellt werden.

DB2- zu SQL Server-Datentypzuordnungen

Der DRDA-Dienst ordnet DB2-Datentypen den SQL Server-Datentypen basierend auf einem definierten Satz von Zuordnungen zu, die in einer Db2ToSql.xml-Datei im %DRDAROOT%\systemverzeichnis gespeichert sind. Der DRDA-Dienst konvertiert beispielsweise DB2 TIMESTAMP-Werte und -Formate, wie sie durch DRDA-Protokollflüsse definiert sind, sowie formatierte Daten in SQL Server DATETIME2(6)-Werte und -Formate, wie sie in gespeicherten Prozeduren und dynamischen SQL-Anweisungen über die Schnittstellen des Microsoft ADO.NET Framework Data Provider für SQL Server definiert sind.

Quell-DB2-Typ Ziel-SQL Server-Typ
ZEIT ZEIT
ZEITSTEMPEL DATETIME2
Datum Datum und Uhrzeit
VERKOHLEN VERKOHLEN
ZEICHEN () FÜR BIT-DATEN BINÄR
CHAR () FÜR GEMISCHTE DATEN NCHAR
CHAR () FÜR SBCS-DATEN VERKOHLEN
ZEICHEN VERKOHLEN
ZEICHEN () FÜR Bit-Daten BINÄR
FIXEDBYTE BINÄR
ZEICHEN () FÜR GEMISCHTE DATEN NCHAR
CHARACTER () FÜR SBCS-DATEN VERKOHLEN
VOLKSCHARAKTER NCHAR
VARCHAR VARCHAR
VARCHAR () FÜR BIT-DATEN VARBINARY
VARBYTE VARBINARY
VARCHAR () FÜR GEMISCHTE DATEN NVARCHAR
VARCHAR () FÜR SBCS-DATEN VARCHAR
ZEICHEN VARIIEREND VARCHAR
ZEICHEN VARIIEREN () FÜR BITDATEN VARBINARY
ZEICHEN VARIIEREN () FÜR GEMISCHTE DATEN NVARCHAR
ZEICHEN VARYING () FÜR SBCS DATEN VARCHAR
NATIONALES ZEICHEN UNTERSCHIEDLICH NVARCHAR
Langer VARCHAR für Bitdaten BILD
LONG VARCHAR TEXT
GRAFIK NCHAR
VARGRAPHIC NVARCHAR
GRAFIK VARIIEREND NVARCHAR
SMALLINT SMALLINT
INT INT
GANZE ZAHL INT
bigint bigint
DEZIMAL DEZIMAL
NUMERISCH DEZIMAL
Echt Echt
SCHWEBEN SCHWEBEN
DOPPELT SCHWEBEN
DOPPELTE GENAUIGKEIT SCHWEBEN
BLOB (Datentyp zur Speicherung großer binärer Objekte) BILD
BINÄR GROßES OBJEKT BILD
CLOB TEXT
CLOB () FÜR GEMISCHTE DATEN NTEXT
CLOB () FÜR SBCS-DATEN TEXT
CHAR-Large-Objekt TEXT
CHAR LARGE-OBJEKT () FÜR GEMISCHTE DATEN NTEXT
CHAR LARGE OBJECT () FÜR SBCS-DATEN TEXT
Zeichen-Großobjekt TEXT
Zeichen-Großobjekt () für gemischte Daten NTEXT
ZEICHEN-GROßOBJEKT () FÜR SBCS-DATEN TEXT

SQL Server-zu DB2-Datentypzuordnungen

Der DRDA-Dienst ordnet DB2-Datentypen den SQL Server-Datentypen basierend auf einem definierten Satz von Zuordnungen zu, die in einer MsSqlToDb2.xml-Datei im %DRDAROOT%\systemverzeichnis gespeichert sind. Beispielsweise konvertiert der DRDA-Dienst SQL Server MONEY-Werte und -Formate, wie sie vom Microsoft ADO.NET Framework-Datenanbieter für SQL Server-Schnittstellen definiert sind, in DB2 DEZIMALwerte und -formate, wie sie in DRDA-Protokollflüssen und formatierten Datendefinitionen festgelegt sind.

Ziel-SQL Server-Typ Quell-DB2-Typ
SMALLINT SMALLINT
INT GANZE ZAHL
Echt Echt
SCHWEBEN DOPPELT
SMALLMONEY DEZIMAL(10,4)
GELD DEZIMAL(19,4)
BIT SMALLINT
TINYINT SMALLINT
bigint bigint
EINDEUTIGER BEZEICHNER CHAR(38)
VARBINARY VARBYTE
ZEITSTEMPEL ZEITSTEMPEL
BINÄR FIXEDBYTE
XML LONG VARCHAR
BILD LONG VARCHAR
VARIANTE VARCHAR(32672) FÜR BINÄRDATEN
TEXT LONG VARCHAR
VERKOHLEN VERKOHLEN
VARCHAR VARCHAR
NCHAR VERKOHLEN
NVARCHAR VARCHAR
NTEXT LONG VARCHAR
DEZIMAL DEZIMAL
NUMERISCH DEZIMAL
Datum und Uhrzeit ZEITSTEMPEL
DATETIMEOFFSET ZEITSTEMPEL
Datum Datum
ZEIT ZEIT
SMALLDATETIME ZEITSTEMPEL
SYSNAME VARGRAPHIC(128)

Konfigurieren von Datentypzuordnungen

Der DRDA-Dienst konvertiert Basisdatentypen von DB2 in SQL Server und von SQL Server in DB2. Optional können Sie diese XML-Dateien bearbeiten, um die Basisdatentypzuordnungen zu ändern.

C:\Program Files\Microsoft Service for DRDA\system\ DB2ToMSSql.xml
C:\Program Files\Microsoft Service for DRDA\system\ MSSQLToDB2.xml

Gebietsschemacodierung

Der DRDA-Dienst unterstützt lokalspezifische Zeichenfolgencodierungen.

EBCDIC

Der DRDA-Dienst unterstützt die unten aufgeführten SBCS (Single Byte Character Set) EBCDIC CCSIDs, die in und aus UNICODE 1208 konvertiert werden.

Name CCSID NLS-Codeseite
EBCDIC - Arabisch 420 20420
EBCDIC - Kyrillisch (Russisch) 880 20880
EBCDIC - Kyrillisch (Serbisch, Bulgarisch) 1025 21025
EBCDIC - Dänemark/ Norwegen (Euro) 277 1142
EBCDIC - Dänemark/ Norwegen 277 20277
EBCDIC - Finnland/ Schweden (Euro) 278 1143
EBCDIC - Finnland/ Schweden 278 20278
EBCDIC - Frankreich (Euro) 297 1147
EBCDIC - Frankreich 297 20297
EBCDIC - Deutschland (Euro) 273 1141
EBCDIC - Deutschland 273 20273
EBCDIC - Griechisch (Modern) 875 875
EBCDIC - Griechisch 423 20423
EBCDIC - Hebräisch 424 20424
EBCDIC - Islandisch (Euro) 871 1149
EBCDIC - Islandisch 871 20871
EBCDIC - International (Euro) 500 1148
EBCDIC - International 500 500
EBCDIC - Italien (Euro) 280 1144
EBCDIC - Italien 280 20280
EBCDIC - Lateinamerika/Spanien (Euro) 284 1145
EBCDIC - Lateinamerika/Spanien 284 20284
EBCDIC - Multilingual/ ROECE (Lateinisch-2) 870 870
EBCDIC - Thailändisch 838 20838
EBCDIC - Türkisch (Lateinisch-3) 905 20905
EBCDIC - Türkisch (Lateinisch-5) 1026 1026
EBCDIC - USA/ Kanada (Euro) 37 1140
EBCDIC - USA/ Kanada 37 37
EBCDIC - Vereinigtes Königreich (Euro) 285 1146
EBCDIC - Vereinigtes Königreich 285 20285

ANSI (Amerikanisches Institut für Normung)

Der DRDA-Dienst unterstützt die unten aufgeführten SBCS (Single Byte Character Set) ANSI CCSIDs, die nach und von UNICODE 1208 konvertiert werden.

Name CCSID NLS-Codeseite
ANSI - Arabisch 1256 1256
ANSI - Baltisch 1257 1257
ANSI - Mitteleuropa 1250 1250
ANSI - Kyrillisch 1251 1251
ANSI - Griechisch 1253 1253
ANSI - Hebräisch 1255 1255
ANSI - Lateinisch I 1252 1252
ANSI - Türkisch 1254 1254
ANSI - Arabisch 1256 1256

Leistung

Dieses Thema enthält Informationen, die Ihnen helfen, die Leistung zu maximieren, wenn Sie den DRDA-Dienst verwenden.

Authentifizierung und Verschlüsselung

Authentifizierung

Der DRDA-Dienst verwendet Microsoft Enterprise Single Sign-On für die Authentifizierung von Benutzeranmeldeinformationen bei eingehender DRDA-Anwendungsanforderung (z. B. DB2 für z/OS RACF-Benutzerkennung und Kennwort) und bei ausgehender SQL-Client-zu-SQL-Server-Datenbank-Verbindung (z. B. integrierte Sicherheit mit Windows Active Directory-Konten). Alternativ zu ESSO können Sie msDrdaService so konfigurieren, dass die zugeordnete Authentifizierung verwendet wird. Das Attribut "mappedAuthenticationDomain" des MsDrdaService.exe.config gibt dem DRDA-Dienst an, zu welcher Microsoft Windows Active Directory-Domäne die eingehenden DRDA-Client-Anmeldeinformationen (Benutzername und Kennwort) zugeordnet werden sollen. Dies gilt, wenn eine Verbindung mit einem SQL Server hergestellt wird, der für die Windows-Authentifizierung mithilfe des integrierten Security Support Provider Interface (SSPI) konfiguriert ist. Dies gilt jedoch nicht bei der Verwendung von Microsoft Enterprise Single Sign-On. Der DRDA-Dienst speichert das Sicherheitstoken, das von Microsoft Enterprise Single Sign-On und den zugeordneten Authentifizierungsdomänenfeatures für die konfigurierte Dauer abgerufen wird, und nutzt dieses zur Herstellung einer Verbindung mit SQL Server, der für die Windows-Authentifizierung mit integriertem SSPI (Security Support Provider Interface) konfiguriert ist. Das SecurityTokenTimeout-Attribut weist den DRDA-Server an, ein Sicherheitstoken für eine bestimmte Dauer beizubehalten, danach soll ein neuer Windows-Clientbezeichner (Windows Client Identifier, CID) abgerufen werden. Dieses optionale Attribut akzeptiert einen Dauerwert. Der Standardwert ist PT8H (Zeitraum beträgt 8 Stunden). Um die Leistung zu verbessern, können Sie den ESSO Security Token Timeout-Wert für eine längere Dauer anpassen.

Verschlüsselung

Der DRDA-Dienst unterstützt den Data Provider bei der Authentifizierung und Datenverschlüsselung unter Verwendung von Datenschutz-Standard (DES)-Technologien, SSL (Sicherheits-Socket-Schicht) V3.0 und TLS (Transportschichtsicherheit) V1.0. Außerdem unterstützt der DRDA-Dienst die Datenverschlüsselung nur mithilfe der AES-Verschlüsselung (Advanced Encryption Standard). Diese Verschlüsselungsmechanismen können sich auf die Leistung auswirken.

Verbindung

SQL Server-Verbindung

Der Dienst für DRDA verbindet sich mit einer SQL Server-Datenbank unter Verwendung des ADO.NET Framework-Datenanbieters für SQL Server und des zugrunde liegenden SQL-Netzwerkclients. Wenn Sie eine Verbindung mit einer lokalen SQL Server-Instanz herstellen, geben Sie die Network Library=dbmslpcn an, um den SQL-Client anzuweisen, eine Verbindung mit SQL Server über gemeinsam genutzten Arbeitsspeicher anstelle einer TCP/IP-Netzwerkverbindung herzustellen. Um die Startzeit der Verbindung zu verringern, verwenden Sie sql Server-Verbindungspooling, indem Sie "Pooling=true" in der Verbindungszeichenfolge festlegen, um den SQL-Client anzuweisen, dem Pool neu erstellte Verbindungen hinzuzufügen, wenn er vom DRDA-Dienst geschlossen wird. Um die Auswirkungen auf den lokalen Server anzupassen, legen Sie die Maximale Poolgröße in der Verbindungszeichenfolge fest, um die maximale Anzahl von Verbindungen zu definieren, die der SQL-Client im Verbindungspool beibehalten soll. Der Standardwert ist 100. Um die Startzeit der Verbindung weiter zu verkürzen, verwenden Sie den internen Verbindungspool von MsDrdaService. Dabei werden eingehende DRDA AR-Clientverbindungen und Authentifizierungsdaten auf ausgehende SQL Server-Datenbankverbindungen und -Anmeldeinformationen abgebildet. Legen Sie das Attribut connectionCacheSize fest, um die Anzahl der SQL-Client-zu-SQL-Server-Computerverbindungen zu definieren, die der DRDA-Dienst im SQL-Clientverbindungspool zwischenspeichert. Dieses optionale Attribut akzeptiert einen ganzzahligen Wert. Der Standardwert ist 1000.Das connectionCacheTimeout-Attribut weist den DRDA-Server an, eine poolierte Verbindung für eine Dauer beizubehalten, nach der eine neue SQL-Clientverbindung abgerufen werden soll. Dieses optionale Attribut akzeptiert einen Dauerwert. Der Standardwert ist PT8H (Zeitraum 8 Stunden).

Verbindungsfailover

Der DRDA-Dienst kann innerhalb einer Gruppe ausgeführt werden, um fehlertolerantes Failover bereitzustellen. Die Gruppe wird durch Angeben einer lokalen Dienstrolle (primär oder sekundär), verfügbarer Failoverpartnerserver und eines Pingintervalls für die Überwachung der Integrität von Servern innerhalb einer Gruppe definiert. Das pingInterval-Attribut weist den DRDA-Dienst an, wie häufig die Integrität von Partnerservercomputern überwacht werden soll, indem ein EXCSAT-Prozess (Exchange Server Attribut) ausgeführt und auf EXCSATRD (EXCSAT Antwortdaten) überprüft wird. Dieses optionale Attribut akzeptiert einen ganzzahligen Wert. Der Standardwert beträgt 10.000 Millisekunden (zehn Sekunden).

Plattformkompatibilität

Zwischenspeicher für Paketprozeduren

Der DRDA-Dienst verarbeitet die DRDA-Befehle EXCSQLSTT (Execute SQL Statement) und OPNQRY (Open Query), indem eine SQL Server CALL-Anweisung für eine entsprechende gespeicherte SQL Server-Prozedur ausgeführt wird. Vor der Ausführung der CALL-Anweisung ruft der DRDA-Dienst Metadaten für die gespeicherte Prozedur des SQL Servers ab, mit denen der Anweisungstyp (SELECT, INSERT, UPDATE, DELETE), Typ des Cursors (WITH HOLD), Parameterdatentypen (z. B. CHAR BIT) und andere Attribute (z. B. vorhandene Ergebnisse) überprüft werden sollen. Nach dem Abrufen der Metadaten speichert der DRDA-Dienst diese Informationen, einschließlich des zugeordneten Prozedurnamens, für ein konfiguriertes Intervall in einem Paketprozedurcache, um die Leistung beim nächsten Ausführen dieses Paketabschnitts zu verbessern. Das packageProcedureCacheFlush-Attribut weist den DRDA-Server an, den Paketprozedurcache nach einem bestimmten Zeitintervall zu leeren. Dieses optionale Attribut akzeptiert einen Dauerwert. Der Standardwert ist P1D (Zeitraum ist 1 Tag). Das packageProcedureLastInvoke-Attribut weist den DRDA-Server an, die Namen von Objekten im Paketprozedurcache in eine Textdatei zu schreiben, %DRDAROOT%\LastInvokePackageProcedures.txtnach einem angegebenen Zeitintervall. Dieses optionale Attribut akzeptiert einen Dauerwert. Der Standardwert ist P7D (Zeitraum beträgt 7 Tage). Beim Starten des Diensts lädt der DRDA-Dienst diese Textdatei in das Vorababrufschema für Prozeduren, die in der Datei aufgeführt sind. Um die Leistung des Dienststarts zu verbessern, können Sie diese Datei bearbeiten und nicht benötigte Namen gespeicherter Prozeduren entfernen. Um das Lesen und Schreiben der LastInvokePackageProcedures.txt Datei zu deaktivieren, legen Sie den Zeitbereich auf PT0S (Zeitraum null Sekunden) fest.

SQL-Syntax

Der DRDA-Dienst verfügt über einen begrenzten Transformator für die DB2 ANSI- in SQL Server T-SQL-Befehlssyntax, den er zum Binden von Paketen und zum Ausführen statischer und dynamischer SQL-Anweisungen verwendet. Optional bietet der DRDA-Dienst zusätzliche kompatible DB2-Funktionen in Form von SQL Server CLR-basierten Funktionen an. Um die Leistung von SQL-Syntaxtransformationen zu verbessern, aktivieren Sie die DRDA-Dienst-CLR-basierten Funktionen. Der DRDA-Dienst wandelt statische SQL-Anweisungen für DB2-Pakete in gespeicherte Prozeduren von SQL Server um, wenn die Befehle DRDA "begin bind" und "bind" für SQL-Anweisungen verarbeitet werden, einschließlich eingebetteter SQL-DECLARE-CURSOR-Anweisungen. Um die Leistung zu verbessern, gibt der DRDA-Dienst nach Möglichkeit mehrere Zeilen pro Abruf zurück, es sei denn, das Paket oder der Cursor ist für den Abruf einzelner Zeilen definiert, um gleichzeitige Aktualisierungen zu unterstützen. Beim Definieren von SELECT-Anweisungen für eine optimale Leseleistung sollte der Entwickler eine FOR FETCH ONLY- oder FOR READ ONLY-Klausel enthalten.

Isolationsstufe

Der DRDA-Dienst ordnet die IBM DB2-Isolationsebene in der DRDA EXCSQLSTT (Execute SQL Statement) der SQL Server-Transaktionsebene auf dem ADO.NET Provider für SQL Server-Transaktionsobjekt zu. Um die Leistung zu verbessern und die Kontention bei Datenbankobjekten zu verringern, sollte der Entwickler die DB2-Isolationsstufe Cursor Stability (CS) verwenden, die der SQL Server-Isolationsstufe "Read Committed" zugeordnet ist.

Datumszeitformate und Konvertierungen

Der DRDA-Dienst formatiert Zeichenketten-Literal von Datums- und Uhrzeitwerten aus der Quelle in das Zielformat bei der Verarbeitung dynamischer und statischer SQL-Anweisungen für bestimmte Datums-, Uhrzeit- und Charakterdatentypen. Das conversionFormats-Element enthält DateMasks, timeMasks und dateTimeMasks zum Konvertieren in und aus DB2- und SQL Server-Datumstime-Formaten und weist den DRDA-Dienst an, wann diese Transformationen ausgeführt werden. Die Analyse, Codierung und Dekodierung von Zeichenketten in und von Datum-Zeit-formatierten Werten verbraucht zusätzliche DRDA-Dienstressourcen.

Codeseitenkonvertierungen

Der DRDA-Dienst ordnet Codeseiten zu und unterstützt benutzerdefinierte Codeseitenkonvertierungen mithilfe einer zugrunde liegenden HIS Encoder-Komponente und der Systemkomponenten des Windows National Language Support (NLS). Optional kann der DRDA-Dienst einzelne Codepunkte konvertieren, um benutzerdefinierte Codeseiten zu unterstützen. Der DRDA-Server verbraucht zusätzliche Ressourcen, wenn benutzerdefinierte Codeseitenkonvertierung unterstützt wird.

Kollationszuordnungen

SQL Server kann Abfrageergebnisse in einer anderen Reihenfolge sortieren als das, was vom DRDA-Clientprogramm erwartet wird. Beispielsweise kann ein IT-Experte eine SQL Server-Datenbank so konfigurieren, dass sie eine ANSI-Sortierung verwendet, und eine DB2 für z/OS-Datenbank so, dass sie eine EBCDIC-Sortierung verwendet. Der DRDA-Dienst kann eine SELECT-Anweisung von der DB2 ORDER BY COLLATION_KEY-Syntax in die SQL Server T-SQL ORDER BY COLLATE-Syntax umwandeln, indem er von einem DB2-Sortierungsnamen zu einem SQL Server-Sortierungsnamen zuordnet, um kompatiblere Abfrageergebnisse bereitzustellen. Der DRDA-Dienst kann eine COLLATE-Klausel zu einer ORDER BY-Klausel hinzufügen, basierend auf einem Standard-Sortierungsnamen für ORDER BY. Die DRDA-Dienstanalyse und das Ersetzen oder Hinzufügen von SQL-Syntax verbraucht zusätzliche Ressourcen.

Nachverfolgung

Der DRDA-Dienst unterstützt eine Reihe von freigegebenen Listenern, um Informationen in Textdateien, an die Konsole, in das Ereignisprotokoll und zu benutzerdefinierten Komponenten zu protokollieren. Das System.diagnostics-Element des Abschnitts "hostIntegration.drdaAs.drdaService" der MsDrdaService.exe.config-Datei definiert und steuert die verschiedenen Abhörer. Das Attribut traceLevel weist den DRDA-Dienst an, definierte Sammlungen von Informationen aufzuzeichnen, wobei die Ebene der Ablaufverfolgung von einem Minimal- bis zu einem Maximalwert variiert. Dieses optionale Attribut akzeptiert einen ganzzahligen Wert. Der Standardwert ist 0, wodurch die Ablaufverfolgung deaktiviert wird. Der DRDA-Dienst kann die Ablaufverfolgungsdaten automatisch an die Ablaufverfolgungslistener auszuleeren, wodurch sichergestellt wird, dass die Ablaufverfolgungsdaten erfasst werden, aber den Festplatten-I/O erhöhen und die Gesamtleistung des Systems verringern. Um die Leistung zu verbessern, setzen Sie "autoFlush=false", um die automatische Protokollspülung zu deaktivieren.

Leistungsmonitor

Um die Leistung zu messen, bietet der DRDA-Dienst Leistungsindikatoren. Die LEISTUNGSindikatoren des DRDA-Diensts erfassen Informationen zu offenen Verbindungen, offenen Anweisungen, Paketen und empfangenen Bytes, durchschnittliche Verarbeitungszeit, Befehlsausführungen, Datenabrufe und Transaktions-Commits/Rollbacks.

Konfiguration

Um die Leistung zu messen, bietet der DRDA-Dienst Leistungsindikatoren für die Verwendung mit Windows Performance Monitor. Das attribut peformanceCountersOn weist den DRDA-Dienst an, Informationen in Leistungsindikatoren zu sammeln. Dieses optionale Attribut akzeptiert einen booleschen Wert. Der Standardwert ist "false". Weitere Informationen finden Sie im Abschnitt zur Leistung. Weitere Informationen zum Windows-Leistungsmonitor finden Sie auch unter Leistungsindikatoren (https://go.microsoft.com/fwlink/?LinkID=119211).

Zähler

Der DRDA-Dienst gibt Daten an diese Leistungsüberwachungsindikatoren aus.

  1. Aktive Sitzungen

  2. Aktive SQL-Verbindungen

  3. Aktive Transaktionen

  4. Empfangene Bytes

  5. Empfangene Byte/Sek.

  6. Gesendete Bytes

  7. Gesendete Byte/Sek.

  8. Transaktionen

  9. Transaktionen festschreiben

  10. Transaktionen Commits/Sek.

  11. Transaktionen Zurückbuchungen

  12. Transaktionen/Sekunde

DRDA-Dienstinstanzen

Der DRDA-Dienst bietet Leistungsüberwachungsindikatoren pro Dienst oder pro Verbindung "Instanz", wobei eine "Instanz" ein Prozess oder eine Sitzung sein kann.