Focal Point Banner


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.


Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     Invoking multiple files simultaneously

Read-Only Read-Only Topic
Go
Search
Notify
Tools
Invoking multiple files simultaneously
 Login/Join
 
Gold member
posted
Hi,

I have a FEX file which in turn includes four other files. The control returns back to the main file once all the included files are processed.
Is there way in which I could process these four files simultaneously, instead of doing it sequentially?

Thanks.


Web Focus 7.1.6
Hosted on Unix Box
 
Posts: 61 | Registered: August 17, 2007Report This Post
Virtuoso
posted Hide Post
To my knowledge, WebFOCUS remains an interpretted language, which means go through each line and execute. Don't think it was intended to be a multi-thread task language ever. So, I'd say nope your out of luck.


Leah
 
Posts: 1317 | Location: Council Bluffs, IA | Registered: May 24, 2004Report This Post
Master
posted Hide Post
If you want to break them up into seperate focexec, and if you are running them from a web browser! You could use the resource layout tool and create a button with 4 hyperlinks to run each of the focexecs at the same time keep in mind that it will fire off all 4 request at the same time and if you allows the users to do that at could be a lot of request being processed at the same time. Be sure you have the maximum number of agents set on the backend reporting server if you choose the do it that way




Scott

 
Posts: 865 | Registered: May 24, 2004Report This Post
Virtuoso
posted Hide Post
The next problem would be, if all four are run simultaneously, you would have to provide some mechanisim to handle the responses from four different agents and display each of them separately in appropriate output formats without overwriting one another.

I'm with Leah on this one - there isn't really a way to spawn four new agents from within one. And going the -INCLUDE route doesn't really pass control anywhere. It simply grabs all the code that will be -INCLUDEd, puts it all in the "main" fex, and runs as instructed by default or as indicated by Dialogue Manager commands.


Regards,

Darin



In FOCUS since 1991
WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex
Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex
WF Client: 77 on Linux w/Tomcat
 
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007Report This Post
Platinum Member
posted Hide Post
How about setting up 4 rcaster jobs to be run simultaneously? each one having a different one of the 4 -includes? also there was no mention whether they were nested -includes or not.

Ira

aix 533 wf


aix-533,websphere 5.1.1,apache-2.0,
wf 538(d), 537 (p),
==============
7.6.11 (t) aix 5312
websphere 6.1.19
apache 2.0
 
Posts: 195 | Registered: October 27, 2006Report This Post
Member
posted Hide Post
This should be looked into by IBI. There is ample opportunity for concurrency. Even transparent concurrency. For example,

table file first
print *
end

table file second
print *
end

join field1 in first to all field1 in second as j1;

table file first
print *
end

In this example it should be possible for the run time environment to fetch the two tables at the same time instead of sequentially. This would improve performance and take advantage of the bandwidth on the server.

Jose


WF 7.6.10, Windows, Banner 8, Oracle 10g.
 
Posts: 26 | Registered: February 04, 2009Report This Post
Virtuoso
posted Hide Post
I actually have thought about this on several different occasions and it would be really great if this worked, but the procedural nature of WF, with branching possibilities, etc. would just make this a nightmare to make work.

The two queries like you have them look innocent enough, but back up a step and look at what could happen. Maybe table file second reads a hold file from table file first and can't run until table file first completes. Or maybe table file second and table file first each retrieve a million records each from the same table which contains 10 million records. Even worse, a non-indexed table with selection criteria on defined fields. Now you would have two table scans going at the same time using up all available resource. Would the user know not to do that? Yes, we would hope so. Would there be some way for WF to know not to do that? Not really - it just does what it's told.

Here's another scenario - selection criteria from query 1 will result in no records, while query 2 takes 30 minutes and returns a million records. Query 1 finishes immediately while query two on it's own agent runs and runs and sends back the data which is then thrown out because query 1 had no data and there's nothing to perform the join with. Big waste of time an CPU. Could we somehow kill query two if query 1 returns empty? Probably, but then your re-writing the way that WF works. And again, that's something that a user would know to do or not to do, but WF would not. It just does what it's told.

My soap box is starting to tip over, so I'll get off. It would be really great, but the possible problems lead me to prefer it the way it is.


Regards,

Darin



In FOCUS since 1991
WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex
Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex
WF Client: 77 on Linux w/Tomcat
 
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007Report This Post
Expert
posted Hide Post
The BIG question is why do you want to run simultaneously ?

Understanding the context, may bring forth a viable solution Idea


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

 
Posts: 6347 | Location: 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006Report This Post
Master
posted Hide Post
Here's an example where this would help.

Our users are not allowed to run reports against production. So I build an extract (a .XFOCUS file) for them and refresh it nightly. The job takes about an hour to run. The extract contains all children in foster care. For these children, I collect data from 50+ other tables (placement info, custody info, IV-E info, demographic info, disability info, court data and about 10 more types of info. Once I collect all the children in the population, these different groups could be collected at the same time as they are independent of each other.

With that said, here's how I would implement it.

I would have a job scheduled in RC that collected the main population, let call it yi684.fex. Now, if each group had it own program and RC job (yi684a.fex, yi684b.fex, yi684c.fex, etc.), at the end of yi684.fex I would use DSTRUN to immediately execute the RC jobs for yi684a.fex, yi684b.fex, yi684c.fex, etc.

Now, the problem is to know when all the sub-fexes have finished so the new file can be moved to where the reports need it to be. I would have yi684.fex create a file, yi684_status.foc with one row. The row would have a column for each fex to write to when it finished. In the string of jobs submitted with DSTRUN, the last one would be yi684_check.fex. This job would check yi684_status.foc. If all the jobs have completed, it would move the new file to production, if not, it would go to sleep for 1 minute and check again. This would continue until the completion.

Since this job has been around a lot longer than WF (it was originally written in FOCUS for HP-UX), restrucuring it to do this is not a high priority and it seems like a lot of trouble to get concurrent execution. But it could be done this way.


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, 2006Report This Post
  Powered by Social Strata  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     Invoking multiple files simultaneously

Copyright © 1996-2020 Information Builders