

# Habilitar o MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Enabling"></a>

Use o seguinte processo para habilitar o MSDTC para a instância de banco de dados:

1. Crie um grupo de opções ou selecione um existente.

1. Adicione a opção `MSDTC` ao grupo de opções.

1. Crie um novo grupo de parâmetros ou escolha um existente.

1. Modifique o grupo de parâmetros para definir o parâmetro `in-doubt xact resolution` como 1 ou 2.

1. Associe o grupo de opções e o grupo de parâmetros à instância de banco de dados.

## Criar o grupo de opções para o MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.OptionGroup"></a>

Use o Console de gerenciamento da AWS ou a AWS CLI para criar um grupo de opções que corresponda à versão e ao mecanismo do SQL Server da instância de banco de dados.

**nota**  
Também é possível usar um grupo de opções existente se ele for para a versão e o mecanismo e corretos do SQL Server.

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

O procedimento a seguir cria um grupo de opções para o SQL Server Standard Edition 2016.

**Como criar o grupo de opções**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Option groups (Grupos de opções)**.

1. Escolha **Create group (Criar grupo)**.

1. No painel **Create option group (Criar grupo de opções)**, faça o seguinte:

   1. Em **Name** (Nome), insira um nome para o grupo de opções que seja exclusivo na sua conta da AWS, como **msdtc-se-2016**. O nome pode conter somente letras, números e hifens.

   1. Em **Descrição**, insira uma breve descrição do grupo de opções, como **MSDTC option group for SQL Server SE 2016**. A descrição é usada para fins de exibição. 

   1. Em **Engine (Mecanismo)**, selecione **sqlserver-se**.

   1. Em **Versão do mecanismo principal**, selecione **13.00**.

1. Escolha **Criar**.

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

O exemplo a seguir cria um grupo de opções para o SQL Server Standard Edition 2016.

**Como criar o grupo de opções**
+ Use um dos seguintes comandos.  
**Example**  

  Para Linux, macOS ou 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"
  ```

  Para 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"
  ```

## Adicionar a opção do MSDTC ao grupo de opções
<a name="Appendix.SQLServer.Options.MSDTC.Add"></a>

Depois, use o Console de gerenciamento da AWS ou a AWS CLI para adicionar a opção `MSDTC` ao grupo de opções.

São necessárias as seguintes configurações de opção:
+ **Porta** – a porta que você usa para acessar o MSDTC. Os valores permitidos são 1150–49151, exceto 1234, 1434, 3260, 3343, 3389 e 47001. O valor padrão é 5000.

  Verifique se a porta que pretende usar está habilitada nas regras de firewall. Além disso, conforme necessário, verifique se essa porta está habilitada nas regras de entrada e saída para o grupo de segurança associado à instância de banco de dados. Para ter mais informações, consulte [Não é possível conectar-se à instância de banco de dados do Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting). 
+ **Security groups** (Grupos de segurança): as associações de grupo de segurança da VPC para a instância de banco de dados do RDS.
+ **Tipo de autenticação** – o modo de autenticação entre hosts. Os seguintes tipos de autenticação são compatíveis:
  + Mútuo – as instâncias do RDS são autenticadas mutuamente entre si usando autenticação integrada. Se esta opção estiver selecionada, todas as instâncias associadas a este grupo de opções deverão estar associadas ao domínio.
  + Nenhum – nenhuma autenticação é realizada entre hosts. Não recomendamos usar esse modo em ambientes de produção.
+ **Tamanho do log de transações** – o tamanho do log de transações do MSDTC. Os valores permitidos são de 4 a 1024 MB. O tamanho padrão é 4 MB.

