Configurar SQL Server
Creación de la base de datos
Sección titulada «Creación de la base de datos»Crear una base de datos y un usuario
Sección titulada «Crear una base de datos y un usuario»Inicie SQL Server Management Studio Express y cree una base de datos llamada okmdb.

Seleccione la collation de base de datos apropiada.

Configurar su openkm.properties
Sección titulada «Configurar su openkm.properties»Edite el archivo $TOMCAT_HOME/openkm.properties
spring.jpa.hibernate.ddl-auto=create-onlyspring.jpa.properties.hibernate.dialect=com.openkm.db.dialect.SQLServerDialectConfigurar los orígenes de datos de Tomcat
Sección titulada «Configurar los orígenes de datos de Tomcat»Edite el archivo $TOMCAT_HOME/openkm.properties y habilite los recursos
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriverspring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=okmdbspring.datasource.username=openkmspring.datasource.password=*secret*spring.datasource.validationQuery=SELECT 1Configurar el inicio de sesión de la aplicación
Sección titulada «Configurar el inicio de sesión de la aplicación»Edite el archivo $TOMCAT_HOME/openkm.xml
authentication.openkm.database=trueEjecutar la aplicación
Sección titulada «Ejecutar la aplicación»Como parte del proceso de arranque de OpenKM, la aplicación creará automáticamente una estructura de base de datos vacía.
Configurar la seguridad integrada
Sección titulada «Configurar la seguridad integrada»Debe añadir el parámetro “integratedSecurity=true” a la URL de conexión JDBC para habilitar la seguridad integrada. Por ejemplo:
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriverspring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=okmdb;autoReconnect=true;integratedSecurity=truespring.datasource.username=spring.datasource.password=También debe descargar el paquete del driver desde https://go.microsoft.com/fwlink/?linkid=2122434 y copiar el archivo sqljdbc_auth.dll en la carpeta TOMCAT_HOME/bin.
Más información en:
Resolución de errores
Sección titulada «Resolución de errores»No puede conectarse a SQL Server
Sección titulada «No puede conectarse a SQL Server»Asegúrese de tener habilitado el protocolo TCP (está deshabilitado por defecto)



Se pierde la conexión pasado un tiempo.
Sección titulada «Se pierde la conexión pasado un tiempo.»Hemos observado un comportamiento que parece nuevo en algunas ediciones de SQL Server: pasadas varias horas se cierra la conexión (puede deberse a algún parámetro de configuración adicional de las últimas ediciones de SQL Server que viene habilitado por defecto, o algo similar). Existe un nuevo atributo de configuración llamado autoReconnect que lo soluciona.
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriverspring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=okmdb;autoReconnect=truespring.datasource.username=openkmspring.datasource.password=*secret*spring.datasource.validationQuery=SELECT 1No puede iniciar sesión en OpenKM
Sección titulada «No puede iniciar sesión en OpenKM»Cuando el primer inicio de sesión en OpenKM falla con el usuario y la contraseña correctos (okmAdmin/admin), debe comprobar la configuración de la base de datos.
Compruebe si la base de datos está configurada para ser sensible a mayúsculas y minúsculas; este puede ser uno de los motivos por los que no puede iniciar sesión.
No se puede conectar por TCP/IP a SQL local, puerto 1433, al usar una instancia en la URL de conexión JDBC
Sección titulada «No se puede conectar por TCP/IP a SQL local, puerto 1433, al usar una instancia en la URL de conexión JDBC»Si utiliza el nombre de la instancia de la base de datos en la conexión, debe usar “\\” en el parámetro de configuración spring.datasource.URL. El siguiente ejemplo utiliza una instancia de base de datos llamada SampleSQL.
spring.datasource.url=jdbc:sqlserver://localhost\\SampleSQL;databaseName=okmdb;autoReconnect=trueProblemas de interbloqueo (deadlock)
Sección titulada «Problemas de interbloqueo (deadlock)»Estos errores aparecen en el registro de esta forma:
o.h.engine.JDBC.spi.SqlExceptionHelper : SQL Error: 1205, SQLState: 40001o.h.engine.JDBC.spi.SqlExceptionHelper: Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.Modifique la base de datos para evitar estos problemas:
ALTER DATABASE okmdb SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATEFuente: How to Solve Database Deadlock on Microsoft SQL Server.
Error de conexión SSL
Sección titulada «Error de conexión SSL»Si ve este error:
The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption.El problema puede solucionarse añadiendo el parámetro “encrypt=false” a la URL de JDBC:
spring.datasource.url=jdbc:sqlserver://sqlserver:1433;databaseName=okmdb;encrypt=false;Esto se debe a un cambio en la última versión del driver JDBC de Java para SQL Server.
Más información en:
El driver no pudo establecer una conexión segura con SQL Server mediante cifrado Secure Sockets Layer (SSL)
Sección titulada «El driver no pudo establecer una conexión segura con SQL Server mediante cifrado Secure Sockets Layer (SSL)»Esto puede ocurrir cuando SQL Server solo admite conexiones SSL.
El problema puede solucionarse añadiendo los parámetros “encrypt=true” y “trustServerCertificate=true” a la URL de JDBC:
spring.datasource.url=jdbc:sqlserver://sqlserver:1433;databaseName=okmdb;encrypt=true;trustServerCertificate=true;Cambiar el nivel de compatibilidad de SQL Server
Sección titulada «Cambiar el nivel de compatibilidad de SQL Server»Para establecer el nivel de compatibilidad de SQL Server en 2012
ALTER DATABASE okmdb SET COMPATIBILITY_LEVEL = 110;