当功能块在主体中时,Cftransaction 未提交

问题描述

我有一个 cftransaction 代码块,它调用 cftry 中的某个函数,如果它运行无异常,则提交。否则,它会回滚。该函数执行一些查询(INSERT 和 UPDATE 以及所有)。

服务(luceeMysqL)在 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 (将#修改为@)