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&amp;#225;s de NEWS/400.
                                        &amp;#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&amp;#225;s de 
NEWS/400.
                                &amp;#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&amp;#225;s de NEWS/400.
                &amp;#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&amp;#225;s de NEWS/400.
&amp;#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

Responder a