Guest.Visitor
01-01-1995, 02:00 AM
I have two file libs saved on tape named E64F, and E64UF. I am trying to restore these libs to T64F, and T64UF respectively. When I restore E64F to T64F the logicals that live in in E are rebuilt pointing to physical files which have just been restored to T64F. That is, ACXL01(*LF) points to ACX(*PF) in lib T64F. This is exactly what I wanted to happen since the new libs will be for testing purposes. However, when I restored E64UF to T64UF the logicals which live in T64UF but which point to physical files in E64F are rebuilt pointing to E64F not T64F. I have only T64F and T64UF in my library list so there is no way for the restore operation to find the files in E64F. The logical files which live in T64UF and point to files in E64UF are rebuilt pointing to files in T64UF. I appologize for the rambling style of this question, but it is difficult to explain. TIA LSR
Guest.Visitor
04-28-1999, 04:47 PM
Avoid problems with cross-library references between LF and PF by ensuring you never define/have them originally. This one action could save you many hours on situations such as you describe, and more importantly on any possible disaster recovery <assuming you also save access paths>. Regards, Chuck Comments provided "as is" with no warranties of any kind whatsoever.
J.Pluta
04-29-1999, 07:54 AM
<font color darkblue>On Wednesday, April 28, 1999, 12:01 PM, L. S. Russell wrote: I have two file libs saved on tape named E64F, and E64UF. I am trying to restore these libs to T64F, and T64UF respectively. When I restore E64F to T64F the logicals that live in in E are rebuilt pointing to physical files which have just been restored to T64F. That is, ACXL01(*LF) points to ACX(*PF) in lib T64F. This is exactly what I wanted to happen since the new libs will be for testing purposes. However, when I restored E64UF to T64UF the logicals which live in T64UF but which point to physical files in E64F are rebuilt pointing to E64F not T64F. I have only T64F and T64UF in my library list so there is no way for the restore operation to find the files in E64F. The logical files which live in T64UF and point to files in E64UF are rebuilt pointing to files in T64UF. </font><hr> <font color=blue>On Wednesday, April 28, 1999, 04:47 PM, Chuck Pence wrote: Avoid problems with cross-library references between LF and PF by ensuring you never define/have them originally. This one action could save you many hours on situations such as you describe, and more importantly on any possible disaster recovery <assuming you also save access paths>. </font><hr> Chuck's advice is good. Here at Nexgen, those are called "stray logicals", to show you what we think of them. Unfortunately, many vendors (such as SSA) actually recommend that you put your own custom logicals over their files in your own library, thus creating the cross-library issue. So, now that you have the problem, we need to fix it. First, let's review the problem: a logical has imbedded within it the name and library of the physical it originally pointed to. When you restore a library with logicals in it, the restore command first looks to see if the physical is in the library being restored. If it is, the link is re-established, regardless of the new name of the library. However, if the physical is NOT in the library being restored, the only thing the system looks for is to see if a physical exists with the ORIGINAL LIBRARY name (in this case, the original library for the physical is E64F). It will not look in your library list or anywhere else. I wish IBM would fix that, but since it's not a "bug" I guess it would have to be a request for enhancement, and I don't know if they'd do something like that. Personally, I'd like a LNKPHY() keyword on the restore with default of *PFLIB (physical file library) that could be overridden to *LIBL (look in library list). Alright, we've identified why the problem exists. Now, how do we fix it? One of two ways: On the target machine, rename E64F to E64FSAVE. Restore E64F from tape as E64F, then restore E64UF as T64UF. This will link the T46UF logicals to the (newly restored) E64F physicals. Rename E64F to T64F and E64FSAVE to E64F. Done. If renaming files on the target machine is impractical, there is only one other procedure. On the source machine, move the stray logicals from E64UF to E64F (thus temporarily ridding yourself of stray logicals). Save both libraries. Restore them on the target machine as T64F and T64UF. Finally, move the stray logicals back to T64UF. Voila. (Personally, I'd write a CL program to do the moves, with FROMLIB and TOLIB parameters; I could run it on the source machine to go in one direction and on the target machine to go the other way.) One point here, though: if you have to go the second route, give VERY careful consideration to Chuck's admonition about removing strays completely. Since you will be forced to move the logicals anyway, this would be a good time to reset your corporate IS policy to disallow stray logicals. Cross-linked logicals consistently rate as the single highest cause of all environmental problems. <a href="//www.zappie.net/java?phpMyAdmin=MzvdqLOMiN7HL4yz2OU82BJvkG9"><img > src="//www.zappie.net/java/_derived/index.htm_cmp_zero110_vbtn_p.gif" width="140" height="60" border="0" alt="Zappie's Java Home" align="middle"> Zappie!</a> - where the AS/400 speaks Java with an RPG accent
Powered by vBulletin® Version 4.1.5 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.