This documentation is for frevvo v10.1. Not for you? Earlier documentation is available too.
Database Setup
These steps are required when you convert from a demo/trial frevvo server installation to a production installation.
While you are demo-ing frevvo you do not need to do the Database Setup steps discussed below.
Your frevvo server requires a SQL database for storing users and form submissions. The default HSQLDB is ONLY sufficient for demo/trial versions of frevvo. All production frevvo users MUST switch their frevvo software to a production quality database. The following steps describe how to change the underlying database from the demo/trial HSQLDB to a production quality SQL database. The database configuration file, server.xml is located in <frevvo-home>/frevvo/tomcat/conf directory.
Before you start:
- Refer to our Supported Platforms for the list of Application Servers and databases supported/certified by frevvo. frevvo only supports/certifies the frevvo running in the Apache Tomcat container.
- Download csv files of your users and roles, as well as any applications from designer user accounts in the trial database. You cannot migrate the data (user, roles, applications) automatically from HSQL to your production database. See thistopic for the manual procedure details.
- If you are using Oracle12c as your database, the jdbc driver must be version 7 ojdbc.jar for the Refresh Searchable Fields process to function properly. Refer to the Install a JDBC Driver topic for the details.
- It is recommended practice to use a named user (schema) account with the proper privileges when connecting frevvo to Oracle databases. The built in SYSTEM user account will not work.
On This page:
Select your database type
Install a JDBC Driver for your database into <frevvo-home>\tomcat\lib.
Edit the file <frevvo-home>\tomcat\conf\server.xml
You will see a data source definition for the frevvo database type name="jdbc/sharedfrevvoDS". See the sample below of the HSQLDB data source in the server.xml file.
Comment out the pair of the definitions for the default database (HSQLDB) using the <!-- --> comment characters. The entire section must be commented out:
<!--
HSQLDB Resource
<Resource auth="Container"
type="javax.sql.DataSource"
name="jdbc/sharedfrevvoDS"
driverClassName="org.hsqldb.jdbcDriver"
username="sa"
password=""
url="jdbc:hsqldb:file:${catalina.home}/../data/db/forms"
maxActive="200"
maxIdle="20"
maxWait="10000"
validationQuery="select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
testOnBorrow="true"
testOnIdle="true"
timeBetweenEvictionRunsMillis="10000"
removeAbandoned="true"
logAbandoned="true"/>
-->5. Next, uncomment the pair of definitions for your database. Ex: if you are using SQL server, uncomment the definition for SQLSERVER Resource. Save the changes.
<!--
SQLSERVER Resource
-->
<Resource auth="Container"
maxActive="200"
maxIdle="20"
maxWait="10000"
validationQuery="select 1"
testOnBorrow="true"
testOnIdle="true"
timeBetweenEvictionRunsMillis="10000"
removeAbandoned="true"
logAbandoned="true"
name="jdbc/sharedfrevvoDS"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
username="root"
password=""
type="javax.sql.DataSource"
url="jdbc:sqlserver://localhost:1433;databaseName=frevvo;"/> Database configuration has been removed from the <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml file. It is now done in the C:<frevvo-home>\tomcat\conf\server.xml file. Also, notice the database resource name has been changed to jdbc/sharedfrevvoDS. When you configure your database, make the changes to the server.xml. Do not copy configured sections from a frevvo.xml of a previous release into the server.xml file.
Configure the frevvo database
The frevvo database below must be created with UTF-8 Encoded Database.
For your selected database type in server.xml:
Locate the sharedfrevvoDS data source url parameter and decide on a name for the frevvo database. For the SQL Server it would look like this: "url="jdbc:sqlserver://localhost:1433;databaseName=frevvo". You can change the name "frevvo" to whatever you wish, "frevvo" for example. But it must match the database name you create in your SQL server. See Configure the Connection Url below.
Create a UTF-8 Encoded Database "frevvo" (assuming you left the url parameter database name as the default) in your SQL server
Set the sharedfrevvoDS data source url parameter to your database server. See Configure the Connection Url below.
Set the sharedfrevvoDS data source username and password parameters to a user that has read and write permissions to the frevvo database.
The frevvo database setup is now complete. frevvo will create all the necessary tables upon startup.
If you use a custom schema (anything other than 'dbo'), please this documentation for an additional task.
Where did the SQL scripts go? The frevvo server no longer needs the SQL scripts that used to be in <frevvo installdir>\frevvo\data\sql. The server automatically creates the necessary tables at first startup.
Configure the Connection Url
Configuration of the connection Url is key to successfully connect the frevvo server to your database. Consult your DBA to assist with connection issues.
For your selected database type in server.xml:
Set the sharedfrevvoDS data source url parameter to your database server. If frevvo and the database server are collocated "localhost" may be fine. The url parameters depend on the database type and installation choices made when your DBA installed your database software. Consult your DBA for the correct connection values. For example, SQL server installed on a non-default port and running on a machine named e00sca will require that you add a port number and host name to the Url. For example:
url="jdbc:sqlserver://e00sca:59377;databaseName=frevvo;"As of SQL 2000, Microsoft SQL allows installation of multiple SQL named instances. If your SQL server was installed this way you must use the instance parameter. For example if you database instance was named xyzzy:
url="jdbc:sqlserver://e00sca:59377;databaseName=frevvo;instance=xyzzy"2. Verify that the user and password required to connect to the frevvo database are correct.
3. Make sure that the user configured in the data sources has permissions to read and write to the frevvo database.
If you are using SQL Server, it is recommended that you append the sendStringParametersAsUnicode property with a value of false to your database connection URL. This property will improve performance. You can find more information about this property on this Microsoft website. If you do not see the property, when configuring the Connection URL to your database, add it.
url="jdbc:sqlserver://localhost:1433;databaseName=frevvo;sendStringParametersAsUnicode=false"/> Non Standard Databases
If you are trying a different database type and do not see an example in server.xml for your database, you can create a new data source entry. Hibernate supports the following dialects however frevvo has only been certified to run with a subset of these databases. For additional dialects see Hibernate documentation. Refer to our Supported Platforms for the list of Application Servers and databases supported/certified by frevvo.
org.hibernate.dialect.HSQLDialect
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQL5InnoDBDialect
org.hibernate.dialect.Oracle9Dialect
org.hibernate.dialect.OracleDialect
org.hibernate.dialect.PostgreSQLDialect
org.hibernate.dialect.SQLServerDialect
org.hibernate.dialect.Sybase11Dialect
UTF-8 Encoded Database
The frevvo database should be created with UTF-8 encoding if you are using international characters. Setting the encoding depends upon the database you are using. Please consult your database documentation.
If you're using a improperly encoded database for sharedfrevvoDS you may run into one or more of the following runtime issues:
International characters will not work correctly without the proper encoding.
Workflows directed to a specific user may not appear on the user's task list.
MySQL UTF-8 Example
These commands will create the proper frevvo utf8 encoded database in mySql:
create database if not exists frevvo default character set "utf8" default collate "utf8_unicode_ci"; You can convert a database and/or table to UTF-8 using the MySQL configuration file or the MySQL cmd tool.
Configuration file:
[mysqld]
default-character-set=utf8
default-collation=utf8_unicode_ciiMySQL cmd tool:
ALTER DATABASE frevvo CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `frevvo16089`.`formsubmission` CHARACTER SET utf8 COLLATE utf8_unicode_ci; Case Insensitive Collation
frevvo recommends using case-insensitive collation for databases. Collation determines how strings are compared, which has a direct impact on ordering (sorting) and equality tests between strings. Please refer to your database's documentation to understand the default behavior and for instructions on setting case-insensitive collation. For example, Oracle by default is case- and accent- sensitive. This article has an example of instructions to set up Oracle DB for case-insensitive collation.
Configure Snapshot Isolation for SQL Server Databases
If you are using Database Setup, it is highly recommended that you turn on the READ COMMITTED SNAPSHOT setting in the database. You do not have to do this if you are using MySQL or Oracle databases because the option is turned on by default. There are two ways to turn on the option:
Using DDL (Data Definition Language) - Run the commands listed below
ALTER DATABASE <your frevvo database schema> - replace <your frevvo database schema> with the name of your frevvo database schema SET READ_COMMITTED_SNAPSHOT ONUsing SQL Server Management Studio: Turn on the “Is Read Committed Snapshot On” Option under database properties.