[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Obtendo um PropagationContext



Bom dia senhores,

    Estou com um pouco de dificuldades para criar um PropagationContext 
para passar nas requisições CORBA. Eu pensei em duas formas de fazer isso:

1) Criar o PropagationContext na raça, preenchendo seus campos um por um
2) Pegar um referência CORBA para o servente default 
(TransactionServiceImpl) usando a inteface Coordinator e chamar o método 
get_txcontext()

    Comecei a testar a estratégia 2, por parecer ser mais prática. 
Implementei no TxServerClientInterceptor um método que substitui o 
getEmptyPropagationContext() e tenta pegar uma referência para o 
Coordinator, procurando por "UserTransaction" 
(CorbaTransactionService.COSNAMING_USERTX_NAME) no serviço de nomes 
CORBA. Acontece que, ao chamar um método no no serviço de nomes CORBA, 
ele passa no TxServerClientInterceptor >> send_request() novamente, que 
faz passar no meu método novamente, fazendo um loop infinito. Bom, 
aparentemente não é a coisa mais difícil do mundo evitar esse loop 
infinito, mas no fim das contas eu achei que ficou meio "estranha" essa 
minha estratégia. E para implementar a outra estratégia, de qualquer 
forma eu vou precisar de uma referência pra um coordenador, o que eu 
pretendia obter através do serviço de nomes CORBA...

    Alguém aí passou por esse problema ? Tem alguma sugestão ?
    Ou fizeram isso de forma totalmente diferente ?
    Tem algum outro jeito de obter um Coordinator ?

Obrigado,
Danilo