Servicio para DRDA (operaciones)

En las secciones siguientes se proporciona ayuda para el funcionamiento del servicio Microsoft para DRDA (servicio DRDA).

Administración del servicio DRDA

Inicio del servicio DRDA

Puede iniciar el servicio DRDA para que se ejecute como servicio o aplicación de consola.

Servicio de Windows

Con una ventana de comandos, puede iniciar el servicio DRDA para ejecutarse como servicio, en credenciales definidas en la configuración del servicio. Abra un símbolo del sistema, escriba net start msdrdaservice y seleccione Entrar.

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

Aplicación de consola

Con una ventana de comandos, puede ejecutar el servicio DRDA para ejecutarse como una aplicación de consola, en las credenciales de la ventana de comandos.

  1. En un símbolo del sistema, escriba net stop msdrdaservice y presione Entrar.
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. En un símbolo del sistema, escriba msdrdaservice.exe -c y presione Entrar.
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:

El agente de escucha de seguimiento del servicio DRDA generará información en la ventana de la consola. Debe quitar la marca de comentario de la entrada DrdaAsConsoleListener y establecer un traceLevel (es decir, 5) en el archivo MsDrdaServiceConfig.exe.config.

Detener el servicio DRDA

Puede detener el servicio DRDA cuando se ejecuta como servicio o aplicación de consola.

Servicio de Windows

Con una ventana de comandos, puede detener el servicio DRDA cuando se ejecuta como servicio.

  1. En el símbolo del sistema, escriba net stop msdrdaservice y presione Entrar.
C:\Windows\system32>net stop msdrdaservice
The Microsoft Service for DRDA service is stopping.
The Microsoft Service for DRDA service was stopped successfully.

Aplicación de consola

Con una ventana de comandos, puede detener el servicio DRDA cuando se ejecuta como una aplicación de consola.

  • En el símbolo del sistema, escriba CTRL+C.
C:\Windows\system32>

Nota:

El servicio DRDA deja de ejecutarse como una aplicación de consola y aparece el símbolo del sistema.

Conexión de clientes DRDA a bases de datos de SQL Server

El servicio DRDA procesa las solicitudes de cliente DRDA en conexiones a bases de datos locales y remotas de SQL Server. En este tema se describe el funcionamiento de las operaciones de conexión de base de datos MsDrdaService.

Conexiones de cliente

En el inicio del servicio, el servicio DRDA escribirá una entrada informativa en los agentes de escucha de seguimiento internos del servicio DRDA, notificando al profesional de TI del puerto en el que tcp Communication Manager escucha las conexiones cliente del solicitante de aplicaciones DRDA enlazadas.

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

Los clientes solicitantes de aplicaciones DRDA remotos se conectan al servicio DRDA local a través de una conexión de red TCP/IP. El cliente DRDA envía flujos de protocolos y formatos de datos DRDA EXCSAT (Exchange Server Attributes), ACCSEC (Access Security) y ACCRDB (Access Relational Database), a los que responde el servicio DRDA con respuestas del protocolo DRDA.

Autenticación

Para proporcionar autenticación integrada, el servicio DRDA puede combinar validación y asignación de credenciales de entrada mediante Microsoft Enterprise Single Sign-On (ESSO), con autenticación de SQL Server de salida mediante Windows SSPI (interfaz del proveedor de compatibilidad con seguridad). Por ejemplo, el servicio DRDA puede trabajar con ESSO para asignar un nombre de usuario y una contraseña de IBM RACF (Resource Access Control Facility) a un dominio o nombre de usuario de Microsoft Windows Active Directory, con el que conectarse con la seguridad integrada a una base de datos SQL Server remota.

SQL Server Connections

El servicio DRDA se comunica con bases de datos locales o remotas de SQL Server ascendentes mediante el proveedor de ADO.NET Framework para SQL Server. El acceso del cliente SQL subyacente SQL Server a través de una conexión en memoria o a través de una red mediante canalizaciones con nombre o TCP/IP. El cliente SQL admite características opcionales de cifrado y conmutación por error para mejorar la seguridad y la confiabilidad. El servicio DRDA admite características opcionales de inicio de sesión único y agrupación para mejorar la seguridad y el rendimiento. Puede editar el archivo MsDrdaService.exe.config para indicar al servicio DRDA cómo administrar el cliente SQL para SQL Server conexiones.

