【问题标题】:WSO2 DSS - No operations allowed after connection closed in EI 6.1.1WSO2 DSS - 在 EI 6.1.1 中关闭连接后不允许任何操作
【发布时间】:2021-06-13 11:51:39
【问题描述】:

我经常使用 WSO2 Ei 6.1.1 在 WSO2 DSS 中遇到类似 "com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed" 之类的异常。

例外

<soapenv:Fault xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:axis2ns1244="http://ws.wso2.org/dataservice">
  <soapenv:Code>
     <soapenv:Value>axis2ns1244:DATABASE_ERROR</soapenv:Value>
  </soapenv:Code>
  <soapenv:Reason>
     <soapenv:Text xml:lang="en-US">DS Code: DATABASE_ERROR Nested Exception:- javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'SQLQuery.processPreNormalQuery': DS Fault Message: Error in 'createProcessedPreparedStatement' DS Code: UNKNOWN_ERROR Nested Exception:- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.  DS Code: DATABASE_ERROR Source Data Service:- Name: AR_DropDown_NAC_Merge Location: /AR_DropDown_NAC_Merge.dbs Description: N/A Default Namespace: http://ws.wso2.org/dataservice Current Request Name: AR_Salesperson_DropDown_appRevenue_Oper Current Params: {Salesperson_Query=25} Nested Exception:- DS Fault Message: Error in 'createProcessedPreparedStatement' DS Code: UNKNOWN_ERROR Nested Exception:- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.   </soapenv:Text>
  </soapenv:Reason>
  <soapenv:Detail>

DSS 配置:

<config enableOData="false" id="DropDown_NAC_Merge_Datasource">
      <property name="driverClassName">com.mysql.jdbc.Driver</property>
      <property name="url">jdbc:mysql://host_name:3306/db_name</property>
      <property name="username">user_name</property>
      <property name="password">password</property>
      <property name="maxActive">55</property>
      <property name="minIdle">1</property>
   </config>

我尝试更改 maxActive=55 和 minIdle=1。在 DSS 中启用这些配置级别更改时,它工作正常。但一段时间后(一天或两天)再次面临同样的问题。我可以为此获得任何永久解决方案吗?

注意:mysql 数据库 max_connections 几乎没有达到其限制(150 个连接中使用了 5 个)

【问题讨论】:

    标签: mysql wso2 wso2esb wso2dss wso2ei


    【解决方案1】:

    我认为 MySQL 在一段时间不活动后会隐式关闭数据库连接。
    我会尝试的第一件事是将 ?autoReconnect=true 添加到连接网址,如下所示:

    <property name="url">jdbc:mysql://host_name:3306/db_name?autoReconnect=true</property>
    

    【讨论】:

    • 嗨@tmoasz,谢谢你的建议,我已经实现了同样的,让我们看看未来几天会发生什么。会让你知道状态
    【解决方案2】:

    您是否正在执行任何批处理操作。那么问题可能是由于https://github.com/wso2/product-ei/issues/2403

    【讨论】:

      猜你喜欢
      • 2015-02-16
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2020-04-17
      • 1970-01-01
      • 2011-11-25
      相关资源
      最近更新 更多