My previous email didn't clarify the question clearly, so I'll try to make it 
in detail.


In this jira's(https://issues.apache.org/jira/browse/ROCKETMQ-123) description:




Implement a TransactionProducer and LocalTransactionChecker, guarantee message 
delivery and local transaction operations are atomic.

The following is the simple transactional messaging flow:

1. TransactionProducer sends a half message to the broker. A half message means 
it's not confirmed and can't be delivered to the consumer.

2. TransactionProducer executes the specific local transaction.

3. Commit or Rollback the half message according to the status of the local 
transaction. A half message will be deleted if it's rollbacked and delivered to 
the consumer if it's committed.



The 1st step I found in 
https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java#L964

The 2nd step I found in 
https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java#L977

The 3rd step I found in 
https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java#L1026
 for client and 
https://github.com/apache/rocketmq/blob/master/broker/src/main/java/org/apache/rocketmq/broker/processor/EndTransactionProcessor.java#L49
 for broker


And my question is what is the part to be implemented for this issue? Is there 
anything I missed?



________________________________
发件人: 李 德鑫 <[email protected]>
发送时间: 2018年2月23日 9:35:17
收件人: [email protected]
主题: [GSOC|ROCKETMQ-123]Support Distributed Transactional Messaging

Hi,

I am working on this issue
(https://issues.apache.org/jira/browse/ROCKETMQ-123) as my GSOC project
[ROCKETMQ-123] Support Distributed Transactional Messaging 
...<https://issues.apache.org/jira/browse/ROCKETMQ-123>
In most businesses, transactional messaging is frequently used to make a series 
of operations as an atomic transaction. At present, RocketMQ doesn't support ...
issues.apache.org



However, there already have
TransactionMQProducer

https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java<https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java#L23>
[https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java#L23>

apache/rocketmq<https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java#L23>
rocketmq - Mirror of Apache RocketMQ
github.com

and TransactionCheckListener
https://github.com/apache/rocketmq/blob/master/client/src/main/java/org/apache/rocketmq/client/producer/TransactionCheckListener.java

So, what is the part I should implement for this issue?

Regards,
Dexin Li

Reply via email to