Локальные порты ADO

У нас есть приложение, которое подключается к паре сотен баз данных с помощью ADO. Теперь я знаю, что это может быть не лучший способ ведения дел (наша клиентская база расширилась с момента написания приложения), и мы переписываем приложение, чтобы ограничить количество подключений. Однако в то же время, если я посмотрю на порты, используемые на компьютере, на котором запущено это приложение, я увижу, что локальный порт, используемый для соединения, находится в диапазоне от 2519 до 2726.

Я всегда думал, что локальные порты находятся в диапазоне 32 768, а не в более низких цифрах. Использование низких номеров вызывает конфликт с некоторыми другими запущенными нами серверными приложениями.

Примеры фактических значений, которые я вижу в мониторе внешнего порта:
Протокол: TCP
Локальный порт: 2582
Локальный адрес: 10.1.1.103
Удаленный порт: 1433
Удаленный адрес: 10.1.1.108

Итак, мои вопросы:

Почему ADO использует низкий номер порта?
Есть ли способ заставить его начинать с 32 768 или запретить ему использовать порты, которые используются другими серверами?
Мы также наблюдаем множество подключений к SQL в состоянии ожидания времени. Что определяет, когда они будут выпущены?

Большое спасибо, Кит


person Keith Miller    schedule 16.11.2009    source источник


Ответы (1)


Удаленный порт зависит от базы данных и протокола, который он использует для подключения. Oracle будет использовать клиент sql*net/Oracle, а Access будет использовать обычный SMB. По памяти локальный порт должен быть случайным и из ограниченного подмножества портов.

Какой драйвер более низкого уровня и к какой базе данных вы подключаетесь? Есть ли возможность пула соединений?

person Mark Nold    schedule 17.12.2009