Connections de conmutación por error

El servicio DRDA puede funcionar en grupos de dos (2) servidores, uno por equipo, para proporcionar tolerancia a errores básica. Cuando un cliente AR de DRDA se conecta a una base de datos de SQL Server, el servicio DRDA devuelve DRDA SRVLST (Server List) con una lista ponderada de instancias del servidor de datos. En el caso de la conmutación por error de un servicio DRDA principal, el AR de DRDA puede usar esta información para conectarse al miembro alternativo de un par de equipos del servicio DRDA. Esta tecnología, combinada con la agrupación en clúster o la creación de reflejo de SQL Server, puede ofrecer un nivel razonable de protección mediante una conmutación por error tolerante a errores.

Conmutación por error Connections

En las ilustraciones anteriores se muestra cómo los clientes DRDA pueden volver a conectarse al servidor asociado del servicio DRDA en escenarios de conmutación por error.

Procesamiento de enlaces de paquetes

El servicio DRDA convierte paquetes estáticos de SQL para DB2 en procedimientos almacenados de SQL Server al procesar los comandos Comenzar enlace (BGNBND) y Enlazar instrucción SQL (BNDSQLSTT) de DRDA en instrucciones DROP PROCEDURE y CREATE PROCEDURE de SQL Server. Un flujo BGNBND de DRDA contendrá uno o varios flujos BNDSQLSTT, uno por instrucción SQL almacenado en el paquete. El servicio DRDA asigna una sección de paquete SQL estático de DRDA (con una instrucción) a una SQL Server procedimiento almacenado. El servicio DRDA asigna o conserva las opciones de enlace del paquete BGNBND en los comentarios dentro de los procedimientos almacenados y las propiedades opcionales del procedimiento almacenado extendido. El servicio DRDA usa un transformador SQL interno para convertir la sintaxis, los parámetros, los tipos de datos, los cursores y los conjuntos de resultados de SQL. Opcionalmente, puede desarrollar un agente de escucha de enlace de paquetes personalizado para procesar los paquetes de forma interactiva con el servicio DRDA o fuera de línea.

Enlazar el paquete al archivo XML

El servicio DRDA puede procesar un único flujo BGNBND en un archivo XML estático de SQL para paquete DB2, conservando las opciones y instrucciones de enlace originales definidas por los flujos BNDSQLSTT de DRDA.

Enlazar el paquete al procedimiento almacenado

El servicio DRDA procesará un único flujo BGNBND en un procedimiento almacenado SQL Server, lo que transformará las instrucciones originales definidas por los flujos BNDSQLSTT de DRDA en la sintaxis SQL Server correspondiente.

Create Procedure (Instrucción)

El agente de escucha de enlace interno del paquete interno del servicio DRDA y la mayoría de los agentes de escucha personalizados incluirán una cláusula IF EXISTS con la instrucción DROP PROCEDURE, en función del valor de PKGRPLOPT (opción de reemplazo de paquetes) en el flujo del protocolo DRDA BGNBND (Begin Bind). El valor predeterminado de PKGRPLOPT es PKGRPLALW (se permite el reemplazo de paquetes). Opcionalmente, se puede especificar el valor PKGRPLNA (reemplazo de paquetes no permitido).

El agente de escucha de enlace interno del paquete interno del servicio DRDA y la mayoría de los agentes de escucha personalizados incluirán comentarios justo antes del texto de la instrucción CREATE PROCEDURE, que informa al entorno de ejecución del servicio DRDA sobre cómo ejecutar los procedimientos almacenados.

Conjunto de resultados de la consulta

Este comentario indica al servicio DRDA que use sqlClient DataReader para devolver los resultados de la instrucción SELECT.

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

Parámetros de salida de consulta

Este comentario indica al servicio DRDA que prepare los parámetros OUTPUT al llamar al procedimiento con el que devolver los datos de la consulta.

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

Cursor con suspensión

Este comentario indica al servicio DRDA que mantenga abiertos los cursores dentro de una transacción.

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

