User guide

Using an ENFORM Server
ENFORM Servers
058058 Tandem Computers Incorporated 7–17
3. A primary key or record key has no meaning for an ENFORM server. Using
references such as KEY OF employee ... or employee.KEY is not allowed for
records from an ENFORM server. Referring to a key in an ENFORM server file
causes the query processor to issue an error message (Error 58).
4. The ENFORM server process name associated with a logical record name (a
relation) can be specified in the FILE IS clause of the DDL record description, with
a Command Interpreter ASSIGN command, or with an ENFORM ?ASSIGN
command. The physical file name is used in the call to LOOKUPPROCESSNAME
to determine whether or not the file is a process at the time a query is run.
5. The file type specified for an ENFORM server in the DDL description must be
either UNSTRUCTURED or the file type must not be specified at all. If no file type
is specified, the UNSTRUCTURED default is used. The query processor checks
the file type at run time and returns an error message (Error 112) if a file type other
than UNSTRUCTURED is indicated.
6. The query processor will try to allocate a message buffer for each ENFORM server
relevant to a query. If memory space for the message buffer is not available, the
query processor returns an error message (Error 50).
7. If an ENFORM server fails while being held open by a server query processor, the
server query processor should be stopped and restarted. Since the query
processor cannot determine from the system whether a process was stopped and
restarted, merely restarting the ENFORM server does not ensure that the messages
received by the server are in the proper sequence.
Performance
Considerations
The following are performance considerations related to using an ENFORM server.
Qualification
If there is a qualification (a WHERE clause) in a query and an ENFORM server
represents the data for an item in the qualification, implement the qualification in the
ENFORM server. In other words, the ENFORM server should send only the
qualifying data to the query processor. A simple example is:
LIST employee.name WHERE employee.age > 65
where the ENFORM server supplies the employee records.
The ENFORM server can be written to supply the employee data such that only
records containing employee names older than 65 are sent to the query processor. In
this case, the query processor receives only records qualifying for the query instead of
all the records.