Doug mentioned that there is a detailed explanation in the TS/MP System Management Manual. To make that more specific, in the current version of that manual (679664-002, published February 2012), the explanation is in chapter 3. The whole chapter of about 25 pages would be good to study, but if you cannot take in the whole chapter, you should at least study the "Configuration Overview" section and the "Configuring Links for Optimum Performance" section. There is a procedure at the very end of the latter section that gives detailed steps for calculating the various attributes' settings for a serverclass.
When you read what I write below, keep in mind the difference between a serverclass and server processes. A serverclass describes a program that can process requests. A server process is one running copy of that program. There may be many server processes active for a serverclass. Each server process performs the requests that are sent to it independently from the other processes of that serverclass (except that they may block each other if they need to lock some common resource).
I think the most important thing to say is that to make your system capable of handling a larger transaction rate, the two main things you can to do are increase MAXSERVERS, as you mentioned, and reduce the time it takes a server program to process a single transaction. Reducing the time it takes a server program to process a single transaction generally would involve redesigning the database to reduce the amount of I/O needed, so that is not an easy thing to do, and might not be possible at all. That leaves increasing MAXSERVERS as probably the only practical approach. This increases the number of copies of the server program running, so that more transactions can be processed in parallel. If your Pathway system's setting of MAXSERVERPROCESSES does not allow you to increase the value of MAXSERVERS, you might have to restart your Pathway system with a larger value for MAXSERVERPROCESSES. If your Pathway system already has MAXSERVERPROCESSES set to its upper limit, there
are other things you can do to increase the number of server processes, but without knowing some details of your current environment, I don't want to suggest a particular approach.
It might be necessary to add some requester processes in other CPUs or spread the existing requester processes across more CPUs if they are concentrated in just a few CPUs. All the Pathsend requesters in a given CPU share the link manager in that CPU, so if you need to get more link managers involved, you need the requesters to be in more CPUs.
The difference between LINKDEPTH and MAXLINKS is that LINKDEPTH limits the number of opens from a single link manager, while MAXLINKS limits the total number of opens from all link managers.
Unless a single copy of the server program can process more than one request simultaneously (is multithreaded), LINKDEPTH must be set to 1. Writing a multithreaded server program is rather complicated, and not even possible in COBOL, so it is very rare that LINKDEPTH should be set to anything other than 1. LINKDEPTH gives the maximum number of opens any link manager (basically the agent process that sends a request to a server process on behalf of the actual requester) may have to a given server process. A link manager has at most one request outstanding on an open at any given time, so LINKDEPTH 1 means that each link manager may have at most one request outstanding to a given server process. A link manager may have links to more than one process of a serverclass open at the same time, so LINKDEPTH 1 does not limit the number of simultaneous requests a link manager may have in progress for a serverclass -- it may have one request in progress for each server process it h
as open.
When LINKDEPTH is 1, as it almost always is, MAXLINKS essentially says how many link managers may have a particular process of the serverclass open at the same time. This does NOT mean that the server process performs MAXLINKS requests at once. The server process performs one request at a time, so up to MAXLINKS-1 requests are queued, waiting for requests ahead of them to be done. So increasing MAXLINKS does NOT increase performance -- it potentially increases queuing.
You are right that, for COBOL servers, MAXLINKS must be less than or equal to the TABLE OCCURS value in the RECEIVE-CONTROL paragraph.
The names LINKDEPTH and MAXLINKS are, I believe, a little confusing, but more descriptive names probably would be so long as to be unwieldy.
When you mentioned SYNCDEPTH, I assume you meant the SYNCDEPTH setting in the RECEIVE-CONTROL paragraph. In general, SYNCDEPTH is a fairly complex topic to understand, involving checkpointing and retries of failed requests, but since you are talking about a Pathway server program, you don't have to understand any of that. Just set SYNCDEPTH to 1 and you will be fine.