Controle Transaciona Programatico

OO no mundo real: evite vazamento de conexões com controle transacional programático

No último Javou (evento da JavaCE) o prof. Alexandre Martins comentou na sua palestra que um dev junior conseguiu derrubar por alguns minutos o sistema de previdência social da Dataprev. Estou falando do principal sistema da empresa… muito louco não?

Sabe como? Ele esqueceu de colocar essa linha de código aqui:

conexao.close();  // fecha conexão com o banco

Simmm! Ele esqueceu de fechar uma conexão com o banco de dados! Se você não sabe, uma conexão é um recurso muito caro e, para piorar, é muito limitado; todo banco tem um limite de conexões que podem ser abertas, se esse limite estourar já era, a aplicação não consegue mais conversar com o banco!

(Eu nem culpo esse dev junior, até porque eu já fiz algo parecido em alguns sistemas… mas não conta pra ninguém, tá?)

Mas como ele poderia ter evitado?

A boa prática diz que todo recurso caro que for aberto deve sempre ser fechado quando não for mais utilizado. Uma boa maneira de fazer isso é através do bloco try-catch-finally do Java:

Connection conexao = null;
try {
    conexao = ConnectionFactory.getConnection();
    // logica de negócio

} catch (SQLException e) {
    // trata erro
} finally {
    conexao.close(); // fecha conexão com o banco
}

O problema é que repetir esse código em todo o sistema é muito frágil, cedo ou tarde alguém esquece e termina com o sistema fora do ar. Aí já viu né, é justa causa…

E se eu te dissesse que tem uma maneira mais elegante de resolver isso usando OO? É o que chamamos de controle transacional programático e traz diversos benefícios para qualquer sistema, entre eles a garantia que toda conexão com o banco é fechada!

Pra te ajudar a entender do que estou falando, eu bloguei sobre o assunto:

[Post] Controle Transacional Programático em Sistemas Legados

Após ler esse artigo eu te garanto que você vai levar o controle de conexões e transações na sua aplicação mais a sério, seja seu sistema legado ou mais moderno com JPA e Hibernate.

dica-de-programacao-dica-1-nao-concatene-sql

Dica #1 – Não Concatene SQL no seu Código Java

Acabamos de lançar um vídeo com a seguinte dica Não Concatene SQL no seu Código Java. Este vídeo faz parte do projeto Dicas de Programação da TriadWorks na qual tem o intuito de passar dicas importantes em forma de VÍDEOS SEMANAIS para programadores de todos os tipos, em especial os iniciantes.

Os vídeos são super cursos, com duração de 2-5min, e uma didática simples mas eficiente para que conceitos complexos sejam facilmente entendidos e absorvidos por qualquer programador! Sem mais, segue o link do vídeo para você assistir e deixar sua opinião:

Não Concatene SQL no seu Código Java

Este é o 1o vídeo! Na próxima semana teremos outro e a cada semana +1 novo vídeo com uma dica que te ajudará a refletir sobre suas práticas de programação do dia a dia. Isto é, assista o vídeo e já coloque em prática a dica de programação!

Assiste o vídeo, se inscreve na lista para receber novos vídeos por email e deixa seu comentário com novas sugestões de dicas, críticas e correções.