Oi Arnaldo,

Teoricamente o MS ACCESS suportaria Transa��o, mas na pr�tica ocorria
muito travamento. Por isso, devido � uma experi�ncia m� sucedida no
passado, deixei de utilizar transa��es com o MS ACCESS.

No exemplo citado a transa��o tamb�m n�o resolveria, pois o conflito (de
TIME) se estabeleceu entre o processamento de 2 (dois) servlets e n�o
num contexto �nico de atualiza��o. Entretanto, com o novo driver do MS
OFFICE 2000, vou testar o uso de transa��es. Pode ser que o Tio Bill
tenha melhorado o gerenciamento do BD, pois o acesso ficou muito mais
r�pido e eficaz com o novo Driver ODBC, passando inclusive a suportar
(s� testei alguns) recursos do JDBC 2.0.

De qualquer maneira, constato a necessidade de migrar o mais r�pidamente
poss�vel o meu BD para ORACLE / DB2 etc...

[]'s

Carlos Campos

> ----- Mensagem original -----
> De:           Fauna [SMTP:[EMAIL PROTECTED]]
> Enviada em:           Segunda-feira, 3 de Janeiro de 2000 05:14
> Para:         Carlos Campos
> Assunto:              Re: Java x MS ACCESS 97 x JDBC-ODBC
> 
> Carlos,
> 
> N�o vi nenhum "commit" ap�s a opera��o de update, n�o seria isto... ou
> o
> ACCESS n�o suporta transa��es... Outra coisa a ser vista � a forma de
> conec��o, o ORACLE e DB2 por exemplo possuem op��es onde � determinada
> a
> forma como o banco procede em um "select", por exemplo, a "dirty read"
> (leitura suja) faz com que mesmo que um "update" tenha sido efetuado
> enquanto um commit n�o for dado o registro retornado pelo banco em um
> select
> � o antigo. Desculpe mas n�o me lembro o nome dado a esta propriedade
> da
> conec��o e estou longe das minhas documenta��es.
> 
> Arnaldo
> 
> 
> >Gostaria de saber se algum colega da Lista utiliza ou utilizou o MS
> >ACCESS 97 com JAVA via JDBC-ODBC. Estou vivenciando alguns problemas
> no
> >BD e seria �til a troca de experi�ncias. J� foi comentado por v�rios
> >colegas que o MS ACCESS n�o � um Banco de Dados leg�timo e eu deveria
> >trocar de Base de Dados. Como isso ainda n�o � poss�vel para mim,
> >insisto na busca de um interc�mbio mais produtivo na troca de id�ias.
> >
> >O c�digo listado abaixo exemplifica um problema que eu tive que
> >contornar, que vem a ser o seguinte:
> >
> >No m�dulo de ALTERA��O de um Sistema executo um UPDATE na tabela 1,
> um
> >DELETE e um INSERT numa tabela 2, e redireciono para um Servlet cuja
> >fun��o � receber a CHAVE PRIM�RIA e atualizar os dados na tela para
> uma
> >nova ALTERA��O/EXCLUS�O, ap�s fazer um Select na mesma tabela 1.
> Ocorre
> >que, provavelmente por uma defici�ncia do Driver do MS ACCESS,
> algumas
> >vezes o Select � mais r�pido do que o Update, ou seja, atualizo um
> >campo, mas o que retorna na tela do HTML � o registro imediatamente
> >anterior � atualiza��o. � uma constata��o de que uma opera��o UPDATE
> �
> >muito lenta, se comparada � um INSERT, DELETE ou SELECT. Ap�s v�rios
> >testes, inclusive com o recurso do PreparedStatement, o resultado
> deixou
> >a desejar. Fui for�ado a APELAR, criando um la�o FOR para retardar o
> >processamento, dando um tempo para que o update conclu�sse a sua
> tarefa
> >antes de fazer um select recuperando o registro com os dados
> >atualizados.
> >
> >Algu�m teria alguma dica ou coment�rio a fazer ???. Posso modificar a
> >l�gica para n�o redirecionar para outro Servlet (passando apenas a
> chave
> >prim�ria) mas fiquei intrigado com este caso, pois nunca tinha visto
> um
> >fato como esse.
> >
> >Aproveitando a oportunidade: Embora eu tenha constatado uma
> >incompatibilidade do MS ACCESS 97 com o JDBC 2.0 gerando diversas
> >"java.lang.UnsupportedOperationException", algu�m poderia confirmar
> este
> >fato e/ou sugerir alternativas ???
> >
> >[]'s
> >
> >Carlos Campos
> >
> >// LISTAGEM DE C�DIGO CITADO
> >
> >if(ope.equalsIgnoreCase("A")) {
> >  query =  "update Bei ... where (Bei_Cbs ="+cbs+")";
> >  stmt.executeUpdate(query);
> >
> >  // MAS QUE VERGONHA, ter que retardar o processamento para o Update
> >terminar de atualizar o BD
> >  long i = 0;
> >  for(i=0;i<100000000;i++) { long j=i; }
> >
> >  query = "delete * from Ibp where (Ibp_Cbs ="+cbs+")";
> >  stmt.executeUpdate(query);
> >  if(ponto.length() > 0) {
> >   query =  "insert into Ibp (Ibp_Ip,Ibp_Cbs,Ibp_Ponto)";
> >   query += " values ('"+ip+"',"+cbs+",'"+ponto+"')";
> >   stmt.executeUpdate(query);
> >   }
> >
> >hsrsp.sendRedirect("http://xxx.xxx.xx.xxx:8080/servlet/xxxxx?cbs="+cb
> s+"
> >&muo=SUCESSO");
> >}
> >
> >Carlos Campos
> >[EMAIL PROTECTED]
> >Analista de Sistemas / Bolsista PCI
> >MCT/CNPq  - CETEM - Centro de Tecnologia Mineral
> >Fone: 0xx21 5607222 - Ext. 358
> >
> >* Para n�o receber mais e-mails desta lista envie um e-mail para
> [[EMAIL PROTECTED]]
> >e no corpo do email escreva [unsubscribe <seu-email>]
> >Veja as mensagens antigas em
> http://www.mail-archive.com/javabr%40cits.br/
> >

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a