Opciones de enlace

Este comentario conserva el entorno de ejecución DRDA BNDOPT (Opciones de enlace) para su 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> ******/

Omitir los comandos enlazar y ejecutar paquetes

Los programas cliente DRDA enlazarán un conjunto de paquetes estándar que contienen instrucciones DECLARE CURSOR básicas, con las que se define cómo capturar y devolver resultados en instrucciones SELECT y CALL en IBM DB2 para z/OS. El servidor DRDA no necesita convertir estos paquetes en SQL Server procedimientos almacenados. Para guardar el procesamiento de enlaces y el espacio de almacenamiento, indique al servidor DRDA que omita estos paquetes; para ello, lea un archivo IgnoreStandardPackages.txt que contenga una lista delimitada de valores de nombre de paquete completos.

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

Contenido del archivo IgnoreStandardPackages.txt stock.

La primera fila del archivo contiene un conjunto delimitado por tabulaciones de dos valores que representan encabezados de columna. El primer encabezado de columna es el COLID (identificador de colección). El segundo encabezado de columna es el PKGNAM (nombre del paquete). Las filas restantes del archivo contienen un conjunto de valores delimitados por tabulaciones para el identificador de colección y el nombre del paquete.

Un asterisco en lugar de un valor denota cualquier valor. El cliente DRDA de Microsoft ofrece un conjunto de herramientas para definir el conjunto estándar de paquetes en una o varias colecciones definidas por el usuario. En este caso, el carácter comodín indica al servidor DRDA que omita los comandos de enlace y ejecución que hacen referencia a los paquetes estándar del cliente DRDA de Microsoft, independientemente de la colección que se definan.

Un asterisco al final de una cadena denota un valor parcial. Ibm DB2 Connect DRDA Client ofrece un conjunto de herramientas para definir el conjunto estándar de paquetes en una colección NULLID con un valor de nombre de paquete inicial de SYSSH. En este caso, el carácter comodín indica al servidor DRDA que omita los comandos de enlace y ejecución que hacen referencia al conjunto completo de paquetes estándar de IBM DB2 Connect DRDA Client.

Tipo de datos

El servicio DRDA proporciona compatibilidad entre productos y tecnologías de proveedores heterogéneos, proporcionando estas conversiones de plataforma.

Asignaciones de tipos de datos de DB2 a SQL Server

El servicio DRDA asigna DB2 a SQL Server tipos de datos basados en un conjunto definido de asignaciones almacenadas en un archivo Db2ToSql.xml en el directorio %DRDAROOT%\system. Por ejemplo, el servicio DRDA convierte los valores y formatos DE TIMESTAMP de DB2 tal y como se definen en flujos de protocolo DRDA y datos con formato en valores y formatos SQL Server DATETIME2(6), tal como se define en procedimientos almacenados e instrucciones SQL dinámicas a través del proveedor de datos de Microsoft ADO.NET Framework para interfaces de SQL Server.

Tipo db2 de origen Tipo de SQL Server de destino
TIME TIME
timestamp DATETIME2
DATE DATETIME
CHAR CHAR
CHAR () FOR BIT DATA BINARY
CHAR () FOR MIXED DATA NCHAR
CHAR () FOR SBCS DATA CHAR
CHARACTER CHAR
CHARACTER () FOR BIT DATA BINARY
FIXEDBYTE BINARY
CHARACTER () FOR MIXED DATA NCHAR
CHARACTER () FOR SBCS DATA CHAR
NATIONAL CHARACTER NCHAR
VARCHAR VARCHAR
VARCHAR () FOR BIT DATA VARBINARY
VARBYTE VARBINARY
VARCHAR () FOR MIXED DATA NVARCHAR
VARCHAR () FOR SBCS DATA VARCHAR
CHARACTER VARYING VARCHAR
CHARACTER VARYING () FOR BIT DATA VARBINARY
CHARACTER VARYING () FOR MIXED DATA NVARCHAR
CHARACTER VARYING () FOR SBCS DATA VARCHAR
NATIONAL CHARACTER VARYING NVARCHAR
LONG VARCHAR FOR BIT DATA IMAGEN
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 IMAGEN
BINARY LARGE OBJECT IMAGEN
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 a asignaciones de tipos de datos DB2

