Freigeben über


Dienst für DRDA (Operations)

In den folgenden Abschnitten finden Sie Hilfe zum Betrieb von Microsoft Service for DRDA (DRDA-Dienst).

Verwalten des DRDA-Diensts

Starten des DRDA-Diensts

Sie können den DRDA-Dienst starten, um als Dienst- oder Konsolenanwendung auszuführen.

Windows-Dienst

Mithilfe eines Befehlsfensters können Sie den DRDA-Dienst unter den in der Dienstkonfiguration definierten Anmeldeinformationen zur Ausführung als Dienst starten. Öffnen Sie eine Eingabeaufforderung, geben Sie net start msdrdaservice ein, und wählen Sie die EINGABETASTE aus.

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 unter den Anmeldeinformationen des Befehlsfensters als Konsolenanwendung ausführen.

  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 an einer Eingabeaufforderung 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 an das Konsolenfenster aus. Sie müssen die Auskommentierung des Eintrags DrdaAsConsoleListener aufheben und ein 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 an 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 an der Eingabeaufforderung STRG+C 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 zu Verbindungen mit lokalen und Remotedatenbanken SQL Server Datenbanken. In diesem Thema wird der Betrieb der MsDrdaService-Datenbankverbindungsvorgänge erläutert.

Clientverbindungen

Beim Start des Diensts schreibt der DRDA-Dienst einen Informationseintrag in die internen DRDA-Dienstablaufverfolgungslistener, und benachrichtigt den IT-Experten über den Port, an dem der TCP Communication Manager auf Clientverbindungen der gebundenen DRDA-Anwendungsanforderung 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 Protokollflows und Datenformate für DRDA EXCSAT (Exchange Server Attributes), ACCSEC (Access Security) und ACCRDB (Access Relational Database), auf die der DRDA-Dienst mit DRDA-Protokollantworten antwortet.

Authentifizierung

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.

SQL Server Connections

Der DRDA-Dienst kommuniziert mit Upstream lokalen oder Remotedatenbanken SQL Server mithilfe des ADO.NET Framework-Anbieters für SQL Server. Der zugrunde liegende SQL-Clientzugriff SQL Server über eine In-Memory-Verbindung oder über ein Netzwerk mithilfe von Named Pipes oder TCP/IP. Der SQL-Client unterstützt optionale Verschlüsselungs- und Failoverfeatures, um die Sicherheit und Zuverlässigkeit zu verbessern. Der DRDA-Dienst unterstützt optionale Features für einmaliges Anmelden und Pooling, um Die Sicherheit und Leistung zu verbessern. Sie können die MsDrdaService.exe.config-Datei bearbeiten, um den DRDA-Dienst anzuweisen, wie der SQL-Client SQL Server Verbindungen verwaltet werden kann.

Failover Connections

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.

Failover Connections

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

Verarbeiten von Paketbindungen

Der DRDA-Dienst konvertiert statische SQL für DB2-Pakete in gespeicherte SQL Server-Prozeduren, indem er die Befehle DRDA Begin Bind (BGNBND) und Bind SQL Statement (BNDSQLSTT) zu SQL Server-Anweisungen DROP PROCEDURE- und CREATE PROCEDURE verarbeitet. Ein DRDA BGNBND-Flow enthält einen oder mehrere BNDSQLSTT-Flows, einen pro im Paket gespeicherten SQL-Anweisung. Der DRDA-Dienst ordnet einen Abschnitt eines statischen DRDA-SQL-Pakets (mit einer Anweisung) einer SQL Server gespeicherten Prozedur zu. Der DRDA-Dienst ordnet die BGNBND-Paketbindungsoptionen in Kommentaren innerhalb der gespeicherten Prozeduren zu oder behält sie bei, und optional erweiterte gespeicherte Prozedureigenschaften. Der DRDA-Dienst verwendet einen internen SQL-Transformator zum Konvertieren von SQL-Befehlssyntax, Parametern, Datentypen, Cursorn und Resultsets. Optional können Sie einen benutzerdefinierten Paketbindungslistener entwickeln, um die Pakete interaktiv mit dem DRDA-Dienst oder offline zu verarbeiten.

