Condividi tramite


Servizio per DRDA (operazioni)

Le sezioni seguenti forniscono assistenza per il funzionamento del servizio Microsoft per DRDA (Servizio DRDA).

Gestione del servizio DRDA

Avvio del servizio DRDA

È possibile avviare il servizio DRDA per l'esecuzione come servizio o applicazione console.

Servizio Windows

Usando una finestra di comando, è possibile avviare il servizio DRDA per l'esecuzione come servizio, in credenziali definite nella configurazione del servizio. Aprire un prompt dei comandi, immettere net start msdrdaservice e selezionare INVIO.

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

Applicazione console

Usando una finestra di comando, è possibile eseguire il servizio DRDA per l'esecuzione come applicazione console, sotto le credenziali della finestra di comando.

  1. Dal prompt dei comandi, digitare net stop msdrdaservice e premere INVIO.
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. Da un prompt dei comandi, immettere msdrdaservice.exe -c e premere INVIO.
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

Annotazioni

Il listener di traccia del servizio DRDA mostrerà informazioni nella finestra della console. È necessario rimuovere il commento dalla voce DrdaAsConsoleListener e impostare un traceLevel (ad esempio 5) nel file MsDrdaServiceConfig.exe.config.

Arresto del servizio DRDA

È possibile arrestare il servizio DRDA quando è in esecuzione come servizio o applicazione console.

Servizio Windows

Usando una finestra di comando, è possibile arrestare il servizio DRDA durante l'esecuzione come servizio.

  1. Dal prompt dei comandi, digita net stop msdrdaservice e premi Invio.
C:\Windows\system32>net stop msdrdaservice
The Microsoft Service for DRDA service is stopping.
The Microsoft Service for DRDA service was stopped successfully.

Applicazione console

Usando una finestra di comando, è possibile arrestare il servizio DRDA quando è in esecuzione come applicazione console.

  • Dal prompt dei comandi digitare CTRL+C.
C:\Windows\system32>

Annotazioni

Il servizio DRDA smette di essere eseguito come applicazione console e viene visualizzato il prompt dei comandi.

Connessione di client DRDA a database SQL Server

Il servizio DRDA elabora le richieste client DRDA in connessioni a database SQL Server locali e remoti. In questo argomento viene illustrato il funzionamento delle operazioni di connessione al database MsDrdaService.

Connessioni client

All'avvio del servizio, il servizio DRDA scriverà una voce informativa nei listener di traccia interni, notificando al professionista IT la porta su cui il Gestore delle Comunicazioni TCP è in ascolto per le connessioni in entrata dei client richiedenti applicazioni DRDA.

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

I client richiedente applicazione DRDA remoti si connettono al servizio DRDA locale tramite una connessione di rete TCP/IP. Il client DRDA invia flussi e formati di dati del protocollo DRDA EXCSAT (Exchange Server Attributes), ACCSEC (Access Security) e ACCRDB (Access Relational Database) a cui il servizio DRDA risponde con risposte al protocollo DRDA.

Autenticazione

Per fornire l'autenticazione integrata, il servizio DRDA può combinare la convalida e il mapping delle credenziali in entrata utilizzando Microsoft Enterprise Single Sign-On (ESSO), con l'autenticazione SQL Server in uscita tramite Windows SSPI (Security Support Provider Interface). Ad esempio, il servizio DRDA può lavorare con ESSO per eseguire il mapping di un nome utente e una password IBM RACF (Resource Access Control Facility) a un dominio\nome utente di Microsoft Windows Active Directory, con cui connettersi con la sicurezza integrata a un database di SQL Server remoto.

Connessioni SQL Server

