Может я плаваю в теме COM, но всегда считал клиентом того кто создаёт у себя инстанс объекта, который грузиться в процесс клиента. Здесь нет IPC. Заинстанцированный объект выступает тут в роли INPROC_SERVER. Или объект можно инстанцировать как внешний процесс? --- Сообщение объединено, 12 янв 2025 --- Да, можно по ходу как отдельный процесс CLSCTX_LOCAL_SERVER https://learn.microsoft.com/ru-ru/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx
https://learn.microsoft.com/ru-ru/windows/win32/com/com-clients-and-servers P.S. Главное, что это всё находится за фасадом DCOM и клиент вообще по хорошему не обязан знать с каким вариантом он работает. Это правда не всегда - когда методы предполагают скармливать серверу именно указатели на локальные регионы памяти и буфера чтобы на стороне сервера в них производилась запись, то это уже не может быть реализовано как внепроцессный сервер, поэтому некоторые лимиты в этом есть, но если мы работаем с OLE DCOM, то там как правило всё шито-крыто посредством принуждения к модели типов из Visual Basic.
Здесь(на этом форуме) под исключением понимается исключение машинное. Всякий клиент-серверный обмен не является исключением. Что бы решить тс проблему необходима документация на интерфейс этих "исключений". Имхо это не решаемо, тк все в данной теме интернал. Вышел индекс массива вникуда и яп сгенерит событие, не решаемое вне этого яп. А такие говно-сборки тащат тонны таких же модулей, ошибки в которых не разрешимы в принципе. Единственный способ - удалить проблемный метод(в данном случае даже абстракция файловая наверно и не известно в каких файлах что находится). Настолько это толстое
Нет даже инструментов для анализа этого дерьма. Упомянутый VB - там таскание мышем окон на формы, какие при этом могут быть механизмы.. Если что либо собирается из говна и палок, то остается оное. Такой подход для меня годный, пилят асинхронное кривое говно, но с таким можно работать всем - искать уязвимости, патчить вдоль и поперек, да тупо половину среды заменить в виде файлов оно не заметит.
Я сначала хотел эту концепцию развернуть, а потом отказался, поскольку как мне кажется весь этот объектный код заставляет работать ядерный слой оси, тем самым поддерживая жизнь в том, что без активного пользования давно бы умерло. Но это лично мое мнение. При этом я с вами согласен во многом относительно сказанного вами. Вся эта компонентная модель очень плохо поддается отладке в целом, т.е когда проблема затрагивает многие компоненты и подсистемы.
Предлагаю включить трассировку на сервере БД Use SQL Server Profiler SQL Server Profiler can help you trace and diagnose issues: 1. Open SQL Server Profiler from SSMS. 2.Create a new trace and connect to the SQL Server instance. 3.Select the events you want to capture, such as Errors and Warnings > Attention and Errors and Warnings > User Error Message. 4.Start the trace and reproduce the error to capture detailed information.
К сожалению это невозможно, к серверу нет доступа ни физического, ни виртуального. Доступ только с АРМ из проги по сети.
malex Попутал тс все, какой ядерный слой вы е-лись. Это какой то трешевый развод. Мы такое не решаем.
Спасибо! Нашел функцию ConnectionWrite в C:\Windows\SysWOW64\dbnetlib.dll. В ней делается вызов send через call dword ptr ds:[<Ordinal#19>] из ws2_32.dll. Ничего нового не увидел. Скорее всего исключение возникает из-за обрыва соединения в рамках контекста call <ws2_32.WahReferenceContextByHandle>. Теперь вопрос о трассировке переноситься на уровень сетевого обмена. Искать что-то вроде WSAENETRESET. P.S. Wah относится к OpenRCE Win32 Call Chains Database, что это такое, черт его знает. Но судя по словам это какие-то функции вызова цепочек БД.
malex, в IDE Delphi вроде есть-же свой отладчик. Запустите софтину в нём, и как получите крэш, смотрите стек-вызовов "call-stack". Я никогда делфи не юзал, и без понятия, что там происходит.
Я думаю надо глядеть вот на эту тему гугл: https://learn.microsoft.com/en-us/a...-(dbnetlib)(connectionopen(connect())-)-sql-s Вероятно брэндмауэр режет запросы или вон даже есть комментарий про то, что часы должны быть синхронизированы на клиенте и машине с MS SQL иначе тоже такая ошибка может вылазить.