在hybris 6.4中保存" ProcessTaskLogModel"时获取ModelSavingException

2020-09-28 11:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)问题1:在hybris 6.4中...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


问题1:在hybris 6.4中保存" ProcessTaskLogModel"的同时获取ModelSavingException。 这是因为OOTB代码尝试保存的数据超出了logmessages列中所允许的限制。

问题2:正在为业务流程(例如orderprocess)中的每个操作节点生成两个ProcessTaskLogModel记录。 理想情况下,一个actionNode应该有一个processTaskLogmodel。

所有这些都是" ProcessEngineLoggingCtx.class"方法saveAsTaskLogModel(BusinessProcessModel进程,已记录字符串的消息)中的OOTB代码

7条回答
昵称总是被占用
2020-09-28 12:02 .采纳回答

p_logmessages 列是MySQL text 类型。 最大长度为64kB。 (好像您正在从堆栈跟踪中使用MySQL)

首先要指出的是,如果您要记录64k个字符,则您可能试图在一项任务中做太多事情。 也许您可以查看较少的信息记录或将任务拆分为较小的工作单元?

如果您确实需要增加列的大小,那么这是一个非破坏性的操作,但是您需要确定它是否将锁定表的时间很短。 我会与您的dba交流,因为它可能取决于行数之类的内容。 我不确定文本列,因为数据未随表本身存储,因此可能"正常工作"。

  alter table tasklogs修改列p_logmessages longtext;
  

要使其更具永久性(即在初始化中幸存下来),您将需要在items.xml中重新定义列类型。 请参见 impex-items.xml

ImportBatchContent 类型的示例
  
        MEDIUMTEXT 
   
  

参考: http://boolean.co.nz/博客/max-length-for-mysql-text-field-types/135/

一周热门 更多>