[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-devel] Patch for running Koha 2.2.0RC2 in a mod_perl environment.
From: |
Andrés Tarallo |
Subject: |
[Koha-devel] Patch for running Koha 2.2.0RC2 in a mod_perl environment. |
Date: |
Mon Nov 22 07:28:00 2004 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040114 |
As you might know Ernesto Silva and I have a been running Koha under
mod_perl for a while. You get impressive porformance gains. Most of koha
works without changes, however sometimes the conection to the database
is lost.
We have modified slightly the context.pm module to get rid of this
problem. Our instalation is working, but there are some messages in the
error_log of apache about a missing conection to the database, however
our librarians don't complain anymore about beeing kicked away by koha.
Andres
--- Context.pm.original 2004-11-22 11:04:31.203051576 -0300
+++ Context.pm 2004-11-22 11:59:21.726815928 -0300
@@ -19,6 +19,8 @@
# Revision History:
# 2004-08-11 A. Tarallo: Added the function db_escheme2dbi, tested my bugfixes,
# further details about them in the code.
+# 2004-11-23 A. Tarallo, E. Silva: Bugfixes for running in a mod_perl
environment.
+# Clean up of previous bugfixes, better documentation of what was done.
package C4::Context;
use strict;
@@ -105,13 +107,13 @@
# Returns undef in case of error.
#
# Revision History:
-# 2004-08-10 A. Tarallo: Added code that checks if a variable was already
+# 2004-08-10 A. Tarallo: Added code that checks if a variable is already
# assigned and prints a message, otherwise create a new entry in the hash to
# be returned.
# Also added code that complaints if finds a line that isn't a variable
# assignmet and skips the line.
-# Added a quick hack that makes the trasnlation between the db_schema
-# and the DBI driver for that eschema.
+# Added a quick hack that makes the translation between the db_schema
+# and the DBI driver for that schema.
#
sub read_config_file
{
@@ -151,8 +153,7 @@
}else {
$value = $2;
}
- $var = $1;
- $retval->{$var} = $value;
+ $retval->{$1} = $value;
}
}
close CONF;
@@ -168,9 +169,10 @@
my $name = shift;
for ($name) {
- if (/MySQL|mysql/) { return("mysql"); }
+# FIXME - Should have other databases.
+ if (/mysql/i) { return("mysql"); }
if (/Postgres|Pg|PostgresSQL/) { return("Pg"); }
- if (/Oracle|oracle|ORACLE/) { return("Oracle"); }
+ if (/oracle/i) { return("Oracle"); }
}
return undef; # Just in case
}
@@ -212,14 +214,13 @@
# check that the specified config file exists and is not empty
undef $conf_fname unless
- (defined $conf_fname && -e $conf_fname && -s $conf_fname);
+ (defined $conf_fname && -e $conf_fname && -s $conf_fname);
# Figure out a good config file to load if none was specified.
if (!defined($conf_fname))
{
# If the $KOHA_CONF environment variable is set, use
# that. Otherwise, use the built-in default.
- $conf_fname = $ENV{"KOHA_CONF"} ||
- CONFIG_FNAME;
+ $conf_fname = $ENV{"KOHA_CONF"} || CONFIG_FNAME;
}
$self->{"config_file"} = $conf_fname;
@@ -399,9 +400,6 @@
sub _new_dbh
{
my $db_driver = $context->{"config"}{"db_scheme"} || "mysql";
- # FIXME - It should be possible to use "MySQL" instead
- # of "mysql", "PostgreSQL" instead of "Pg", and so
- # forth.
my $db_name = $context->{"config"}{"database"};
my $db_host = $context->{"config"}{"hostname"};
my $db_user = $context->{"config"}{"user"};
@@ -428,11 +426,22 @@
sub dbh
{
my $self = shift;
+ my $sth;
- # If there's already a database handle, return it.
- return $context->{"dbh"} if defined($context->{"dbh"});
+#------------------------------------------------------------------------------
+# E. Silva 17-11-2004
+#
+# This patch let's Koha work under mod_perl more or less well. It test the
+# the connection to the database prior returning it.
+ if (defined($context->{"dbh"})) {
+ $sth=$context->{"dbh"}->prepare("select 1");
+ return $context->{"dbh"} if (defined($sth->execute));
+ }
+
+ warn "Database died";
+#------------------------------------------------------------------------------
- # No database handle yet. Create one.
+ # No database handle or it died . Create one.
$context->{"dbh"} = &_new_dbh();
return $context->{"dbh"};
[Koha-devel] Patch for running Koha 2.2.0RC2 in a mod_perl environment.,
Andrés Tarallo <=
[Koha-devel] Another patch for running Koha 2.2.0RC2 under mod_perl, Andrés Tarallo, 2004/11/23