2
mysql 커넥터를 사용하는 WCF 서비스를 호스팅하고 있습니다. 웬일인지 매 5 ~ 10 분마다 한 번씩 mysql이 이미 사용 중이다. 어떻게해야합니까? 그것을 차단하도록 설정하여 스레드마다 새 연결을 만들거나 설정된 수의 연결을 만드는 관리자를 설정하고 연결이 가능해질 때까지 차단합니다. 실제로 비동기 호출이 이미 마지막 부분을 수행합니까? 마지막으로 다른 스레드가 완료되고 그 스레드에서 정보를 얻을 때까지 차단하는 가장 좋은 방법은 무엇입니까? 당신은 단순히 당신의 SQL 서버를 쿼리 할 필요가C# Mysql 및 여러 스레드?
public static int Query(this IDbConnection olddb, string query, params object[] args)
{
using (var db = olddb.CloneEx())
{
db.Open();
using (var com = db.CreateCommand())
{
com.CommandText = query;
for (int i = 0; i < args.Length; i++)
com.AddParameter("@" + i, args[i]);
return com.ExecuteNonQuery();
}
}
}
Unhandled Exception: System.NotImplementedException: The requested feature is not implemented. at MySql.Data.MySqlClient.MySqlConnection.EnlistTransaction (System.Transactions.Transaction transaction) [0x00000] in :0 at MySql.Data.MySqlClient.MySqlConnection.Open() [0x00000] in :0
나는 항상 쿼리를위한 연결을 만드는 것이 좋은 생각이라고 생각하지 않습니다. – Will
@High, 모든 요청에 대해 연결을 생성하지 않습니다. ADO.NET이 관리하는 연결 풀에서 하나를 가져옵니다. 그리고 using 문이 끝날 때이 연결은 연결 풀로 반환되어 다시 사용할 수 있습니다. 성능면에서 가장 빠른 방법이 될 것입니다. 연결 풀링에 대한 자세한 내용은 다음 항목을 참조하십시오. http://dev.mysql.com/doc/refman/5.0/en/connector-net-programming-connection-pooling.html –
아, 정보 주셔서 감사합니다. 커넥터가 그런 식으로 작동하지 않았다. – Will