COM + Singleton Многочисленные ссылки - PullRequest
1 голос
/ 05 ноября 2008

У меня есть служба данных COM +, которая настроена на использование пула объектов с минимальным и максимальным размером пула 1. Итак, у меня есть синглтон. В некоторых сценариях количество объектов (количество клиентов, имеющих ссылку на этот экземпляр) превышает 1 и постоянно увеличивается. Создание экземпляра и один вызов его метода заключены в использование stmt, поэтому этот экземпляр должен быть надлежащим образом возвращен в пул. В то же время это происходит, я вижу некоторые проблемы с сетью (исключения ошибок транспортного уровня с SQLServer). Я подозреваю, что там может быть какая-то корреляция.

Как получается, что количество объектов превышает 1?

1 Ответ

1 голос
/ 27 января 2009

Вы видите эффект JIT (активация точно в срок) с пулами объектов.

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

см. Следующее: Принципы активации COM + Just-in-time

...