Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在底层mysql连接丢失后,有没有办法恢复(长)事务?_C#_.net_Mysql_Transactions_Database Connection - Fatal编程技术网

C# 在底层mysql连接丢失后,有没有办法恢复(长)事务?

C# 在底层mysql连接丢失后,有没有办法恢复(长)事务?,c#,.net,mysql,transactions,database-connection,C#,.net,Mysql,Transactions,Database Connection,我有一个长时间运行的事务,在数据库上执行许多删除查询;问题是mysql连接(到同一台机器上的服务器)会无缘无故地不时断开 目前,我的重试逻辑将检测断开连接、重新连接,并从一开始就重新启动整个事务,如果连接的“断开频率”太高,这可能永远不会成功 是否可以重新打开丢失的连接以继续事务 我正在使用MySQL Connector for.NET。您所要求的是不可能用于事务的。事务是要确保在数据库上执行的每个操作都已完成或没有完成 如果您的连接断开频率太高,并且您无法控制如何修复,那么您应该做的是在没有事

我有一个长时间运行的事务,在数据库上执行许多删除查询;问题是mysql连接(到同一台机器上的服务器)会无缘无故地不时断开

目前,我的重试逻辑将检测断开连接、重新连接,并从一开始就重新启动整个事务,如果连接的“断开频率”太高,这可能永远不会成功

是否可以重新打开丢失的连接以继续事务


我正在使用MySQL Connector for.NET。

您所要求的是不可能用于事务的。事务是要确保在数据库上执行的每个操作都已完成或没有完成

如果您的连接断开频率太高,并且您无法控制如何修复,那么您应该做的是在没有事务的情况下进行简单查询,或者更好地减少事务中的操作数量,并发送一批事务,而不是单个大事务


并添加一些数据验证检查代码,以确保每个条目都正确无误。

理论上,您可以使用XA事务执行所需的操作。。。但是mysql的局限性相当大,这使得mysql上的XA事务成了一个笑话。老实说,resume&join on start和end with suspend都不起作用(自2006年首次发布以来)。所以要回答你的问题不!mysql没有机会,算了吧!尝试增加超时(在客户端和服务器上)、内存池、优化查询等。。。mysql在这里帮不了你。

你的连接字符串是什么?您的连接器/服务器版本是什么?错误消息是什么?我认为您需要解决这些问题;用户Id=根用户;持久安全信息=False;数据库=db;使用压缩=假;端口=3307;默认命令超时=60。连接器6.4.4.0,Mysql 5.1。连接刚刚断开(“连接必须有效且打开”)。60秒后才断开?更多之后?几个小时之后。。。这肯定不是由于超时设置造成的。