O Fusion Platform deixa conexões abertas com o intuito de otimizar a performance na execução das instruções de consulta, inclusão ou alteração de tabelas. Isso porque é muito mais rápido executar uma query em uma conexão aberta ao invés de abrir uma conexão, executá-la e fechar a conexão para cada requisição.
Entretanto, é possível configurar o limite máximo e mínimo de conexões abertas. Tal configuração é feita no arquivo neo-persist.xml, presente no projeto do Fusion em …WebContent\WEB-INF\classes\META-INF.
Ao editar esse arquivo, é possível encontrar as seguintes propriedades: hibernate.c3p0.max_size e hibernate.c3p0.min_size.
A propriedade hibernate.c3p0.max_size: define a quantidade máxima de conexões que podem ficar abertas.
Enquanto a propriedade hibernate.c3p0.min_size:, define a quantidade mínima de conexões que devem ficar abertas.
Ambas aparecem em dois momentos: uma vale para o banco de dados do Fusion e a outra vale para os bancos de dados externos.
A primeira configuração a ser feita é a base de dados do Fusion, ela está presente em: <persistence-unit name=”neomind” …>
Já para as bases de dados externas, a configuração deve ser feita em <persistence-unit name=”externalTemplate” …>, tudo que há nesta persistence valerá para o engine de persistência das Fontes de Dados Externas.
É importante ter conhecimento que, se houver cinco Fontes de Dados Externas, uma quantidade mínima de conexões abertas igual a 10 (hibernate.c3p0.min_size value = “10”) e uma quantidade máxima de conexões abertas igual a 100 (hibernate.c3p0.max_size value = “100”), o Fusion irá manter no mínimo 50 conexões abertas (5 x 10). Ou seja, 10 conexões mínimas abertas para cada Fonte de Dados. Além disso, o máximo pode alcançar 500 conexões (5 x 100), isto é, máximo de 100 conexões para cada Fonte de Dados.
Por esse motivo, é importante tomar atenção à Fonte de Dados Externas de um mesmo servidor, pois levando em conta o cenário acima, poderá haver um grande número de conexões.
Portanto, é possível alterar esses valores de acordo com o desejado, levando em conta a necessidade, performance, entre outros aspectos.