Definições do Conjunto de Conexões

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

Esta página do console administrativo é comum a origens de dados JDBC e connection factories JMS (connection factories unificadas, de fila ou tópico). Para visualizar esta página, o caminho depende do tipo de recurso, mas geralmente você seleciona uma instância do tipo de recurso e clica em Conjunto de Conexões. Por exemplo:
Evitar Problemas: O conjunto de conexões não é suportado em um aplicativo cliente. O aplicativo cliente chama o banco de dados diretamente e não passa por uma origem de dados. Se desejar usar o pedido getConnection() de um aplicativo cliente, configure o provedor JDBC nos descritores de implementação do aplicativo cliente, usando Rational Application Developer ou uma ferramenta de montagem. A conexão é estabelecida entre o aplicativo cliente e o banco de dados. Os aplicativos clientes não têm um conjunto de conexões, mas você pode configurar definições do provedor JDBC nos descritores de implementação do cliente.gotcha
Tempo limite da 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.

Esse valor indica quantos segundos um pedido de conexão aguarda quando não há conexões disponíveis no conjunto livre e nenhuma conexão nova pode ser criada. Isso normalmente ocorre porque o valor máximo de conexões no conjunto específico foi atingido.

Por exemplo, se Tempo Limite de Conexão estiver definido como 300, e o número máximo de conexões estiver sendo utilizado, o gerenciador de pool aguardará a disponibilidade de uma conexão física por 300 segundos. Se uma conexão física não estiver disponível dentro deste período, o gerenciador de pool iniciará uma exceção ConnectionWaitTimeout. Na maioria dos casos, você não deverá tentar novamente o método getConnection(); se um tempo de espera não for mais necessário, aumente o valor da configuração de Tempo Limite de Conexão. Se uma exceção ConnectionWaitTimeout for obtida pelo aplicativo, reveja o uso do conjunto de conexões esperado do aplicativo e ajuste o conjunto de conexões e o banco de dados apropriadamente.

Se o Tempo Limite de Conexão estiver definido como 0, o gerenciador de pool aguardará, se necessário, até que uma conexão se torne disponível. Isto ocorre quando o aplicativo conclui uma transação e retorna uma conexão ao pool, ou quando o número de conexões fica abaixo do valor de Número Máximo de Conexões, permitindo que uma nova conexão física seja criada.

Se o Número Máximo de Conexões estiver definido como 0, que permite um número infinito de conexões físicas, o valor de 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 configurado 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.

Saber o número de conjuntos de conexões que potencialmente podem solicitar conexões do backend (como um banco de dados DB2 ou um servidor CICS) ajuda a determinar um valor para a propriedade Número Máximo de Conexões.

[AIX Solaris HP-UX Linux Windows] [iSeries] Para múltiplos servidores de aplicativos independentes que utilizam a mesma configuração de origem de dados ou configuração de connection factory J2C, existe um conjunto de conexões físicas separado para cada servidor. Se você clonar esses mesmos servidores de aplicativos, o WebSphere Application Server implementará um conjunto de conexões separado para cada clone.

[z/OS] Considere o número de servants que acessam o mesmo recurso; no tempo de execução, esse número multiplica essencialmente a configuração Número Máximo de Conexões. Quando os servants chamam a mesma origem de dados JDBC ou a configuração do connection factory J2C, o WebSphere Application Server implementa um conjunto de conexões físicas correspondente para cada servant. Portanto, o mesmo conjunto de conexões existe, independentemente, em cada servant. A configuração Número Máximo de Conexões se aplica a cada um desses conjuntos.

[AIX Solaris HP-UX Linux Windows] [iSeries] Todos esses conjuntos de conexões correspondem à mesma configuração de origem de dados ou de connection factory. Portanto, todos esses conjuntos de conexões podem, potencialmente, solicitar conexões do mesmo recurso de backend simultaneamente. O valor único de Número Máximo de Conexões que você configura nesse painel do console aplica-se a cada um desses conjuntos de conexões. Conseqüentemente, a configuração de um valor alto de Número Máximo de Conexões pode resultar em um carregamento de pedidos de conexão que sobrecarrega seu recurso de backend.

[z/OS] Potencialmente, cada aplicativo que requer a origem de dados ou connection factory nesses servants pode tentar utilizar o recurso simultaneamente. Portanto, os conjuntos de conexões correspondentes requerem conexões do mesmo backend simultaneamente. Não configure um valor de Número Máximo de Conexões que possa fazer com que o carregamento de pedidos sobrecarregue seu banco de dados ou outro EIS (Enterprise Information System).

Tipo de Dados Inteiro
Padrão 10
Intervalo 0 para inteiro máximo

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

Dica: Para obter um melhor desempenho, configure o valor do conjunto de conexões para menor que o valor do número máximo de conexões do conjunto de encadeamentos do contêiner da Web. Defina essa configuração navegando para Servidores > Tipos de Servidor > Servidores de Aplicativos do WebSphere > servidor > Conjuntos de Encadeamento e modifique a propriedade WebContainer. Definições mais baixas, como 10-30 conexões, têm melhor desempenho do que definições mais altas, como 100.

Você pode utilizar o Tivoli Performance Viewer para localizar o número ideal 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 pool.

