Tnsnames.ora

9 respostas
R

alguém poderia me ajudar a configurar este arquivo???

eu preciso fazer uma conexão com oracle e estou usando linux…

desculpem os usuários, mas estou criando vários tópicos parecidos, é que cada passo que eu faço tenho um novo problema… acho que depois que eu configurar isto vou conseguir minha conexão

9 Respostas

O

Não precisa configurar tnsnames.ora para conectar no Oracle via JDBC. tnsnames.ora só serve se você for usar o Oracle client para conectar.

R

então de onde eu tiro o sid da conexão?

sei que no windows deveria criar um dsn através do painel de controle e no linux?

O

Você está usando um drive JDBC-ODBC no seu client?
Se não estiver, o SID é o “nome da instancia” do seu banco de dados Oracle. Pergunte para o DBA que instalou o Oracle qual é o SID.

Renatho:
então de onde eu tiro o sid da conexão?

sei que no windows deveria criar um dsn através do painel de controle e no linux?

R

Por acaso o SID não fica no arquivo ORACLE_HOME\network\admin\tnsnames.ora ?? eu achei um SID lá, mas qdo tento conectar dá a exceção:

No more data to read from socket

O

Renatho:
Por acaso o SID não fica no arquivo ORACLE_HOME\network\admin\tnsnames.ora ?? eu achei um SID lá, mas qdo tento conectar dá a exceção:

No more data to read from socket

Vamos lá: se você está usando o driver thin do JDBC da Oracle, não precisa configurar tnsnames.ora.
Se ninguem mexeu neste arquivo, vai ter uma entrada deault com um valor de SID que pode não ser a que foi instalada no banco de dados.

Resumindo: esqueça tudo que estiver relacionado a TNS se você estiver usando o driver thin.

Quem instalou a base de dados Oracle não sabe te informar qual é o SID?

R

Bom, consegui conecta usando thin, agora como faço para conectar usando oci?

OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:login/senha@localhost:1521/XE");
Connection conn = ods.getConnection();

conectei assim, mas agora tenho um sistema que preciso fazer ele rodar aqui e a conexão está assim:

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

conn = DriverManager.getConnection(“jdbc:oracle:oci:XE”, “login”, “senha”);

seria XE também aqui?

R

aproveitando o embalo do assunto, alguém sabe me dizer a diferença entre oci e thin? qual o mais recomendado?

O

Ja tinha postado algo sobre isto, mas vamos lá:

  • OCI é um driver JDBC Type 2. Ele usa bibliotecas nativas para cada sistema operacional no lado do client. Para tanto, é necessário a instalação de um “Oracle Client” que pode variar de acordo com a versão do “Oracle Server”. Este driver tende a ser mais performatico, mas tem como desvantagem depender da instalação de um Oracle Client. São poucos os caso que é realmente necessário usar este tipo de driver (se for usar Oracle RAC é um deles). Pode haver problemas de performance no banco utilizando um tipo ou outro, principalmente em Oracle 9i e utilizando o tipo Timestamp.

Resumindo: só use OCI se estiver usando Oracle RAC com Oracle IAS e cluster.

mvieiradias

Oyama,

Tenho uma aplicação feita no Jdeveloper 9.0.3 que roda no aplication sever 9iAs e utiliza o Banco Oracle 10g (10.0.4), ele é oracle Rac (possui três nós). Quando cai um nó do RAC o sistema funciona corretamente mas quando cai o serviço deste nó o sistema não consegue fazer o qualquer consulta “como se ficasse com a conexão presa no banco”. O sistema exibe o erro abaixo e depois ele tentar executar alguma consulta e fica preso.

JBO-30003: The application pool (br.com.cvrd.lg.equipagemferroviaria.equipfer.escala.geracao.services.AtividadeRealizadaServices9iAS) failed to checkout an application module due to the following exception:

oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.DMLException, msg=JBO-26064: Error while closing JDBC statement.

at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1606)

at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:2353)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:427)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:398)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:393)

at oracle.jbo.client.Configuration.getApplicationModule(Configuration.java:1333)

at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1292)

at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1264)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.framework.services.ServiceLocator.getService(ServiceLocator.java:123)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.framework.services.ServiceLocator.getService(ServiceLocator.java:91)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.unilog.thread.AtualizadorCacheTrensUnilog.run(AtualizadorCacheTrensUnilog.java:58)

at java.lang.Thread.run(Thread.java:534)

Detail 0