El servicio DRDA asigna DB2 a SQL Server tipos de datos en función de un conjunto definido de asignaciones almacenadas en un archivo MsSqlToDb2.xml en el directorio %DRDAROOT%\system. Por ejemplo, el servicio DRDA convierte SQL Server valores y formatos MONEY definidos por el proveedor de datos de Microsoft ADO.NET Framework para SQL Server interfaces en formatos y valores DECIMAL de DB2 definidos en flujos de protocolo DRDA y datos con formato.

Tipo de SQL Server de destino Tipo db2 de origen
SMALLINT SMALLINT
INT ENTERO
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
IMAGEN LONG VARCHAR
VARIANT VARCHAR(32672) FOR BIT DATA
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)

Configuración de asignaciones de tipos de datos

El servicio DRDA convierte los tipos de datos base de DB2 a SQL Server y de SQL Server a DB2. Opcionalmente, puede editar estos archivos XML para modificar las asignaciones de tipos de datos base.

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

Codificación de configuración regional

El servicio DRDA admite codificaciones de cadena específicas de la configuración regional.

EBCDIC

El servicio DRDA admite los CCSID de SBCS (juego de caracteres de un solo byte) enumerados a continuación convertidos a y desde UNICODE 1208.

Nombre CCSID Página de códigos NLS
EBCDIC - Árabe 420 20420
EBCDIC - Cirílico (ruso) 880 20880
EBCDIC - Cirílico (serbio, búlgaro) 1025 21025
EBCDIC - Dinamarca/ Noruega (Euro) 277 1142
EBCDIC - Dinamarca/ Noruega 277 20277
EBCDIC - Finlandia/ Suecia (Euro) 278 1143
EBCDIC - Finlandia/ Suecia 278 20278
EBCDIC - Francia (Euro) 297 1147
EBCDIC - Francia 297 20297
EBCDIC - Alemania (Euro) 273 1141
EBCDIC - Alemania 273 20273
EBCDIC - Griego (moderno) 875 875
EBCDIC - Griego 423 20423
EBCDIC - Hebreo 424 20424
EBCDIC - Islandés (Euro) 871 1149
EBCDIC - Islandés 871 20871
EBCDIC - Internacional (Euro) 500 1148
EBCDIC - Internacional 500 500
EBCDIC - Italia (Euro) 280 1144
EBCDIC - Italia 280 20280
EBCDIC - América Latina/España (Euro) 284 1145
EBCDIC - América Latina/España 284 20284
EBCDIC - Multilingüe/ ROECE (Latino-2) 870 870
EBCDIC - Tailandés 838 20838
EBCDIC - Turco (Latino-3) 905 20905
EBCDIC - Turco (Latino-5) 1026 1026
EBCDIC - Ee. UU. / Canadá (Euro) 37 1140
EBCDIC - EE. UU./ Canadá 37 37
EBCDIC - Reino Unido (Euro) 285 1146
EBCDIC - Reino Unido 285 20285

ANSI

El servicio DRDA admite los SBCS (juego de caracteres de bytes únicos) ANSI CCSID convertidos en y desde UNICODE 1208.

Nombre CCSID Página de códigos NLS
ANSI - Árabe 1256 1256
ANSI - Báltico 1257 1257
ANSI - Europa central 1250 1250
ANSI - Cirílico 1251 1251
ANSI - Griego 1253 1253
ANSI - Hebreo 1255 1255
ANSI - Latín I 1252 1252
ANSI - Turco 1254 1254
ANSI - Árabe 1256 1256

Rendimiento

Este tema contiene información que le ayudará a maximizar el rendimiento al usar el servicio DRDA.

Autenticación y cifrado

Autenticación

