To answer the question directly, the oeabl.war file must be deployed for each ABL web application that is deployed.
The oeabl.war file is associated with each ABL web app, NOT necessarily the ABL application at the higher level.
PASOE ABL application structure:
https://docs.progress.com/bundle/pas-for-openedge-introduction/page/PAS-for-OpenEdge-architecture.htmlNotes:
An
ABL Application is a logical name/grouping for one or more
ABL Web applications.
A way to separate your
Web Apps in case they require different PROPATH, DB, event, configs...
The only way to create an
ABL Application is to specify a name when calling the deploy command, and this can't be done without deploying an
ABL Web App.Since
OpenEdge 11.6, the Progress Application Server for OpenEdge (PASOE) supports multiple ABL Applications per PAS instance.
- One PAS instance can have one or more "ABL apps".
- ABL Applications refer to a group of ABL WebApplications
- An ABL application is not created by default when a web application is deployed based on the oeabl.war template.
- The oeabl.war simply provides one or more URL space 'service interface' to an ABL application. The analogy to a classic AppServer is 1 ABL application and the REST adapter web application(s) are the HTTP REST 'service interface' to that ABL application.
- Each ABL Application is required to have a minimum of one web application ( oeabl.war ) that interfaces clients to the Application's business logic.
- The corresponding mapping will be shown in the CATALINA_BASE/conf/openedge.properties file [Appserver] section.
- One "ABL App" can have one or more "ABL webapps", being the oeabl.war discussed below.
Rule 1: ./tcman deploy <dlc>\servers\pasoe\extras\oeabl.war
- When an oeabl.war based web application is deployed without explicitly specifying an ABL application name, the web application is mapped to the default ABL application (example: [oepas1.oeabl]
- When the <web-app-name> for the web application is not used, the name will be the same as the .war file name.
- An ABL application may have any number of web applications mapped to it.
Rule 2: ./tcman deploy <dlc>\servers\pasoe\extras\oeabl.war <ABLAppName>When
an ABL application name is explicitly specified at the same time an
oeabl.war web application is deployed:
$ tcman deploy <dlc>\servers\pasoe\extras\oeabl.war ABLApp1
- A new ABL application will be defined with the application name specified, if it does not exist.
- When the <web-app-name> for the web application is not used, the name will be the same as the .war file name. (Example: applications=oepas1,ABLApp1 )
- The oeabl web application to its list of mapped web application 'service interfaces' (example: [ABLApp1.oeabl] )
- If the ABL application does already exist it will add the oeabl web application to its list of mapped web application 'service interfaces'. (example: [ABLApp1.oeabl] )
When
an ABL application name and Web App name is explicitly specified at the same time an
oeabl.war web application is deployed:
$ tcman deploy -a OEABL2 <dlc>\servers\pasoe\extras\oeabl.war ABLApp1
[AppServer]
applications=oepas1,ABLApp1
[ABLApp1]
webApps=oeabl,OEABL2 // Note oeabl is from deploying without the web app name
[ABLApp1.OEABL2]
When using OEPROP to configure the openedge.properties file, care needs to be taken:
- When explicitly adding an ABL application name to the deploy web application operation. If there's a spelling/typo you can end up with ABL applications you do not expect.
- When specifying a property as a parameter, the appropriate group name must precede the property name. For example considering the above:
$ oeprop +ABLApp1.oeabl.WEB.adapterEnabled=1
$ oeprop +ABLApp1.OEABL2.WEB.adapterEnabled=1