Hola ;-) Menos mal que en otra máquina también sucede lo mismo. Estos ejemplos y secuencia de ejecución ya la he reportado a IBM para que la examinen. Esta situación me confirma que el sistema está haciendo algo raro con la opción de reutilizar registros suprimidos que no funciona exactamente igual que en V5R3. El error de mi programa de producción es la punta del iceberg. Está solucionado haciendo CHGPF ... SIZE(*NOMAX) ya que es un archivo temporal que se genera en la QTEMP y se destruye. ¿Por qué estaba creado con 50 registros sin ampliación? No lo sé. Lo que me preocupa de verdad son aquellos archivos, muchos de ellos son puentes hacia ficheros históricos, que leen y eliminan registros uno a uno. Estos nunca se reorganizan ni borran, simepre están en uso. Por estos archivos pasan diariamente cientos de miles de registros, y sería una p*t*d* que crecieran y creciaran con millones de registros elinimnados y no reutilizados. Gracias por tu ayuda. Si tienes alguna noticia más te agradecería que la compartieras. Cuando reciba una contestación del CAS la publicaré en el foro. Un saludo,
Javier Mora ________________________________ De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de alex martinez Enviado el: jueves, 28 de junio de 2007 14:28 Para: forum.help400 Asunto: Re: Reutilizar registros borrados y V5R4 Se comporta igual en mi sistema: da error en el mismo punto, pero, creo que he dado con la solución al problema: Haz un CHGPF FILE(F50V5R4) FRCRATIO(5) Estoy buscando una explicación técnica, pero todavía no la tengo.... El día 28/06/07, Javier Mora <[EMAIL PROTECTED]> escribió: Hola Alex (y a todos los demás): Sigo con este asunto relacionado con la reutilización de registros. He probado el programa que me propones en mi nuevo y flamante System i 525. Inicialmente y de forma muy gratificante comprobé que me funcionaba. Pero he descubierto una secuencia en el que falla. Alex, necesito un pequeño favor, que consiste en probar la secuencia que te propongo en tu sistema y me digas si se producen los mismos errores que en el mio. ¿Es posible? He construido un programa que simula las operaciones que realmente hace el de producción. Es este: ff50v5r4 uf a e k disk d clave s like(codigo) d x s like(codigo) d i s like(codigo) /free for i=1 to 11; for x=1 to 5; codigo=x; datos='REGISTRO NUMERO ' + %editc(x : '3'); write rf50v5r4; endfor; for x=1 to 5; chain x f50v5r4; if %found( f50v5r4 ) ; delete rf50v5r4; endif; endfor; endfor; *inlr = *on; /end-free Como puedes ver crea y borra grupo de registros. No hace falta más explicación. Esta es la secuencia de pasos que provocan o no el dichoso error: 1. CLRPFM F50V5R4 2. CALL R50V5R4 No falla el programa y se quedan 50 registros suprimidos y cero totales. 3. CALL R50V5R42 -> este es mi programa No falla la ejecución del programa. La ejecución repetida de los pasos (2) y (3) se puede hacer tantas veces se quiera sin generar error alguno. 4. CLRPFM F50V5R4 5. CALL R50V5R42 Aquí ya se produce el error y el programa falla. 6. CALL R50V5R4 Este, que no fallaba en el punto (2), ahor sí que produce errores. Si repetimos otra vez la secuencia desde (1) a (6) se produce otra vez el mismo comportamiento. Creo que el problema está en el mandato CLRPFM. ¿Serías tan amable de comprobar si este comportamiento se reproduce en tu máquina? Un saludo y muchas gracias por tu interés. Si tienes alguna duda, contacta conmigo. Javier Mora Dialsur ________________________________ De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de alex martinez Enviado el: martes, 26 de junio de 2007 10:37 Para: forum.help400 Asunto: Re: Reutilizar registros borrados y V5R4 Hola de nuevo: Te adjunto el código que he probado, que yo no le veo problemas. Pruebálo y nos cuentas.... Yo tengo un nivel más bajo de HIPER. Fichero F50V5R4, creado con SIZE(50) y REUSEDLT(*YES) A UNIQUE A R RF50V5R4 A CODIGO 4S 0 A DATOS 50 A K CODIGO y el programa R50V5R4 ff50v5r4 uf a e k disk d clave s like(codigo) d x s like(codigo) /free for x=1 to 50; codigo=x; datos='REGISTRO NUMERO ' + %editc(x : '3'); write rf50v5r4; endfor; for x=1 to 50; chain x f50v5r4; if %found( f50v5r4 ) ; delete rf50v5r4; endif; endfor; *inlr = *on; /end-free El día 26/06/07, Javier Mora <[EMAIL PROTECTED] > escribió: Hola Alex: 1) El problema no son los 50 registros migrados. He destruido el objeto y vuelto a crearlo. He hecho "mil perrerías". Ni siquiera con RGZPFM. Realmente, el problema que tengo es el hecho de no reutilizar los registros suprimidos. 2) Pedí la semana pasada las HIPER y me las mandaron con nivel 45. 3) Sí, daré el aviso al CAS. Me parece muy extraño todo esto. 4) No he visto ningún error adicional en las joblog. Puedo intentar ejecutar el mandato STROBJCVN. Un saludo, Javier Mora ________________________________ De: [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED] En nombre de alex martinez Enviado el: lunes, 25 de junio de 2007 19:53 Para: forum.help400 Asunto: Re: Reutilizar registros borrados y V5R4 Hola. Quizás el problema son esos 50 registros suprimidos migrados desde V5R3. ¿has probado con un RGZPFM para acomodar el fichero a la nueva V5R4 ? He visto que el ultimo nivel de HIPER están en el nivel 47. Si piensas que es problema de del OS/400 llama al CAS de IBM. ¿Hay algun error mas en el joblog ? Recuerdo que era recomensable realizar un STROBJCVN para que el sistema realizara una conversion de estructuras internas de los *FILE, pero no sé si está relacionado. Salu2 El día 25/06/07, Javier Mora <[EMAIL PROTECTED] > escribió: Hola a todos de nuevo (estoy hoy muy pesado): El problema que planteo ahora si que es grave. Estoy preparándome para cambiar a una nueva máquina con una nueva versión de S.O. (la V5R4). Parto de una máquina con V5R3. Estoy probando procesos críticos para evitar sorpresas el día que la ponga en producción. Tengo instaladas las últimas PTFs acumulativas (07107) y las últimas de grupo para HIPER (45), base de datos (11), etc. Hasta aquí todo bien. Ahora viene lo bueno. Por regla general todos los ficheros de mi base de datos tienen activa la opción de reutilizar registros borrados (REUSEDLT(*YES)). Puede que no sea muy eficiente, pero así lo tenemos. También tenemos puestos que el tamaño sea *NOMAX (SIZE(*NOMAX)). Sin embargo, tengo algunos ficheros temporales (por despiste o no) que tienen un tamaño de 50 registros sin incrementos pero reutilizando registros. Hasta ahora ha sido suficiente. Nunca los programas que lo utilizaban fallaron. Con este entorno me dispongo a probar un programa vital: la facturación por ejemplo. Ah, ¡sorpresa! Error de ejecución con el id CPF5018: El miembro XXXXXX ha alcanzado el tamaño máximo. No se permiten incrementos. Parece que no es grave, pero si lo es. Este error me ayuda a descubrir que el sistema no está reutilizando registros, ya que el miembro está vacío pero con 50 registros borrados. Es decir, en principio se pueden reutilizar los cincuenta. Lo curioso del asunto es: - si un programa en RPG emitie una operación WRITE sobre este fichero, en este estado (50 borrados y 0 registros) se produce el error anterior. - si intento añadir un registro por DFU, ¡si me deja! - en cambio, si lo intento con un CPYF, ¡no me deja! Entiendo que esto es un problema de PTFs. Consulto en la Web de IBM: APARS, PSP, Cover letters; no encuentro nada relacionado con el tema. Realmente el problema es el siguiente: existen ciertos archivos en mi base de datos que están utilizándose 24x7x365; en el que se borran e insertan registros continuamente; contienen millones de registros; y no me puedo permitir un RGZPFM. Si el sistema no reutiliza estos registros, me puedo encontrar con un problema de ocupación. Termino. ¿Alguien en V5R4 se ha encontrado con este problema? ¿Cómo lo ha resuelto? No quiero, a estas alturas, ponerme a modificar programas que están funcionando perfectamente en V5R3, y son muchos. Un saludo y gracias por vuestra comprensión. Javier Mora Dpto. Informática E-mail: mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> Web: http://www.dialsur.es <http://www.dialsur.es> __________________________________________________ Forum.HELP400 es un servicio m&#225;s de NEWS/400. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400 -- Mi blog sobre as400 http://www.ajut400.com __________________________________________________ Forum.HELP400 es un servicio m&#225;s de NEWS/400. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400 -- Mi blog sobre as400 http://www.ajut400.com __________________________________________________ Forum.HELP400 es un servicio m&#225;s de NEWS/400. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400 -- Mi blog sobre as400 http://www.ajut400.com
__________________________________________________ Forum.HELP400 es un servicio m&#225;s de NEWS/400. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400