Transações distribuídas

Bom dia, sei que isto parece trabalho de faculdade (bom, na verdade é), mas não vim aqui pedir código pronto, e sim uma opinião…

Já consigo implementar transações simples num BD não distribuído em java.

A dúvida é a seguinte, para 2 BDs pensei em abrir duas conexões simultâneas e dar o commit no final…

Existem os protocolos 2-PC e 3-PC (PC = Phase Commit), e gostaria de implementá-los na minha transação.

Existe agum material sobre isso ou API pronta que vcs conhecessem sobre esse assunto?

Obrigado, Romeo

eu não entendi bem se vc quer implementar o controlador de transação ou implementar o uso de transações.

De qualquer forma a API de referencia é a Transaction API [url]http://java.sun.com/products/jta/[url] tanto se vc deseja implementar seu próprio controlador ou se vc deseja usar um pronto.
Para transacções distribuidas vc deve implementar um XAResource. Os bancos de dados disponibilizam XAConnection que implementa XAResource e deve ser usado em transações distribuidas. Nesse caso vc não precisa implementar nada de especial.

Um transaction manager já pronto e open source é o JOTM http://jotm.objectweb.org/