如何使用 IBM.Data.DB2.iSeries 为存储过程启用事务
我正在尝试编写一个在 DB2 中执行一系列 DB2 iSeries 存储过程的客户端。 我正在使用 IBM.Data.DB2.iSeries 提供程序,并且需要所有调用都在 .NET 事务内。 似乎一切都被忽略并且数据被提交。任何指针......
I am trying to write a client which executes a series of DB2 iSeries Stored procedures in DB2. I am using the IBM.Data.DB2.iSeries provider and need all my calls to be within a .NET transaction. Seems like everything is ignored and data being committed.Any pointers...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
iSeries 上的数据库是否有日志记录? 这是承诺控制所必需的。
Is the database on the iSeries journaled? That's required for commitment control.
我刚刚遇到了同样的问题,并发现问题不在 .Net 代码中,而在存储过程中。 检查存储过程定义中的 COMMIT 选项。 如果将其设置为“*NONE”,则无论 .Net 代码中的事务如何,它都会自动提交。 将其更改为 *RR(可重复读取),您的事务应该可以正常工作。
更多信息请参见此处。
I just had this same issue, and figured out that the problem is not in the .Net code, but in the stored procedure. Check your stored proc definition for a COMMIT option. If it is set to "*NONE" it will auto-commit, regardless of transactions in your .Net code. Change it to *RR (repeatable read), and your transactions should work correctly.
More information here.
您是否使用 DB2Connection.BeginTransaction 方法?
Are you using the DB2Connection.BeginTransaction Method?