sincronizar acessos ao DAO

08/07/2018

0

Senhores boa tarde. Gostaria de uma ajuda. Fiz uma aplicação de agendamento. O cliente escolhe o dia, a hora. A coisa funciona. Mas está dando erros estranhos. Agenda num fim de semana, mesmo sendo um dia bloqueado. agenda mais pessoa que o número de vagas. Coisas assim.
Todo acesso ao banco de dados eu centralizei num classe chama sqlUtil e todos os seus métodos public synchronized static. Mesmo assim estão acontecendo esses erros.
Uso vaadin.
Alguém poderia me dizer qual a forma certa para sincronizar as chamadas à classe dao?
Por exemplo, a view de agendamento precisa salvar os dados usando o método sqlUtil.salvarAgendamento(...). Qual seria a melhor forma?
synchronized (this){
sqlUtil.salvarAgendamento(...)
}
Obrigado pela ajuda.
Abraços
Carlos Silva

Carlos Silva

Responder

Post mais votado

09/07/2018

Olá Carlos,
se os sistema aceitando o agendamento em dias bloqueados ou está agendando mais pessoas que o limite permitido o problema deve ser de regras de negócios e não de sincronizar ou não o método da camada de persistência. Cada usuário que acessa a aplicação tem uma sessão ou contexto único, sendo assim, não tem motivos para sincronizar os métodos de persistência. Isso porque, cada usuário vai ter um novo objeto DAO criado no seu acesso e os métodos fazem parte desse objeto, sendo assim, os demais usuário não precisam entrar em uma fila de threads para acessar o DAO já que eles não dividem o mesmo objeto.

Marcio Souza

Marcio Souza
Responder

Mais Posts

13/07/2018

Carlos Silva

Bom dia, Ballem.
Concordo com você. E para o caso do valor negativo, já modifiquei os campos para unsigned. Esta parte está resolvida. Agora estou quebrando a cabeça para solucionar a outra questão.
Obrigado pela força.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar