问题描述
我有一个 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 (将#修改为@)