Files

2.3 KiB
Raw Permalink Blame History

🔄 What Is Connection Pooling?

Connection pooling means that database connections are not created and destroyed for every access, but are instead temporarily stored in a pool.
When an application needs a connection, it receives a free one from the pool. If none are available, a new one is created (up to the maximum limit).
After use, the connection is not closed but returned to the pool.

This leads to:

  • Faster access: Opening and closing connections is expensive; pooling saves time and resources.
  • More efficient resource usage: Only as many connections as needed are maintained.
  • Scalability: The application can handle many parallel requests without keeping unnecessary connections open.

🔧 What Has Changed in the MoneyServer?

Before:

  • On startup, 20, 50, or even 700 database connections were statically opened and stored in a dictionary.
  • Each request accessed a fixed index in the dictionary (GetLockedConnection).
  • If too few connections were initialized, errors occurred ("Key not found").

Now:

  • No dictionary or startup loop anymore: Connections are no longer held statically.
  • Connection Pooling:
    The MySQL connector now manages connections automatically.
    The connection string includes something like Pooling=true;Max Pool Size=100;.
  • Dynamic opening and releasing:
    Each database access retrieves a connection from the pool (using (var connection = new MySqlConnection(...))) and returns it after use.
  • No errors due to missing indices:
    It doesnt matter how many parallel requests come in as long as the pool isnt full, each gets a connection.

Benefits for You

  • No errors from index calculation or missing connections.
  • Lower resource consumption: Only the necessary number of connections are maintained.
  • Greater stability and scalability: You can easily adjust the pool size in the connection string.
  • More maintainable code: Less complexity, no manual management of connection objects.

📌 Summary

Ive transitioned from static, manual connection management to modern, automatic connection pooling.
The MoneyServer is now more efficient, stable, and capable of delivering better performance without overloading the database or producing index-related errors.