Paket an XML-Datei binden

Der DRDA-Dienst kann einen einzelnen BGNBND-Flow zu einer statischen SQL for DB2-Paket-XML-Datei verarbeiten, wobei die ursprünglichen Bindungsoptionen und -anweisungen wie in den DRDA BNDSQLSTT-Flows definiert beibehalten werden.

Binden des Pakets an gespeicherte Prozedur

Der DRDA-Dienst verarbeitet einen einzelnen BGNBND-Flow in eine SQL Server gespeicherte Prozedur und transformiert die ursprünglichen Anweisungen, wie durch die DRDA-BNDSQLSTT-Flows definiert, in die entsprechende SQL Server Syntax.

Create Procedure-Anweisung

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

Der interne DRDA Service-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.

Abfrage-Resultset

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

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

Abfrageausgabeparameter

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

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

Cursor mit Halte

Dieser Kommentar weist den DRDA-Dienst an, Cursor innerhalb einer Transaktion geöffnet zu halten.

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

Bindungsoptionen

Dieser Kommentar behält die Laufzeit-DRDA BNDOPT (Bindungsoptionen) für die zukünftige Verwendung bei.

/****** 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> ******/

Binden und Ausführen von Paketbefehlen ignorieren

DRDA-Clientprogramme binden eine Reihe von Standardpaketen, die grundlegende DECLARE CURSOR-Anweisungen enthalten, mit denen definiert wird, wie Ergebnisse für SELECT- und CALL-Anweisungen für IBM DB2 für z/OS abgerufen und zurückgegeben werden. Der DRDA-Server muss diese Pakete nicht in SQL Server gespeicherten Prozeduren konvertieren. Sie können 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 Paketnamenwerte enthält.

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

Inhalt des Lagerbestands IgnoreStandardPackages.txt Datei.

Die erste Zeile der Datei enthält einen tabstopptrennten Satz von zwei Werten, die Spaltenheader darstellen. Der erste Spaltenheader ist der COLID (Collection Identifier). Die zweite Spaltenüberschrift ist PKGNAM (Paketname). Die restlichen Zeilen der Datei enthalten einen Satz von Werten mit Tabulatortrennzeichen für Sammlungsbezeichner und Paketnamen.

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

Ein Sternchen am Ende einer Zeichenfolge bezeichnet einen Teilwert. Der IBM DB2 Connect DRDA-Client bietet eine Reihe von Tools zum Definieren des Standardpaketsatzes in einer NULLID-Auflistung mit dem Wert des Startpaketnamens 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 für heterogene Herstellerprodukte und -technologien, indem er diese Plattformkonvertierungen bereitstellt.

DB2- bis SQL Server-Datentypzuordnungen

Der DRDA-Dienst ordnet DB2 SQL Server Datentypen zu, die auf einer definierten Gruppe von Zuordnungen basieren, die in einer Db2ToSql.xml-Datei im Verzeichnis %DRDAROOT%\system gespeichert sind. Der DRDA-Dienst konvertiert beispielsweise DB2 TIMESTAMP-Werte und -Formate, wie in DRDA-Protokollflows definiert und formatierte Daten über den Microsoft ADO.NET Framework-Datenanbieter für SQL Server Schnittstellen in SQL Server DATETIME2(6) Werte und Formate, die in gespeicherten Prozeduren und dynamischen SQL-Anweisungen definiert sind.

