- 如果我将DataSource作为OSGI中的服务公开,应该如何处理数据库连接失败?我应该配置一个DataSource服务的拦截器,它将捕获数据库连接失败异常并取消注册DataSource服务?或者OSGI容器会为我处理异常?
- 我应该如何配置消费服务,以便它能够在DataSource服务不可用的情况下生存下来,并允许用户再次重新尝试该事务?
1
A
回答
0
您应该像处理不使用OSGi时一样处理意外的异常。
您应该使用连接池并将其注册为OSGi服务。它会为你处理连接失败。即使在使用该连接期间出现异常,您也必须始终关闭连接。 (在java 6之前的finally块中,以及在java 7之后使用try-with-resources块)。连接池通过实现DataSource接口来提供它们的功能。
有很多连接池。你可以为他们谷歌。
我实现了两个基于commons-dbcp的OSGi组件。一个用于汇集常规数据源,另一个用于汇集XADataSources。该组件选取原始DataSource/XADataSource OSGi服务,而不是注册新的池化数据源OSGi服务。
您可以在这里找到该模块的源:https://github.com/everit-org/commons-dbcp-component
它可在Maven的中央位置:http://search.maven.org/#artifactdetails%7Corg.everit.osgi%7Corg.everit.osgi.jdbc.commons.dbcp%7C2.0.1%7Cbundle
下降罐子到您的OSGi容器后,你会看到的配置可能性WebConsole配置页面上的组件(如果您有webconsole)。
相关问题
- 1. 处理云数据库连接失败
- 2. 数据库连接失败
- 3. 数据库连接失败
- 4. 数据库连接失败
- 5. 如何处理失败的Redis连接
- 6. 如何处理WCF连接失败
- 7. 在PHP中处理和通知数据库连接失败
- 8. Oracle如何处理数据库连接?
- 9. 如何处理Java EE上的Hibernate,C3P0数据库连接失败?
- 10. 如何正确处理与数据库的Django连接丢失?
- 11. 与数据库的连接失败:java
- 12. Android数据库连接失败
- 13. 与SQL数据库的连接失败。
- 14. 连接到mysql数据库失败
- 15. MySQL :: connect()数据库连接失败?
- 16. 的MongoDB数据库连接失败
- 17. 连接到数据库失败的DNN
- 18. Jubula PostgreSQL数据库连接失败
- 19. PHP数据库连接失败
- 20. 连接数据库失败服务器
- 21. Php mysqli数据库连接失败?
- 22. 与Oracle数据库连接失败
- 23. 到mysql数据库的连接失败
- 24. pg_dump与数据库的连接失败
- 25. Rails postgresql数据库连接失败
- 26. 数据库连接测试失败
- 27. PDO数据库连接失败
- 28. 与MySQL数据库连接失败
- 29. STS数据库连接Ping失败
- 30. Moodle数据库连接失败
>>它会为你处理连接失败<<您是否在说OSGI容器将捕获数据库连接失败异常并取消注册DataSource服务? – isobretatel
否。池数据源将按照您的配置进行操作。例如:它可以在提供任何连接之前运行检查SQL,并在数据库不可用时等待超时。即使数据库不可用,DataSource服务仍保持注册状态。 –