Servizio per DRDA (operazioni)

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

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.

  1. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft Visual Studio 2010, Strumenti di Visual Studio, fare clic con il pulsante destro del mouse su Prompt dei comandi di Visual Studio per piattaforme Win64 con processore x64 (2010), quindi scegliere Esegui come amministratore. Verrà visualizzata la finestra di dialogo Controllo account utente. Fare clic su Sì per continuare.

  2. Dal prompt dei comandi immettere net start msdrdaservice e premere 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. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft Visual Studio 2010, Strumenti di Visual Studio, fare clic con il pulsante destro del mouse su Prompt dei comandi di Visual Studio per piattaforme Win64 con processore x64 (2010), quindi scegliere Esegui come amministratore. Verrà visualizzata la finestra di dialogo Controllo account utente. Fare clic su Sì per continuare.

  2. Dal prompt dei comandi immettere cd C:\Windows\system32cd> C:\Programmi\Microsoft Host Integration Server 2013\system e premere INVIO.

    C:\Program Files\Microsoft Host Integration Server 2013\system>MsDrdaService.exe -c
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>msdrdaservice -c
    Information:0:0:[Oct 10 2012 16:46:11.581] Microsoft Service for DRDA (build: 9.0.1651.0 )
    Information:0:0:[Oct 10 2012 16:46:11.597] TCP communication manager listening on port 446
    

Nota

Il listener di traccia del servizio DRDA restituirà informazioni nella finestra della console.

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. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft Visual Studio 2010, Strumenti di Visual Studio, fare clic con il pulsante destro del mouse su Prompt dei comandi di Visual Studio per piattaforme Win64 con processore x64 (2010), quindi scegliere Esegui come amministratore. Verrà visualizzata la finestra di dialogo Controllo account utente. Fare clic su Sì per continuare.

  2. 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 di comando, è 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 interrompe 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 del 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 DRDA, il servizio DRDA scriverà una voce informativa nei listener di traccia del servizio DRDA interno, notificando al professionista IT la porta su cui GESTIONE comunicazioni TCP è in ascolto per le connessioni client del richiedente dell'applicazione DRDA associate.

Information:0:0:[Oct 10 2012 17:00:34.547] 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 del protocollo DRDA.

Authentication

