Fabric不支持对同一个数据的并发事务处理
Fabric不支持对同一个数据的并发事务处理,也就是说,
如果我们同时运行了invoke(一),invoke(二),那么只会第一条Transaction成功,
而第二条失败。因为在Committer节点进行读写集版本验证的时候,第二条Transaction会验证失败。这是我完全无法接受的一点
解决:直到事物处理成功下面是代码片段
System.out.println("transactionID==>"+resp.getTransactionID());
try{
BlockEvent.TransactionEvent event = org.getChannel().get().sendTransaction(successful).get(180, TimeUnit.SECONDS);
//事务处理成功
if (event.isValid()) {
System.out.println("事物处理成功");
resultMap.put("code", "success");
} else {
System.out.println("事物处理失败");
resultMap.put("code", "transaction_no");
}
}catch (Exception e){
System.err.println("IntermediateChaincodeID==>toOrdererResponse==>Exception:"+e.getMessage());
resultMap.put("code", "error");
}
下面是运行效果:

这是java sdk 提供的

浙公网安备 33010602011771号