Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
使用NHibernate支持AWS Aurora故障切换功能的.Net应用程序驱动程序_.net_Nhibernate_Driver_Failover_Amazon Aurora - Fatal编程技术网

使用NHibernate支持AWS Aurora故障切换功能的.Net应用程序驱动程序

使用NHibernate支持AWS Aurora故障切换功能的.Net应用程序驱动程序,.net,nhibernate,driver,failover,amazon-aurora,.net,Nhibernate,Driver,Failover,Amazon Aurora,我正在将我的数据库从MSSQL迁移到Aurora(MYSQL)。该应用程序使用.net和NHibernate。我们尝试了用于MYSQL“MYSQL.Data”的Nhibernate驱动程序,该驱动程序适用于除故障转移之外的所有用例。当发生故障转移时,连接不会重置,它会一直尝试从writer集群连接到旧IP,因此所有写调用都会失败,出现异常“MySQL服务器正在使用--read--only选项运行,因此无法执行此语句”。只有在web服务器上执行IISRESET后才能解决此问题 我知道对于java,

我正在将我的数据库从MSSQL迁移到Aurora(MYSQL)。该应用程序使用.net和NHibernate。我们尝试了用于MYSQL“MYSQL.Data”的Nhibernate驱动程序,该驱动程序适用于除故障转移之外的所有用例。当发生故障转移时,连接不会重置,它会一直尝试从writer集群连接到旧IP,因此所有写调用都会失败,出现异常“MySQL服务器正在使用--read--only选项运行,因此无法执行此语句”。只有在web服务器上执行IISRESET后才能解决此问题

我知道对于java,MariaDB连接器能够处理这个用例。是否有任何类似的驱动程序可用于.net应用程序?
处理这种用例的最佳实践是什么?

MariaDB java connector为Aurora提供了一个特定的实现。没有一个是我知道的.net。 正常的解决方案仍然是使用群集DNS:Aurora提供不同的DNS链接:

  • 每个实例一个
  • 集群端点(如xxx.cluster yyy.zzz.rds.amazonaws.com)
  • 读卡器端点(负载平衡)(如xxx.cluster ro yyy.zzz.rds.amazonaws.com)

使用集群端点时,您正在使用当前writer实例。当发生故障转移时,此DNS将指向新主机,但此更改需要一些时间(到目前为止,我们使用的驱动程序没有帮助,即使web服务器上的nslookup返回新写入程序的IP,应用程序仍保持连接到旧写入程序。我们将默认DNS缓存从2分钟减少到2秒,并对其进行了测试。只有在执行IIS重置或应用程序池回收时,应用程序才会恢复。“最好的解决方案是查询“显示全局变量,如‘innodb_只读’”,检查结果是否关闭以验证连接。“-在.net驱动程序中是否有任何功能可以继续检查变量,或者我们需要构建轮询服务?Mariadb ODBC驱动程序似乎在Aurora故障切换中运行良好,但在NHibernate中不适用于外键关系。@Tulika您是否找到Aurora故障切换解决方案?