G3W Call to a member function iniciarHashSesion() on a non-object

Buenas

Estoy realizando una instalación limpia de Informix 9.21 en otro equipo, ejecuto el dbImport
Estoy intentando ubicar el equipo nuevo en el mismo lugar que el viejo (direcciones, DNS, etc.) y que el cambio sea transparente para todos los clientes.

Accedo con Guaraní Gestión, todo bien… hasta que pruebo el g3w…

Aparentemente el g3w se conecta a la DB (cuando tenía problema de usuario/contraseña vi un error, y me acordé de crear ese usuario en el Informix y se solucionó esa parte) pero veo que, cuando quiero iniciar sesión el script termina abruptamente y encuentro en el log que:

[Fri Aug 01 19:26:49 2014] [error] [client 172.25.1.252] PHP Fatal error:  Call to a member function iniciarHashSesion() on a non-object in /srv/g3w2070/www/a_general/identificarse.php on line 28, referer: http://g3w.fcal.uner.edu.ar/a_general/operaciones.php

Con el servidor viejo anda OK.

No tengo idea por dónde revisar, y una búsqueda de iniciarHashSesion en este foro no ha arrojado resultados así que parece que a nadie le pasó.

¿alguna idea?

Gracias!

Hola Carlos, te voy a pedir que me pases los resultados de la ejecución de las siguientes queries en la base donde se presentan los errores.

  1. execute procedure sp_param_sistema(‘metodo_acceso_autogestion’)
  2. SELECT include, clase FROM aca_metodos_acceso WHERE metodo_acceso = resultado de Query 1

Por otro lado, quería solicitarte si podés incluir algunas líneas más del log de apache anteriores al fatal error, a ver si hay algún otro indicio de la problemática.

Una vez que tengas los resultados, veremos como proseguir.
Gracias!

execute procedure sp_param_sistema('metodo_acceso_autogestion'):
Base
SELECT include, clase FROM aca_metodos_acceso WHERE metodo_acceso = 'Base';
metodo_base.lib.php | metodo_base

No aporté mas líneas de logs porque no aportan otro dato:

[Fri Aug 01 19:07:27 2014] [error] [client 172.25.1.252] PHP Fatal error:  Call to a member function iniciarHashSesion() on a non-object in /srv/g3w2070/www/a_general/identificarse.php on line 26, referer: http://g3w.fcal.uner.edu.ar/includes/barra.inc.php
[Fri Aug 01 19:08:06 2014] [error] [client 172.25.1.252] PHP Fatal error:  Call to a member function iniciarHashSesion() on a non-object in /srv/g3w2070/www/a_general/identificarse.php on line 26, referer: http://g3w.fcal.uner.edu.ar/includes/barra.inc.php
[Fri Aug 01 19:08:47 2014] [error] [client 172.25.1.252] PHP Fatal error:  Call to a member function iniciarHashSesion() on a non-object in /srv/g3w2070/www/a_general/identificarse.php on line 27, referer: http://g3w.fcal.uner.edu.ar/a_general/operaciones.php
[Fri Aug 01 19:08:57 2014] [error] [client 172.25.1.252] PHP Fatal error:  Call to a member function iniciarHashSesion() on a non-object in /srv/g3w2070/www/a_general/identificarse.php on line 27, referer: http://g3w.fcal.uner.edu.ar/a_general/operaciones.php

Lo que sí hice fue modificar un poco el código fuente para tratar de obtener info en esas líneas

La línea que falla es:

$hashSesion = $metAcceso->iniciarHashSesion();

Por lo que busqué a ver dónde se crea ese objeto y lo modifiqué para que dumpee algo de info en caso de error:

$metAcceso = metodo_acceso::getMetodoAcceso($objCon, $parametros)
       or die("Error obteniendo métodos de acceso:".print_r($parametros));

Incluso, como este método requiere otro objeto, hice algo parecido unas líneas mas arriba:

  $objCon = conectar(false)
       or die("Error conectando a la DB");

Pero dumpea los parámetros, así que a la DB se conecta correctamente.
Lo que me llama la atención es que esta misma instancia de G3W, sin tocar nada, reemplazando el server nuevo por el viejo (en la misma ip) anda, así que lo que sea que está diferente está en el nuevo informix, pero no logro saber qué es.

Aguardo tus indicaciones para seguir obteniendo mas info.

Gracias!

Carlos, te solicito que agregues las siguientes líneas al método getMetodoAcceso (dentro de metodo_acceso.lib.php), así podemos obtener información sobre algunas variables.


    public static final function getMetodoAcceso(&$objCon, &$parametros) {
        if ( ! isset(self::$metodo_acceso) ){
            $metodo_acceso=leerParametro($objCon,'metodo_acceso_autogestion');
            $strSQL = "SELECT include, clase FROM aca_metodos_acceso WHERE metodo_acceso = '" . $metodo_acceso . "';";
            $rsMetAcc = $objCon->Execute($strSQL);
			print_r("Valor de strSQL  ");
			print_r($strSQL);
			echo '<p></p>';
			print_r("Valor de rsMetAcc  ");
			print_r($rsMetAcc);
			echo '<p></p>';
			
            if (!$rsMetAcc || $rsMetAcc->EOF){	
                return null;
            }
            require_once $rsMetAcc->fields[0];
            self::$metodo_acceso = new $rsMetAcc->fields[1]();
			print_r("Valor de clase de metodo_acceso: ");
			echo(get_class(self::$metodo_acceso));
			echo '<p></p>';
			print_r("Valor de metodo de acceso:  ");
			die(var_export(self::$metodo_acceso, true));
        }
        
        return self::$metodo_acceso;
    }

Luego avisanos que información te arroja por pantalla a la hora de querer iniciar sesión.
Gracias