El servicio DRDA utiliza las credenciales de usuario de Microsoft Enterprise Single Sign-On para autenticar el solicitante de aplicación DRDA enlazado (por ejemplo, DB2 para el identificador de usuario y la contraseña de RACF de z/OS) para SQL Server conexión de base de datos (por ejemplo, seguridad integrada con cuentas de Windows Active Directory). Como alternativa al inicio de sesión único, puede configurar MsDrdaService para usar la autenticación asignada. El atributo mappedAuthenticationDomain del MsDrdaService.exe.config indica al servicio DRDA al que dominio de Microsoft Windows Active Directory asigne las credenciales de cliente DRDA enlazadas (nombre de usuario y contraseña), al conectarse a SQL Server configurado para autenticación de Windows mediante la interfaz integrada del proveedor de soporte técnico de seguridad (SSPI), pero no cuando se usa el inicio de sesión único de Microsoft Enterprise. El servicio DRDA almacenará en caché el token de seguridad obtenido de microsoft Enterprise Single Sign-On y las características de dominio de autenticación asignada durante un tiempo configurado, con el que se usará al conectarse a SQL Server configurado para autenticación de Windows mediante la interfaz integrada del proveedor de compatibilidad de seguridad (SSPI). El atributo securityTokenTimeout indica al servidor DRDA que conserve un token de seguridad durante un período de tiempo, después del cual obtener un nuevo identificador de cliente de Windows (CID). Este atributo opcional acepta un valor de duración. El valor predeterminado es PT8H (el período de tiempo es de 8 horas). Para mejorar el rendimiento, puede ajustar el valor de tiempo de espera del token de seguridad de ESSO durante más tiempo.

Cifrado

El servicio DRDA admite la autenticación y el cifrado de datos mediante tecnologías estándar de cifrado de datos (DES), Capa de sockets seguros (SSL) V3.0 y Seguridad de la capa de transporte (TLS) V1.0. Además, el servicio DRDA solo admite el cifrado de datos mediante el cifrado estándar de cifrado avanzado (AES). Estos mecanismos de cifrado pueden afectar al rendimiento.

Conexión

conexión de SQL Server

El servicio para DRDA se conecta a una base de datos de SQL Server mediante el proveedor de datos de ADO.NET Framework para SQL Server y el cliente de red SQL subyacente. Al conectarse a una instancia de SQL Server local, especifique network Library=dbmslpcn para indicar al cliente SQL que se conecte a SQL Server mediante memoria compartida en lugar de una conexión de red TCP/IP. Para reducir el tiempo de inicio de la conexión, use SQL Server agrupación de conexiones; para ello, establezca Pooling=true en el cadena de conexión para indicar al cliente SQL que agregue las conexiones recién creadas al grupo cuando lo cierre el servicio DRDA. Para ajustar el impacto en el servidor local, establezca el tamaño máximo del grupo en el cadena de conexión para definir el número máximo de conexiones que el cliente SQL debe conservar en el grupo de conexiones. El valor predeterminado es 100.To reducir aún más el tiempo de inicio de la conexión, usar el grupo de conexiones internas msDrdaService, asignar conexiones de cliente DRDA AR enlazadas y credenciales de autenticación a credenciales y SQL Server conexione de base de datos enlazados, estableciendo un atributo connectionCacheSize para definir el número de cliente SQL para SQL Server las conexiones de equipo que el servicio DRDA almacenará en caché en el grupo de conexiones de cliente de SQL. Este atributo opcional acepta un valor entero. El valor predeterminado es 1000.El atributo connectionCacheTimeout indica al servidor DRDA que conserve una conexión agrupada durante un período de tiempo, después de lo cual se obtiene una nueva conexión de cliente SQL. Este atributo opcional acepta un valor de duración. El valor predeterminado es PT8H (el período de tiempo es de 8 horas).

Conmutación por error de conexión

El servicio DRDA puede funcionar dentro de un grupo para proporcionar conmutación por error tolerante a errores. El grupo se define mediante la especificación de un rol de servicio local (principal o secundario), servidores asociados de conmutación por error disponibles y un intervalo de ping para supervisar el estado de los servidores dentro de un grupo. El atributo pingInterval indica al servicio DRDA con qué frecuencia supervisar el estado de los equipos del servidor asociado, ejecutando un flujo EXCSAT (Exchange Server Attribute) y comprobando si hay un EXCSATRD (datos de respuesta de EXCSATRD). Este atributo opcional acepta un valor entero. El valor predeterminado es 10 000 milisegundos (10 segundos).

