各位大哥:
   用TOMCAT的服务器,用的是HIBERNATE连接池,如下配置,过一段时间就连接不上ORACLE,连接不上后,重起TOMCAT报错,重起ORACLE 再重起TOMCAT也报错.重起操作系统,然后重起TOMCAT就可以了.我觉得这已经不是ORACLE和TOMCAT的问题或配置问题了.是不是操作系统有什么问题.纠结!
ORACLE的监听有这样的问题,好象还有什么监听分发问题:LSNRCTL> status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=byd-crm.byd.com.cn)(PORT=1521)))
TNS-12560: TNS: 协议适配器错误
 TNS-00530: 协议适配器错误
  64-bit Windows Error: 55: Unknown error
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
LISTENER 的 STATUSHIBERNATER的配置如下:<bean id="datasource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:</value>
</property>
<property name="username">
<value></value>
</property>
<property name="password">
<value></value>
</property>   <property name="maxActive" value="40" /> <property name="maxIdle" value="1000" />
<!--   获得最大连接空间byte -->
<property name="maxWait" value="10000" />
<!--  获得连接的最大等待时间 -->
<property name="removeAbandoned" value="true" />
<!--  连接关闭时是否要清除缓存 -->
<property name="removeAbandonedTimeout" value="180" />
<!--  清空等待时间 -->
<property name="logAbandoned" value="true" /><!-- 是否输出日志-->
<!-- <property name="initialSize" value="8"/>   连接池初始化时连接池的个数--> </bean>tomcat 是报连接不上,跟ORACLE没有监听一样的报

解决方案 »

  1.   

    检查一下监听的问题,协议适配器错误这个错误一般是tnsnames.ora这个文件有问题,更或者你是否安装了客户端和DATABASE啊?如果重复的话,操作系统不一定能找准,尤其是客户端(CLIENT)后装的,这样可以通过修改注册表解决HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下的ORACLE_HOME的值,修改为DATABASE下的HOME路径,应该就无问题了。
      

  2.   

    是不是WIN的系统?
    这个原因可能是防火墙的问题。
    可以尝试下
    [code=SQ]
    解决方法: 
    在服务器端的SQLNET.ORA应类似 
    SQLNET.AUTHENTICATION_SERVICES= (NTS) 
    NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME) 
    TRACE_LEVEL_CLIENT = 16 
    注册表的HOME0加[HKEY_LOCAL_MACHINE] 
    USE_SHARED_SOCKET=TRUE 
    [/code]LINUX的话就不用了
      

  3.   

    <property name="maxIdle" value="1000" />
     
    <property name="maxWait" value="10000" />
    这两个值好像有点儿太大了.
    oralce默认好像是可以160个连接.