Modificación de los valores de agrupación de conexiones con la herramienta wsadmin
Puede utilizar la herramienta de creación de scripts wsadmin para cambiar los valores de agrupación de conexiones.
Acerca de esta tarea
La herramienta wsadmin ejecuta scripts. Puede utilizar la herramienta wsadmin para gestionar la instalación y la configuración de WebSphere Application Server, el despliegue de aplicaciones y las operaciones de tiempo de ejecución del servidor. El producto sólo da soporte a los lenguajes de script Jacl y Jython. Para obtener más información acerca de la herramienta wsadmin, consulte el tema Inicio del cliente de creación de scripts de wsadmin.
Para utilizar la herramienta wsadmin para cambiar los valores de agrupación de conexiones:
Procedimiento
Ejemplo: modificación de los valores de la agrupación de conexiones con la herramienta wsadmin.
Mediante el objeto AdminControl de wsadmin, puede realizar cambios del script en los valores de la agrupación de conexiones
La herramienta wsadmin ejecuta scripts solamente en los lenguajes Jacl y Jython. Debe iniciar el cliente de scripts de wsadmin antes de realizar ninguna otra tarea con scripts. Para obtener más información, consulte el tema Inicio del cliente de scripts wsadmin.
Para obtener más información sobre el objeto de scripts AdminControl, consulte el tema Utilización del objeto AdminControl para la administración con scripts.
El tiempo de espera de la conexión puede cambiarse en cualquier momento siempre que esté activa la agrupación. Cuando cambia un valor de tiempo de espera excedido, el tiempo de espera excedido de conexión para todas las solicitudes de conexión en espera cambian por el nuevo valor menos el tiempo que ha esperado ya la conexión, y las solicitudes regresan al estado de espera si no hay conexiones disponibles.
Por ejemplo, si el tiempo de espera de conexión cambia a 300 segundos y una solicitud de conexión ha esperado 100 segundos, la solicitud de conexión espera 200 segundos más si no se pone disponible ninguna conexión.
$AdminControl getAttribute $objectname connectionTimeout
$AdminControl setAttribute $objectname connectionTimeout 200
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones. .
El número máximo de conexiones se puede cambiar en cualquier momento excepto en el caso en el que esté activo el soporte de conexión atascada.
Si está activo el soporte de conexión atascada, se realiza un intento de cambiar el número máximo de conexiones. Si falla el intento, se produce una excepción IllegalState. Consulte el tema Valores avanzados de agrupación de conexiones para obtener más información.
Si no está activo el soporte de conexión atascada, el número máximo de conexiones se cambia por el nuevo valor. Si el nuevo valor es mayor que el valor actual, el número de conexiones aumenta al nuevo valor y cualquier solicitud en espera se notifica. Si el nuevo valor es menor que el valor actual y se utiliza el tiempo de espera superado o el tiempo de recopilación, el número de conexiones disminuye al nuevo valor en función de la actividad de la agrupación. Si no se utiliza el tiempo de espera superado ni el tiempo de recopilación, no se realizará ningún intento automático de disminuir el número total de conexiones. Para disminuir manualmente el número de conexiones al nuevo número máximo de conexiones, utilice la función de Mbean purgePoolContents.
$AdminControl getAttribute $objectname maxConnections
$AdminControl setAttribute $objectname maxConnections 200
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones.
El número mínimo de conexiones se puede cambiar en cualquier momento.
$AdminControl getAttribute $objectname minConnections
$AdminControl setAttribute $objectname minConnections 200
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones.
El tiempo de recopilación se puede cambiar en cualquier momento. El intervalo de tiempo de recopilación se cambia por el nuevo valor en el siguiente intervalo.
$AdminControl getAttribute $objectname reapTime
$AdminControl setAttribute $objectname reapTime 30
Tiempo de espera no utilizado El tiempo de espera no utilizado se puede cambiar en cualquier momento.
$AdminControl getAttribute $objectname unusedTimeout
$AdminControl setAttribute $objectname unusedTimeout 900
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones.
El tiempo de espera superado se puede cambiar en cualquier momento.
$AdminControl getAttribute $objectname agedTimeout
$AdminControl setAttribute $objectname agedTimeout 900
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones.
La política de depuración se puede cambiar en cualquier momento.
$AdminControl getAttribute $objectname purgePolicy
$AdminControl setAttribute $objectname purgePolicy "Failing Connection Only"
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones.
El soporte de conexión de avalancha se inicia si el umbral de avalancha es > -1 y el intervalo de creación de avalancha es > 0. Las propiedades de protección contra avalancha se pueden cambiar en cualquier momento.
$AdminControl getAttribute $objectname surgeCreationInterval
$AdminControl setAttribute $objectname surgeCreationInterval 30
$AdminControl getAttribute $objectname surgeThreshold
$AdminControl setAttribute $objectname surgeThreshold 15
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones.
Se realiza un intento de cambiar las propiedades stuckTime, stuckTimerTime o stuckThreshold. Si falla el intento, se produce una excepción IllegalState. La agrupación no puede tener solicitudes activas o conexiones activas durante esta solicitud. Para que se inicie el soporte de conexión atascada, los tres valores de propiedad stuck (atascado) deben ser mayores que 0 y el valor de número máximo de conexiones debe ser > 0.
Si la agrupación de conexiones está atascada, no puede modificar las propiedades stuck ni de número máximo de conexiones. Si está atascado, hay conexiones activas.
$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 obtener más información sobre este valor, consulte el tema Valores avanzados de agrupación de conexiones.
Se inicia el soporte de conexión de prueba si la propiedad testConnection está establecida en true y el intervalo es > 0. Las propiedades de conexión de prueba se pueden cambiar en cualquier momento.
$AdminControl getAttribute $objectname testConnection
$AdminControl setAttribute $objectname testConnection 30
$AdminControl getAttribute $objectname testConnectionInterval
$AdminControl setAttribute $objectname testConnectionInterval 15
Para obtener más información sobre este valor, consulte el tema Servicio de conexión de prueba.
$AdminControl invoke $objectname freePoolDistributionTableSize
$AdminControl invoke $objectname numberOfFreePoolPartitions
$AdminControl invoke $objectname numberOfSharedPoolPartitions
$AdminControl invoke $objectname gatherPoolStatisticalData
$AdminControl invoke $objectname enablePoolStatisticalData
Para obtener más información sobre este valor, consulte el tema Valores de agrupación de conexiones.
Las operaciones de mostrar agrupación se pueden modificar en cualquier momento.
$AdminControl invoke $objectname showAllPoolContents
$AdminControl invoke $objectname showPoolContents
$AdminControl invoke $objectname showAllocationHandleList
PurgePool se puede cambiar en cualquier momento.
$AdminControl invoke $objectname purgePoolContents normal
$AdminControl invoke $objectname purgePoolContents immediate
- Las transacciones en curso existentes seguirán funcionando.
- Se aceptan solicitudes de conexión compartida.
- Las conexiones libres se limpian y se destruyen.
- Las conexiones en uso (conexiones en transacciones) se limpian y destruyen cuando se devuelven a la agrupación de conexiones.
- Las llamadas a close() emitidas en cualquiera de las conexiones obtenidas antes de la llamada a purgePoolContents se realizan de forma síncrona (esperan a que el controlador jdbc vuelva antes de continuar).
- Las solicitudes de nuevas conexiones (no manejadores a conexiones anteriores existentes) se aceptan.
- No se permite que se inicien transacciones nuevas en ninguna conexión obtenida antes de la llamada a purgePoolContents. En su lugar, se emite una excepción StaleConnectionException.
- No se permite que se distribuyan manejadores nuevos en ninguna conexión obtenida antes de la llamada a purgePoolContents. En su lugar, se emite una excepción StaleConnectionException.
- Las transacciones en proceso existentes siguen en funcionamiento, pero cualquier actividad nueva sobre la conexión depurada provocará una StaleConnectionException o una excepción XAER_FAIL.
- Las llamadas a close() emitidas en cualquier conexión obtenida antes de la llamada a purgePoolContents() se realizan de forma asíncrona (sin tiempo de espera).
- Las solicitudes de nuevas conexiones (no manejadores a conexiones anteriores existentes) se aceptan.
- El número de conexiones se reduce de forma inmediata. Esto puede provocar que el número total de conexiones del servidor de aplicaciones quede temporalmente desincronizado con el número total de conexiones de la base de datos.
- Las llamadas a close() emitidas en cualquier conexión obtenida antes de la llamada a purgePoolContents() se realizan de forma asíncrona (sin tiempo de espera)
- Las solicitudes de nuevas conexiones (no manejadores a conexiones anteriores existentes) se aceptan.
- El número de conexiones se reduce de forma inmediata. Esto puede provocar que el número total de conexiones del servidor de aplicaciones quede temporalmente desincronizado con el número total de conexiones del recurso de programa de fondo.
La pausa y la reanudación se pueden cambiar en cualquier momento.
$AdminControl invoke $objectname pause
$AdminControl invoke $objectname resume
Los mandatos wsadmin se utilizan para acceder a los MBeans de fábricas de conexiones y orígenes de datos. Los MBeans pueden recuperar o actualizar propiedades de fábricas de conexiones o de orígenes de datos.
Para obtener una lista de nombres de objetos de fábrica de conexiones J2C o de Mbean de origen de datos, en la línea de mandatos de wsadmin utilice uno de los siguientes mandatos de control administrativo:
$AdminControl queryNames *:type=J2CConnectionFactory,*
$AdminControl queryNames *:type=DataSource,*
Salida de ejemplo de consulta de 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"
Utilizando el nombre de objeto de la fábrica de conexiones J2C o del MBean de origen de datos, puede acceder al MBean. El nombre sigue a la expresión webSphere:name=. En el ejemplo siguiente, para el primer conjunto, el nombre de origen de datos predeterminado se establece en el nombre de variable. Para el segundo conjunto, el nombre de objeto se establece en la variable objectName.
Ejemplo con Default DataSource:
- 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"
Ahora puede utilizar el objectName para obtener ayuda sobre atributos y operaciones disponibles para este Mbean.
$Help attributes $objectName
$Help operations $objectName
Para obtener o establecer un atributo o utilizar una operación, utilice uno de los mandatos siguientes:
$AdminControl getAttribute $objectName "attribute name"
$AdminControl setAttribute $objectName "attribute name" value
$AdminControl invoke $objectName "operation"
Atributo, ejemplos de operación:
Obtenga y establezca un atributo maxConnections. Si no
obtiene ningún valor, un valor nulo, o java.lang.IllegalStateException, la fábrica de conexiones o el origen de datos de este MBean
no se ha creado. La fábrica de conexiones o el origen de datos se crea en la primera
búsqueda de JNDI. Para este ejemplo, el Default DataSource debe utilizarse para que funcionen get, set e invoke.
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
Total number of connections in free pool: 3
UnShared Connection information
No unshared connections