A Oracle Pro * C ORA-12547
-
13-09-2019 - |
Pergunta
Eu estou trabalhando em re-compilar algum código C * Pro que ninguém atualmente na minha empresa já compilado. É compilar OK, mas quando eu copiá-lo para o servidor de produção e executá-lo eu estou recebendo erro do Oracle ORA-12547 (TNS: perdeu contato)
Todas as idéias?
Solução
Oh, descobri-lo. : -)
O executável C não é executado diretamente no servidor, mas lançado através de um script que configura o ambiente de conexão. ou seja, algo como isto:
export SHLIB_PATH=/oracleDatabaseSidHere/oracle/10.2/lib:/usr/lib:/oracleDatabaseSidHere/oracle/10.2/odg/lib
export ORACLE_BASE=/oracleDatabaseSidHere/oracle
export ORACLE_SID=oracleDatabaseSidHere
export ORACLE_HOME=/oracleDatabaseSidHere/oracle/10.2
# Set up the path and executable to run
PATH=.\:$PATH:$ORACLE_HOME/bin:/usrlocal/bin
PATH=$PATH:/path_to_application_logs
cd /path_to_application
application
Outras dicas
Relacionado a isso, eu só descobri que eu recebo o mesmo erro ORA-12547 TNS perderam contato na minha máquina Windows ao tentar se conectar a um banco de dados Oracle com PL / SQL e, ao mesmo tempo que tenho uma conexão VPN aberto.
Eu tive um problema semelhante no Linux, a Oracle 11gR2. A Oracle proprietário poderia executar SQL * Plus e entrar em via quer TNS ou conexão local. usuário não-Oracle possam se logar via TNS, mas não como ligação local.
Acontece que a resposta foi que o sistema de arquivos ORACLE_HOME foi montada "nosuid". Removendo essa opção de montagem resolveu o meu problema.