Ранее у меня был свой собственный класс ConnectionPool ,,, но я обнаружил, что вместо этого я могу использовать функцию пула подключений, просто включив ее в строку подключения ..
(http://www.codeproject.com/Articles/17768/ADO-NET-Connection-Pooling-at-a-Glance)
Итак, вот мой простой тестовый код:
int main(int argc, char** argv) {
::CoInitiazlie();
char* ConnString = "Provider=ASEOLEDB; Data Source=xxx; Min Pool Size=5;";
_ConnectionPtr MyPointer = NULL;
MyPointer.CreateInstance(__uuidof(Connection));
MyPointer -> Open(ConnString, "myusername", "mypassword", adConnectUnspecified);
//BREAK POINT....
MyPointer -> Close();
::CoUninitialize();
}
Таким образом, согласно описанию из ссылки, это должно было открыть и сохранить 5 соединений внутри пула в точке BREAK .. (из-за опции «Min Pool Size = 5» внутри строки соединения).
Однако, когда я открываю диспетчер сеансов, я вижу только одно открытое соединение.
Я не уверен, что я сделал неправильно .. Как именно установка Min Pool Size в строке подключения создает пул соединений ??
Спасибо
документация кажется, указывает на то, что соединения создаются по мере необходимости, но Min Pool Size
диктует минимальный номер, который будет сохранен после обрезки:
Минимальный размер пула (minPoolSize):
Минимальное количество подключений в пуле. Когда открытые соединения простаивают, пул сокращается до этого размера. По умолчанию это ноль.
Если минимальный размер не указан, EAServer при необходимости открывает соединения для заполнения пула до максимального размера.
Может быть, вы хотите установить Initial Pool Size
также:
Начальный размер пула (initialPoolSize)
Начальное количество пулов соединений, выделенных при запуске сервера. Если не установлено, по умолчанию 0.