December 12, 2006, 01:22 PM
rickybFOC198 error
I'm getting the following error executing a FOCUS program via a batch job on MVS:
PRINT PCWKTMID
PLANT_CODE
WEEK_ID
LABOR_DATE
ON TABLE HOLD AS HOLDDATE FORMAT FOCUS INDEX PCWKTMID
PLANT_CODE
WEEK_ID
LABOR_DATE
END
OFFLINE...
HOLDING FOCUS FILE...
NUMBER OF RECORDS IN TABLE= 8891 LINES= 8891
----------------------------------------------------------------------
FOCUS 7.0.8R 19.30.46 12/11/2006 PF5021 LINE 104 7778.13
EXEC FOC$HOLD
----------------------------------------------------------------------
FOCUS 7.0.8R 19.30.46 12/11/2006 FOC$HOLD LINE 1 7778.13
SET MESSAGE=OFF
ERROR AT OR NEAR LINE 9 IN PROCEDURE FOC$HOLDFOCEXEC
(FOC198) FATAL ERROR IN DATABASE I/O. FOCUS TERMINATING ERROR
WRITING HOLDDATE ,PAGE 216 ,CODE=AA000004
The JCL contains the following for HOLDDATE file:
//HOLDDATE DD UNIT=(SYSDA,7),SPACE=(0,(2000,1000),RLSE),
// DISP=(NEW,PASS)
I changed it from:
//HOLDDATE DD UNIT=SYSDA,SPACE=(CYL,(1,1)),DISP=(NEW,PASS)
I get the FOC198 error either way.
Does anyone have a suggestion?
December 12, 2006, 01:34 PM
RichHAlthough it's pointing to a problem with the HOLDDATE, it's more then likely a FOCSORT or External sort issue. Try increasing the space for the sort and see if that does it.
December 12, 2006, 03:37 PM
rickybI increased the space for the FOCSORT file and got the same result.
December 12, 2006, 04:16 PM
RichHCheck the packs that the files are being created on and make sure there is enough space.
December 12, 2006, 04:36 PM
Francis MarianiI think you need to specify the DCB for a FOCUS database file, add the following to the DD statement:
,DCB=(RECFM=F,LRECL=4096,BLKSIZE=4096)
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
December 13, 2006, 07:00 AM
M CavanaughHi - I am a mainframe guru and this happens when you are out of room in a FOCUS database file that you are trying to write to. There are few things you should try.
1. Remove the RLSE from the DCB statement. This releases all the space not needed and if you are SMS managed (most large MVS shops are) you are not getting the space you allocated. Check your output and you are probably only getting a portion of what you asked for.
2. You did not specifically mention cylinders in your allocation. The default in most shops is tracks which is much smaller so you are not getting all the space you thought you allocated.
Your allocation statement should look something like this:
//HOLDDATE DD UNIT=SYSDA,SPACE=(CYL,(200,100)),DISP=(NEW,PASS)
3. Create a permanent HOLDDATE file (with the required FOCUS DCB info) and make it larger than what you think you need. Make sure that you either use this right away or are allocated on a permanent non-SMS managed pack or you space will be automatically shrunk by the operating system.
Normally 1 & 2 will fix the problem.
Good luck,
Michelle
February 05, 2007, 11:58 AM
rickybWhat actually fixed this problem was a change to the FOCUS program itself. I changed the statement:
DYNAM ALLOC FILE HOLDDATE UNIT SYSDA SPACE 3 1 TRACKS NEW REUSE
to
DYNAM ALLOC FILE HOLDDATE UNIT SYSDA SPACE 9 9 TRACKS NEW REUSE
which was consistent with the other dynamically allocated files used by the program.