如何解决当功能块在主体中时,Cftransaction 未提交
我有一个 cftransaction
代码块,它调用 cftry
中的某个函数,如果它运行无异常,则提交。否则,它会回滚。该函数执行一些查询(INSERT 和 UPDATE 以及所有)。
服务(lucee 和 MySQL)在 docker 上运行。
问题是当我运行代码时,它运行成功但没有提交。
当我取消注释 cftransaction
时,代码块运行良好。
当我删除该函数并只留下一个查询时,它会提交。
此代码在我的 Windows 系统(不是 docker)的不同环境中运行良好,但此问题发生在 docker 上。
我做错了吗?
更新1:
在之前的环境(Windows)上进行了大量测试后,我尝试连接到 docker 上的 MySQL
并注意到这个“提交问题”不是来自 Lucee,因为该问题仅在我更改为 docker MySQL 时发生(相同版本)。
我想有一个 MySQL 配置来处理这个 docker 版本没有的事务提交问题。我还是一片空白。
<cftransaction action="begin">
<cftry>
<cfif allow_update>
<cfset update_column = query_with_sql("UPDATE table set column....",false)/>
<cfif require_global_update>
<cfset update_column_global = update_pricing_tables("update_from_product",db_column_name,db_column_value)/>
</cfif>
<cftransaction action="commit"/>
success
<cfelse>
Action isn't allowed.
</cfif>
<cfcatch>
<cftransaction action="rollback"/>
failure <cfoutput>#cfcatch.message#</cfoutput>
</cfcatch>
</cftry>
</cftransaction>
操作系统:Linux NGINX Docker
Java 版本:11.0.11
Tomcat 版本:9.0.48
露西版本:5.3.8.189
MySQL:8.0.24
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。