Alterando Configurações do Pool de Conexão com a Ferramenta wsadmin

É possível utilizar a ferramenta de script wsadmin para alterar as configurações do pool de conexão.

Sobre Esta Tarefa

A ferramenta wsadmin executa scripts. É possível usar a ferramenta wsadmin para gerenciar a instalação e configuração de um WebSphere Application Server, a implementação do aplicativo e as operações de tempo de execução do servidor. O produto suporta as linguagens de script Jacl e Jython. Para aprender mais sobre a ferramenta wsadmin, consulte o tópico Iniciando o Cliente de Script wsadmin.

Para utilizar a ferramenta wsadmin para alterar as configurações do pool de conexão:

Procedimento

  1. Ative um comando de script. Há várias opções para você executar comandos de script, indo de executá-los de forma interativa até executá-los em um perfil.

    Para alterar as configurações do pool de conexão, você utiliza os comandos getAttribute e setAttribute, executados nos vários objetos de configurações.

    Por exemplo, para alterar a configuração do tempo limite de conexão, os comandos são:
    $AdminControl getAttribute $objectname connectionTimeout
    $AdminControl setAttribute $objectname connectionTimeout 200
    onde:
    • $ é um operador Jacl para a substituição de um nome de variável por seu valor
    • getAttribute e setAttribute são os comandos
    • connectionTimeout é o objeto cujo valor você está reconfigurando
  2. Para obter exemplos do código Jacl de cada uma das configurações do conjunto de conexões, consulte o tópico Exemplo: Alterando as configurações do conjunto de conexões com a ferramenta wsadmin.

Exemplo: Alterando Configurações do Conjunto de Conexões com a Ferramenta wsadmin

Utilizando o objeto AdminControl wsadmin, é possível realizar script de alterações para configurações do conjunto de conexões.

A ferramenta wsadmin executa scripts apenas nas linguagens Jacl e Jython. Você deve iniciar o cliente de script wsadmin antes de executar qualquer outra tarefa em script. Para obter informações adicionais, consulte o tópico Iniciando o Cliente de Script wsadmin.

Para obter informações adicionais sobre o objeto de script AdminControl, consulte o tópico Usando o Objeto AdminControl para Administração por Script.

O tempo limite de Conexão pode ser alterado a qualquer momento enquanto o pool estiver ativo. Quando alterar um valor de tempo limite de conexão, o tempo limite de conexão de todas as solicitações de conexão que estiverem aguardando será alterado para o novo valor menos o tempo que a conexão já aguardou e as solicitações serão retornadas para o estado de espera se não houver nenhuma conexão disponível.

Por exemplo, se o tempo limite de conexão for alterado para 300 segundos e um pedido de conexão tiver esperado 100 segundos, o pedido de conexão aguardará por mais 200 segundos se nenhuma conexão se tornar disponível.

$AdminControl getAttribute $objectname connectionTimeout
$AdminControl setAttribute $objectname connectionTimeout 200

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões. .

As conexões máximas podem ser alteradas a qualquer momento exceto quando o suporte à conexão presa estiver ativo.

Se o suporte à conexão presa estiver ativo, será feita uma tentativa de alterar as conexões máximas. Se a tentativa falhar, ocorrerá uma exceção IllegalState. Consulte o tópico sobre configurações avançadas do conjunto de conexões para obter mais informações.

Se o suporte à conexão presa não estiver ativo, as conexões máximas serão alteradas para o novo valor. Se o novo valor for superior ao valor atual, o número de conexões será aumentado para o novo valor e quaisquer pedidos em espera serão notificados. Se o novo valor for inferior ao valor atual e for utilizado Tempo Limite Transcorrido ou Tempo de Coleta, o número de conexões diminuirá para o novo valor dependendo da atividade do pool. Se o agedTimeout ou o Tempo de Coleta não for usado, nenhuma tentativa automática para reduzir o número total de conexões será realizada. Para reduzir manualmente o número de conexões para as novas conexões máximas, utilize a função purgePoolContents do Mbean.

$AdminControl getAttribute $objectname maxConnections
$AdminControl setAttribute $objectname maxConnections 200

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões.

O número mínimo de conexões pode ser alterado a qualquer momento.

$AdminControl getAttribute $objectname minConnections
$AdminControl setAttribute $objectname minConnections 200

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões.

O tempo de coleta pode ser alterado a qualquer momento. O intervalo de tempo de coleta é alterado para o novo valor no próximo intervalo.

$AdminControl getAttribute $objectname reapTime
$AdminControl setAttribute $objectname reapTime 30
Tempo Limite Não Utilizado

O tempo limite não utilizado pode ser alterado a qualquer momento.

$AdminControl getAttribute $objectname unusedTimeout
$AdminControl setAttribute $objectname unusedTimeout 900

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões.

O Tempo Limite Transcorrido pode ser alterado a qualquer momento.

$AdminControl getAttribute $objectname agedTimeout
$AdminControl setAttribute $objectname agedTimeout 900

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões.

A política de limpeza pode ser alterada a qualquer momento.

