Tenho lido sobre arquitetura multi-tenant: http://msdn.microsoft.com/en-us/library/aa479086.aspx
Sei que o mais recomendado é montar a arquitetura do sistema para suportar multiplos usuários/empresas dentro do mesmo banco de dados. Mas na minha situação, já estou com o sistema montado com bancos de dados isolados, e estou enfrentando problemas com a memória, já que as session factories são pesadas(6~7 bancos de dados na memória).Seria loucura minha mudar a abordagem nesse momento. (no próximo sistema que fazer com certeza vou pensar nisso ao iniciar :D)
Após pesquisar um bom tempo cheguei nas seguintes abordagens:
Utilizando apenas o Hibernate, achei apenas esse caso que implementou um novo ConnectionProvider para direcionar para o dataSource correto:
https://forum.hibernate.org/viewtopic.php?p=2376731
Nesse caso como ficaria o gerenciamento do pool de conexões, já que utilizo o C3P0ConnectionProvider?
Utilizando o Spring, achei essa solução:
Essa solução não consegui implementar por falta de conhecimento no Spring.
Alguém já passou por uma situação semelhante e conseguiu resolver o problema?