Gds (or Gds/2) is the name given to the transaction servers running Fieldpine and other applications. It typically runs silently in the background servicing requests and managing data. If you are using a POS system, then Gds is in the background supplying information and ensuring that sales are sent to head office. If you are working on a browser, iPad or using a mobile App, then you are almost certainly using Gds/2.
Gds/2 is the program inside appliances such as the Store Server
A Gds/2 server is capable of interacting with multiple different retailer databases at one time. This allows you to configure a "live" and "test" environment on the same server rather than installing a seperate copy of Gds/2 for each environment you have.
Information for System Administrators
Technical FAQ for Adminstrators and Analysts.
API and standard functions builtin to each Gds Server
Information for Developers
Configuration file Gds.ctl
In the root of a Gds folder is a file called Gds.ctl and Gds_sample.ctl. The Gds.ctl file is used to specify how Gds/2 should operate. This file is read by each cooperating agent program during startup.
The Gds/2 configuration file contains a number of sections seperated by a row of dashes (---------). Lines starting with a semi-colon (;) are treated as comments
system priority=low hardware=pc watchdog=yes flow=yes ------------------------------------- interface port=8310 filter-internet=allow(all) type=debug,normal,internet,private mac-check=mobile ------------------------------------- environment Live db=\LiveData\fpos.mdb ;db=ODBC;dsn=MyLiveDatabase watchdog=yes port=8310 dropbox-out=\LiveData\dropboxOut export-datc=\LiveData\ExportDatc\ rank=ss rmsystem=5,22,33,44 location=4 option(wordspb) emailcheckbounce=1 ------------------------------------- ; Http, must have minimum 1 or cannot use the system interactively agent http minimum 1 ; option(http) sender=3 ; option(http) senderthreshold=132000 ; option(http) so_sndbuf=1200000 ; option(http) so_rcvbuf=800000 ; option(http) maxagent=2 ;; url-blacklist=/report/pos/sshome.htm -------------------------------------
Gds.ctl: Interface Section
The interface section defines different TCP and UDP ports that the server will operate on. Each unique environment such as live or test requires a different TCP Port. The interface section is primarily used by http.exe
If multiple http agents are running, they will share the incoming load using a modified round robin scheme
- debug/nodebug. Allows the port to respond to /debug urls.
- contol/nocontrol. Allows the port to respond to /debug urls.
- private/noprivate. Controls if connections from IP addresses inside the private address space are permitted. See RFC 1918. This option is usually enabled as the over whelming majority of sites use private address space schemes.
- internet/nointernet. Controls if connections from IP addresses in the internet address range are enabled. This is typically disabled as Gds/2 systems are not normally connected directly to the internet. This check may not work in all configurations as routers and proxy servers may alter the inbound IP address.
- normal/nonormal. Not used at this time but recommended to be specified on all ports that are to be used for retail operations.
- fdlonline. Reserved for Fieldpine
Gds.ctl: Agent Section
The agent section contains information directed to individual agent programs that make up Gds/2.
------------------------------------- ; Http, must have minimum 1 or cannot use the system interactively agent http minimum 1 ; option(http) sender=3 ; option(http) senderthreshold=132000 ; option(http) so_sndbuf=1200000 ; option(http) so_rcvbuf=800000 ; option(http) maxagent=2 ;; url-blacklist=/report/pos/sshome.htm -------------------------------------
Agent sections can include agent specific options using the form "option(agent-name)". While naming the agent might seem redundant, some parameters can also be defined at the environment level, and the syntax is then identical.
If a section for an agent is missing, the agent will apply internal defaults. There is no need to create a section for every agent unless you wish to change some parameter.
If your Gds/2 server is running with either a large number of clients performing very large data transfers, OR you have very slow network links to some stores then creating multiple senders can improve performance for more normal requests.
setsockopt(..., SOL_SOCKET, SO_SNDBUF, ...)which requests that the TCP layer uses larger send buffers than normal. It is recommended this parameter is only set in rare circumstances and that TCP self tuning is used.
setsockopt(..., SOL_SOCKET, SO_RCVBUF, ...)which requests that the TCP layer uses larger receive buffers than normal. It is recommended this parameter is only set in rare circumstances and that TCP self tuning is used.