1. Lawrence Anderson
  2. PowerBuilder
  3. Wednesday, 25 September 2019 14:55 PM UTC

In Powerbuilder 2017 R3 Build 1858, I am attempting to create a small executable that parses a json API result and then both populates a database and writes image files to the local file system of the server. I will be running it as a scheduled job so I have built it entirely out of NVOs. Everything is fully built out in the Powerbuilder IDE and I am able to deploy a Pcode 64-bit exe and it runs fine on my machine from the exe even when moved to another folder.

Moving the exe to the server it will run the executable up until I try to initialize the httpclient. Nothing further happens and an error isn't thrown. The following is the beginning of the of_getreport function of my n_importer NVO:

integer li_rc , li_inactive_rows, li_count
long ll_id, ll_userid,ll_row,ll_root,ll_index,ll_child,ll_count, ll_data
string ls_string,ls_result,ls_body,ls_title , ls_image, ls_filename
blob lb_image
String ls_get_url
String ls_response_text, ls_status_text
string ls_race, ls_age, ls_arrest_date, ls_charges
long ll_status_code
boolean lb_fileDeleted

integer s_iCount, s_lLineNum
MessageBox('of_getreport()', 'primitves set')

datastore lds_population_inactive

OleObject loo_xmlhttp
MessageBox('of_getreport()', 'Objects set')


MessageBox('httpclient', is_reportUrl)
try
  MessageBox('of_getreport()', 'httpclient http ')
  httpclient http
  MessageBox('of_getreport()', 'http = create httpclient ')
  http = create httpclient
  MessageBox('of_getreport()', 'sendrequest')
  li_rc = http.sendrequest( 'GET',is_reportUrl + is_credentials)

  MessageBox('li_rc', li_rc)
  MessageBox('http.GetResponseStatusCode()', http.GetResponseStatusCode())
  if li_rc = 1 and http.GetResponseStatusCode() = 200 then
    http.GetResponseBody(ls_string)
  end if
  MessageBox('of_getreport()', ' JSONParser json ')
  JSONParser json
  json = create JSONParser
  ls_result = json.loadstring( ls_string )
  ll_root = json.getrootitem( )

catch (runtimeerror er)
  MessageBox("Runtime Error", er.GetMessage())
end try

Based on the messages, it seems the line " http = create httpclient " is the last executed. I added the message boxes after finding the application wasn't working on the server.

Accepted Answer
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 25 September 2019 17:39 PM UTC
  2. PowerBuilder
  3. # Permalink

Hi Lawrence;

  If it works on your development PC then a likely issue is missing run-time DLL(s).

  Did you deploy the PB run-time by using the "PB Packager" utility to build an MSI? Then run that MSI install on your deployment machine(s)?

Regards ... Chris

Comment
  1. John Fauss
  2. Wednesday, 25 September 2019 18:23 PM UTC
Could this issue be caused because you're running the app on a non-supported operating system?

Windows Server 2016 is the latest server OS listed as compatible with PB 2017 R3.
  1. Helpful
  1. Chris Pollach @Appeon
  2. Wednesday, 25 September 2019 18:38 PM UTC
Did you make sure that the 64bit run-time MSI was built & deployed?



Also, I see that you are on Windows Server 2019 which is not yet officially supported. That might also be a related issue to your problem (total guess at this point). Do you have a W2016 server instance that you could test this on?
  1. Helpful
  1. Lawrence Anderson
  2. Wednesday, 25 September 2019 21:10 PM UTC
Thanks, I will try to test it on Windows Server 2016.
  1. Helpful
There are no comments made yet.


There are replies in this question but you are not allowed to view the replies from this question.