[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: Uso do SQL Server
- Subject: Re: Uso do SQL Server
- From: Roberto Speicys Cardoso <speicys@ime.usp.br>
- Date: Thu, 5 Dec 2002 21:20:33 -0200 (EDT)
On Thu, 5 Dec 2002, Flavio Luiz Coutinho wrote:
> > Quando eu tava todo alegre, vi que meu log não funcionava (apesar de o SQL
> > está ok, atualizando as tabelas e tudo). Eu estava tão bitolado com a
> > configuração do banco que esqueci que eu precisava de 2 SGBD´s. Meu log
> > passa batido quando uso um só banco. (muito justo, pelo menos o código do
> > JBoss não tá errado...). Agora vou ter que mudar minha arquitetura
> > acochambradística para incluir um segundo SGBD. Não sei como, mas...
>
> Será que funcionaria usando dois bancos de dados diferentes dentro do mesmo
> SGBD??? Cada um com um DataSource diferente???
>
Creio que não. Do código do TransactionImpl:
if (resourceCount == 0) {
// Zero phase commit is really fast ;-)
if (trace)
log.trace("Zero phase commit: No resources.");
status = Status.STATUS_COMMITTED;
} else if (isOneResource()) {
// One phase commit
if (trace)
log.trace("One phase commit: One resource.");
commitResources(true);
} else {
// Two phase commit
O método isOneResource() verifica se os XA's envolvidos na transação são
de resources diferentes. Ou seja, mesmo que se tenha dois ou mais
Datasources envolvidos na transação, ele trata como one-phase commit. E
isto faz sentido: se vc tem dois bancos de dados no mesmo SGBD, vc deveria
ter que mandar apenas um commit com o id da transação. O SGBD
identificaria os bancos sob sua administração envolvidos e realizaria o
commit de cada um deles.
Isso tudo na teoria, mas eu não testei. E como estamos percebendo, sem
testar não quer dizer nada...
Abraços,
Beto
<speicys@etc...>