Il servizio DRDA comunica con database SQL Server locali o remoti upstream usando il provider di ADO.NET Framework per SQL Server. Il client SQL di base accede a SQL Server tramite una connessione in memoria o attraverso una rete utilizzando Named Pipes o TCP/IP. Il client SQL supporta funzionalità di crittografia e failover facoltative per migliorare la sicurezza e l'affidabilità. Il servizio DRDA supporta funzionalità facoltative per l'accesso Single Sign-On e il pooling per migliorare la sicurezza e le prestazioni. È possibile modificare il file di MsDrdaService.exe.config per indicare al servizio DRDA come gestire il client SQL alle connessioni di SQL Server.

Connessioni di failover

Il servizio DRDA può operare in gruppi di due (2) server, uno per computer, per fornire la tolleranza di errore di base. Quando un client DRDA AR si connette a un database di SQL Server, il servizio DRDA restituisce un DRDA SRVLST (Elenco server) con un elenco ponderato di istanze di Data Server. In caso di failover di un servizio DRDA primario, DRDA AR può usare queste informazioni per connettersi al membro alternativo di una coppia di computer del servizio DRDA. In combinazione con il clustering o il mirroring di SQL Server, questa tecnologia può offrire un livello ragionevole di protezione failover ad alta tolleranza agli errori.

Connessioni di failover

Le illustrazioni precedenti illustrano come i client DRDA possono riconnettersi al server partner del servizio DRDA in scenari di failover.

Collegamenti di pacchetti di elaborazione

Il servizio DRDA converte i pacchetti SQL statici per DB2 in stored procedure di SQL Server, elaborando i comandi DRDA Begin Bind (BGNBND) e Bind SQL Statement (BNDSQLSTT) in istruzioni SQL Server DROP PROCEDURE e CREATE PROCEDURE. Un flusso DRDA BGNBND conterrà uno o più flussi BNDSQLSTT, uno per ogni istruzione SQL archiviata all'interno del pacchetto. Il servizio DRDA associa una sezione del pacchetto SQL statico DRDA (contenente un'istruzione) a una stored procedure in SQL Server. Il servizio DRDA esegue il mapping o mantiene le opzioni di associazione del pacchetto BGNBND nei commenti all'interno delle stored procedure e le proprietà facoltative delle stored procedure estese. Il servizio DRDA usa un trasformatore SQL interno per convertire la sintassi dei comandi SQL, i parametri, i tipi di dati, i cursori e i set di risultati. Facoltativamente, è possibile sviluppare un listener di associazione di pacchetti personalizzato per elaborare i pacchetti in modo interattivo con il servizio DRDA o offline.

Associare il pacchetto al file XML

Il servizio DRDA può elaborare un singolo flusso BGNBND in un file XML del pacchetto SQL statico per DB2, mantenendo le opzioni e le istruzioni di associazione originali definite dai flussi DRDA BNDSQLSTT.

Associare il pacchetto alla procedura memorizzata

Il servizio DRDA elaborerà un flusso BGNBND in una stored procedure di SQL Server, trasformando le istruzioni originali come definite dai flussi DRDA BNDSQLSTT nella sintassi SQL Server corrispondente.

Dichiarazione di Creazione Procedura

Il listener per l'associazione del pacchetto interno del servizio DRDA e la maggior parte dei listener personalizzati includerà una clausola IF EXISTS con l'istruzione DROP PROCEDURE, a seconda del valore di PKGRPLOPT (Package Replacement Option) nel flusso del protocollo DRDA BGNBND (Begin Bind). Il valore predefinito per PKGRPLOPT è PKGRPLALW (Sostituzione del pacchetto consentita). Facoltativamente, è possibile specificare il valore PKGRPLNA (Sostituzione del pacchetto non consentita).

Il listener di associazione del pacchetto interno del servizio DRDA e la maggior parte dei listener personalizzati includeranno commenti subito prima del testo dell'istruzione CREATE PROCEDURE, che indicano al runtime del servizio DRDA su come eseguire le stored procedure.

Set di risultati della query

Questo commento indica al servizio DRDA di usare un DataReader SqlClient per restituire i risultati dell'istruzione SELECT.

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

