This HOWTO was written some time ago and was targeted at Oracle 8i and the version of Torque that was coupled with the Turbine application framework. Contributions towards updating the information below can be submitted to the Torque Dev mailing list.
Saravana Kannan is maintaining a patched version of Village that supports Oracle LOBs: Village 2.0 Patched for Oracle LOBs - For use with Torque 3.1
Thierry Lach changed the generated SQL code for Oracle to no longer
fail when the tables that should be dropped do not exist. He added the
following note:
As the Oracle database does not have a "drop table if
exists" clause, the normally created schema creation sql script
usually fails on the first run as the tables do not exist and the drop
table command errors off.
These changes uses Oracle's procedural language PL/SQL to trap this
error.
The drawback to this approach is that PL/SQL uses the semicolon (;) as
its own statement delimiter, so if the scripts are run using Ant, the
sql task must include an additional argument:
This HOWTO aims to be a simple guide to make Turbine run with an existing Oracle 8i database. The process of making Turbine run is not covered in this guide, proceed to the Turbine site for help on how to install Turbine.
If you do not have a database already set up, you will need to create one so we can create the necessary tables for Turbine. The steps below are simple steps to take to create a new database. If you already have a database ready for use, you can skip this part.
1. Open the Oracle Database Configuration assistant
2. Create a database with the Global Database Name 'turbine.project' and SID 'turbine'
3. Wait for the database to be created.
4. Good idea to stop the services from running if the Oracle database isn't being used as they are memory hungry for a development desktop machine. Check if the Oracle TNS Listener and the correct service are running when trying to connect.
5. Start SQL *PLUS and login to the database using the username and password for the database. You may want to use the same username and password you will use for Turbine, or you will need to create synonyms for the tables and grant the necessary privilieges (SELECT, UPDATE, INSERT, etc), so Turbine can access the tables directly without using "user"."table_name".
6. Run the Oracle specific scripts. For the cvs version of Turbine, these can be found in turbine/src/sql . In SQL*PLUS type :
@path/to/oracle-turbine.sql
7.The oracle-turbine.sql script creates an oracle sequence for each turbine table. To use these sequences for primary key generation, the oracle-turbine-security.sql script should be modified. For example, the following command from the script :
INSERT INTO TURBINE_USER (USER_ID, LOGIN_NAME, PASSWORD_VALUE, FIRST_NAME, LAST_NAME) VALUES (0, 'turbine', 'turbine', 'turbine', 'turbine');
would be changed to something like :
INSERT INTO TURBINE_USER (USER_ID, LOGIN_NAME, PASSWORD_VALUE, FIRST_NAME, LAST_NAME) VALUES (TURBINE_USER_SEQ.nextval, 'turbine', 'turbine', 'turbine', 'turbine');
When your changes, if any, are made to the script, run it from SQL*PLUS :
@path/to/oracle-turbine-security.sql
8.If you would rather use Turbine's id-broker to generate primary keys, run the following scripts to create and populate the id-broker table :
@path/to/oracle-id-table-schema.sql
@path/to/oracle-turbine-id-table-init.sql
9. Download and install the Oracle 8i JDBC type 4 Thin driver for JDK 1.2.x from the Oracle website. Add the classes12_01.zip file to the classpath of the servlet engine. In JServ add to the jserv.properties file the line:
wrapper.classpath=/path/to/classes12_01.zip
10. Ensure that the OracleoracleTNSListener service and the OracleServiceTURBINE service is running before using the driver.
11. Follow the installation document for Turbine with the following differences. To link up the Oracle database and driver to Turbine, edit the TurbineResources.properties file;
and ensure no other database.default.driver or database.default.url is left uncommented.
The servername is the Oracle server name and the port is the port that oracle uses. It is important not to confuse the Oracle servername and port with the Apache server name and port. Refer to the Oracle 8i documentation if there are any conflicts in this regard. Take care to use the correct SID for the database you have set up.
You may need to check if a Turbine database adaptor has been setup for Oracle. Look for the following lines in TurbineResources.properties, and add them in case you do not find: