Condividi tramite


Servizio per DRDA (operazioni)

Le sezioni seguenti forniscono assistenza per il servizio Microsoft operativo 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 dei comandi, è 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 dei comandi, è possibile eseguire il servizio DRDA per l'esecuzione come applicazione console, sotto le credenziali della finestra di comando.

  1. Da un prompt dei comandi immettere 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

Nota

Il listener di traccia del servizio DRDA restituisce informazioni nella finestra della console. È necessario annullare ilcommentazione della voce DrdaAsConsoleListener e impostare un traceLevel (ad esempio 5) nel file di 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 dei comandi, è possibile arrestare il servizio DRDA durante l'esecuzione come servizio.

  1. Dal prompt dei comandi immettere net stop msdrdaservice e premere 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 dei comandi, è possibile arrestare il servizio DRDA quando è in esecuzione come applicazione console.

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

Nota

Il servizio DRDA arresta l'esecuzione come applicazione console e viene visualizzato il prompt dei comandi.

Connessione dei client DRDA ai database di SQL Server

Il servizio DRDA elabora le richieste client DRDA nelle connessioni ai database di SQL Server locali e remoti. Questo argomento illustra l'operazione delle operazioni di connessione del database MsDrdaService.

Connessioni client

All'avvio del servizio, il servizio DRDA scriverà una voce informativo nei listener di traccia del servizio DRDA interno, notificando al professionista IT la porta in cui GESTIONE comunicazione TCP è in ascolto per le connessioni client del richiedente applicazione DRDA associate.

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

I client dell'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 DRDA EXCSAT (attributi Exchange Server), ACCSEC (Access Security) e ACCRDB (Access Relational Database), ai quali il servizio DRDA risponde con risposte al protocollo DRDA.

Authentication

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

SQL Server Connections

Il servizio DRDA comunica ai database di SQL Server locali o remoti upstream usando il provider ADO.NET Framework per SQL Server. L'accesso client SQL sottostante SQL Server tramite una connessione in memoria o in una rete usando Named Pipe 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 per SQL Server connessioni.

Connections di failover

Il servizio DRDA può funzionare 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 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, l'AR DRDA può usare queste informazioni per connettersi al membro alternativo di una coppia di computer del servizio DRDA. Combinato con SQL Server clustering o mirroring, questa tecnologia può offrire un livello ragionevole di protezione del failover a tolleranza di errore.

Failover Connections

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

Associazione di pacchetti di elaborazione

Il servizio DRDA converte SQL statico per i pacchetti DB2 in stored procedure SQL Server, elaborando le istruzioni DRDA Begin Bind (BGNBND) e Bind SQL Statement (BNDSQLSTT) in istruzioni DROP PROCEDURE e CREATE PROCEDURE SQL Server. Un flusso DRDA BGNBND conterrà uno o più flussi BNDSQLSTT, uno per ogni istruzione SQL archiviata all'interno del pacchetto. Il servizio DRDA esegue il mapping di una sezione del pacchetto SQL statico DRDA (con un'istruzione) a una stored procedure 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à della stored procedure estese facoltative. 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 off-line.

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 come definito dai flussi DRDA BNDSQLSTT.

Associare il pacchetto alla stored procedure

Il servizio DRDA elabora un singolo flusso BGNBND in una stored procedure SQL Server, trasformando le istruzioni originali come definito dai flussi DRDA BNDSQLSTT nella sintassi SQL Server corrispondente.

Istruzione Create Procedure

Il listener di binding 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 del protocollo PKGRPLOPT (Opzione sostituzione pacchetti) nel flusso di protocollo BGNBND (Begin Bind). Il valore predefinito per PKGRPLOPT è PKGRPLALW (Pacchetto sostitutivo consentito). Facoltativamente, è possibile specificare il valore PKGRPLNA (Sostituzione pacchetto non consentito).

Il listener interno del pacchetto interno del servizio DRDA e la maggior parte dei listener personalizzati includerà commenti appena prima del testo dell'istruzione CREATE PROCEDURE, che informa il runtime del servizio DRDA come eseguire le stored procedure.

Set di risultati query

Questo commento indica al servizio DRDA di usare sqlClient DataReader 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 procedura 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 associazione) per l'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 Execute Package

