Re: Success: Scarab 0.21 with Oracle 10g

"Jorge Uriarte Aretxaga" <[email protected]> Mon, 8 Sep 2008 16:24:59 +0200
Newsgroups gmane.comp.java.scarab.user
Message-ID <[email protected]>
Great, exhaustive work, thank you very much, Joerg...I'll try to test it
(I've got access to a Oracle-XE 10.2 in EC2 for development purposes of one
project) so we can validate it and get it integrated in the next release.

_
Jorge



On Mon, Sep 8, 2008 at 4:02 PM, <[email protected]> wrote:

>
> Hello,
>
> there are several thread dealing with Scarab 0.21 and Oracle 10g but I
> haven't found a complete list of steps to do joining Scarab with Oracle, so
> I had some days of work to bring them together. Some of these points are
> documented in the Scarab doc or can be found on the mailing list. I would
> like to provide you these steps, so you may save some time. There may be
> fixes in the trunk version, but I was'nt able to download the trunk with svn
> because of some security restrictions of our company. Also I want to use
> Scarab for a kind of "production", so it may be better to use a stable
> version.
>
> I have used Ant to build Scarab and Eclipse for managing the files and
> executing Ant.
>
> ---------------------------------------------------
> 1. build.properties for Oracle
>
> scarab.database.type=oracle
> scarab.database.host=<hostname>
> scarab.database.port=1521
> scarab.database.url=jdbc:oracle:thin:@<hostname>:1521:<dbname>
> scarab.database.admin.url=jdbc:oracle:thin:@<hostname>:1521:<dbname>
> scarab.database.username=scarab
> scarab.database.password=xxxxxxx
> scarab.database.admin.username=scarab
> scarab.database.admin.password=xxxxxxx
>
> ---------------------------------------------------
> 2. Copy the Oracle JDBC-driver into the path $SCARAB_ROOT/lib. Your DB
> administrator probably can provide you the JDBC-driver.
>
> ---------------------------------------------------
> 3. One table name is defined with 34 characters. Oracle doesn't support
> this so you have to fix the table name in two files:
>
> $SCARAB_ROOT/src/schema/scarab-schema.xml:
> old:
>     <table name="SCARAB_DEFAULT_NOTIFICATION_FILTER"
>          idMethod="none"
>          javaName="NotificationDefaultFilter" >
> new:
>     <table name="SCARAB_DEF_NOTIFICATION_FILTER"
>          idMethod="none"
>          javaName="NotificationDefaultFilter" >
>
>
> $SCARAB_ROOT/src/sql/oracle/prepare-oracle-dummy-tables.sql:
> old:
>         create table SCARAB_DEFAULT_NOTIFICATION_FILTER (A char(1));
> new:
>         create table SCARAB_DEF_NOTIFICATION_FILTER (A char(1));
>
> ---------------------------------------------------
> 4. There is a BLOB compatibility issue with Oracle, so you have to replace
> one column type
>
> $SCARAB_ROOT/src/schema/turbine-schema.xml line 75 (table TURBINE_USER):
>
> old:
>         <column name="OBJECTDATA" type="VARBINARY"/>
> new:
>         <column name="OBJECTDATA" size="4000" type="VARCHAR"/>
>
> ---------------------------------------------------
> 5. Make target create-db-schema working with oracle. You cannot fix the
> db-type-check target, because Ant will then try to create Oracle's tables
> twice, leading into a failure. This is just a workaround, not a "good" fix
> for the Ant script: Remove the if-condition in the create-db-schema target.
>
> $SCARAB_ROOT/src/conf/conf/build.xml:
> old:
>         <target name="create-db-schema"
> depends="scarab-welcome,db-type-check, sql-current-db"
>                 if="auto.create.db">
>
> new:
>         <target name="create-db-schema"
> depends="scarab-welcome,db-type-check, sql-current-db">
>
>
> ---------------------------------------------------
> 5. Our Oracle instances are configured not to use ISO timestamps but a
> local format, so I have to fix the init sql script to use ISO format.
>
> $SCARAB_ROOT/src/sql/oracle/standard-oracle-init.sql (add line):
>         alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS';
>
> If you want to fill the scarab db with the JIRA templates, do the following
> fix (this target doesn't execute the above init script):
>
> $SCARAB_ROOT_PATH/src/conf/conf/build.xml (add init.sql to the
> jira-target):
>
>     <!-- ==================================================================
> -->
>     <!-- Load jira templates data
> -->
>     <!-- ==================================================================
> -->
>     <target name="load-jira-templates-data"
> unless="skip.jira.templates.data">
>         <sql
>             driver="${scarab.database.jdbc.driver}"
>             url="${scarab.database.url}"
>             userid="${scarab.database.admin.username}"
>             password="${scarab.database.admin.password}">
>             <classpath refid="classpath"/>
>             <transaction
> src="${database.instance.sql.dir}/${scarab.database.type}/standard-${scarab.database.type}-init.sql"/>
>             <transaction
> src="${database.instance.sql.dir}/${project}-jira-templates-data.sql"/>
>         </sql>
>     </target>
>
> ---------------------------------------------------
> 6. Finallye we don't want to use the sample data and the jira templates, so
> we have set these properties (in Eclipse's Ant configuration, setting them
> in the build.properties was not successful):
>
> skip.seed.data=true
> skip.jira.templates.data=true
>
> In addition, I made a sql script to drop the whole scarab database in
> Oracle (see attached drop_tables.sql), so I had an easy way to clean up
> while experimenting with the Oracle integration.
>
> regards,
>
> Jörg Florin
> Techniker Krankenkasse
> Hauptverwaltung
> IT-Systeme (ITS.4 - Systemframeworks)
> Bramfelder Straße 140, D-22305 Hamburg
>
> Tel: +49 (40) 69 09 - 25 75
> Fax: +49 (40) 69 09 - 8 25 75
> E-Mail: [email protected]
> TK-Website: www.tk-online.de
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>



-- 
Jorge Uriarte Aretxaga
http://www.gailen.es
http://www.linkedin.com/in/jorgeuriarte