Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
Начали распространять комплекс программ - типа АРМ.
У некоторых клиентов наблюдается невозможность работать с базой.
На клиенте ошибки Error reading data from the connection
На сервере

LAPTOP-0EL6TOJ5 Sat Apr 06 21:33:34 2019
INET/inet_error: read errno = 10054, client host = laptop-0el6toj5, address = 127.0.0.1/2204, user = opa na

Всё ставится на одну машину заказчика.
Сервер - Firebird 32бит как сервис в режиме Classic отдельным инстансом.
Коннект по протоколу inet4
Клиентская часть - Delphi (exe) + C# (dll) + C++ (dll, mingw)
База шифруется через плагин (C++ VC).

Пока удаётся лечить только сносом антивируса (проявлялось на NODE32, 360 security, Kaspersky).
Но, т. к. машины - личные это не самый лучший вариант.

Может кто что посоветует в рамках поднятия устойчивости коммуникации с локальным сервером?

П. С. Вроде при работе по протоколу xnet сеть не должна мешать, но в драйвере C# он не предусмотрен, да и в штатном клиенте имя инстанса для xnet указать невозможно...
11 апр 19, 18:37    [21859834]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
Tonal,

Да, Firebird - 3.0.4
11 апр 19, 18:40    [21859840]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
Tonal,

Поправили, режим SuperClassic
11 апр 19, 18:42    [21859843]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47264

Переходи на embedded.

Posted via ActualForum NNTP Server 1.5

11 апр 19, 18:47    [21859848]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27910
Tonal
Пока удаётся лечить только сносом антивируса (проявлялось на NODE32, 360 security, Kaspersky).

тут надо выяснять, почему этот коннект рвётся. Если он рвется антивирусом по длительности коннекта, то придется
в приложении делать "регулярный пинг" сервера типа select * from rdb$database.

Если рвется от балды - то увы, ошибку же исправляют устранением причины ошибки, а причина - антивирус.
11 апр 19, 18:51    [21859850]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
kdv,

Про длительность коннекта речи нет - прога не может законнектится.
Картина осложняется тем, что в каждой подсистеме свой коннект.

Идеально, для нашего случая вовсе обойтись без сетевой подсистемы.
Но, похоже в данном случае не удастся...
11 апр 19, 19:02    [21859854]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27910
Tonal
Про длительность коннекта речи нет - прога не может законнектится.

тогда совсем неверно выбрана архитектура Classic.
Если суперклассик и суперсервер сами принимают коннекты, то в классике процесс "слушателя" переадресует коннект на новый процесс, что может вообще не работать при наличии локального прокси, например.
По крайней мере такие случаи часто встречались раньше.

Зачем классик? Изоляция "подсистем" друг от друга? Вместе они как-то конфликтуют? Классик же жрет больше памяти (при прочих равных условиях).
11 апр 19, 19:21    [21859865]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
Режим таки SuperClassic - ошибся в исходном посте.
embedded тоже хотелось бы избежать - всё таки сервер несколько более устойчивый чем наша прога.
11 апр 19, 19:54    [21859887]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9388
Tonal
Tonal,

Поправили, режим SuperClassic


зачем? SuperClassic был нужен в 2.5 как переходная архитектура. На 3.0 он совершенно бессмысленен
11 апр 19, 20:05    [21859891]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
hvlad
Member

Откуда:
Сообщений: 10241
Tonal
Вроде при работе по протоколу xnet сеть не должна мешать, но в драйвере C# он не предусмотрен
А он разве не умеет через fbclient.dll работать ?
Tonal
штатном клиенте имя инстанса для xnet указать невозможно
firebird.conf рядом с fbclient.dll
11 апр 19, 20:10    [21859892]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27910
Tonal
Клиентская часть - Delphi (exe) + C# (dll) + C++ (dll, mingw)

а кстати, кто именно не коннектится, какая "подсистема".

И потом, если в дельфи вызывается длл, которая на C#, который коннектится к ФБ через .net драйвер (напрямую по tcp к серверу), то это жесть какая-то, если честно.

p.s. у меня всегда было недоверие ко всяким "драйверам, которым не нужен fbclient" - .Net, Java, ...- с совместимостью протокола туго, отстают от изменений протокола в новых версиях, сложно понять, ошибки при работе это кривизна драйвера или что, и так далее.
Конечно, он типа "не требует установки клиента ФБ", но чем отличается установка драйвера от установки клиента, я не очень понимаю.
К fbclient как-то больше доверия - поставляется вместе с сервером, и даже если в нем вдруг какие ошибки (бывало такое), его можно легко заменить на предыдущую (минорную) версию, которая работала, установка не требуется, и т.д.
11 апр 19, 20:27    [21859901]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
hvlad
А он разве не умеет через fbclient.dll работать ?

