Улучшенный протокол локальных соединений (XNET)
Улучшенный протокол локальных соединений (XNET)
Локальное соединение в InterBase выполняется с использованием буферов разделяемой памяти и обеспечивает более высокую производительность по сравнению с другими протоколами (TCP и Named Pipes). В документации это называется локальным протоколом или IP Server (IPS) по внутренней терминологии Borland. Вместе с тем локальное соединение в InterBase обладает двумя серьезными недостатками, часто делающими его использование невозможным. Прежде всего, локальное соединение не допускает одновременной параллельной (многопоточной) работы нескольких соединений. Второе клиентское соединение будет заблокировано до момента завершения первого.
Кроме того, для установления соединения используется оконное сообщение, посылаемое клиентом специальному скрытому окну сервера. Если сервер InterBase работает как служба NT и клиентское приложение также работает как служба, они могут использовать разные desktops, при этом посылка оконных сообщений между ними невозможна.
Типичный пример подобной конфигурации - WEB-сервер Microsoft Internet Information Server (US), выполняющий приложения, обращающиеся к базам данных InterBase. Традиционно в таких случаях рекомендуется использовать протокол TCP для установления соединений из сервисов NT, что отрицательно сказывается на производительности.
XNET также является реализацией локального соединения с использованием буферов разделяемой памяти, поэтому его скорость передачи данных идентична "старому" локальному протоколу (IPS). Отличие состоит в том, что его реализация допускает одновременное использование на разных потоках без взаимного блокирования. Для установления соединения больше не используются окна и оконные сообщения, поэтому соединения надежно устанавливаются из служб Windows NT.
Оригинально XNET был разработан специалистами фирмы Borland и планировался как замена ненадежному старому локальному протоколу. Начало разработки датировано в исходном коде 1995 годом.
В сервере Yaffil по сравнению с оригинальным кодом внесены изменения, направленные на повышение надежности работы в случае неожиданного "падения" одной из сторон. Возможность соединения с сервером из служб NT также впервые была реализована в Yaffil.
Строка соединения по XNET аналогична обычной строке локального соединения. Протокол XNET не совместим по локальному подключению с другими версиями InterBase/Firebird, поэтому необходимо использовать клиентскую библиотеку (GDS32.DLL), соответствующую версии сервера. В текущей версии XNET недоступен в Yaffil Classic Server.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
17.3.2. Установка соединений
17.3.2. Установка соединений После создания потокового сокета его необходимо присоединить к чему-то часто используемому. Установка соединений сокетов является в большой степени несимметричной задачей, поскольку каждая сторона проводит соединение по-разному. Одна сторона
17.3.4. Ожидание соединений
17.3.4. Ожидание соединений После создания сокета сервер привязывает к нему адрес с помощью функции bind(). Далее процесс сообщает системе путем вызова функции listen(), что он готов разрешить другим процессам соединение с данным сокетом (по указанному адресу). Если сокет привязан
17.5.7. Ожидание TCP-соединений
17.5.7. Ожидание TCP-соединений Ожидание соединений TCP происходит почти идентично ожиданию соединений домена Unix. Единственные различия заключаются в семействах протоколов и адресов. Ниже показан вариант примера сервера домена Unix, который работает через сокеты TCP. 1: /* tserver.с
Эффективность одновременных соединений
Эффективность одновременных соединений Каков выигрыш в эффективности при установлении множества одновременных соединений? В табл. 16.1 показано время, необходимое для выполнения определенной задачи, которая состоит в том, чтобы получить от веб-сервера домашнюю страницу
Использование PPP-соединений
Использование PPP-соединений При рассмотрении вопросов сетевого взаимодействия предполагается, что компьютер под управлением Linux подключен к обычной локальной сети, узлы которой соединены посредством сетевых кабелей (например, к сети Ethernet). В такой среде можно
Туннелирование X-соединений через SSH
Туннелирование X-соединений через SSH Из материала, рассмотренного ранее в данной главе, следует, что для инициализации Х-соединения используются два отдельных, независимых друг от друга протокола. Во-первых, работая на компьютере, выполняющем роль X-сервера, вы
2.2.1 Коммуникации с созданием соединений (TCP)
2.2.1 Коммуникации с созданием соединений (TCP) Протокол TCP (Transmission Control Protocol) отвечает в TCP/IP за надежные коммуникации с созданием соединения по принципу "равный с равным". Сеанс регистрации с терминала и пересылка файлов выполняются с помощью
2.2.2 Коммуникации без создания соединений (UDP)
2.2.2 Коммуникации без создания соединений (UDP) Некоторые операции обмена данными не требуют постоянного взаимодействия систем. Например, база данных на сетевом сервере может содержать таблицы имен сотрудников компании и их телефонные номера. Узнать номер телефона
16.12.1 Улучшенный агент пересылки почты
16.12.1 Улучшенный агент пересылки почты Улучшенный агент пересылки почты (Extended Message Transfer Agent) должен поддержать одну дополнительную команду. Вместо HELO он посылает сообщение-приветствие EHLO. Если ответ положителен, партнер также является улучшенным агентом пересылки почты
5.2. Использование безопасных соединений
5.2. Использование безопасных соединений Выберите сервер, поддерживающий безопасные соединения. Помня о "плохом админе", не стоит выбирать локальный корпоративный сервер или почтовик провайдера. Лично я использую cервис Mail.ru, и мне его вполне достаточно (алгоритм
Улучшенный оптимизатор запросов
Улучшенный оптимизатор запросов Оптимизатор - своего рода "мозг" сервера, и степень его интеллектуальности может кардинально повлиять на скорость работы приложений. Неверно выбранный план может привести к увеличению времени выполнения запроса в тысячи раз. За время
Глава 1. СОМ как улучшенный C++
Глава 1. СОМ как улучшенный C++ template <class Т, class Ex> class listt: virtual protected CPrivateAlloc { list<T**> mlist; mutable TWnd mwnd; virtual ~listt(void); protected: explicit listt(int nElems, …); inline operator unsigned int *(void) const { return reinterpretcast <int*>(this) ; } template <class X> void clear(X& rx) const throw(Ex); }; Аноним, 1996 C++ уже давно с нами. Сообщество
Курсоры для реентерабельных соединений
Курсоры для реентерабельных соединений Для выполнения реентерабельного соединения сервер поддерживает один внутренний курсор для каждого потока в пределах образа одной таблицы. Концептуально он трактует контексты двух курсоров, как если бы они были отдельными
8.1. Причина популярности DSL-соединений
8.1. Причина популярности DSL-соединений DSL (Digital Subscriber Line) — цифровая абонентская линия, позволяющая производить двунаправленный обмен данными по телефонной линии. Существуют несколько вариантов DSL-линий: ADSL, VDSL, SDSL, RADSL. Наиболее распространены ADSL-линии (Asymmetric DSL) —
6.2. Изображение резьбовых соединений
6.2. Изображение резьбовых соединений Резьбовые соединения можно разделить на две группы:? соединения, осуществляемые непосредственным свинчиванием соединяемых деталей, без применения специальных соединительных частей;? соединения, осуществляемые с помощью
Протокол установления соединений
Протокол установления соединений Протокол установления соединений Handshake Protocol состоит как бы из трех подпротоколов, которые позволяют выполнить аутентификацию сторон, согласовать алгоритмы и параметры безопасности для протокола передачи записей [19].Handshake Protocol