Conexão JDBC para Oracle RAC (Cluster)

Um cluster consiste em multiplos computadores interconectados ou servidores que têm como objetivo compartilhar/ processar requisições de usuários em aplicações para usuários finais. O Oracle RAC permite que um Database seja clusterizado e ele utiliza o Oracle Clusterware como infraestrutura para processar várias instances como um sistema único.

O ORACLE RAC (real application cluster) é uma solução de banco de dados em cluster que requer dois ou mais nós de hardware capazes de trabalhar juntos sob o controle de um sistema operacional. Se você precisa conectar uma aplicação java via JDBC a um banco Oracle RAC o formato clássico de String de conexão  não vai funcionar.

 jdbc:oracle:thin:@<HOST>:1521:<SID>

A string que deve ser utilizada para uma conexão Oracle RAC é

DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ENDERECO_HOST1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=ENDERECO_HOST2)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=NOME_DO_SERVICE_NAME)(FAILOVER_MODE=(TYPE=select)(METHOD=basic)))

Para descobrir o NOME_DO_SERVICE_NAME , procure pelo arquivo tsnames.ora (geralmente localizado em C:\orant\NETWORK\ADMIN – Plataforma Windows)

Cada “Address” do Address_List representa um servidor de conexão, fique atento aos IP’s de cada Host!

 


Dica rápida: problema ao remover programas do Windows 7

Hoje passei por um problema chato. Ao tentar remover algumas versões do Java, o desinstalador do Windows estava sem embananando… e solicitando  pacotes .msi para continuar com a desinstalação… .Após algumas pesquisas, acabei encontrando um programinha da Microsoft chamado Fix It.

O Fix It diagnostica de forma automática problemas que podem impedir a instalação ou a desinstalação de programas no computador. Ele Ajuda no caso de programas que não são instalados corretamente e programas que impedem novas instalações de programas. 

Conforme orientação da Microsoft o programa corrige…
  • Remove uma chave de registro defeituosa em sistemas operacionais de 64 bits.
  • As chaves de registro do Windows que controlam os dados de atualização (patch) ficam corrompidas.
  • Resolve problemas que impedem a instalação de programas novos.
  • Resolve problemas que impedem a desinstalação completa de programas e bloqueiam novas instalações e atualizações.
  • Use esse solucionador de problemas em uma desinstalação somente se o programa não for desinstalado usando o recurso Adicionar ou Remover Programas do Windows.

microsoft-fixit

Download do Fixt It

ou através do link: http://support.microsoft.com/mats/Program_Install_and_Uninstall


Erro Oracle – ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

Dica simples para encontrar objetos locados no banco e matar sua sessão.

select a.sid, a.serial#
    from v$session a, v$locked_object b, dba_objects c
   where b.object_id = c.object_id
      and a.sid = b.session_id
      -- and OBJECT_NAME='NOME_OBJETO'; <-- Caso deseje UTILIZE O NOME DOBJETO PARA IDENTIFICAR O SEU SID E SERIAL

— APÓS IDENTIFICAR O SID E SERIAL… MATE A SESSAO

alter system kill session '105,294'; -- Ex: 105 (SID),294 (SERIAL)

Problema Autenticação de Proxy no Java – Erro 407: Proxy Authentication Required

Para aqueles que utilizam Proxy em suas redes pode ser comum se deparar com um erro ao abrir uma conexão no Java (Erro 407: Proxy Authentication Required). Este erro sinaliza que você precisa primeiro se autenticar no servidor Proxy da rede.

Recentemente passei por isso ao conectar em um WebService.  Para resolver este problema podemos utilizar a classe Authenticator do Java.

1º Criar uma Classe Authenticator

import java.net.Authenticator;

class ProxyAuthenticator extends Authenticator {

private String user, password;

public ProxyAuthenticator(String user, String password) {
 this.user = user;
 this.password = password;
 }

protected PasswordAuthentication getPasswordAuthentication() {
 return new PasswordAuthentication(user, password.toCharArray());
 }
}

2º Utilizando a classe e configurando propriedades

Antes de abrir uma conexão com alguma URL realize a autenticação no servidor Proxy.

Authenticator.setDefault(new ProxyAuthenticator("usuário", "senha"));
System.setProperty("http.proxyHost", "endereço do proxy");
System.setProperty("http.proxyPort", "porta");

Páginas:1234567...17