Parametri di output delle query

Questo commento indica al servizio DRDA di preparare i parametri OUTPUT quando si chiama la routine con cui restituire i dati dalla query.

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

Cursore con blocco

Questo commento indica al servizio DRDA di tenere aperti i cursori all'interno di una transazione.

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

Opzioni di associazione

Questo commento mantiene il runtime DRDA BNDOPT (opzioni di binding) per un uso futuro.

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

Ignorare i comandi bind ed esegui pacchetto

I programmi client DRDA associano un set di pacchetti standard che contengono istruzioni DECLARE CURSOR di base, con cui definire come recuperare e restituire i risultati nelle istruzioni SELECT e CALL su IBM DB2 per z/OS. Il server DRDA non deve convertire questi pacchetti in stored procedure di SQL Server. È possibile risparmiare sull'elaborazione dell'associazione e sullo spazio di archiviazione istruendo il server DRDA a ignorare questi pacchetti, leggendo un file IgnoreStandardPackages.txt contenente un elenco delimitato di valori di nome pacchetto qualificato.

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

Contenuti del file IgnoreStandardPackages.txt di magazzino.

La prima riga del file contiene un insieme di due valori delimitati da tabulazioni che rappresentano le intestazioni di colonna. La prima intestazione di colonna è COLID (Identificatore della raccolta). La seconda intestazione di colonna è PKGNAM (Nome Pacchetto). Le righe rimanenti del file contengono un set di valori delimitati da tabulazioni per l'identificatore della raccolta e il nome del pacchetto.

Un asterisco al posto di un valore indica qualsiasi valore. Il client Microsoft DRDA offre un set di strumenti per definire il set standard di pacchetti in una o più raccolte definite dall'utente. In questo caso, il carattere jolly indica al server DRDA di ignorare i comandi di associazione ed esecuzione che fanno riferimento ai pacchetti standard del client DRDA Microsoft, indipendentemente dalla collezione in cui sono definiti i pacchetti.

Un asterisco alla fine di una stringa indica un valore parziale. Il client IBM DB2 Connect DRDA offre un set di strumenti per definire il set standard di pacchetti in una raccolta NULLID con un valore del nome del pacchetto iniziale SYSSH. In questo caso, il carattere jolly indica al server DRDA di ignorare i comandi di associazione ed esecuzione che fanno riferimento al set completo di pacchetti standard IBM DB2 Connect DRDA Client.

Tipi di dati

Il servizio DRDA offre la compatibilità tra prodotti e tecnologie di fornitori eterogenei, fornendo queste conversioni della piattaforma.

Mapping dei tipi di dati da DB2 a SQL Server

Il servizio DRDA esegue il mapping di DB2 ai tipi di dati di SQL Server in base a un set definito di mapping archiviati in un file Db2ToSql.xml nella directory %DRDAROOT%\system. Ad esempio, il servizio DRDA converte i valori e i formati DB2 TIMESTAMP definiti nei flussi di protocollo DRDA e i dati formattati in valori e formati di SQL Server DATETIME2(6) come definito nelle stored procedure e nelle istruzioni SQL dinamiche tramite il provider di dati Framework di Microsoft ADO.NET per le interfacce di SQL Server.

