[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Obtendo um PropagationContext
- Subject: Obtendo um PropagationContext
- From: Danilo Conde <danconde@xxxxxxxxxxxx>
- Date: Fri, 17 Dec 2004 10:57:19 -0200
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