Database
 sql >> Base de Dados >  >> RDS >> Database

Investigando um erro ORA 028513 DG4ODBC


Conectar o Oracle ao SQL Server é um dos casos de uso mais comuns para o driver ODBC do Easysoft SQL Server. Apoiar esta combinação não envolve apenas fornecer assistência na configuração do nosso driver. Isso também significa ajudar a resolver problemas de configuração do Oracle que impedem que o Oracle Heterogeneous Services chegue ao ponto de carregar nosso driver.

Recentemente, um cliente do driver ODBC do SQL Server relatou o seguinte erro para nós:
ORA-28513: internal error in heterogeneous remote agent

O cliente conseguiu nos fornecer um log de rastreamento DG4ODBC, que nos disse duas coisas:
  1. Os arquivos de configuração do Oracle (.ora) foram configurados corretamente. Se esses arquivos contiverem um erro (por exemplo, um colchete ausente ou estranho), nenhum log de rastreamento DG4ODBC será gerado.
  2. DG4ODBC nem estava tentando carregar o gerenciador de driver unixODBC.

Em situações como essas em que o log do Oracle DG4ODBC não identifica o problema (normalmente sempre conterá mais informações do que o erro ORA-NNNNN relatado pelo aplicativo) e o log de ODBC ainda não é possível, alcançamos strace ou treliça . Por exemplo:
  1. Inicie duas sessões de shell como usuário Oracle.
  2. No shell 1, pare o ouvinte Oracle.
  3. Inicie o ouvinte com este comando:
    strace -f -o /tmp/easysoft.log -s 512 lsnrctl start

    -Ou-
    truss -wall -rall -o /tmp/easysoft.log lsnrctl start
  4. No shell 2, inicie o SQL*PLus e execute uma instrução SQL no link do banco de dados DG4ODBC/SQL Server.
  5. No shell 2, pare o ouvinte Oracle.

No entanto, a ferramenta de rastreamento da biblioteca do sistema (truss no caso do cliente) ainda não revelou a causa do problema.

No final, descobriu-se que o cliente estava configurando o ORA_NLS10 variável de ambiente, e um efeito colateral de fazer isso foi impedir que o DG4ODBC funcionasse. Como a variável não precisava ser configurada nesta máquina, desativá-la e removê-la de um arquivo de perfil foi a solução para o problema do cliente.