OK - não sei se ficou claro, mas a minha recomendação implica também que vc verifique COMO limitar o número máximo de conexões que o pool que vc usa mantém, aí vc pode fazer essas x conexões físicas atender aos seus 500 ou não sei quantos usuários, o pool va fazer um ** rodízio **, cada conexão física atenderá, sequencialmente, vários usuários....Assim, vc poderia ter essas conexões todas como dedicated, já que teria um LIMITE pra elas.. Por exemplo, em http://webdevelopersjournal.com/columns/connection_pool.html ele diz diretamente (ênfase com *s minha) :
"The Java Database Connect API (JDBC) is supported by all major database vendors as well as many small databases ...... The database connection pool class, DBConnectionPool, provides methods to * get an open connection from the pool, * return a connection to the pool, * release all resources and close all connections at shutdown. It also handles connection failures, such as time-outs, communication failures, etc. *** and can limit the number of connections in the pool to a predefined max value ***" Também é o que o que está sendo discutido em http://forum.java.sun.com/thread.jspa?forumID=51&messageID=1999231&threadID=442989 e em http://www.javaperformancetuning.com/tips/jdbcconnpool.shtml , ok ?? E um outro detalhe, em outra msg vc citava para um colega da lista que "não tinha muito o que fazer pois estava usando pools via jdbc", espero que os exemplos (e principalmente o texto em http://www.javaworld.com/javaworld/jw-10-2000/jw-1027-pool.html ) mostre que ao contrário, há SIM, pois não existe algo como "O JDBC", cada driver jdbc implementa a sua classe, ele afirma : "Each database server vendor provides the implementation for that interface (for example, Oracle implements the oracle.jdbc.pool.OracleConnectionPoolDataSource class). " fatalmente o driver vai ou implementar algo... Então se vc precisar de mais idéias, numa outra msg nos diga : SE é jdbc 2.x ou 3 que vc está usando, a versão do java, QUAL driver jdbc vc está usando (se é Oracle ou não), pure java ou não, a versão exata dele, do banco, do Java, do JBoss, e um trechinho do módulo onde vc seta o pool , de onde vc pede e devolve conexão, que eventualmente quem estiver na mesma situação pode tentar te ajudar. O grupo aqui é ESPECIALIZADO em bd Oracle, esse é o foco, provavelmente mais ref vc encontraria em sites/grupos de java, mas sei que há alguns experts em java que circulam por aqui, provavelmente poderiam te ajudar, ou ao menos palpitar.... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "leandrofff" <[EMAIL PROTECTED]> escreveu > > Ok Chiappa, > > vou tentar levantar se o JBoss tem algum tipo de timeout para as > transaçoes, pq penso que o Oracle não deve estar respondendo as > transações em tempo hábil, assim o JBoss encerra a transação e utiliza > a mesma transação para outro usuário, consequentemente "travando" o > processo servidor. Em um teste feito, matando o processo servidor pelo > sistema operacional o processo servidor "libera" o processo e o pmon > inicializa outro processo servidor que opera normalmente até algum > momento. > > Agradeço sua ajuda. > > Abraços > > Leandro > --- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <jlchiappa@> escreveu > > > > "Utilizo MTS para JBoss para controlar a quantidade de acessos ..." - > > não colega, a funcionalidade ** BÁSICA ** de um pool de conexões é > > atender mais usuários do que conexões disponíveis, o que ele faz ,se > > corretamente configurado, temporariamente "desconectando" algumas (as > > mais antigas sessões normalmente) ou algo similar, para que essas > > conexões atendam os outros usuários a mais, a idéia básica é que uma > > conexão do banco atenda n sessões conectadas ao pool, uma por vez. > > ORA, até onde entendo *** de forma alguma *** vc tem que ter > > esse "rodízio" de sessões no banco, que é o que o MTS /shared server > > faz, esse rodízio JÁ DEVERIA ESTAR sendo feito pelo pool externo, > > essa é a utilidade dele !!!! > > Quanto à documentação, no metalink, na nota de Subject: What is > > STATUS column in the V$SHARED_SERVER? Doc ID: Note:99217.1 o status > > está documentado, basicamente ela diz o que eu disse na msg anterior, > > ou seja, o shared server está "dedicado", está esperando por resposta > > à uma "mensagem", à uma comunicação, e logicamente essa resposta VAI > > SER por parte do dispatcher, que é quem faz a "ponte" entre o shared > > server e o processo cliente, mas que dá a resposta é o processo > > cliente.... Eu estou teorizando, quanto ao porque, que a carga está > > aumentando, o pool jboss, como é a sua função, quer re-usar a > > conexão que atendeu ao processo cliente x pra atender outro processo > > y, assim x foi "desconectado", e o pool o está fazendo antes que x > > tenha a chance de dar pro mts a msg de "atendimento completo", assim > > o shared server mts fica esperando resposta de x, que nunca vai > > receber, e fica bloqueado.... ==> Para mim , inclusive, é POR ISSO > > que em teste/desenvolvimento conexão "poolizada" com MTS funciona, no > > teste/desenvolvimento o ambiente não está sob pressão, não ocorre o > > caso do pool externo "desconectar" uma sessão x antes que ela tenha > > tido o tempo de enviar msgs de sucesso para o shared server..... > > Então pra mim o teu problema decorre disso, se vc quer usar um pool > > externo, DEIXE O POOL EXTERNO controlar as sessões - todo e qquer > > pool de conexões digno do nome TEM uma config de quantas sessões > > físicas no máximo vão ser mantidas no banco, quantas são abertas > > assim que o pool starta, é o trabalho ** dele ** re-usar as > > conexões..... Não tenho aqui nenhum tipo de pool externo pra poder > > exemplificar/testar, tudo o que eu disse é derivado do meu > > entendimento, MAS acho que faz sentido a possibilidade.... > > > > => Então para a "idéia" que vc perguntou se alguém tem, essa é a > > minha, vc a testará aí, blz ? > > > > []s > > > > Chiappa > > >