Quell-DB2-Typ Zieltyp SQL Server
TIME TIME
timestamp DATETIME2
DATE DATETIME
CHAR CHAR
CHAR () FOR BIT DATA BINARY
CHAR () FOR MIXED DATA NCHAR
CHAR () FOR SBCS DATA CHAR
CHARACTER CHAR
CHARACTER () FOR BIT DATA BINARY
FIXEDBYTE BINARY
CHARACTER () FOR MIXED DATA NCHAR
CHARACTER () FOR SBCS DATA CHAR
NATIONAL CHARACTER NCHAR
VARCHAR VARCHAR
VARCHAR () FOR BIT DATA VARBINARY
VARBYTE VARBINARY
VARCHAR () FOR MIXED DATA NVARCHAR
VARCHAR () FOR SBCS DATA VARCHAR
CHARACTER VARYING VARCHAR
CHARACTER VARYING () FOR BIT DATA VARBINARY
CHARACTER VARYING () FOR MIXED DATA NVARCHAR
CHARACTER VARYING () FOR SBCS DATA VARCHAR
NATIONAL CHARACTER VARYING NVARCHAR
LONG VARCHAR FOR BIT DATA BILD
LONG VARCHAR TEXT
GRAPHIC NCHAR
VARGRAPHIC NVARCHAR
GRAPHIC VARYING NVARCHAR
SMALLINT SMALLINT
INT INT
INTEGER INT
bigint bigint
DECIMAL DECIMAL
NUMERIC DECIMAL
real real
GLEITKOMMAZAHL GLEITKOMMAZAHL
Double GLEITKOMMAZAHL
DOUBLE PRECISION GLEITKOMMAZAHL
BLOB BILD
BINARY LARGE OBJECT BILD
CLOB TEXT
CLOB () FOR MIXED DATA NTEXT
CLOB () FOR SBCS DATA TEXT
CHAR LARGE OBJECT TEXT
CHAR LARGE OBJECT () FOR MIXED DATA NTEXT
CHAR LARGE OBJECT () FOR SBCS DATA TEXT
CHARACTER LARGE OBJECT TEXT
CHARACTER LARGE OBJECT () FOR MIXED DATA NTEXT
CHARACTER LARGE OBJECT () FOR SBCS DATA TEXT

SQL Server zu DB2-Datentypzuordnungen

Der DRDA-Dienst ordnet DB2 SQL Server Datentypen basierend auf einem definierten Satz von Zuordnungen zu, die in einer MsSqlToDb2.xml-Datei im Verzeichnis %DRDAROOT%\system gespeichert sind. Der DRDA-Dienst konvertiert beispielsweise SQL Server MONEY-Werte und -Formate, wie vom Microsoft ADO.NET Framework-Datenanbieter für SQL Server Schnittstellen definiert, in DB2-Dezimalwerte und -Formate, wie in DRDA-Protokollflüssen und formatierten Daten definiert.

Zieltyp SQL Server Quell-DB2-Typ
SMALLINT SMALLINT
INT INTEGER
REAL real
GLEITKOMMAZAHL Double
SMALLMONEY DECIMAL(10,4)
MONEY DECIMAL(19,4)
BIT SMALLINT
TINYINT SMALLINT
bigint bigint
UNIQUEIDENTIFIER CHAR(38)
VARBINARY VARBYTE
timestamp timestamp
BINARY FIXEDBYTE
XML LONG VARCHAR
BILD LONG VARCHAR
VARIANT VARCHAR(32672) FÜR BITDATEN
TEXT LONG VARCHAR
CHAR CHAR
VARCHAR VARCHAR
NCHAR CHAR
NVARCHAR VARCHAR
NTEXT LONG VARCHAR
DECIMAL DECIMAL
NUMERIC DECIMAL
DATETIME timestamp
DATETIMEOFFSET timestamp
DATE DATE
TIME TIME
SMALLDATETIME timestamp
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 gebietsschemaspezifische Zeichenfolgencodierungen.

EBCDIC

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

Name CCSID NLS-Codepage
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 1.141
EBCDIC - Deutschland 273 20273
EBCDIC - Griechisch (Modern) 875 875
EBCDIC - Griechisch 423 20423
EBCDIC – Hebräisch 424 20424
EBCDIC - Isländisch (Euro) 871 1149
EBCDIC - Isländisch 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 - Thai 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

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

