Last Updated: 2013-11-01
Condition or Error
Event application failed: seqno=20725782 fragno=0 message=java.sql.SQLDataException: Data too long for column 'eventid' at row 1
Causes
The issue is that the eventid column in tungsten.heartbeat is shorter than tungsten.eventid. You could do an alter on the Primary to extend that column and let that replicate out. The column sizes match in the next version.
Rectifications
The tables must be updated:
mysql> ALTER TABLE `heartbeat` CHANGE `eventid` `eventid` VARCHAR( 128 ) \
CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
This will update the tables from the following structure:
mysql>SHOW CREATE TABLE tungsten.heartbeat;
heartbeat | CREATE TABLE `heartbeat` ( `id` bigint(20) NOT NULL DEFAULT '0', `seqno` bigint(20) DEFAULT NULL, `eventid` varchar(32) DEFAULT NULL, `source_tstamp` timestamp NULL DEFAULT NULL, `target_tstamp` timestamp NULL DEFAULT NULL, `lag_millis` bigint(20) DEFAULT NULL, `salt` bigint(20) DEFAULT NULL, `name` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 mysql>SHOW CREATE TABLE tungsten.trep_commit_seqno;
trep_commit_seqno | CREATE TABLE `trep_commit_seqno` ( `seqno` bigint(20) DEFAULT NULL, `fragno` smallint(6) DEFAULT NULL, `last_frag` char(1) DEFAULT NULL, `source_id` varchar(128) DEFAULT NULL, `epoch_number` bigint(20) DEFAULT NULL, `eventid` varchar(128) DEFAULT NULL, `applied_latency` int(11) DEFAULT NULL, `update_timestamp` timestamp NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8
Afterwards the table will be formatted:
heartbeat | CREATE TABLE `heartbeat` ( `id` bigint(20) NOT NULL DEFAULT '0', `seqno` bigint(20) DEFAULT NULL, `eventid` varchar(128) DEFAULT NULL, `source_tstamp` timestamp NULL DEFAULT NULL, `target_tstamp` timestamp NULL DEFAULT NULL, `lag_millis` bigint(20) DEFAULT NULL, `salt` bigint(20) DEFAULT NULL, `name` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8