

# Habilitación de MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Enabling"></a>

Ejecute el siguiente proceso para habilitar MSDTC para su instancia de base de datos:

1. Cree un nuevo grupo de opciones o elija un grupo de opciones ya existente.

1. Añada la opción `MSDTC` al grupo de opciones.

1. Cree un nuevo grupo de parámetros o elija un grupo de parámetros existente.

1. Modifique el grupo de parámetros para establecer el parámetro `in-doubt xact resolution` en 1 o 2.

1. Asocie el grupo de opciones y el grupo de parámetros a la instancia de base de datos.

## Creación del grupo de opciones para MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.OptionGroup"></a>

Utilice la Consola de administración de AWS o la AWS CLI para crear un grupo de opciones que corresponda al motor de SQL Server y la versión de su instancia de base de datos.

**nota**  
También puede utilizar un grupo de opciones ya existente si es para el motor y la versión correctos de SQL Server.

### Consola
<a name="OptionGroup.MSDTC.Console"></a>

El siguiente procedimiento crea un grupo de opciones para SQL Server Standard Edition 2016.

**Para crear el grupo de opciones**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija **Create group**.

1. En el panel **Create option group (Crear grupo de opciones)**, haga lo siguiente:

   1. En **Nombre**, escriba un nombre para el grupo de opciones que sea exclusivo dentro de su cuenta de AWS, como **msdtc-se-2016**. El nombre solo puede contener letras, dígitos y guiones.

   1. En **Descripción**, escriba una breve descripción del grupo de opciones, como **MSDTC option group for SQL Server SE 2016**. La descripción se utiliza para fines de visualización. 

   1. Para **Engine (Motor)**, elija **sqlserver-se**.

   1. En **Versión principal del motor**, elija **13.00**.

1. Elija **Create** (Crear).

### CLI
<a name="OptionGroup.MSDTC.CLI"></a>

En el siguiente ejemplo se crea un grupo de opciones para SQL Server Standard Edition 2016.

**Para crear el grupo de opciones**
+ Utilice uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o:Unix

  ```
  aws rds create-option-group \
      --option-group-name msdtc-se-2016 \
      --engine-name sqlserver-se \
      --major-engine-version 13.00 \
      --option-group-description "MSDTC option group for SQL Server SE 2016"
  ```

  En:Windows

  ```
  aws rds create-option-group ^
      --option-group-name msdtc-se-2016 ^
      --engine-name sqlserver-se ^
      --major-engine-version 13.00 ^
      --option-group-description "MSDTC option group for SQL Server SE 2016"
  ```

## Agregar la opción de MSDTC al grupo de opciones
<a name="Appendix.SQLServer.Options.MSDTC.Add"></a>

A continuación, utilice la Consola de administración de AWS o la AWS CLI para agregar la opción `MSDTC` al grupo de opciones.

Se requieren los siguientes ajustes de opciones:
+ **Puerto**: el puerto que utilice para acceder a MSDTC. Los valores permitidos son 1150–49.151 excepto 1234, 1434, 3260, 3343, 3389 y 47.001. El valor predeterminado es 5000.

  Asegúrese de que el puerto que desea utilizar está habilitado en las reglas de firewall. Además, asegúrese de que este puerto esté habilitado, según sea necesario, en las reglas de entrada y salida del grupo de seguridad asociado a su instancia de base de datos. Para obtener más información, consulte [No puede conectarse a la instancia de base de datos de Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting). 
+ **Grupos de seguridad**: la pertenencia a grupos de seguridad de VPC para la instancia de base de datos de RDS.
+ **Tipo de autenticación**: el modo de autenticación entre alojamientos. Se admiten los siguientes tipos de autenticación:
  + Mutua: las instancias RDS se autentican mutuamente mediante la autenticación integrada. Si se selecciona esta opción, todas las instancias asociadas a este grupo de opciones deben estar unidas al dominio.
  + Ninguna: no se realiza ninguna autenticación entre alojamientos. No recomendamos utilizar este modo en entornos de producción.
+ **Tamaño del registro de transacciones**: el tamaño del registro de transacciones de MSDTC. Los valores permitidos son 4–1024. El tamaño predeterminado es 4 MB.

