Configuring Oracle
Database creation
Create tablespace
create tablespace OPENKMDATA datafile '/u01/app/oracle/oradata/XE/openkmdata.dbf' size 100M;
Create a database and user
create user OPENKM identified by *secret* default tablespace OPENKMDATA quota unlimited on OPENKMDATA;
grant all privileges to OPENKM;
grant create any context, create cluster, create dimension, create indextype, create job, create materialized view, create operator, create procedure, create sequence, create session, create synonym, create table, create trigger, create type, create view to OPENKM;
Configure your OpenKM.cfg
This configuration property should be set before the database creation. Once the database has been initialized don't modify it because can damage your installation.
If your OpenKM installation has been already configured with another database you can't switch to another database simply changing this property.
Edit the file $TOMCAT_HOME/OpenKM.cfg
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.hbm2ddl=create
Configure Tomcat datasources
Edit the file $TOMCAT_HOME/conf/server.xml and enable the resource named jdbc/OpenKMDS
<Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1 from dual"
username="OPENKM" password="*secret*" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:XE"/>
Configure the attributes values named:
- userName.
- password.
- url ( change to your hosts and port ).
Can be only one resource named jdbc/OpenKMDS.
Sample using service name instead of SID:
The main difference between SID connection is the ":" is replaced by "/".
<Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1 from dual"
username="OPENKM" password="*secret*" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521/ServiceName"/>
Configure application login
Edity the file $TOMCAT_HOME/OpenKM.xml
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider>
<security:password-encoder hash="md5"/>
<security:jdbc-user-service
data-source-ref="dataSource"
users-by-username-query="select usr_id, usr_password, 1 from OKM_USER where usr_id=? and usr_active='T'"
authorities-by-username-query="select ur_user, ur_role from OKM_USER_ROLE where ur_user=?"/>
</security:authentication-provider>
</security:authentication-manager>
Check for JDBC Driver
Go to $TOMCAT_HOME/lib and check for JDBC ojdbc6-11.2.0.3.jar Driver.
If it is not present, download Oracle JDBC driver from Oracle JDBC Driver page and move it.
The driver numeration version could be distinct due some version upgrade.
Run application
As a process into OpenKM startup, the application will create automatically and empty database structure.
Once the tables are created, OpenKM will automatically change the hibernate.hbm2ddl property from create to none.