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.