Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. First, Locate and copy the necessary jdbc driver for your database into <frevvo-home>\tomcat\lib.
  2. Edit the file <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml
  3. You will see two a data source definitions definition for each the frevvo database type. name="jdbc/frevvoDS" is the form submissions database. name="jdbc/userDS" is the user database. See . See the sample below of the HSQLDB data source in the frevvo.xml file.
  4. Comment out the pair of the definitions for the default database (HSQLDB) using the <!-- --> comment characters. The entire section must be commented out:
Code Block
<!-- 
 		HSQLDB Resource 
       	
	<Resource auth="Container"
                		type="javax.sql.DataSource"
                factory		name="jdbc/frevvoDS"
		driverClassName="org.apache.commons.dbcp.BasicDataSourceFactory"
                name="jdbc/frevvoDS"
                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"/>
        <Resource auth="Container"
                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"/>
	
	<Parameter name="org.quartz.jobStore.driverDelegateClass" value="org.quartz.impl.jdbcjobstore.HSQLDBDelegate" override="false"/>	
	-->

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.

Code Block
  <!-- 
		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/frevvoDS"
		driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
		username="root"
		password=""
		type="javax.sql.DataSource"
		url="jdbc:sqlserver://localhost:1433;databaseName=frevvo;"/>
	
              factory	<Parameter name="org.apachequartz.commonsjobStore.dbcp.BasicDataSourceFactory"
                name="jdbc/userDS"
                driverClassName="org.hsqldb.jdbcDriver"
                username="sa"
                password=""
                url="jdbc:hsqldb:file:${catalina.home}/../data/db/users"                
                maxActive="200"
                maxIdle="20"
                maxWait="10000"
                validationQuery="select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
                testOnBorrow="true"
                testOnIdle="true"
                timeBetweenEvictionRunsMillis="10000"
                removeAbandoned="true"
                logAbandoned="true"/>
 -->

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.

Code Block
 <!--
                SQLSERVER Resource  
   -->
  
          <Resource auth="Container"
                factory="org.apache.commons.dbcp.BasicDataSourceFactory"
                maxActive="200"
                maxIdle="20"
                maxWait="10000"
                validationQuery="select 1"
                testOnBorrow="true"
                testOnIdle="true"
                timeBetweenEvictionRunsMillis="10000"
                removeAbandoned="true"
                logAbandoned="true"
                name="jdbc/frevvoDS"
                driverClassName="net.sourceforge.jtds.jdbcx.JtdsDataSource"
                username="root"
                password=""
                type="javax.sql.DataSource"
                url="jdbc:jtds:sqlserver://localhost/frevvoSubmissions"/>
          <Resource auth="Container"
                factory="org.apache.commons.dbcp.BasicDataSourceFactory"
                maxActive="200"
                maxIdle="20"
                maxWait="10000"
                validationQuery="select 1"
                testOnBorrow="true"
                testOnIdle="true"
                timeBetweenEvictionRunsMillis="10000"
                removeAbandoned="true"
                logAbandoned="true"
                name="jdbc/userDS"
                driverClassName="net.sourceforge.jtds.jdbcx.JtdsDataSource"
                username="root"
                password=""
                type="javax.sql.DataSource"
                url="jdbc:jtds:sqlserver://localhost/users"/>

Configure the Live Forms submissions database

Note
  1. The forms and users databases below must be created with UTF-8 encoding.

For your selected database type in frevvo.xml

  1. Locate the frevvoDS data source url parameter:url="jdbc:jtds:sqlserver://localhost/frevvo". You can change the name "frevvo" to whatever you wish, "" for example. But it must match the database name you create in your SQL server. See verify connection Url below.
  2. Create a UTF-8 encoded database "frevvo" (assuming you left the url parameter database name as the default) in your SQL server
  3. In the  installation locate the script <frevvo-home>/data/sql/forms-<database type>.sql. Ex: for mySQL the script is named <frevvo-home>/data/sql/forms-mysql.sql
  4. Run that script in your "" database. That will create all the tables required to persist submissions
  5. Set the frevvoDS data source parameters username and password to a user that has write permissions to the "" database.
  6. The submissions database setup is now complete.

Configure the Live Forms users database

For your selected database type in frevvo.xml,

  1. Locate the userDS data source url parameter: url="jdbc:jtds:sqlserver://localhost/users". You can change the name "users" to whatever you wish, " users" for example. But it must match the database name you create in your SQL server. See verify connection Url below.
  2. Create a UTF-8 encoded database "users" (assuming you left the url parameter database name as the default) in your SQL server
  3. In the  installation locate the script <frevvo-home>/data/sql/users-<database type>.sql. Ex: for mySQL the script is named <frevvo-home>/data/sql/users-mysql5.sql
  4. Run that script in the "users" database
  5. Set the userDS data source username and password parameter to a user that has write permissions to your "users" database.

Verify the Connection Url

Configuration of the connection Url is key to successfully connect the  server to your database. Consult your DBA to assist with connection issues.

For both data sources frevvoDS and userDS:

1) verify that the "url" parameter is pointing to the correct server. If  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:

