oracle的Hibernate配置问题:ORA-12516,TNS:listener找不到匹配的可用处理程序

oracle的Hibernate配置问题:ORA-12516,TNS:listener找不到匹配的可用处理程序,oracle,hibernate,Oracle,Hibernate,我设置了连接池,更改了oracle的作业流程。但仍然会出现以下错误: ORA-12516,TNS:侦听器找不到具有匹配协议堆栈的可用处理程序 客户端使用的连接描述符为 除了连接池或oracle作业进程设置之外,是否需要执行任何特定配置来解决此错误我也遇到了同样的问题。这解决了我的问题,请与DBA一起运行此查询: ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE; 上述解决方案只是掩盖了问题。在我几乎死去之后,我找到了一个真正有效的解决方案。出于某种原因,使

我设置了连接池,更改了oracle的作业流程。但仍然会出现以下错误: ORA-12516,TNS:侦听器找不到具有匹配协议堆栈的可用处理程序 客户端使用的连接描述符为


除了连接池或oracle作业进程设置之外,是否需要执行任何特定配置来解决此错误

我也遇到了同样的问题。这解决了我的问题,请与DBA一起运行此查询:

ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE;

上述解决方案只是掩盖了问题。在我几乎死去之后,我找到了一个真正有效的解决方案。出于某种原因,使用hibernate OracleDialogue(或Oracle10gDialogue)运行的Oracle驱动程序需要额外的参数

我正在使用Spring映射jdbc连接

  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:mydb" />
    <property name="username" value="mydbuser" />
    <property name="password" value="12345" />
   </bean>

然后,我将其更改为使用JNDI:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/mydb" />
</bean>

使用my context.xml(Tomcat)中的以下信息:


这解决了我的问题。可能以下配置之一maxActivemaxIdlemaxWait为Oracle提供了关闭会话并将其返回池所需的值。我在我的系统中保持这种方式,因为我有一个挂起的任务要迁移到JNDI,但是,如果您不想使用JNDI,请尝试在hibernateProperties中搜索类似的值


Obs.:JNDI可以在Jetty中使用,将org.eclipse.Jetty.plus.JNDI.Resource类的标记添加到Jetty.xml。

我也遇到了同样的问题,并且作为mchamati使用了Spring的DriverManager数据源。然而,我并没有使用tomcat或其他中间应用服务器来使用他提出的JNDI解决方案。我决定将DriverManager数据源替换为Oracle的特定扩展,该扩展是“Spring数据项目”(Spring Data Project)的一部分,现在可以使用了

我决定如下:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:orcl="http://www.springframework.org/schema/data/orcl"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.1.xsd
       http://www.springframework.org/schema/data/orcl
       http://www.springframework.org/schema/data/orcl/spring-data-orcl-1.0.xsd">

    <orcl:pooling-datasource id="datasource"
                             url="jdbc:oracle:thin:@localhost:1521/xe"
                             username="myusername"
                             password="mysupersecretpassword"
            connection-caching-enabled="true">
        <orcl:connection-properties>
            v$session.program=MyApplicationName
        </orcl:connection-properties>
    </orcl:pooling-datasource>

</beans>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-oracle</artifactId>
    <version>1.2.1.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </exclusion>
    </exclusions>
</dependency>

v$session.program=MyApplicationName
由于pom.xml依赖项中的Spring框架版本不同,因此存在冲突。因此,我不得不在may pom.xml中重新标记依赖项,如下所示:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:orcl="http://www.springframework.org/schema/data/orcl"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.1.xsd
       http://www.springframework.org/schema/data/orcl
       http://www.springframework.org/schema/data/orcl/spring-data-orcl-1.0.xsd">

    <orcl:pooling-datasource id="datasource"
                             url="jdbc:oracle:thin:@localhost:1521/xe"
                             username="myusername"
                             password="mysupersecretpassword"
            connection-caching-enabled="true">
        <orcl:connection-properties>
            v$session.program=MyApplicationName
        </orcl:connection-properties>
    </orcl:pooling-datasource>

</beans>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-oracle</artifactId>
    <version>1.2.1.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </exclusion>
    </exclusions>
</dependency>

org.springframework.data