Notas de Aula - MAC 5759 - Sistemas de Objetos Distribuídos

Aula 17 - 16/5/2002

Transações Distribuídas

Serviço de Transações CORBA

Transactional Application

Interfaces e Componentes do Serviço de Transações
CORBA::Object_var transacao =  
Bootstrap.resolve_initial_references("TransactionCurrent");
CosTransactions::Current_var transaction_current_oref=
CosTransactions::Current::_narrow(transacao.in());
transacao->begin();
try {
minhaConta->transferencia(poupanca, CC, valor);
...
CORBA::Boolean report_heuristics = CORBA_TRUE;
transacao->commit(report_heuristics);
}
catch (...) {
// Se a operação falha, execute o rollback e gere a exceção novamente.
// Se o rollback falha, simplesmente gere a exceção original.
try {
transacao->rollback();
}
catch (...) {
log->registra("o roll-back falhou, o mar não está prá peixe");
}
throw;

 

Java (não dado em sala de aula)


Referências



Próxima Aula
Aula Anterior
Página de MAC 5759
Página do Fabio
Página do DCC