Difference between SELF and SERV database process types

D.Cook

Member
I think I've worked it out now but just want to confirm the difference between these two database process types (listed in promon user list):

SELF: a process on same machine connected with -db param pointing to database file
SERV: a TTY process (eg on same machine) connected with -H and -S params pointing to database socket
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
SELF: a self-service client process (e.g. _progres). This is a 4GL client (SQL clients are always remote), running on the database machine, that attaches to shared memory and opens the database files. It acts as its own server for DB access. In a recent-ish release (10.1C I think) the "Type" was expanded to indicate a sub-type, like "SELF/ABL", "REMC/ABL", "REMC/WTA", etc. etc. There are a few dozen types.

SERV: a server process (e.g. _mprosrv) for remote 4GL clients. 4GL clients that connect via TCP sockets (i.e. with -H, -S, -N) do so through a 4GL server that listens on a given TCP port. First the client connects to a broker, which is listening on the "-S" port. The broker may be 4GL-only (if started with -ServerType 4GL), or it may be used for both 4GL servers and SQL servers. The broker provides the client with the TCP port number of a running 4GL server, and the client then disconnects from the broker and connects to the server on the provided port. Note that SQL servers (_sqlsrv2) are shown as type SQSV.

One point to note is that you can have more than one broker running against a database. The primary broker will show up in the promon user list (1 1) as type BROK, whereas a secondary broker will show as type SERV. By contrast, the Servers By Broker display (promon R&D | 1 (Status) | 17 (Servers By Broker)) shows these differently. Brokers (4GL and SQL) are shown as type Login and servers (4GL and SQL) are shown as type Auto (if started by the broker). Please don't take this as a comprehensive list of types; it isn't. BTW I think the Servers By Broker display was added to promon in 10.1B.

Also to correct something you said, a database server (4GL or SQL) connects to the database directly by mapping the shared memory segments into its virtual memory address space; it does not connect via sockets.
 
Top