Вроде там написано, что он умеет режим embedded через внешний клиент.
И даже есть параметр - client library для этого режима
Но можно ли его использовать для работы с сервером - не ясно - будем выяснять.

hvlad
Tonal
штатном клиенте имя инстанса для xnet указать невозможно
firebird.conf рядом с fbclient.dll

А можно ли сделать указание инстанса в строке подключения?
Было бы изрядно удобнее.
11 апр 19, 20:59    [21859924]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27910
Tonal
А можно ли сделать указание инстанса в строке подключения?


https://www.ibphoenix.com/files/ConnectionStrings_Fb3.pdf

нэт, нэлзя. У вас там еще на компе и несколько инстансов ФБ???
11 апр 19, 22:50    [21859985]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
hvlad
Member

Откуда:
Сообщений: 10241
Tonal
А можно ли сделать указание инстанса в строке подключения?
Всё руки не доходят до этого. Да и не просит никто :)

Можно попробовать c isc_dpb_config (я сам не пробовал).
Это обычный строковый тег для DPB, после него идёт байт с длиной строки и сама строка.
В строке можно написать
IpcName = MyInstance
11 апр 19, 23:10    [21859997]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
kdv
https://www.ibphoenix.com/files/ConnectionStrings_Fb3.pdf
нэт, нэлзя. У вас там еще на компе и несколько инстансов ФБ???

Я не могу предсказать, что именно стоит у конечного пользователя на машине.
В одном случае как раз наткнулись на то, что таки уже стоял экземпляр firebird.
Причём пользователь об этом был не в курсе - видимо какая-то прога тихонько поставила.
Соответственно при инсталляции нашей системы сервер ставится по нестандартному пути с отдельным именем инстанса и на альтернативном порту.
12 апр 19, 07:18    [21860082]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 152
Tonal,

Да, поисследовали работу с xnet - вовсе не смогли подключится к зашифрованной базе.
Просто в строке подключения меняем inet4 на xnet и коннект не проходит.
По логу плагина шифрования видно, что никакие ключи из приложения к нему не передаются.
Т. е. использовать зашифрованную базу с протоколом xnet просто невозможно.
Пичалька.
12 апр 19, 07:47    [21860089]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
hvlad
Member

Откуда:
Сообщений: 10241
Tonal,

с этим можно и в трекер
12 апр 19, 09:43    [21860169]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Коваленко Дмитрий
Member

Откуда: Липецк
Сообщений: 536
Хотел забить на этот пассаж, но сегодня, заглянув в результаты тестирования с участием fbclient.dll (64бита), решил прокомментировать.

kdv
p.s. у меня всегда было недоверие ко всяким "драйверам, которым не нужен fbclient"

У fbclient.dll (на сколько я в курсе) до сих пор нет нормальной пары функций для инициализации и деинициализации.

На 32 битный fblclient я забил года три назад - задолбало расковыривать причины падения.

Кстати в последней Win10 что-то улучшили и мои тесты для 32бит (без fbclient.dll) уже три раза подряд заканчиваются с туевой хучей OUTOFMEMORY.
kdv
- .Net, Java, ...- с совместимостью протокола туго, отстают от изменений протокола в новых версиях, сложно понять, ошибки при работе это кривизна драйвера или что, и так далее.

Этот забагованный протокол не то что догонять, а уже и поддерживать не хочется. "Как увижу, так блеват и кидат".
kdv
Конечно, он типа "не требует установки клиента ФБ", но чем отличается установка драйвера от установки клиента, я не очень понимаю.

У меня были арабы которые не осилили "установку" fbclient.dll. Минус 900 евро. Это было до того, как я встроил этого клиента в провайдер.
kdv
К fbclient как-то больше доверия - поставляется вместе с сервером,

Ну да, ну да. А компилятор C++ должен писать сам Страуструп.
kdv
и даже если в нем вдруг какие ошибки (бывало такое), его можно легко заменить на предыдущую (минорную) версию, которая работала, установка не требуется, и т.д.

Я вот думаю, было бы "забавно" заполучить падение MSSQL-сервера (в каком-нибудь банке) из-за багов gds32/ibclient64/fbclient.
17 апр 19, 09:33    [21864456]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить