Configuración

Para utilizar una base de datos H2 debe establecer el archivo Bootstrap.properties1 para especificar el conjunto de propiedades relevantes a H2 para obtener una conexión a la base de datos; por ejemplo:

Figura 1. Bootstrap.properties
curam.db.type=h2
curam.db.name=curamdb
curam.db.username=curam
curam.db.password=qqnscP4c4+s=
# Directorio de H2.
# El valor predeterminado es el directorio inicial
# (es decir C:/Documents and Settings/<nombre_usuario>). (Opcional)
curam.db.h2.directory=C:/H2
# Modalidad remote|embedded
curam.db.h2.mode=embedded
# Para la modalidad remota especifique también:
curam.db.serverport=9092
curam.db.servername=localhost
# Tiempo de espera de bloqueo en ms. El valor predeterminado es 1000, es decir 1 segundo. (Opcional)
curam.db.h2.locktimeout=20000
# Propiedad para inhabilitar MVCC. Valor predeterminado: true. (Opcional)
curam.db.h2.mvcc=true

Una vez que haya actualizado Bootstrap.properties y reconstruido el servidor y la base de datos puede realizar el desarrollo exactamente de la misma manera que lo haría con Oracle o DB2.

Modalidades H2

Se soportan las siguientes modalidades H2 para el desarrollo de aplicaciones:

Puede especificar la modalidad necesaria utilizando la propiedad siguiente en el archivo Bootstrap.properties:

# Modalidad remote|embedded
curam.db.h2.mode=embedded

Control de simultaneidad de varias versiones (MVCC)

La característica MVCC permite una mayor simultaneidad que si se utilizan bloqueos a nivel de fila o a nivel de tabla exclusivos. Cuando se utilice MVCC en esta base de datos, las operaciones de supresión, inserción y actualización sólo emitirán un bloqueo compartido en la tabla. Todavía se utiliza un bloqueo exclusivo al añadir o eliminar columnas, al descartar la tabla y cuando se utiliza SELECT... FOR UPDATE. Las conexiones sólo 'ven' los datos confirmados y sus propios cambios. Esto significa que, si la conexión A actualiza una fila pero no ha confirmado el cambio, la conexión B verá el valor antiguo. Sólo cuando se confirma el cambio de la conexión A, el valor nuevo es visible para otras conexiones (lectura confirmada). Si varias conexiones intentan simultáneamente actualizar la misma fila, la base de datos espera hasta que puede aplicar el cambio, pero como máximo hasta que caduca el tiempo de espera de bloqueo.

De forma predeterminada, MVCC está establecido en true.

Puede desactivar MVCC utilizando la siguiente propiedad en el archivo Bootstrap.properties:

# Propiedad para inhabilitar MVCC. Valor predeterminado: true. (Opcional)
curam.db.h2.mvcc=false

Consola web H2

Cuando se inicia H2 ejecutando la clase org.h2.tools.Server en h2.jar, la consola web se inicia y se puede acceder a ella en el URL:

http://localhost:8082/

El URL de conexión JDBC que especifique en la pantalla de inicio de sesión se basa en los valores curam.db.name, curam.db.username y curam.db.h2.directory de Bootstrap.properties, que definen el nombre de base de datos,el nombre de SCHEMA y la ubicación de base de datos en el sistema de archivos. Por lo tanto, si el nombre de base de datos es curamdb, el nombre de usuario es curam y curam.db.h2.directory toma como valor predeterminado el directorio inicial, la serie JDBC será similar a la siguiente:

jdbc:h2:tcp://localhost/~/curamdb;schema=curam;FILE_LOCK=SOCKET

Tenga en cuenta que, por ejemplo, si curam.db.h2.directory es C:/H2, la serie JDBC será similar a la siguiente:

jdbc:h2:tcp://localhost/file:C:/H2/curamdb;schema=curam;FILE_LOCK=SOCKET

Especifique los valores de Nombre de usuario y Contraseña como los de Bootstrap.properties y, a continuación, pulse el botón Connect (o Test Connect). Una vez conectado, tendrá disponible un control de texto de SQL, etc.

1 Para obtener más información sobre Bootstrap.properties consulte la publicación Cúram Server Developers Guide.