java – listener无法启动专用服务器进程

我的spring-hibernate应用程序在过去的一周内运行没有问题,但突然我得到了以下错误.这会是由applicationContext.xml中的配置错误引起的吗?我的oracle10g日志文件没有错误(我每1-2周一次得到错误)

28 Jul 2010 14:20:19,177 INFO [http-2020-19] - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
28 Jul 2010 14:20:19,224 INFO [http-2020-19] - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
28 Jul 2010 14:20:19,240 WARN [http-2020-19] - Error while extracting database product name - falling back to empty error codes
org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Listener refused the connection with the following error:
ORA-12500, TNS:listener failed to start a dedicated server process
The Connection descriptor used by the client was:
10.1.0.23:1521:myserver

 at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:293)
 at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:320)
 at org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes(SQLErrorCodesFactory.java:216)
 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:140)
 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.<init>(SQLErrorCodeSQLExceptionTranslator.java:103)
 at org.springframework.orm.hibernate3.SessionFactoryUtils.newJdbcExceptionTranslator(SessionFactoryUtils.java:145)
 at org.springframework.orm.hibernate3.HibernateAccessor.getDefaultJdbcExceptionTranslator(HibernateAccessor.java:453)
 at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
 at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
 at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
 at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:1055)
 at com

我的applicationcontext.xml hibernate配置

<property name="hibernateProperties">
    <props>



        <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
        <prop key="hibernate.show_sql">false</prop>
        <prop key="hibernate.format_sql">false</prop>
        <prop key="hibernate.use_sql_comments">false</prop>
        <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>  


                      <prop key="hibernate.c3p0.min_size">10</prop>
                        <prop key="hibernate.c3p0.max_size">100</prop>
                        <prop key="hibernate.c3p0.timeout">10</prop>
                        <prop key="hibernate.c3p0.acquireRetryAttempts">30</prop>

                        <prop key="hibernate.c3p0.acquireIncrement">5</prop>

                        <prop key="hibernate.c3p0.idleConnectionTestPeriod">100</prop>

                        <prop key="hibernate.c3p0.initialPoolSize">20</prop>
                        <prop key="hibernate.c3p0.maxPoolSize">100</prop>
                        <prop key="hibernate.c3p0.maxIdleTime">300</prop>
                        <prop key="hibernate.c3p0.maxStatements">50</prop>
                        <prop key="hibernate.c3p0.minPoolSize">10</prop>
                        <prop key="hibernate.c3p0.preferredTestQuery">SELECT 1 FROM DUAL</prop>
                        <prop key="hibernate.c3p0.testConnectionOnCheckout">true</prop>



      <prop key="hibernate.cache.provider_class">

                                                    org.hibernate.cache.EhCacheProvider
        </prop>
        <prop key="hibernate.cache.use_second_level_cache">true</prop>
        <prop key="hibernate.cache.use_query_cache">true</prop>




    </props>
</property>

解决方法:

这与Spring,Hibernate没什么关系,这是一个纯粹的Oracle“问题”.以下是我们可以阅读的有关ORA-125000的内容:

ORA-12500: TNS:listener failed to start a dedicated server process

Cause: The process of starting up a dedicated server process failed. The
executable could not be found or the
environment may be set up incorrectly.

Action: Turn on tracing at the ADMIN level and reexecute the
operation. Verify that the ORACLE
Server executable is present and has
execute permissions enabled. Ensure
that the ORACLE environment is
specified correctly in LISTENER.ORA.
The Oracle Protocol Adapter that is
being called may not be installed on
the local hard drive. Please check
that the correct Protocol Adapter are
successfully linked. If error
persists, contact Oracle Customer
Support.

根据Thread: ORA-12500: TNS:listener failed to start a dedicated server process

This will occur

  • When the database is not open
  • When the maximum number of sessions has been exceeded.
  • When the Windows maximum number of threads has been exceeded.

来自Oracle listener ORA-12500 Tips的更多提示:

The most common cause of a ORA-12500 is a busy system whereby PGA RAM is exhausted. The solutions are:

  • Reduce sort_area_size (pga_aggregate_target) and hash_area_size to make each default PGA size smaller.
  • Add additional server RAM
  • As a last resort, deploy shared servers (the Multithreaded Server (MTS).

Common syntax issues in the listener.ora file can cause numerous listener connection problems, most notably the “ORA-12500: TNS: listener failed to start a dedicated server process” error.

Sometimes this ORA-12500 is because of a PGA RAM shortage on the target database, based on the settings for pga_aggregate_target, sort_area_size and hash_area_size.

You can have a single listener, pointing to multiple Oracle instances, each on a different version.

In Windows, especially Oracle8 and Oracle8i, you may need to re-start the listener service using the Windows task manager.

也可以看看

> TNS: listener failed to start a dedicated server process
> Thread: ORA-12500: TNS:listener failed to start a dedicated server process
> Oracle listener ORA-12500 Tips

上一篇:mysql – 查询坚持’Order By’子句中的列匹配’Group by’子句中的列


下一篇:java – 使用带有oracle 10g的play framework 2.0