|
<!-- HSQLDB Resource <Resource auth="Container" type="javax.sql.DataSource" factory="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"/> --> |
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" 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"/> |
|
For your selected database type in frevvo.xml
For your selected database type in frevvo.xml,
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:
<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:
<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.
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
See the certified database list above for all the databases officially supported by frevvo. |
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:
|
Setting the encoding depends upon the database you are using. Please consult your database documentation.
These commands will create the proper and users utf8 encoded database in mySql:
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:
[mysqld] default-character-set=utf8 default-collation=utf8_unicode_cii |
Via the mySQL cmd tool:
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; |
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.
This will prompt you for the mysql password for <user_name> and then execute the script creating all the required tables.
'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.
You MUST use the JDBC4 type driver. |
The download package comes with several pre-installed drivers. Look in <frevvo-home>/tomcat/lib and you will see (among other jar files) the following pre-installed driver jar files:
If you don't find what you need pre-installed you will need to locate a driver compatible to your database. Usually you can download your driver from the internet. Try one of these locations
Once you have the driver you need, copy it to <frevvo-home>/tomcat/lib.
The <frevvo-home>\tomcat\logs\frevvo.log file will report an error if you do not copy the JDBC driver to lib directory. The verbiage may differ depending on the driver and database. For example, the error for MySQL is "Cannot load JDBC driver class 'com.mysql.jdbc.Driver". Starting without the correct jdbc driver displays an HTTP 404 error. Coying the correct jdbc driver to the <frevvo-home>/tomcat/lib directory should resolve the issue.
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.
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.
However, the bad news is that this is not completely supported by |
Note also that the following settings affect only the frevvoDS database schema (and not the userDS schema) and that any changes to these settings will force to create a schema that is different than the pre-generated scripts found in frevvo/data/sql/forms-*.sql when the schema is initially empty (you have to start from an empty schema).
How can you make sure that all database object names are uppercase or lowercase? You can affect this by editing the frevvo/tomcat/conf/Catalina/localhost/frevvo.xml and adding the following parameter:
<Parameter name="teneo.naming.strategy" value="uppercase" override="false" /> |
How can you make sure that all database object names have a max length (e.g. Oracle specifies a max of 32 chars)? You can affect this by editing the frevvo/tomcat/conf/Catalina/localhost/frevvo.xml and adding the following parameter:
<Parameter name="teneo.naming.max_sql_name_length" value="30" override="false" /> |
How can you specify a custom name escape character? You can affect this by editing the frevvo/tomcat/conf/Catalina/localhost/frevvo.xml and adding the following parameter:
<Parameter name="teneo.naming.sql_name_escape_character" value="" override="false" /> |
Typically you should not need to move the forms database as these instructions only apply to |
This information applies ONLY to the pre-installed demo database HSQLDB. When using the tomcat bundle installation and the default configuration settings, the forms and users database is written to the <frevvo-home>\data\db directory. You may wish to locate the databases outside of <frevvo-home>. To do this:
Failure to configure this resource correctly will cause issues trying to create new forms, view submissions and submit forms. |