IANN FileGPS Windows Installation
This installation guide provides detailed, step-by-step instructions for setting up the IANN (Intelligent Artificial Neural Network) platform and its associated components. The purpose of this guide is to ensure a smooth and error-free installation process, enabling users to quickly configure the environment and start leveraging the system’s capabilities.
IANN (Intelligent Artificial Neural Network) is Pragma Edge’s AI-powered unified platform designed to bring intelligence, automation, and predictive analytics into business operations. It combines file tracking, monitoring, and AI-driven insights to ensure end-to-end visibility, operational efficiency, and proactive issue resolution
IANN plays a key role in driving digital transformation across industries by turning traditional data exchanges into intelligent, insight-driven processes.
IANN is built as a modular system with three primary components:
This installation guide is designed for a wide range of technical users involved in deploying, maintaining, or supporting IANN solutions. The intended audience includes:
This guide serves as a comprehensive manual for deploying and configuring the IANN platform in various environments (Linux, Windows, OpenShift). It covers the following:
Each section includes detailed prerequisites, component-level configuration, and post-deployment validation steps to ensure successful setup and operation of IANN in production and non-production environments.
Pragma Edge’s IANN FileGPS is a robust, end-to-end file monitoring and tracking solution designed to provide organizations with real-time visibility and control over file flows across distributed IT environments. It captures, aggregates, and contextualizes file-related events—enriching them with business context to enhance operational transparency and support informed decision-making.
Beyond traditional monitoring, IANN FileGPS empowers business users to define and manage SLAs (Service Level Agreements) that are closely aligned with business outcomes. SLAs can be configured at multiple levels—such as partner, enterprise, business unit, or even individual file or transaction—enabling fine-grained control and ensuring operational accountability.
With its centralized web interface, powerful alerting mechanisms, and audit-ready architecture, IANN FileGPS ensures that business-critical file processes are continuously and reliably monitored. The solution is built with scalability and security in mind, supporting both on-premise and cloud-based deployments to suit diverse enterprise needs.
The IANN FileGPS System provides a comprehensive monitoring and alerting solution for file transfer operations across enterprise systems. It ensures timely delivery, transparency, and accountability of file movement by integrating with various source systems and presenting the data through a centralized server and intuitive user interface.
Below is a breakdown of the end-to-end flow involved in the IANN FileGPS:
· IANN FileGPS Client: The IANN FileGPS Client is responsible for capturing events from diverse enterprise sources such as databases, logging systems, applications, and APIs. Each event is transformed into a standardized, canonical JSON format to ensure consistency across the system. The client then transmits these events securely either via a REST Consumer API over HTTPS to the IANN FileGPS Server or by publishing them to a designated Apache Kafka topic. This flexible transmission mechanism supports both synchronous and asynchronous data flows, enabling real-time or near-real-time event ingestion based on deployment requirements.
· Event Ingestion: The IANN FileGPS Server is designed to reliably ingest and persist event data received from the IANN FileGPS Client. When data is transmitted via the REST Consumer API, the server’s REST consumer component processes the incoming canonical JSON payloads and stores them directly into the underlying database. Alternatively, if Kafka is used for transmission, a dedicated Kafka consumer service on the server continuously reads from the configured topic, processes the event data, and commits it to the database. This dual-ingestion mechanism ensures flexibility and resilience in handling both synchronous and asynchronous event flows across diverse enterprise environments.
· User Access & Web UI: The IANN FileGPS platform provides a secure and intuitive web interface accessible via Single Sign-On (SSO) with SAML 2.0 or through local authentication using JWT-based tokens. The system enforces robust Role-Based Access Control (RBAC) to ensure users have appropriate access based on their roles and responsibilities. Once authenticated, users can leverage powerful features such as real-time file search, interactive dashboards displaying active file events, SLA compliance status, configurable alerts, and comprehensive historical reporting. The platform is designed with enterprise-grade security, supporting session timeouts, token expiry, and full audit logging to meet compliance and governance requirements.
· Alerting & Notifications: The Alerting & Notifications component of the IANN FileGPS platform provides real-time monitoring of critical file and transaction-related events, enabling timely detection and resolution of operational issues. It supports a robust framework of one-time, rule-based alerts, which are evaluated continuously based on system and user-defined conditions and supports multiple alert types—SLA, FLA, FNR, TNR, TRA, and Subscription Alerts—with notifications dispatched via email, the IANN dashboard, and REST API callbacks to external systems like ServiceNow, PagerDuty, Slack, and Microsoft Teams.
· Reporting & Audit Trail: The IANN FileGPS platform provides a robust and extensible Reporting capability that delivers actionable insights into both file and transaction-level activities. It offers a wide range of out-of-the-box reports to track SLA adherence, file lifecycle events, failure patterns, and system performance. Additionally, the platform empowers users to build custom reports by applying business-specific filters, data views, and logic tailored to operational needs. This comprehensive reporting layer enables stakeholders to monitor real-time operations, conduct historical analysis, identify trends, and support audit and compliance initiatives—making it a core enabler of data-driven decision-making within the enterprise.
This guide provides Step-by-Step instructions to install and deploy the IANN FileGPS system on a Windows environment using NSSM (Non-Sucking Service Manager), IBM Java JDK, and Python
Server OS | CPU (Cores) | RAM | Storage | Java | Python | NSSM (Service Manager) |
Windows Server 2019/2022 | 4 Cores | 16 GB | 200 GB | IBM Semeru OpenJDK 17.0.8+7 (LTS) | Python 3.11.4 (or any 3.11+ version) | https://nssm.cc/ (Latest) |
NSSM is a lightweight utility that allows you to run applications (like Java or Python programs) as Windows services. This ensures that your application continues running in the background and can start automatically after system reboots.
Let’s go through the detailed Steps to download, extract, and prepare NSSM for usage.
Launch any browser like Google Chrome, Microsoft Edge, or Firefox on your Windows machine.
2.2 Go to the NSSM Official Website
https://nssm.cc/ |
You’ll be directed to the official NSSM homepage.
2.3 Download the NSSM ZIP File
2.4 Extract the NSSM ZIP File
Extract All… |
2.5 Locate the win64 Folder
├── win32 |
└── win64 |
This version is specifically for 64-bit Windows systems (which most systems today are).
2.6 Copy the Folder Path
The folder path will highlight (e.g., C:\Users\YourName\Downloads\nssm-2.24\win64). |
Right-click → Copy or press Ctrl + C to copy the path.
2.7 Open Command Prompt (cmd)
Type:
Cmd |
Run as administrator |
This is important to ensure you have permission to install services.
A black Command Prompt window will open.
2.8 Navigate to the win64 Folder in cmd
cd <paste your copied path here> |
cd C:\Users\YourName\Downloads\nssm-2.24\win64. |
Press Enter.
You are now inside the NSSM folder using the command line. This prepares you to start installing your services (like the FileGPS UI, Server Jobs, or REST Consumer) using nssm install.
·
You will receive a zip file named similar to:
IANN_FileGPS_x_x_x.zip |
Right-click the ZIP file → Extract All.
After extraction, you will find the following structure:
├── |
├── |
├── |
└── |
Before deploying the FileGPS application, you must encrypt your database (DB) and SMTP passwords for security purposes. The tool used for this is a Java utility named encryptor-1.0.0.jar, which is included in your downloaded and extracted IANN_FileGPS_x_x_x package.
Let’s walk through the encryption process Step by Step.
4.1 Locate the encryptor-1.0.0.jar File
C:\Users\YourName\Downloads\IANN_FileGPS_x_x_x |
encryptor-1.0.0.jar |
This file is used to encrypt plain-text passwords so they can be safely used in configuration files.
4.2 Open Command Prompt in the Same Directory
In File Explorer:
This will open a Command Prompt window directly in that folder, saving you from navigating manually.
4.3 Run the Encryption Command
java -jar encryptor-1.0.0.jar YourPasswordHere |
java -jar encryptor-1.0.0.jar MySmtp@123 |
Encrypted Password: abcXYZ123456789 |
4.4 Encrypt DB and SMTP Passwords Separately
java -jar encryptor-1.0.0.jar MyDbPassword |
java -jar encryptor-1.0.0.jar MySmtpPassword |
4.5 Where to Use the Encrypted Password
After encrypting your passwords, the next Step is to configure the application.yml file located inside the IANN_FileGPS_UI folder. This file contains key settings for the UI module like encrypted database credentials, ports, SMTP settings, etc.
Let’s walk through how to find and open application.yml to update it.
· Press Windows + E to open File Explorer.
· Alternatively, click the File Explorer icon from your taskbar or Start menu.
5.2 Navigate to the IANN FileGPS UI Folder
· Go to the location where you extracted your IANN FileGPS zip.
· Example:
· C:\Users\YourName\Downloads\IANN_FileGPS_x_x_x
Inside that folder, you will find:
Edit |
├── IANN_FileGPS_UI |
├── IANN_FileGPS_Server |
├── IANN_FileGPS_Rest_Consumer |
└── encryptor-1.0.0.jar |
· Double-click on the folder:
IANN_FileGPS_UI |
· Now, inside IANN_FileGPS_UI, you should find the file:
· application.yml
5.3 Open with Notepad (Built-in)
· Right-click on application.yml.
· Choose:
· Open with → Notepad
· Activating the IANN FileGPS License
· To accept the license, update the accept-license parameter in application.yml
· Set the parameter value to true and save application.yml to accept the license.
accept-license: true |
· Encrypting the password in application.yaml
· Set the fgks parameter value to the encrypted password in application.yml.
· example:
fgks: ENC (cKtfzpIvwNdvHP+8QdHYiQ==) |
Update the following values:
· Server port (e.g., 8787) – If port 8787 is already in use by another Application, configure a different available port to avoid conflicts.
· SSL settings:
ssl: |
enabled: true |
key-store:/<install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_UI/ssl/keystore- new.p12 |
key-store-password: MyCustomP@ss123 |
key-store-type: PKCS12 |
Key Store Explanation:
· key-store: Absolute path to your SSL certificate file.
· key-store-password: Provided during certificate creation.
· key-store-type: Usually PKCS12, a format for storing cryptographic keys.
Enable Liquibase for Schema Management:
spring: |
liquibase: |
enabled: true |
Liquibase helps automate DB schema changes. Ensure this is set to true to
apply DB updates automatically.
Database Configuration
· Postgres Example:
spring: |
datasource: |
type: com.zaxxer.hikari.HikariDataSource |
url: jdbc:postgresql://<POSTGRES_HOST>:5432/postgres?=<schema_name> |
username: <postgres_username> |
fgks: ENC (Encrypted_password) |
driver-class-name: org.postgresql.Driver |
hikari: |
connection-timeout: 30000 |
minimum-idle: 10 |
maximum-pool-size: 20 |
idle-timeout: 600000 |
max-lifetime: 1800000 |
|
What to Update:
· <POSTGRES_HOST>: Hostname or IP of the PostgreSQL server
· <schema_name>: The schema you’re connecting to
· <postgres_username>: PostgreSQL user
· <postgres_password>: PostgreSQL user password
· Oracle Example:
spring: |
datasource: |
type: com.zaxxer.hikari.HikariDataSource |
url: jdbc:oracle:thin:@//<ORACLE_HOST>:1521/<service_name> |
username: <oracle_username> |
fgks: ENC (Encrypted_password) |
driver-class-name: oracle.jdbc.OracleDriver |
hikari: |
connection-timeout: 30000 |
minimum-idle: 5 |
maximum-pool-size: 10 |
idle-timeout: 600000 |
max-lifetime: 1800000 |
auto-commit: false |
Update the following placeholders:
· <ORACLE_HOST>: Hostname or IP of the Oracle DB server
· <service_name>: Oracle service name
· <oracle_username> / <oracle_password>: Valid Oracle DB credentials
SMTP Settings for Email Notifications:
mail: |
host: example-us-east-1.amazonaws.com |
port: 509 |
username: smtp-user@example.com |
fgks: ENC (Encrypted_password) |
from: noreply@yourdomain.com |
app-contact-mail: support@yourdomain.com |
mail-signature: FileGPS Support Team |
properties: |
mail: |
smtp: |
auth: true |
starttls: |
enable: true |
ssl: |
trust: “*” |
Ensure correct username, fgks (SMTP Encrypted password), and from address. These settings control notification emails.
Timezone Configuration:
timezone: |
enabled: true |
zoneId: America/Chicago |
All services (UI, server, scheduler, database) should follow the same Zone ID.
5.4 Save and Exit:
· Go to the top-left corner of the Notepad window.
· Click on:
File → Save |
· You can also press the Ctrl + S keyboard shortcut to save directly.
· You will not see any pop-up if the save was successful—it will just quietly save the file.
5.5 Install and Start IANN FileGPS UI as a Windows Service using NSSM
· Once your application.yml file is configured, you can now install the UI component of FileGPS as a background Windows Service using NSSM
· This will allow your UI to run continuously—even after reboots—without manually starting it each time.
· Let’s go through the Steps in detail:
Step 1: Open Command Prompt in NSSM win64 Folder
· Open File Explorer (Windows + E).
· Navigate to the folder where you extracted NSSM (e.g., nssm-2.24).
· Open the win64 folder:
· Click on the address bar at the top of File Explorer, type cmd and press Enter.
· This opens the Command Prompt directly inside the NSSM win64 folder, where the nssm.exe file is located.
Step 2: Run the Install Command
· In the Command Prompt window, type the following:
nssm install IANN_FileGPS_UI |
· Then press Enter.
· A new NSSM Service Installer window will appear.
Step 3: Fill in Service Details in the NSSM Window
· You will now configure 3 main fields:
· Field 1: Path
Click the “…” (three dots) button next to the Path field. |
· Navigate to the Java installation directory (where java.exe is located).
· Example path:
C:\Program Files\Eclipse Foundation\jdk-17.0.8.1\bin\java.exe |
· If you’re unsure of your Java path, check:
C:\Program Files\Java\ or C:\Program Files\Eclipse Foundation\ |
· Select java.exe and click Open.
· Field 2: Startup Directory
Click the “…” next to Startup directory. |
· Navigate to the folder:
IANN_FileGPS_UI |
· Example:
C:\Users\YourName\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_UI |
· Select this folder and click OK.
· Field 3: Arguments
· In the Arguments field, copy and paste the following line:
· For Normal Login Profile, enter the following in the Arguments field:
-Dspring.profiles.active=filegps -jar filegps-api-1.0.0.jar –server.port=8787 –spring.config=application.yml |
· For SAML Login Profile, enter the following:
-Dspring.profiles.active=filesaml -jar filegps-api-1.0.0.jar –server.port=8787 –spring.config=application.yml |
· This tells Java to run your UI app on port 8787, with the filegps Spring profile and your configuration file.
Step 4: Install the Service
· After filling all 3 fields, click the “Install service” button at the bottom of the NSSM window.
· You should see a message like:
Service “IANN_FileGPS_UI” installed successfully!
· This means the service has been created but not yet started.
Step 5: Start the UI Service
· Now let’s start the newly installed service.
· Open Services Manager
· Press Ctrl + Shift + Esc to open Task Manager.
· Click on the “Services” tab.
· At the bottom, click on:
Open Services |
· This opens the Windows Services Manager.
· Find and Start the Service
· Scroll down and look for:
IANN_FileGPS_UI |
· Right-click on it and select:
Start |
· A loading dialog may appear for a few seconds.
· Once it starts successfully, you will see the Status change to:
· Running
Step 6: Check the Logs
· To confirm that the UI is running correctly:
· Go back to the IANN_FileGPS_UI folder.
· Look for a file named:
· file-gps-api.txt
· Double-click to open it in Notepad.
Tomcat started on port(s): 8787 |
Started FileGPSApplication… |
This means your UI is up and running! |
· You should see logs like:
Step 7: Verify the UI in Browser
· Open Google Chrome or any browser.
· In the address bar, type:
https://hostname:8787/ |
· Press Enter.
· If everything is correct, your FileGPS UI login page should appear.
· Make sure the port number (8787) matches the one you gave in the Arguments field earlier.
This section outlines the standardized procedure to deploy the IANN FileGPS server. This is the next Step after completing the UI deployment
Encrypting Password for Secure Configuration for Server and Rest Consumer
This section outlines the standardized procedure to deploy the IANN FileGPS server. This is the next Step after completing the UI deployment
Encrypting Password for Secure Configuration for Server and Rest Consumer
To securely encrypt your password for use in the config.ini:
cd <install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_Server/bin/encrypt/ |
Encrypt.exe |
Enter plaintext to encrypt: password <— #Give your plain text password |
Encrypted text: PaoI6u65rRQiLo0ctAykhWsqMMb7zYyKrz3zOSDCHLE= |
password = <encrypted_password> |
🛈 If authentication is enabled, ensure this encrypted value is used in place of the plain password inside your config file.
· Once the IANN FileGPS release package is extracted, the structure will look like:
├── IANN_FileGPS_UI/ |
├── IANN_FileGPS_Server/ |
├── IANN_FileGPS_Rest_Consumer/ |
└── encryptor-1.0.0.jar |
├── IANN_FileGPS_UI/ |
We now begin the Server setup by navigating into the Server folder.
Step 1: Navigate to the Server Directory
cd <Install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_Server/ |
· Replace <Install_dir> with the actual server path where the zip was extracted (e.g., /opt, /var, etc.). Avoid hardcoding home—this allows flexibility based on server preferences.
Step 2: File Structure Overview
· Inside the Server/ folder, you should see:
IANN_FileGPS_Server/ |
├── bin/ # Core server binaries or executables |
├── config/ # Configuration files (config.ini ,schedulers.sql) |
├── logs/ # Logs generated during server execution |
└── scripts/ # Shell scripts to trigger server jobs |
Step 3: Configuration Setup
· Step 1: Navigate to config folder
config.ini scheduler.sql |
Inside the config folder, you’ll find
· Step 2: Update Essential Fields
· Time Zone Configuration
timezone = America/Chicago |
All services (UI, server, scheduler, database) should follow the same Zone ID.
· Log Path
logs_path = <absolute_path_to_logs> |
· Scheduler SQL Path
[queries] |
path = <full_path_to>/IANN_FileGPS_Server/config/schedulers.sql |
· This tells the system where to pick up job scheduling data from.
· SMTP Settings that are required to send alert and error notifications via email.
smtp_host = smtp.yourdomain.com |
smtp_port = 587 |
from_email = noreply@yourdomain.com |
to_email = admin@yourdomain.com |
email_authentication = true |
username = your_smtp_username |
password = <encrypted_password> |
🛈 If authentication is enabled, the password should be securely encrypted and placed in the password field.
Step 4: Configure Database Connections
· All schema names in the config must match what’s configured in your application (e.g., application.yml).
· Update config.ini with PostgreSQL, Oracle, and their purged database details:
· PostgreSQL (Primary)
[postgres_db] |
host = db-test -1.rds.amazonaws.com |
port = 5432 |
database = < database_name> |
username = < database _username> |
password = <encrypted_password> |
schema = Example_poc |
driver_name = postgresql |
connection_type = cursor |
… |
· PostgreSQL (Purged)
This database is used to archive older data as part of the retention policy process.
[postgres_purged_db] |
host = <host> |
port = 5432 |
database = < database_name> |
purged_schema = test_db |
username = < database _username> |
password = <encrypted_password> |
… |
· Oracle DB (if used)
[oracle_db] |
host = <host> |
port = 1521 |
database = ORCL |
schema = <schema_name> |
username = <username_of_DB> |
password = <encrypted_password> |
… |
· Oracle Purged DB
[oracle_purged_db] |
host = <host> |
port = 1521 |
database = ORCL |
purged_schema = < purged_schema_name> |
username = < username_of_DB > |
password = <encrypted_password> |
… |
· Ensure encrypted credentials and accurate schema names are used.
To save and exit on Notepad
· Go to the top-left corner and click:
· File → Save
· Or simply press Ctrl + S on your keyboard.
· Now click the X button in the top-right corner to close Notepad.
· A default job scheduler setup is provided in schedulers.sql.
Inside the config folder, locate the file:
schedulers.sql |
1. Open the File for Editing Using Notepad
· Right-click on schedulers.sql.
· Select:
· Open with → Notepad
· If installed, right-click and choose:
2. Update Schema Name
· Look for a line in the SQL file that looks like this:
INSERT INTO <schema_name>.petpe_schedulers … |
· Replace <schema_name> with the actual schema name that your database uses.
Example:
INSERT INTO filegps_db.petpe_schedulers … |
3. Save and Close the File
After editing:
In Notepad:
Go to:
· File → Save
· Or press Ctrl + S.
· Then click the X at the top-right to close.
Step 7: Install Server Jobs as Windows Services Using NSSM
The IANN FileGPS Server includes multiple Python/Java-based jobs (like agent_down_alert, SLA, TRA, Retention Policy, etc.).
Each job must be installed as a separate Windows Service so that it can run automatically in the background—even after a system reboot.
We’ll use NSSM (Non-Sucking Service Manager) to install all these jobs one by one.
1. Open NSSM win64 via Command Prompt
C:\Users\YourName\Downloads\nssm-2.24\win64 |
This opens Command Prompt in the win64 folder—ready to run NSSM installation commands.
2. Install Agent Down Alert Job
2.1 Run the Install Command
· In the Command Prompt window, type the following:
· nssm install agent_alert_down
· This opens the NSSM Service Installer popup window.
2.2 Fill in NSSM Fields
· Path:
Click the “…” next to the Path field. |
· Navigate to:
IANN_FileGPS_Server\bin\agent_down_alert\ |
· Select:
agent_down_alert.exe |
· Click Open
· Startup Directory:
Set the same folder:
IANN_FileGPS_Server\bin\agent_down_alert |
· Arguments:
Enter your config.ini path (update based on your folder location):
C:\Users\YourName\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_Server\config\config.ini |
2.3 Install and Start the Service
If successful, the status will show “Running”.
2.4 Check Agent Alert Logs
IANN_FileGPS_Server\logs\ |
agent_down_alert.log |
If the file exists and updates are seen inside, the service is working correctly.
3. Deploy the Remaining Server Jobs
You’ll now repeat the exact same process for each of the following jobs. Each has its own .exe file inside:
IANN_FileGPS_Server\bin\<job_folder>\
3.1 Jobs to Install
Job Name | Executable File | Suggested Service Name | |||
calculate_sla |
|
| |||
calculate_transaction_sla |
|
| |||
encrypt |
|
| |||
events_correlation |
|
| |||
fnr_alert_groups_job |
|
| |||
fnr_alert_job |
|
| |||
ka_si_queue_depth_alert |
|
| |||
mq_queue_depth_alert |
|
| |||
retention_purge |
|
| |||
schedulers_insert |
|
| |||
sla_alert_job |
|
| |||
|
|
| |||
sla_client_group |
|
| |||
subscription_alert |
|
| |||
subscription_alert_group |
|
| |||
tnr_alert |
|
| |||
tnr_alert_group |
|
| |||
|
|
| |||
|
|
| |||
transaction_duration | transaction_duration.exe | transaction_duration_service | |||
update_context | update_context.exe | update_context_service |
3.2 For Each Job:
nssm install <job_name> |
Example:
nssm install sla |
Field | What to Enter |
Path | Navigate to the corresponding .exe in IANN_FileGPS_Server\bin\<job_folder>\ |
Startup Dir | Same folder as the .exe |
Arguments | “C:\Users\YourName\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_Server\config\config.ini” |
IANN_FileGPS_Server\logs\
Final Reminders:
This section outlines the standardized Steps to deploy the IANN FileGPS Rest Consumer Service. It includes all configuration requirements and connection settings for PostgreSQL, Oracle and other databases.
7.1 Deployment Steps for IANN FileGPS Rest Consumer
Step 1: Navigate to the Rest Consumer Directory
· Press Windows + E to open File Explorer.
· Go to the extracted folder location:
C:\Users\<YourName>\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_Rest_Consumer |
· Tip: Replace <YourName> with your Windows username.
Step 2: Verify File Structure
· Run ls to ensure the correct files and folders are present:
· Expected output:
IANN_FileGPS_Rest_Consumer/ |
├ config.ini # Configuration file |
├ rest_consumer # Binary to start the service |
└ logs/ # Directory to store logs |
Step 3: Edit config.ini File in Notepad
This file contains critical configurations like timezone, authentication, database info, etc.
How to Open:
· Inside the IANN_FileGPS_Rest_Consumer folder:
· Locate the file: config.ini
· Right-click on config.ini and select:
· Open with → Notepad
· Required Config Sections
[filegps] |
zoneid = America/Chicago # Set the Zone ID |
· All services (UI, server, scheduler, database) should follow the same Zone ID.
· [authentication]
[authentication] |
auth_type = basic |
username = <your_username> |
password = <your_encrypted_password> |
path = <absolute_path_to_ssl_certificate.pem> |
cert_password = <your_cert_password> |
use_ssl = true |
use_ssl_password = false |
· [logs]
[logs] |
path = <absolute_path_to_logs_directory> |
· Example: /opt/filegps/logs/rest_consumer/
· [rest_consumer_network]
[rest_consumer_network] |
host = 0.0.0.0 |
port = <your_port_number> |
Example: 8086
If port 8086 is already being used by another Application, make sure to configure a different available port.
· [postgres_db]
[postgres_db] |
database = <your_database> |
host = <your_db_host> |
username = <your_db_username> |
password = <your_encrypted_password> |
schema = <schema_used_in_application_config> |
port = 5432 |
driver_name = postgresql |
chunksize = 5000 |
Step_table_name = Step_events_data |
order_table_name = order_events_data |
table_name = queue_depth_alert |
uncorrelated_table_name = uncorrelated_events_data |
connection_type = cursor |
· [oracle_db] (Optional – if Oracle is used)
[oracle_db] |
driver_name = oracle |
host = <your_oracle_host> |
port = 1521 |
database = <your_oracle_service_name> |
username = <your_oracle_username> |
password = <your_encrypted_password> |
schema = <your_oracle_schema> |
connection_type = cursor |
Step_table_name = Step_events_data |
order_table_name = order_events_data |
queue_table_name = queue_depth_data |
table_name = queue_depth_alert |
petpe_all_alerts_table_name = petpe_all_alerts |
Step 4: Save and Exit
In Notepad:
· Go to the menu:
· File → Save
· or press Ctrl + S on your keyboard.
· Then click the X in the top-right corner to close Notepad.
Step 5: Install REST Consumer as a Windows Service (Using NSSM)
· The REST Consumer is a component of IANN FileGPS responsible for handling incoming data and integrating it with configured databases.
· To ensure it runs in the background and automatically restarts after system reboots, we will install it as a Windows Service using NSSM (Non-Sucking Service Manager).
5.1 Open Command Prompt in NSSM’s win64 Directory
Before installing the service, let’s open Command Prompt inside the NSSM directory.
Steps:
· Press Windows + E to open File Explorer.
· Go to:
C:\Users\<YourName>\Downloads\nssm-2.24\win64 |
· Click on the address bar at the top of the window.
· Type:
cmd |
· Press Enter.
A Command Prompt window will open, already set to the win64 directory where nssm.exe is located.
5.2 Install the REST Consumer Service
Now we’ll install the REST Consumer as a Windows Service.
Steps:
· In the Command Prompt (already open in win64), type the following command:
nssm install rest_consumer |
· Press Enter.
This opens the NSSM Service Installer window where we’ll configure the service.
5.3 Configure the NSSM Service Fields
In the NSSM window, fill in the following fields:
1. Path
· Click the “…” button next to the Path field.
· Navigate to the following location:
C:\Users\<YourName>\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_Rest_Consumer |
|
· Select the file:
rest_consumer.exe |
· Click Open.
2. Startup Directory
· Set the Startup directory as:
C:\Users\<YourName>\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_Rest_Consumer |
3. Arguments
· In the Arguments field, enter the path to your config.ini file:
“C:\Users\<YourName>\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_Rest_Consumer\config.ini” |
5.4 Install the Service
· After all fields are filled in correctly, click the Install Service button at the bottom of the NSSM window.
· You’ve now registered REST Consumer as a Windows Service.
5.5 Start the REST Consumer Service
To start the service and verify that it runs:
Steps:
1. Press Ctrl + Shift + Esc to open Task Manager.
2. Click on the Services tab.
3. At the bottom, click on:
Open Services
4. In the Services window, scroll and look for:
rest_consumer
5. Right-click on it → Click Start.
The service should now change its Status to: Running.
5.6 Check the Logs
To confirm that REST Consumer is working:
1. Go to:
C:\Users\<YourName>\Downloads\IANN_FileGPS_x_x_x\IANN_FileGPS_Rest_Consumer\logs\ |
2. Look for newly generated .log files inside the logs folder.
If the log file is being created and updating, the REST Consumer is successfully deployed.
Conclusion of Deployment
By this point, you have successfully:
· Deployed the IANN FileGPS UI using NSSM
· Installed and verified all Server Background Jobs (21+ services)
· Configured and deployed the REST Consumer
· Verified that all services are running and generating logs
This section walks you through installing and configuring the IANN FileGPS Client on Windows Server 2019/2022 using NSSM (Non-Sucking Service Manager). This ensures that the client runs as a background service, starts automatically after reboot, and logs data as expected.
8.1 System and Software Requirements
Server OS | CPU (Cores) | RAM | Storage | Java | Python | NSSM (Service Manager) |
Windows Server 2019/2022 | 4 Cores | 16 GB | 200 GB | IBM Semeru OpenJDK 17.0.8+7 (LTS) | Python 3.11.4 (or any 3.11+ version) | https://nssm.cc/ (Latest) |
8.2 Installation Steps
Step 1: Unzip the Client Package
· Locate the delivered ZIP package: IANN_FileGPS_Client_x_x_x.zip
· Right-click > Select Extract All > Choose a destination (e.g., C:\IANN_FileGPS_Client_x_x_x)
· Navigate into the extracted folder.
· Expected contents:
|
IANN_FileGPS_Client_x_x_x\ |
├── filegps_client.exe |
├── filegps_client_config.ini |
├── logs\ |
8.3 Configuration – filegps_client_config.ini
· Navigate to:
C:\IANN_FileGPS_Client_x_x_x\filegps_client_config.ini |
· Right-click > Open with > Notepad
· Make your necessary updates (do not change the provided SQL and structure).
Input Section
· Set the number of input sources you’re reading data from:
[inputs] |
no_of_inputs = 3 # Set to 3 for the 3 input queries described below |
· Important:
· If no_of_inputs = 3, then [input1], [input2], and [input3] blocks must be present and correctly defined.
· [input1]
[input1] SELECT SEQID, CASE WHEN TYPEOFTRANSFER IS NULL THEN ” ELSE TYPEOFTRANSFER END AS TYPE_OF_TRANSFER, SRCPROTOCOL, DESTPROTOCOL, APPLICATION, SUBSTR(FILEARRIVED , 1, 10) || ‘T’ || REPLACE(SUBSTR(FILEARRIVED , 12, 8), ‘.’, ‘:’) || SUBSTR(FILEARRIVED , 20, 4) || ‘-0500’ AS occurred, FILEARRIVED, CASE WHEN FLOWINOUT IS NULL THEN ” ELSE FLOWINOUT END AS direction, CASE WHEN SRCFILENAME IS NULL THEN ” ELSE SRCFILENAME END AS localfilename, CASE WHEN DESTFILENAME IS NULL THEN ” ELSE DESTFILENAME END AS remotefilename, CASE WHEN PARTNER IS NULL THEN ” ELSE PARTNER END AS clientname, CASE WHEN PARTNER IS NULL THEN ” ELSE PARTNER END AS clientid, CASE WHEN DOCTRANS IS NULL THEN ” ELSE DOCTRANS END AS transaction, ‘PCM/client’ AS nodeid, CASE WHEN ADVERRORSTATUS IS NULL THEN ” ELSE ADVERRORSTATUS END AS errorinfo, CASE WHEN ERRORSTATUS IS NULL THEN ” ELSE ERRORSTATUS END AS errortype, CASE WHEN STATUS IS NULL THEN ” ELSE STATUS END AS STATUS, ‘PCM’ AS appId, ‘Start’ AS msgTxt, CASE WHEN COREBPID IS NULL THEN ” ELSE COREBPID END AS processid, CASE WHEN COREBPID IS NULL THEN ‘EMPTY’ ELSE COREBPID END AS co_relation_id, CASE WHEN SRCARCFILELOC IS NULL THEN ” ELSE SRCARCFILELOC END AS local_arc_file_loc, CASE WHEN DESTARCFILELOC IS NULL THEN ” ELSE DESTARCFILELOC END AS remote_arc_file_loc, CASE WHEN DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) IS NULL THEN ” ELSE DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) END AS error_arc_file_loc, CASE WHEN DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) IS NULL THEN ” ELSE DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) END AS po_number, CASE WHEN GS_CTL IS NULL THEN ” ELSE GS_CTL END AS gs_control_number, CASE WHEN SENDERID IS NULL THEN ” ELSE SENDERID END AS sender_id, CASE WHEN RECIVERID IS NULL THEN ” ELSE RECIVERID END AS receiver_id, CASE WHEN SRC_FILE_SIZE IS NOT NULL THEN SRC_FILE_SIZE ELSE NULL END AS file_size FROM <schema_name>.PETPE_TRANSFERINFO pt WHERE FILEARRIVED > TIMESTAMP ‘sql_last_value’ ORDER BY FILEARRIVED ASC |
· [input2]
[input2] SELECT SEQID, CASE WHEN TYPEOFTRANSFER IS NULL THEN ” ELSE TYPEOFTRANSFER END AS TYPE_OF_TRANSFER, SRCPROTOCOL, DESTPROTOCOL, APPLICATION, SUBSTR(FILEARRIVED , 1, 10) || ‘T’ || REPLACE(SUBSTR(FILEARRIVED , 12, 8), ‘.’, ‘:’) || SUBSTR(FILEARRIVED , 20, 4) || ‘-0500’ AS occurred, FILEARRIVED, CASE WHEN FLOWINOUT IS NULL THEN ” ELSE FLOWINOUT END AS direction, CASE WHEN SRCFILENAME IS NULL THEN ” ELSE SRCFILENAME END AS localfilename, CASE WHEN DESTFILENAME IS NULL THEN ” ELSE DESTFILENAME END AS remotefilename, CASE WHEN PARTNER IS NULL THEN ” ELSE PARTNER END AS clientname, CASE WHEN PARTNER IS NULL THEN ” ELSE PARTNER END AS clientid, CASE WHEN DOCTRANS IS NULL THEN ” ELSE DOCTRANS END AS transaction, ‘client/client’ AS nodeid, CASE WHEN ADVERRORSTATUS IS NULL THEN ” ELSE ADVERRORSTATUS END AS errorinfo, CASE WHEN ERRORSTATUS IS NULL THEN ” ELSE ERRORSTATUS END AS errortype, CASE WHEN STATUS IS NULL THEN ” ELSE STATUS END AS STATUS, ‘PCM’ AS appId, RTRIM(CASE WHEN STATUS = ‘Success’ THEN ‘Stop’ WHEN STATUS = ‘Failed’ THEN ‘Error’ END) AS msgTxt, CASE WHEN COREBPID IS NULL THEN ” ELSE COREBPID END AS processid, CASE WHEN COREBPID IS NULL THEN ‘EMPTY’ ELSE COREBPID END AS co_relation_id, CASE WHEN SRCARCFILELOC IS NULL THEN ” ELSE SRCARCFILELOC END AS local_arc_file_loc, CASE WHEN DESTARCFILELOC IS NULL THEN ” ELSE DESTARCFILELOC END AS remote_arc_file_loc, CASE WHEN DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) IS NULL THEN ” ELSE DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) END AS error_arc_file_loc, CASE WHEN GS_CTL IS NULL THEN ” ELSE GS_CTL END AS gs_control_number, CASE WHEN DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) IS NULL THEN ” ELSE DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) END AS po_number, CASE WHEN SENDERID IS NULL THEN ” ELSE SENDERID END AS sender_id, CASE WHEN RECIVERID IS NULL THEN ” ELSE RECIVERID END AS receiver_id, CASE WHEN STATUS = ‘Success’ THEN DEST_FILE_SIZE WHEN STATUS = ‘Failed’ THEN NULL END AS DEST_FILE_SIZE FROM <schema_name>.PETPE_TRANSFERINFO pt WHERE FILEARRIVED > TIMESTAMP ‘sql_last_value’ ORDER BY FILEARRIVED ASC |
· [input3]
[input3] SELECT BPID AS processid, CASE WHEN RULENAME IS NULL THEN ‘ ‘ ELSE RULENAME END AS RULENAME, CASE WHEN BPNAME IS NULL THEN ‘ ‘ ELSE BPNAME END AS BPNAME, CASE WHEN DETAILS IS NULL THEN ‘ ‘ ELSE DETAILS END AS DETAILS, “SEQUENCE”, ACTIVITY_DT, ACTIVITY_DT AS occurred, CASE WHEN ACTIVITY_BY IS NULL THEN ‘ ‘ ELSE ACTIVITY_BY END AS ACTIVITY_BY, CASE WHEN ACT_NAME IS NULL THEN ‘ ‘ ELSE ACT_NAME END AS ACT_NAME, ‘Step’ AS msgTxt, ‘client/PCM’ AS nodeid FROM <schema_name>.PETPE_TRANSINFOD pt WHERE ACTIVITY_DT IS NOT NULL AND ACTIVITY_DT > TIMESTAMP ‘sql_last_value’ ORDER BY ACTIVITY_DT, “SEQUENCE” ASC |
Output Section
· Define where the data should be pushed after processing:
[outputs] |
no_of_outputs = 1 # Match with the number of defined [outputX] blocks |
· [output1] – API Output (Example)
[output1] output_type = api auth_type = basic_auth api_url = http://<rest_consumer_host>:8086/api/ingest api_username = your_user api_password = your_encrypted_password path = /opt/client_outputs/ file_name = restapi_data timeout = 60 batch_size = 1000 |
Save and Exit in Notepad:
8.4 Install FileGPS Client as a Windows Service Using NSSM
Step 1: Open NSSM win64 in CMD
C:\Users\YourName\Downloads\nssm-2.24\win64 |
Click the address bar, type cmd and press Enter
This opens Command Prompt in the current directory.
Step 2: Run NSSM Install Command
· In the command prompt:
nssm install filegps_client |
Step 3: NSSM Installer Window
Fill in the fields:
C:\IANN_FileGPS_Client_x_x_x\filegps_client.exe |
C:\IANN_FileGPS_Client_x_x_x |
C:\IANN_FileGPS_Client_x_x_x\filegps_client_config.ini |
Click Install Service.
Step 4: Start the Service
Step 5: Check Logs
Navigate to:
C:\IANN_FileGPS_Client_x_x_x\logs\ |
Check for log files to confirm the client is running.
8.5 Stopping the Client Manually (Optional)
To stop the client manually:
tasklist | findstr filegps_client |
taskkill /PID <your_PID> /F |
Or stop it from Services: Right-click filegps_client > Stop
8.6 Restarting the Client with a Clean Start
If the client failed and you want to reload from a specific time:
C:\IANN_FileGPS_Client_x_x_x |
[backup_days] |
days_to_load = <number> |
8.7 Summary