Compatibilidad de plataformas

Caché de procedimientos de paquete

El servicio DRDA procesará los comandos DRDA EXCSQLSTT (Ejecutar instrucción SQL) y OPNQRY (Open Query) mediante la ejecución de una instrucción CALL SQL Server en un procedimiento almacenado de SQL Server correspondiente. Antes de ejecutar la instrucción CALL, el servicio DRDA capturará metadatos para el procedimiento almacenado SQL Server con el que comprobar el tipo de instrucción (SELECT, INSERT, UPDATE, DELETE), tipo de cursor (WITH HOLD), tipos de datos de parámetros (por ejemplo, CHAR FOR BIT) y otros atributos (por ejemplo, tiene resultados). Después de capturar los metadatos, el servicio DRDA almacenará en caché esta información, incluido el nombre del procedimiento asignado, para un intervalo configurado en una caché de procedimientos de paquete para mejorar el rendimiento cuando se ejecute la siguiente sección de este paquete. El atributo packageProcedureCacheFlush indica al servidor DRDA que vacíe la memoria caché del procedimiento de paquete después de un intervalo de tiempo especificado. Este atributo opcional acepta un valor de duración. El valor predeterminado es P1D (el período de tiempo es 1 día). El atributo packageProcedureLastInvoke indica al servidor DRDA que escriba los nombres de los objetos en la memoria caché del procedimiento de paquete en un archivo de texto, %DRDAROOT%\LastInvokePackageProcedures.txt, después de un intervalo de tiempo especificado. Este atributo opcional acepta un valor de duración. El valor predeterminado es P7D (el período de tiempo es 7 días). Al iniciar el servicio, el servicio DRDA cargará este archivo de texto para capturar previamente el esquema de los procedimientos enumerados en el archivo. Para mejorar el rendimiento del inicio del servicio, puede editar este archivo y quitar los nombres de procedimientos almacenados innecesarios. Para deshabilitar la lectura y escritura del archivo LastInvokePackageProcedures.txt, establezca el intervalo de tiempo en PT0S (Período de tiempo cero segundos).

Sintaxis SQL

El servicio DRDA tiene un transformador limitado de sintaxis de comandos T-SQL de ANSI a SQL Server para DB2 y lo utiliza para enlazar paquetes, ejecutando instrucciones de SQL estáticas y dinámicas. Opcionalmente, el servicio DRDA ofrece otras funciones de DB2 compatibles en forma de funciones de SQL Server basadas en CLR. Para mejorar el rendimiento de las transformaciones de sintaxis sql, habilite las funciones basadas en CLR del servicio DRDA. El servicio DRDA transforma sql estático para paquetes DB2 en SQL Server procedimientos almacenados, al procesar los comandos DRDA begin bind y bind SQL statements, incluidas las instrucciones SQL DECLARE CURSOR insertadas. Para mejorar el rendimiento, el servicio DRDA devuelve varias filas por captura siempre que sea posible, a menos que el paquete o el cursor se defina para que la captura de una sola fila admita la actualización simultánea. Al definir instrucciones SELECT para obtener un rendimiento de lectura óptimo, el desarrollador debe incluir una cláusula FOR FETCH ONLY o FOR READ ONLY.

Nivel de aislamiento

El servicio DRDA asigna el nivel de aislamiento de IBM DB2 en DRDA EXCSQLSTT (Ejecutar instrucción SQL) al nivel de transacción de SQL Server en el proveedor de ADO.NET para SQL Server objeto de transacción. Para mejorar el rendimiento y reducir la contención en objetos de base de datos, el desarrollador debe usar la estabilidad del cursor de nivel de aislamiento DB2 (CS) que se asigna a SQL Server nivel de aislamiento Read Committed.

Formatos y conversiones de fecha y hora

El servicio DRDA dará formato a los valores de fecha y hora literales de cadena de origen y destino al procesar instrucciones SQL dinámicas y estáticas, para tipos de datos de fecha y hora específicos y caracteres. El elemento conversionFormats contiene dateMasks, timeMasks y dateTimeMasks para convertir a y desde db2 y SQL Server formatos datetime, e indica al servicio DRDA cuándo realizar estas transformaciones. El análisis, la codificación y la descodificación de cadenas hacia y desde los valores con formato de fecha y hora consumirán recursos adicionales del servicio DRDA.

