Definições do Conjunto de Conexões

Utilize essa página para configurar definições do conjunto de conexões.

Essa página do console administrativo é comum para vários tipos de recursos; por exemplo, origens de dados JDBC e fábricas de conexão de filas JMS. Para visualizar essa página, o caminho depende do tipo de recurso, mas geralmente você seleciona uma instância do provedor de recursos e depois uma instância do tipo de recurso e clica em Conjunto de Conexões. Por exemplo, clique em Recursos > Provedores JDBC > provedor_JDBC > Origens de Dados > origem_de_dados > Conjunto de Conexões.

Guia Configuração

Tempo Limite de Conexão
Especifica o intervalo, em segundos, do tempo limite de um pedido de conexão, onde é emitida uma ConnectionWaitTimeoutException quando o mesmo for excedido.

A espera é necessária quando o valor máximo de conexões (Número Máximo de Conexões) a um determinado conjunto de conexões for atingido. Por exemplo, se Tempo Limite de Conexão estiver definido como 300 e o número máximo de conexões for alcançado, o Gerenciador de Conjunto aguardará 300 segundos por uma conexão física disponível. Se uma conexão física não estiver disponível neste período, o Gerenciador de Conjunto emitirá uma ConnectionWaitTimeoutException. Geralmente, não faz sentido tentar novamente o método getConnection(), porque se um tempo de espera mais longo for necessário, você deverá definir um Tempo Limite de Conexão para um valor mais alto. Portanto, se esta exceção for detectada pelo aplicativo, o administrador deve rever a utilização esperada do aplicativo e ajustar o conjunto de conexões e o banco de dados de acordo.

Se o Tempo Limite de Conexão for definido como 0, o Gerenciador de Conjunto aguardará até que uma conexão seja alocada (isso acontece quando o número de conexões fica abaixo do valor do Número Máximo de Conexões).

Se o Número Máximo de Conexões for definido para 0, o que permite um número infinito de conexões físicas, então o valor Tempo Limite de Conexão será ignorado.

Tipo de Dados Inteiro
Unidades Segundos
Padrão 180
Intervalo 0 a max int
Número Máximo de Conexões
Especifica o número máximo de conexões físicas que podem ser criadas no conjunto.

Estas são as conexões físicas para o recurso backend. Quando esse número for atingido, nenhuma nova conexão física será criada e o solicitante aguardará até uma conexão física atualmente em utilização retornar ao conjunto ou até uma ConnectionWaitTimeoutException ser emitida.

Por exemplo, se o valor Número Máximo de Conexões estiver definido para 5 e houver cinco conexões físicas em utilização, o gerenciador do conjunto aguardará o período de tempo especificado em Tempo Limite de Conexão para que uma conexão física seja liberada.

Se Número Máximo de Conexões estiver definido para 0, o valor de Tempo Limite de Conexão será ignorado.

Para um melhor desempenho, defina o valor do conjunto de conexões inferior ao valor da opção Número Máximo de Conexões no contêiner da Web. Definições mais baixas, como 10-30 conexões, têm melhor desempenho do que definições mais altas, como 100.

Se clones forem utilizados, um conjunto de dados existirá para cada clone. Saber o número de conjuntos de dados é importante ao configurar o número máximo de conexões de bancos de dados.

O Tivoli Performance Viewer pode ser utilizado para encontrar o melhor número de conexões em um conjunto. Se o número de solicitantes em espera simultaneamente for maior que 0, mas a carga da CPU não estiver próxima a 100%, considere o aumento do tamanho do conjunto de conexões. Se o valor Percentual de Utilização for consistentemente baixo durante a carga de trabalho normal, considere a redução do número de conexões no conjunto.

Tipo de Dados Inteiro
Padrão 10
Intervalo 0 a max int
Número Mínimo de Conexões
Especifica o número mínimo de conexões físicas a serem mantidas.

Até o número ser atingido, o encadeamento da manutenção do conjunto não descarta as conexões físicas. No entanto, não será feita nenhuma tentativa para que o número de conexões chegue até esse número. Se você definir um valor para Tempo Limite Transcorrido, o mínimo não será mantido. Todas as conexões com um tempo transcorrido expirado serão descartadas.

Por exemplo, se o valor do Número Mínimo de Conexões for definido para 3 e uma conexão física for criada, o encadeamento de Tempo Limite Não Utilizado não descarta a conexão. Pelo mesmo token, o thread não cria automaticamente duas conexões físicas adicionais para atingir a definição do Número Mínimo de Conexões.

Tipo de Dados Inteiro
Padrão 1
Intervalo 0 a max int
Tempo de Coleta
Especifica o intervalo, em segundos, entre execuções do thread de manutenção do conjunto.

