-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Handling DB errors issue
PostPosted: Tue Jun 05, 2007 11:17 am 
Newbie

Joined: Tue Jun 05, 2007 10:56 am
Posts: 3
Hibernate version:
3

Name and version of the database you are using:
Oracle 10g



Code:
try {
       // Create the SessionFactory
             
       Configuration config = new Configuration();
       config.configure();
       config.setProperty("hibernate.connection.driver_class",driverClass);
       config.setProperty("hibernate.connection.url",url);
       config.setProperty("hibernate.connection.username",username);
       config.setProperty("hibernate.connection.password",password);
       config.setProperty("hibernate.dialect", dialect);

       sessionFactory =  config.buildSessionFactory();

     }
     catch (Throwable ex) {
       System.err.println("Initial SessionFactory creation failed." + ex);
       throw new ExceptionInInitializerError(ex);
     }
   }


In case of wrong password, there is no exception fired while calling the buildSessionFactory method. The only thing - it writes a trace into the log. Is there any way to handle this error ?

The only workaround I found is to open direct JDBC connection and catch the sql exception, but it looks pretty ugly=(


Here is the log:
Code:
14:36:33,707  INFO C3P0ConnectionProvider:81 - C3P0 using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@10.1.60.151:1521:oracle
14:36:33,707  INFO C3P0ConnectionProvider:82 - Connection properties: {user=sw3, password=****}
14:36:33,707  INFO C3P0ConnectionProvider:85 - autocommit mode: false
14:36:33,785  INFO MLog:80 - MLog clients using log4j logging.
14:36:34,301  INFO C3P0Registry:204 - Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
14:36:34,613  INFO AbstractPoolBackedDataSource:462 - Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@386d7048 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@30a91633 [ acquireIncrement -> 1, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2rvy1d7m1y0b76d9fvtxp|17753a8, idleConnectionTestPeriod -> 100, initialPoolSize -> 10, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 100, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 30, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 10, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@310a6101 [ description -> null, driverClass -> null, factoryClassLocation -> null, identityToken -> 2rvy1d7m1y0b76d9fvtxp|17082d8, jdbcUrl -> jdbc:oracle:thin:@10.1.60.151:1521:oracle, properties -> {user=******, password=******} ], preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> 2rvy1d7m1y0b76d9fvtxp|11d20d3, numHelperThreads -> 3 ]
14:36:54,598  WARN ThreadPoolAsynchronousRunner:608 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1d4ee7e -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
14:36:54,613  WARN ThreadPoolAsynchronousRunner:624 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1d4ee7e -- APPARENT DEADLOCK!!! Complete Status:
   Managed Threads: 3
   Active Threads: 3
   Active Tasks:
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@90ebfe (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@75a340 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@130cb4b (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
   Pending Tasks:
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@72d398
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@a1b4e7
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6baf24
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1b7a553
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1c71508
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@135d18b
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@50078e
Pool thread stack traces:
   Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
      java.lang.Thread.sleep(Native Method)
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
      com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
   Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
      java.net.SocketInputStream.socketRead0(Native Method)
      java.net.SocketInputStream.read(SocketInputStream.java:129)
      oracle.net.ns.Packet.receive(Unknown Source)
      oracle.net.ns.DataPacket.receive(Unknown Source)
      oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
      oracle.net.ns.NetInputStream.read(Unknown Source)
      oracle.net.ns.NetInputStream.read(Unknown Source)
      oracle.net.ns.NetInputStream.read(Unknown Source)
      oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1099)
      oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
      oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:271)
      oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:357)
      oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
      oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
      oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
      oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
      com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
      com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
      com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
      com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
      com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
      com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
      com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
   Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
      java.lang.Thread.sleep(Native Method)
      com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
      com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)


14:37:35,051  WARN BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@130cb4b -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.sql.SQLException: ORA-01017: invalid username/password; logon denied

   at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
   at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:790)
   at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
   at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
   at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
   at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
   at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
   at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
   at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
   at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
   at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
   at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
   at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
   at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
   at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
14:37:35,083  WARN BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1c71508 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.sql.SQLException: ORA-01017: invalid username/password; logon denied

   at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
   at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:790)
   at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
   at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
   at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
   at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
   at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
   at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
   at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
   at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
   at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
   at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
   at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
   at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
   at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)
14:37:35,130  WARN SettingsFactory:117 - Could not obtain connection metadata
java.sql.SQLException: Connections could not be acquired from the underlying database!
   at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
   at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
   at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
   at org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:56)
   at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
   at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
   at com.actelis.persistency.dbmodel2.HibernateUtil.init(HibernateUtil.java:73)
   at com.actelis.persistency.PersistencySession.connect(PersistencySession.java:493)
   at com.actelis.persistency.PersistencySession.start(PersistencySession.java:71)
   at com.actelis.server.LocalServer.<init>(LocalServer.java:380)
   at com.actelis.server.LocalServer.main(LocalServer.java:390)
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
   at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
   at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
   at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
   at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
   ... 10 more


BTW,

This line looks a little bit strange, but in the case of right password, i dont get this warning:

14:36:54,613 WARN ThreadPoolAsynchronousRunner:624 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1d4ee7e -- APPARENT DEADLOCK!!!


thanks in advance for assistance,
Michael


Top
 Profile  
 
 Post subject: I faced a new problem
PostPosted: Wed Jun 06, 2007 12:19 am 
Newbie

Joined: Tue Jun 05, 2007 10:56 am
Posts: 3
New problem, but from the same type:
I have no way handle hbm2ddl.auto UPDATE errors....

It's rather urgent =(

UPDATE:

This problem is solved.

Solution: need to use org.hibernate.tool.hbm2ddl.SchemaUpdate directly.
Code:
something like that:
  SchemaUpdate update = new SchemaUpdate(config);
  update.execute(true,true);
  List l = update.getExceptions();
  Iterator i = l.listIterator();
  while(i.hasNext())
  {
      Exception ex  = (Exception) i.next();
      ex.printStackTrace();
  }


Nevertheless, the previous problem is still actual.


Michael


Top
 Profile  
 
 Post subject: bad news
PostPosted: Wed Jun 06, 2007 4:15 am 
Newbie

Joined: Tue Jun 05, 2007 10:56 am
Posts: 3
Bad news:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1833



Quote:
we don't throw this exception from the sf creation since it is "secondary" behavior and exceptions in schemaexport/update or dialect detection
should not prevent your application to start up.

If you want to verify the connection works open a session.


The only problem is that i can create a session without exception too. First time i get an exception will be on trying to begin a transaction =/


Any Ideas?


Top
 Profile  
 
 Post subject: same problem...
PostPosted: Wed Jul 25, 2007 12:16 pm 
Newbie

Joined: Wed Jul 25, 2007 12:13 pm
Posts: 1
Location: Paraiba - Brazil
Hi..
i have the same problem... if you find any idea to solve it please post here..
Thanks!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.