$AdminControl getAttribute $objectname purgePolicy
$AdminControl setAttribute $objectname purgePolicy "Failing Connection Only"

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões.

O suporte à conexão de oscilação será iniciado se surgeThreshold for > -1 e surgeCreationInterval for > 0. As propriedades de proteção de oscilação podem ser alteradas a qualquer momento.

$AdminControl getAttribute $objectname surgeCreationInterval
$AdminControl setAttribute $objectname surgeCreationInterval 30
$AdminControl getAttribute $objectname surgeThreshold
$AdminControl setAttribute $objectname surgeThreshold 15

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões.

Foi feita uma tentativa de alterar as propriedades stuckTime, stuckTimerTime ou stuckThreshold. Se a tentativa falhar, ocorrerá uma exceção IllegalState. O pool não pode ter nenhum pedido ativo ou conexão ativa durante este pedido. Para que o suporte à conexão paralisada seja iniciado, todos os três valores da propriedade stuck devem ser superiores a 0 e o valor máximo das conexões deve ser > 0.

Se o pool de conexão estiver preso, você não poderá alterar as propriedades stuck ou de conexões máximas. Se você estiver preso, existem conexões ativas.

$AdminControl getAttribute $objectname stuckTime
$AdminControl setAttribute $objectname stuckTime 30
$AdminControl getAttribute $objectname stuckTimerTime
$AdminControl setAttribute $objectname stuckTimerTime 15
$AdminControl getAttribute $objectname stuckThreshold
$AdminControl setAttribute $objectname stuckThreshold 10

Para obter mais informações sobre essa configuração, consulte o tópico Configurações Avançadas do Conjunto de Conexões.

O suporte à conexão de teste será iniciado quando a propriedade testConnection estiver definida como verdadeira e o intervalo for > 0. As propriedades de conexão de teste podem ser alteradas a qualquer momento.

$AdminControl getAttribute $objectname testConnection
$AdminControl setAttribute $objectname testConnection 30
$AdminControl getAttribute $objectname testConnectionInterval
$AdminControl setAttribute $objectname testConnectionInterval 15

Para obter mais informações sobre essa configuração, consulte o tópico Serviço de Conexão de Teste.

$AdminControl invoke $objectname freePoolDistributionTableSize
$AdminControl invoke $objectname numberOfFreePoolPartitions
$AdminControl invoke $objectname numberOfSharedPoolPartitions
$AdminControl invoke $objectname gatherPoolStatisticalData
$AdminControl invoke $objectname enablePoolStatisticalData

Para obter mais informações sobre essa configuração, consulte o tópico Configurações do Conjunto de Conexões.

As operações para mostrar o pool podem ser alteradas a qualquer momento.

$AdminControl invoke $objectname showAllPoolContents
$AdminControl invoke $objectname showPoolContents
$AdminControl invoke $objectname showAllocationHandleList

PurgePool pode ser alterado a qualquer momento.

$AdminControl invoke $objectname purgePoolContents normal
$AdminControl invoke $objectname purgePoolContents immediate
Tanto para origens de dados como connection factories, se a opção normal for selecionada, o conjunto limpo se comporta conforme a seguir após uma chamada de limpeza:
  • As transações em andamento existentes continuam funcionando.
  • As solicitações de conexão compartilhadas são respeitadas.
  • As conexões livres são limpas e destruídas.
  • As conexões em uso (conexões em transações) são limpas e destruídas quando retornadas para o conjunto de conexões.
  • As chamadas close() emitidas em quaisquer conexões obtidas antes da chamada purgePoolContents são feitas de modo síncrono (elas aguardam o driver jdbc retornar antes de continuar).
  • Solicitações de novas conexões (não manipulações para conexões antigas existentes) são respeitadas.
Para origens de dados baseadas no adaptador de recursos relacionais WebSphere integrado, se a opção imediata for selecionada, o conjunto limpo se comportará conforme a seguir após a chamada de limpeza:
  • Nenhuma nova transação é permitida iniciar em quaisquer conexões obtidas antes da chamada purgePoolContents. Em vez disso, uma StaleConnectionException é lançada.
  • Nenhuma nova manipulação é permitida ser distribuída em quaisquer conexões obtidas antes da chamada purgePoolContents. Em vez disso, uma StaleConnectionException é lançada.
  • As transações em andamento existentes continuam funcionando, mas quaisquer novas atividades na conexão limpa causam uma StaleConnectionException ou uma exceção XAER_FAIL.
  • As chamadas close() emitidas em quaisquer conexões obtidas antes da chamada purgePoolContents() são feitas de modo assíncrono (sem tempo de espera).
  • Solicitações de novas conexões (não manipulações para conexões antigas existentes) são respeitadas.
  • O número de conexões é diminuído imediatamente. Isso pode fazer com que o número total de conexões no servidor de aplicativos fique temporariamente fora de sincronização com o número total de conexões no banco de dados.