Per fornire l'autenticazione integrata, il servizio DRDA può combinare la convalida e il mapping delle credenziali associate usando Microsoft Enterprise Single Sign-On (ESSO), con l'autenticazione SQL Server out-bound usando Windows SSPI (Security Support Provider Interface). Ad esempio, il servizio DRDA può essere usato con ESSO per eseguire il mapping di un nome utente e una password IBM RACF (Resource Controllo di accesso 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 ADO.NET Framework per SQL Server. L'accesso client SQL sottostante SQL Server tramite una connessione in memoria o in una rete tramite 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 per SQL Server connessioni.

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 SQL Server, il servizio DRDA restituisce un DRDA SRVLST (Elenco server) con un elenco ponderato di istanze del server dati. In caso di failover di un servizio DRDA primario, il DRDA AR può usare queste informazioni per connettersi al membro alternativo di una coppia di computer del servizio DRDA. In combinazione 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.

Binding di pacchetti di elaborazione

Il servizio DRDA converte i SQL statici per i pacchetti DB2 in stored procedure SQL Server, elaborando 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 statica DRDA (con un'istruzione) a una SQL Server stored procedure. 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 della stored procedure estesa. Il servizio DRDA usa un trasformatore SQL interno per convertire SQL sintassi dei comandi, parametri, tipi di dati, cursori e 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 SQL statico per il file XML del pacchetto DB2, mantenendo le opzioni e le istruzioni di associazione originali definite 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 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 dell'opzione PKGRPLOPT (Package Replacement Option) nel flusso del protocollo DRDA BGNBND (Begin Bind). Il valore predefinito per PKGRPLOPT è PKGRPLALW (Package Replacement Allowed). Facoltativamente, è possibile specificare il valore PKGRPLNA (Sostituzione pacchetto non consentito).

Il listener di associazione del pacchetto interno del servizio DRDA e la maggior parte dei listener personalizzati includerà commenti appena prima del testo dell'istruzione CREATE PROCEDURE, che informano il 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 associazione) 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> ******/

Ignora comandi Bind ed Execute Package

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 in IBM DB2 per z/OS. Il server DRDA non deve convertire questi pacchetti in stored procedure SQL Server. È possibile risparmiare spazio di elaborazione e archiviazione del binding indicando al server DRDA di ignorare questi pacchetti leggendo un file di IgnoreStandardPackages.txt contenente un elenco delimitato di valori di nome del pacchetto qualificato.

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

Contenuto del file di IgnoreStandardPackages.txt azionario.

La prima riga del file contiene un set delimitato da tabulazioni di due valori che rappresentano le intestazioni di colonna. La prima intestazione di colonna è COLID (Identificatore 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 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 Connessione 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 Connessione DRDA Client.

Tipi di dati

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

Mapping dei tipi di dati da 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 SQL Server in valori e formati DATETIME2(6) definiti nelle stored procedure e nelle istruzioni SQL dinamiche tramite l'provider di dati Framework di Microsoft ADO.NET Framework per le interfacce di 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 da Microsoft ADO.NET Framework provider di dati per le interfacce SQL Server in valori e formati DECIMALi DB2 definiti nei flussi del 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 - 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 - Canada degli Stati Uniti (Euro) 37 1140
EBCDIC - Canada degli Stati Uniti 37 37
EBCDIC - Regno Unito (Euro) 285 1146
EBCDIC - Regno Unito 285 20285

ANSI

Il servizio DRDA supporta i CCSID ANSID (set di caratteri a byte singolo) elencati di seguito 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 user identifier and password) delle credenziali utente per SQL client out-bound per SQL Server connessione al database (ad esempio, sicurezza integrata con account di Active Directory Windows). 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 cui Microsoft Windows dominio Active Directory di eseguire il mapping delle credenziali client DRDA associate (nome utente e password), quando ci si connette a SQL Server configurati per autenticazione di Windows tramite 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 da Microsoft Enterprise single Sign-On e le funzionalità del dominio di autenticazione mappata per un periodo di tempo configurato, con cui usare per la connessione a SQL Server configurate per autenticazione di Windows uso di SSPI (Security Support Provider Interface) integrato. 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 di Windows. 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 la 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 di ADO.NET Framework per SQL Server e il client di rete sottostante SQL. Quando ci si connette a un'istanza di SQL Server locale, specificare Network Library=dbmslpcn per indicare al client di 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 nella stringa di connessione per indicare al client di SQL di aggiungere nuove connessioni al pool quando viene chiuso dal servizio DRDA. Per modificare l'impatto sul server locale, impostare Dimensioni massime pool nella 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 per le connessioni al database out-bound SQL Server e le credenziali, impostando un attributo connectionCacheSize per definire il numero di SQL client per SQL Server connessioni al computer che il servizio DRDA memorizza nella cache SQL pool di connessioni 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 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 ha un'interfaccia ANSI DB2 limitata per SQL Server trasformatore di sintassi dei comandi T-SQL che utilizza 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 di SQL, abilitare le funzioni basate su CLR del servizio DRDA. Il servizio DRDA trasforma i SQL statici per i pacchetti DB2 in stored procedure SQL Server, quando si elaborano le istruzioni DRDA avviano l'associazione e associano istruzioni SQL, incluse le istruzioni DECLARE CURSOR incorporate SQL. 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 sul provider di 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 formatterà i valori di data e ora letterale stringa dall'origine e nei formati di destinazione durante l'elaborazione di istruzioni SQL dinamiche e statiche, per tipi di dati di 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 codificatore HIS sottostante e i componenti di sistema Windows NLS (National Language Support). 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 e la sostituzione o l'aggiunta di SQL sintassi del servizio DRDA 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. 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. 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.