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 intercalación (collation) de base de datos apropiada.

Configure su openkm.properties
Sección titulada «Configure su openkm.properties»Edite el fichero $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 fichero $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 login de la aplicación
Sección titulada «Configurar el login de la aplicación»Edite el fichero $TOMCAT_HOME/openkm.xml
authentication.openkm.database=trueEjecutar la aplicación
Sección titulada «Ejecutar la aplicación»Durante el 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»Para habilitar la seguridad integrada (Integrated Security), debe añadir el parámetro “integratedSecurity=true” a la URL de conexión JDBC. 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 controlador desde https://go.microsoft.com/fwlink/?linkid=2122434 y copiar el fichero sqljdbc_auth.dll en la carpeta TOMCAT_HOME/bin.
Más información en:
Resolución de problemas
Sección titulada «Resolución de problemas»No se puede conectar a SQL Server
Sección titulada «No se puede conectar a SQL Server»Compruebe que tiene habilitado el protocolo TCP (deshabilitado por defecto)



La conexión se pierde después de un tiempo.
Sección titulada «La conexión se pierde después de un tiempo.»Hemos observado en algunas ediciones de SQL Server un comportamiento por el cual, pasadas unas horas, la conexión se cierra (esto podría deberse a un parámetro de configuración adicional habilitado por defecto en las ediciones recientes de SQL Server). Existe un atributo de configuración denominado 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 es posible iniciar sesión en OpenKM
Sección titulada «No es posible iniciar sesión en OpenKM»Cuando falla el primer inicio de sesión en OpenKM 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 distinguir entre mayúsculas y minúsculas (case-sensitive); este podría ser uno de los motivos por los que no puede iniciar sesión.
No es posible conectar vía TCP/IP a SQL local, puerto 1433, al usar una instancia en la URL de conexión JDBC
Sección titulada «No es posible conectar vía 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 ejemplo siguiente utiliza una instancia de base de datos denominada SampleSQL.
spring.datasource.url=jdbc:sqlserver://localhost\\SampleSQL;databaseName=okmdb;autoReconnect=trueProblemas de deadlock
Sección titulada «Problemas de deadlock»Estos errores aparecen en el registro de la siguiente 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 se puede solucionar 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 controlador JDBC de Java para SQL Server.
Más información en:
The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption
Sección titulada «The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption»Esto puede ocurrir cuando SQL Server solo permite conexiones SSL.
El problema se puede solucionar 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;