[Parallel Processing] Add domain as a site property async processes
Question
Forge component by Guilherme Pereira
Application Type
Service

Hello,

My colleagues and I have been trying to make use of this to reduce the amount work our light BPT does. Currently each light BPT uploads three (3) images to an S3 bucket then posts the posts the results of the upload to a centralized repository. We're expecting quite a volume of these images (about 12,000 on average daily) and each image upload process usually takes about 3-5 seconds. We cannot go with using a light BPT for a single image as we have a limit of 20 dedicated threads per front-end, so it will take some time for all those uploads/light BPT processes to complete.

What we've noticed is that when we're using a light BPT, sometimes the MakeAbsoluteURL function returns 127.0.0.1. We've also tried changing it to HTTPRequestHandler's GetRequestDomain, RichWidgets' GetServerName[1], and HTMLRenderer.xif's GetMachineName[2]. Here are the results:

  • GetRequestDomain - sometimes returns 127.0.0.1 or blank
  • GetServerName - sometimes returns 127.0.0.1 or blank
  • GetMachineName - returns the machine name (e.g., E3QXX-ABCDEF), but we're using a custom domain so we're getting an "underlying connection closed" error

With the above, I'd like to ask if we could request to merge into the next release (if there will be any) a site property that, if not empty, will override the MakeAbsoluteURL function call.

[1] https://www.outsystems.com/forums/discussion/18670/getting-absolute-url-in-email/#Post72151 

[2] https://www.outsystems.com/forums/discussion/45262/retrieve-the-name-of-the-environment/ 

mvp_badge
MVP

127.0.0.1 makes sense, lbpt run on localhost

Hi Daniël,

Thank you for the reply. The lbpt being on localhost was a bit of a gotcha on our part but it does make sense in retrospect.

However, the issues we have with http://127.0.0.1 is that:

  • we are enforcing HTTPS for the exposed API; and
  • we're using a custom SSL, which causes an error with the "underlying connection closed"[1] error if trying to call the API through the default Outsystems domain (outsystemsenterprise.com, machine name, IP address)

[1] https://success.outsystems.com/Support/Enterprise_Customers/Troubleshooting/'Could_not_establish_trust_relationship'_in_webservices

Cheers,

Kevin

mvp_badge
MVP

This is what you need to know about LBPT and BPT process execution:

Processes are executed in IIS:

  • Scheduler service is just a proxy for invoking the process
  • Scheduler service only executes processes in the local IIS

Processes are executed through a web service call to a specific endpoint

  • http://127.0.0.1/<modulename>/_Activityhandler.asmx
  • Process handler endpoint only accepts requests coming from 127.0.0.1
Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.