package com.aliyun.openservices.ons.example.transaction;
import java.util.Properties;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.ONSFactory;
import com.aliyun.openservices.ons.api.PropertyKeyConst;
import com.aliyun.openservices.ons.api.SendResult;
import com.aliyun.openservices.ons.api.transaction.LocalTransactionChecker;
import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter;
import com.aliyun.openservices.ons.api.transaction.TransactionProducer;
import com.aliyun.openservices.ons.api.transaction.TransactionStatus;
public class ProducerClient {
static class LocalTransactionCheckerImpl implements LocalTransactionChecker {
@Override
public TransactionStatus check(Message msg) {
return TransactionStatus.CommitTransaction;
}
}
public static void main(String[] args) {
Properties properties = new Properties();
properties.put(PropertyKeyConst.ProducerId, "ProducerId1");
TransactionProducer producer =
ONSFactory.createTransactionProducer(properties, new LocalTransactionCheckerImpl());
producer.start();
Message msg = new Message("TopicTestONS", "TagA", "Hello ONS".getBytes());
SendResult sendResult = producer.send(msg, new LocalTransactionExecuter() {
@Override
public TransactionStatus execute(Message msg, Object arg) {
return TransactionStatus.CommitTransaction;
}
}, null);
System.out.println(sendResult);
producer.shutdown();
}
}