c3p0.SQLWarnings 服务器用户 ID 29 不是数据库“defaultdb”中的有效用户

2024-04-03

我将 Sybase ASE 与 Hibernate-core 4.2.8.Final、hiberante-c3po 4.2.8.Final、hibernate-search 4.4.2.Final 一起使用

我的 hibernate.cfg.xml 文件看起来像这样

    <property name="hibernate.connection.driver_class">com.sybase.jdbc4.jdbc.SybDataSource</property>
    <property name="hibernate.dialect">org.hibernate.dialect.SybaseDialect</property>
    <property name="hibernate.connection.url">jdbc:sybase:Tds:server:5000/dev</property>     
    <property name="hibernate.connection.username">user</property>
    <property name="hibernate.connection.password">password</property> 

    <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property>
    <property name="hibernate.c3p0.min_size">10</property>
    <property name="hibernate.c3p0.max_statements">50</property>        
    <property name="hibernate.c3p0.max_size">100</property>
    <property name="hibernate.c3p0.idle_test_period">1800</property>
    <property name="hibernate.c3p0.timeout">3600</property>

当我添加 hibernate.c3p0 时,我收到以下 SQLWarning,但是当我删除它时,异常消失了。有谁知道如何消除警告或 defaultdb 来自哪里?

c3p0.SQLWarnings Server user id 29 is not a valid user in database 'defaultdb'

java.sql.SQLWarning: Server user id 29 is not a valid user in database 'defaultdb'

    at com.sybase.jdbc4.jdbc.SybConnection.convertToWarnings(SybConnection.java:2893)
    at com.sybase.jdbc4.jdbc.SybConnection.chainWarnings(SybConnection.java:2909)
    at com.sybase.jdbc4.tds.Tds.processLoginAckToken(Tds.java:5125)
    at com.sybase.jdbc4.tds.Tds.doLogin(Tds.java:724)
    at com.sybase.jdbc4.tds.Tds.login(Tds.java:578)
    at com.sybase.jdbc4.jdbc.SybConnection.tryLogin(SybConnection.java:415)
    at com.sybase.jdbc4.jdbc.SybConnection.handleHAFailover(SybConnection.java:3226)
    at com.sybase.jdbc4.jdbc.SybConnection.<init>(SybConnection.java:341)
    at com.sybase.jdbc4.jdbc.SybConnection.<init>(SybConnection.java:248)
    at com.sybase.jdbc4.jdbc.SybDriver.connect(SybDriver.java:233)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
c3p0.SQLWarnings Cannot open default database 'defaultdb'.

无论您是否使用 c3p0,您几乎肯定会遇到该警告,但 c3p0 对于定期检查连接是否有警告并记录它们非常挑剔。

SQLWarnings是通常不会抛出的 Exception 对象。它们被链接成一个链表并与Connection对象。任何Connection,您可以通过调用来检查警告myConnection.getWarnings()并通过致电明确警告myConnection.clearWarnings().

实际上,很少有应用程序会费心检查和清除警告,但 c3p0 会这样做,因此,如果您的应用程序由于某种原因生成警告,当您打开 c3p0 时您会看到它们,但如果没有它,它们似乎会消失。

如果这很烦人并且您想忽略警告,只需关闭记录器的日志记录即可com.mchange.v2.c3p0.SQLWarnings在您使用的任何日志库中。

如果您想理解这些警告而不是忽略它们,那么您必须等待比我更了解 Sybase 的人做出回应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c3p0.SQLWarnings 服务器用户 ID 29 不是数据库“defaultdb”中的有效用户 的相关文章

随机推荐