As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
I have a hold file which holds 3898 (value varies) records. I need to use these records as input to another set of queries; so i have taken a REPEAT loop and sending the input records to the queries in the REPEAT loop. But it is throwing me the following error. "REPORTING SERVER MESSAGES EXCEEDED IBIF_MAX_MESSAGES, REPORT RETRIEVAL ABORTED. PLEASE CONTACT YOUR WEBFOCUS ADMINISTRATOR."
But the same loop is executing when i run the REPEAT loop for around 3000 records instead of giving the total recordcount from the hold file.
Please find below the code for your reference.
Thanks in Advance,
TABLE FILE DEPTLIST
PRINT
DEPT_I
CLASS_I
ITEM_I
DC_I
RETL_A
ON TABLE HOLD AS DEPTLIS1
END
-SET &LINECNT = &RECORDS;
FILEDEF SQLOUT13 DISK SQLOUT13.ftm (APPEND
-RUN
FILEDEF SQLOUT14 DISK SQLOUT14.ftm (APPEND
-RUN
-REPEAT REP1 FOR &CNT FROM 1 TO &LINECNT
-READ DEPTLIS1 NOCLOSE &DEPT_I.I6. &CLASS_I.I6. &ITEM_I.I6.
ENGINE DB2 SET DEFAULT_CONNECTION DB21
SQL DB2 PREPARE SQLOUT FOR
SELECT B.DEPT_I DEPT_I, A.DIV_N DIV_N FROM DB2PROD.LGL_DIV A, DB2PROD.LGL_DEPT B
WHERE B.DEPT_I=&DEPT_I AND B.GROC_DEPT_F='N' AND B.DIV_I=A.DIV_I
END
TABLE FILE SQLOUT
PRINT
DEPT_I
DIV_N
ON TABLE HOLD AS SQLOUT13
END
-SET &OUTCNT1 = &RECORDS;
-IF &OUTCNT1 = 1 THEN GOTO A ELSE GOTO B;
-A
ENGINE DB2 SET DEFAULT_CONNECTION DB21
SQL DB2 PREPARE SQLOUT FOR
SELECT MIN(A.RETL_A) MIN_RETL_A, MAX(A.RETL_A) MAX_RETL_A, ROUND(AVG(A.RETL_A),2) AVG_RETL_A, COUNT(*) CNTR1
FROM DB2PROD.ITEM_STORE A, DB2PROD.LOC_RELT_SRVC_STGY B WHERE A.DEPT_I = &DEPT_I
AND A.CLASS_I = &CLASS_I AND A.ITEM_I = &ITEM_I AND A.ITEM_STAT_C = 'A'
AND B.RELT_TYPE_I = 'REGN' AND B.SRVC_STGY_I = '02'
AND ((CURRENT DATE BETWEEN SRVC_STGY_EFF_D AND SRVC_STGY_EXP_D) OR
(SRVC_STGY_EFF_D > CURRENT DATE AND SRVC_STGY_EXP_D > CURRENT DATE ))
AND (SRVC_STGY_EXP_D > CURRENT DATE) AND B.RELT_LOC_I = 3894 AND B.LOC_I = A.STORE_I
END
TABLE FILE SQLOUT
PRINT
MIN_RETL_A
MAX_RETL_A
AVG_RETL_A
CNTR1
ON TABLE HOLD AS SQLOUT14
END
-GOTO REP
-B
-REP
-REP1
TABLE FILE SQLOUT13
PRINT
*
END
TABLE FILE SQLOUT14
PRINT
*
END
This message has been edited. Last edited by: Kerry,
Prod: WebFOCUS v7.1.4 OS: Windows Outputs: Excel, HTML, Pdf
One other thing as it would help others performing a search on this sort of error, please change the title of this topic to something to do with "Max messages exceeded" so that it fits with the actual problem and not a symptom.
You can do this by editing your first post.
Thank you
T
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004
There is no echo in your code, but it may very well be the process you're running does produce output lines of some kind. Since you're doing a whole lot of tables from a relational source, it may be that the output statistics from the table(s) are causing the message overload. You could try either increase the message limit or start the procedure with the statement SET MESSAGE=OFF.
Hope this helps ...
GamP
- Using AS 8.2.01 on Windows 10 - IE11.
in Focus since 1988
Posts: 1961 | Location: Netherlands | Registered: September 25, 2007
You issue two SQL select requests per row in DEPTLIST. For ~3000 entries, that's ~6000 separate requests.
Could you accomplish retrieval of the required data for a single set of DEPT/CLASS/ITEM values with a select on a join of the four DB2 tables (DB2PROD.LGL_DIV, DB2PROD.LGL_DEPT, DB2PROD.ITEM_STORE, DB2PROD.LOC_RELT_SRVC_STGY)?
If so, you should be able to bundle the requests, using SELECT . . . WHERE . . . AND( (A.DEPT_I = ... AND A.CLASS_I = ... AND A.ITEM_I = ...) OR (A.DEPT_I = ... AND A.CLASS_I = ... AND A.ITEM_I = ...) . . OR (A.DEPT_I = ... AND A.CLASS_I = ... AND A.ITEM_I = ...) ) (. . . to cover multiple DEPT/CLASS/ITEM values in a single shot. You can generate and imbed the code for the DEPT/CLASS/ITEM selection using Define + Table + SAVE + -INCLUDE.
If selecting all the cases at once will exceed limits on the length of the query, you can still run a series of requests covering, say, 100 rows of values at a shot.
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
Changing IBIF_max_messages to 0 can be dangerous. If the report code output is massive is could kill your browser, if in deferred mode it could fill the disk, we had job try to do that, all format errors from an APPEND.
I think setting ECHO and MESSAGE to off is the best starting point.
If this still happens, run the job deferred, and have a look at the deferred output file with the extension RSP, assuming you cannot retrieve the output.