GDSX (Extended General Device Support) Manual

Design and Development
Extended General Device Support (GDSX) Manual529931-001
2-2
Design Considerations
Determine which D-series features will be used, including whether GDSX will run
at a low PIN or a high PIN. For information on using these features, see Using D-
Series Features on page 2-3.
Complete a detailed business application design, including specifying:
°
Requester processes with which GDSX is to communicate
°
Pathway/iTS configurations, if applicable
°
Whether static or dynamic SUs will be used
Fully specify requirements for the proposed GDSX process, including:
°
Different types of tasks that are required. Normally there are two different
types, DEVICE^HANDLER tasks and LINE^HANDLER tasks. However, by
means of the term^type parameter (which may be determined by the SCF ADD
command’s SUTYPE attribute) passed to DEVICE^HANDLER tasks, you can
effectively create different types of DEVICE^HANDLER tasks by executing
different subsets of code within the DEVICE^HANDLER procedure.
°
Which user exits will be customized, and which exits will be stubs (see
Section 9, User Exit Descriptions for information on user exits).
°
Information that needs to be shared among tasks. Because multiple copies of
a USCODE procedure can be running at the same time in a multithreaded
GDSX environment, USCODE variables must be defined properly. If the value
of a variable is unique for each task at run time, declare the variable as a local
variable. If a variable must be shared among tasks, declare the variable as a
global. For read-only globals, the shared extended pool (see Memory Pools on
page 2-24) can be used. In order to properly update globals, semaphore
control may be necessary (see Semaphore Control on page 2-39).
Typically, user code has global data blocks, such as common^data and
user^private—see the example listings in Appendix B, USKELEX and
USKELEXC Listings. Global data within the common^data block can be
referenced and updated by both TSCODE and USCODE, while global data
within the user^private data block can be referenced and updated only by
USCODE tasks.
°
Which memory pools will be used, and what memory pool record structures will
be. See Memory Pools on page 2-24.
°
Special memory requirements.
°
Which files will be opened privately and which will be opened publicly. See the
considerations for ^OPEN and ^FILE_OPEN_ in Service Routines on page 8-1.
°
Level of fault tolerance required for each user task in the GDSX process.
Weigh the need for fault tolerance against the overhead incurred with all three
levels of processing. See Fault Tolerance on page 2-28.
°
Whether to use the TMF product in USCODE to protect transactions.