fix(transaction):can not do local execute and check (#262)
diff --git a/core/api.go b/core/api.go
index f141f3f..a8941b6 100644
--- a/core/api.go
+++ b/core/api.go
@@ -56,6 +56,7 @@
const (
CommonProducer = ProducerModel(1)
OrderlyProducer = ProducerModel(2)
+ TransProducer = ProducerModel(3)
)
func (mode ProducerModel) String() string {
@@ -64,6 +65,8 @@
return "CommonProducer"
case OrderlyProducer:
return "OrderlyProducer"
+ case TransProducer:
+ return "TransProducer"
default:
return "Unknown"
}
diff --git a/core/transaction_funcs.go b/core/transaction_funcs.go
index a41dd4c..ddab6aa 100644
--- a/core/transaction_funcs.go
+++ b/core/transaction_funcs.go
@@ -39,10 +39,10 @@
message := cMsgToGo(msg)
listenerWrap, exist := producer.(*defaultTransactionProducer).listenerFuncsMap.Load(cproducer)
if !exist {
- status := listenerWrap.(TransactionLocalListener).Execute(message, arg)
- return C.int(status)
+ return C.int(UnknownTransaction)
}
- return C.int(UnknownTransaction)
+ status := listenerWrap.(TransactionLocalListener).Execute(message, arg)
+ return C.int(status)
}
//export localTransactionCheckerCallback
@@ -55,8 +55,8 @@
message := cmsgExtToGo(msg)
listener, exist := producer.(*defaultTransactionProducer).listenerFuncsMap.Load(cproducer)
if !exist {
- status := listener.(TransactionLocalListener).Check(message, arg)
- return C.int(status)
+ return C.int(UnknownTransaction)
}
- return C.int(UnknownTransaction)
+ status := listener.(TransactionLocalListener).Check(message, arg)
+ return C.int(status)
}
diff --git a/demos/transaction_producer.go b/demos/transaction_producer.go
index a4b64b2..8cf4112 100644
--- a/demos/transaction_producer.go
+++ b/demos/transaction_producer.go
@@ -35,8 +35,8 @@
Channel: "ALIYUN/OtherChannel",
},
},
- //Set to Common Producer as default.
- ProducerModel: rocketmq.CommonProducer,
+ //Set to Trans Producer as default.
+ ProducerModel: rocketmq.TransProducer,
}
sendTransactionMessage(pConfig)
}