1. Nicolas Deviers
  2. PowerBuilder
  3. Friday, 22 November 2024 10:54 AM UTC

Hello everyone, 

I manage and maintain two PB applications A and B, A being quite complex and B a tool to manage accesses to A, linked to several Oracle i9 databases.

They are developped in PB2017R3 #1915, which will soon become obsolete so we are is the process of migration to a newer version.

The migration towards PB2022R3 #3391 went without issue for both softwares, as well as full builds and generation of the exe. Then I deployed them as usual with their libraries, dependencies, ressources and runtime dependencies onto a test environment and executed them. But only B could start, nothing would happen when launching the executable for A, no log created, no error message, and this is prior to any attent to connect with any database.

In doubt, I tried the same with PB2019R3 #2803 which went just as well, except that none of the softwares would execute once deployed onto the test server. 

Nothing changed on the test environment that I'm aware, elder deployments generated with PB2017 still work perfectly for both softwares.

 

Has there been similar issues upon migrating to these versions from PB2017R3, or a specific fix to implement ?

B used the SoapClient library which has been replaced by HTTPClient, and works in PB2017 as well as PB2022. I consulted the doc for migrating but none of the other cases apply.

 

Thanks in advance,

John Fauss Accepted Answer Pending Moderation
  1. Friday, 22 November 2024 14:21 PM UTC
  2. PowerBuilder
  3. # 1

Hi, Nicolas -

Do both of the new versions of apps A and B run correctly when executed from the IDE? If so, then you've got a deployment issue.

In addition to the PB runtime DLL's, make sure the listed prerequisite DLL's, especially the Microsoft Visual C++ runtime DLL's are available. PB 2019 is built on a newer version of Visual Studio than 2017, and PB 2022 uses an even newer version than 2019 does.

If you deploy all of the runtime DLL's in the same folder as the app's exe and pbd's/dll's, then be sure you do NOT also deploy the <appname>.xml file that the PB compiler produces. This file set the path where the app will expect to find the runtime dll's... it is not needed if the runtime dll's are deployed in the same folder as the app(s).

Best regards, John

Comment
  1. Nicolas Deviers
  2. Friday, 22 November 2024 15:13 PM UTC
Hi John,

Indeed both applications work fine on all IDEs.



I included the entirety of the runtime folder on each deployment so there should be no missing PB dependency. You said "listed" prerequisite DLLs, where is this list ?



On the one folder that is working : app B on PB22, the <appname>.xml file is still present and untouched yet the executable still starts. I have tried modifying it to point to the project's location once deployed, or removing it altogether, but it does not change anything for the other executables.



Have a nice day,

Nicolas
  1. Helpful
  1. John Fauss
  2. Friday, 22 November 2024 15:59 PM UTC
In PB Help for 2019 and 2022, search for the topic named "runtime files". HTH
  1. Helpful
There are no comments made yet.
Andreas Mykonios Accepted Answer Pending Moderation
  1. Friday, 22 November 2024 11:32 AM UTC
  2. PowerBuilder
  3. # 2

Hi.

Check the runtimes you are deploying. Also how are they installed in your test machine?

Starting form PowerBuilder 2019 R3, and in later versions, there is a change in PB that affects the way it locates the runtime to use. Are you aware of those changes? Take a look at the following link:

PowerBuilder runtime files - - Application Techniques

Andreas.

Comment
  1. Nicolas Deviers
  2. Friday, 22 November 2024 13:55 PM UTC
Thanks for your awnser.



The runtimes were installed in the machine at the same time as the updates. Both runtime folders are located at C:\Program Files (x86)\Appeon\Common\PowerBuilder and each IDE points to it's own runtime folder in the menu Tools>System Options.



As for the deployment folder, the content of the runtime folders of the same version as the IDE's used to compile it is copy pasted in it to ensure that the executable has all the depedencies it requires, and the exe_name.xml file contains the absolute path of the deployment's location.



But should the runtime dependencies be installed somewhere else in the target server, other than beside the executable ?



Nicolas
  1. Helpful
  1. Chris Pollach @Appeon
  2. Friday, 22 November 2024 15:11 PM UTC
Hi Nicolas;

As of PB 2019 R3 & higher versions / releases ...

1) The PB Runtime(s) should be packaged using the PB Packager utility that then creates an MSI install.

2) The MSI needs to be run on the deployment machine(s) and you should take note of its install location.

3) Only the PB App EXE, PBD's and its related external files should then be copied to the deployment machine(s).

4) The newer PB version compiles will now generate an <AppName>.XML file. This XML file needs to be copied to the deployment machine(s) into the same folder as the App EXE.

5) The <AppName>.XML file should now be edited to make sure that it points to the *same* folder where the PB Runtime was installed as per Step # 2.

HTH

Regards .. Chris\
  1. Helpful
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.