Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En las secciones siguientes se proporciona ayuda para el funcionamiento del servicio de 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 que se ejecute como servicio, en las credenciales definidas en la configuración del servicio. Abra una consola de comandos, escriba net start msdrdaservice y presione Enter.
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 que se ejecute como una aplicación de consola, en las credenciales de la ventana de comandos.
- En una ventana de comandos, 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.
- En una línea de comandos, 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.
Cese del 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.
- Desde la terminal, escriba net stop msdrdaservice y pulse 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.
- Desde el indicador de comandos, presione 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 sobre el puerto en el que el Gestor de Comunicaciones TCP está escuchando las conexiones entrantes de los clientes solicitantes de aplicaciones DRDA.
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 (Atributos de Exchange Server), ACCSEC (Seguridad de acceso) 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 integrar la validación y asignación de credenciales entrantes mediante Microsoft Enterprise Single Sign-On (ESSO), con la autenticación SQL Server saliente usando Windows SSPI (interfaz del proveedor de soporte de 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\nombre de usuario de Microsoft Windows Active Directory, con el que conectarse con seguridad integrada a una base de datos remota de SQL Server.
Conexiones de SQL Server
El servicio DRDA se comunica con las bases de datos locales o remotas superiores de SQL Server mediante el proveedor de ADO.NET Framework para SQL Server. El cliente SQL subyacente accede a 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 a las conexiones de SQL Server.
Conexiones 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 un SRVLST (lista de servidores) de DRDA con una lista ponderada de instancias de Data Server. En caso de una conmutación por error del servicio DRDA principal, la AR de DRDA puede usar esta información para conectarse al miembro alternativo de un par de computadoras del servicio DRDA. En combinación con clústeres o espejado de SQL Server, esta tecnología puede ofrecer un nivel razonable de protección tolerante a fallas ante conmutaciones por error.
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 vinculaciones de paquetes
El servicio DRDA convertirá SQL estático para paquetes DB2 en procedimientos almacenados de SQL Server, mediante el procesamiento de comandos DRDA Begin Bind (BGNBND) y Bind SQL Statement (BNDSQLSTT) 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 un procedimiento almacenado de SQL Server. El servicio DRDA asigna o preserva las opciones de enlace del paquete BGNBND en los comentarios dentro de los procedimientos almacenados, así como en las propiedades opcionales de los procedimientos almacenados extendidos. El servicio DRDA usa un transformador SQL interno para convertir la sintaxis de comandos SQL, los parámetros, los tipos de datos, los cursores y los conjuntos de resultados. 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 paquete a un archivo XML
El servicio DRDA puede procesar un único flujo BGNBND en un archivo XML estático de SQL para paquete DB2, conservando las instrucciones y opciones 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 de SQL Server, lo que transformará las instrucciones originales definidas por los flujos BNDSQLSTT de DRDA en la sintaxis de SQL Server correspondiente.
Declaración de Creación de Procedimiento
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, según el valor de PKGRPLOPT (opción de reemplazo de paquetes) en el flujo de protocolo DRDA BGNBND (Begin Bind). El valor predeterminado de PKGRPLOPT es PKGRPLALW (reemplazo de paquete permitido). Opcionalmente, se puede especificar el valor PKGRPLNA (reemplazo de paquetes no permitido).
El agente de escucha 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 tiempo de ejecución del servicio DRDA cómo ejecutar los procedimientos almacenados.
Conjunto de resultados de consultas
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 retención
Este comentario indica al servicio DRDA que mantenga los cursores abiertos dentro de una transacción.
/****** CURSOR WITH HOLD ******/
Opciones de vinculación
Este comentario conserva el tiempo de ejecución DRDA BNDOPT (Bind Options) 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 Bind y Execute Package
Los programas cliente DRDA enlazarán un conjunto de paquetes estándar que contienen instrucciones DECLARE CURSOR básicas, con las que definir 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 procedimientos almacenados de SQL Server. 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 de stock IgnoreStandardPackages.txt.
La primera fila del archivo contiene dos valores separados por tabulaciones que representan los encabezados de las columnas. 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 recopilación que definan los paquetes.
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 del cliente DRDA de IBM DB2 Connect.
Tipos 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 tipos de datos de SQL Server según un conjunto definido de mapas almacenados en un archivo de Db2ToSql.xml en el directorio \system de %DRDAROOT%. Por ejemplo, el servicio DRDA convierte los valores y formatos TIMESTAMP de DB2 según se definen en los flujos de protocolo DRDA y los datos formateados a valores y formatos DATETIME2(6) de SQL Server según se definen en procedimientos almacenados e instrucciones SQL dinámicas a través de las interfaces del proveedor de datos de Microsoft ADO.NET Framework para SQL Server.
| Tipo DB2 de origen | Tipo de SQL Server de destino |
|---|---|
| TIEMPO | TIEMPO |
| TIMESTAMP | FECHA Y HORA 2 |
| FECHA | FechaHora |
| (No change needed due to lack of context) | (No change needed due to lack of context) |
| CHAR () PARA DATOS BINARIOS | BINARIO |
| CHAR () PARA DATOS MIXTOS | NCHAR |
| CHAR () PARA DATOS SBCS | (No change needed due to lack of context) |
| CARÁCTER | (No change needed due to lack of context) |
| CARÁCTER () PARA DATOS BINARIOS | BINARIO |
| FIXEDBYTE | BINARIO |
| CARÁCTER () PARA DATOS MIXTOS | NCHAR |
| CARÁCTER () PARA DATOS DE SBCS | (No change needed due to lack of context) |
| CARÁCTER NACIONAL | NCHAR |
| VARCHAR | VARCHAR |
| VARCHAR () PARA DATOS DE BITS | VARBINARY |
| VARBYTE | VARBINARY |
| VARCHAR () PARA DATOS MIXTOS | NVARCHAR |
| VARCHAR () PARA DATOS SBCS | VARCHAR |
| CARÁCTER VARIABLE | VARCHAR |
| CARÁCTER VARIABLE () PARA DATOS BINARIOS | VARBINARY |
| CARÁCTER VARIABLE () PARA DATOS MIXTOS | NVARCHAR |
| CARÁCTER VARIABLE () PARA DATOS SBCS | VARCHAR |
| CARÁCTER NACIONAL VARIABLE | NVARCHAR |
| VARCHAR LARGO PARA DATOS DE BITS | IMAGEN |
| LONG VARCHAR | Mensaje de texto |
| GRÁFICO | NCHAR |
| VARGRAPHIC | NVARCHAR |
| GRÁFICO CAMBIANTE | NVARCHAR |
| SMALLINT | SMALLINT |
| INT | INT |
| ENTERO | INT |
| BIGINT | BIGINT |
| DECIMAL | DECIMAL |
| NUMÉRICO | DECIMAL |
| REAL | REAL |
| FLOTAR | FLOTAR |
| DOBLE | FLOTAR |
| PRECISIÓN DOBLE | FLOTAR |
| BLOB | IMAGEN |
| OBJETO BINARIO GRANDE | IMAGEN |
| CLOB | Mensaje de texto |
| CLOB () PARA DATOS MIXTOS | NTEXT |
| CLOB () PARA DATOS DE SBCS | Mensaje de texto |
| CHAR LARGE (OBJETO) | Mensaje de texto |
| OBJETO LARGE CHAR () PARA DATOS MEZCLADOS | NTEXT |
| Objeto grande de caracteres () para datos SBCS | Mensaje de texto |
| CARÁCTER GRANDE (OBJETO) | Mensaje de texto |
| OBJETO DE CARACTERES GRANDES () PARA DATOS MIXTOS | NTEXT |
| OBJETO DE CARACTERES GRANDES () PARA DATOS SBCS | Mensaje de texto |
Asignaciones de tipos de datos de SQL Server a DB2
El servicio DRDA asigna DB2 a tipos de datos de SQL Server según un conjunto definido de mapas almacenados en un archivo de MsSqlToDb2.xml en el directorio \system de %DRDAROOT%. Por ejemplo, el servicio DRDA convierte los valores y formatos MONEY de SQL Server definidos por el proveedor de datos de Microsoft ADO.NET Framework para las interfaces de SQL Server en valores DECIMAL y formatos DB2 tal como se definen en los flujos de protocolo DRDA y los datos con formato.
| Tipo de SQL Server de destino | Tipo DB2 de origen |
|---|---|
| SMALLINT | SMALLINT |
| INT | ENTERO |
| REAL | REAL |
| FLOTAR | DOBLE |
| SMALLMONEY | DECIMAL(10,4) |
| DINERO | DECIMAL(19,4) |
| BIT | SMALLINT |
| TINYINT | SMALLINT |
| BIGINT | BIGINT |
| IDENTIFICADOR ÚNICO | CHAR(38) |
| VARBINARY | VARBYTE |
| TIMESTAMP | TIMESTAMP |
| BINARIO | FIXEDBYTE |
| XML | LONG VARCHAR |
| IMAGEN | LONG VARCHAR |
| VARIANTE | VARCHAR(32672) FOR BIT DATA |
| Mensaje de texto | LONG VARCHAR |
| CARBÓN | CARBÓN |
| VARCHAR | VARCHAR |
| NCHAR | (No change needed due to lack of context) |
| NVARCHAR | VARCHAR |
| NTEXT | LONG VARCHAR |
| DECIMAL | DECIMAL |
| NUMÉRICO | DECIMAL |
| FechaHora | TIMESTAMP |
| DATETIMEOFFSET | TIMESTAMP |
| FECHA | FECHA |
| TIEMPO | TIEMPO |
| SMALLDATETIME | TIMESTAMP |
| SYSNAME | VARGRAPHIC(128) |
Configuración de mapeo 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 regional
El servicio DRDA admite codificaciones de cadena específicas de la localización.
EBCDIC
El servicio DRDA admite los CCSID de SBCS (juego de caracteres de un solo byte) enumerados anteriormente 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 (Latin-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 (Instituto Nacional Estadounidense de Estándares)
El servicio DRDA admite los SBCS (juego de caracteres de bytes únicos) CCSIDs de ANSI convertidos de y a UNICODE 1208.
| Nombre | CCSID | Página de códigos NLS |
|---|---|---|
| ANSI - Árabe | 1256 | 1256 |
| ANSI - Báltico | 1257 | 1257 |
| ANSI - Centro de Europa | 1250 | 1250 |
| ANSI : cirílico | 1251 | 1251 |
| ANSI - Griego | 1253 | 1253 |
| ANSI - Hebreo | 1255 | 1255 |
| ANSI - Latino I | 1252 | 1252 |
| ANSI - Turco | 1254 | 1254 |
| ANSI - Árabe | 1256 | 1256 |
Rendimiento
Este tema contiene información que le ayudará a maximizar el rendimiento cuando use 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 aplicaciones DRDA enlazados (por ejemplo, DB2 para z/OS RACF identificador de usuario y contraseña) para las credenciales de usuario del cliente SQL a la conexión de base de datos de SQL Server (por ejemplo, seguridad integrada con cuentas de Windows Active Directory). Como alternativa a ESSO, puede configurar MsDrdaService para usar la autenticación asignada. El atributo mappedAuthenticationDomain del MsDrdaService.exe.config instruye al servicio DRDA a qué dominio del Active Directory de Microsoft Windows debe mapear las credenciales del cliente DRDA entrantes (nombre de usuario y contraseña) al conectarse a SQL Server configurado para la autenticación de Windows mediante la Interfaz de Proveedor de Soporte de Seguridad (SSPI), pero no cuando se utiliza la autenticación de 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 asignadas por un tiempo configurado, para usarlo al conectarse a SQL Server configurado para la autenticación de Windows mediante la interfaz integrada del proveedor de soporte técnico de seguridad (SSPI). El atributo securityTokenTimeout indica al Servicio DRDA que conserve un token de seguridad durante un período de tiempo, después de lo cual se obtendrá 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.
Encriptación
El servicio DRDA admite la autenticación y el cifrado de datos proporcionados por el proveedor 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 local de SQL Server, especifique la biblioteca de red=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 la agrupación de conexiones de SQL Server estableciendo Pooling=true en la 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 la 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. Para reducir aún más el tiempo de inicio de la conexión, utiliza el grupo de conexiones internas MsDrdaService. Mapea las conexiones de cliente AR de DRDA entrantes y las credenciales de autenticación con las conexiones y credenciales salientes de la base de datos de SQL Server. Esto se logra estableciendo un atributo connectionCacheSize para definir el número de conexiones de cliente SQL al servidor SQL que el servicio DRDA almacenará en caché en el grupo de conexiones del cliente 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 obtener 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 fallos. El grupo se define especificando 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 debe supervisar el estado de los equipos de los servidores asociados, ejecutando un flujo EXCSAT (Atributo de Servidor de Exchange) y verificando los datos de respuesta EXCSATRD (Datos de Respuesta a Atributos del Servidor de Exchange). Este atributo opcional acepta un valor entero. El valor predeterminado es 10 000 milisegundos (10 segundos).
Compatibilidad de plataformas
Caché de procedimientos del paquete
El servicio DRDA procesará los comandos DRDA EXCSQLSTT (Execute SQL Statement) y OPNQRY (Open Query) mediante la ejecución de una instrucción CALL de 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 de SQL Server con el que comprobar el tipo de instrucción (SELECT, INSERT, UPDATE, DELETE), el tipo de cursor (WITH HOLD), los tipos de datos de parámetro (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 esta sección de 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 cuenta con un transformador de sintaxis de comandos de DB2 ANSI a T-SQL de SQL Server limitado, que utiliza para enlazar paquetes y ejecutar instrucciones SQL estáticas y dinámicas. Opcionalmente, el servicio DRDA ofrece funciones DB2 compatibles adicionales en forma de funciones basadas en CLR de SQL Server. Para mejorar el rendimiento de las transformaciones de sintaxis de SQL, habilite las funciones basadas en CLR del servicio DRDA. El servicio DRDA transforma el SQL estático de los paquetes para DB2 en procedimientos almacenados de SQL Server al procesar los comandos de inicio de enlace y las instrucciones SQL de enlace, incluidas las declaraciones incrustadas de SQL DECLARE CURSOR. 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 fila única 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 la Sentencia SQL de ejecución (EXCSQLSTT) de DRDA al nivel de transacción de SQL Server en el objeto de transacción del Proveedor de ADO.NET para SQL Server. Para mejorar el rendimiento y reducir la contención en los objetos de las bases de datos, el desarrollador debe utilizar el nivel de estabilidad del cursor (CS) de DB2, que corresponde al nivel de aislamiento Read Committed de SQL Server.
Formatos y conversiones de fecha y hora
El servicio DRDA formateará los valores literales de fecha y hora de la cadena desde el origen y los convertirá a los formatos de destino al procesar instrucciones SQL dinámicas y estáticas, para tipos específicos de datos de fecha y hora y de caracteres. El elemento conversionFormats contiene dateMasks, timeMasks y dateTimeMasks para convertir a y desde formatos datetime de DB2 y SQL Server, 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ágina de código
El servicio DRDA mapea páginas de códigos y admite conversiones personalizadas de las mismas mediante un componente subyacente denominado "HIS Encoder" y los componentes del sistema de Soporte para los Idiomas Nacionales de Windows (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 la sintaxis ORDER BY COLLATION_KEY (nombre de intercalación) de DB2 a la de ORDER BY COLLATE (collation_name) de SQL Server T-SQL, realizando un mapeo de un valor de nombre de intercalación DB2 a un valor de collation_name de SQL Server, para ofrecer resultados de consulta más compatibles. El servicio DRDA puede agregar una cláusula COLLATE a una cláusula ORDER BY, con base en 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.
Rastreo
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 haga un seguimiento de las colecciones de información definidas, de un nivel mínimo a un nivel máximo de seguimiento. Este atributo opcional acepta un valor entero. El valor predeterminado es 0, lo que deshabilita el rastreo. El servicio DRDA puede descargar automáticamente los datos de rastreo a los oyentes de rastreo, lo que garantiza que se capturen los datos de rastreo pero aumentará la E/S de disco y reducirá el rendimiento general del sistema. Para mejorar el rendimiento, establezca autoFlush=false, deshabilitando así 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 el Monitor de rendimiento de Windows. El atributo peformanceCountersOn indica al servicio DRDA que recopile información en 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 el Monitor de rendimiento de Windows, consulta Contadores de rendimiento (https://go.microsoft.com/fwlink/?LinkID=119211).
Contadores
El servicio DRDA genera datos a estos Contadores del Monitor de Rendimiento.
Sesiones activas
Conexiones SQL activas
Transacciones activas
Bytes recibidos
Bytes recibidos por segundo
Bytes enviados
Bytes enviados por segundo
Transacciones
Confirmaciones de transacciones
Transacciones confirmadas por segundo
Reversiones de transacciones
Transacciones/seg.
Instancias del servicio DRDA
El servicio DRDA ofrece contadores de monitor de rendimiento por servicio o por conexión "instancia", donde una "instancia" puede ser un proceso o una sesión.