Странное поведение COM-сервера - PullRequest
1 голос
/ 13 января 2012

COM-сервер написан на C ++. Обычно это работает нормально, но иногда у некоторых клиентов возникают странные проблемы. Клиенты (приложения с графическим интерфейсом) отправляют на сервер запросы на получение или сохранение какого-либо бизнеса. Если у клиентов возникли какие-либо проблемы, они также отправляют запрос на сервер для регистрации ошибок. В странной ситуации клиент получает исключение COM «Недостаточно памяти для выполнения этой операции», отправляет сообщение об ошибке на сервер и закрывает себя (оно было запрограммировано на закрытие для закрытия после такого исключения). Сервер регистрирует сообщение без проблем, но через некоторое время оно не работает должным образом. Он отвечает только на некоторые запросы (шаблоны не найдены). На сервере и на клиентских компьютерах достаточно памяти и мощности процессора (также при возникновении проблемы). Перезапуск сервера решает все проблемы (до следующего появления, которое обычно происходит через пару дней).

Кто-нибудь знает, в чем проблема?

Спасибо заранее Лукаш

1 Ответ

2 голосов
/ 13 января 2012

Это слишком мало информации, чтобы точно определить причину проблемы. Конечно, проблемы с многопоточностью могут быть причиной этого, но существуют десятки похожих причин, которые могут иметь тот же результат.

За кадром это HRESULT: 0x8007000E (E_OUTOFMEMORY). Вопрос в том, кто генерирует этот результат; это COM-взаимодействие или код вашего сервера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...