Sistema com vários bancos  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
nathanpsouza
JavaChild
[Avatar]

Membro desde: 11/07/2009 16:46:57
Mensagens: 106
Localização: Curitiba PR
Offline

galera, estou trabalhando em um sistema que tem um banco central, e atravéz desse banco central o usuario devera se conectar em seu banco especifico, é um sistema de empresas onde cada empresa tem seu proprio banco.

O sistema é web e usa hibernate + spring com 3 backends diferentes, eu imaginei em armazenar a sessionfactory de cada empresa em um tipo de pool, e o usuario da empresa acessar esse pool e pegar a sessionfactory correspondente, soh que ai vem o problema, minha experiencia com spring não é suficiente para um monstro desses :X
(é um projeto pessoal) e gostaria de idéias dos jedi daqui :}


[]'s

Dúvidas?? o fórum esta ai pra isso
[WWW]
pozzo
JavaEvangelist

Membro desde: 08/04/2006 11:07:20
Mensagens: 331
Localização: Curitiba
Offline

Os dados são os mesmos em todos os bancos, ou seja, é um cluster de bancos? Ou cada base vai ter dados diferentes? Também não ficou muito claro esse banco central, pode explicar melhor?

Bom, caso seja um cluster de bancos, você passa o ip de todos os bancos no hibernate.cfg.xml.

Caso deva ser separado, a idéia de ter vários session factories me parece boa.
nathanpsouza
JavaChild
[Avatar]

Membro desde: 11/07/2009 16:46:57
Mensagens: 106
Localização: Curitiba PR
Offline

São vários bancos com dados diferentes, a principio pensei em usar um banco compartilhado para todas as empresas, mais isso com certeza vai me dar dor de cabeça posteriormente, então pensei nessa forma, um banco para cada empresa e o "banco central" é onde ficaram os dados de cada empresa, como o plano assinado, os dados da empresa, os dados de usuários administradores, pagamentos.. enfim tudo que diz respeito a gerencia do plano de acesso ao sistema.

Axo que agora a idéia ficou mais clara pra que a galera possa opinar :}

Dúvidas?? o fórum esta ai pra isso
[WWW]
pozzo
JavaEvangelist

Membro desde: 08/04/2006 11:07:20
Mensagens: 331
Localização: Curitiba
Offline

nathanpsouza wrote:São vários bancos com dados diferentes, a principio pensei em usar um banco compartilhado para todas as empresas, mais isso com certeza vai me dar dor de cabeça posteriormente...


Porque "dor de cabeça"? Eu teria apenas um para todos. E, caso necessário, teria um cluster de bancos.
Eu acho mais fácil ter uma tabela 'Empresas' e relacionamentos, do que ter que gerenciar session factories no código. É claro que você pode fazer isso de uma forma transparente usando algum padrão, mas a primeira vista não me parece a melhor opção.

This message was edited 1 time. Last update was at 15/02/2010 13:39:29

nathanpsouza
JavaChild
[Avatar]

Membro desde: 11/07/2009 16:46:57
Mensagens: 106
Localização: Curitiba PR
Offline

axo mais seguro uma base pra cada empresa, caso ela desista do sistema, pode exportar em csv e boa..

sei la, do meu ponto de vista resolvi optar por essa abordagem.. (só nao pergunte sobre os fundamentos pq aew complica uhuihsiuHIuh)..

Dúvidas?? o fórum esta ai pra isso
[WWW]
nathanpsouza
JavaChild
[Avatar]

Membro desde: 11/07/2009 16:46:57
Mensagens: 106
Localização: Curitiba PR
Offline

problema resolvido com spring + hibernate configurado via código em um bean + um esquema para manter a sessionfactory :}

Dúvidas?? o fórum esta ai pra isso
[WWW]
EuclidesFilizola
JavaEvangelist
[Avatar]

Membro desde: 21/09/2006 12:38:54
Mensagens: 478
Offline

Tem como tu passar teu codigo, e explicar como funciona ???

estou passando pelo mesmo problema.

"Inteligencia é a faculdade de fazer objetos artificiais... especialmente ferramentas para fazer ferramentas"
[MSN]
Tchello
GUJ Master
[Avatar]

Membro desde: 07/06/2008 14:41:04
Mensagens: 1622
Offline