Tipo DB2 di origine Tipo di SQL Server di destinazione
TEMPO TEMPO
TIMESTAMP DATETIME2
DATTERO Data e Ora
CHAR CHAR
CHAR () PER DATI BINARI BINARIO
CHAR () PER DATI MISTI NCHAR
CHAR () PER DATI SBCS CHAR
CARATTERE CHAR
CARATTERE () PER DATI BINARI BINARIO
FIXEDBYTE BINARIO
CARATTERE () PER DATI MISTI NCHAR
CHARACTER () PER I DATI SBCS CHAR
CARATTERE NAZIONALE NCHAR
VARCHAR VARCHAR
VARCHAR () PER DATI BINARI VARBINARY
VARBYTE VARBINARY
VARCHAR () PER DATI MISTI NVARCHAR
VARCHAR () PER I DATI SBCS VARCHAR
CARATTERE VARIABILE VARCHAR
CARATTERE VARIABILE () PER I DATI DI BIT VARBINARY
CARATTERE VARIABILE () PER DATI MISTI NVARCHAR
CARATTERE VARIABILE () PER I DATI SBCS VARCHAR
CARATTERE NAZIONALE VARIABILE NVARCHAR
LONG VARCHAR PER DATI BINARI IMMAGINE
LONG VARCHAR TESTO
GRAFICA NCHAR
VARGRAPHIC NVARCHAR
GRAFICO VARIABILE NVARCHAR
SMALLINT SMALLINT
INT INT
NUMERO INTERO INT
BIGINT BIGINT
DECIMALE DECIMALE
NUMERICO DECIMALE
REALE REALE
Galleggiare Galleggiare
DOPPIO Galleggiare
PRECISIONE DOPPIA Galleggiare
BLOB IMMAGINE
OGGETTO BINARIO DI GRANDI DIMENSIONI IMMAGINE
CLOB TESTO
CLOB () PER DATI MISTI NTEXT
CLOB () PER I DATI SBCS TESTO
CHAR LARGE OBJECT TESTO
CHAR LARGE OBJECT () PER DATI MISTI NTEXT
OGGETTO DI TIPO CHAR GRANDE PER DATI SBCS TESTO
OGGETTO DI GRANDI DIMENSIONI TESTO TESTO
OGGETTO DI GRANDI DIMENSIONI CARATTERE () PER DATI MISTI NTEXT
OGGETTO DI GRANDI DIMENSIONI CON CARATTERI (CLOB) PER DATI SBCS TESTO

Mapping dei tipi di dati da SQL Server a DB2

Il servizio DRDA esegue il mapping di DB2 ai tipi di dati di SQL Server in base a un set definito di mapping archiviati in un file MsSqlToDb2.xml nella directory %DRDAROOT%\system. Ad esempio, il servizio DRDA converte i valori e i formati MONEY di SQL Server definiti dal provider di dati Microsoft ADO.NET Framework per SQL Server in valori e formati DECIMALI DB2 definiti nei flussi di protocollo DRDA e nei dati formattati.

Tipo di SQL Server di destinazione Tipo DB2 di origine
SMALLINT SMALLINT
INT NUMERO INTERO
REALE REALE
Galleggiare DOPPIO
PICCOLO DENARO DECIMAL(10,4)
DENARO DECIMAL(19,4)
BIT SMALLINT
TINYINT SMALLINT
BIGINT BIGINT
IDENTIFICATOREUNICO CHAR(38)
VARBINARY VARBYTE
TIMESTAMP TIMESTAMP
BINARIO FIXEDBYTE
XML VARCHAR LUNGO
IMMAGINE VARCHAR LUNGO
VARIANTE VARCHAR(32672) PER DATI BIT
TESTO VARCHAR LUNGO
CHAR CHAR
VARCHAR VARCHAR
NCHAR CHAR
NVARCHAR VARCHAR
NTEXT LONG VARCHAR
DECIMALE DECIMALE
NUMERICO DECIMALE
Data e Ora TIMESTAMP
DATETIMEOFFSET (data e ora con fuso orario) TIMESTAMP
DATTERO DATTERO
TEMPO TEMPO
SMALLDATETIME TIMESTAMP
SYSNAME VARGRAPHIC(128)

Configurazione dei mapping dei tipi di dati

Il servizio DRDA converte i tipi di dati di base da DB2 a SQL Server e da SQL Server a DB2. Facoltativamente, è possibile modificare questi file XML per modificare i mapping dei tipi di dati di base.

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

Codifica locale

