Uso o Servidor Compartilhado num Oracle 9i R2 num Linux Red-Hat 64Bit.
Temos uma aplicação que utiliza o JBoss, esta aplicação possui um pool
de conexões semelhante ao do Oracle. O JBoss mantem em media 100
conexoes ou mais no banco reutilizando as mesmas conexoes quando
disponível para as transações.
Bom o que acontece aqui é que quando algumas transaçoes chegam ao
Oracle elas param.
Verificando a V$SHARAD_SERVER a coluna STATUS fica com o valor
WAIT(RECEIVE), talvez recebendo dados do Dispatcher, eu acho, e
consultando a V$SESSION_WAIT estas mesmas sessões ficam com espera de
"VIRTUAL CIRCUIT STATUS". Sendo assim os processos Shared_servers
ficam alocados e o Oracle aloca mais processos até atingir
max_shared_servers e estes processos não executam nenhuma transação e
nem resulta nenhum erro.

As configurações de init.ora do banco são o seguinte para o MTS:
max_shared_servers                   20
shared_servers                       10
max_dispatchers                       5
DISPATCHERS                      
"(PROTOCOL=tcp)(MULTIPLEX=on)(DISPATCHERS=8)"
large_pool_size                       738197504
circuits                              2200
mts_sessions                          2200

Alguem tem alguma ideia do que pode estar acontecendo? principalmente
o status da V$SHARED_SERVER como WAIT(REVIVE).

Responder a