As seguintes configurações de opção são opcionais:
+ **Habilitar conexões de entrada** – se deseja permitir conexões de entrada do MSDTC para instâncias associadas a este grupo de opções.
+ **Habilitar conexões de saída** – se deseja permitir conexões de saída do MSDTC em instâncias associadas a este grupo de opções.
+ **Habilitar XA** – se deseja permitir transações XA. Para obter mais informações sobre o protocolo XA, consulte [XA Specification](https://publications.opengroup.org/c193).
+ **Habilitar SNA LU** – se deseja permitir que o protocolo SNA LU seja usado para transações distribuídas. Para obter mais informações sobre o suporte ao protocolo SNA LU, consulte [Managing IBM CICS LU 6.2 Transactions](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms685136(v=vs.85)) na documentação da Microsoft.

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

**Como adicionar a opção do MSDTC**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Option groups (Grupos de opções)**.

1. Selecione o grupo de opções que você acabou de criar.

1. Escolha **Add option (Adicionar opção)**.

1. Em **Detalhes da opção**, selecione **MSDTC** em **Nome da opção**.

1. Em **Configurações de opção**:

   1. Em **Porta**, insira o número da porta para acessar o MSDTC. O padrão é **5000**.

   1. Em **Security groups (Grupos de segurança)**, selecione o grupo de segurança da VPC a ser associado à opção.

   1. Em **Tipo de autenticação**, escolha **Mútuo** ou **Nenhum**.

   1. Em **Tamanho do log de transações**, insira um valor de 4 a 1024. O padrão é **4**.

1. Em **Configuração adicional**, faça o seguinte:

   1. Em **Conexões**, conforme necessário, escolha **Habilitar conexões de entrada** e **Habilitar conexões de saída**.

   1. Em **Protocolos permitidos**, conforme necessário, escolha **Habilitar XA** e **Habilitar SNA LU**.

1. Em **Scheduling (Programação)**, escolha se deseja adicionar a opção imediatamente ou na próxima janela de manutenção.

1. Escolha **Add option (Adicionar opção)**.

   Nenhuma reinicialização é necessária para adicionar essa opção.

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

**Como adicionar a opção do MSDTC**

1. Crie um arquivo JSON, por exemplo `msdtc-option.json`, com os seguintes parâmetros necessários:

   ```
   {
   "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. Adicione a opção `MSDTC` ao grupo de opções.  
**Example**  

   Para Linux, macOS ou Unix:

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

   Para Windows:

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

   Nenhuma reinicialização é necessária.

## Criar o grupo de parâmetros para o MSDTC
<a name="MSDTC.CreateParamGroup"></a>

Crie ou modifique um grupo de parâmetros para o parâmetro `in-doubt xact resolution` que corresponde à edição e à versão do SQL Server da instância de banco de dados.

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

O exemplo a seguir cria um grupo de parâmetros para o SQL Server Standard Edition 2016.

**Como criar o grupo de parâmetros**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Parameter groups** (Grupos de parâmetros).

1. Escolha **Create parameter group (Criar parameter group)**.

1. No painel**Create parameter group (Criar parameter group)**, faça o seguinte:

   1. Em **Família de grupos de parâmetros**, escolha **sqlserver-se-13.0**.

   1. Em **Nome do grupo**, insira um identificador para o grupo de parâmetros, como **msdtc-sqlserver-se-13**.

   1. Em **Descrição**, insira **in-doubt xact resolution**.

1. Escolha **Criar**.

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

O exemplo a seguir cria um grupo de parâmetros para o SQL Server Standard Edition 2016.

**Como criar o grupo de parâmetros**
+ Use um dos seguintes comandos.  
**Example**  

  Para Linux, macOS ou 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"
  ```

  Para 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"
  ```

## Modificar o parâmetro para o MSDTC
<a name="ModifyParam.MSDTC"></a>

Modifique o parâmetro `in-doubt xact resolution` no grupo de parâmetros que corresponde à edição e à versão do SQL Server da instância de banco de dados.

Para o MSDTC, defina o parâmetro `in-doubt xact resolution` como um dos seguintes procedimentos:
+ `1`: `Presume commit`. Presume-se que as transações em dúvida do MSDTC foram confirmadas.
+ `2`: `Presume abort`. Presume-se que as transações em dúvida do MSDTC foram interrompidas.

Para obter mais informações, consulte [in-doubt xact resolution server configuration option](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/in-doubt-xact-resolution-server-configuration-option) na documentação da Microsoft.

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

O exemplo a seguir modifica o grupo de parâmetros que você criou para o SQL Server Standard Edition 2016.

**Como modificar o grupo de parâmetros**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, selecione **Parameter groups**.

1. Escolha o grupo de parâmetros, como **msdtc-sqlserver-se-13**.

1. Em **Parâmetros**, filtre a lista de parâmetros para **xact**.

1. Escolha **resolução xact em dúvida**.

1. Escolha **Edit parameters**.

1. Insira **1** ou **2**.

1. Escolha **Salvar alterações**.

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

O exemplo a seguir modifica o grupo de parâmetros que você criou para o SQL Server Standard Edition 2016.

**Como modificar o grupo de parâmetros**
+ Use um dos seguintes comandos.  
**Example**  

  Para Linux, macOS ou 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"
  ```

  Para 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"
  ```

## Associar o grupo de opções e o grupo de parâmetros à instância de banco de dados.
<a name="MSDTC.Apply"></a>

É possível usar o Console de gerenciamento da AWS ou a AWS CLI para associar o grupo de opções e o grupo de parâmetros do MSDTC à instância de banco de dados.

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

É possível associar o grupo de opções e o grupo de parâmetros do MSDTC a uma instância de banco de dados nova ou existente.
+ Para uma nova instância de banco de dados, associe-os ao executar a instância. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
+ Para uma instância de banco de dados existente, associe-os modificando a instância. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).
**nota**  
Se você usar uma instância de banco de dados existente associada ao domínio, ela já deverá ter um domínio do Active Directory e uma função do AWS Identity and Access Management (IAM) associados a ela. Se você criar uma nova instância associada ao domínio, especifique um domínio do Active Directory e uma função do IAM existentes. Para ter mais informações, consulte [Trabalhar com o AWS Managed Active Directory com o RDS para SQL Server](USER_SQLServerWinAuth.md).

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

É possível associar o grupo de opções e o grupo de parâmetros do MSDTC a uma instância de banco de dados nova ou existente.

**nota**  
Se você usar uma instância de banco de dados existente associada ao domínio, ela já deverá ter um domínio do Active Directory e uma função do IAM associados a ela. Se você criar uma nova instância associada ao domínio, especifique um domínio do Active Directory e uma função do IAM existentes. Para obter mais informações, consulte [Trabalhar com o AWS Managed Active Directory com o RDS para SQL Server](USER_SQLServerWinAuth.md).

**Como criar uma instância de banco de dados com o grupo de opções e o grupo de parâmetros do MSDTC**
+ Especifique o mesmo tipo de mecanismo de banco de dados e a versão principal que você usou ao criar o grupo de opções.  
**Example**  

  Para Linux, macOS ou 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
  ```

  Para 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
  ```

**Como modificar uma instância de banco de dados e associar o grupo de opções e o grupo de parâmetros do MSDTC**
+ Use um dos seguintes comandos.  
**Example**  

  Para Linux, macOS ou 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
  ```

  Para 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
  ```

## Modificar a opção do MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Modify"></a>

Depois de habilitar a opção `MSDTC`, é possível modificar as configurações. Para obter informações sobre como modificar as configurações da opção, consulte [Modificar uma configuração de opção](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

**nota**  
Algumas alterações às configurações de opção do MSDTC exigem que o serviço MSDTC seja reiniciado. Esse requisito pode afetar a execução de transações distribuídas.