Экземпляр темы с ручным удалением не работает, если в qos установлен лимит ресурсов - PullRequest
0 голосов
/ 08 мая 2019

Я использую сообщество Opensplice версии 6.7.

Предполагается, что все читатели и писатели должны использовать один и тот же TopicQos, в котором указано ограничение на количество ресурсов в 1000 экземпляров. Поскольку нам нужно иметь дело с потенциально большим, чем этот 1000 предел, я создаю писателя на основе темы qos, но с дополнительной политикой

<< ds::core::policy::WriterDataLifecycle::ManuallyDisposeUnregisteredInstances();

Когда общее количество экземпляров темы достигнет 100, мой код избавится от 50 из них, вызвав

writer.dispose_instance(handle);

но этот подход, похоже, не работает. Когда писатель register_instance превышает лимит 1000, хотя я знаю, что многие из них уже уничтожены, он падает. Если я просто изменю писателя так, чтобы он не основывался на теме qos с ограничением ресурсов, а вместо этого был основан на писателе qos по умолчанию, это работает (писатель может зарегистрировать более 1000 экземпляров темы).

Заменяет ли тема qos политику утилизации вручную, поскольку для нее установлен лимит ресурсов?
Какой должна быть тема qos?

Обратите внимание, что писатели / читатели должны основываться на одной и той же теме qos, иначе у нас возникнет проблема с несовпадением Qos. Кто-нибудь знает об этом?

...