Los siguientes ajustes de opciones son opcionales:
+ **Habilitar conexiones entrantes**: indica si se permiten conexiones MSDTC entrantes a instancias asociadas a este grupo de opciones.
+ **Habilitar conexiones salientes**: indica si desea permitir conexiones MSDTC salientes desde instancias asociadas a este grupo de opciones.
+ **Habilitar XA**: si desea permitir transacciones XA. Para obtener más información sobre el protocolo XA, consulte [Especificación XA](https://publications.opengroup.org/c193).
+ **Habilitar LU de SNA**: indica si se va a permitir que el protocolo LU de SNA se utilice para transacciones distribuidas. Para obtener más información sobre la compatibilidad con el protocolo LU de SNA, consulte [Managing IBM CICS LU 6.2 Transactions](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms685136(v=vs.85)) en la documentación de Microsoft.

### Consola
<a name="Options.MSDTC.Add.Console"></a>

**Para agregar la opción MSDTC**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija el grupo de opciones que acaba de crear.

1. Seleccione **Add option (Añadir opción)**.

1. En **Detalles de la opción**, elija **MSDTC** en **Nombre de la opción**.

1. En **Configuración de opciones**:

   1. En **Puerto**, escriba el número de puerto para acceder a MSDTC. El valor predeterminado es **5000**.

   1. En **Security groups** (Grupos de seguridad), elija el grupo de seguridad de VPC que desea asociar a la opción.

   1. En **Tipo de autenticación**, elija **Mutua** o **Ninguna**.

   1. En **Tamaño del registro de transacciones**, escriba un valor entre 4 y 1024. El valor predeterminado es **4**.

1. En **Configuración adicional**, haga lo siguiente:

   1. En **Conexiones**, elija **Habilitar conexiones entrantes** y **Habilitar conexiones salientes** según sea necesario.

   1. En **Protocolos permitidos**, elija **Habilitar XA** y **Habilitar LU de SNA**.

1. En **Scheduling (Programación)**, elija si desea agregar la opción inmediatamente o en el siguiente período de mantenimiento.

1. Seleccione **Add option (Añadir opción)**.

   Para agregar esta opción, no es necesario reiniciar.

### CLI
<a name="Options.MSDTC.Add.CLI"></a>

**Para agregar la opción MSDTC**

1. Cree un archivo JSON, por ejemplo `msdtc-option.json`, con los siguientes parámetros obligatorios:

   ```
   {
   "OptionGroupName":"msdtc-se-2016",
   "OptionsToInclude": [
   	{
   	"OptionName":"MSDTC",
   	"Port":5000,
   	"VpcSecurityGroupMemberships":["sg-0abcdef123"],
   	"OptionSettings":[{"Name":"AUTHENTICATION","Value":"MUTUAL"},{"Name":"TRANSACTION_LOG_SIZE","Value":"4"}]
   	}],
   "ApplyImmediately": true
   }
   ```

1. Añada la opción `MSDTC` al grupo de opciones.  
**Example**  

   Para Linux, macOS o:Unix

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://msdtc-option.json \
       --apply-immediately
   ```

   En:Windows

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://msdtc-option.json ^
       --apply-immediately
   ```

   No es necesario reiniciar el equipo.

## Creación del grupo de parámetros para MSDTC
<a name="MSDTC.CreateParamGroup"></a>

Cree o modifique un grupo de parámetros para el parámetro `in-doubt xact resolution` que corresponde a la edición y versión de SQL Server de la instancia de base de datos.

### Consola
<a name="CreateParamGroup.MSDTC.Console"></a>

En el ejemplo siguiente se crea un grupo de parámetros para SQL Server Standard Edition 2016.

**Para crear el grupo de parámetros**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Parameter groups** (Grupos de parámetros).

1. Elija **Create parameter group**.

1. En el panel **Create parameter group (Crear grupo de parámetros)**, haga lo siguiente:

   1. En **Familia de grupos de parámetros**, elija **sqlserver-se-13.0**.

   1. En **Nombre de grupo**, escriba un identificador para el grupo de parámetros, como **msdtc-sqlserver-se-13**.

   1. En **Descripción**, escriba **in-doubt xact resolution**.

1. Elija **Create** (Crear).

### CLI
<a name="CreateParamGroup.MSDTC.CLI"></a>

En el ejemplo siguiente se crea un grupo de parámetros para SQL Server Standard Edition 2016.

**Para crear el grupo de parámetros**
+ Utilice uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o:Unix

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "in-doubt xact resolution"
  ```

  En:Windows

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "in-doubt xact resolution"
  ```

## Modificación del parámetro para MSDTC
<a name="ModifyParam.MSDTC"></a>

Modifique el parámetro `in-doubt xact resolution` en el grupo de parámetros que corresponde a la edición y la versión de SQL Server de su instancia de base de datos.

Para MSDTC, establezca el parámetro `in-doubt xact resolution` en uno de los siguientes:
+ `1` – `Presume commit`: se supone que todas las transacciones de MSDTC en duda se han confirmado.
+ `2` – `Presume abort`: se supone que todas las transacciones de MSDTC en duda se han detenido.

Para obtener más información, consulte [in-doubt xact resolution (opción de configuración del servidor)](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/in-doubt-xact-resolution-server-configuration-option) en la documentación de Microsoft.

### Consola
<a name="ModifyParam.MSDTC.Console"></a>

En el ejemplo siguiente se modifica el grupo de parámetros que ha creado para SQL Server Standard Edition 2016.

**Para modificar el grupo de parámetros**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Parameter groups** (Grupos de parámetros).

1. Elija el grupo de parámetros, como **msdtc-sqlserver-se-13**.

1. En **Parámetros**, filtre la lista de parámetros para **xact**.

1. Elija **in-doubt xact resolution**.

1. Elija **Edit parameters (Editar parámetros)**.

1. Escriba **1** o **2**.

1. Elija **Guardar cambios**.

### CLI
<a name="ModifyParam.MSDTC.CLI"></a>

En el ejemplo siguiente se modifica el grupo de parámetros que ha creado para SQL Server Standard Edition 2016.

**Para modificar el grupo de parámetros**
+ Utilice uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o:Unix

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

  En:Windows

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

## Asociación del grupo de opciones y el grupo de parámetros con la instancia de base de datos
<a name="MSDTC.Apply"></a>

Puede utilizar la Consola de administración de AWS o la AWS CLI para asociar el grupo de opciones MSDTC y el grupo de parámetros con la instancia de base de datos.

### Consola
<a name="MSDTC.Apply.Console"></a>

Puede asociar el grupo de opciones de MSDTC y el grupo de parámetros con una instancia de base de datos nueva o existente.
+ Para una nueva instancia de base de datos, asóciela cuando inicie la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
+ Para una instancia de base de datos existente, asóciela modificando la instancia. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).
**nota**  
Si utiliza una instancia de base de datos que existe, esta ya debe tener asociado un dominio de Active Directory y un rol de AWS Identity and Access Management (IAM). Si crea una instancia unida a dominio nueva, especifique un rol de IAM y un dominio de Active Directory ya existentes. Para obtener más información, consulte [Uso de AWS Managed Active Directory con RDS para SQL Server](USER_SQLServerWinAuth.md).

