- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个类(我的数据库连接工厂):
@ApplicationScoped
public class ConnectionFactory {
private ComboPooledDataSource datasource;
private Long open = 0l;
private Long close = 0l;
@PostConstruct
public void init() throws PropertyVetoException, SQLException {
datasource = new ComboPooledDataSource();
datasource.setDriverClass("org.postgresql.Driver");
datasource.setJdbcUrl("jdbc:postgresql:dbcampanha");
datasource.setUser("postgres");
datasource.setPassword("admin");
datasource.setMinPoolSize(1);
datasource.setMaxPoolSize(5);
datasource.setCheckoutTimeout(30000);
datasource.setUnreturnedConnectionTimeout(30);
datasource.setMaxIdleTime(30);
datasource.setDebugUnreturnedConnectionStackTraces(true);
datasource.setAcquireIncrement(1);
}
@Produces
@RequestScoped
public Connection getConnection() throws ClassNotFoundException {
open++;
try {
Connection connection = datasource.getConnection();
connection.setAutoCommit(false);
return connection;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void close(@Disposes Connection connection) {
close++;
try {
connection.commit();
connection.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public Long getOpenedConnectionCounter() {
return open;
}
public Long getClosedConnectionCounter(){
return close;
}
public ComboPooledDataSource getDatasource(){
return datasource;
}
}
我将此类与 JAX-RS 应用程序一起使用。对于使用这条路线的一些测试:
@RequestScoped
@Path("/test")
public class TesteService {
@Inject
private Connection connection;
@GET
@Produces(MyMediaType.JSON)
@Path("/yes")
public Response success() throws SQLException {
connection.getClientInfo("");
return Response.ok().build();
}
}
这门课是为我的客户准备的:
public class TesteMain {
private static final String prefix = "http://localhost:8080/schoolwork/service/test/";
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 10000; i++) {
Request request = new Request(prefix + "yes");
request.start();
if(i % 10 == 0)
Thread.sleep(1000l);
}
}
public static class Request extends Thread {
private String rota;
public Request(String rota){
this.rota = rota;
}
@Override
public void run() {
try {
HttpURLConnection url = (HttpURLConnection) (new URL(rota).openConnection());
url.connect();
System.out.println(url.getResponseCode() == 200 ? "SUCCESS" : "ERROR");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
我收到此信息:
{
"opened-connection": 789,
"closed-connection": 867,
}
是的,我关闭的数据库连接数大于打开的。如何?有什么想法吗?
我用
Tomcat 7 + Java 7
附言我很抱歉我的英语不好:/
已解决
我为 AtomicInteger 对象更改了我的计数器,并且工作得很好。
最佳答案
那么,两个简短的评论:
您的计数器由 1000 个并发线程(盒装)读取并随意更新。它们的值通常是不可预测和不确定的。他们当然不会准确地计算您希望他们计算的内容。考虑改用 AtomicLongs 上的原子操作。
您的commit()
(或rollback()
)应该附加到您的数据库业务逻辑,您可以告诉工作单元的部分已经要么成功,要么失败。您不应在关闭时自动提交。
关于java - ConnectionFactory 在 Tomcat 7 中使用 CDI 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33558568/
我安装了一个全新的 WSO2 ESB 4.2.3 版(到目前为止是最稳定的版本),并且我在 axis2.xml 文件中配置了 JMS 传输,如下所示: org.j
我有一个包含两个 ConnectionFactory(不同代理)的应用程序。它们配置有 java 类: @Bean public ConnectionFactory ... @
使用 JBoss 4.0.5、JBossMQ 和 Spring 2.0.8,我试图将 Spring 配置为实例化依赖于远程 JMS 队列资源的 bean。我遇到的所有示例都依赖于使用 JNDI 来查找
我正在 Pearl 9100 中测试一个应用程序。我的应用程序使用 ConnectionFactory 来获取可用连接并执行 HTTP 请求。 我正在像这样设置 ConnectionFactory p
我正在使用 Camel 在 RabbitMQ 中使用和生成消息。另外,我正在使用 Spring boot,所以我创建了一个 ConnectionFactory具有我想要的所有配置的 bean。 效果很
首先,我想为这里的一些杂乱无章的文章道歉。我正在编写一个 spring boot 应用程序来从 MQ 队列中读取消息。但是在尝试创建 MQXAConnectionFactory 对象的实例时出现异常。
我有一个应用程序,它充当服务器并定期将问题/答案推送到 JMS 队列,这部分工作正常。 我想做的是在专用应用程序中使用发送到此队列的消息,但是当我尝试访问 ConnectionFactory 时,当我
我的问题是关于以下两个工厂的使用: 连接工厂 队列连接工厂 目前我只使用ConnectionFactory 来初始化所有内容: Connection conn = factory.createConn
我的理解是: MDBs(消息驱动 Bean)通过激活规范连接。 MDPs(消息驱动 POJO)通过连接工厂连接。 此图from IBM很有帮助: 对我来说,this explanation from
我有一个 connectionFactory 的 spring-bean 到 hornetQ: 并且,这个 bean 正在
在我的应用程序中,我使用 Hibernate 和 mysql 连接到数据库。只要有来自 GUI 的请求,此应用程序就会连接到数据库。在尝试再次连接到数据库后,如果长时间没有来自 GUI 的请求。我收到
我正在使用 WebLogic Server:12.1.1.0、Spring 3.2.11.RELEASE 和 Camel 2.13.4。 我的 WebLogic 上有一个 ConnectionFact
这是我在这个论坛上的第一个问题..:) 请帮助我了解如何在 JBossAS5 上配置 JMS ConnectionFactory ..我创建了一个简单的 MDB 应用程序: @MessageDrive
我正在尝试从 java 应用程序将消息放入 jms 队列 (weblogic) 中。 InitialContext ctx = getInitialContext(); qconFactory = (
我正在使用 Jmeter 的 JMS 点对点采样器来测试将大量 JMS 消息发布到队列时的性能。 Jmeter 目前为每个线程(根据提供的线程数)创建一个新的QueueConnectionFactor
我正在覆盖 Spring Social Twitter 和 Facebook 的默认 Spring Boot 配置。运行应用程序时出现以下错误。 org.springframework.beans.
因此 Tapestry 有其默认的 DatabaseServiceProvider.php,其中包含以下代码。 $this->app->singleton('db.factory', function
我已经通过 JNDI 设置了一个 JMSTemplate,如下所示:
我正在玩 Spring Boot 入门指南,但自动配置失败,我得到: java.lang.ClassNotFoundException: javax.jms.ConnectionFactory 似乎
我正在考虑使用 HornetQ 作为消息传递提供程序。我想知道什么连接工厂适合什么行为/解决方案? 最佳答案 connectionfactory 是基础工厂。具体来说,javax.jms.Connec
我是一名优秀的程序员,十分优秀!