When using connection pooling, the connections in the pool are not properly closed when exiting the application, which results in an "Aborted connection" error in the MySQL error log. The error log gets so full of these messages that it drowns out most other messages, so important stuff can easily get missed.
Calling ClearAllPools() manually works, but it would be much better if the DevArt component would do this automatically instead of manually have to put this into every app (especially with a large number of apps in production).
More info:
With Wireshark, you can see that an abrupt RST package is sent to the server upon application exit, causing the "Aborted connection" message. Calling ClearAllPools, causes a "Request quit" package to be sent first, making the server close the connection gracefully.
To reproduce, just run this and then exit the application:
Code: Select all
using (var conn = new MySqlConnection("server=192.168.1.2;
port=3306; user id=testuser; password='...'; database=Test; pooling=true"))
{
conn.Open();
conn.Close();
}