Padrão de Arquitetura - Dúvida

Minha equipe utiliza uma API que encapsula o acesso a um sistema legado, representando cada conexão com o legado como um objeto distinto. Essa API permite que qualquer número de objetos (e, logo, de conexões) seja criado pelo código cliente.

Você descobre que o legado apresenta problemas de desempenho quando o número de conexões simultâneas ultrapassa um determinado valor. Que padrão de desenho eu poderia adaptar para limitar o número de conexões criadas e evitar os problemas encontrados. Teria como descrever brevemente como seria esta adaptação para ter uma idéia ?

Obrigado

Vc pode fazer um pool de conexões ou de objetos… Algo como o que os containers EJB fazem com stateless beans…

No Apache Commons tem um componente chamado Pool, que é um pool genérico para objetos. Nunca mexi, mas pode ser que sirva para o que você precisa.

Abraços.

Fala Digão,

Eu juro q ainda não entendi esse “Padrão de Desenho” q eu vejo tanto por aqui… mas voltando a vaca fria, a parada é a seguinte :

QUALQUER sistema vai sofrer desse mal, pois em algum dado momento o software quando recebe uma garga enorme de conexões ou trabalho ele senta mesmo. Uns tem um limite maior do que outros, como por exemplo o Oracle… eu já vi ele sentar por conta de um número absurdo de conxões simultâneas, ou ainda queries que foram mal escritas. Essa introdução é só pra mostrar a encrenca.

Repondendo de uma forma rápida e sem conhecer exatamente os seus sistemas, eu diria q uma solução rápida seria alterar essa API para que a mesma tenha algum controle sobre a configuração do mínimo e máximo de conexões permitido, mais ou menos como fazemos com um DataSource. Não sei se vocês possuem o código fonte dessa API.

Existe uma especificação na plataforma J2EE para a criação de conectores entre o application server e EIS :

http://java.sun.com/j2ee/connector/
http://java.sun.com/j2ee/connector/overview.html

Ela foi formulada justamente para auxiliar na criação de uma API para prover a conectividade entre aplicações, de forma que a mesma seja gerenciada pelo application server, possibilitando XA, pools e etc. Seria muito bom vcs darem uma olhada nisso.

Espero q o meu post tenha te dado uma luz. :wink: