This MongoDB deployment does not support retryable writes的最佳解决方案是什么?是否有我应该使用的版本/设置(例如,找到从MMAPv1切换到WiredTiger的方法),还是retryWrites=false的显式设置更新确实是heroku部署的最佳解决方案?
背景
在过去几周的某个时间点上,我的Heroku配置的mLab add on (已经顺利运行了大约一年)开始尝试任何写操作:
Exception: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string.
我没有对部署或驱动程序做任何更改,所以我假设这个新的异常与mlab端的更新与我自己的设置不兼容有关。
在诸如:如何修复蒙古族的retryWrites?这样的讨论中,我遇到了解决问题的有效方法。修复需要将一个retryWrites=false选项传递给MongoClient,但在我看来,虽然我可以绕过错误,但我的MongoDB部署中不受支持的特性的问题并没有真正得到解决。
发布于 2019-12-17 01:47:50
可还原写入是官方驱动程序中的默认启用,官方驱动程序已经更新为MongoDB 4.2。
所有现代版本的MongoDB服务器(我包括MongoDB 3.6+,因为3.4将于下个月结束)默认情况下还包括可还原的写支持。
错误消息指示您有一个旧的服务器部署或配置,它不支持可还原写入。
要解决这一问题,您的选择是:
retryWrites=false添加到驱动程序连接字符串中。我建议升级您的MongoDB部署,特别是如果您仍然使用不推荐的MMAPv1存储引擎或EOL服务器版本。
https://stackoverflow.com/questions/59362889
复制相似问题