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

Responder a