问题标签 [tomcat-jdbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring-Boot:如何设置 JDBC 池属性,例如最大连接数?
Spring-Boot 是一个非常棒的工具,但是当涉及到更高级的配置时,文档有点稀疏。如何设置数据库连接池的最大大小等属性?
Spring-Boot 支持tomcat-jdbc
,HikariCP
并且Commons DBCP
它们本身是否都以相同的方式配置?
java - Tomcat jdbc连接池——回滚放弃的事务
我们使用removeAbandoned=true
. 如果连接被放弃,该选项确实有效,但连接只是关闭。对于 Oracle,这意味着当前事务已提交(请参阅此问题)。这不好,因为不应该提交未完成的事务。
如何配置一个池,以便如果放弃连接,则首先回滚当前事务,然后关闭连接?
我试过rollbackOnReturn=true
了,但池似乎没有将它用于废弃的连接。
编辑:我们使用defaultAutoCommit=false
编辑:发生的一种情况是集成测试的调试;由于此类提交,我们的事务表被截断
spring-boot - 检查数据库运行状况时收到“RecoverableDataAccessException”的原因是什么?
我正在使用 spring-boot 和 oracle 数据库。
在访问http://localhost:8888/health
健康端点时,我得到以下响应:
在搜索上述问题详细信息时,我发现了这个链接https://github.com/spring-projects/spring-boot/issues/1303。它详细描述了这个问题,但它非常简短地提到了解决方案部分。
正如我们在上述来源中看到的那样,这是新状态下的问题。一旦我观察到即使响应返回此异常,应用程序仍会继续将记录插入数据库。
我们如何解决上述异常以及它对正在运行的引导应用程序有什么影响?
mysql - NamingException:无法使用 tomcat7-maven-plugin h2/mysql 数据库创建资源实例
我正在尝试创建 maven Web 应用程序项目,该项目在打包时制作独立的可执行 jar,为此我正在使用 tomcat7-maven-plugin。最初的 hello world 类型的应用程序运行良好,但我正在努力使其与数据库一起使用。这是我的 pom.xml 的样子:
src/main/webapp/WEB-INF/web.xml:
src/main/resources/tomcat/context.xml
在我的java代码中我正在尝试:
或 java:/comp/env/jdbc/H2DB 用于 h2 数据库 当 tomcat 启动我的 servlet 时,两种方式我都会得到相同的异常:
严重:Servlet /helloworld 抛出 load() 异常 javax.naming.NamingException:无法在 javax.naming.spi.NamingManager.getObjectInstance( Unknown Source) at org.apache.naming.NamingContext.lookup(NamingContext.java:843) at org.apache.naming.NamingContext.lookup(NamingContext.java:154) at org.apache.naming.NamingContext.lookup(NamingContext.lookup) java:831) 在 org.apache.naming.NamingContext.lookup(NamingContext.java:154) 在 org.apache.naming.NamingContext.lookup(NamingContext.java:831) ...
我会很感激任何想法。提前致谢。
java - 渴望初始化连接池和自定义超时值
我正在使用 Tomcat JDBC 连接池(这是 Spring Boot 默认设置)来管理与我的 PostgreSQL 集群的连接,我只是注意到只有在进行第一个查询时才会创建该池。我的问题是双重的:
- 是否有任何优雅的方法可以强制急切地创建池(即在启动应用程序时)?我相信在启动时执行一个简单的查询就可以了,但如果可以的话,我更喜欢更优雅的方式。
- 在我的一项测试中,我曾经
iptables
丢弃所有指向 PostgreSQL 集群的流量。这导致第一个查询在消息失败之前持续了大约 127 秒Unable to create initial connections of pool
。127秒太多了。有什么办法可以为超时设置一个较低的值吗?我已经阅读了文档,但无法得出太多结论。
tomcat - 使用tomcat jdbc pool StatementCache拦截器时出错
我正在使用带有“apache-tomcat-7.0.47”的tomcat jdbc池作为我的应用服务器。当我不使用 StatementCache 拦截器时,一切正常。但是,一旦我在 context.xml 中声明 StatementCache 拦截器,我就会开始收到错误消息。以下是我的 context.xml 中的条目:
以下是我得到的错误跟踪:
有没有其他人遇到过这个错误?在我看来,第一条语句被执行并关闭。该语句被缓存。下一个数据库获取关闭的语句。我在我的应用程序中使用 spring 和 ibatis。我是否应该在应用程序中执行某些操作以不关闭该语句,或者如果已关闭则可能打开该语句?
java - 如何为 postgres 连接设置 application_name?
我正在使用 tomcat 连接池org.apache.tomcat.jdbc.pool.DataSource
。连接出现在我的数据库pg_stat_activity
中,为空application_name
。
如何在我的 java 应用程序中设置该应用程序名称,以便我知道每个连接来自哪里(因为将有多个应用程序访问同一个数据库)?
java - 使用 Tomcat JDBC 池作为休眠连接池
在建立在 hibernate 之上的独立应用程序中,我喜欢使用Tomcat JDBC Connection Pool。
我的猜测是我需要在 hibernate.cfg.xml 中添加一些配置。
有人可以指导我如何配置休眠以使用“Tomcat JDBC 连接池”作为连接池。
java - jetty-maven-plugin 和 tomcat-jdbc 8.0.9+ 之间的类路径问题导致 ServiceConfigurationError
我正在使用以下应用程序开发:
jetty-maven-plugin:9.3.2.v20150730
tomcat-jdbc:8.0.8 (它有 tomcat-juli 作为依赖项)
尝试将 tomcat-jdbc jar 升级到 8.0.9+ 之后的任何版本后,我收到以下错误:
java.util.ServiceConfigurationError: org.apache.juli.logging.Log: 提供者 org.eclipse.jetty.apache.jsp.JuliLog 不是子类型
查看这两个版本之间的变更日志,我发现了一些可疑的东西:
“在 JULI LogFactory 中添加一个简单的基于 ServiceLoader 的发现机制,以便更容易独立于 Tomcat 使用依赖于 JULI(如 Jasper)的 JULI 和 Tomcat 组件。补丁由 Greg Wilkins 提供。(markt)”
另外,我发现 Apache Tomcat JDBC 连接池中引入了一个新的系统属性:
org.apache.tomcat.jdbc.pool.onlyAttemptCurrentClassLoader
"控制动态类的类加载,例如 JDBC 驱动程序、拦截器和验证器。如果设置为 false,默认值,池将首先尝试使用当前加载器(即加载池类的类加载器)进行加载,如果类加载尝试使用线程上下文加载器加载失败。将此值设置为 true,如果您希望保持与 Apache Tomcat 8.0.8 及更早版本的向后兼容,并且仅尝试当前加载器。如果未设置,则默认值为 false。
不幸的是,使用该属性使用 jetty:run 启动插件并不能解决问题。
任何帮助,将不胜感激!谢谢!
堆栈跟踪和依赖树:
spring - 我们可以在 Spring 中使用 DBCP 2 或 Tomcat 连接池进行分布式事务吗?这些连接池可以与 JOTM 或 Atomikos 一起使用吗?
最初我对多个数据源使用不同的事务管理器。但是,如果其中一个数据源发生事务失败,我在管理所有数据源的回滚时遇到问题。我想在 Spring 中使用单个事务管理器管理多个数据源。所以我选择使用 JOTM 或 Atomikos。这两个事务管理器都使用XA Connection pool(org.enhydra.jdbc.pool.StandardXAPoolDataSource)。但是在我的项目中,我只被允许使用DBCP 2(org.apache.commons.dbcp.BasicDataSource) 或 Tomcat Connection Pool(org.apache.tomcat.jdbc.pool.DataSource)。是否可以将任何一个连接池与 JOTM 或 Atomikos 一起使用。请有人帮助我以及配置示例。下面是我的配置细节,
<
如果有任何其他可能的方法来实现这一点,也可以提供帮助。