2

接続プールを設定し、Oracle のジョブ プロセスを変更しました。しかし、まだこのエラーが発生しています: ORA-12516, TNS:listener could not find available handler with matching protocol stack

このエラーを解決するために実行する必要がある、接続プールまたは Oracle ジョブ プロセス設定以外の特定の構成はありますか

4

3 に答える 3

2

上記の解決策は、問題を隠すだけです。ほとんど死んだ後、私は本当にうまくいく解決策を見つけました。何らかの理由で、休止状態の OracleDialect (または Oracle10gDialect) で実行されている 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>

この情報を context.xml (Tomcat) に追加すると、次のようになります。

<Resource name="jdbc/mydb"
        type="javax.sql.DataSource"
        auth="Container"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@localhost:1521:mydb"
        username="mydbuser"
        password="12345"
        maxActive="20"
        maxIdle="10"
        maxWait="-1"
        validationQuery="select 1 from dual" />

これは私の問題を解決します。おそらく次のいずれかの構成maxActivemaxIdleまたはmaxWaitが、セッションを閉じてプールに戻すために必要な値を Oracle に提供します。JNDI に移行する保留中のタスクがあったため、システムではこの方法を維持していますが、JNDI を使用したくない場合は、動作する可能性のあるhibernatePropertiesで同様の値を検索してみてください。

Obs.: JNDI は Jetty の追加で使用できますクラスorg.eclipse.jetty.plus.jndi.Resourceのタグをjetty.xmlに追加します。

于 2012-11-22T19:27:36.120 に答える
1

同じ問題がありました。これで問題が解決しました。DBA で次のクエリを実行します。

ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE;
于 2012-07-20T12:05:29.187 に答える
0

私はこれと同じ問題を抱えていて、Spring の DriverManagerDataSource を mchamati として使用していました。ただし、彼が提案した JNDI ソリューションを使用するために、Tomcat やその他の中間アプリケーション サーバーを使用していませんでした。「Spring Data Project」( http://projects.spring.io/spring-data-jdbc-ext/ ) の一部である Oracle の特定の拡張機能の DriverManagerDataSource を置き換えることを解決し、現在は機能しています。

私は次のように解決しました:

<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>

pom.xml の依存関係で Spring Framework のバージョンが異なるため、競合が発生しました。そのため、次のように pom.xml で依存関係を宣言する必要がありました。

<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>

完全な手順へのリンク: http://docs.spring.io/spring-data/jdbc/docs/current/reference/html/orcl.datasource.html

于 2016-05-19T21:08:14.067 に答える