@Override public LocalTransactionState executeLocalTransaction(Message msg, Object arg) { int value = transactionIndex.getAndIncrement(); int status = value % 3; localTrans.put(msg.getTransactionId(), status); return LocalTransactionState.UNKNOW; }
@Override public LocalTransactionState executeLocalTransaction(Message msg, Object arg) { int value = transactionIndex.getAndIncrement(); int status = value % 3; localTrans.put(msg.getTransactionId(), status); // return UNKOWN is just for test return LocalTransactionState.UNKNOW; }
public SendResult sendMessageInTransaction(Message msg, Object arg) throws MQException { try { SendResult sendResult = transactionProducer.sendMessageInTransaction(msg, arg); if(sendResult.getSendStatus() != SendStatus.SEND_OK) { log.error("事务消息发送失败,topic : {}, msgObj {}", msg.getTopic(), msg); throw new MQException("事务消息发送失败,topic :" + msg.getTopic() + ", status :" + sendResult.getSendStatus()); } log.info("发送事务消息成功,事务id: {}", msg.getTransactionId()); return sendResult; } catch (Exception e) { log.error("事务消息发送失败,topic : {}, msgObj {}", msg.getTopic(), msg); throw new MQException("事务消息发送失败,topic :" + msg.getTopic() + ",e:" + e.getMessage()); } }
public static org.springframework.messaging.Message convertToSpringMessage( org.apache.rocketmq.common.message.Message message) { org.springframework.messaging.Message retMessage = MessageBuilder.withPayload(message.getBody()). setHeader(RocketMQHeaders.KEYS, message.getKeys()). setHeader(RocketMQHeaders.TAGS, message.getTags()). setHeader(RocketMQHeaders.TOPIC, message.getTopic()). setHeader(RocketMQHeaders.FLAG, message.getFlag()). setHeader(RocketMQHeaders.TRANSACTION_ID, message.getTransactionId()). setHeader(RocketMQHeaders.PROPERTIES, message.getProperties()). build(); return retMessage; }