Часто задаваемые вопросы по OpenEdge RDBMS
XIV. Сеть
97. Какой номер порта я должен использовать?
Простой ответ – любой порт (порты) выше 1023, который еще не занят какой-либо другой программой или службой. Порты 1023 и ниже первоначально предназначались для использования привилегированными программами и службами, и это было ошибочно придумано для обеспечения повышенной безопасности. Тем не менее, обычные пользователи не могут создавать службы (например, веб-сервер использует порт 80), которые используют эти порты. Хотя они могут подключаться к службам на этих портах. В UNIX, Linux и Windows для получения списка используемых в вашей системе портов вы можете использовать программу netstat. Если вы посмотрите на файл /etc/services, в нем вы найдете все виды назначений портов. Многие из них описывают порты, которые зарегистрированы и предназначены для различных продуктов и протоколов. Если вы не используете эти продукты или службы, то эти порты простаивают, и вы можете использовать их для чего-нибудь другого.
Когда вы запускаете базу данных такой командой:
proserve foo -S 5500
брокер базы данных будет использовать порт, указанный в параметре -S как номер порта подключения, на котором он прослушивает запросы на подключение. Но это не тот порт, который используется клиентами для обмена с серверами. Он используется только для установки соединения. Вы также можете использовать имя службы вместо номера порта. Имя службы – это просто символьное имя, определенное в файле /etc/services, которое назначено конкретному номеру порта. Назначение имен служб – облегчить переназначение портов без необходимости изменять большое количество кода, скриптов и команд. Просто добавьте соответствующие строки в файл определения служб, с комментарием, описывающим их использование.
Когда брокер через его порт подключения получает запрос на подключение, он выбирает доступный процесс сервера (или запускает его при необходимости), и сообщает ему, что новый клиент хочет подключиться. Процесс сервера выбирает любой неиспользуемый порт, и передает его брокеру. Затем процесс сервера ждет подключения клиента. Брокер отвечает клиенту и передает ему номер порта, по которому следует подключиться для обмена с сервером. Клиент закрывает подключение к брокеру и открывает новое подключение к процессу сервера через порт, полученный от брокера.
Если между клиентом и сервером имеется межсетевой экран (firewall), предыдущая схема, вероятно, работать не будет, или будет работать только иногда, так как экраны обычно конфигурируются так, чтобы разрешать подключения только через конкретные порты. Вы можете использовать конфигурационные параметры -minport и –maxport, чтобы указать диапазон портов, которые будут использоваться процессами серверов базы данных. Например:
proserve foo -S 5500 -minport 32000 -maxport 32500
Без указания параметров -minport и -maxport, процесс сервера будет выбирать любой доступный порт и использовать его. При указанных -minport и -maxport, он будет выбирать порт из указанного диапазона. Если между клиентом и сервером имеется экран, вы можете в нем открыть эти порты и порт, который брокер использует для подключения.
98. Может ли 32-битовый клиент OpenEdge работать с 64-битовым сервером OpenEdge?
Да. Протоколы, используемые для взаимодействия между клиентами и серверами нейтральны относительно операционных систем и архитектур процессоров.
99. Какой ODBC драйвер мне нужен, 32-битовый или 64-битовый?
Ответ зависит от вашего ODBC приложения и от операционной системы, в которой оно работает. Если ваше приложение представляет собой 64-битовый исполняемый файл, тогда вы должны использовать 64-битовый ODBC драйвер. Если приложение представляет собой 32-битовый исполняемый файл, то вы должны использовать 32-битовый ODBC драйвер. Оба драйвера могут взаимодействовать с 32-битовой и с 64-битовой версиями OpenEdge RDBMS SQL server.