Code Block
<url>jdbc:jtds:sqlserver://e00sca:59377/frevvo</url>

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:

Code Block
<url>jdbc:jtds:sqlserver://e00sca:59377/frevvo;instance=xyzzy</url>

2) Verify that the users and passwords required to connect to each database are correct.
3) Make sure that the users configured in the data sources have permissions to read and write to the respective databases.

Non Standard Databases

If you are trying a different database type and do not see an example in frevvo.xml for  your database, you can create a new data source entry. Hibernate supports the following dialects however  has only been certified to run with a subset of these databases. For additional dialects see Hibernate documentation. Database Setup

Info

See the certified database list above for all the databases officially supported 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

Warning

The forms and users databases must be created with UTF-8 encoding.

If you're using a improperly encoded database for frevvoDS or usersDS you may run into one or more of the following runtime issues:

  1. International characters will not work correctly without the proper encoding.
  2. Workflows directed to a specific user may not appear on the user's task list.

Setting the encoding depends upon the database you are using. Please consult your database documentation.

MySQL UTF-8 Example

These commands will create the proper  and users utf8 encoded database in mySql:

Code Block
languagesql
create database if not exists frevvo default character set "utf8" default collate "utf8_unicode_ci";
create database if not exists users 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 via the mySQL cmd tool.

Via the configuration file:

Code Block
[mysqld]
default-character-set=utf8
default-collation=utf8_unicode_cii

Via the mySQL cmd tool:

Code Block
ALTER DATABASE frevvo CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER DATABASE users CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `frevvo16089`.`formsubmission` CHARACTER SET utf8 COLLATE utf8_unicode_ci; 

Run the SQL Scripts

What does it mean to run the SQL scripts? The *.sql file is a text file with SQL statements to be executed by the SQL server. Here is one way to run an SQL script for a mySql database to create the tables needed by  on a windows box.

  1. Open a Command Prompt window 
  2. cd to <frevvo installdir>\frevvo\data\sql
  3. execute the command: mysql <my_db_name> -u <user_name> -p < forms-mysql.sql

...

driverDelegateClass" value="org.quartz.impl.jdbcjobstore.MSSQLDelegate" override="false"/>			
	

Configure the Live Forms database

Note
  1. The frevvo database below must be created with UTF-8 encoding.

For the frevvo database type in frevvo.xml

  1. Locate the frevvoDS data source url parameter:url="url="jdbc:sqlserver://localhost:1433;databaseName=frevvo". You can change the name "frevvo" to whatever you wish, "" for example. But it must match the database name you create in your SQL server. See verify connection Url below.
  2. Create a UTF-8 encoded database "frevvo" (assuming you left the url parameter database name as the default) in your SQL server
  3. Set the frevvoDS data source parameters username and password to a user that has write permissions to the "" database.
  4. The frevvo database setup is now complete.  will create all the necessary table upon startup.

Verify the Connection Url

Configuration of the connection Url is key to successfully connect the  server to your database. Consult your DBA to assist with connection issues.

For the data source frevvoDS 

1) verify that the "url" parameter is pointing to the correct server. If  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:

Code Block
<url>jdbc:jtds:sqlserver://e00sca:59377/frevvo</url>

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:

Code Block
<url>jdbc:jtds:sqlserver://e00sca:59377/frevvo;instance=xyzzy</url>

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 databases.

Non Standard Databases

If you are trying a different database type and do not see an example in frevvo.xml for  your database, you can create a new data source entry. Hibernate supports the following dialects however  has only been certified to run with a subset of these databases. For additional dialects see Hibernate documentation. 

Info

See the certified database list above for all the databases officially supported 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

Warning

The frevvo database must be created with UTF-8 encoding.

If you're using a improperly encoded database for frevvoDS you may run into one or more of the following runtime issues:

  1. International characters will not work correctly without the proper encoding.
  2. Workflows directed to a specific user may not appear on the user's task list.

Setting the encoding depends upon the database you are using. Please consult your database documentation.

MySQL UTF-8 Example

These commands will create the proper frevvo utf8 encoded database in mySql:

Code Block
languagesql
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 via the mySQL cmd tool.

Via the configuration file:

Code Block
[mysqld]
default-character-set=utf8
default-collation=utf8_unicode_cii

Via the mySQL cmd tool:

Code Block
ALTER DATABASE frevvo CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `frevvo16089`.`formsubmission` CHARACTER SET utf8 COLLATE utf8_unicode_ci; 

 

Install a JDBC Driver

's submission and user databases rely on the JDBC API. You can use any relational database as long as you have a JDBC driver for that database, however. See the list of certified databases. If you choose a database that's not in this list you do so at your own risk.

...

It is also appropriate to copy the driver into any location that is in the CLASSPATH of your servlet container. In a tomcat installation another location would be <CATALINA_HOME>/lib.

Changing

...

the frevvo database naming and escaping conventions

In specific situations, your organization may require a certain naming convention for database objects (all uppercase, or at most 32 chars, or a specific name escaping convention) and the good news is that It is possible to change some of these parameters in  by setting a couple of specific web context parameters.

...