Il servizio DRDA supporta codifiche di stringhe specifiche delle impostazioni locali.

EBCDIC

Il servizio DRDA supporta i CCSID SBCS (set di caratteri a byte singolo) elencati di seguito convertiti in e da UNICODE 1208.

Nome CCSID Tabella codici NLS
EBCDIC - Arabo 420 20420
EBCDIC - Cirillico (russo) 880 20880
EBCDIC - Cirillico (serbo, bulgaro) 1025 21025
EBCDIC - Danimarca/ Norvegia (Euro) 277 1142
EBCDIC - Danimarca/ Norvegia 277 20277
EBCDIC - Finlandia/Svezia (Euro) 278 1143
EBCDIC - Finlandia/Svezia 278 20278
EBCDIC - Francia (Euro) 297 1147
EBCDIC - Francia 297 20297
EBCDIC - Germania (Euro) 273 1141
EBCDIC - Germania 273 20273
EBCDIC - Greco (moderno) 875 875
EBCDIC - Greco 423 20423
EBCDIC - Ebraico 424 20424
EBCDIC - Islandese (Euro) 871 1149
EBCDIC - Islandese 871 20871
EBCDIC - Internazionale (Euro) 500 1148
EBCDIC - Internazionale 500 500
EBCDIC - Italia (Euro) 280 1144
EBCDIC - Italia 280 20280
EBCDIC - America Latina/Spagna (Euro) 284 1145
EBCDIC - America Latina/Spagna 284 20284
EBCDIC - Multilingue/ROECE (latino-2) 870 870
EBCDIC - Thai 838 20838
EBCDIC - Turco (latino-3) 905 20905
EBCDIC - Turco (latino-5) 1026 1026
EBCDIC - U.S./Canada (Euro) 37 1140
EBCDIC - Stati Uniti/ Canada 37 37
EBCDIC - Regno Unito (Euro) 285 1146
EBCDIC - Regno Unito 285 20285

ANSI

Il servizio DRDA supporta i CCSID ANSI (Set di caratteri a byte singolo) elencati di seguito convertiti in e da UNICODE 1208.

Nome CCSID Tabella codici NLS
ANSI - Arabo 1256 1256
ANSI - Baltico 1257 1257
ANSI - Europa centrale 1250 1250
ANSI - Cirillico 1251 1251
ANSI - Greco 1253 1253
ANSI - Ebraico 1255 1255
ANSI - Latino I 1252 1252
ANSI - Turco 1254 1254
ANSI - Arabo 1256 1256

Prestazioni

Questo argomento contiene informazioni che consentono di ottimizzare le prestazioni quando si usa il servizio DRDA.

Autenticazione e crittografia

Autenticazione

Il servizio DRDA utilizza Microsoft Enterprise Single Sign-On per autenticare le credenziali dell'Application Requester DRDA (ad esempio, identificatore utente e password DB2 per z/OS RACF) verso le credenziali utente del client SQL per la connessione al database SQL Server (ad esempio, Sicurezza integrata con account di Windows Active Directory). In alternativa a ESSO, è possibile configurare MsDrdaService per l'uso dell'autenticazione mappata. L'attributo mappedAuthenticationDomain del MsDrdaService.exe.config indica al servizio DRDA a quale dominio di Microsoft Windows Active Directory eseguire il mapping delle credenziali del client DRDA (nome utente e password), quando ci si connette a SQL Server configurato per l'autenticazione di Windows utilizzando l'interfaccia SSPI (Security Support Provider Interface) integrata, ma non quando si usa Microsoft Enterprise Single Sign-On. Il servizio DRDA memorizza nella cache il token di sicurezza ottenuto dalle funzionalità di Microsoft Enterprise Single Sign-On e Dominio di autenticazione mappata per un periodo di tempo configurato, con cui usare per la connessione a SQL Server configurato per l'autenticazione di Windows tramite L'interfaccia SSPI (Security Support Provider Interface). L'attributo securityTokenTimeout indica al server DRDA di conservare un token di sicurezza per un periodo di tempo, dopo il quale ottenere un nuovo identificatore client windows (CID). Questo attributo facoltativo accetta un valore di durata. Il valore predefinito è PT8H (periodo di tempo è 8 ore). Per migliorare le prestazioni, è possibile modificare il valore di timeout del token di sicurezza ESSO per una durata più lunga.

