Pool's de Conexões

Uma das boas práticas (pelo menos na teoria) seria manter uma aplicação acessando o banco de dados através de um pool de conexões…
Para aplicações JavaWeb (ou qualquer outra plataforma baseada), o próprio servidor fica responsável para gerenciar as conexões simultâneas que aquele site receberá conforme o tempo.

Frequentemente, encontramos em “tutoriais” e artigos pela internet os exemplos de conexões com banco de dados para aplicações desktop sendo feitas a partir do padrão singleton, ou seja, uma conexão aberta para toda a aplicação. O que “de cara” não é eficaz.

Para uma aplicação desktop em java, onde vários clientes (.jar) usarão uma única base de dados (arquitetura cliente-servidor), qual seria a melhor forma?

Exemplo: [1] Utilizar um pool de conexões que será gerenciado pela aplicação (hibernate com c3p0 ou dbcp) ou [2] então configurar o servidor para rodar o Tomcat e configurar a aplicação Java Desktop para acessar determinado DataSource configurado no mesmo (parecido com o esquema de acesso via JNDI, mas não sei se é possível ter acesso a um “contexto” remotamente, já que os arquivos de configuração estão presentes dentro do próprio projeto).

Alguém com mais experiência poderia me ajudar?

Caso não fique explícito o que quero dizer, avisem por favor, não sei se estou dizendo “abobrinhas” aqui.

Obrigado!

No seu caso dos clientes acessarem o banco diretamente a opção [2] seria a melhgor na minha opinião. Datasources podem sim ser acessados remotamente via JNDI, provavelmente vai ser necessário alguma configuração do servidor de aplicação.
Outra opção que eu considero mais adequada seria os clientes acessarem os dados através de serviços web, mas aí eu não sei se vc tem tempo ou experiência nisso.

1 curtida

Aqui tem o que você precisa, e o que eu acho correto utilizar, pool com Tomcat.

1 curtida