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'm not a mssql expert, but I would create indexes containing your join fields and any fields you have a where clause upon, that's pretty much universal for any database.
Prod: Single Windows 2008 Server running Webfocus 7.7.03 Reporting server Web server IIS6/Tomcat, AS400 DB2 database.
I can't understand how this topic can last so long =)
GGOFAnalyst: 1. Do you use only TABLE FILE or SQL SQLMSS ? 2. If you SQL SQLMSS - is your query runs fast from isqlw.exe and slow from WF? 3. If you TABLE FILE - have you tried to rewrite it in SQL SQLMSS? Have you tried to encapsulate it in MS stored proc?
4. In any case: WF works agains operational data or server designated for reporting? 5. In any case: which ENGINE SQLMSS in your edasprof.prf? Have you tried ENGINE SQLMSS SET ISOLATION RU?
Anyway if you want help : a) post structures of your tables b) post synonyms c) post queries you use : TABLE(F) FILE or SQL SQLMSS
Regards, Alex
WF 7.6.2, WinNT/2K, MSSQL 2K, MSOLAP 2K, BID
Posts: 79 | Location: Moscow | Registered: April 27, 2007
One of the things that I do to speed up WebFocus reporting against SQL tables is to use TABLEF to retrieve the data, including any WHERE statements that SQL can understand to bring back fewer rows and eliminate any DEFINEs, EDIT's and anything that may turn optimization off. Keep the request simple, put the data in a hold file, then do all your fancy formating, defines, calculations, etc. against the HOLD file. If the fields your sorting BY are indexed on the SQL table, then use TABLE and let SQL do the sorting for you. It's very helpful to look at the trace and see the SQL is being generated. I'm assuming WebFocus against SQL tables is similar to Focus against DB2 tables. Someone please correct me if I'm wrong. It's possible your DBA may need to add an Index for you. Good Luck and hope this helps!
"...then use TABLE and let SQL do the sorting for you."
One should still use TABLEF. Using TABLEF with BY phrases will pass the sorting to the database as long as you are sorting using data base fields. They don't have to be indexed. Using TABLE will cause WebFOCUS to sort already sorted data.
In FOCUS since 1985. Prod WF 8.0.08 (z90/Suse Linux) DB (Oracle 11g), Self Serv, Report Caster, WebServer Intel/Linux.
Posts: 975 | Location: Oklahoma City | Registered: October 27, 2006
(FOC2519) THE JOINED SEGMENTS RESIDE IN MORE THAN ONE NODE OR SUBSYSTEM
This message from the SQL translator says it all. If you can solve that then the rest should be easy.
Ingas/Alex, I have already suggested using SQL trace and that's how GGOFAnalyst was able to capture the messages. As well, what is "ENGINE SQLMSS SET ISOLATION RU" and how is it going to help? Please give us a clue as to what that command does, it's not one that's used everyday.
Posting structures and synonyms of the tables will not help.
As far as I know, joining tables from two different "nodes or subsystems" will disable aggregation and RDBMS joins. The data from one subsystem will be downloaded to the temp area of the WebFOCUS server, then the data from the second subsystem will be downloaded to the temp area of the WebFOCUS server, then the two temp files are joined, verrrrrrrry inefficient.
In my opinion, the program should be broken into multiple steps. Extract the data from the first subsystem, aggregating the data by the required dimensions and creating a HOLD FOCUS DB. Extract the data from the second subsystem, aggregating the data by the required dimensions and creating a HOLD FOCUS DB. Joining the twp HOLD FOCUS DB's.
Sounds suspiciously like what WebFOCUS is doing automatically? Yes, but in method I suggest, you have control and generate efficient SQL.
Does anyone have a better idea?
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
as well, what is "ENGINE SQLMSS SET ISOLATION RU" and how is it going to help? Please give us a clue as to what that command does, it's not one that's used everyday.
RU - means TRANSACTION ISOLATION LEVEL READ UNCOMMITTED.
I know the purists will start to throw tomatoes on me, but I can tell that in many cases in MSSQL 2K/below - it's the only way to complete SQL statement.
(2005 is different. SNAPSHOT ISOLATION - maybe the best feature of Yukon)
When working against operational data - it also ensures that reports did not block writing processes.
quote:
In my opinion, the program should be broken into multiple steps. Extract the data from the first subsystem, aggregating the data by the required dimensions and creating a HOLD FOCUS DB. Extract the data from the second subsystem, aggregating the data by the required dimensions and creating a HOLD FOCUS DB. Joining the twp HOLD FOCUS DB's.
I agree with you that data consolidation is reasonable. I do not have much experience with FOCUS/XFOCUS files with a lot of data in them. (In fact, I can't say that I have much experience with WebFOCUS) I've tried to put a table with 40K of rows and I do not like size of HOLD-file. (But I must admit there was a lot of string columns)
WF 7.6.2, WinNT/2K, MSSQL 2K, MSOLAP 2K, BID
Posts: 79 | Location: Moscow | Registered: April 27, 2007
I absolutely agree if you can pass the sort off on a real database field let SQL do the sorting. Thanks for the correction, jgelona. I often see in our company folks trying to sort on Defined fields. (and I cut/pasted my message from an old post).
ENGINE SQLMSS SET ISOLATION RU this is a new one for me! interesting!
WebFOCUS 7.6.6/TomCat/Win2k3
Posts: 428 | Location: Springfield, MA | Registered: May 07, 2003
According to "iWay Adapter Administration for UNIX, Windows, OpenVMS, OS/400, OS/390, and z/OS - Version 5 Release 3.3" controlling "TRANSACTION ISOLATION LEVEL" is only available for DB2 and CA-IDMS.
According to "Adapter Administration for UNIX, Windows, OpenVMS, I5/OS, and z/OS - Version 7 Release 6" this is available for more adapters, including MS SQS Server, though it still doesn't explain what the command does.
According to Microsoft MSDN SQL Server Developer Center this controls which rows will be read - "Controls the locking and row versioning behavior of Transact-SQL statements issued by a connection to SQL Server" - I think leaving this at the default is fine, I don't see how changing this will improve the response of a read request.
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
For DB2 it used to be (a long while since I used DB2) CS for Cursor Stability and RR for Repeatable Read.
The best place to find out what these isolation levels mean is the RDBMS' manuals as WF is only allowing utilisation of these commands and not providing the implimentation.
T
In FOCUS since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2
WebFOCUS App Studio 8.2.06 standalone on Windows 10
Posts: 5694 | Location: United Kingdom | Registered: April 08, 2004
Isolation level of RU for SQL Server is similar to UR for DB2. When creating a request with this level of isolation, SQL server will perform a "dirty read" of the data which can save time as the system will not be issuing or checking locks.
The downside of using this, is that you will also get any uncommited records that may exist.
Windows: WF 7.6.2: SQL Server 2008 R2
Posts: 86 | Location: Chicago | Registered: August 03, 2007
The error message you are getting FOC2519 means that the two files being joined are from different relational databases or nodes of a system, so that there is no one system that can join them except WebFocus. I would check the two ACCESS files (.ACX) to see if the information is correct. Also, the SUFFIX parameter in the two MFD files.
An alternate strategy in all cases of slow JOIN is to use the MATCH process. This is now controlled by the Developer Studio GUI dialogue for MATCH. (or read the Doc)
Did you perform any other SQL commands before this command? The error message details:
(FOC1721) WARNING: COULD NOT SET ISOLATION LEVEL FOR %1%2 An active logical unit of work exists for given data source, therefore could not set isolation level. Please make sure that all LUWs are closed on all active connections and retry to set isolation level.
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