BUG REPORT
What did you do (The steps to reproduce)?
the broker is restarted;
What did you expect to see?
the transactional message has been dealt with should not checked again in general。but,after the broker restarted ,the transactional message checked again。
What did you see instead?
the transactional message has been dealt with should not checked again in general。but,after the broker restarted ,the transactional message checked again。
Please tell us about your environment:
jdk8
Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):
]
BUG REPORT
- Please describe the issue you observed:
- What did you do (The steps to reproduce)?
the broker is restarted;- What did you expect to see?
the transactional message has been dealt with should not checked again in general。but,after the broker restarted ,the transactional message checked again。- What did you see instead?
the transactional message has been dealt with should not checked again in general。but,after the broker restarted ,the transactional message checked again。
- Please tell us about your environment:
jdk8- Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):
]
can you describe the exact code with line number, or list the log print in details?
After the Broker is restarted, it always checks back the transaction messages that have been processed (calling the checkLocalTransaction implemented by the application)
checkLocalTransaction
IMO, Broker can not immediately increase transaction message offset after transaction finished. You can refer to class TransactionalMessageServiceImpl & TransactionalMessageBridge.
@zzwlstarby when the broker crashed or restarted, the broker may repeat check the uncommitted or rollbacked messages to avoid prepare messages missed. but it indeed can do more work to reduce this redundant check, would you like to polish it?
polish
How to avoid replay back check ah? When the Broker restarts