powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как включить WireCompression на клиентах?
23 сообщений из 23, страница 1 из 1
Как включить WireCompression на клиентах?
    #39404586
Добрый день

Хочу для части клиентов включить сжатие данных.

В Release Notes написано:

To activate Wirecompression from the client side, pass the appropriate tag in the config item of the DPB
or SPB call:
isc_dbp_config/isc_sbp_config <string-length> "WireCompression=true"

Подскажите, пожалуйста,
если в firebird.conf на клиенте добавить WireCompression = True будет работать сжатие или нужно в компонентах доступа к данным передавать этот параметр во время коннекта?
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404594
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде должно работать. Проверить было бы быстрее, чем сюда писать :-) Только не забудь скопировать zlib1.dll в папку клиента.
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404597
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к вопросу "как проверить". Либо запустить с клиента ISQL, подключиться к базе на сервере и запросить show version. Либо с клиента прочитать MON$REMOTE_VERSION из MON$ATTACHMENTS для своего коннекта. В обоих случаях посмотреть на версию сетевого протокола, там будет PNN[:XY], где NN - версия протокола, а опциональные XY - флаги 'C' при включенном шифровании и 'Z' при включенном сжатии. Т.е., например, P13:Z означает включенное сжатие.
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404665
dimitr,
Сервер 64 бита
Проверяю в RDP сеансе на сервере
автор ISQL show version показывает P14:C - все отлично.

1. Подключаюсь к базе в IbExpert (указываю в настройке подключения fbclient.dll)
Версия протокола P14
2. Рядом с IbExpert кладу fbclient.dll, zlib1.dll (оба из дистрибутива 32 битного сервера) а потом еще и firebird.conf, в настройке подключения указываю полный путь до fbclient.dll
Версия протокола всегда P14
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404679
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим Мещеряков,

какая строка коннекта в IBE ?
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404689
hvladкакая строка коннекта в IBE ?

В IbExpert отображается такая строка: LOCALHOST/3050:G:\DelFin\Db\BASE.FDB
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404690
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим Мещеряковпоказывает P14:C - все отлично
это включено шифрование, а не сжатие. Что же тут отличного?
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404694
dimitrэто включено шифрование, а не сжатие. Что же тут отличного?
Наврал там было /P14:CZ
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404695
Вадим Мещеряков,

ISQL Version: WI-V3.0.1.32609 Firebird 3.0
Server version:
Firebird/Windows/AMD/Intel/x64 (access method), version "WI-V3.0.1.32609 Firebird 3.0"
Firebird/Windows/AMD/Intel/x64 (remote server), version "WI-V3.0.1.32609 Firebird 3.0/tcp (SRV-DELFIN)/P14:CZ"
Firebird/Windows/AMD/Intel/x64 (remote interface), version "WI-V3.0.1.32609 Firebird 3.0/tcp (SRV-DELFIN)/P14:CZ"
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404871
dimitrк вопросу "как проверить". Либо запустить с клиента ISQL, подключиться к базе на сервере и запросить show version. Либо с клиента прочитать MON$REMOTE_VERSION из MON$ATTACHMENTS для своего коннекта

Странные вещи
ISQL show version показывает /P14:CZ

В тестовом приложении (с FireDAC) показывает

Server version = WI-V3.0.1.32609 Firebird 3.0
WI-V3.0.1.32609 Firebird 3.0/tcp (SRV-DELFIN)/P14:CZ
WI-V3.0.1.32609 Firebird 3.0/tcp (promservice001)/P14:CZ

А в MON$ATTACHMENTS.MON$REMOTE_VERSION показывает для этих же подключений P14

Как модно понять работает сжатие или нет?
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404941
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим Мещеряков, WireShark ?
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39404965
rdb_dev WireShark ?
Это понятно что можно трафик смотреть, но хлопотно.

Если рядом с моим тестовым приложением и fbclient.dll лежит firebird.conf то можно включить сжатие изменением параметра в этом файле. Отключить шифрование изменением параметра в этом же файле не получается
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39406005
rdb_dev,

Провел эксперимент
Установил на сервере WireShark
Поставил фильтр от сервера к клиенту
Сложил fbclient.dll, zlib1.dll,firebird.conf в каталог с IbExpert. Запустил из жтого каталога тестовую программу (FireDAC) показала P14:CZ
Запустил IbExpert (явно указал где ему взять fbclient.dll)
Cделал выборку с полным фетч 10000 записей с включенным в файле firebird.conf WireCompress и с выключенным
Примерно одинаковое количество пакетов 210
Одинаковый суммарный объем пакетов 760000 байт