### CLI
<a name="MSDTC.Apply.CLI"></a>

Puede asociar el grupo de opciones de MSDTC y el grupo de parámetros con una instancia de base de datos nueva o existente.

**nota**  
Si usa una instancia de base de datos unidad a dominio que ya existe, esta debe tener ya asociada un dominio de Active Directory y un rol de IAM. Si crea una instancia unida a dominio nueva, especifique un rol de IAM y un dominio de Active Directory ya existentes. Para obtener más información, consulte [Uso de AWS Managed Active Directory con RDS para SQL Server](USER_SQLServerWinAuth.md).

**Para crear una instancia de base de datos con el grupo de opciones y el grupo de parámetros de MSDTC**
+ Especifique el mismo tipo de motor de base de datos y la misma versión principal que ha utilizado al crear el grupo de opciones.  
**Example**  

  Para Linux, macOS o:Unix

  ```
  aws rds create-db-instance \
      --db-instance-identifier mydbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name msdtc-se-2016 \
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

  En:Windows

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name msdtc-se-2016 ^
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

**Para modificar una instancia de base de datos y asociar el grupo de opciones y el grupo de parámetros de MSDTC**
+ Utilice uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o:Unix

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --option-group-name msdtc-se-2016 \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --apply-immediately
  ```

  En:Windows

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --option-group-name msdtc-se-2016 ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --apply-immediately
  ```

## Modificación de la opción MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Modify"></a>

Después de habilitar la opción `MSDTC`, puede modificar su configuración. Para obtener más información acerca de cómo modificar la configuración de opciones, consulte [Modificación de una configuración de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

**nota**  
Algunos cambios en la configuración de la opción MSDTC requieren que se reinicie el servicio MSDTC. Este requisito puede afectar a las transacciones distribuidas en ejecución.