I programmi client DRDA associano un set di pacchetti standard che contengono istruzioni BASIC DECLARE CURSOR, 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 SQL Server. È possibile salvare l'elaborazione e lo spazio di archiviazione di associazione indicando al server DRDA di ignorare questi pacchetti leggendo un file IgnoreStandardPackages.txt contenente un elenco delimitato di valori del nome del pacchetto qualificato.

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

Contenuto del file di IgnoreStandardPackages.txt di stock.

La prima riga del file contiene un set delimitato da schede di due valori che rappresentano intestazioni di colonna. La prima intestazione di colonna è colid (identificatore di 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 standard di Microsoft DRDA Client, indipendentemente dalla raccolta in cui vengono 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 di nome pacchetto iniziale di 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 client IBM DB2 Connect DRDA.

Tipi di dati

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

Mapping dei tipi di dati DB2 a SQL Server

Il servizio DRDA esegue il mapping di DB2 a SQL Server tipi di dati 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 nei dati formattati in valori e formati SQL Server DATETIME2(6) definiti nelle stored procedure e nelle istruzioni SQL dinamiche tramite il provider di dati di Microsoft ADO.NET Framework per le interfacce SQL Server.

Tipo DB2 di origine Tipo di SQL Server di destinazione
TIME TIME
timestamp DATETIME2
DATE DATETIME
CHAR CHAR
CHAR () PER I DATI BIT 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 IMAGE
LONG VARCHAR TEXT
GRAPHIC NCHAR
VARGRAPHIC NVARCHAR
GRAPHIC VARYING NVARCHAR
SMALLINT SMALLINT
INT INT
INTEGER INT
bigint bigint
DECIMAL DECIMAL
NUMERIC DECIMAL
real real
FLOAT FLOAT
DOUBLE FLOAT
DOUBLE PRECISION FLOAT
BLOB IMAGE
BINARY LARGE OBJECT IMAGE
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 ai mapping dei tipi di dati DB2

Il servizio DRDA esegue il mapping di DB2 a SQL Server tipi di dati 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 SQL Server definiti dal provider di dati di Microsoft ADO.NET Framework per SQL Server interfacce 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 INTEGER
REAL real
FLOAT 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
IMAGE LONG VARCHAR
VARIANT VARCHAR(32672) PER I DATI BIT
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)

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 delle impostazioni locali

Il servizio DRDA supporta le codifiche di stringa specifiche delle impostazioni locali.

EBCDIC

