Если вы хотите, чтобы перехватить сервис MYSERVICE, вы можете написать написать общую службу с именем INTERCEPTOR и сделать следующее:
- Unadvertise MYSERVICE и рекламировать его с именем INTER_MYSERVICE
- Реклама перехватчик с именем MYSERVICE
- Служба INTERCEPTOR-службы должна смотреть с каким именем она была вызвана (MYSERVICE) и должна переадресовать вызов службе с именем INTER_name, в этом случае INTER_MYSERVICE.
Эта конфигурация может быть выполнена динамически без перезапусков.
Я использую это для отладки/ведения журнала в разработке, где он работает достаточно хорошо. Я не уверен, буду ли я использовать его в производстве. Кроме того, мы используем только типы буфера XOCTET, что делает его проще, но я думаю, что он должен работать и с разными типами буферов.
Также сделать это для сотен услуг одновременно может стать проблемой.
Возможно, используя LD_PRELOAD для вызова вызовов на tpcall? Накладные расходы могут быть проблемой. Кто-нибудь пробовал загружать динамическую связь с Tuxedo? –