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

Откуда: Новосибирск
Сообщений: 168
Начали распространять комплекс программ - типа АРМ.
У некоторых клиентов наблюдается невозможность работать с базой.
На клиенте ошибки 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

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

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

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

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

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

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

Posted via ActualForum NNTP Server 1.5

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Откуда: iBase.ru
Сообщений: 28015
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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Откуда: Липецк
Сообщений: 541
Хотел забить на этот пассаж, но сегодня, заглянув в результаты тестирования с участием 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]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 168
hvlad
с этим можно и в трекер

http://tracker.firebirdsql.org/browse/CORE-6055
27 апр 19, 08:41    [21873228]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 168
Ещё по теме http://tracker.firebirdsql.org/browse/DNET-881
20 май 19, 12:00    [21888713]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2780
Tonal
kdv,

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

Идеально, для нашего случая вовсе обойтись без сетевой подсистемы.
Но, похоже в данном случае не удастся...
Если программа используется на ноутбуке вообще без подключения к сети, импортируйте в реестр:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"DisableDHCPMediaSense"=dword:00000001

Если для подключения используете имя "localhost", не забудьте в системе выставить приоритет IPv4 над IPv6 или в файле %SystemRoot%\system32\drivers\etc\hosts оставьте только запись для IPv4.

А ещё лучше - поставьте "Microsoft Loopback Adapter" ("Адаптер Microsoft замыкания на себя"), присвойте IP адрес вручную (например 172.31.127.1) и в firebird.conf забиндите FirebirdSQL сервер на этот интерфейс.
22 май 19, 09:20    [21890287]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 168
rdb_dev
Если программа используется на ноутбуке вообще без подключения к сети...

Программа - личный АРМ. Используется у купивших её пользователей.
Поэтому ОС и программную среду мы можем контролировать в очень малой степени.

Ну а за "Microsoft Loopback Adapter" - спасибо, попробуем. :)
23 май 19, 10:55    [21891618]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 168
Fixed CORE-6055: Xnet crypt
6 июл 19, 15:27    [21922031]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Tonal
Member

Откуда: Новосибирск
Сообщений: 168
hvlad, Dimitry Sibiryakov,

Патч имеет шанс войти в 3.0.5
Или можно не спешить? :)
8 июл 19, 10:09    [21922487]     Ответить | Цитировать Сообщить модератору
 Re: Сетевые ошибки при локальном подключении  [new]
Dimitry Sibiryakov
Member

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

Во-первых, я-то тут при чём? У меня нет прав на коммит в дерево.
Во-вторых, лично я не понял назачем в XNET вообще шифрование. Чисто чтобы процессор не
скучал без работы?

Posted via ActualForum NNTP Server 1.5

8 июл 19, 11:53    [21922552]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить