Consultor Eletrônico



Kbase P21380: Can SRT files be created by Remote Client Server Process?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   29/03/2011
Status: Verified

GOAL:

Can SRT files be created by Remote Client Server Process?

GOAL:

What causes an _mprosrv process to create an SRT* file ?

GOAL:

What causes an _mprosrv process to create a temporary file ?

GOAL:

What processes can create a SRT file?

GOAL:

What forces a srt file to be created by a server on behalf of a client session?

GOAL:

Under what conditions will a remote client server create a temporary file?

FACT(s) (Environment):

All Supported Operating Systems
Progress/OpenEdge Product Family

FIX:

The srt* file is normally associated with the ABL client processes; it provides temporary storage to perform sorting operations that cannot be performed by the database on the client-side work directory.
Example: a BY phrase on a non-indexed field.

However, a _mprosrv remote server process that handles client-server connected ABL clients can also create and use a srt* file in certain conditions. All queries (define query, open query, and dynamic queries) will create a srt file in the database work directory (-T) in order to allow for reverse-sort-order seeking, reposition, etc.

Example:
One such condition occurs when a remote client queries the database and there is a multi-component WHERE clause and records from the table match more than one condition of the WHERE clause, there is the possibility that if there are a large number of records being queried a SRT file will be created by the Remote Client Server Process in the database work directory (-T). A specific example that exhibits this behavior is a query with multiple equality matches on the same indexed field, matched using OR operators:

FOR EACH customer WHERE salesrep = "HXM" OR salesrep = "DKP" OR salesrep = "BBB":

Note that using a word-index via the CONTAINS operator will behave the same, if the search expression includes multiple words separated by the vertical line (|), exclamation point (!), or caret (^), which represent a logical OR. Basically, that also results in multiple equality matches on the same index.

Note that the _mprosrv remote server can process multiple queries at the same time for each client-server connection to that remote server. If multiple simultaneous queries are being run that trigger SRT* file activity on the server side, the SRT* file will expand to accommodate all of those queries. The server-side SRT* will not decrease in size during it's lifecycle. It will grow to a peak size, after which space within the file will be freed and re-used as needed. This is consistent with other OpenEdge temp-files.

Make sure there is free space available on your Server. Set the "-T <directory>" database startup parameter if you encounter problems with space used by these Remote Client Server processes.

The best way to avoid creating a srt file is to use the client-side parm file "noautoreslist" or setting the query attribute "forward-only" to yes.