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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top