为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:V8 458764
【操作系统】:任意
【CPU】: 任意
【问题描述】*:
使用数据源使用dbcp2,达梦jdbc驱动,驱动类XA类型:dm.jdbc.driver.DmdbXADataSource
关闭连接出现
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911)
at java.util.ArrayList$Itr.next(ArrayList.java:861)
at dm.jdbc.driver.DmdbPooledConnection.fireConnectionEvent(DmdbPooledConnection.java:85)
at dm.jdbc.driver.DmdbPooledConnection.access$0(DmdbPooledConnection.java:83)
at dm.jdbc.driver.DmdbPooledConnection$1.invoke(DmdbPooledConnection.java:126)
at com.sun.proxy.$Proxy105.close(Unknown Source)
【问题分析】
dm.jdbc.driver.DmdbPooledConnection.fireConnectionEvent代码中
private synchronized void fireConnectionEvent(boolean paramBoolean, SQLException paramSQLException) {
for (ConnectionEventListener connectionEventListener : this.connectionEventListeners) {
if (paramBoolean) {
connectionEventListener.connectionClosed(new ConnectionEvent(this, paramSQLException));
continue;
}
connectionEventListener.connectionErrorOccurred(new ConnectionEvent(this, paramSQLException));
}
}
直接操作原始listener集合,listener本身可能会执行removeConnectionEventListener方法,因此此处建议先克隆一份listener,再遍历,mysql、kingbase驱动都是这样处理的
使用新版本的驱动,已解决

能够把你关闭连接的方法和使用的驱动版本发下吗?