NC Cloud前台报错“sql original exception nc.jdbc.framework.crossdb.ExcessMaxRowException: Read too much data from database for one time!!(-1): 300000 at nc.jdbc.framework.crossdb.CrossDBResultSet.next”
$$debuglevel=ERROR $$msg=开始调用nc.vo.pu.upgrade.vncc.PUUpgrade65ToNccV1的doAfterUpdateData方法,oldVerison=NC Cloud 2021.0520210427173127, newVersion=NC Cloud 2021.1120211120235408 $$debuglevel=ERROR $$msg=开始调用nc.vo.pu.upgrade.vncc.PUUpgrade65ToNccV1的doAfterUpdateData方法,oldVerison=NC Cloud 2021.0520210427173127, newVersion=NC Cloud 2021.1120211120235408 $$callid= $$thread=[InstallDBThread]$$host= $$userid= $$ts=2022-06-01 00:09:21 $$debuglevel=ERROR $$msg=sql original exception nc.jdbc.framework.crossdb.ExcessMaxRowException: Read too much data from database for one time!!(-1): 300000 at nc.jdbc.framework.crossdb.CrossDBResultSet.next(CrossDBResultSet.java:749) at nc.impl.pubapp.pattern.database.DataAccessUtils.query(DataAccessUtils.java:92) at nc.vo.pu.upgrade.vncc1.PUUpgradeBatchPaymentUtil.updateOrderInvoiceMoney(PUUpgradeBatchPaymentUtil.java:246) at nc.vo.pu.upgrade.vncc1.PUUpgradeBatchPaymentUtil.updateOrderPay(PUUpgradeBatchPaymentUtil.java:54) at nc.vo.pu.upgrade.vncc.PUUpgrade65ToNccV1.upgradeForBatchPaymentHandle(PUUpgrade65ToNccV1.java:143)
没有找到相关结果
1 个回复
nccloud
1、通过分析,这里的数据是需要查询出来,进行计算之后才可以被正确的写入单据中。分析了一下,这里无法分批查询,因此可以通过扩大最大条数限制来解决这个问题。
2、以这个bug中的问题为例,可以通过sql(select pk_order,pk_invoice,sum(norigtaxmny) from po_invoice_b where pk_order<>'~' and dr =0 and cfirsttypecode ='21' and pk_order is not null group by pk_order,pk_invoice)看一下结果集有多少,然后在启动参数中相应设置一下最大参数即可。
3、启动参数如下(下面的600000只是举个例子,具体情况具体填写):
-Dnc.resultset.max=600000
这个参数只是升级的时候用一下,升级完成之后,可以删除。
4、如果扩的太大,有可能有内存溢出问题,需要扩大内存解决一下。