Definições do Conjunto de Conexões

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

Essa página do console administrativo é comum a uma variedade de tipos de recursos, como origens de dados JDBC e connection factories de fila 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 Pool de Conexões.

Por exemplo: clique em Recursos > JDBC > Provedores JDBC > provedor_JDBC > Origens de Dados > origem_de_dados > Propriedades do Conjunto de Conexões

O caminho para connection factories de fila JMS é: Recursos > JMS > Provedores JMS > Sistema de Mensagens Padrão > Connection Factory de Fila JMS > connection_factory_de_fila_JMS > Propriedades do Conjunto de Conexões.

Guia Configuração

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 um melhor desempenho, defina o valor do pool 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.

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 pool 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 pool de conexão 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 pool.

Por exemplo, se o Tempo de Coleta estiver definido como 60, o encadeamento de manutenção de pool será executado a cada 60 segundos. O intervalo de Tempo de Coleta afeta a exatidão das configuraçõ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 é executado, ele descarta todas as conexões que permanecem não utilizadas por um tempo maior que o valor especificado em Tempo Limite Não Utilizado, até atingir o número de conexões especificado em Mínimo de Conexões. O encadeamento de manutenção de pool 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 de pool é 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 de pool 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 a permanência de conexões físicas ativas 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. A única exceção é 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 enquanto a transação não for concluída e a conexão não for 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 possibilidade 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
Recursos de Páginas do console administrativo


Nome do arquivo: udat_conpoolset.html