 




<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: How can I split job  by determine no. of records ?</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/</link>
	<description></description>
	<lastBuildDate>Fri, 24 May 2013 02:38:15 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: 200573</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/#comment-43129</link>
		<dc:creator>200573</dc:creator>
		<pubDate>Wed, 15 Feb 2006 09:00:25 +0000</pubDate>
		<guid isPermaLink="false">#comment-43129</guid>
		<description><![CDATA[Yeah i agree with everyone here.check whether the program  is creating this file everyday with new records or, if records exits then just updates the file.  check that routine if you haven&#039;t checked it as of now.]]></description>
		<content:encoded><![CDATA[<p>Yeah i agree with everyone here.check whether the program  is creating this file everyday with new records or, if records exits then just updates the file.  check that routine if you haven&#8217;t checked it as of now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: maverick64</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/#comment-43130</link>
		<dc:creator>maverick64</dc:creator>
		<pubDate>Tue, 14 Feb 2006 10:19:43 +0000</pubDate>
		<guid isPermaLink="false">#comment-43130</guid>
		<description><![CDATA[I agree with several others that you could be creating a bigger problem rather than speeding anything up.  Knowing details about the machine (# of processors, disk, IOPs etc) and what you are trying to accomplish (just trying to speed up one job) as well as what the current program does would be helpful.  Also, have you watch the job run and look at the call stack?   Many programs can have bad coding from many ends and can speed things up quite a bit. (arrays vs. data structures, chaining for each record rather than at a higher level --- indexed as opposed to record by record)]]></description>
		<content:encoded><![CDATA[<p>I agree with several others that you could be creating a bigger problem rather than speeding anything up.  Knowing details about the machine (# of processors, disk, IOPs etc) and what you are trying to accomplish (just trying to speed up one job) as well as what the current program does would be helpful.  Also, have you watch the job run and look at the call stack?   Many programs can have bad coding from many ends and can speed things up quite a bit. (arrays vs. data structures, chaining for each record rather than at a higher level &#8212; indexed as opposed to record by record)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jwebb901</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/#comment-43131</link>
		<dc:creator>jwebb901</dc:creator>
		<pubDate>Tue, 14 Feb 2006 08:56:01 +0000</pubDate>
		<guid isPermaLink="false">#comment-43131</guid>
		<description><![CDATA[Don&#039;t bother splitting up your file, you should look elsewhere to solve your problem.   20k records isn&#039;t a big file, so you must have another bottleneck you&#039;re not aware of......]]></description>
		<content:encoded><![CDATA[<p>Don&#8217;t bother splitting up your file, you should look elsewhere to solve your problem.   20k records isn&#8217;t a big file, so you must have another bottleneck you&#8217;re not aware of&#8230;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hugosarm</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/#comment-43132</link>
		<dc:creator>hugosarm</dc:creator>
		<pubDate>Tue, 14 Feb 2006 08:30:02 +0000</pubDate>
		<guid isPermaLink="false">#comment-43132</guid>
		<description><![CDATA[Form my point of view you only need to fix your RPG Program and create a Cl to run it 4 times.

You could be can add a parameter in your RPG with one parameter (parameter gone have a value of time that is run).
&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039; and include some logic in your program to manage position your relative record in 1, 5000, 10000 or 15000. some thing like this...

*** THIS SENTENCE POS SET UP YOUR FIRST RECORD TO PROCESS
The SETLL operation positions a file at the next record that has a relative record number The file must be a full procedural file (identified by an F in position 18 of the file description specifications). 

you can include this instructions in your rutine *STRSR like this only run when RPG start.

        *INZSR 
Runtime ifeq  &#039;1&#039; 
1       Setll recordformat
else
Runtime ifeq  &#039;2&#039; 
5001    Setll recordformat
        else
Runtime ifeq  &#039;3&#039; 
10001   Setll recordformat
        else
Runtime ifeq  &#039;4&#039; 
15001   Setll recordformat 
        end
        end
        end
        end
        ENDSR

**** now your program start to read a file by relative record depending of one parameter 1, 2 3 or 4 

after that user your normal...
        read recordformat

ok... after fix your RPG do a Cl to run your RPG four times.

  example: do a CLP like this 

SBMJOB CMD(CALL PGM(yourprogram) PARM(&#039;1&#039;)) JOBQ(QGPL/QS36EVOKE)
SBMJOB CMD(CALL PGM(yourprogram) PARM(&#039;2&#039;)) JOBQ(QGPL/QS36EVOKE)
SBMJOB CMD(CALL PGM(yourprogram) PARM(&#039;3&#039;)) JOBQ(QGPL/QS36EVOKE)
SBMJOB CMD(CALL PGM(yourprogram) PARM(&#039;4&#039;)) JOBQ(QGPL/QS36EVOKE)


***** QS36EVOKE it is a standar jobq that allow to run in batch many jobs at same time.

i hope this can help you... ]]></description>
		<content:encoded><![CDATA[<p>Form my point of view you only need to fix your RPG Program and create a Cl to run it 4 times.</p>
<p>You could be can add a parameter in your RPG with one parameter (parameter gone have a value of time that is run).<br />
&#8217;1&#8242;, &#8217;2&#8242;, &#8217;3&#8242;, &#8217;4&#8242; and include some logic in your program to manage position your relative record in 1, 5000, 10000 or 15000. some thing like this&#8230;</p>
<p>*** THIS SENTENCE POS SET UP YOUR FIRST RECORD TO PROCESS<br />
The SETLL operation positions a file at the next record that has a relative record number The file must be a full procedural file (identified by an F in position 18 of the file description specifications). </p>
<p>you can include this instructions in your rutine *STRSR like this only run when RPG start.</p>
<p>        *INZSR<br />
Runtime ifeq  &#8217;1&#8242;<br />
1       Setll recordformat<br />
else<br />
Runtime ifeq  &#8217;2&#8242;<br />
5001    Setll recordformat<br />
        else<br />
Runtime ifeq  &#8217;3&#8242;<br />
10001   Setll recordformat<br />
        else<br />
Runtime ifeq  &#8217;4&#8242;<br />
15001   Setll recordformat<br />
        end<br />
        end<br />
        end<br />
        end<br />
        ENDSR</p>
<p>**** now your program start to read a file by relative record depending of one parameter 1, 2 3 or 4 </p>
<p>after that user your normal&#8230;<br />
        read recordformat</p>
<p>ok&#8230; after fix your RPG do a Cl to run your RPG four times.</p>
<p>  example: do a CLP like this </p>
<p>SBMJOB CMD(CALL PGM(yourprogram) PARM(&#8217;1&#8242;)) JOBQ(QGPL/QS36EVOKE)<br />
SBMJOB CMD(CALL PGM(yourprogram) PARM(&#8217;2&#8242;)) JOBQ(QGPL/QS36EVOKE)<br />
SBMJOB CMD(CALL PGM(yourprogram) PARM(&#8217;3&#8242;)) JOBQ(QGPL/QS36EVOKE)<br />
SBMJOB CMD(CALL PGM(yourprogram) PARM(&#8217;4&#8242;)) JOBQ(QGPL/QS36EVOKE)</p>
<p>***** QS36EVOKE it is a standar jobq that allow to run in batch many jobs at same time.</p>
<p>i hope this can help you&#8230; </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jburelle</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/#comment-43133</link>
		<dc:creator>jburelle</dc:creator>
		<pubDate>Tue, 14 Feb 2006 07:34:47 +0000</pubDate>
		<guid isPermaLink="false">#comment-43133</guid>
		<description><![CDATA[Maybe we are looking at this from the wrong angle.  Are you looking to speed up your end-of-day job?  Are users accessing this file during end-of-day?  Does it run interactive or batch?  Is there enough memory allocated to the subsystem that runs this job?  How big is your machine? 20,000 isn&#039;t a huge file, is it a big record?

Tell us more about the job itself.]]></description>
		<content:encoded><![CDATA[<p>Maybe we are looking at this from the wrong angle.  Are you looking to speed up your end-of-day job?  Are users accessing this file during end-of-day?  Does it run interactive or batch?  Is there enough memory allocated to the subsystem that runs this job?  How big is your machine? 20,000 isn&#8217;t a huge file, is it a big record?</p>
<p>Tell us more about the job itself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: michlw</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/#comment-43134</link>
		<dc:creator>michlw</dc:creator>
		<pubDate>Tue, 14 Feb 2006 07:00:06 +0000</pubDate>
		<guid isPermaLink="false">#comment-43134</guid>
		<description><![CDATA[FDateiname+IPEASF.....L.....A.E/AEinh.Schlusselworter++++++++++++++++++++++Bemerkungen+++++++++                             
        ***************** Datenanfang *******************************************************************************************   
0001.00 finput     if   e             disk    recno(rcd#)                                                   060214                  
0001.01 drcd#             s              9p 0                                                               060214                  
0002.00  /free                                                                                              060214                  
0004.00     read input;                                                                                     060214                  
0005.00     if %eof(input) or rcd# &gt; 103;                                                                   060214                  
0006.00        *inlr = *on;                                                                                 060214                  
0007.00        return;                                                                                      060214                  
0008.00        endif;                                                                                       060214                  
0008.01                                                                                                     060214                  
0008.02                                                                                                     060214                  
0008.03   begsr *inzsr;                                                                                     060214                  
0008.04     rcd# = 100;                                                                                     060214                  
0008.05     chain rcd# input;                                                                               060214                  
0008.06   endsr;                                                                                            060214                  
0009.00  /end-free                                                                                          060214                  
        ******************Datenende *********************************************************************************************   
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                         
                                                                                                                                         ]]></description>
		<content:encoded><![CDATA[<p>FDateiname+IPEASF&#8230;..L&#8230;..A.E/AEinh.Schlusselworter++++++++++++++++++++++Bemerkungen+++++++++<br />
        ***************** Datenanfang *******************************************************************************************<br />
0001.00 finput     if   e             disk    recno(rcd#)                                                   060214<br />
0001.01 drcd#             s              9p 0                                                               060214<br />
0002.00  /free                                                                                              060214<br />
0004.00     read input;                                                                                     060214<br />
0005.00     if %eof(input) or rcd# &gt; 103;                                                                   060214<br />
0006.00        *inlr = *on;                                                                                 060214<br />
0007.00        return;                                                                                      060214<br />
0008.00        endif;                                                                                       060214<br />
0008.01                                                                                                     060214<br />
0008.02                                                                                                     060214<br />
0008.03   begsr *inzsr;                                                                                     060214<br />
0008.04     rcd# = 100;                                                                                     060214<br />
0008.05     chain rcd# input;                                                                               060214<br />
0008.06   endsr;                                                                                            060214<br />
0009.00  /end-free                                                                                          060214<br />
        ******************Datenende *********************************************************************************************   </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jadima</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/how-can-i-split-job-by-determine-no-of-records/#comment-43135</link>
		<dc:creator>jadima</dc:creator>
		<pubDate>Tue, 14 Feb 2006 06:19:24 +0000</pubDate>
		<guid isPermaLink="false">#comment-43135</guid>
		<description><![CDATA[There are several possibilities : 
1) do a cpyf from rcd 1 to 5000 to a file in qtemp, ovrdbf to this qtemp file in your pgm. in next job same but from rcd 5001 to 10000 etc.
2) use OPNQRYF to do the same thing as described above.
3) If your application run that long for only 20000 records, than maybe there is something wrong in the logic, or the process is to hard to perform.
Split the program into modules (ILE) to perform the I/O part and review the logic stream. Maybe you find out why it takes so long.]]></description>
		<content:encoded><![CDATA[<p>There are several possibilities :<br />
1) do a cpyf from rcd 1 to 5000 to a file in qtemp, ovrdbf to this qtemp file in your pgm. in next job same but from rcd 5001 to 10000 etc.<br />
2) use OPNQRYF to do the same thing as described above.<br />
3) If your application run that long for only 20000 records, than maybe there is something wrong in the logic, or the process is to hard to perform.<br />
Split the program into modules (ILE) to perform the I/O part and review the logic stream. Maybe you find out why it takes so long.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 3/10 queries in 0.052 seconds using memcached
Object Caching 351/357 objects using memcached

Served from: itknowledgeexchange.techtarget.com @ 2013-05-24 03:06:48 -->