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.
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 |
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.
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.
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.
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.
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. |
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.
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 |
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 |
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 |
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 |
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 |
|
Intervalo |
|
Links marcados (on-line) requerem acesso à Internet.