Crittografia

Il servizio DRDA supporta il provider di dati supporta l'autenticazione e la crittografia dei dati usando tecnologie DES (Data Encryption Standard), Secure Sockets Layer (SSL) V3.0 e Transport Layer Security (TLS) V1.0. Inoltre, il servizio DRDA supporta la crittografia dei dati solo usando la crittografia AES (Advanced Encryption Standard). Questi meccanismi di crittografia possono influire sulle prestazioni.

Connessione

Connessione SQL Server

Il servizio per DRDA si connette a un database di SQL Server usando il provider di dati ADO.NET Framework per SQL Server e il client di rete SQL sottostante. Quando ci si connette a un'istanza di SQL Server locale, specificare la libreria di rete=dbmslpcn per indicare al client SQL di connettersi a SQL Server usando memoria condivisa anziché una connessione di rete TCP/IP. Per ridurre il tempo di avvio della connessione, usare il pool di connessioni di SQL Server impostando Pooling=true nella stringa di connessione per indicare al client SQL di aggiungere nuove connessioni create al pool quando viene chiuso dal servizio DRDA. Per regolare l'impatto sul server locale, impostare la dimensione massima del pool nella stringa di connessione per definire il numero massimo di connessioni che il client SQL deve mantenere nel pool di connessioni. Il valore predefinito è 100. Per ridurre ulteriormente il tempo di avvio della connessione, usare il pool di connessioni interne MsDrdaService, mappando le connessioni client DRDA AR in ingresso e le credenziali di autenticazione alle connessioni e credenziali del database di SQL Server in uscita, impostando un attributo connectionCacheSize per definire il numero di connessioni SQL Client a connessioni computer SQL Server che il servizio DRDA memorizzerà nella cache nel pool di connessioni SQL Client. Questo attributo facoltativo accetta un valore intero. Il valore predefinito è 1000.L'attributo connectionCacheTimeout indica al server DRDA di mantenere una connessione in pool per un periodo di tempo, dopo il quale ottenere una nuova connessione client SQL. Questo attributo facoltativo accetta un valore di durata. Il valore predefinito è PT8H (periodo di tempo è 8 ore).

Failover della connessione

Il servizio DRDA può operare all'interno di un gruppo per fornire failover tollerante ai guasti. Il gruppo viene definito specificando un ruolo del servizio locale (primario o secondario), i server partner di failover disponibili e un intervallo di ping per il monitoraggio dell'integrità dei server all'interno di un gruppo. L'attributo pingInterval indica al servizio DRDA la frequenza con cui monitorare l'integrità dei computer del server partner eseguendo un flusso EXCSAT (Attributo di Exchange Server) e verificando la presenza di un EXCSATRD (EXCSAT Reply Data). Questo attributo facoltativo accetta un valore intero. Il valore predefinito è 10000 millisecondi (10 secondi).

Compatibilità della piattaforma

Cache delle procedure del pacchetto

