Pergunta

Eu tenho 4 aplicativos da Web, que têm uma referência comum a uma implementação de hibernato, mas que são executados em diferentes instâncias do Tomcat. E assim, por exemplo, um pool de conexão configurado em hibernado com um tamanho mínimo de 3 (com c3p0), vai resultar em 12 Conexão aberta (3 para cada instância) quando todos os projetos estão em execução.

Eu gostaria de "compartilhar" a implementação do Hibernate com as instâncias (e para ter sempre três conexões abertas em vez de 12), e eu estava me perguntando a melhor solução para alcançá -la.

Alguma dica?

Obrigado

Foi útil?

Solução

Eu gostaria de "compartilhar" a implementação do Hibernate com as instâncias (e para ter sempre três conexões abertas em vez de 12), e eu estava me perguntando a melhor solução para alcançá -la. Alguma dica?

Isso não é uma boa ideia. Em resumo, um pool de conexão deve ser dimensionado para conter conexões suficientes para atender às solicitações simultâneas recebidas sem que eles aguardem que uma conexão fique disponível. Com 4 aplicativos, você provavelmente precisará de mais de 3 conexões. Há algo errado (ou não claro) com sua lógica.

Minha dica seria, portanto, alocar recursos suficientes e dimensionar os pools de threads e os pools de conexão adequadamente para atender às solicitações simultâneas que cada aplicativo deve lidar com isso, e isso sem esgotar o pool.

Veja também

Outras dicas

Uma abordagem pode ser criar um serviço de back -end adicional que execute o Hibernate e que está conectado aos serviços de front -end por meio de um serviço da Web. Dessa forma, haveria uma instância de hibernação.

Você não pode fazer isso. Cada instância do Tomcat é executada em sua própria JVM, para que você não possa compartilhar objeto ou classes entre eles.

Por que você não gosta de conexões de 12 dB? Os sistemas de banco de dados modernos são capazes de lidar com milhões de conexões.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top