max_user_connections接続がすでに開いている場合にEntity Frameworkに待機させる方法はありますか?EntityFrameworkにはmysql max_user_connectionsがあります
私は例外をキャッチして再試行するか、カウンタを保持することができると思うが、それはせいぜいハッキリと感じる。
マイAzureのログは、次のメッセージでいっぱいにされています
System.Data.Entity.Core.EntityException: The underlying provider failed on Open.
MySql.Data.MySqlClient.MySqlException:
Authentication to host 'xxx' for user 'yyy' using method 'mysql_native_password' failed with message:
User 'yyy' has exceeded the 'max_user_connections' resource (current value: 4)
私は、接続文字列にMax Pool Size=4
を追加しようとしたが、それは助けにはなりませんでした。例外をキャッチし、フロントエンドは何をすべきかを決める必要があり:ヴィートの提案を1として
<add name="DbContext" connectionString="Database=db;Data Source=xxx;User Id=yyy;Password=zzz;CharSet=utf8;Persist Security Info=True;Convert Zero Datetime=True;Max Pool Size=4" providerName="MySql.Data.MySqlClient" />
'max_user_connections'がデータベースでありますEFはログインする前にそれについて知ることができません。私ができることは、catc h例外を処理してください。 –
私は環境ごとに 'max_user_connections'を知っています。私はEFにもっと多くの接続を開かないように指示することができます。 – Laoujin
これをパラメータとして管理してコンテキストコンストラクタで処理できますが、アプリケーションのすべてのインスタンスでこの値を同期するのは非常に面倒です。私は最良の方法はその例外をキャッチしていると信じています。 –