1、了解表结构,这其中重点在于,undo_log表必须创建于业务库中
-- 回滚日志,建立在业务数据库中
CREATE TABLE IF NOT EXISTS `undo_log`
(
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`branch_id` BIGINT(20) NOT NULL,
`xid` VARCHAR(100) NOT NULL,
`context` VARCHAR(128) NOT NULL,
`rollback_info` LONGBLOB NOT NULL,
`log_status` INT(11) NOT NULL,
`log_created` DATETIME NOT NULL,
`log_modified` DATETIME NOT NULL,
`ext` VARCHAR(100) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8
2、seata配置修改
-
file.conf:更改数据存储方式
-
registry.conf :如使用nacos,只需要更改registry、config中nacos相关。
3、本文只讲解nacos配置。
上述配置完成后,登录nacos控制台,查看SEATA_GROUP分组下“db”相关内容,确认数据库名,数据库账户,数据库密码是否正确
4、本地项目中,查看seata相关配置确保一致。
5、java使用过程中的注意事项
- 使用正确注解 @GlobalTransactional
- 子业务不能带有相关try catch操作,避免未能正确回滚
网友评论