🔎 Identify an Engine from a Windows Process
When multiple GermainUX Engines run on the same Windows server, Task Manager may not display the complete Java command line. This can make it difficult to determine which Windows process belongs to a specific Engine.
Use one of the following methods to display the process ID and complete command line.
⚙️ PowerShell method
Open PowerShell and run:
Get-CimInstance Win32_Process |
Where-Object {
$_.Name -match "java" -and
$_.CommandLine -match "germain.engine"
} |
Select-Object ProcessId, Name, CommandLine |
Format-List
Look for the following JVM property:
-Dgermain.engine=<engine-name>
Example:
ProcessId : 6248
Name : java.exe
CommandLine: java ... -Dgermain.engine=standalone ...
In this example:
Engine name: standalone
Process ID: 6248
💻 WMIC method
On Windows versions where WMIC is available, open Command Prompt and run:
wmic process get Name,ProcessId,CommandLine /format:table > file.txt
Open:
file.txt
Search for:
germain.engine
The Java command line should contain:
-Dgermain.engine=<engine-name>
WMIC has been removed from some recent Windows versions. Use the PowerShell method when the command is unavailable.
🔗 Match the process to GermainUX
After identifying the Engine name:
|
Step |
Action |
|---|---|
|
Sign in |
Sign in to the GermainUX Workspace. |
|
Open settings |
Open GermainUX Workspace → Left Menu → Settings → Germain -> State. |
|
Select view |
Select the Engines view. |
|
Search |
Search for the Engine name. |
|
Confirm |
Confirm its node, status, assigned components, and process information. |
This verifies that the Windows process corresponds to the expected Engine.
👥 Display all GermainUX Java processes
To include the Engine Manager and other GermainUX Java processes:
Get-CimInstance Win32_Process |
Where-Object {
$_.Name -match "java" -and
$_.CommandLine -match "germain|apm-engine"
} |
Select-Object ProcessId, ParentProcessId, Name, CommandLine |
Format-List
The Engine Manager normally contains a reference to:
apm-engine-manager.jar
An individual Engine normally contains:
-Dgermain.engine=<engine-name>
📊 Check resource utilization
After identifying the process ID:
Get-Process -Id <process-id> |
Select-Object Id, ProcessName, CPU, WorkingSet64, StartTime
Example:
Get-Process -Id 6248 |
Select-Object Id, ProcessName, CPU, WorkingSet64, StartTime
This helps associate high CPU or memory usage with the correct Engine.
Before stopping a process
Do not terminate a Java process until you have confirmed:
|
Check |
|---|
|
Its Engine name |
|
Its node and host |
|
Its assigned monitoring or automation components |
|
Whether another Engine depends on the same Engine Manager |
|
The operational impact of stopping it |
Whenever possible, stop or restart the Engine through Germain > State or the Engine Manager instead of terminating the Windows process directly.
A forced process termination can interrupt monitoring, automation, or local state updates.
🔧 Troubleshooting
❗ No matching processes are returned
Confirm that:
|
Check |
|---|
|
The Engine is running. |
|
PowerShell was opened with sufficient permissions. |
|
The Java process command line contains |
|
The Engine runs under another Windows account or session. |
|
The Engine is deployed as a container rather than a Windows process. |
⛔ The command line is blank
Windows may restrict access to process command lines. Run PowerShell as an administrator and retry.
🔁 Multiple processes use the same Engine name
Check for:
|
Possible cause |
|---|
|
Duplicate Engine services |
|
A previous Engine process that did not stop |
|
Multiple installations using the same configuration |
|
Incorrect node or Engine naming |
Review EngineManager.log before terminating either process.
Component: Engine
Feature Availability: 2024.1