1. Mickey Hillel
  2. PowerBuilder
  3. Sunday, 12 June 2022 09:30 AM UTC

 

Hi all,

I'm trying to deploy the PB2021 runtime files, and I'm having a problem understanding the method.

I created a Runtime Deployment msi file, and picked the components that are relevant to our app.

Copied this to one of our terminals, ran the msi files, but aside from copying the dlls to the appointed directory, nothing happens.

Rebooted the server, still nothing works.

So I ran the "Appeon Powerbuilder Installer" , which installs every possible component on the server, and also does the necessary registry installation, etc.

This works, but then the question is : What's the correct method to install the runtime? 

The Installer installs 701MB of files, while the Deployment MSI is 34.7 MB ...

TIA

Mickey Hillel

 

Mickey Hillel Accepted Answer Pending Moderation
  1. Thursday, 23 June 2022 11:04 AM UTC
  2. PowerBuilder
  3. # 1

Hi Armeen,

 

Yes, it does seem to be a bug.

I found that adding the following node to the registry , the deployment works without the XML :

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Sybase\PowerBuilder Runtime\21.0.0.1509]

 

I took the registry entry from the PB2021 IDE full installment.

This should also be installed with the Deployment MSI.

I'll open a support ticket on that.

Thanks,

Mickey

Comment
  1. Armeen Mazda @Appeon
  2. Thursday, 23 June 2022 13:44 PM UTC
Thanks for sharing this info and opening the support ticket. Please report your findings in the support ticket so our team can investigate. Thanks.
  1. Helpful
There are no comments made yet.
Mickey Hillel Accepted Answer Pending Moderation
  1. Tuesday, 14 June 2022 04:32 AM UTC
  2. PowerBuilder
  3. # 2

Thanks Miguel for your help.

Intersting solution !

Just adding the the system path resolved the issue for us.

Best regards,

Mickey

Comment
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Monday, 13 June 2022 09:28 AM UTC
  2. PowerBuilder
  3. # 3

Mickey,

What we do:

1. We don't run the msi installer, but copy all the runtime files to a specific folder

2. The application's code, as soon as the app starts, adds the folder of 1. to the very beginning of the PATH

3. For 2. to work, we need to have a shortcut on the desktop that has the "Start In" property set to the folder where PBVM.DLL resides.

 

The beauty of it is that

- you don't have to run an MSI,

- you don't have to have more than one copy of the runtime dlls

- you don't need the XML file

- you don't have an installer process where you set the PATH for each user

- the modification of the PATH by code, is only valid for the session in which you application runs. Other running applications are unaffected and there's no 'real' physical modification of the PATH in windows.

regards

Comment
There are no comments made yet.
Mickey Hillel Accepted Answer Pending Moderation
  1. Sunday, 12 June 2022 20:47 PM UTC
  2. PowerBuilder
  3. # 4

Hi again,

I've been thinking.. we have about 15 different apps.. and now each and every one must be configured to use an XML file. And with every patch one will have to make sure that the XML file is in sync. Seems like a giant step backwards for PB developers.

