Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pedrok

Como abrir uma Transação no DAO?

Recommended Posts

Boa noite a todos,

 

Estou com um problema, tenho uma aplicação rodando para uns 6 usuários. Quando essss usuários estão acessando o banco ao mesmo tempo, percebo que esta havendo falha nas consultas/updates. Gostaria de saber como poderia gerênciar isso. Teria que abrir transações?

 

Sou um pouco novato com Java web. Gostaria Que alguém pudesse me orientar.

 

Abaixo segue um pedaço do DAO, na qual se refere a um método que faz um update.

 

O que poderia fazer para controlar a concorrência do update? Já que se 2 ou mais fizerem ao mesmo tempo poderá causar problema.

 

Mesmo caso ocorre no SELECT.

 

public boolean upIdDetalheUFRs(String IdDocContabil,
            String fontel,
            int tipoUpdate,
            int idUsuario,
            String nomeUsuario) {

        Connection conn = null;
        PreparedStatement ps = null;
        boolean isOk = false;

        conn = ConnectionFactory.getConnection();
        if (conn == null) {
            return isOk;
        }

        sql = UFRQuerry.upIdDetalheUFRs(IdDocContabil, fontel, tipoUpdate, idUsuario, nomeUsuario);

        try {
            ps = conn.prepareStatement(sql);
            ps.executeUpdate();
            isOk = true;
        } catch (SQLException ex) {
            Logger.getLogger(SaldoCCorrenteFonteDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            ConnectionFactory.closeConnection(conn, ps);
        }

        return isOk;
    }
} 

 

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar um framework ORM pra tratar desse tipo de coisa pra você.

https://www.google.com/search?client=ubuntu&channel=fs&q=hibernate+controle+transacao&ie=utf-8&oe=utf-8

 

Você também pode deixar que o contêiner gerencie suas transações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, fiz um programa que um usuário passou 1 mês testando, somente ele, e ficou Somente, selects e updates.

No entanto, qndo passamos para mais usuários, começou haver problema de concorrência na transação.

Por exemplo, qndo 2 usuário vão fazer update ao mesmo tempo, 1 deles conclui e o outro da erro. Analisei, e possivelmente é uma transação bloqueada.

 

Você pode usar um framework ORM pra tratar desse tipo de coisa pra você.

https://www.google.com/search?client=ubuntu&channel=fs&q=hibernate+controle+transacao&ie=utf-8&oe=utf-8

 

Você também pode deixar que o contêiner gerencie suas transações.

 

Vergil, Não gostaria de usar hibernate... Teria alguma outra solução ?;;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Toplink da Oracle.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, fiz um programa que um usuário passou 1 mês testando, somente ele, e ficou Somente, selects e updates.

No entanto, qndo passamos para mais usuários, começou haver problema de concorrência na transação.

Por exemplo, qndo 2 usuário vão fazer update ao mesmo tempo, 1 deles conclui e o outro da erro. Analisei, e possivelmente é uma transação bloqueada.

 

 

 

Vergil, Não gostaria de usar hibernate... Teria alguma outra solução ?;;

 

Não intendi, pq não quer usar o hibernate? Garanto que ele te ajudaria MUUUUITO, e é extremamente facil abrir uma transação com ele =P

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.