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”

https://nccjira.yyrd.com/secure/attachment/957683/957683_image-2022-06-01-16-35-32-612.png
  



   $$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、通过分析,这里的数据是需要查询出来,进行计算之后才可以被正确的写入单据中。分析了一下,这里无法分批查询,因此可以通过扩大最大条数限制来解决这个问题。

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、如果扩的太大,有可能有内存溢出问题,需要扩大内存解决一下。  

要回复问题请先登录注册