We are working with PB 5.0.02 Enterprise with anOracle server. The scripts are kept on a Novellserver version 4.x.
We regenerate a PBL, and when we re-edit the object,one or more events will be missing. It onlyhappens once in a long while, but when it does, itreally hurts. We do frequent saves, and eventsthat have previously been saved will also be goneat times.
Of course the best we can do when this happens isto get a day-old tape back-up from the server,small compensation for a day’s work gone.
We are careful to exit the various painters usingthe prescribed exiting tool (door icon).
I have even used tools such as Ultra-Edit to lookinto the PBL after the events are lost, but beforea reboot, and the code really is not there.
We have investigated size of objects, but we don’tthink this is the problem because we have objectsthat are larger than the one that just lost thescripts (events). The entire PBL is less than 1.5 MB.
Any idea why this is happening or, if it should happen again, how to recover lost work?
I have a few suggestions to help you out. I do not have experience usingNovell servers, because my company migrated to NT several years ago, but I dorecall an article in the PowerBuilder newsgroup that described a problemvery similar to the one you are seeing. I have used the Deja News queryservice and retrieved the following reply to a question identical to yours:
On Novell, there are file attributes just like there are on DOS (withsome extensions, of course). One attribute is the share attribute. Tocheck/modify this, do the following:
- Go to a DOS prompt.
- Change directories to the directory where your source code is located.
- Type “FLAG *.PBL” and hit enter. This will give you a list of your PBLs and show you their attributes.
- Type “Flag *.PBL +s” and hit enter. This will add the share attribute to your PBLs (and you will seethem).
Your PBLs are now shareable, and you will avoid the “Save Object Failed” culprit. Remember to do this after you a) create a new PBL and b) Optimize your PBLs (which in effect creates them as new).
The above article was posted by Bill Green.
If your corruption is related to a single object or group ofobjects, you can take a backup copy of the current set of libraries.Restore your old copy from the backup, then use a compare utilitysuch as windiff or PBDelta to compare the objects and highlight thechanges that were made to the object so far today. At least you willhave complete reference of the “good” objects and their changes so youwill only lose some of the day’s work.