Se você tem vários bancos por que você não cria uma PU (persistence unit) pra cada um e não injeta um EM (EntityManager) pra específica quando você precisar?
Seja mais claro no que precisa!

Os bancos são independentes? Ou cada sistema vai precisar de informações de um banco ou outroS vez ou outra?
São sistemas independentes e diferentes?
Ou são cópias do mesmo sistema em paralelo pra clientes diferentes?
Ou o sistema é compartilhado diferenciando-se em tempo de execução pra cada cliente?

SCJP 6 (a caminho... , a missão)
SCWCD (a caminho... 2, o retorno)
EuclidesFilizola
JavaEvangelist
[Avatar]

Membro desde: 21/09/2006 12:38:54
Mensagens: 478
Offline

Bem...

é justamente oq vc disse ...

eu tenho 1 banco e 5 schemas ...

só que para cada schema, eu tenho uma persistence unit...

mas não sei porque.. algo da errado..

qndo eu começo a fazer várias buscas....

ele da o erro seguinte: "erro fatal: muitos clientes conectados.."

"Inteligencia é a faculdade de fazer objetos artificiais... especialmente ferramentas para fazer ferramentas"
[MSN]
Lindberg
JavaEvangelist
[Avatar]

Membro desde: 02/05/2006 19:23:53
Mensagens: 350
Offline

eu passei por isso, quando abre e fecha conexao muitas vezes da esta mensagem.
olha seu codigo !

eu fiz isso no meu context.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<Context path="/meusite" docBase="meusite" debug="5" reloadable="true" crossContext="true">
<Resource
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
maxActive="40000"
maxIdle="200"
maxWait="10000"
name="jdbc/minhaconexao"
type="javax.sql.DataSource"
url="jdbc:mysql://servidor/meubanco?autoReconnect=true"
username="usuario"
password="senha" />
</Context>

ve se ajuda !

This message was edited 1 time. Last update was at 22/05/2010 10:48:24


Aqui... A turma é D+++.
[WWW] [MSN]
EuclidesFilizola
JavaEvangelist
[Avatar]

Membro desde: 21/09/2006 12:38:54
Mensagens: 478
Offline

isso... coloca onde ? no web.xml ?

"Inteligencia é a faculdade de fazer objetos artificiais... especialmente ferramentas para fazer ferramentas"
[MSN]
Lindberg
JavaEvangelist
[Avatar]

Membro desde: 02/05/2006 19:23:53
Mensagens: 350
Offline

este arquivo: context.xml
eu to usando na pasta ...\meusite\META-INF


- Windows XP
- Tomcat 6

This message was edited 1 time. Last update was at 25/05/2010 18:07:15


Aqui... A turma é D+++.
[WWW] [MSN]
EuclidesFilizola
JavaEvangelist
[Avatar]

Membro desde: 21/09/2006 12:38:54
Mensagens: 478
Offline

Deu certo aqui mano.

eu fiz assim, coloquei dentro do meu persistence.xml , utilizei o pool de conexao c3p0.




"Inteligencia é a faculdade de fazer objetos artificiais... especialmente ferramentas para fazer ferramentas"
[MSN]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3420
Offline

nathanpsouza wrote:São vários bancos com dados diferentes, a principio pensei em usar um banco compartilhado para todas as empresas, mais isso com certeza vai me dar dor de cabeça posteriormente, então pensei nessa forma, um banco para cada empresa e o "banco central" é onde ficaram os dados de cada empresa, como o plano assinado, os dados da empresa, os dados de usuários administradores, pagamentos.. enfim tudo que diz respeito a gerencia do plano de acesso ao sistema.

Axo que agora a idéia ficou mais clara pra que a galera possa opinar :}


Se vc está tentando implementar um sistema multi empresa isso é completamente errado. Desenhe o sistema para comportar todas as empreas num unico banco.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
xdraculax
Java Ninja

Membro desde: 12/01/2009 16:12:54
Mensagens: 284
Offline

Estranho isso, porque não usa um banco só, e no cliente uma réplica dele como se fosse um cache para que o sistema possa funcionar off-line?
Não entendi a finalidade de um banco para cada empresa no MESMO ambiente.

This message was edited 1 time. Last update was at 18/06/2010 14:34:30


-Atenha-se a resolver o problema, e não criticar opiniões.
-Você percebe que está programando d+, quando está escrevendo identado!
-Não precisa estar certo, basta acreditar.
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team