For MICROS Retail OSCAR POS, unexpected offline condition depends in most cases on firewall settings, timeout settings, no. of connected clients and network traffic between clients and server.
If there is no traffic between client and server, but the server is still online (which is a normal case since the client normally establishes connections immediately after startup), both – client and server – send so called ping requests to each other and are waiting for the corresponding response. If the response does not arrive, they declare each other as offline.
If there is a firewall between both system units, it might happen that the normal communication can be made due to firewall rules that e.g. allow access to the server via port 6100 – 6103. Nevertheless, in such a configuration, ping requests can’t pass the firewall because for these requests different ports will be used.
The port used by ping client is normally a random port (on Windows normally a port between 1000 and 5000). During connect, client and server send their own ping server ports to each other to allow the other side to ping the own ping server. However, if the ports between 1000 and 5000 are blocked by the firewall, pings won’t succeed.
Nevertheless, it is possible to solve this situation by one of three ways:
For auto-start process units, you can set PORTBASEUNITn entries in oscar.ini of
the corresponding system unit. For login clients, you can use
PORTBASEUSER_name entries in the Oscar.ini files on all system units the
corresponding user may signon to Oscar. For other
process units (normally the demons), you can use PORTBASEUNASSIGNED in
Oscar.ini.
For details please read the documentations MICROS Retail OSCAR POS Networking Environment Variables.
You can find out which ports are free with the command "netstat an",
but you should keep in mind that ports between 1000 and 5000 may not be used
because each of these ports can just been used by other processes during
startup of Oscar. In the nearer past, port numbers around 54000 have been found
to be free for MICROS Retail OSCAR POS in most cases, so - for example – following
values may be useful in Oscar.ini for a specific configuration:
For example:
A system unit S0 with process units 1 (a client), 2 (device server), 8 (server) and 9 (demon), S1 with process unit 11 (client), 12 (another client), 18 (backup server) and 19 (demon).
A system unit S2 with process unit 21 (client) and 29 (demon).
Additionally there are two login clients, one for user user John Doe, the other for Jane Doe.
Ports 54000 -54100 are free on all 3 computers. Furthermore,
cash register clients use direct communication between each other for special
functions like locking / unlocking tickets.
For the example above, the following
entries should exist in the corresponding Oscar.ini files and in the process
unit configuration:
On S0:
Oscar.ini:
PORTBASEUNIT1=54001
PORTBASEUNIT2=54020
PORTBASEUNIT8=54040
PORTBASEUSER_john.doe=54061
PORTBASEUSER_jane.doe=54062
Process unit configuration:
Process unit 1, Fixed
port number: 54000
On S1:
Oscar.ini:
PORTBASEUNIT11=54002
PORTBASEUNIT12=54021
PORTBASEUNIT18=54040
PORTBASEUSER_john.doe=54061
PORTBASEUSER_jane.doe=54062
Process unit configuration:
Process unit 11, Fixed port number: 54001
Process unit
12, Fixed port number: 54020
On S2:
Oscar.ini:
PORTBASEUNIT21=54003
PORTBASEUSER_john.doe=54061
PORTBASEUSER_jane.doe=54062
Process unit configuration:
Process unit 21, Fixed port number: 54003
After starting Oscar e.g. on S0, you find in the output of netstat -an that several UDP ports between 54000 and 54040 are used, e.g. 54001 – 54020. The last used port depends on some program-internal settings and might be fixed or configurable. However, it is sure that the ping server port is always one of the first 4 of these ports.
Depending on whether outgoing and incoming or only incoming ports will be blocked by the firewall, it is necessary to define exceptions in the firewall for all these ports or at least for the first 4 ports.
Recommendation: