Use Server-side join (-ssj) to indicate if the database server will process server-side join requests from remote clients.

Operating system and syntax UNIX / Windows -ssj n
Use with Maximum value Minimum value Single-user default Multi-user default
Database Server 1 0 0 — for non-threaded server

1 — for threaded server

n
Set n as follows to indicate the status of Server-side join processing:
  • 0 — Server-side join processing is disabled for this server. This is the default for a non-threaded database server.
  • 1 — Server-side join processing is enabled for this server. This is the default for a threaded database server.
Server-side join is only enabled for queries where the tables to be joined are in the same logical database and there are ten or fewer tables. In addition, server-side join only occurs when using the following ABL constructs:
  • FOR statements with NO-LOCK.
  • Dynamic queries with NO-LOCK, except for those that use the INDEXED-REPOSITION option or involve an outer join.
  • GET-NEXT(), GET-PREV(), GET-FIRST(), and GET-LAST() with SHARE-LOCK or EXCLUSIVE-LOCK, if the dynamic query is set up with NO-LOCK.

Server-side join is not supported for static queries (DEFINE QUERY statement).

To see if a particular query was done in the server, you can enable QryInfo logging for your client session. For example, start the client session using these startup parameters:

-clientlog logfilename
              -logentrytypes QryInfo
              -logginglevel 3

If the query was resolved in the database server, you see "Server-side join" in the log file entry. For example:

Type: FOR Statement, Server-side join
...
Type: Dynamically Opened Query, Server-side join

The -ssj parameter is ignored if it's included in a server startup command with -threadedServer 0.

To change this parameter while the database is running, use PROMON or the _DbParams VST.