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>