AppURL incorrect when running Multiple WebApps under an ABL

Posted by brianlafertewk on 14-Dec-2017 09:21

I'm an currently testing a migration of classic WebSpeed applications to PASOE using OpenEdge.Web.CompatibilityHandler (using 11.7.2).

I have created a PASOE instance with multiple ABL Applications that are working as expected.  Under one of those ABL Applications I have installed multiple ABL WebApps (based on oeabl.war) , enabled the WEB transport for each and set the default handler as 'OpenEdge.Web.CompatibilityHandler'.  Each classic webspeed application can be accessed using '/App1/web/', '/App2/web/', etc. without issue.

However, I noticed that the 'AppURL' variable (which would normally return '/App1/web/' or '/App2/web/' depending on which app reference was used in the URL) was not accurate.  When accessingd a webspeed program using '/App1/web/test1.w', it returned the correct '/App1/web/' value.  If I next accessed a webspeed program using '/App2/web/test2.w', I would expect '/App2/web/' to be returned as the 'AppURL' value.  But it actually returned '/App1/web/'.  

After adding some debug to 'web-util.p', I found that the internal procedure 'init-session' is called once when the ABL Application agent handles the first OpenEdge.Web.CompatibilityHandler call. 'init-session' sets a number of cfg-* variables that are used in other initialization procedures that are run with each request (init-cgi, init-variables).  All calls to the agent that use 'web-util.p' will then return configuration information for that first request (if '/App1/web/' is the first to use web-util.p, every other WebApp will receive '/App1/web/' as the AppURL value).

Making a change to 'init-cgi' to run 'init-session' (if multi-session-agent() is true) resolves this issue.

If there a configuration setting that I am missing that handles the case of multiple WebApps running the WEB transport under a single ABL Application?  We have other minor changes to apply to web-util.p (to handle some custom headers), so making the change isn't a big deal, but I just want to make sure this is the path I should be going down.

Posted by David Cleary on 30-Mar-2018 15:46

There is now a restriction that you can only have one Compatibility Handler per ABL application. However, you can have multiple ABL applications per PASOE instance.

All Replies

Posted by Irfan on 18-Dec-2017 13:24

This seems like a bug, I shall log one.

Posted by David Cleary on 30-Mar-2018 15:46

There is now a restriction that you can only have one Compatibility Handler per ABL application. However, you can have multiple ABL applications per PASOE instance.

This thread is closed