Name CCSID NLS-Codepage
ANSI - Arabisch 1256 1256
ANSI - Baltisch 1257 1257
ANSI - Osteuropa 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 zum Authentifizieren von in-bound DRDA Application Requester (z. B. DB2 für z/OS RACF-Benutzerbezeichner und -Kennwort) Benutzeranmeldeinformationen für einen übergebundenen SQL-Client an SQL Server Datenbankverbindung (z. B. integrierte Sicherheit mit Windows Active Directory-Konten). Alternativ zum ESSO können Sie MsDrdaService so konfigurieren, dass die zugeordnete Authentifizierung verwendet wird. Das Attribut mappedAuthenticationDomain des MsDrdaService.exe.config weist den DRDA-Dienst an, dem die Microsoft Windows Active Directory-Domäne beim Herstellen einer Verbindung mit SQL Server, die für Windows-Authentifizierung mithilfe der integrierten Security Support Provider Interface (SSPI) konfiguriert sind, jedoch nicht bei Verwendung von Microsoft Enterprise Single Sign-On. Der DRDA-Dienst speichert das Sicherheitstoken, das von microsoft Enterprise Single Sign-On und Mapped Authentication Domain-Features abgerufen wurde, für einen konfigurierten Zeitraum zwischen, mit dem beim Herstellen einer Verbindung mit SQL Server verwendet werden kann, das für Windows-Authentifizierung mithilfe der integrierten Security Support Provider Interface (SSPI). Das SecurityTokenTimeout-Attribut weist den DRDA-Server an, ein Sicherheitstoken für einen bestimmten Zeitraum beizubehalten, nach dem ein neuer Windows-Clientbezeichner (Windows Client Identifier, CID) abgerufen werden soll. Dieses optionale Attribut akzeptiert einen Wert für die Dauer. Der Standardwert ist PT8H (Zeitraum ist 8 Stunden). Um die Leistung zu verbessern, können Sie den Timeoutwert des ESSO-Sicherheitstokens für einen längeren Zeitraum anpassen.

Verschlüsselung

