Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
- 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.
- 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.
- 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.
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.
Sessioni attive
Connessioni SQL attive
Transazioni attive
Byte ricevuti
Byte ricevuti/sec
Byte inviati
Byte inviati/sec
Transazioni
Commit delle transazioni
Transazioni impegnate/sec
Annullamenti delle transazioni
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.