Conversiones de páginas de códigos

El servicio DRDA asigna páginas de códigos y admite conversiones de páginas de códigos personalizadas mediante un componente subyacente de HIS Encoder y los componentes del sistema windows National Language Support (NLS). Opcionalmente, el servicio DRDA puede convertir puntos de código individuales para admitir páginas de códigos personalizadas. El servidor DRDA consumirá recursos adicionales al admitir la conversión de página de códigos personalizada.

Asignaciones de intercalación

SQL Server puede intercalar los resultados de la consulta en un orden diferente al esperado por el programa cliente DRDA. Por ejemplo, un profesional de TI puede configurar una base de datos de SQL Server para usar una intercalación ANSI y una base de datos DB2 para z/OS para usar la intercalación EBCDIC. El servicio DRDA puede transformar una instrucción SELECT de DB2 ORDER BY COLLATION_KEY sintaxis (nombre de intercalación) a SQL Server sintaxis T-SQL ORDER BY COLLATE (collation_name), asignación de un valor de nombre de intercalación DB2 a un valor de SQL Server collation_name, para proporcionar resultados de consulta más compatibles. El servicio DRDA puede agregar una cláusula COLLATE a una cláusula ORDER BY, en función de un nombre de intercalación ORDER BY predeterminado. El análisis del servicio DRDA y la sustitución o adición de la sintaxis SQL consumirán recursos adicionales.

Seguimiento

El servicio DRDA admite un conjunto de agentes de escucha compartidos para registrar información en texto, consola, registro de eventos y componente personalizado. El elemento system.diagnostics de la sección hostIntegration.drdaAs.drdaService del archivo MsDrdaService.exe.config define y controla los distintos agentes de escucha. El atributo traceLevel indica al servicio DRDA que realice un seguimiento de colecciones de información definidas, de un nivel mínimo a máximo de seguimiento. Este atributo opcional acepta un valor entero. El valor predeterminado es 0, que deshabilita el seguimiento. El servicio DRDA puede vaciar los datos de seguimiento automáticamente en los agentes de escucha de seguimiento, lo que garantiza que se capturan los datos de seguimiento, pero aumentará la E/S del disco y reducirá el rendimiento general del sistema. Para mejorar el rendimiento, establezca autoFlush=false a fin de deshabilitar el vaciado automático del seguimiento.

Monitor de rendimiento

Para medir el rendimiento, el servicio DRDA ofrece contadores de rendimiento. Los contadores de rendimiento del servicio DRDA capturan información sobre conexiones abiertas, instrucciones abiertas, paquetes y bytes enviados o recibidos, tiempo medio de procesamiento, ejecuciones de comandos, capturas de datos y confirmaciones o reversiones de transacciones.

Configuración

Para medir el rendimiento, el servicio DRDA ofrece contadores de rendimiento para su uso con Windows Monitor de rendimiento. El atributo peformanceCountersOn indica al servicio DRDA que recopile información en los contadores de rendimiento. Este atributo opcional acepta un valor booleano. El valor predeterminado es false. Para obtener más información, consulte la sección sobre rendimiento. Además, para obtener más información sobre windows Monitor de rendimiento, vea Contadores de rendimiento (https://go.microsoft.com/fwlink/?LinkID=119211).

Counters

El servicio DRDA envía datos a estos contadores de Monitor de rendimiento.

  1. Sesiones activas

  2. Active SQL Connections

  3. Transacciones activas

  4. Bytes recibidos

  5. Bytes recibidos por segundo

  6. Bytes enviados

  7. Bytes enviados por segundo

  8. Transacciones

  9. Confirmaciones de transacciones

  10. Confirmaciones de transacciones/s

  11. Reversión de transacciones

  12. Transacciones/seg.

Instancias del servicio DRDA

El servicio DRDA ofrece Monitor de rendimiento contadores por servicio o por conexión "instancia", donde una "instancia" puede ser un proceso o una sesión.