views:

142

answers:

1

my spring-hibernate application run without problem for the past 1 week, but suddenly i get below error. will this caused by configuration error in applicationContext.xml? there is no error on my oracle10g log files (i get below errror every 1-2weeks once)

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

my applicationcontext.xml hibernate config

<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>
+7  A: 

This has little to do with Spring, Hibernate, this is a pure Oracle "problem". Here is what we can read about 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.

According to 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.

More tips from 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.

See also

Pascal Thivent
yup. i did aware that most site mentioned need to do like what you mentioned. Do you think if, i set cp30 pooling to 1/2 max connection will also fix the problem? currently i' using 100connections.that is too many right?
cometta
@cometta: I can't say what an appropriate setting for your app is, it really depends on the number of concurrent users, etc, the number of instances you're running, the size of the thread pools, etc. 100 is a pretty decent size for a pool though.
Pascal Thivent