检测传递到c3p0连接池的无效凭据

纳迪尔

我正在编写一个在数据库上做一些事情的程序。允许用户通过传递数据库主机端口,类型和凭据来配置数据库进程。值正确时,一切正常。但是,当用户传递无效的凭据时,我想显示一个错误。所以这是我创建连接池的部分

ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setJdbcUrl( connectionUrl );
cpds.setUser(username);
cpds.setPassword(password);

稍后再验证连接是否正常

cpds.getConnection()

我希望得到一些带有供应商特定错误的SQLException,该错误表示凭据无效(在您使用典型的DriverManager方法获取连接时会发生这种情况),但是该过程一直等到引发连接签出异常为止

java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
    at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118)
    at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:77)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:690)
....
Caused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@20014b8 -- timeout at awaitAvailable()
    at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1467)
    at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:644)
    at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:554)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:758)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:685)
    ... 66 more

如何确定c3p0存在无效的凭证问题?

尔塞吉

验证提供的凭据/ JDBC参数的最佳方法是完全避免连接池。

为此目的打开专用连接,并尝试针对新连接(例如SELECT 1,类似的连接执行最简单的SQL 成功后,您可以将它们传递给C3P0,否则将错误传播回用户。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c3p0连接池,DataSources工厂,如何关闭池?

来自分类Dev

Spring,Hibernate C3P0连接池,物理连接未关闭

来自分类Dev

c3p0连接池错误-Oracle RAC

来自分类Dev

C3P0连接池使用此配置给出连接超时错误

来自分类Dev

使用c3p0连接池时,MySQL的最佳最大连接设置是多少?

来自分类Dev

如何查找哪个应用程序创建了每个c3p0连接池?

来自分类Dev

在c3p0连接池中设置SQLite连接属性

来自分类Dev

使用c3p0连接池时,应该在休眠状态下关闭会话?

来自分类Dev

关闭实体管理器时,是否总是将连接检入到c3p0连接池中?

来自分类Dev

C3p0尝试创建新的连接池并失败,并显示ClassNotFoundException

来自分类Dev

使用guice,mybatis和c3p0或bonecp配置连接池大小

来自分类Dev

如何使用c3p0处理连接池

来自分类Dev

处理连接池耗尽并避免Hibernate / C3P0中的死锁

来自分类Dev

如何检查 c3p0 的连接池是否在我的项目中工作?

来自分类Dev

使用Spring,Hibernate和C3P0在多租户Web应用程序中管理连接池

来自分类Dev

使用Spring,Hibernate和C3P0在多租户Web应用程序中管理连接池

来自分类Dev

c3p0连接检出有时需要15分钟才能失败

来自分类Dev

使用JDBC / c3p0连接到MariaDB

来自分类Dev

Python请求URLLib3连接池大小

来自分类Dev

urllib3连接池在哪里绑定?

来自分类Dev

python request / urllib3连接池未捕获HTTP错误

来自分类Dev

DB2连接池

来自分类Dev

H2连接池

来自分类Dev

Hibernate和C3p0池的问题

来自分类Dev

JPA,带有 c3p0 和 Postgres 的休眠。检测数据库连接问题

来自分类Dev

c3p0似乎关闭了活动的连接

来自分类Dev

c3p0桩连接对象

来自分类Dev

使用现有的psycopg2连接池创建sqlalchemy引擎

来自分类Dev

初始化c3p0池期间,采集尝试失败

Related 相关文章

  1. 1

    c3p0连接池,DataSources工厂,如何关闭池?

  2. 2

    Spring,Hibernate C3P0连接池,物理连接未关闭

  3. 3

    c3p0连接池错误-Oracle RAC

  4. 4

    C3P0连接池使用此配置给出连接超时错误

  5. 5

    使用c3p0连接池时,MySQL的最佳最大连接设置是多少?

  6. 6

    如何查找哪个应用程序创建了每个c3p0连接池?

  7. 7

    在c3p0连接池中设置SQLite连接属性

  8. 8

    使用c3p0连接池时,应该在休眠状态下关闭会话?

  9. 9

    关闭实体管理器时,是否总是将连接检入到c3p0连接池中?

  10. 10

    C3p0尝试创建新的连接池并失败,并显示ClassNotFoundException

  11. 11

    使用guice,mybatis和c3p0或bonecp配置连接池大小

  12. 12

    如何使用c3p0处理连接池

  13. 13

    处理连接池耗尽并避免Hibernate / C3P0中的死锁

  14. 14

    如何检查 c3p0 的连接池是否在我的项目中工作?

  15. 15

    使用Spring,Hibernate和C3P0在多租户Web应用程序中管理连接池

  16. 16

    使用Spring,Hibernate和C3P0在多租户Web应用程序中管理连接池

  17. 17

    c3p0连接检出有时需要15分钟才能失败

  18. 18

    使用JDBC / c3p0连接到MariaDB

  19. 19

    Python请求URLLib3连接池大小

  20. 20

    urllib3连接池在哪里绑定?

  21. 21

    python request / urllib3连接池未捕获HTTP错误

  22. 22

    DB2连接池

  23. 23

    H2连接池

  24. 24

    Hibernate和C3p0池的问题

  25. 25

    JPA,带有 c3p0 和 Postgres 的休眠。检测数据库连接问题

  26. 26

    c3p0似乎关闭了活动的连接

  27. 27

    c3p0桩连接对象

  28. 28

    使用现有的psycopg2连接池创建sqlalchemy引擎

  29. 29

    初始化c3p0池期间,采集尝试失败

热门标签

归档