Número Mínimo de Conexões

Especifica o número mínimo de conexões físicas a serem mantidas.

Se o tamanho do pool de conexão estiver no nível ou abaixo do tamanho mínimo do pool de conexão, o encadeamento de Tempo Limite Não Utilizado não descartará as conexões físicas. No entanto, o pool não criará conexões apenas para assegurar que o tamanho mínimo do conjunto de conexões seja mantido. Além disso, se você definir um valor para Tempo Limite Decorrido, as conexões com uma duração expirada serão descartadas, independentemente da definição de tamanho mínimo do pool.

Por exemplo, se o valor de Número Mínimo de Conexões estiver definido para 3 e uma conexão física for criada, o encadeamento de Tempo Limite Não Utilizado não descartará essa conexão. Pelo mesmo token, o encadeamento não cria automaticamente duas conexões físicas adicionais para alcançar 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 encadeamento de manutenção de conjunto.

Por exemplo, se o Tempo de Coleta estiver definido como 60, o encadeamento de manutenção do grupo será executado a cada 60 segundos. O intervalo Tempo de Coleta afeta a precisão das configurações Tempo Limite Não Utilizado e Tempo Limite Transcorrido. Quanto menor o intervalo, maior a exatidão. Se o encadeamento de manutenção do grupo 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 grupo é executado, ele descarta todas as conexões que permanecem não utilizadas por mais tempo do que o valor 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 encadeamento de manutenção do grupo 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 encadeamento de manutenção do grupo é executado com mais freqüência e diminui o desempenho.

Para desativar o encadeamento de manutenção de pool, 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 encadeamento de manutenção de pool é 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 encadeamento de manutenção do grupo 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 de ociosidade

Especifica o intervalo em segundos após o qual uma conexão não utilizada ou inativa é 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 serão descartadas apenas se o número atual de conexões exceder a definição de Número Mínimo de Conexões. Por exemplo, se o valor de tempo limite não utilizado for definido como 120 e o encadeamento de manutenção de pool 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.

A exatidão e o desempenho desse tempo limite são afetados pelo valor de Tempo de Coleta. Consulte Tempo de Coleta para obter maiores 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 como 0 suporta que conexões físicas ativas permaneçam no conjunto indefinidamente. Configure o valor Tempo Limite Transcorrido como um valor maior que o valor Tempo Limite de Coleta para obter melhor desempenho, mas o Tempo Limite Transcorrido deve ser usado somente se necessário.

Para a maioria dos adaptadores de recursos, o Tempo Limite Transcorrido deve ser configurado para 0. O Tempo Limite Transcorrido deve ser usado apenas quando souber que uma conexão gerenciada ficará obsoleta. Por exemplo, uma conexão gerenciada do IMS parará de funcionar depois que o log nativo atingir um limite para essa conexão gerenciada. Se o log ficar sem espaço durante 30 minutos, você deverá configurar o Tempo Limite Transcorrido para 25 minutos. Isso permite que a limpeza da conexão gerenciada e os recursos de backend sejam liberados.

Outro exemplo é se o valor de Tempo Limite Transcorrido for configurado 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 (ou 20 minutos) serão descartadas do conjunto. A única exceção será se a conexão estiver envolvida em uma transação quando o tempo limite transcorrido for atingido, o servidor de aplicativos não descartará a conexão até que a transação seja concluída e a conexão fechada.

A exatidão e o desempenho desse tempo limite são afetados pelo valor de Tempo de Coleta. Consulte Tempo de Coleta para obter maiores informações.

Tipo de Dados Inteiro
Unidades Segundos
Padrão 0
Intervalo 0 a max int
Política de Limpeza

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.

Tipo de Dados Cadeia
Padrões
  • EntirePool para connection factories J2C e connection factories relacionados ao JMS
  • EntirePool para origens de dados do WebSphere Versão 4.0
  • EntirePool para origens de dados da versão atual que você cria por meio do console administrativo
  • EntirePool para origens de dados de versão atual cujo script você cria por meio dos comandos wsadmin AdminConfig, chamando modelos JDBC criados no WebSphere Application Server (para obter informações sobre o comando createUsingTemplate, consulte o artigo do centro de informações, "Comandos para o Objeto AdminConfig").
  • FailingConnectionOnly para origens de dados cujo script você cria no wsadmin sem chamar modelos JDBC
:
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á uma Exceção de conexão stale durante a próxima operação nessa conexão. Os pedidos getConnection() seguintes do aplicativo resultarão na abertura 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
Apenas a conexão que causou a exceção de conexão stale será 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 apenas a conexão com falha atual será fechada, existe uma boa possibilidade de que o próximo pedido getConnection() do aplicativo possa retornar uma conexão do pool que também seja 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 do pool que não são válidas. Quando um recurso de backend, como um banco de dados, é desativado, podem existir conexões do pool inválidas no pool livre. Isto é válido principalmente quando a política de limpeza é failingConnectionOnly. Nesse caso, a conexão com falha é removida do pool. Dependendo da falha, as conexões restantes no conjunto podem não ser válidas.




Links marcados (on-line) requerem acesso à Internet.

Conceitos relacionados
Tarefas relacionadas
Referências relacionadas


Nome do arquivo: udat_conpoolset.html