Il servizio DRDA elabora i comandi DRDA EXCSQLSTT (istruzione Execute SQL) e OPNQRY (Open Query) eseguendo un'istruzione SQL Server CALL su una stored procedure di SQL Server corrispondente. Prima di eseguire l'istruzione CALL, il servizio DRDA recupererà i metadati per la stored procedure di SQL Server con cui verificare il tipo di istruzione (SELECT, INSERT, UPDATE, DELETE), il tipo di cursore (WITH HOLD), i tipi di dati dei parametri (ad esempio CHAR FOR BIT) e altri attributi (ad esempio, ha risultati). Dopo aver recuperato i metadati, il servizio DRDA memorizza nella cache queste informazioni, incluso il nome della procedura mappata, per un intervallo configurato in una cache delle procedure del pacchetto per migliorare le prestazioni durante l'esecuzione successiva di questa sezione del pacchetto. L'attributo packageProcedureCacheFlush indica al server DRDA di scaricare la cache delle procedure del pacchetto dopo un intervallo di tempo specificato. Questo attributo facoltativo accetta un valore di durata. Il valore predefinito è P1D (periodo di tempo è 1 giorno). L'attributo packageProcedureLastInvoke indica al server DRDA di scrivere i nomi degli oggetti nella cache delle procedure del pacchetto in un file di testo, %DRDAROOT%\LastInvokePackageProcedures.txt, dopo un intervallo di tempo specificato. Questo attributo facoltativo accetta un valore di durata. Il valore predefinito è P7D (periodo di tempo è 7 giorni). All'avvio del servizio, il servizio DRDA caricherà questo file di testo per pre-recuperare lo schema per le procedure elencate nel file. Per migliorare le prestazioni dell'avvio del servizio, è possibile modificare questo file e rimuovere i nomi delle stored procedure non necessario. Per disabilitare la lettura e la scrittura del file LastInvokePackageProcedures.txt, impostare timepan su PT0S (Periodo di tempo zero secondi).

Sintassi SQL

Il servizio DRDA ha un trasformatore di sintassi di comando T-SQL limitato da DB2 ANSI a SQL Server che usa per l'associazione di pacchetti, eseguendo istruzioni SQL statiche e dinamiche. Facoltativamente, il servizio DRDA offre funzioni DB2 compatibili aggiuntive sotto forma di funzioni basate su CLR di SQL Server. Per migliorare le prestazioni delle trasformazioni della sintassi SQL, abilitare le funzioni basate su CLR del servizio DRDA. Il servizio DRDA trasforma le SQL statiche per i pacchetti DB2 in stored procedure di SQL Server, durante l'elaborazione dei comandi di DRDA di inizio associazione e di associazione delle istruzioni SQL, comprese le istruzioni SQL DECLARE CURSOR incorporate. Per migliorare le prestazioni, il servizio DRDA restituisce più righe per ogni recupero, se possibile, a meno che il pacchetto o il cursore non sia definito per il recupero a riga singola per supportare l'aggiornamento simultaneo. Quando si definiscono istruzioni SELECT per prestazioni di lettura ottimali, lo sviluppatore deve includere una clausola FOR FETCH ONLY o FOR READ ONLY.

Livello di isolamento

Il servizio DRDA esegue il mapping del livello di isolamento IBM DB2 nell'istruzione DRDA EXCSQLSTT (Execute SQL Statement) al livello di transazione di SQL Server nell'oggetto transazione ADO.NET Provider for SQL Server. Per migliorare le prestazioni e ridurre la contesa sugli oggetti di database, lo sviluppatore deve usare il livello di isolamento DB2 Cursor Stability (CS) che corrisponde al livello di isolamento di SQL Server Read Committed.

Formati e conversioni di data e ora

Il servizio DRDA formatterà i valori letterali di data e ora in formato stringa dai formati sorgente a quelli di destinazione durante l'elaborazione di istruzioni SQL statiche e dinamiche, per specifici tipi di dati di data e carattere. L'elemento conversionFormats contiene dateMasks, timeMasks e dateTimeMasks per la conversione da e verso i formati datetime di DB2 e SQL Server e indica al servizio DRDA quando eseguire queste trasformazioni. L'analisi, la codifica e la decodifica delle stringhe da e verso i valori formattati come data e ora utilizzeranno risorse aggiuntive del servizio DRDA.

Conversioni della pagina codice