Der DRDA-Dienst unterstützt den Datenanbieter die Authentifizierung und Datenverschlüsselung mithilfe von Des-Technologien (Data Encryption Standard), SSL (Secure Sockets Layer) V3.0 und Transport Layer Security (TLS) 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 stellt mithilfe des ADO.NET Framework-Datenanbieters für SQL Server und dem zugrunde liegenden SQL-Netzwerkclient eine Verbindung mit einer SQL Server Datenbank her. Geben Sie beim Herstellen einer Verbindung mit einem lokalen SQL Server instance die Netzwerkbibliothek=dbmslpcn an, um den SQL-Client anzuweisen, eine Verbindung mit SQL Server mithilfe von freigegebenem Arbeitsspeicher anstelle einer TCP/IP-Netzwerkverbindung herzustellen. Um die Verbindungsstartzeit zu verkürzen, 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 im Verbindungszeichenfolge fest, um die maximale Anzahl von Verbindungen zu definieren, die der SQL-Client im Verbindungspool beibehalten soll. Der Standardwert ist 100.To die Verbindungsstartzeit weiter zu verkürzen, den internen MsDrdaService-Verbindungspool zu verwenden und in-gebundene DRDA AR-Clientverbindungen und Authentifizierungsanmeldeinformationen zu übergebundenen SQL Server Datenbankverbindungen und Anmeldeinformationen zuzuordnen, indem Sie ein connectionCacheSize-Attribut festlegen, um die Anzahl von SQL-Client für SQL Server Computerverbindungen, die der DRDA-Dienst im SQL-Clientverbindungspool zwischenspeichert. Dieses optionale Attribut akzeptiert einen Integer-Wert. Der Standardwert ist 1000. Das connectionCacheTimeout-Attribut weist den DRDA-Server an, eine Poolverbindung für einen Zeitraum beizubehalten, nach dem eine neue SQL-Clientverbindung abgerufen werden soll. Dieses optionale Attribut akzeptiert einen Wert für die Dauer. Der Standardwert ist PT8H (Zeitraum ist 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 zum Überwachen der Integrität von Servern innerhalb einer Gruppe definiert. Das Attribut pingInterval weist den DRDA-Dienst an, wie häufig die Integrität von Partnerservercomputern überwacht werden soll, indem ein EXCSAT-Flow (Exchange Server-Attribut) ausgeführt und nach einer EXCSATRD (EXCSAT-Antwortdaten) überprüft wird. Dieses optionale Attribut akzeptiert einen Integer-Wert. Der Standardwert beträgt 10.000 Millisekunden (zehn Sekunden).

Plattformkompatibilität

Paketprozedurcache

Der DRDA-Dienst verarbeitet die Befehle DRDA 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 dem Ausführen der CALL-Anweisung ruft der DRDA-Dienst Metadaten für die gespeicherte SQL Server Prozedur ab, mit der der Anweisungstyp (SELECT, INSERT, UPDATE, DELETE), cursortyp (WITH HOLD), Parameterdatentypen (z. B. CHAR FOR BIT) und andere Attribute (z. B. Ergebnisse) überprüft werden können. Nach dem Abrufen der Metadaten speichert der DRDA-Dienst diese Informationen, einschließlich des zugeordneten Prozedurnamens, für ein konfiguriertes Intervall in einem Paketprozedurcache zwischen, um die Leistung bei der nächsten Ausführung dieses Paketabschnitts zu verbessern. Das packageProcedureCacheFlush-Attribut weist den DRDA-Server an, den Paketprozedurcache nach einem angegebenen Zeitraum zu leeren. Dieses optionale Attribut akzeptiert einen Wert für die Dauer. Der Standardwert ist P1D (Zeitraum ist 1 Tag). Das packageProcedureLastInvoke-Attribut weist den DRDA-Server an, die Namen der Objekte im Paketprozedurcache nach einem angegebenen Zeitraum in eine Textdatei zu schreiben, %DRDAROOT%\LastInvokePackageProcedures.txt. Dieses optionale Attribut akzeptiert einen Wert für die Dauer. Der Standardwert ist P7D (Zeitraum ist 7 Tage). Beim Starten des Diensts lädt der DRDA-Dienst diese Textdatei, um das Schema für in der Datei aufgeführte Prozeduren vorab abzurufen. 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 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. Um die Leistung von SQL-Syntaxtransformationen zu verbessern, aktivieren Sie die CLR-basierten Funktionen des DRDA-Diensts. Der DRDA-Dienst transformiert statische SQL für DB2-Pakete in SQL Server gespeicherte Prozeduren, wenn die Verarbeitung von DRDA-Befehlen zum Binden und Binden von SQL-Anweisungen beginnt, 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 Einzelzeilenabruf 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 einschließen.

Isolationsstufe

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

Datumszeitformate und Konvertierungen

Der DRDA-Dienst formatiert beim Verarbeiten dynamischer und statischer SQL-Anweisungen Zeichenfolgenliteralzeitwerte aus der Quelle und in Zielformate für bestimmte Datumszeit- und Zeichendatentypen. Das conversionFormats-Element enthält dateMasks, timeMasks und dateTimeMasks zum Konvertieren in und aus DB2- und SQL Server datetime-Formaten und weist den DRDA-Dienst an, wann diese Transformationen ausgeführt werden sollen. Das Analysieren, Codieren und Decodieren von Zeichenfolgen in und ab Datumszeit formatierten Werten verbraucht zusätzliche DRDA-Dienstressourcen.

Codepagekonvertierungen

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

Sortierungszuordnungen

SQL Server können Abfrageergebnisse in einer anderen Reihenfolge als vom DRDA-Clientprogramm erwartet werden. Ein IT-Experte kann beispielsweise eine SQL Server Datenbank für die Verwendung einer ANSI-Sortierung und eine DB2 for z/OS-Datenbank konfigurieren, um die EBCDIC-Sortierung zu verwenden. Der DRDA-Dienst kann eine SELECT-Anweisung von DB2 ORDER BY COLLATION_KEY-Syntax (Sortierungsname) in SQL Server T-SQL ORDER BY COLLATE-Syntax (collation_name) transformieren, wobei ein DB2-Sortierungsname-Wert einem SQL Server collation_name-Wert zugeordnet wird, um kompatiblere Abfrageergebnisse bereitzustellen. Der DRDA-Dienst kann eine COLLATE-Klausel zu einer ORDER BY-Klausel hinzufügen, basierend auf einem STANDARDMÄßIGEN ORDER BY-Sortierungsnamen. Das Analysieren und Ersetzen oder Hinzufügen von SQL-Syntax durch den DRDA-Dienst beansprucht zusätzliche Ressourcen.

Ablaufverfolgung

Der DRDA-Dienst unterstützt eine Reihe von freigegebenen Listenern, um Informationen in Text, Konsole, Ereignisprotokoll und benutzerdefinierten Komponenten zu protokollieren. Das System. Diagnose Element des Abschnitts hostIntegration.drdaAs.drdaService der MsDrdaService.exe.config Datei definiert und steuert die verschiedenen Listener. Das traceLevel-Attribut weist den DRDA-Dienst an, definierte Informationssammlungen von einem Minimum bis zu einer maximalen Ablaufverfolgungsebene nachzuverfolgen. Dieses optionale Attribut akzeptiert einen Integer-Wert. Der Standardwert ist 0, wodurch die Ablaufverfolgung deaktiviert wird. Der DRDA-Dienst kann Ablaufverfolgungsdaten automatisch in die Ablaufverfolgungslistener leeren. Dadurch wird sichergestellt, dass die Ablaufverfolgungsdaten erfasst werden, aber die Datenträger-E/A erhöhen und die Gesamtleistung des Systems verringern. Um die Leistung zu verbessern, legen Sie autoFlush=false fest, um die automatische Ablaufverfolgungslöschung zu deaktivieren.

Systemmonitor

Um die Leistung zu messen, bietet der DRDA-Dienst Leistungsindikatoren. Die DRDA-Dienstleistungsindikatoren erfassen Informationen zu offenen Verbindungen, offenen Anweisungen, Paketen und Bytes, die gesendet/empfangenen Bytes, die durchschnittliche Verarbeitungszeit, Befehlsausführungen, Datenabrufe und Transaktionscommits/Rollbacks.

Konfiguration

Um die Leistung zu messen, bietet der DRDA-Dienst Leistungsindikatoren für die Verwendung mit Windows Leistungsmonitor. Das peformanceCountersOn-Attribut 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 zu Windows Leistungsmonitor finden Sie unter Leistungsindikatoren (https://go.microsoft.com/fwlink/?LinkID=119211).

Counters

Der DRDA-Dienst gibt Daten an diese Leistungsmonitor Leistungsindikatoren aus.

  1. Aktive Sitzungen

  2. Active SQL Connections

  3. Aktive Transaktionen

  4. Empfangene Bytes

  5. Empfangene Byte/Sek.

  6. Gesendete Bytes

  7. Gesendete Byte/Sek.

  8. Transaktionen

  9. Transaktionscommits

  10. Transaktionscommits/Sek.

  11. TransaktionsrollBacks

  12. Transaktionen/Sekunde

DRDA-Dienstinstanzen

Der DRDA-Dienst bietet Leistungsmonitor Leistungsindikatoren auf Dienst- oder Verbindungsbasis instance, wobei ein "instance" ein Prozess oder eine Sitzung sein kann.