In this section: |
The Multi-Threaded SU Reporting facility enables you to issue TABLE requests against shared data sources without using a FOCUS Database Server. Before using this facility, you must allocate the centrally controlled data sources in SHR mode in the client address space. For example:
ALLOC F(CAR) DA('SINKID.CAR.FOCUS') SHR
This is the only case in which a source machine can allocate a centrally controlled database.
This feature may only be used in read-only mode, and all modifications to the data source must go through the FOCUS Database Server. In addition, a single Multi-Threaded HLI/SU program cannot simultaneously open a file in both read-only and read/write modes. Separate FCBs are required for locally reporting from and updating centrally controlled data sources.
When performing Multi-Threaded HLI/SU Reporting operations, the central database is accessed locally, bypassing the FOCUS Database Server. But for all modifications, central data sources are accessed through the FOCUS Database Server. In the HLI environment, the FCB is modified to denote the parallel configuration (accomplished in the FOCUS environment with a USE command).
The steps for allocating the database are as follows (these assume that the communication data set for the FOCUS Database Server and the database are catalogued under high level qualifier SINKMA):
//CAR DD DSN=SINKMA.CAR.FOCUS,DISP=SHR
ALLOC F(CAR) DA('SINKMA.CAR.FOCUS') SHR
or
//CAR DD DSN=SINKMA.CAR.FOCUS,DISP=SHR
For example, assume FOCSU is the communication data set and the following is the COBOL HLI FCB:
01 FCB. 05 FCB_FN PIC X(08) VALUE SPACES. 05 FCB_FT PIC X(08) VALUE SPACES. 05 FCB-FM PIC X(04) VALUE SPACES. 05 FCB_SU PIC X(04) VALUE SPACES. 05 FCB_DN PIC X(08) VALUE SPACES. 05 FCB_SINKID PIC X(08) VALUE SPACES. 05 FILLER PIC X(28) VALUE SPACES. 05 FCB-ECHO PIC X(04) VALUE "ECHO". 05 FILLER PIC X(20) VALUE SPACES. 05 FCB_STATUS PIC S9(5) COMP-3 VALUE +0. 05 FILLER PIC X(104) VALUE SPACES.
The FCB would be set up as follows:
IOS-SET-UP-FCB-HLI-SU-MVS. MOVE "CAR" TO FCB_FN. MOVE "SULO" TO FCB_SU. MOVE "FOCSU" TO FCB_SINKID.
In the USE command for using the Multi-Threaded SU Reporting Facility, each database must be declared twice, once with the ON option and once with the LOCAL option. For example:
USE CAR ON FOCSU CAR LOCAL EMPLOYEE ON FOCSU2 EMPLOYEE LOCAL . . . END
In the example, the two FOCUS databases, CAR and EMPLOYEE, reside on different FOCUS Database Servers. The keyword LOCAL indicates that the Multi-Threaded SU Reporting Facility will access them without going through their associated FOCUS Database Servers for TABLE requests, while MODIFY/Maintain requests will go through the FOCUS Database Servers as usual.
Note that you must still provide a USE command to tell FOCUS which FOCUS Database Server controls the database, even when planning to read the data source locally with the Multi-Threaded SU Reporting Facility.
While reading data with this facility, you will not know if someone else is changing the data source with a MODIFY or Maintain request. During a TABLE request, if FOCUS detects that a record it is retrieving has been affected by changes made by another user, it re-requests the changed record from the FOCUS Database Server. This is why you must declare the FOCUS Database Server in the USE command. Since reports you generate could be affected by changes submitted by other users, keep the following in mind:
Information Builders |