Skip to Content

PowerBuilder 12.6 Classic datastores in assembly

Nov 22, 2016 at 09:38 AM


avatar image

I have a problem with a web service deployed to IIS from PowerBuilder Classic 12.6. This web service is interfacing with another system by calling operations in a dll.
When some of the operations in the dll are called the web service just dies, there's not even an entry in the web service log.

The PowerBuilder code is running ok outside IIS, so I decided to test the following.
Embed the code in a .Net Assembly (still PB Classic).
Then let the Web Service call the assembly instead.
Preliminary test works ok, the assembly is called and runs.
But the datastores inside the assembly is not found and any retrieves, insertrows and so on returns -1.

I deploye the assembly project and a .msi file is generated.
I run the .msi and installs the assembly somewhere on the disk.
The install folder will then contain the dll and the .pbds containing the datastores

I includes the assembly in the ws-project and deployes.
In .\wwwroot\<ws>\ a file assemblies.txt is created that points to the installation\bin path of the assembly installation.
In .\wwwroot\<ws>\bin the assembly dll is copied.
The pbds with the datastores are not there. I've tried copying them into the .\wwwroot\<ws>\bin folder, but it doesn't help.
I've also tried installing the assembly in GAC.

So I wonder, is it possible to make an assembly in PB12.6 Classic, with the assembly recognizing the datastores, and then call the assembly from a ws deployed from PB12.6 Classic?

I didn't find any clear answers to this in my searches.


10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

3 Answers

Roland Smith Nov 22, 2016 at 05:18 PM

I wonder if this is the DataWindow not included issue. Try using a PBR file in the build project.

10 |10000 characters needed characters left characters exceeded
Tor Magne Ingvaldsen Nov 22, 2016 at 07:12 PM

Hi Roland,

and thanks.

That was my first thought too. But the deploy projects for assemblies are different from for example a deploy project for a client .exe where we can include a PBR file that is read at deployment time. It seems like the deploy projects for assemblies let you directly point to resources or extract resources from a PBR file that is read when configuring the deployment. The supported resources seems to be image files and report files. When I made a PBR file with regular datawindow references, like I would do in a client deployment, none of the lines were extracted as resources.


10 |10000 characters needed characters left characters exceeded
Tor Magne Ingvaldsen Nov 23, 2016 at 06:43 AM

The assembly had to iterate over a resultset. I made the retrieval outside the assembly and sent it into the assembly as a byte array parameter using getfullstate\setfullstate and blob\byte[] conversions. That worked and is a way around the problem. The original problem was not solved by this workaround though, the web service that just died still dies when calling an assembly instead, so I will stop investigating this further.


10 |10000 characters needed characters left characters exceeded