在java里用thin连接oraclejava会不会内存泄露产生TNS

TNS:listener&does&not&currently&know&of&SID&given&in&connect&descriptor&oracle连接出错
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'processEngine' defined in
ServletContext resource [/WEB-INF/classes/applicationContext.xml]:
Instanti nested exception is
org.springframework.beans.factory.BeanDefinitionStoreException:
Factory method [public org.jbpm.api.ProcessEngine
org.jbpm.pvm.internal.processengine.SpringHelper.createProcessEngine()]
nested exception is
org.springframework.transaction.CannotCreateTransactionException:
Could not open Hibernate Ses nested exception
is org.hibernate.exception.GenericJDBCException: Cannot open
connection
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:444)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:903)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:817)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
java.security.AccessController.doPrivileged(Native Method)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:168)
org.springframework.monAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:435)
org.springframework.monAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)
org.springframework.monAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:537)
org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:180)
org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:105)
org.springframework.monAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:289)
&& &... 56
Caused by:
org.springframework.beans.factory.BeanDefinitionStoreException:
Factory method [public org.jbpm.api.ProcessEngine
org.jbpm.pvm.internal.processengine.SpringHelper.createProcessEngine()]
nested exception is
org.springframework.transaction.CannotCreateTransactionException:
Could not open Hibernate Ses nested exception
is org.hibernate.exception.GenericJDBCException: Cannot open
connection
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:127)
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:435)
&& &... 73
Caused by:
org.springframework.transaction.CannotCreateTransactionException:
Could not open Hibernate Ses nested exception
is org.hibernate.exception.GenericJDBCException: Cannot open
connection
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:599)
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:125)
org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)
org.jbpm.pvm.internal.processengine.ProcessEngineImpl.checkDb(ProcessEngineImpl.java:152)
org.jbpm.pvm.internal.processengine.SpringProcessEngine.create(SpringProcessEngine.java:70)
org.jbpm.pvm.internal.cfg.ConfigurationImpl.buildProcessEngine(ConfigurationImpl.java:90)
org.jbpm.pvm.internal.processengine.SpringHelper.createProcessEngine(SpringHelper.java:50)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:115)
&& &... 74
Caused by: org.hibernate.exception.GenericJDBCException: Cannot
open connection
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558)
&& &... 89
Caused by: mons.dbcp.SQLNestedException: Cannot
create PoolableConnectionFactory (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:
127.0.0.1:1521:billborn
mons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
mons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
mons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
&& &... 94
Caused by: 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:
127.0.0.1:1521:billborn
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:260)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
oracle.jdbc.driver.PhysicalConnection.&init&(PhysicalConnection.java:438)
oracle.jdbc.driver.T4CConnection.&init&(T4CConnection.java:164)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
mons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
mons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
mons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
mons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
&& &... 98
第一种可能
是配置得数据库sid名不正确localhost:1521:oracle
即红字部分不是你本机得sid,那么如何查看本机得sid呢?用如下命令
v$在sqlplus中执行就可以看到,把红字部分换成查询出来的sid就可以。
第二种可能
发现sid配置没有错误,但是还是报错,那可能就是oracle得监听配置出了问题,需要检查listener.ora文件,用记事本打开,
正确配置如下:
# listener.ora Network Configuration File:
e:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
& (SID_LIST =
&&& (SID_DESC
(SID_NAME = PLSExtProc)
(ORACLE_HOME = e:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
&&& (SID_DESC
(GLOBAL_DBNAME = oracle)
(ORACLE_HOME = e:\oracle\product\10.2.0\db_1)
(SID_NAME = oracle)
LISTENER =
& (DESCRIPTION_LIST =
&&& (DESCRIPTION
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
红字部分改成oracle创建时候的sid 保存退出。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。java连接本地的oracle数据库
通常有两种方式:oci和thin
thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行。thin就是纯粹用Java写的ORACLE数据库访问接口。
oci 是一种胖客户端的连接方式,即采用这种连接方式需要安装oracle客户端。oci是Oracle Call
Interface的首字母缩写,是ORACLE公司提供了访问接口,就是使用Java来调用本机的Oracle客户端,然后再访问数据库,优点是速度
快,但是需要安装和配置数据库。
从相关资料可以总结出以下几点:
从使用上来说,oci必须在客户机上安装oracle客户端或才能连接,而thin就不需要,因此从使用上来讲thin还是更加方便,这也是thin比较常见的原因。&
2. 原理上来看,thin是纯java实现tcp/ip的c/s通讯;而oci方式,客户端通过native java method调用c
library访问服务端,而这个c library就是oci(oracle called
interface),因此这个oci总是需要随着oracle客户端安装(从oracle10.1.0开始,单独提供OCI Instant
Client,不用再完整的安装client)&
3. 它们分别是不同的驱动类别,oci是二类驱动, thin是四类驱动,但它们在功能上并无差异。
如果本地装有oracle数据库,则无需到网上下载jdbc包,因为在oracle的安装路径里有,如图(oracle
在eclipse中右击工程选择 configure build path ,add external
jars,将上述包添加进去,就ok了
private& void DBconn() {&
&&&&&&&&&&&
Connection conn =&
&&&&&&&&&&&
ResultSet rs =&
&&&&&&&&&&&
Statement state =&
&&&&&&&&&&&
&&&&&&&&&&&&&&&
Class.forName("oracle.jdbc.driver.OracleDriver");&
&&&&&&&&&&&&&&&
DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:com",userName,passWord);&
&&&&&&&&&&&&&&&
conn.createStatement();&&&&&&&&&&
&&&&&&&&&&&&&&&
rs = state.executeQuery("select * from
table_user");&
&&&&&&&&&&&&&&&
while(rs.next()){&
&&&&&&&&&&&&&&&&&&&
String s = rs.getString("USER_ID");&
&&&&&&&&&&&&&&&&&&&
System.out.println(s.toLowerCase());&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
} catch (ClassNotFoundException e) {&
&&&&&&&&&&&&&&&
e.printStackTrace();&
&&&&&&&&&&&
} catch (SQLException e) {&
&&&&&&&&&&&&&&&
e.printStackTrace();&
&&&&&&&&&&&
} finally {&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
if(rs != null)&
&&&&&&&&&&&&&&&&&&&&&&&
rs.close();&
&&&&&&&&&&&&&&&&&&&
if(state != null)&
&&&&&&&&&&&&&&&&&&&&&&&
state.close();&
&&&&&&&&&&&&&&&&&&&
if(conn != null)&
&&&&&&&&&&&&&&&&&&&&&&&
conn.close();&
&&&&&&&&&&&&&&&
} catch (SQLException e) {&
&&&&&&&&&&&&&&&&&&&
e.printStackTrace();&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&
}&&&&&&&&&&&&&&
 Connection conn =
DriverManager.getConnection&
     ("jdbc:oracle:thin:@dbhost:1521:ORA1", "scott",
"tiger");&
             // @machine:port:SID,  userid, password
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。oracle10g-经常出现TNS-12505和TNS-12514错误
[问题点数:40分,无满意结帖,结帖人javababy5]
oracle10g-经常出现TNS-12505和TNS-12514错误
[问题点数:40分,无满意结帖,结帖人javababy5]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2013年5月 Oracle大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。java 连接oracle报错java.sql.SQLException: Listener refused the connection with the following error_百度知道
java 连接oracle报错java.sql.SQLException: Listener refused the connection with the following error
.DatabaseError:171) at oracle.&lt:411) at oracle: Listener refused the connection with the following error.成功得到链接&
String url=&quot.jdbc.OracleDriver&quot.DriverManager:110) &#47.jdbc.118.java.main(访问数据库oracle.throwSqlException(DatabaseError.jdbc:33) .DriverManager.newSQLException(SQLStateMorcl&
Class.254.connect(OracleDriver:String driver=&quot.driver.java.throwSqlException(DatabaseE(PhysicalCscott&quot.
} catch (Exception e) {
&#47:java.254.JDBC.out:listener does not currently know of service requested in connect descriptorThe Connection descriptor us
}报错信息为.jdbc, TNS.SQLException:thin.driver.5.OracleDorcl at oracle.jdbc.getConnection(DriverManager.newSQLException(DatabaseError.driver.init&gt.T4CConnection, password):);
String user=&oracle.java:169.forName(driver):ORA-) :1521/;&#47.driver.close().T4CConnection.getConnection(T4CDriverExtension.jdbc.SQLStateMapping:202) at oracle.
Connection conn=DriverManager.printStackTrace().logon(T4CConnection.java.java.(T4CC
String password=&quot, user.java.jdbc.访问数据库oracle.jdbc.DatabaseError.driver.driver.driver.PhysicalConnection.println(&quot.getConnection(url.118.&#47.DatabaseError.5;此处即为最后一行中所提的15行
Sjdbc:496) at oracle:70) init&gt:@169; TODO Auto-generated catch block
e.driver.&lt:1521&#47.java:582) tiger&quot.getConnection(DriverManager.sql.java.T4CDriverExtension.java:465) at java:185) at maminjie.java.sql代码为
提问者采纳
254:@169;jdbc:String&thisString&nbsp:oracle.118:orcl&quot:@169:oracle.5;take&nbsp:thin.5:thin:1521/orcl&url=&;url=&
大师,好像还是不行呢,报错变成这样 了java.sql.SQLException: Listener refused the connection with the following error:ORA-12505
public&class&ConnectionTest&{ static&Connection& static&Statement& static&ResultSet& static&String&driver&=&&oracle.jdbc.driver.OracleDriver&; static&String&url&=&&jdbc:oracle:thin:@127.0.0.1:1521:orcl&; public&static&void&main(String[]&args)&{
DriverManager.registerDriver(new&oracle.jdbc.driver.OracleDriver());
conn&=&DriverManager.getConnection(url,&&scott&,
&WaydeWang&);
stm&=&conn.createStatement();
//String&sql&=&&create&table&test2(id&NUMBER(6)&not&null)&;
//ResultSet&rs1&=&stm.executeQuery(sql);
stm.executeUpdate(&insert&into&test2&values(&&+&3453&+&&)&);
stm.executeUpdate(&insert&into&test2&values(&&+&1234&+&&)&);
stm.executeUpdate(&insert&into&test2&values(&&+&2345&+&&)&);
stm.executeUpdate(&insert&into&test2&values(&&+&4567&+&&)&);
rs&=&stm.executeQuery(&select&*&from&test2&);
while&(rs.next())&{
System.out.println(rs.getInt(&ID&));
conn.close();
}&catch&(SQLException&e)&{
e.printStackTrace();
} }}你改成你的,如果还不可以,你就是oracle监听服务什么的出错了
依旧是12505,貌似监听真的出问题了……求大师支招……
提问者评价
谢谢大师,大师辛苦了!
其他类似问题
oracle的相关知识
按默认排序
其他1条回答
ORA-12514。建议百度关键字手上没oracle软件,不能帮你测试哦,会找到你需要的
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁在jsp页面写java代码jdbc连接提示No suitable driver found for java:oracle:thin:@10.1_百度知道
在jsp页面写java代码jdbc连接提示No suitable driver found for java:oracle:thin:@10.1
  没有找到有效地数据库驱动  你有没有加载数据库驱动?没有的话到网上下一个,或者我这有个现成的
lib包里有的ojdbc14.jar包,但是jsp页面里写的jdbc就是提示这个错误
那你地址有没有写错??我都是这样写的: jdbc:oracle:thin:@localhost:1521:orcl
我在自己电脑上测试是没错的,但是放在服务器上别人的项目包里就报这个错&java:oracle:thin:@10.10.10.28:1521:oa&;
看看你的IP地址有没有错,IP地址必须是你放数据库的服务器的IP地址;比如你的项目拿到别人的服务器上,但数据库还在你的机子上的话,IP地址必须是你的数据库服务器的IP地址
我维护这个数据库半年了,不可能写错的,
这。。。。就不知道了,我现在还是个学生党,还没实际布置过项目,不清楚具体情况,不好意思了
其他类似问题
按默认排序
其他1条回答
没有驱动包,去下载一个ojdbc14.jar的驱动包
问题就是这个jar包是有的
你确定正确加载到myeclipse中了?
我不是在myclipse中做的,而是做完之后放在WebLogic服务器里运行的
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 oracle tns连不上 的文章

 

随机推荐