on 2015 May 08 5:47 PM
Hi,
Let me brief about my application before ask the question. In our application, we build patch and deploy at client machine. For building patch, we have a library upatch.pbl. This library is only for patch items. whenever we work on defect any released version. We work on object and move it to upatch library.
Once done, we build upatch library using incremental build. Once build is done, we deploy this upatch.pbd at client machine. This update.pbd resides at top in library list so that changed object takes preference in the application. Now the problem is whenever we run the application, we get bad runtime object reference error and application crashes. One workaround, I know is to add reference objects in upatch library and again build the incremental build. We don't know which reference may fail during running the application. We don't get this issue in development mode (running through pbls).
We can not know which reference is failing until we thoroughtly test the whole process. I don't want to increase the size of the upatch pbls (by adding reference objects).
What is the best way to avoid this bad runtime object reference issue. We can't run the full build otherwise we would have to deploy the whole pbds at client machine.
Please help me. I am attaching the error which we get when run the applications.
Please help.
Thanks,
Vipin
469-3058208
Request clarification before answering.
Hi Vipin;
You can get away with a PBD build for one PBL if the objects inside are concrete (working) level components. If the classes in the PBL are ancestors to working level descendants then this WILL create an unstable build.
The reason for this problem is when new or revised instance or shared variables are added or revised. PB then compiles a work area for these variable pools. The ancestor variable pool definition is then genetically passed done to the descendants. However, these descendants must then be recompiled in their respective PBL/PBD's. If not, there then becomes a memory mapping disconnect between the ancestor & descent.
Once that happens, your application will become unstable. The only way around this is to do a full build/compile of all your PBL/PBD's in order to have PB sort out this variable memory mapping issue.
HTH
Regards ... Chris
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Actually, the process you use is one we've used for years to deploy "EBFs" to our customers. We store the update PBD in the database and have it downloaded and installed on the users machine and added to the top of the library path. When we do another update, we update the EBF table with the updated PBD and it replaces the last one. It's worked quite well for us. But you do have to include descendant objects in the PBD. Its not just instance variables, PB descendants also have pointers back to object level functions in their ancestors that are affected when you modify the ancestor. You have to deploy the descendants or else you'll get a mismatch there as well.
| User | Count |
|---|---|
| 9 | |
| 5 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.