Il servizio DRDA esegue il mapping delle tabelle codici e supporta conversioni personalizzate della tabella codici usando un componente HIS Encoder sottostante e i componenti di sistema NLS (Windows National Language Support). Facoltativamente, il servizio DRDA può convertire singoli caratteri per supportare pagine di codice personalizzate. Il server DRDA utilizzerà risorse aggiuntive quando si supporta la conversione della tabella codici personalizzata.

Mappature delle regole di confronto

SQL Server può comprimere i risultati delle query in un ordine diverso da quello previsto dal programma client DRDA. Ad esempio, un professionista IT può configurare un database di SQL Server per l'uso di regole di confronto ANSI e un database DB2 per z/OS per l'uso delle regole di confronto EBCDIC. Il servizio DRDA può trasformare un'istruzione SELECT dalla sintassi DB2 ORDER BY COLLATION_KEY (collation_name) alla sintassi SQL Server T-SQL ORDER BY COLLATE (collation_name), eseguendo il mapping da un valore collation_name di DB2 a un valore collation_name di SQL Server, per ottenere risultati di query più compatibili. Il servizio DRDA può aggiungere una clausola COLLATE a una clausola ORDER BY, in base a un nome di regole di confronto ORDER BY predefinito. L'analisi del servizio DRDA e la sostituzione o l'aggiunta della sintassi SQL utilizzeranno risorse aggiuntive.

Tracciamento

Il servizio DRDA supporta un set di listener condivisi per registrare informazioni su testo, console, registro eventi e componente personalizzato. L'elemento system.diagnostics della sezione hostIntegration.drdaAs.drdaService del file MsDrdaService.exe.config definisce e controlla i vari listener. L'attributo traceLevel indica al servizio DRDA di tracciare raccolte di informazioni definite, da un minimo a un livello massimo di traccia. Questo attributo facoltativo accetta un valore intero. Il valore predefinito è 0, che disabilita la traccia. Il servizio DRDA può scaricare automaticamente i dati di traccia nei listener di traccia, che garantisce l'acquisizione dei dati di traccia, ma aumenterà l'I/O del disco e ridurrà le prestazioni complessive del sistema. Per migliorare le prestazioni, impostare autoFlush su false per disabilitare lo scaricamento automatico della traccia.

Monitor delle prestazioni

Per misurare le prestazioni, il servizio DRDA offre contatori delle prestazioni. I contatori delle prestazioni del servizio DRDA acquisisce informazioni sulle connessioni aperte, le istruzioni aperte, i pacchetti e i byte inviati/ricevuti, il tempo medio di elaborazione, le esecuzioni dei comandi, i recupero dei dati e i commit/rollback delle transazioni.

Configurazione

Per misurare le prestazioni, il servizio DRDA offre contatori delle prestazioni da usare con Windows Performance Monitor. L'attributo peformanceCountersOn indica al servizio DRDA di raccogliere informazioni nei contatori delle prestazioni. Questo attributo facoltativo accetta un valore booleano. Il valore predefinito è false. Per altre informazioni, vedere la sezione prestazioni. Inoltre, per altre informazioni su Windows Performance Monitor, vedere Contatori delle prestazioni (https://go.microsoft.com/fwlink/?LinkID=119211).

Contatori

Il servizio DRDA restituisce i dati a questi contatori di Performance Monitor.

  1. Sessioni attive

  2. Connessioni SQL attive

  3. Transazioni attive

  4. Byte ricevuti

  5. Byte ricevuti/sec

  6. Byte inviati

  7. Byte inviati/sec

  8. Transazioni

  9. Commit delle transazioni

  10. Transazioni impegnate/sec

  11. Annullamenti delle transazioni

  12. Transazioni/sec

Istanze del servizio DRDA

Il servizio DRDA offre contatori di Performance Monitor per ogni servizio o per ogni "istanza", in cui un'"istanza" può essere un processo o una sessione.