/**
* $Id: Producer.java 1831 2013-05-16 01:39:51Z shijia.wxr $
*/
package com.alibaba.rocketmq.example.transaction;
import com.alibaba.rocketmq.client.exception.MQBrokerException;
import com.alibaba.rocketmq.client.exception.MQClientException;
import com.alibaba.rocketmq.client.producer.DefaultMQProducer;
import com.alibaba.rocketmq.client.producer.LocalTransactionExecuter;
import com.alibaba.rocketmq.client.producer.MQProducer;
import com.alibaba.rocketmq.client.producer.SendResult;
import com.alibaba.rocketmq.client.producer.TransactionCheckListener;
import com.alibaba.rocketmq.client.producer.TransactionMQProducer;
import com.alibaba.rocketmq.common.Message;
import com.alibaba.rocketmq.remoting.exception.RemotingException;
/**
* @author vintage.wang@gmail.com shijia.wxr@taobao.com
*
*/
public class TransactionProducer {
public static void main(String[] args) {
try {
TransactionCheckListener transactionCheckListener = new TransactionCheckListenerImpl();
TransactionMQProducer producer = new TransactionMQProducer("example.producer");
producer.setTransactionCheckListener(transactionCheckListener);
producer.start();
String[] tags = new String[] { "TagA", "TagB", "TagC", "TagD", "TagE" };
TranExecuterImpl tranExecuter = new TranExecuterImpl();
for (int i = 0; i < 100; i++) {
Message msg =
new Message("TopicTest", tags[i % tags.length], "KEY" + i, ("Hello RocketMQ " + i).getBytes());
tranExecuter.setTransactionStats(1);
producer.sendMessageInTransaction(msg, tranExecuter);
}
producer.shutdown();
}
catch (MQClientException e) {
e.printStackTrace();
}
}
}