apache / apache/incubator-seata
undolog表数据源配置
- Dominant language
- Java
- Stars
- 26k
- Forks
- 8.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 4
Description
- [ ] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate.
### Ⅰ. Issue Description
参照官方文档整合seata1.3+shardingshpere4,发现业务数据被计入m1数据源,undolog表被随意记入m0数据源,请问有什么好的方法能使undolog计入当前使用的数据源m0吗
### Ⅱ. Describe what happened
If there is an exception, please attach the exception trace:
```
[2021-03-18 23:52:27.129][INFO ][requestId:f389387fce] requestUrl=http://192.168.0.112:8762/stock/subtractStock
[2021-03-18 23:52:27.129][INFO ][requestId:f389387fce] requestParam=[111, 1]
[2021-03-18 23:52:27.131][INFO ][requestId:f389387fce] Logic SQL: SELECT `goods_id`, remain FROM t_stock WHERE goods_id = 111 FOR UPDATE
[2021-03-18 23:52:27.132][INFO ][requestId:f389387fce] SQLStatement: SelectStatementContext(super=CommonSQLStatementContext(sqlStatement=org.apache.shardingsphere.sql.parser.sql.statement.dml.SelectStatement@296e49e8, tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@27a9b2b5), tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@27a9b2b5, projectionsContext=ProjectionsContext(startIndex=7, stopIndex=24, distinctRow=false, projections=[ColumnProjection(owner=null, name=goods_id, alias=Optional.empty), ColumnProjection(owner=null, name=remain, alias=Optional.empty)]), groupByContext=org.apache.shardingsphere.sql.parser.binder.segment.select.groupby.GroupByContext@23962298, orderByContext=org.apache.shardingsphere.sql.parser.binder.segment.select.orderby.OrderByContext@6694b88e, paginationContext=org.apache.shardingsphere.sql.parser.binder.segment.select.pagination.PaginationContext@3dee8cbd, containsSubquery=false)
[2021-03-18 23:52:27.132][INFO ][requestId:f389387fce] Actual SQL: m1 ::: SELECT `goods_id`, remain FROM t_stock1 WHERE goods_id = 111 FOR UPDATE
[2021-03-18 23:52:27.134][INFO ][requestId:f389387fce] Logic SQL: update t_stock set remain = remain-1 where goods_id = 111
[2021-03-18 23:52:27.134][INFO ][requestId:f389387fce] SQLStatement: UpdateStatementContext(super=CommonSQLStatementContext(sqlStatement=org.apache.shardingsphere.sql.parser.sql.statement.dml.UpdateStatement@ba384b4, tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@6bb47c1), tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@6bb47c1)
[2021-03-18 23:52:27.134][INFO ][requestId:f389387fce] Actual SQL: m1 ::: update t_stock1 set remain = remain-1 where goods_id = 111
[2021-03-18 23:52:27.138][INFO ][requestId:f389387fce] Logic SQL: SELECT `goods_id`, remain FROM t_stock WHERE goods_id in (?)
[2021-03-18 23:52:27.139][INFO ][requestId:f389387fce] SQLStatement: SelectStatementContext(super=CommonSQLStatementContext(sqlStatement=org.apache.shardingsphere.sql.parser.sql.statement.dml.SelectStatement@5821cc3e, tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@4ff9a8cf), tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@4ff9a8cf, projectionsContext=ProjectionsContext(startIndex=7, stopIndex=24, distinctRow=false, projections=[ColumnProjection(owner=null, name=goods_id, alias=Optional.empty), ColumnProjection(owner=null, name=remain, alias=Optional.empty)]), groupByContext=org.apache.shardingsphere.sql.parser.binder.segment.select.groupby.GroupByContext@5dbea15a, orderByContext=org.apache.shardingsphere.sql.parser.binder.segment.select.orderby.OrderByContext@5eacfc98, paginationContext=org.apache.shardingsphere.sql.parser.binder.segment.select.pagination.PaginationContext@2f53dc3, containsSubquery=false)
[2021-03-18 23:52:27.139][INFO ][requestId:f389387fce] Actual SQL: m1 ::: SELECT `goods_id`, remain FROM t_stock1 WHERE goods_id in (?) ::: [111]
[2021-03-18 23:52:27.145][INFO ][requestId:f389387fce] Logic SQL: INSERT INTO undo_log (branch_id, xid, context, rollback_info, log_status, log_created, log_modified) VALUES (?, ?, ?, ?, ?, now(), now())
[2021-03-18 23:52:27.146][INFO ][requestId:f389387fce] SQLStatement: InsertStatementContext(super=CommonSQLStatementContext(sqlStatement=org.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement@34af7f33, tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@285497a0), tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@285497a0, columnNames=[branch_id, xid, context, rollback_info, log_status, log_created, log_modified], insertValueContexts=[InsertValueContext(parametersCount=5, valueExpressions=[ParameterMarkerExpressionSegment(startIndex=109, stopIndex=109, parameterMarkerIndex=0), ParameterMarkerExpressionSegment(startIndex=112, stopIndex=112, parameterMarkerIndex=1), ParameterMarkerExpressionSegment(startIndex=115, stopIndex=115, parameterMarkerIndex=2), ParameterMarkerExpressionSegment(startIndex=118, stopIndex=118, parameterMarkerIndex=3), ParameterMarkerExpressionSegment(startIndex=121, stopIndex=121, parameterMarkerIndex=4), org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ExpressionProjectionSegment@4a002977, org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ExpressionProjectionSegment@5d0e2c04], parameters=[2069720693, 192.168.0.112:8091:2069720692, serializer=jackson, javax.sql.rowset.serial.SerialBlob@25c89641, 0])], generatedKeyContext=Optional.empty)
[2021-03-18 23:52:27.146][INFO ][requestId:f389387fce] Actual SQL: m0 ::: INSERT INTO undo_log (branch_id, xid, context, rollback_info, log_status, log_created, log_modified) VALUES (?, ?, ?, ?, ?, now(), now()) ::: [2069720693, 192.168.0.112:8091:2069720692, serializer=jackson, javax.sql.rowset.serial.SerialBlob@25c89641, 0]
[2021-03-18 23:52:27.165][INFO ][requestId:f389387fce] responseInfo={"code":"200","msg":"操作成功"}
```
### Ⅲ. Describe what you expected to happen
### Ⅳ. How to reproduce it (as minimally and precisely as possible)
1. xxx
2. xxx
3. xxx
### Ⅴ. Anything else we need to know?
### Ⅵ. Environment:
- JDK version :1.8
- OS :
- Others:
Contributor guide
Research direction
No source files or tests are named. Start by reproducing the Seata 1.3+ and ShardingSphere 4 integration described, then inspect how the business tables and undo_log are routed between m0 and m1; done means the observed undo_log datasource behavior is explained and the expected datasource placement is confirmed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100