Buenos dias, tenemos el parámetro nsc_cursada_controla_cupo_comision activado y una comision de verano con limite de 50 dejo inscribir a 90 alumnos.
¿Alguna idea que puede estar fallando?
Garacias.
Buenos dias, tenemos el parámetro nsc_cursada_controla_cupo_comision activado y una comision de verano con limite de 50 dejo inscribir a 90 alumnos.
¿Alguna idea que puede estar fallando?
Garacias.
Hola
En que version están?
Activaron el control de cupo en la operacion de inscripcion a cursadas?
Hola Emilio, estamos en la versión 2.7.
¿Cual seria el control por operacion que tengo que mirar?
Saludos
Hola
Disculpá. No está como control configurable.
Está como control obligatorio en el procedure que inserta el registro en la tabla de inscripciones a cursada.
Uds. lo tienen personalizado?
Emilio
Hola Emilio, El control insc_cursada_controla_cupo_comision siempre lo tuvimos activo en la versión 2.6.4 y anduvo correctamente. Cambiamos de versión a la 2.7 en enero y empezó a fallar con las cursadas de verano.
Ya mire el Guarani y esta todo bien configurado. ¿Que tendría que mirar ahora?
Saludos.
Hola
Entre la 2.6.4 y la 2.7.0 cambio levemente el mecanismo de control del cupo.
En todo caso fijate en el procedure sp_i_inscCursadas de la 2.6.4 y la 2.7 para ver que problema estás teniendo.
Emilio
Hola Emilio, estaba revisando la version 2.6.4 del sp_i_inscCursadas y cambia el control del cupo mediante el llamado a:
EXECUTE PROCEDURE ctr_cupoComision( pUnidadAcademica, pCarrera, pLegajo, pComision, NULL) INTO iStatus,vcMsg;
En la version 2.7 el control lo hace directamente dentro del mismo sp_i_inscCursadas. No vi nada raro en el control de cupo y el sp no lo tenemos personalizado.
en todo caso ponele un trace al procedure y fijate que sale.
vos estas seguro que estás ejecutando ese procedure?
el cupo de la comision estaba correctamente cargado?
O sea, ahi está el control que decis que no funciona. Porque no funciona no lo puedo saber, te puedo dar ideas o plantear dudas para que las evalues.
Emilio
Hola Emilio, ahi me arme una base de pruebas para poder modificar los stores tranquilo. ¿Me podrias orientar un poco con el trace porque nunca lo use?
Gracias.
Pablo.
Hola
Al principio del código (normalmente luego del BEGIN)
set debug file to ‘c:\inscripciones.txt’;
trace on;
al final (antes del END)
trace off;
invocas al procedure (o sea inscribis alguien a cursar) y te dejará en ‘c:\inscripciones.txt’ todo lo que hizo.
Emilio
Hola Emilio, ahi lo modifique y ya obtuve la salida cuando inscribí un alumno. Yo no veo nada raro en la parte del cupo. Te adjunto el archivo a ver si ves algo raro.
Pablo.
inscripciones.txt (11.6 KB)
esa comision tenía cupo disponible?
se modificó la cantidad de inscripciones?
Hola Emilio. encontre algo raro,
-en la tabla sga_comisiones hay cupo para 50.
-en la tabla sga_comisionescupo dice cupo 50 y cant_inscrip 43
Que pudo haber pasado?
fijate en las tablas de log, la tempralidad de los hechos.
parece que pusieron el control de cupo cuando ya tenian 50 inscriptos.
o se cambió el cupo. o se cambio de version con la inscripcion en marcha.
Emilio
Hola Emilio, ya detectamos que fue lo que paso. Nosotros actualizamos la versión de Guarani a 2.7 a mediados de Enero, y esta comisión de verano ya habia alcanzado su cupo en diciembre pasado. Se ve que al actualizar libero el limite de cupo o lo reseteo y asi se les sumaron a los 50, 43 inscripciones nuevas totalizando 93.
Costo pero encontramos el error.
Muchas gracias nuevamente.
Saludos.
Pablo.
Hola Emilio, retomo nuevamente este tema porque nos encontramos en la inscripción a comisiones del primer cuatrimestre de Economicas con el problema del tope.
A diferencia del problema anterior, todas las comisiones fueron creadas posterior a la actualizacion de version a 2.7.
Estuvimos revisando todas las tablas involucradas y paso con varias comisiones que en la tabla sga_insc_cursadas hay mas inscriptos que los topes que dicen las tablas sga_comisiones y sga_comisionescupo.
Obviamente el problema lo hace durante la inscripción masiva de alumnos por la web y ahora no lo podemos reproducir, de hecho probamos y controla bien.
¿Existe la posibilidad que en algún momento el sitio web debido a la demanda se desactualice el UPDATE del tope de cant_inscripciones frente a los INSERT de la tabla sga_insc_cursadas?
Saludos.
Pablo.
Hola
Sinceramente no se. Habrá que esperar que contesten los que conocen de informix a ese nivel
A priori diría que si puede darse. Si largas 50 inscripciones concurrentes sobre la misma base podría darse.
Emilio
Es raro que suceda eso porque tanto el UPDATE sobre la tabla de cupos de la comision como la inscripcion a la comision se realiza todo en una misma transaccion, con lo cual si fallara el update no deberia generarse el insert de la inscripción.
En esas comisiones que sucedio eso, podes ver la fecha de inscripcion de esas inscripciones, las ultimas se dan en el mismo momento?
¿Que diferencias hay entre el dato de cant_inscripciones de la tabla de cupos con cantidad de inscripciones reales en esas comisiones?
¿El dato de cupo de la tabla de cupos tiene el mismo valor que el mismo campo en la tabla de comisiones?
Hola Alejandro, la verdad que es muy raro y creemos que ocurre en los momentos de alta concurrencia en las inscripciones web. En todos los casos detectados se alcanzo la capacidad y eso lo controla la transacción, lo que ocurrió es que se dejo de actualizar el campo cant_inscripciones de la tabla sga_comisionescupo.
Un ejemplo
sga_comisionescupo: capacidad:50 y cant_inscripciones:50
sga_comisiones: capacidad:50
sga_insc_cursadas: 78 inscripciones
log_insc_cursadas: Insert 90 y Delete 12
Te mando un archivo excel con el ejemplo citado y el detalle de las inscripciones.
Saludos.
Pablo.
Capacidad y cant_inscripciones.rar (7.25 KB)
Podes ver el parametro del control de cupo si esta habilitado?
Porque en la version 2.7, ese campo de cantidad de inscriptos de la tabla de cupos (sga_comisionescupo.cant_inscriptos) solo se actualiza si se controla el cupo)
¿Puede ser que en algun momento cambiaron el valor de ese parametro para que no se controle mas el cupo, podes verificarlo ?
select * from log_param_sistema where parametro = 'insc_cursada_controla_cupo_comision' and oper = 'U' order by logid