SYSPRO 8 e.net Communications Load Balancer
Exploring
Based on Windows Communication Foundation, this service exposes the SYSPRO64.DLL library to internal and external applications that need to interact with SYSPRO (e.g. SYSPRO Espresso, Predictive Search, third party developer applications, etc). Data is retrieved from the SYSPRO database using the open e.net architecture, without compromising data integrity.
This service replaces the SYSPRO e.net WCF Service (originally developed to replace SYSPRO Web Services and DCOM) and provides for load balancing functionality as well as being fault-tolerant (e.g. if a channel fails, a new thread is initiated automatically to prevent the whole service from failing).
This service is used by SYSPRO 8 and any external or third party e.net application accessing SYSPRO data.
Although you can continue running the older SYSPRO e.net WCF Service alongside the new SYSPRO 8 Communications Service, you will have to configure a different communication port.
This service is used by:
- SYSPRO 8
- SYSPRO Avanti
- SYSPRO Server-side Reporting
- SYSPRO Web-based Product Configurator
- Executive Dashboard
- SYSPRO Workflow Services
- SYSPRO e.net Diagnostics
- SYSPRO Point of Sale
- SYSPRO Harmony
- SYSPRO Espresso
- SYSPRO Machine Learning
- Any external or third party e.net application accessing SYSPRO data
-
The default location for this service is:
Program Files > SYSPRO > SYSPRO 8 e.net Communications Load Balancer
Starting
This service must be installed on the same application server as the SYSPRO 8 Server.
-
Microsoft .NET Framework 4.6
-
SYSPRO 8 Service Upgrade Manager
-
SYSPRO 8 Server
-
This service is installed using the SYSPRO Installer.
Solving
You can debug this service by editing the associated config file in elevated mode (i.e. with administrator privileges).
The SYSPRO.8.enet.Communications.exe.config file is located in the folder to which you installed the service.
You can view monitoring and troubleshooting messages about this service using the Event Viewer function in Windows:
(Control Panel > System and Security Administrative Tools > Event Viewer > Applications and Service Logs)
This service outputs an event log to the SYSPROECS file.
You can start, stop, restart and configure this service using the Services function in Windows:
(Control Panel > System and Security Administrative Tools > Services)
Referencing
You should only edit this file for debugging purposes.
Don't use this as a method to update values for the service. This is because a wizard installation updates the system registry, which is what is read when using the service. A fresh installation overwrites these values, which may cause problems when you next run the service.
Key | Description |
---|---|
baseaddress |
This is the template base address at which all endpoints are hosted. |
portNetTcp | This is the port at which the net.tcp binding is hosted. |
portBasicHttp | This is the port at which the basic binding is hosted. |
portWsHttp |
This is the port at which the WS binding is hosted. |
portRestHttp | This is the port at which the REST binding is hosted. |
portNetPipe | This is the name of the named pipe endpoint. |
InstanceContextMode |
This value indicates when new service objects are created. It specifies the number of service instances available for handling calls that are contained in incoming messages. |
ConcurrencyMode |
This indicates whether a service supports one thread, multiple threads, or re-entrant calls. It specifies whether a service class supports single-threaded or multi-threaded modes of operation. |
AddressFilterMode |
This is used by the dispatcher to route incoming messages to the correct endpoint. It specifies the type of match semantics used by the dispatcher to route incoming messages to the correct endpoint. |
backhaulPingTimeout | |
workerPingTimeout |
This is an integer specifying milliseconds. This controls locked worker detection. The value specifies how long to wait for a response from the SYSPRO runtime. If a ping response exceeds this time, the worker is considered locked and marked for termination. |
workerPingInterval |
This is an integer that lets the supervisor test the worker every x calls and determine if the worker is healthy on every pool re-balance.
|
minWorkers |
This is an integer that specifies the minimum number of worker processes. Zero workers will cause all calls to execute internally, with no redundancy. |
schedulerInterval |
This is an integer specifying seconds that specifies how often the scheduler checks the recycling thresholds. Recycling is a cooperative process, and workers will only be recycled when they fault or have no jobs in progress. Setting this too low will reduce performance. |
schedulingAlgorithm |
This determines how the scheduler chooses a worker.
|
recyclingTimes | This is a comma separated list (hh:mm) and defines fixed times at which workers are recycled. |
recyclingInterval | This is a single value (hh:mm) and defines a fixed interval at which workers are recycled. |
recyclingRequests |
This is an integer that recycles a worker after it has served a certain number of requests. |
recyclingPagedMemory, recyclingVirtualMemory, recyclingWorkingSet |
This recycles a worker if the memory usage goes over this threshold (n{B|KB|MB|GB}) Although all these settings are available, only the working set value is close to what Windows exposes in the Task Manager. The other values may be useful in certain cases, but are harder to monitor. |
recyclingWatchFolders |
This is a pipe-delimited list of folders that recycles workers when a folder is modified. |
Copyright © 2021 SYSPRO PTY Ltd.