Eine Standardlösung ist ein ConnectionPool, diesen kann man über ein Interface auch einer
DLL bereitstellen.
Der ConnectionPool enthält 'freie' Connections, jedes Plugin oder jeder Thread in der Hauptanwendung erhält eine eigene Connection (sofern noch welche vorhanden sind). Nach Verwendung gibt das Plugin / der Thread die Connection zurück an den Pool.
Wie man die Plugins über Interfaces mit der Anwendung kommunizieren läßt, ist sicher kein Problem
(Ich habe ein Beispiel in der
Jedi Code Library gefunden, JvPlugin, das gut funktioniert)