ActiveRecord sobre cargado...

edited agosto 2008 in Dudas/Problemas
Saludos a todos los Kumbieros

Soy nuevo en este espacio, pero en espacio y quisiera solicitar el apoyo en un problema que me esta causando dolores de cabeza.

Y es que en kumbia tenemos un limite a la hora de crear objetos de ActiveRecord, y al sobrepasar este limite la pagina se bloquea y hace un direccionamiento raro que siempre muestra una pagina en blanco.

Esto segun tengo entendido se debe a que la infomación es chacheada, y una ves superado un limite ocurre el problema.

Entiendo el sentido de utilizar esta forma de trabajo, pero me encuentro en una situación donde debo consultar más información de la que me permite el Kumbia.

Entonces... ¿Existe una forma de cambiar o desactivar este limite de objetos de ActiveRecord?

De antemano agradezco su atención y apoyo.

Saludos

Ramiro Vera (México)

Comentarios

  • edited 2:24
    lamentablemente no tenia idea de este error, me gustaría saber cuantos activerecord creastes? haber si me pasa a mi igual.

    saludos.
  • Se me vienen varias preguntas...
    1->de cuantos registros estas hablando?
    2->de que manera tu vuelvas esos registros hacia el cliente (un reporte, etc)?
  • edited 2:24
    lamentablemente no tenia idea de este error, me gustaría saber cuantos activerecord creastes? haber si me pasa a mi igual.

    saludos.

    El numero he notado que es diferente... Supongo es por cantidad de memoria o algo asi... Aun no descubro si existe alguna forma de cambiar este limite.
  • edited 2:24
    Se me vienen varias preguntas...
    1->de cuantos registros estas hablando?
    2->de que manera tu vuelvas esos registros hacia el cliente (un reporte, etc)?

    La primera vez que me paso esto, quise hacer un script para aplicar determinado reglamento a una calificaciones (En un sistema de control escolar) el caso es q para cada alumno necesitaba consultar todas sus calificaciones, obtener el promedio, y en base a esto saber q materias habia reprobado y si esto le provocaba problemas con el reglamento de la escuela.

    El caso es que existen 1400 alumnos, de los cuales cada uno tiene registro de 5 materias, cada materia tiene tres calificaciones a promediar...

    Si intentaba evaluar y aplicar reglamento a todos los alumnos en una sola corrida pasaba este problema... Entonces opte por hacerlo en varios pasos e ir evaluando poco a poco a los alumnos(Algo algo tedioso).

    Otro caso fue cuando quize mostrar un listado de todas las asignaturas que se imparten en la institución, el problema paso y pues esto se soluciono paginando la informacion.

    Y por ultimo caso quiero hacer un formulario de captura de cursos que se impartiran el proximo ciclo escolar, y necesito que en el formulario se muestre una lista desplegable de todos los profesores(200), Una lista de todas las materias(400), y ademas una lista de todas las aulas disponibles(100). Esto me provoca el mismo problema, y pues he llegado a solucion de ir capturando uno a uno los datos... es decir mostrar una lista desplegable a la vez... Haciendo ahora la captura paso a paso...

    Notarás que en todos los casos existe una posible solución, que es realizar las consultas o procesos por pasos y no saturar de informacion la pagina web, esto es una muy buena practica de programacion, pero hay algunos casos en que sería bueno poder controlar esta situacion.

    Mi duda es... Se puede cambiar la capacidad del cache de los ActiveRecord?, si es asi, donde se realiza?

    Saludos
  • Si intentaba evaluar y aplicar reglamento a todos los alumnos en una sola corrida pasaba este problema... Entonces opte por hacerlo en varios pasos e ir evaluando poco a poco a los alumnos(Algo algo tedioso).
    Bueno creo que aqui puedes mandar a evaluar a todos los estudiantes, pero te pregunto es realmente útil que tu mandes a evaluar a 1400 estudiantes y mostrárselo a un usuario? crees que este usuario se detendrá a ver a los 1400 registros? creo que no lo que puedes hacer es mandar a procesar los registros y una vez finalizada la transacción simplemente le dices al usuario que finalizo el proceso y que el usuario consulte al estudiante es una solución ideo nea por lo que te menciono arriba.
    Y por ultimo caso quiero hacer un formulario de captura de cursos que se impartiran el proximo ciclo escolar, y necesito que en el formulario se muestre una lista desplegable de todos los profesores(200), Una lista de todas las materias(400), y ademas una lista de todas las aulas disponibles(100). Esto me provoca el mismo problema, y pues he llegado a solucion de ir capturando uno a uno los datos... es decir mostrar una lista desplegable a la vez... Haciendo ahora la captura paso a paso...
    me gustaria saber que versión de kumbia utilizas?
    son pocos registro esto ultimo que comentas yo utilizo muchos mas y funciona muy bien y todos los vuelvo hacia el cliente de un solo golpe sin paginar ni nada y anda bien

    lo otro que debes hacer es aumentar la memoria del PHP en el php.ini y entonar tu ambiente de desarrollo por la cantidad de registro que manejas, lo otro es que a nivel de BD necesitas hacer ajustes de memoria no todo esta del lado de PHP, es cuestión de poner a tono todo el ambiente de desarrollo y/o producción...
  • edited 2:24
    El limite de memoria esta en el php.ini, no recuerdo exactamente cual, pero debe conseguirse info gracias a san google, es mas conveniente que utilices el paginador y muestres solo 20 alumnos por pagina, asi consumes menos memoria y tiempo de ejecucion del servidor.

    La otra solucion es que utilices directamente el ORM de Kumbia, es decir la clase Db, de esta manera solo consumiras en memoria lo que utilice los array.
Sign In or Register to comment.