Skip to Content
0
Former Member
Jan 30, 2015 at 04:08 PM

PB Component not receiving data from Web Service

19 Views

Hello all;

I am have a PB 11.2 component running on EAServer 5.2 server, which is used to fetch and forward PDF reports to a .jsp webpage on our website. The PB component gets its data from a .NET Web Service, which arrives in the form of two byte arrays. The report generally works; however, from time to time, esp. when the jagsrv.exe is using a lot of memory (but not always) the data never arrives; that is, the NVO which should be populated with the data, does not receive the two byte arrays. In fact, it receives nothing at all.

The Web Service is definitely working correctly; I sniffed the network with WireShark, and discovered that the entire PDF, from the beginning XML tag to the end, is arriving at our EAServer correctly. The question is, why does the PB Component fail to receive the data?

------------ dst_rpt_org_contact_list_dotnet - function of_get_org_contact_list_report -- Code snippet starts ---------------

try

// Create the soap connection object

inv_conn = Create soapconnection

ll_rc = inv_conn.createinstance( inv_reportservice, is_webservice_name, as_url)

if (ll_rc <> 0) then

ls_errors = "Failed to create web service " + is_webservice_name + "."

return -1

end if

inv_cst_return_results = inv_reportservice.getcontactlistreport(al_stakeholder_id, true )

If IsValid (inv_cst_return_results) Then

ll_rc = UpperBound(inv_cst_return_results.ib_pdf1)

ls_error_msg = inv_cst_return_results.is_error_msg

else

ls_errors = "The Web Service's return object inv_cst_return_results was not instantiated. Stakeholder Id was " + String(al_stakeholder_id)

return -1

end if

if ll_rc < 1 then

ls_errors += " The web service " + is_webservice_name + " did not return any array elements. Error msg: " + ls_error_msg

return -1

end if

catch ( SoapException e )

ls_errors = "SoapException - Cannot invoke the web service " + is_webservice_name + "." + e.Text

return -1

catch (PBXRuntimeError e2)

ls_errors = "PBXRuntimeError error when invoking the web service " + is_webservice_name + "." + e2.Text

return -1

catch (RuntimeError e3)

ls_errors = "Unknown runtime error when invoking the web service " + is_webservice_name + "." + e3.Text

return -1

------------ Code snippet ends --------------------------------------------------------------------


inv_cst_return_results is a non-visual object with properties of two byte arrays, ib_pdf1[] and ib_pdf2[], and a string is_error_msg

inv_conn is an instance variable of type soapconnection


The failures are reported by an email which basically says the call to the function failed. None of the error messages inside the function are returned.


I would appreciate any advice that you might be able to offer.


thanks


Marvin Haagsma

Systems Analyst, Alberta Gaming and Liquor Commission

St. Albert, AB

mhaagsma [AT] aglc [dot] ca