Basically, the AVM is a platform for compiling and running ABL code. Often called the OpenEdge runtime or client, the AVM also provides many other services, such as performing syntax checks, running OpenEdge and user-designed tools, and running startup procedures. In Progress Developer Studio for OpenEdge, every OpenEdge project is associated with an AVM.
Note: The AVM process is prowin32.exe for Windows applications and _progres.exe for TTY applications.
Project-specific AVMs
You might want to configure individual AVMs when projects in a workspace do not have the same requirements. You could, for example, create projects with different PROPATH settings by configuring an individual AVM for each project.
Configure project-level AVMs on the properties pages for OpenEdge projects (Project > Properties > Progress OpenEdge).
Shared AVMs
You can configure an AVM that is available to every project within a workspace. If, for example, you are developing an application that is divided into multiple project modules within a single workspace, you might want all the project modules to use an AVM that has the same startup parameters, the same PROPATH, the same database connections and so on. Configuring a shared AVM for all the project modules guarantees that all those settings are the same. In addition, the shared AVM conserves memory and CPU resources.
You configure a shared AVM as a workspace preference (Window > Preferences > Progress OpenEdge > Shared AVM).
Runtime AVMs
By default, when you run an ABL executable in a project, the AVM associated with the project (project-specific or shared) runs the ABL executable. However, you can also create launch configurations that start a new instance of the AVM when you run the file.
Configure separate runtime AVMs when you create launch configurations in your workspace (Run > Run Configurations...).
Note: You cannot use a shared or project-level AVM when you are running in debug mode. You must configure a separate runtime AVM (Run > Debug Configurations...).