Когда Процесс A работает хорошо, он может подписаться и получить сообщение от B. Однако, когда A выходит из строя из-за некоторых ошибок кода, он не может подписаться и получить сообщение от B при перезагрузке A. Кажется, соединение между A и B закрыто.
Я использую транспорт SHM следующим образом:
Код: Выделить всё
std::shared_ptr shm_transport = std::make_shared();
shm_transport->segment_size(16 * 1024 * 1024);
participantQos.transport().user_transports.push_back(shm_transport);
Когда я перезагружаю процесс B, соединение восстанавливается, A может подписаться на B.
Я также нашел healthy_checkout_timeout_ms для SHM, но я не уверен, что это правильный путь.
Пожалуйста, дайте мне несколько советов.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -using-shm