Por exemplo, se o Tempo de Coleta estiver definido como 60, o thread de manutenção do conjunto será executado a cada 60 segundos. O intervalo Tempo de Coleta afeta a precisão das definições Tempo Limite Não Utilizado e Tempo Limite Transcorrido. Quanto menor o intervalo, maior a exatidão. Se o thread de manutenção do conjunto estiver ativado, defina o valor Tempo de Coleta como menor do que os valores de Tempo Limite Não Utilizado e Tempo Limite Transcorrido. Quando o encadeamento de manutenção do conjunto for executado, ele descartará todas as conexões que permanecem sem utilização por um tempo maior do que o valor de tempo especificado em Tempo Limite Não Utilizado, até atingir o número de conexões especificado em Número Mínimo de Conexões. O thread de manutenção do conjunto também descarta todas as conexões que ficaram ativas além do valor de tempo especificado em Tempo Limite Transcorrido.

O intervalo Tempo de Coleta também afeta o desempenho. Intervalos mais curtos significam que o thread de manutenção do conjunto é executado com mais freqüência e diminui o desempenho.

Para desativar o thread de manutenção do conjunto, defina Tempo de Coleta como 0 ou defina Tempo Limite Não Utilizado ou Tempo Limite Transcorrido como 0. A forma recomendada para desativar o thread de manutenção do conjunto é definir Tempo de Coleta como 0, nesse caso, Tempo Limite Não Utilizado e Tempo Limite Transcorrido serão ignorados. No entanto, se Tempo Limite Não Utilizado e Tempo Limite Transcorrido estiverem definidos como 0, o thread de manutenção do conjunto será executado, mas somente as conexões físicas que excederem o tempo limite devido a valores de tempo limite diferentes de 0 serão descartadas.

Tipo de Dados Inteiro
Unidades Segundos
Padrão 180
Intervalo 0 a max int
Tempo Limite Não Utilizado
Especifica o intervalo em segundos após o qual uma conexão não utilizada ou ociosa é descartada.

Defina o valor Tempo Limite Não Utilizado como um valor maior que o valor Tempo Limite de Coleta para obter melhor desempenho. As conexões físicas não utilizadas somente serão descartadas se o número de conexões atuais que não estiverem sendo utilizadas exceder a definição do Número Mínimo de Conexões. Por exemplo, se o valor de tempo limite não utilizado for definido como 120 e o thread de manutenção do conjunto for ativado (Tempo de Coleta não for 0), as conexões físicas que permanecerem sem utilização por dois minutos serão descartadas. Observe que a precisão deste tempo limite, bem como o desempenho, é afetada pelo valor Tempo de Coleta. Consulte Tempo de Coleta para obter mais informações.

Tipo de Dados Inteiro
Unidades Segundos
Padrão 1800
Intervalo 0 a max int
Tempo Limite Transcorrido
Especifica o intervalo em segundos antes de uma conexão física ser descartada.

Definir Tempo Limite Transcorrido para 0 suportará que conexões físicas ativas permaneçam no conjunto indefinidamente. Defina o valor Tempo Limite Transcorrido como um valor maior que o valor Tempo Limite de Coleta para obter melhor desempenho. Por exemplo, se o valor de Tempo Limite Transcorrido for definido para 1200 e o valor de Tempo de Coleta não for igual a 0, todas as conexões físicas que permanecerem existentes por 1200 segundos (20 minutos) serão descartadas do conjunto. Observe que a precisão desse tempo limite, assim como o desempenho, são afetados pelo valor de Tempo de Coleta. Consulte Tempo de Coleta para obter mais informações.

Tipo de Dados Inteiro
Unidades Segundos
Padrão 0
Intervalo 0 a max int
Política de Análise
Especifica como analisar conexões quando uma conexão danificada ou erro de conexão fatal é detectado.

Valores válidos são EntirePool e FailingConnectionOnly. Origens de dados JCA podem ter qualquer uma dessas opções. Origens de dados do WebSphere Versão 4.0 sempre têm um critério de limpeza de EntirePool.

Tipo de Dados String
Padrão EntirePool
Intervalo
EntirePool
Todas as conexões no conjunto são marcadas como stale. Todas as conexões que não estiverem sendo utilizadas serão fechadas imediatamente. Uma conexão em utilização será fechada e emitirá um StaleConnectionException durante a próxima operação da conexão. Solicitações getConnection subseqüentes do aplicativo resultam na aberta de novas conexões com o banco de dados. Ao utilizar esse critério de remoção, há uma pequena possibilidade de algumas conexões do conjunto serem fechadas de forma desnecessária quando não estão stale. No entanto, isso ocorre raramente. Na maioria das vezes, um critério de remoção EntirePool é a melhor opção.
FailingConnectionOnly
Somente a conexão que provocou o StaleConnectionException é fechada. Apesar desta definição eliminar a possbilidade de conexões válidas serem fechadas desnecessariamente, ela torna a recuperação da perspectiva de um aplicativo mais complicada. Como somente a conexão em falha atual é fechada, há uma boa chance da próxima solicitação getConnection do aplicativo retornar uma conexão do conjunto que também esteja stale, resultando em mais exceções de conexão stale.

A função de pré-teste de conexão tenta isolar um aplicativo das conexões em conjunto que não são válidas. Quando um recurso de backend como um banco de dados é desativado, pode haver conexões em conjunto inválidas no conjunto livre. Isto é válido principalmente quando o critério de limpeza é failingConnectionOnly. Nesse caso, a conexão com falha é removida do conjunto. Dependendo da falha, as conexões restantes no conjunto podem não ser válidas.