Не работает сжатие?
Как его все таки запустить?
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39406019
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим МещеряковСложил fbclient.dll, zlib1.dll,firebird.conf в каталог с IbExpert.
...
Запустил IbExpert (явно указал где ему взять fbclient.dll)Где-то тут кто-то ошибся. И - зачем делать первое, при наличии второго ?

Возьми Process Explorer и проверь - какую версию fbclient на самом деле использует IBE, и загружает ли он при этом zlib1
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39406136
hvladГде-то тут кто-то ошибся

Так и есть!
Все отлично работает!

Для включения сжатия нужно положить firebird.conf (WireCompression = true) и zlib1.dll рядом c fbclient.dll. и Все.
Результат в нашем приложении (анализировал трафик от сервера к клиенту) - в 3 раза меньше пакетов а общий размер пакетов меньше в 10 раз.

Спасибо за помощь.
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39406178
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим Мещеряков,

вот и прекрасно :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как включить WireCompression на клиентах?
    #39773014
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Апну старый топик, тоже решил научиться компрессовать трафик.
беру ISQL вроде бы вижу вожделенные буковки "P15:Z"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL> show version;
ISQL Version: LI-V3.0.5.33100 Firebird 3.0
Server version:
Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V3.0.5.33100 Firebird 3.0"
Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V3.0.5.33100 Firebird 3.0/tcp (linux-ivan32)/P15:Z"
Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V3.0.5.33100 Firebird 3.0/tcp (linux-ivan32)/P15:Z"
on disk structure version 12.0
SQL> select MON$REMOTE_VERSION from MON$attachments;

MON$REMOTE_VERSION                                                                                                                                                                                                                                              
=============================================================================== 
<null>                                                                                                                                                                                                                                                          
<null>                                                                                                                                                                                                                                                          
P15                                                                                                                                                                                                                                                             
P15                                                                                                                                                                                                                                                             
P15                                                                                                                                                                                                                                                             
P15                                                                                                                                                                                                                                                             

SQL> 

dimitrЛибо с клиента прочитать MON$REMOTE_VERSION из MON$ATTACHMENTS для своего коннекта.А вот тут буковок не вижу, см. выше выхлоп ISQL.

Кому верить?

да, среди 4 конектов из атачмента есть виндовый, мой виндовый клиент подхватил троешного ФБ клиента, а тот в свою очередь прихватил zlib1.dll (судя по процесс эксплореру).
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39773035
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

там и не должно быть.
В 4.0 появились отдельные поля MON$WIRE_COMPRESSED и MON$WIRE_ENCRYPTED
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39812529
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, получается что сжатие данных бессмысленно на каналах с большими задержками (100-150 мс). т.к. судя по wireshark 90% пакетов идёт размером 50-80 байт, данных в которых от 9 до 40 байт, вместо 16-64 байт без сжатия.
Может можно какими-либо настройками уменьшить кол-во пакетов?
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39812551
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvaitПодскажите, получается что сжатие данных бессмысленно на каналах с большими задержками

не то чтобы бессмысленно, но помогает мало.

Одна из настроек которая может повлиять TcpRemoteBufferSize.
Но лучше всего прошерстить код приложения, чтобы метаданные лишний раз не запрашивались, использовались препарированные запросы, в запросах лишние поля не таскать, чтобы блобы не грузились когда не надо. Можно всяческое кеширование включать, чтобы повторно не таскать
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39812558
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvaitМожет можно какими-либо настройками уменьшить кол-во пакетов?Нет таких настроек.
Нужно убедиться, что версия клиента не ниже 2.5.
Про сервер ниже 2.5 даже не говорю.
Если всё так и есть - остаётся только оптимизирвать приложение.
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39812570
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я эти данные для бакапа метаданных привёл, gbak я оптимизировать наверно не могу
...
Рейтинг: 0 / 0
Как включить WireCompression на клиентах?
    #39812593
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvait,

есть много способов сделать бекап. В том числе когда клиент и сервер на разных хостах.

Если файл бекапа не нужен на клиенте, то следует вызвать gbak через сервисы, далее как обычно

gbak -se server:service_mgr -b -g path.fdb backup.fbk

тут оба пути локальны на сервере server


Если файл бекапа нужен на клиенте, то следует воспользоваться фичей CORE-2666

как пользоваться - см README.services_extension
4) Services API extension - running gbak at server side with .fbk at the client.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как включить WireCompression на клиентах?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]