BusinessConnect throws exception when checkpointing data with MySQL

BusinessConnect throws exception when checkpointing data with MySQL

book

Article ID: KB0070489

calendar_today

Updated On:

Products Versions
TIBCO BusinessConnect 7.2.X, 7.3.X, 7.4.0

Description

The BusinessConnect Interior Server engine throws the following exception when starting a job:

2024 Mar 13 14:33:27:261 GMT -0700 BW.BusinessConnect-Interior_Server Info [Level] BW-EXT-LOG-300000 tibcobc Component export completed.
2024 Mar 13 14:34:53:893 GMT -0700 BW.BusinessConnect-Interior_Server Error [BW-Core] BWENGINE-100021 Job-1400 Error in [Gateway/MSH/Inbound/From-DMZ/JMS Receiver.process/Checkpoint]
Checkpoint failed
        at com.tibco.pe.core.CheckpointActivity.eval(Unknown Source)
        at com.tibco.pe.plugin.Activity.eval(Unknown Source)
        at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
        at com.tibco.pe.core.Job.a(Unknown Source)
        at com.tibco.pe.core.Job.k(Unknown Source)
        at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
        at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)
caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'job_data' at row 1
        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104)
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061)
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009)
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320)
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:994)
        at com.tibco.pe.dm.DBJobDataManager.prepare(Unknown Source)
        at com.tibco.pe.core.JobPool.checkpointJob(Unknown Source)
        at com.tibco.pe.core.JobPool.checkpointJob(Unknown Source)
        at com.tibco.pe.core.CheckpointActivity.eval(Unknown Source)
        at com.tibco.pe.plugin.Activity.eval(Unknown Source)
        at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
        at com.tibco.pe.core.Job.a(Unknown Source)
        at com.tibco.pe.core.Job.k(Unknown Source)
        at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
        at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)

This issue is caused by the job_data column in the Interior_S_XXXXXXXX_internal table not being wide enough to handle the incoming payload coming from the GS or back end Private process.

Issue/Introduction

In certain circumstances, BusinessConnect with throw an internal engine exception and fail to checkpoint data when using MySQL databases.

Environment

All platforms when using MySQL databases

Resolution

To resolve the issue, stop all IS instances, and use this sequel statement to modify the table:

alter table `bc74`.`Interior_S_XXXXXXXX_job` modify job_data LONGBLOB;

This will allow MySQL to allow more space to be used to store the payload.  Restart the engines, and repeat the previous jobs that were lost.