oracle.jbo.DMLException: JBO-26064: Error while closing JDBC statement.

at oracle.jbo.server.DBTransactionImpl.closeStatement(DBTransactionImpl.java:3757)

at oracle.jbo.server.ViewObjectImpl.closeFreedStatements(ViewObjectImpl.java:7166)

at oracle.jbo.server.ViewObjectImpl.closeStatements(ViewObjectImpl.java:7149)

at oracle.jbo.server.DBTransactionImpl.closeStatements(DBTransactionImpl.java:3891)

at oracle.jbo.server.DBTransactionImpl.closeTransaction(DBTransactionImpl.java:1265)

at oracle.jbo.server.DBTransactionImpl.disconnect(DBTransactionImpl.java:4222)

at oracle.jbo.server.DBTransactionImpl2.disconnect(DBTransactionImpl2.java:306)

at oracle.jbo.server.DBTransactionImpl2.reconnect(DBTransactionImpl2.java:325)

at oracle.jbo.common.ampool.DefaultConnectionStrategy.reconnect(DefaultConnectionStrategy.java:321)

at oracle.jbo.common.ampool.ApplicationPoolImpl.reconnect(ApplicationPoolImpl.java:3324)

at oracle.jbo.common.ampool.ApplicationPoolImpl.recycleUnreferencedInstance(ApplicationPoolImpl.java:1743)

at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1531)

at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:2353)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:427)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:398)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:393)

at oracle.jbo.client.Configuration.getApplicationModule(Configuration.java:1333)

at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1292)

at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1264)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.framework.services.ServiceLocator.getService(ServiceLocator.java:123)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.framework.services.ServiceLocator.getService(ServiceLocator.java:91)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.unilog.thread.AtualizadorCacheTrensUnilog.run(AtualizadorCacheTrensUnilog.java:58)

at java.lang.Thread.run(Thread.java:534)

Detail 0

java.sql.SQLException: No more data to read from socket

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:187)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:229)

at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:982)

at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:746)

at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:705)

at oracle.jdbc.ttc7.Oclose.receive(Oclose.java:105)

at oracle.jdbc.ttc7.TTC7Protocol.close(TTC7Protocol.java:565)

at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:824)

at oracle.jdbc.driver.OraclePreparedStatement.privateClose(OraclePreparedStatement.java:346)

at oracle.jdbc.driver.OraclePreparedStatement.close(OraclePreparedStatement.java:280)

at com.evermind.sql.FilterStatement.close(FilterStatement.java:93)

at com.evermind.sql.FilterStatement.close(FilterStatement.java:93)

at com.evermind.sql.StatementBCELProxy.close(StatementBCELProxy.java:68)

at oracle.jbo.server.DBTransactionImpl.closeStatement(DBTransactionImpl.java:3731)

at oracle.jbo.server.ViewObjectImpl.closeFreedStatements(ViewObjectImpl.java:7166)

at oracle.jbo.server.ViewObjectImpl.closeStatements(ViewObjectImpl.java:7149)

at oracle.jbo.server.DBTransactionImpl.closeStatements(DBTransactionImpl.java:3891)

at oracle.jbo.server.DBTransactionImpl.closeTransaction(DBTransactionImpl.java:1265)

at oracle.jbo.server.DBTransactionImpl.disconnect(DBTransactionImpl.java:4222)

at oracle.jbo.server.DBTransactionImpl2.disconnect(DBTransactionImpl2.java:306)

at oracle.jbo.server.DBTransactionImpl2.reconnect(DBTransactionImpl2.java:325)

at oracle.jbo.common.ampool.DefaultConnectionStrategy.reconnect(DefaultConnectionStrategy.java:321)

at oracle.jbo.common.ampool.ApplicationPoolImpl.reconnect(ApplicationPoolImpl.java:3324)

at oracle.jbo.common.ampool.ApplicationPoolImpl.recycleUnreferencedInstance(ApplicationPoolImpl.java:1743)

at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1531)

at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:2353)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:427)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:398)

at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:393)

at oracle.jbo.client.Configuration.getApplicationModule(Configuration.java:1333)

at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1292)

at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1264)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.framework.services.ServiceLocator.getService(ServiceLocator.java:123)

at br.com.cvrd.lg.equipagemferroviaria.equipfer.framework.services.ServiceLocator.getService(ServiceLocator.java:91)
Criado 23 de novembro de 2006
Ultima resposta 4 de jul. de 2009
Respostas 9
Participantes 3