SPL 连接 Mysql 偶尔报错: 并发执行获取数据出错:SQL 编码【dfe911ee-f6d3-4a7b-be4d-fab6188d430d】获取数据出错:Error in cell B8
使用 spl 写了一个报表, 就是查询返回数据,比较简单没有做复杂的处理, 偶尔会有异常:
1:报错代码:>vconnurl=connect(dbName)
2:查找 mysql 连接数,500 够用
3:spl 是集成到 java 中
4:异常信息:
[ERROR] 2022-05-25 14:49:55 dd.core.entity.UnitedLogger@(UnitedLogger.java:51):: 并发执行获取数据出错:SQL 编码【dfe911ee-f6d3-4a7b-be4d-fab6188d430d】获取数据出错:Error in cell B8
2021-07-01: Missing the database connection factory
Caused by: java.sql.SQLException: Error in cell B8
2021-07-01: Missing the database connection factory
at com.esproc.jdbc.InternalStatement.executeJDBC(InternalStatement.java:286)
at com.esproc.jdbc.InternalStatement$1.run(InternalStatement.java:148)
Caused by: com.scudata.common.RQException: Error in cell B8
2021-07-01: Missing the database connection factory
at com.scudata.expression.fn.Connect.calculate(Unknown Source:47)
at com.scudata.expression.operator.Assign.calculate(Unknown Source:30)
at com.scudata.expression.Expression.calculate(Unknown Source:143)
at com.scudata.cellset.datamodel.PgmNormalCell.calculate(Unknown Source:188)
at com.scudata.cellset.datamodel.PgmCellSet._$1(Unknown Source:1894)
at com.scudata.cellset.datamodel.PgmCellSet.execute(Unknown Source:2572)
at com.scudata.cellset.datamodel.PgmCellSet.calculateResult(Unknown Source:2615)
at com.scudata.expression.fn.JDBCCall.calculate(Unknown Source:109)
at com.scudata.expression.Expression.calculate(Unknown Source:143)
at com.scudata.expression.fn.Eval.calc(Unknown Source:88)
at com.esproc.jdbc.JDBCUtil.execute(JDBCUtil.java:418)
at com.esproc.jdbc.InternalStatement.executeJDBC(InternalStatement.java:267)
… 1 more
5:配置文件:
<DB name=“dw”>
<property name=“url” value=“jdbc:mysql://ip/dw?useCursorFetch=true”/>
<property name=“driver” value=“com.mysql.jdbc.Driver”/>
<property name=“type” value=“10”/>
<property name=“user” value=“root”/>
<property name=“password” value=“fof”/>
<property name=“batchSize” value=“0”/>
<property name=“autoConnect” value=“false”/>
<property name=“useSchema” value=“false”/>
<property name=“addTilde” value=“false”/>
<property name=“needTransContent” value=“false”/>
<property name=“needTransSentence” value=“false”/>
<property name=“caseSentence” value=“false”/>
最后还有个问题: 数据库连接的地方有没有办法使用 java 工程中配置的连接池,或是中间件配置的连接池。
只是偶尔报错,dbname 应该没有问题
让人看了下代码, 这个 spl 文件,每次访问,都会并发调用 4 次😂 。。。。。———- 和这个有关系吗?
也是就高并发的情况下,会不会有 connection 创建不急时的问题?
感觉还是这个参数不太对😄
就这一个 <DB name=“dw”> 吗?
dbName 可以写死试试?
我试了下,如果 dbName 是个空串,或者写个没有在 xml 里定义过的 dbName,就会报这个 Missing the database connection factory
或者可以试试你的想法,把连接数弄小点(5 个),然后占着,第六个是不是报错啥的?
百度找了下,连接数不够报错似乎有这样的信息:message from server: “Too many connections”
感谢回复!
我试一下: 把 dbname 写死, 做一下并发多一点的测试, 看看会不会出现问题