# Como conectar a Digibee ao Oracle RAC

## **O que é Oracle RAC?**

O Oracle RAC (Real Application Cluster) realiza uma escalabilidade transparente tanto para leituras quanto para gravações em diversas cargas de trabalho, como OLTP, análises, vetores de IA, SaaS, JSON, processamento em lote, texto, gráficos, Internet das Coisas (IoT) e processamento em memória. Ele oferece uma série de benefícios para computação em banco de dados, incluindo escalabilidade, alta disponibilidade, balanceamento de carga, redundância e monitoramento. Para mais informações, consulte o [site da Oracle](https://www.oracle.com/br/database/real-application-clusters/).

## **Conectando o Oracle RAC com a Digibee**

Ao conectar um pipeline a um banco de dados via VPN (Virtual Private Network), a topologia de rede impede a visibilidade dos nós por trás do Oracle SCAN Listener. Como consequência, o driver JDBC não consegue se conectar ao nó indicado pelo listener como disponível para receber a conexão.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/E8E1yBZ8b1t5TvwnIsyl/image2.png" alt=""><figcaption></figcaption></figure>

Para resolver esse problema:

* Evite utilizar o mapeamento do SCAN Listener.
* Informe ao [Suporte da Digibee](https://docs.digibee.com/documentation/troubleshooting/pt-br/help-and-faq/support) os IPs de cada nó do banco de dados deste cluster.
* Use uma string de conexão com múltiplos hosts para garantir o tráfego e a redundância entre os nós, o que pode ser configurado por meio da string de conexão.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/L5zwM2dV1qToWqens4zp/image1.png" alt=""><figcaption></figcaption></figure>

Veja o exemplo abaixo:

```
jdbc:oracle:thin:@(DESCRIPTION=
   (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=TCP)(HOST=10.158.xx.xxx)(PORT=1111))
      (ADDRESS=(PROTOCOL=TCP)(HOST=10.158.xx.xxx)(PORT=2222))
      (ADDRESS=(PROTOCOL=TCP)(HOST=10.158.xx.xxx)(PORT=3333))
      (FAILOVER=on)
      (LOAD_BALANCE=on)
   )
   (CONNECT_DATA=(SERVICE_NAME=SERVICENAME))
)
```
