[rt-users] RT and oracle

Joop van de Wege JoopvandeWege at mococo.nl
Wed Mar 8 04:52:46 EST 2006


On Tue,  7 Mar 2006 11:14:43 -0500 (EST)
rt-users-request at lists.bestpractical.com wrote:

> Date: Tue, 7 Mar 2006 08:21:20 -0600
> From: "Don Beethe" <dmbeethe at fedex.com>
> Subject: [rt-users] RT and oracle
> To: <rt-users at lists.bestpractical.com>
> Message-ID:
> 	<CBFD49490FF183498C0C74C2317C7FE5031B78C3 at MEMEXCH06V.corp.ds.fedex.com>
> 	
> Content-Type: text/plain;	charset="us-ascii"
> 
>  Trying to get RT with oracle database running. I've got Apache 2.0.54,
> mod_perl 2.0.2, perl 5.8.5 and oracle 9.2.0. I try to start apache and
> get: 
> Can't locate object method "server" via package "Apache" at
> /opt/rt3/lib/RT/Interface/Web/Handler.pm line 121
> 
> Is there some module I'm missing? 
> Tried adding PerlModule Apache2::compat to my httpd.conf to no avail. 

There is something weird going on. I have a FC4 installation with
RT-3.4.4 and OracleXE using Apache 2.0.54, mod_perl-2.0.1, perl 5.8.6
and encountered the same error. I have gone as far as re-installing that
system with all packages just in case I missed something, same result.
I now have a Ubuntu systeem with the same configuration, almost, and
that works OK using fastcgi. I'll see if I can get RT to work with
mod_perl. I suspect the same problems though.
The reason is that the subroutine InitSessionDir is checking whether the
database is mysql/pg or something else. When it is something else it
will store its sessionfiles on disk and that piece of code is using
mod_perl-1 functions. I commented that part partly out and then it works.
Another way is to include Oracle in the comparison.

sub InitSessionDir {
    # Activate the following if running httpd as root (the normal case).
    # Resets ownership of all files created by Mason at startup.
    # Note that mysql uses DB for sessions, so there's no need to do this.
    unless ( $RT::DatabaseType =~ /(?:mysql|Pg)/ ) {

        # Clean up our umask to protect session files
        umask(0077);

#        if ($CGI::MOD_PERL) {
#            chown( Apache->server->uid, Apache->server->gid,
#                $RT::MasonSessionDir )
#            if Apache->server->can('uid');
#        }

        # Die if WebSessionDir doesn't exist or we can't write to it
        stat($RT::MasonSessionDir);
        die "Can't read and write $RT::MasonSessionDir"
        unless ( ( -d _ ) and ( -r _ ) and ( -w _ ) );
    }

}


Joop

-- 
Joop van de Wege <JoopvandeWege at mococo.nl>




More information about the rt-users mailing list