Parámetros de inicialización de DB2
Algunos de los parámetros de DB2 que posiblemente desee modificar para trabajar con la geodatabase de ArcSDE son los siguientes:
Parámetros que afectan a los bloqueos
Los bloqueos mutuos pueden no ser comunes, lo que depende de la aplicación cliente y de la configuración de la base de datos. Tenga en cuenta que el problema puede agravarse con linajes de estados amplios. Afortunadamente, DB2 brinda parámetros de ajuste para controlar el tamaño de la lista de bloqueo (LOCKLIST), el porcentaje máximo de bloqueos que puede mantener una aplicación (MAXLOCKS), la cantidad de tiempo que una solicitud espera antes de que se adquiera un bloqueo (LOCKTIMEOUT), el intervalo de frecuencia para la detección de bloqueos mutuos (DLCHKTIME) y el comportamiento de reversión de los bloqueos mutuos (DB2LOCK_TO_RB).
El valor predeterminado para LOCKLIST y MAXLOCKS en DB2 9 es AUTOMATIC, lo que permite el ajuste automático de estos parámetros. Esto permite que el regulador de memoria de DB2 le de tamaño de manera dinámica a los recursos de memoria de los diferentes consumidores de esta. El ajuste automático se produce sólo cuando la memoria con esta función está habilitada en la base de datos (SELF_TUNING_MEM=ON).
Para ver la configuración de la lista de bloqueo, ejecute el siguiente comando:
db2 get db cfg Max storage for lock list (4KB) (LOCKLIST) = 50 Interval for checking deadlock (ms) (DLCHKTIME) = 10000 Percent. of lock lists per application (MAXLOCKS) = 22 Lock time out (sec) (LOCKTIMEOUT) = -1 Max number of active applications (MAXAPPLS) = AUTOMATIC
Para el valor de registro de DB2LOCK_TO_RB, utilice el comando db2set y busque DB2LOCK_TO_RB=.
-
LOCKLIST y MAXLOCKS
Para aumentar la capacidad de la lista de bloqueo y el umbral de extensión de bloqueo, modifique los parámetros LOCKLIST y MAXLOCKS respectivamente. Para configurar LOCKLIST para DB2 8:
- Calcule la cantidad máxima de aplicaciones activas (MAXAPPLS, si está establecido).
- Calcule la cantidad promedio de bloqueos por aplicación.
- Calcule el tamaño de la lista de bloqueo superior e inferior:
(Avg # locks per application * 36 * MAXAPPLS) / 4096 (Avg # locks per application * 72 * MAXAPPLS) / 4096
donde 72 = # de bytes del primer bloqueo en el objeto 36 = # de bytes de los bloqueos adicionales en el objeto
- Configure el parámetro inicial LOCKLIST en algún lugar entre el límite superior e inferior.
Por ejemplo:
db2 update db cfg using LOCKLIST 200
- Determine el porcentaje de la lista de bloqueo que pueda consumir cualquier aplicación antes de que se produzca la extensión de bloqueo. Este porcentaje puede ser fijo o puede basarse en los volúmenes de transacción comunes.
Por ejemplo, si se permite el doble de la cantidad promedio de bloqueos para las aplicaciones:
100 * (Avg # locks per application * 2 * 72 bytes per lock) / (LOCKLIST * 4096 bytes)
A continuación, configure el parámetro MAXLOCKS como se indica en la siguiente declaración:db2 update db cfg using MAXLOCKS 22
- El ajuste adicional de los parámetros de la lista de bloqueo implica el uso de la instantánea y de monitores de eventos. En el nivel de la base de datos, busque la siguiente información:
- Memoria total de lista de bloqueo en uso
- Cantidad de extensiones de bloqueo producidas
- Utilice el monitor de eventos para la cantidad máxima de bloqueos en una transacción.
-
LOCKTIMEOUT
Para establecer la cantidad de tiempo que DB2 espera al intentar adquirir un bloqueo, modifique el parámetro LOCKTIMEOUT.
-
DLCHKTIME
Para ajustar el período de tiempo entre las verificaciones de detección de bloqueos mutuos, ajuste el parámetro DLCHKTIME.
-
DB2LOCK_TO_RB
El parámetro DB2LOCK_TO_RB especifica el comportamiento de la transacción cuando el tiempo de espera de un bloqueo excede el valor de LOCKTIMEOUT. Por defecto, un tiempo de espera de bloqueo elimina la transacción de solicitud. Para modificar este comportamiento a fin de que revierta sólo la declaración que realiza la solicitud de bloqueo, modifique el parámetro DB2LOCK_TO_RB con el comando db2set DB2LOCK_TO_RB=STATEMENT. Sin embargo, el comportamiento predeterminado debería funcionar bien para ArcSDE.
Para obtener más información sobre la configuración de estos parámetros, consulte el tema Bloqueos mutuos en una base de datos DB2.
Consulte las guías de ajustes de rendimiento o la documentación de DB2 para obtener información detallada sobre la configuración adecuada de estos parámetros.