Il servizio DRDA supporta i CCSID elencati di seguito (set di caratteri a byte singolo) EBCDIC CCSID 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 - International (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 - Canada (Euro) 37 1140
EBCDIC - U.S./ Canada 37 37
EBCDIC - Regno Unito (Euro) 285 1146
EBCDIC - Regno Unito 285 20285

ANSI

Il servizio DRDA supporta il set di caratteri SBCS (set di caratteri singolo) ANSI CCSID convertito in e da UNICODE 1208.

Nome CCSID Tabella codici NLS
ANSI - Arabic 1256 1256
ANSI - Baltic 1257 1257
ANSI - Central Europe 1250 1250
ANSI - Cyrillic 1251 1251
ANSI - Greek 1253 1253
ANSI - Hebrew 1255 1255
ANSI - Latin 1 1252 1252
ANSI - Turkish 1254 1254
ANSI - Arabic 1256 1256

Prestazioni

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

Autenticazione e crittografia

Authentication

Il servizio DRDA usa microsoft Enterprise Single Sign-On per l'autenticazione del richiedente applicazione DRDA associato (ad esempio, DB2 per z/OS RACF identificatore utente e password) per l'autenticazione del client SQL associato a SQL Server connessione al database (ad esempio, sicurezza integrata con account Windows Active Directory) credenziali utente. In alternativa a ESSO, è possibile configurare MsDrdaService per usare l'autenticazione mappata. L'attributo mappingdAuthenticationDomain dell'MsDrdaService.exe.config indica al servizio DRDA a cui eseguire il mapping delle credenziali client DRDA associate (nome utente e password), quando si esegue la connessione a SQL Server configurata per autenticazione di Windows usando l'interfaccia SSPI (Integrated Security Support Provider Interface), ma non quando si usa Microsoft Enterprise Single Sign-On. Il servizio DRDA memorizza nella cache il token di sicurezza ottenuto da Microsoft Enterprise Single Sign-On e le funzionalità del dominio di autenticazione mappata per una durata configurata di tempo, con cui usare quando ci si connette a SQL Server configurati per autenticazione di Windows uso dell'interfaccia SSPI (Integrated 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 DI ESSO per un periodo di tempo più lungo.

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 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 Network Library=dbmslpcn per indicare al client SQL di connettersi a SQL Server usando la memoria condivisa anziché una connessione di rete TCP/IP. Per ridurre il tempo di avvio della connessione, usare SQL Server pool di connessioni impostando Pooling=true nel stringa di connessione per indicare al client SQL di aggiungere nuove connessioni al pool quando viene chiuso dal servizio DRDA. Per modificare l'impatto sul server locale, impostare dimensioni massime del pool nel stringa di connessione per definire il numero massimo di connessioni che il client SQL deve conservare nel pool di connessioni. Il valore predefinito è 100.To ridurre ulteriormente il tempo di avvio della connessione, usare il pool di connessioni interne MsDrdaService, il mapping delle connessioni client DRDA AR associate e le credenziali di autenticazione a SQL Server connessioni alle banche dati e credenziali out-bound, impostando un attributo connectionCacheSize per definire il numero di client SQL su SQL Server le connessioni computer del servizio DRDA verranno memorizzate nella cache nel pool di connessioni client SQL. 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 a tolleranza di errore. 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 server partner eseguendo un flusso EXCSAT (Exchange Server Attribute) 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 (Execute SQL Statement) e OPNQRY (Open Query) eseguendo un'istruzione SQL Server CALL su una stored procedure SQL Server corrispondente. Prima di eseguire l'istruzione CALL, il servizio DRDA recupererà i metadati per la stored procedure 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, contiene 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 DRDA, 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 di stored procedure non necessario. Per disabilitare la lettura e la scrittura del file di LastInvokePackageProcedures.txt, impostare l'intervallo di tempo su PT0S (periodo di tempo zero secondi).

Sintassi SQL

Il servizio DRDA dispone di un'interfaccia ANSI DB2 limitata per SQL Server trasformatore di sintassi dei comandi T-SQL che usa per i pacchetti di associazione, eseguendo istruzioni SQL statiche e dinamiche. Facoltativamente, il servizio DRDA offre funzioni DB2 compatibili aggiuntive sotto forma di funzioni basate su CLR SQL Server. Per migliorare le prestazioni delle trasformazioni della sintassi SQL, abilitare le funzioni basate su CLR del servizio DRDA. Il servizio DRDA trasforma i pacchetti SQL statici per DB2 in stored procedure SQL Server, quando si elaborano i comandi di associazione e associazione delle istruzioni SQL, incluse 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 di una singola riga 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 SQL Server nel provider ADO.NET per SQL Server oggetto transazione. Per migliorare le prestazioni e ridurre la contesa sugli oggetti di database, lo sviluppatore deve usare la stabilità del cursore a livello di isolamento DB2 mappata a SQL Server livello di isolamento Read Committed.

Formati e conversioni di data e ora

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

Conversioni delle tabelle codici

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

Mapping 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 SQL Server in modo da usare 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) a SQL Server sintassi T-SQL ORDER BY COLLATE (collation_name), eseguendo il mapping da un valore db2 collation-name a un valore SQL Server collation_name, per fornire 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.

Traccia

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 le 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=false per disabilitare lo scaricamento automatico della traccia.

Monitoraggio delle prestazioni

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

Configurazione

Per misurare le prestazioni, il servizio DRDA offre contatori delle prestazioni da usare con Windows Monitor prestazioni. 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. Per altre informazioni su Windows Monitor prestazioni, vedere Anche i contatori delle prestazioni (https://go.microsoft.com/fwlink/?LinkID=119211).

Counters

Il servizio DRDA restituisce i dati a questi contatori Monitor prestazioni.

  1. Sessioni attive

  2. Connections SQL attivo

  3. Transazioni attive

  4. Byte ricevuti

  5. Byte ricevuti/sec

  6. Byte inviati

  7. Byte inviati/sec

  8. Transazioni

  9. Commit delle transazioni

  10. Commit delle transazioni/sec

  11. Rollback delle transazioni

  12. Transazioni/sec

Istanze del servizio DRDA

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