Compartir a través de


Administración del tamaño de las transacciones

Descargar controlador JDBC

Al trabajar con transacciones, es importante mantenerlas tan breves como sea posible. El modo predeterminado de confirmación automática, que puede habilitar o deshabilitar con el método setAutoCommit, confirmará cada acción en su lugar. Este es el modo más fácil en que trabajan la mayoría de los programadores.

Cuando use transacciones manuales, asegúrese de que el código confirma la transacción tan rápidamente como sea posible. Si se mantiene abierta una transacción, se impide que otros usuarios tengan acceso a los datos. Por ejemplo, una práctica aconsejable de programación sería poner una llamada para revertir en el bloque catch y una llamada para confirmar en el bloque finally. Sin embargo, esta práctica depende del diseño de la aplicación.

Mantenga el tamaño de las transacciones reducido para mejorar la simultaneidad. Por ejemplo, si inicia una transacción manual y modifica 10 000 filas en una tabla de 20 000, tendrá la mitad de la tabla bloqueada para todos los demás usuarios, aun cuando solo estén leyendo los datos. Si reduce las modificaciones a 2.000 filas, se deja disponible el 90 por ciento de la tabla.

Además, asegúrese de utilizar el valor de tiempo de espera para la exclusión si la aplicación prevé que va a haber problemas de bloqueo. Puede establecer el tiempo de espera usando el método setLockTimeout. El valor predeterminado del tiempo de espera para la exclusión es -1, lo que significa que el bloqueo se mantendrá indefinidamente mientras se espera la exclusión. Puede establecer el tiempo de espera para la exclusión en 30 segundos, lo que hará que la conexión bloqueada agote el tiempo de espera después de 30 segundos si otra conexión la bloquea.

Consulte también

Mejora del rendimiento y la confiabilidad con el controlador JDBC