点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
在升级到PO 7.5(SP15)之后,我们正在努力将jdbc事务处理到Oracle 12c数据库。 在我们的集成方案中,我们正在SAP和Oracle数据库之间复制数据。 (成千上万的记录,每2000条记录分批处理)直到我们将PO移到新的数据中心之前,这一切都很好。 由于到新数据中心的网络延迟,对于我们的集成方案,正常的交易模式远远不能满足我们的要求。 经过一些测试,我们决定通过以下方式实现批处理JDBC事务:
-检查JDBC接收器通道中的Batch模式选项
-添加参数
sqlBindMode
dateWithBindMode
该选项似乎为我们提供了所需的事务处理速度,但是在生产环境中,由于系统内存不足,它还会导致服务器崩溃。
我们在堆转储中观察到,类oracle.jdbc.driver.T4CPreparedStatement正在填充内存。 该类保存对由于批处理方式而创建的prepared语句的数据的引用。
到目前为止,我们发现的唯一解决方案是手动停止频道。 这将释放对象,并且内存消耗将快速下降。 我们尝试按计划实施此操作,但没有成功。 内存仍然分配。
我们尝试通过以下方式解决问题:
-将驱动程序更新为最新版本(19.3)
-在JDBC接收器通道上添加参数poolWaitingTime
但没有成功。 在我的Java代码中使用相同的驱动程序,即使复制相同数量的数据也无法重现该问题。
以批处理模式连接到Oracle 12c数据库时,您是否有人观察到类似的行为? 任何提示/提示我们如何解决(或调试)此问题?
感谢您的帮助,
耶罗恩
嗨,
该问题是作为汁液的票证提交的,并产生以下注释:
https://launchpad.support.sap.com/#/notes/2916999 < br>
最诚挚的问候,
Jeroen
一周热门 更多>