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 load a very large XFOCUS DB in an IBM Mainframe environment (zOS). The load is done with a Master without indexes. Then a REBUILD INDEX is done with a Master with four indexes. These two steps ran without error. I tried a TABLE FILE SUM on this DB and I get an I/O error (It's strange that the load and rebuild steps ran without an error and now I get this error):
My fear is that this DB is too large, even for an XFOCUS DB - it expanded on to a second volume with a total of around 7000 cylinders. The manual states an XFOCUS database can be 16 gigabytes. How does one calculate cylinders from gigabytes? How does one calculate how much disk space is added by the indexes?
I may have to break this thing into multiple partitions - I've never done this before so I would appreciate some tips. Is there any documentation on XFOCUS database partitioning?
Thanks,This message has been edited. Last edited by: Francis Mariani,
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
If you have your DB segmentized, create the DB/Master with the LOCATION attribute for each segment, which, will put each segment into it's own FOCUS file. They will have to be DD'd in your JCL. That's how we accomplished loading large data sources... A very long time ago though!
For IP to work effectively, you need to choose a field that will ALWAYS be used as screening in a report. This one is week number.
For reporting FOCUS will work out which partitions to use and access based on the screening condition (basically a USE in the background).
For MODIFY / MAINTAIN you have to do it all manually. You need to ALLOC and USE the correct data file.
To JOIN to the file I use an External Index which can be built over all partitions. I prefer this to multi-dimension join. If I need a multi-field JOIN I use a DEFINE in the mfd to create a single field and index the define field.
It really is as simple as that.
Alan. WF 7.705/8.007
Posts: 1451 | Location: Portugal | Registered: February 07, 2007
Thanks for the quick response! I guess we're the only ones not at Summit!
Tom, it's a one-segment DB so I don't think I can segment it with the location attribute.
JG, thanks for the calculation - my 5.54 gig(ish) DB is well within the maximum.
Could it be a real I/O error on a mainframe device?
I haven't worked with FOCUS DBs for a very long time so I'm quite rusty at this.
Alan, your suggestions look like the method I should be using. The database was designed previous to my involvement. It is one segment, with a Year/Month field that would be the candidate for the WHERE statement in the ACCESS file. Even though we always screen on this field, we do need to include more than one value:
WHERE YRMTH FROM '200901' to '201111' OR YRMTH EQ '2010Q1'...
I do have some further questions:
Is "Intelligent Partitions" a FOCUS term, a database design term or your intelligent term?
I need to join from this DB to other lookup tables. How is the External Index built (I promise to look for the documentation!)?
Thanks so much!
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
APP HOLD XFOCUS
REBUILD
EXTERNAL INDEX
NEW
MEASINDX
MEASURES
ITEM_NUMBER
NO
NO
rebuild / external index / into a new file / called measindx / on file measures / using field ITEM_NUMBER / Not associated with a field / No screening conditions.
You will need a USE prior to a JOIN (wish this was also in access file).
USE
XFOCUS/MEASINDX WITH MEASURES
END
And somewhere there is a pile of docs (1 page) for ALLOCating an index file.
Cannot use DKU, has to be JOIN, (wish this would change also).
A simple complete example for external Index:
DEFINE FILE CAR
PROFIT/D12.2 = RCOST-DCOST
END
TABLE FILE CAR
PRINT PROFIT
BY COUNTRY
BY CAR
BY MODEL
BY BODYTYPE
ON TABLE HOLD AS PROFIT
END
-RUN
DEFINE FILE CAR
JOIN_FLD/A62 = COUNTRY | CAR | MODEL | BODYTYPE;
END
-RUN
REBUILD
EXTERNAL INDEX
NEW
CARINDEX
CAR
JOIN_FLD
YES
BODYTYPE
NO
USE
CARINDEX.IDX WITH CAR
END
-RUN
JOIN COUNTRY AND CAR AND MODEL AND BODYTYPE IN PROFIT TO JOIN_FLD IN CAR AS J1.
TABLE FILE PROFIT
PRINT PROFIT RCOST DCOST
BY COUNTRY
BY CAR
BY MODEL
BY BODYTYPE
END
-RUN
Intelligent partition is an IB term with Intelligent Horizontal and Vertical Partitions!
Alan. WF 7.705/8.007
Posts: 1451 | Location: Portugal | Registered: February 07, 2007
My recolection is that Focus pages (or blocks in general) cannot span tracks, so you get just 3 xfocus pages per track (the remaining 7,512 bytes are unused), or 45 pages/cyl. So 7000 cyls holds 315,000 pages, which comes to precisely 5 gb (no -ish about it).
- Jack Gross WF through 8.1.05
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
I guess the number of bytes in each record make no difference - 35 byte or 350 byte records just fill up an XFOCUS databse page and it's the number of pages that counts...
Thanks,
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
When I allocated the file, I could allocate a file of only 4300 cylinders - trying 4400 gave me an error ("PRIMARY SPACE EXCEEDS 65535 TRKS"). So I allocated 4300 cylinders as the primary quantity and 200 as the secondary quantity. Is it possible, that as the db file grows it sometimes spans more than one volume - could that cause the problem?
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