I really think Appeon should reconsider, and make a quick fix on that ASAP (I'm referring to using a default registry value).

I'm sure it was done with the best intentions... But you know how the saying goes.

Thanks all for the quick responses and help.

Mickey

 

Comment
  1. John Fauss
  2. Sunday, 12 June 2022 21:42 PM UTC
Please carefully read through the following documentation that describes the changes that were made to the location of the Runtime DLL's:

https://docs.appeon.com/pb2021/application_techniques/Deploying_Applications_and_Components.html#Deploying

- In particular, the sub-section titled "Selecting a version of PowerBuilder Runtime for the application executable". There are several deployment configuration options available to you, including the Registry.

The simplest option is to include the Runtime files in the same folder as the application exe/pbd's. If this is done, the default XML file created during compilation/build/deploy is not needed.
  1. Helpful 1
  1. Mickey Hillel
  2. Monday, 13 June 2022 05:36 AM UTC
Hi,

1. Including Runtime files in each and every application - not going to happen.

2.Adding registry entries on 10 various terminals - not a good idea.

3. Handling XML files with every app- and having to sync them on every version ... not happy about that.

4. Installing the full deployment using Appeon Powerbuilder Installer (and choosing just the Runtime files) - this includes the registry entries, and all the PB 2021 run without XML. However, it is a large deployment (700MB) , since one can't choose what components are needed. However, all the apps run without any need for registry/xml. I think this will be the preferred option.

5. If the Runtime Packager would also do the registry update, that would be the best option.
  1. Helpful
  1. Mickey Hillel
  2. Monday, 13 June 2022 05:51 AM UTC
Ofcourse, the problem with using theAppeon Powerbuilder Installer ( full deployment ) is having to install PB2021 on every terminal server... which is also not a viable alternative .
  1. Helpful
There are no comments made yet.
Mickey Hillel Accepted Answer Pending Moderation
  1. Sunday, 12 June 2022 18:57 PM UTC
  2. PowerBuilder
  3. # 5

Hi Chris,

Thanks for your help. Finally got it working. 

I presume the xml file is to enable to work with different versions... BUT ... I think it should default to whatever is in the registry.

Just seems a bit superfluous to have to watch out for this file, and make sure that the deployment and the xml file are in sync.

Thanks again.

Mickey

 

Comment
  1. Chris Pollach @Appeon
  2. Sunday, 12 June 2022 19:16 PM UTC
That's awesome news Mickey - super glad that you got it working! :-)
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Sunday, 12 June 2022 13:18 PM UTC
  2. PowerBuilder
  3. # 6

Hi Mickey;

  Sounds like you have the PB Runtime deployed ok via the PB Packager utility's MSI install file.

   The next thing to keep in mind though is the PB App deployment. PB2021 now generates an <AppName>.XML file during the compilation process. You must also deploy this new .XML file with your PB App EXE in the same folder. Then you'll need to edit that .XML file on the deployment machine to change the path so that it points to where you installed the PB Runtime. Once that's done, your App should run ok.

HTH

Regards ..  Chris 

Comment
  1. Mickey Hillel
  2. Wednesday, 22 June 2022 12:01 PM UTC
Hi All,



I'm back on this issue, unfortunately, it's not resolved.



I thought that by adding the runtime to the system path, it resolved the issue. For some reason, it worked on one terminal server, but on others it doesn't.

So I'm back to square #1.



I prefer not to use the XML file, or the various techniques described by others, such as adding to the registry file manually, or having the app add to the system path , are not going to work for us.



In the Application Techniques, it is written as follows:



The MSI file is a compressed file that can be executed directly on any Windows platform. It registers any self-registering DLLs, adds the installation destination path to the Windows Registry, sets the system PATH environment variable, and adds information to the Registry for the Install/Uninstall page in the Windows Control Panel.



So it sets the PATH variable, but something is missing. I checked running ProcessMonitor, it doesn't find the PBVM.DLL (even when the system path has the runtime path). This is only resolved by adding the XML with the application.



From Application techniques, it is written as follows:

If you do not want to use the configuration file, make sure to remove it, then the application will search for the runtime DLLs in the following sequence:

1. the runtime version used during the application compilation

2. the best matching version recorded in the system registry (normally the latest compatible version; and the application will not look for a version older than the one used for compilation)

3. the runtime path listed in the PATH environment variable



Environment variable

The location of PowerBuilder Runtime is no longer listed in the environment variable starting from version 2019 R3; instead it is recorded in the system registry by default. But you can add the location to the PATH environment variable by yourself.



By the sounds of it, the XML file is NOT compulsory , and the SYSTEM path should work. But it's not.



Any ideas?

TIA,

Mickey
  1. Helpful
  1. Armeen Mazda @Appeon
  2. Wednesday, 22 June 2022 15:18 PM UTC
Hi Mickey, No, the XML is not compulsory if you follow the other options. Please open a support ticket because doesn't seem to be your mistake: https://www.appeon.com/standardsupport/newbug
  1. Helpful
There are no comments made yet.
Mickey Hillel Accepted Answer Pending Moderation
  1. Sunday, 12 June 2022 11:22 AM UTC
  2. PowerBuilder
  3. # 7

Hi Miguel,

 

We develop locally, and then we deploy to numerous terminals. The server and the terminal are the same, I'm referring to the terminal that I'm trying to create a runtime environment so our app can run.

Our application is deployed manually, just the exe and it's pbds. No XML files are created.

TIA

Mickey

Comment
  1. Miguel Leeuwe
  2. Sunday, 12 June 2022 14:38 PM UTC
See Chris' answer, he's telling you the exact same thing about the xml file.

Apart from that, you can also make sure that your runtime files are in the PATH.

regards.
  1. Helpful 1
  1. Mickey Hillel
  2. Monday, 13 June 2022 09:13 AM UTC
I understood that PB uses the registry path, but if the SYSTEM PATH works, then that's fine.
  1. Helpful
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Sunday, 12 June 2022 11:14 AM UTC
  2. PowerBuilder
  3. # 8

Hi Mickey,

Please describe your setup: You speak of Terminals and a Server. Are they the same?

There should be an xml file in the directory where your application's EXE is. It should point to where the Runtime has been installed. See if that needs to be modified.

regards.

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.