Installer packages for GE manufacturing tools: - BlueSSOFix: Blue SSO authentication fix - HIDCardPrinter: HID card printer setup - HPOfflineInstaller: HP printer offline installer - MappedDrive: Network drive mapping - PrinterInstaller: General printer installer - ShopfloorConnect: Shopfloor connectivity tool - XeroxOfflineInstaller: Xerox printer offline installer 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
10 KiB
Windows Service Validation in ShopfloorConnect Installer
Date: 2025-10-10 Feature: Automated Windows Service Registration Verification
Overview
The ShopfloorConnect installer now includes comprehensive validation to ensure the Windows service SFCMTCService is properly registered during installation.
What Service Gets Installed?
Service Details
| Property | Value |
|---|---|
| Service Name | SFCMTCService |
| Display Name | Shop Floor Connect MTC Service |
| Description | Machine Tool Client Service for Teamcenter integration |
| Executable | C:\ShopFloorConnect\FIT-MI_Server\Tomcat 5.0\bin\SFCMTCService.exe |
| Startup Type | Delayed Automatic |
| Account | Local System (default) |
| Dependencies | None |
Service Architecture
The service is based on Apache Tomcat 5.0 wrapped as a Windows service:
- Uses
tomcat8_64.exeservice wrapper (renamed toSFCMTCService.exe) - Hosts the MTC web application (
wut.war) - Communicates with Teamcenter PLM server (10.233.113.141)
- Listens on local ports:
- HTTP: 8090
- HTTPS: 8493
- Shutdown: 8006
How Service Registration Works
Installation Chain
ShopfloorConnect.iss
│
└─► Step 2: install.bat
│
├─► Sets TCFITDIR environment variable
│
└─► Calls: Java + Apache Ant + ant_install.xml
│
├─► Extracts mi_server.jar
├─► Copies Tomcat files to FIT-MI_Server/
├─► Renames tomcat8_64.exe → SFCMTCService.exe
├─► Creates setenv.bat with paths
│
└─► Executes: SFC_MTC_Tomcat_service.bat install SFCMTCService delayed
│
└─► Registers Windows Service using Tomcat wrapper
✓ Service: SFCMTCService
✓ Startup: Delayed Automatic
✓ Status: Stopped (installed but not started)
Key Files Involved
| File | Purpose |
|---|---|
install.bat |
Detects TCFITDIR, calls Ant build |
ant_install.xml |
Apache Ant build script (588 lines) |
mi_server.jar |
Contains Tomcat server and web app |
tomcat8_64.exe |
Apache Tomcat service wrapper |
SFC_MTC_Tomcat_service.bat |
Service registration script |
mi_server.ini |
MTC configuration (created by Ant) |
Validation Checks in Installer
The installer performs three validation checks after running install.bat:
Check 1: FIT-MI_Server Folder Exists
if not DirExists('C:\ShopFloorConnect\FIT-MI_Server') then
begin
MsgBox('Installation Error: FIT-MI_Server folder not created!');
Exit;
end;
What it validates:
- The Ant build script successfully extracted and copied files
- The folder structure was created
Typical failure reasons:
- TCFITDIR not set before running install.bat
- Java runtime not found
- Disk write permissions issue
Check 2: Windows Service Registered
// Query the service using sc.exe
if not Exec('cmd.exe', '/c sc query SFCMTCService', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
begin
MsgBox('Warning: Unable to query Windows service!');
Exit;
end;
// Check if service exists
if ResultCode <> 0 then
begin
MsgBox('Service Registration Failed!');
Exit;
end;
What it validates:
- Windows service
SFCMTCServiceis registered in Service Control Manager - Service is queryable via
sc.exe
Typical failure reasons:
- SFC_MTC_Tomcat_service.bat failed to execute
- Insufficient admin privileges
- Service wrapper executable missing
- Service name conflict (service already exists with different config)
Return Codes:
0= Service exists and is queryable ✓1060= Service does not exist (ERROR_SERVICE_DOES_NOT_EXIST)5= Access denied (not admin)
Check 3: Configuration File Created
if not FileExists('C:\ShopFloorConnect\FIT-MI_Server\webapps\wut\WEB-INF\conf\mi_server.ini') then
begin
MsgBox('Configuration Error: mi_server.ini not found!');
Exit;
end;
What it validates:
- The Ant script completed successfully
- Configuration file was created from template
- Web application structure is intact
Typical failure reasons:
- Ant build interrupted or failed
- Template file missing in mi_server.jar
- Web app deployment failed
Service Commands
Query Service Status
sc query SFCMTCService
Sample Output (Stopped):
SERVICE_NAME: SFCMTCService
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Sample Output (Running):
SERVICE_NAME: SFCMTCService
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Start Service
sc start SFCMTCService
or
net start SFCMTCService
Stop Service
sc stop SFCMTCService
or
net stop SFCMTCService
Delete Service (Uninstall)
sc delete SFCMTCService
or
cd C:\ShopFloorConnect\FIT-MI_Server\Tomcat 5.0\bin
SFC_MTC_Tomcat_service.bat remove
View Service Configuration
sc qc SFCMTCService
Manual Service Registration
If the installer fails to register the service, you can do it manually:
Method 1: Using Batch File (Recommended)
cd C:\ShopFloorConnect\FIT-MI_Server\Tomcat 5.0\bin
SFC_MTC_Tomcat_service.bat install SFCMTCService delayed
Method 2: Using Service Wrapper Directly
cd C:\ShopFloorConnect\FIT-MI_Server\Tomcat 5.0\bin
SFCMTCService.exe //IS//SFCMTCService --DisplayName="Shop Floor Connect MTC Service" --Startup=delayed
Verify Registration
sc query SFCMTCService
Should return service information (not error 1060).
Troubleshooting Service Issues
Service Shows "Error 1060" (Not Found)
Cause: Service was not registered
Solutions:
- Check installer error messages for clues
- Manually register using batch file (see above)
- Verify service executable exists:
dir "C:\ShopFloorConnect\FIT-MI_Server\Tomcat 5.0\bin\SFCMTCService.exe"
Service Won't Start (Error 1053)
Cause: Service failed to start within timeout period
Solutions:
-
Check TCFITDIR environment variable is set:
echo %TCFITDIR%Should output:
C:\ShopFloorConnect -
Verify Java runtime exists:
"C:\ShopFloorConnect\Java\j2sdk\jre\bin\java.exe" -version -
Check Windows Event Viewer:
- Windows Logs → Application
- Look for errors from "SFCMTCService" or "Apache Tomcat"
-
Check service logs:
C:\ShopFloorConnect\FIT-MI_Server\Tomcat 5.0\logs\
Service Installed but Not Visible in Services GUI
Cause: Services console needs refresh
Solution:
- Close Services console (services.msc)
- Reopen it
- Or use
sc query SFCMTCServicefrom command line
Service Starts but Immediately Stops
Cause: Configuration error or port conflict
Solutions:
-
Check if ports are already in use:
netstat -ano | findstr ":8090" netstat -ano | findstr ":8493" -
Verify
mi_server.iniconfiguration:notepad "C:\ShopFloorConnect\FIT-MI_Server\webapps\wut\WEB-INF\conf\mi_server.ini" -
Check Tomcat configuration:
notepad "C:\ShopFloorConnect\FIT-MI_Server\Tomcat 5.0\conf\server.xml"
Service Startup Process
When the service starts:
- Windows Service Manager launches
SFCMTCService.exe - Service Wrapper reads configuration from registry
- Wrapper sets environment variables from
setenv.bat:TCFITDIR=C:\ShopFloorConnectJAVA_HOME=C:\ShopFloorConnect\Java\j2sdk
- Wrapper launches Java process with Tomcat
- Tomcat starts and deploys
wut.warweb application - MTC Application reads
mi_server.iniconfiguration - MTC connects to Teamcenter server at 10.233.113.141
- Service reports "Running" status to Service Control Manager
Total startup time: ~30-60 seconds (delayed start adds additional delay)
Registry Locations
Service configuration is stored in Windows Registry:
Service Definition
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SFCMTCService
Service Parameters
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SFCMTCService\Parameters
Key Values:
ImagePath: Path to SFCMTCService.exeDisplayName: "Shop Floor Connect MTC Service"Start: 2 (Automatic - Delayed)Type: 16 (SERVICE_WIN32_OWN_PROCESS)
Comparison: Before vs After Validation
Before (Original Installer)
install.bat runs → [unknown if successful] → Show "Installation Complete!"
❌ No validation ❌ Silent failures ❌ No service verification ❌ User discovers issues later when trying to start service
After (Improved Installer)
install.bat runs → Validate folder → Validate service → Validate config → Success
↓ ↓ ↓
Show error Show error Show error
✓ Comprehensive validation ✓ Early error detection ✓ Specific error messages ✓ Remediation guidance ✓ Only shows success when truly successful
Related Files
| File | Purpose |
|---|---|
ShopfloorConnect.iss |
Main installer script with validation |
IMPROVEMENTS.md |
Full list of installer improvements |
README.md |
User documentation with troubleshooting |
SERVICE_VALIDATION.md |
This file |
Last Updated: 2025-10-10 Version: 1.1 (with service validation)