Oracle/Oracle -操作对事务处理的状态无效- System.TimeoutException:事务超时

axkjgtzd  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(127)

使用Oracle WCF-自定义发送端口调用Oracle存储过程时定期出现此错误。
错误描述:System.Transactions.TransactionException:该操作对于事务的状态无效。-> System.TimeoutException:事务处理结束-内部异常堆栈跟踪结束-位于System.TransactionState.EnlistVolatile(InternalTransaction tx,IEnlistmentNotification enlistmentNotification,EnlistmentOptions enlistmentOptions,Transaction atomicTransaction)位于System. TransactionState.EnlistVolatile(IEnlistmentNotification enlistmentNotification,EnlistmentOptions enlistmentOptions)位于Microsoft. BizTalk.Adapter.Wcf.Runtime.TxnBatch2..ctor(IBTTransportProxy transportProxy,ControlledTermination control,Transaction transaction,ManualResetEvent orderedEvent,Boolean makingCall)位于Microsoft. BizTalkExecutionContext execution(BizTalkExecutionContext)

2nc8po8w

2nc8po8w1#

我发现了两种可能的解决方案分散在不同的地方(并通过实验)
解决方案1 -关闭SendPort上的事务(只需取消选中SendPort的“消息”选项卡上的“使用事务”复选框。

解决方案2 -这是事务超时,而不是数据库超时。这可以在machine.config文件中配置。

<system.transactions>
    <defaultSettings timeout="00:15:00" />
</system.transactions>

还不确定这将在machine.config中的确切位置。参考:Default Transaction Timeout

相关问题