Consultor Eletrônico



Kbase 47413: Erro efetuar login TSA ORA-12505
Autor   Marco Aurelio Scheidt - CAT
Acesso   Público
Publicação   23/05/2012

No log do JBOSS consta o seguinte erro ao efetuar o login no produto, nesse caso TSA.

2012-05-11 15:30:52,508 WARN [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] (HDScanner) Throwable while attempting to get a new connection: null: org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:

Analisando os arquivos de configuração do produto temos o seguinte:

1 - tnsnames.ora

NOVO_LABORATORIO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.250.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = labora)
)
)

2 - oracle-ds.xml

<datasources>
<local-tx-datasource>
<jndi-name>tsa</jndi-name>
<connection-url>jdbc:oracle:thin:@192.168.250.11:1521:NOVO_LABORATORIO</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>tsa</user-name>
<password>tsa</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
</local-tx-datasource>

Causa do erro:

- A linha de conexão com o Oracle informada na tag connection-url está sendo direcionando para o nome criado no tnsnames.ora, onde a conexão jdbc:oracle:thin não utiliza este arquivo para conectar no servidor Oracle.

Solução:
- A conexão deve ser alterada para o SERVICE_NAME definido no tnsnames.ora, com base no exemplo acima o nome NOVO_LABORATORIO tem ser alterado para labora.

Errado:
<connection-url>jdbc:oracle:thin:@192.168.250.11:1521:NOVO_LABORATORIO</connection-url>

Certo:
<connection-url>jdbc:oracle:thin:@192.168.250.11:1521:labora</connection-url>