Prepare to move from Classic AppServer to PAS for OpenEdge
- Last Updated: February 9, 2026
- 7 minute read
- OpenEdge
- Version 12.8
- Documentation
Prepare to move from Classic AppServer to PAS for OpenEdge
Complete the following steps to setup the server and adjust its properties to support your application code:
- Install OpenEdge products.
- Create a PAS for OpenEdge instance.
- Generate an oemerge file using the paspropconv utility.
- Move the setenv script to the instance-name/bin directory.
- Review and update the oemerge
file:
- Update PROPATH entries in the oemerge file (where required).
- Update database connections in the oemerge file (where required).
- Merge the changes using the oeprop utility.
1. Install OpenEdge products
OpenEdge offers development and production licenses for PAS for OpenEdge. For staging a production configuration, install the production license which implements stronger security and limits external management of your server instances.
If you are less familiar with the OpenEdge installation process, see Install OpenEdge
For more information about the differences between development and production instances of PAS for OpenEdge, see About development and production instances.
2. Create a PAS for OpenEdge instance
After installing OpenEdge, use pasman
create to create an instance for testing. This instance acts as the staging area for deploying your existing application to a
production instance before you move to a live environment. While Windows commands
are generally shown here, UNIX has equivalent commands that produce similar results.
Notes are included where helpful.
- Open the Proenv application using the Windows start menu, or by
locating it at $DLC/bin/proenv.sh. Proenv
sets the environment variables and paths for running OpenEdge commands.Note: $DLC is a UNIX-style environment variable syntax for the directory of your Progress installation. On Windows, use %DLC% to go to the Progress installation directory.
- Change to the OpenEdge working directory ($WRKDIR or %WRKDIR%), which is where your new instance is created and
related files and logs are stored. In this example, the directory is called
WRK:
proenv>cd %WRKDIR% proenv>cd C:\OpenEdge\WRK - Run the
pasman createcommand to create a named instance called myProdInstance:
In this example, the following options are specified:pasman.{sh|bat} create -v -p 8817 -P 8818 -m myAdmin:myPwd -Z prod myProdInstance-v—Specifies verbose console output.-p—TCP port that listens for HTTP messages. This example uses 8817.-P—TCP port that listens for HTTPS messages. This example uses 8818.-m uid:pwd—Username and password combination that replaces the defaulttomcat:tomcatused by Apache Tomcat. The example usesmyAdmin:myPwdfor demonstration purposes only.-Z—Identifies security model of the instance. The example usesprodto lock the server with production server security settings. This option disables development accounts and transports by default.instance_pathname—Specifies the absolute path to the directory where instance is created and the instance name. The example usesmyProdInstance. If no path is specified, the instance is created in the current directory. In this example, the instance is created in the current and recommended directory, WRK, because no path is specified.
Note: Thepasmancommand manages and configures PAS instances using a variety of actions. Thecreateaction creates a new instance from a template. It takes several mandatory and optional options. For more information about PASMAN options, typepasman help createin the Proenv window, or view Use PASMAN to create an instance. - Run
pasman testto confirm that the ProtocolHandlers initialize on the port you provided.
Thepasman.{sh|bat} test -I myProdInstancepasman testcommand displays the PAS for OpenEdge environment variables and confirms that the server can initialize.
3. Create an oemerge file using the paspropconv utility
Your existing ubroker.properties must be converted to the new openedge.properties format used by PAS for OpenEdge. To complete this step, you can use the ubroker.properties file that supports your classic AppServer application, or the ubroker.properties file included with the exercise files which supports an example classic AppServer application.
OpenEdge provides a migration tool called paspropconv in the $DLC/bin directory of the OpenEdge installation. The paspropconv utility creates a temporary file of changes called ubrokername.oemerge that must be reviewed before merging with the openedge.properties file of the new instance.
- Ensure that you have access to a ubroker.properties file for your classic AppServer application.
For the purposes of this tutorial, move the ubroker.properties file and the contents of the classicAppServerCode directory to the working
directory using Proenv. For example:
move C:\Downloads\classicAppServerCode %WRKDIR% - Change to the instance-name/conf directory to
run the conversion tool in a location where the configuration files are stored.
For example:
cd %WRKDIR%\myProdInstance\conf - Run the paspropconv utility which takes an existing ubroker.properties file as input and creates a
merge file with converted properties and recommendations for your new server.
This tool is written in Perl and uses double hyphens (--) to run properly. For
this example, the classicAppServerCode
directory contains existing files from a classic AppServer
application:
Where:paspropconv --ubrokerPropsFile C:\OpenEdge\WRK\classicAppServerCode\ubroker.properties --ubrokerName UBroker.AS.app_customername_prod --pasoeAppName myProdInstance--ubrokerPropsFilePath to the existing classic AppServer ubroker.properties file. --ubrokerNameFully qualified name of the broker whose properties you are converting. In this example, UBroker.AS.app_customername_prod.--pasoeAppNameName of the new instance. In this example, myProdInstance.The paspropconv utility generates the following files to the current directory (instance-name/conf):- myProdInstance.app_customername_prod.oemerge—The merge file for PAS for OpenEdge.
- app_customername_prod_setenv.bat—The environment file for Windows.
- app_customername_prod_setenv.sh—The environment file for UNIX.
- paspropconv.log—The log file for the property conversion.
4. Move the setenv script to the instance-name/bin directory
The paspropconv utility generates four files. Move thesetenv environment variable file to the
/bin directory of your PAS for OpenEdge
instance.- From the directory where you ran the paspropconv utility (for
example, instance-name/conf), move the environment variable
file for your operating system into the instance-name/bin directory. For
example:
(Windows OS) >move app_customername_prod_setenv.bat ../bin (UNIX OS) >mv app_customername_prod_setenv.sh ../bin
5. Review and update the oemerge file
Review the instance-name.uBrokerName.oemerge file, which is named after the uBrokerName you specified for the conversion. Read each
section in the file carefully to understand the changes that will be made to your
openedge.properties file.
oemerge file, and adjust your environment
accordingly. The uncommented properties at the bottom of the oemerge file are the properties that will be merged
into the openedge.properties file for your new
instance. Review and update the uncommented properties based on your server
configuration. Pay particular attention to the PROPATH entries and the database
connections.
5a. Update PROPATH entries in the oemerge file (where required)
Confirm or update the PROPATH entries to point to any additional or shared code locations. Some subdirectories in your PROPATH may point to your old server. Update these entries to point to the locations on your new server, or ensure you have access to the old file locations and they are specified on your PROPATH. In this sample, you will update the PROPATH to point to the location of event procedures on the PAS for OpenEdge instance.
- The sample myProdInstance.app_customername_prod.oemerge file indicates that
the following startup procedures are required:
sessionShutdownProc=session_shutdown.p sessionStartupProc=session_startup.p - If your classic AppServer configuration used a directory called
events to store the startup and
shutdown procedures, then copy that directory to your new server. For
example:
(Windows OS) proenv>Xcopy /I %WRKDIR%\classicAppServerCode\events %WRKDIR%\myProdInstance\openedge\events (UNIX OS) proenv>cp -avr $WRKDIR/classicAppServerCode/events $WRKDIR/myProdInstance/openedge/events - Reference the location of your new events directory in the PROPATH section of your oemerge file, or ensure your new server still
has access to the old directory location. For example, append the following
entry to your PROPATH in the [AppServer.Agent.app_name] portion of your oemerge
file:
[AppServer.Agent.myProdInstance] PROPATH=${CATALINA_BASE}/openedge,${CATALINA_BASE}/openedge/events, [...]Note: The events directory is one entry in a list of many in the PROPATH. Keep the rest of the entries the same, or change them if you have additional locations for your code.Note: PAS for OpenEdge does not support accessing the Windows registry. Use environment or Java system variables.
5b. Update database connections in the oemerge file (where required)
You can reference your existing classic AppServer application database by updating your .pf file that connects to the database, or by updating the database connection string directly in your oemerge file under the agentStartupParam property. In this example, you will copy the default OpenEdge database to the working directory and connect to that database using a .pf file.
- If your existing classic AppServer application uses parameter
files (.pf) to connect to a database or
initialize other values, then confirm that those files are available to the new
server, or change them to point to the correct file location in the agentStartupParam property in [AppServer.SessMgr.app_name]. For
example:
[AppServer.SessMgr.myProdInstance] agentLogEntryTypes=ASPlumbing,DB.Connects agentStartupParam=-T "C:\OpenEdge\WRK\myProdInstance/temp" -pf C:\OpenEdge\WRK\classicAppServerCode\databases.pfNote:The contents of the .pf file should specify the database connection string. For example:
-db C:\OpenEdge\WRK\database\sports2020.db -H localhostTo configure a new database connection using the sample database provided with the OpenEdge installation, follow these steps:- In your work directory, create a directory called
database using Proenv. For
example:
cd %WRKDIR% mkdir database - Run the
procopycommand to copy the sports2020 database from the$DLCdirectory to the$WRKDIR:procopy %DLC%\sports2020.db %WRKDIR%\database\sports2020.dbNote: Sports2020 is the sample OpenEdge database shipped with OpenEdge 12. - (Optional) Edit the oemerge file to use the Sports2020 database on agent
startup:
[AppServer.SessMgr.myProdInstance] agentStartupParam=-T "${catalina.base}/temp" -db C:\OpenEdge\WRK\database\sports2020Note: In the previous example, the databases.pf file points to the same location as the direct database connection string in the agentStartupParam property. You can keep the agentStartupParam assigned to the databases.pf file if it contains the correct path to your database.
- In your work directory, create a directory called
database using Proenv. For
example:
6. Merge the changes using the oeprop utility
After generating the oemerge file using the paspropconv utility and tailoring the file to suit your environment, you can merge the properties with the openedge.properties file for your PAS for OpenEdge instance using the oeprop utility.
- Go to the /bin directory
of your PAS for OpenEdge instance. For example:
cd %WRKDIR%\myProdInstance\bin - To apply the changes from your oemerge file, use the oeprop utility to merge the converted
properties into the openedge.properties
file for your new server. For example:
oeprop.{sh|bat} -f ..\conf\myProdInstance.app_customername_prod.oemergeNote: For more information about the oeprop utility, typeoeprop -helpin the Proenv window, or see OEPROP. - Verify the changes were merged by reviewing the openedge.properties file in the instance-name/conf directory. The following properties
(among others) were updated if you used the tutorial files:
[myProdInstance.ROOT.APSV] adapterEnabled=1 [AppServer.SessMgr.myProdInstance] agentStartupParam=-T "${catalina.base}/temp" pf C:\OpenEdge\WRK\classicAppServerCode\databases.pf [AppServer.Agent.myProdInstance] PROPATH=${CATALINA_BASE}/openedge,${CATALINA_BASE}/openedge/events,${CATALINA_BASE}/webapps/ROOT/WEB-INF/openedge,[. . .] sessionShutdownProc=session_shutdown.p sessionStartupProc=session_startup.p