我有这样的课。
class EmployeeTask implements Runnable {
public void run(){
PayDAO payDAO = new payDAO(session);
String newSalary= payDAO.getSalary(empid);
String newTitle= payDAO.getTitle(empid);
EmployeeDAO employeeDAO = new EmployeeDAO(session);
List<Employee> employees = employeeDAO.getEmployees();
employees.parallelStream().foreach(employee-> employeeDAO.add(newSalary, newTitle,employee));
}
}
我检查了java jetty日志
Theread-1 Insert ...
Theread-2 Insert ...
...
Theread-8 Insert ...
八秒后,每次请求即1秒
Theread-1 Insert ...&lt; = update 1
Theread-2 Insert ...&lt; = update 1
...
Theread-8 Insert ...&lt; = update 1
同样的事情还在继续。
我查看了MaxPooledConnections - 提供了20个MaxPooledConnections PerNode - 提供5个默认值。
我认为Vertica数据库服务器很好,也许客户端没有DatasourceConnection池,如何启用Java端DatasourceConnection池。任何代码示例?
目前我正在使用mybatis ORM,以及以下数据源
<environments default=“XX”>
<environment id=“XX”>
<transactionManager type=“JDBC”/>
<dataSource type="POOLED">
<property name="driver" value="com.vertica.jdbc.Driver"/>
<property name="url" value="jdbc:vertica://host:port/schema”/>
<property name="username" value=“userName”/>
<property name="password" value=“password”/>
<property name="poolMaximumActiveConnections" value=“50”/>
<property name="poolMaximumIdleConnections" value=“10”/>
</dataSource>
</environment>
</environments>
所有线程都在等待的屏障条件是什么,我的猜测是数据源连接。任何帮助表示赞赏
感谢。