Para origens de dados não baseadas no adaptador de recursos relacionais WebSphere integrado e todos os connection factories, se a opção imediata for selecionada, o conjunto limpo se comportará conforme a seguir após a chamada de limpeza:
  • As chamadas close() emitidas em quaisquer conexões obtidas antes da chamada purgePoolContents() são feitas de modo assíncrono (sem tempo de espera)
  • Solicitações de novas conexões (não manipulações para conexões antigas existentes) são respeitadas.
  • O número de conexões é diminuído imediatamente. Isso pode fazer com que o número total de conexões no servidor de aplicativos fique temporariamente fora de sincronização com o número total de conexões no recurso de backend.

A pausa e a retomada podem ser alteradas a qualquer momento.

$AdminControl invoke $objectname pause
$AdminControl invoke $objectname resume

Os comandos Wsadmin são utilizados para acessar a connection factory e os MBeans de origem de dados. Os MBeans podem recuperar ou atualizar as propriedades para uma connection factory ou origem de dados.

Para obter uma lista de nomes de objetos da connection factory JC2 ou do Mbean de origem de dados, na linha de comandos wsadmin use um dos seguintes comandos de controle administrativo:

$AdminControl queryNames *:type=J2CConnectionFactory,*
$AdminControl queryNames *:type=DataSource,*

Saída de exemplo da consulta DataSource:

wsadmin>$AdminControl queryNames *:type=DataSource,*
"WebSphere:name=Default Datasource,process=server1,platform=dynamicproxy,node=
system1Node01,JDBCProvider=Derby JDBC Provider,j2eeType=JDBCDataSource,J2EESe
rver=server1,Server=server1,version=6.0.0.0,type=DataSource,mbeanIdentifier=cell
s/system1Node01Cell/nodes/system1Node01/servers/server1/resources.xml#DataSource
_1094760149902,JDBCResource=Derby JDBC Provider,cell=system1Node01Cell"

Ao utilizar a connection factory J2C ou o nome do objeto MBean da origem de dados, você pode acessar o MBean. O nome segue a expressão webSphere:name=. No exemplo a seguir, para o primeiro conjunto, o nome da origem de dados padrão é definido no nome de variável. Para o segundo conjunto, o nome do objeto é definido na variável objectName.

Exemplo usando a Origem de Dados Padrão:

- wsadmin>set name [list Default Datasource] 

Default Datasource

- wsadmin>set objectName [$AdminControl queryNames *:name=$name,*]


"WebSphere:name=Default Datasource,process=server1,platform=dynamicproxy,node=
system1Node01,JDBCProvider=Derby JDBC Provider,j2eeType=JDBCDataSource,J2EESe
rver=server1,Server=server1,version=6.0.0.0,type=DataSource,mbeanIdentifier=cell
s/system1Node01Cell/nodes/system1Node01/servers/server1/resources.xml#DataSource
_1094760149902,JDBCResource=Derby JDBC Provider,cell=system1Node01Cell"

Agora é possível usar objectName para obter ajuda sobre atributos e operações disponíveis para este Mbean.

$Help attributes $objectName
$Help operations $objectName

Para obter ou definir um atributo ou para utilizar uma operação, utilize um dos seguintes comandos:

$AdminControl getAttribute $objectName "attribute name"
$AdminControl setAttribute $objectName "attribute name" value 
$AdminControl invoke $objectName "operation"

Atributo, exemplos de operação:

Obtenha e configure um
atributo maxConnections. Se você não obter nenhum valor, um valor nulo, ou 
uma java.lang.IllegalStateException, a connection factory ou a origem de dados para esse 
MBean não foi criada. A connection factory ou a origem de dados é criada na primeira 
consulta de JNDI. Para este exemplo, a Origem de Dados Padrão deve ser usada para que get, 
set e invoke funcionem.

wsadmin>$AdminControl getAttribute $objectName maxConnections
10

wsadmin>$AdminControl setAttribute $objectName maxConnections 20

wsadmin>$AdminControl getAttribute $objectName maxConnections
20

Using invoke

wsadmin>$AdminControl invoke $objectName showPoolContents 

PoolManager name:DefaultDatasource
PoolManager object:746354514
Total number of connections: 3 (max/min 20/1, reap/unused/aged 180/1800/0, 
connectiontimeout/purge 1800/EntirePool)
                               (testConnection/inteval false/0, stuck timer/time
/threshold 0/0/0, surge time/connections 0/-1)
Shared Connection information (shared partitions 200)
  No shared connections

Free Connection information (free distribution table/partitions 5/1)
  (2)(0)MCWrapper id 5c6af75b  Managed connection WSRdbManagedConnectionImpl@4b5
a775b  State:STATE_ACTIVE_FREE
  (2)(0)MCWrapper id 3394375a  Managed connection WSRdbManagedConnectionImpl@328
5f75a  State:STATE_ACTIVE_FREE
  (2)(0)MCWrapper id 4795b75a  Managed connection WSRdbManagedConnectionImpl@46a
4b75a  State:STATE_ACTIVE_FREE

  Número total de conexões no conjunto livre: 3
Informações de Conexão Não Compartilhada
  Sem conexão não compartilhada

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_chgconwsadmin
Nome do arquivo: tdat_chgconwsadmin.html