<?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: ENDJRNPF Shortcoming in V5R4</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/</link>
	<description></description>
	<lastBuildDate>Wed, 19 Jun 2013 19:19:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: philpl1jb</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-102697</link>
		<dc:creator>philpl1jb</dc:creator>
		<pubDate>Wed, 08 Feb 2012 13:24:18 +0000</pubDate>
		<guid isPermaLink="false">#comment-102697</guid>
		<description><![CDATA[Sorry, we&#039;re  not allowed to accept gifts.]]></description>
		<content:encoded><![CDATA[<p>Sorry, we&#8217;re  not allowed to accept gifts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: philpl1jb</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79563</link>
		<dc:creator>philpl1jb</dc:creator>
		<pubDate>Fri, 23 Jul 2010 09:54:54 +0000</pubDate>
		<guid isPermaLink="false">#comment-79563</guid>
		<description><![CDATA[Tom
Wow--wonder if that improvement holds when multiple files are included in the commitment.
Phil]]></description>
		<content:encoded><![CDATA[<p>Tom<br />
Wow&#8211;wonder if that improvement holds when multiple files are included in the commitment.<br />
Phil</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tomliotta</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79559</link>
		<dc:creator>tomliotta</dc:creator>
		<pubDate>Fri, 23 Jul 2010 06:44:41 +0000</pubDate>
		<guid isPermaLink="false">#comment-79559</guid>
		<description><![CDATA[&lt;i&gt;But what about those other jobs where commitment control will not be used?&lt;/i&gt;

Why would it not be used?

By using a journal, commitment control avoids a requirement to apply updates physically to files until after the instant of commitment is reached. All related uncommitted I/O is done in contiguous entries in the receivers making for good efficiency. Physical table I/O can be handled totally by DB2 after that. SLIC routines can make updates faster than system calls.

Here is some code to play with to see what commitment control can do. (Taken from Vern Hamberg&#039;s test in the midrange.com archives. Modified for more general usage, more specific example, etc.) This creates some test files:&lt;pre&gt;
DROP TABLE mylib.filecmt RESTRICT;
CREATE TABLE mylib.filecmt ( field1 INTEGER NOT NULL
                                    CONSTRAINT constraint1 PRIMARY KEY,
                             field2 INTEGER NOT NULL);
DROP TABLE mylib.filejrn RESTRICT;
CREATE TABLE mylib.filejrn ( field1 INTEGER NOT NULL
                                    CONSTRAINT constraint2 PRIMARY KEY,
                             field2 INTEGER NOT NULL);
DROP TABLE mylib.filenone RESTRICT;
CREATE TABLE mylib.filenone ( field1 INTEGER NOT NULL
                                     CONSTRAINT constraint3 PRIMARY KEY,
                              field2 INTEGER NOT NULL);&lt;/pre&gt;
Create a default QSQJRN journal in mylib before creating the tables. After running the SQL, run ENDJRNPF for the FILENONE table so that two tables are journaled and one is not.

This is basic CL to control the test run:&lt;pre&gt;
pgm

   clrpfm    filecmt
   clrpfm    filejrn
   clrpfm    filenone

   strcmtctl lcklvl(*all) cmtscope(*job)
   call      TSTJRNCMT
   endcmtctl

endpgm&lt;/pre&gt;
The ILE RPG to run the three updates:&lt;pre&gt;
     ffilecmt   if a e           k disk    commit prefix(C)
     f                                     rename( filecmt : FILECMTR )
     ffilejrn   if a e           k disk    prefix(J)
     f                                     rename( filejrn : FILEJRNR )
     ffilenone  if a e           k disk    prefix(N)
     f                                     rename( filenone : FILENONER )

     d i               s             10i 0
     d j               s             10i 0
     d k               s             10i 0 inz
     d sTimestamp      s               z
     d eTimestamp      s               z
     d duration        s             15p 6

     dTSTJRNCMT        pr

     dTSTJRNCMT        pi
      /free
       sTimestamp = %timestamp();

       for i = 1 to 100;
          for j = 1 to 1000;
             k += 1;
             cfield1 = k;
             cfield2 = k;
             write filecmtr;
          endfor;
          commit;
       endfor;

       eTimestamp = %timestamp();
       duration = %diff(eTimestamp : sTimestamp : *mseconds) / 1000000;
       dsply (&#039;Commit type: &#039; + %char(duration) + &#039; seconds&#039;);

       sTimestamp = %timestamp();

       for i = 1 to 100000;
          jfield1 = i;
          jfield2 = i;
          write filejrnr;
       endfor;

       eTimestamp = %timestamp();
       duration = %diff(eTimestamp : sTimestamp : *mseconds) / 1000000;
       dsply (&#039;Journal type: &#039; + %char(duration) + &#039; seconds&#039;);

       sTimestamp = %timestamp();

       for i = 1 to 100000;
          nfield1 = i;
          nfield2 = i;
          write filenoner;
       endfor;

       eTimestamp = %timestamp();
       duration = %diff(eTimestamp : sTimestamp : *mseconds) / 1000000;
       dsply (&#039;Neither type: &#039; + %char(duration) + &#039; seconds&#039;);

       *inlr = *on;
      /end-free&lt;/pre&gt;
The RPG inserts 100000 records into each of the three tables. FILECMT is updated under commitment control, FILEJRN is simply journaled and FILENONE is simply updated.

I ran three tests. Nothing special was done to alter performance -- no journal caching, no receivers in a multi-arm dedicated user ASP, etc. The delays that force journal writes synchronously under basic journaling are obvious.

Results:&lt;ul&gt;
	&lt;li&gt;DSPLY  Commit type: 115.240000 seconds&lt;/li&gt;&lt;li&gt;DSPLY  Journal type: 750.756000 seconds&lt;/li&gt;&lt;li&gt;DSPLY  Neither type: 61.373000 seconds &lt;/li&gt;&lt;li&gt;DSPLY  Commit type: 117.267000 seconds &lt;/li&gt;&lt;li&gt;DSPLY  Journal type: 750.333000 seconds&lt;/li&gt;&lt;li&gt;DSPLY  Neither type: 59.932000 seconds &lt;/li&gt;&lt;li&gt;DSPLY  Commit type: 107.282000 seconds&lt;/li&gt;&lt;li&gt;DSPLY  Journal type: 745.358000 seconds&lt;/li&gt;&lt;li&gt;DSPLY  Neither type: 58.359000 seconds &lt;/li&gt;
&lt;/ul&gt;
Performance tuning for journaling could bring the first two types down a bit, but the clear differences won&#039;t disappear. If journaling is important and performance is important, then commitment control becomes more important.

Tom]]></description>
		<content:encoded><![CDATA[<p><i>But what about those other jobs where commitment control will not be used?</i></p>
<p>Why would it not be used?</p>
<p>By using a journal, commitment control avoids a requirement to apply updates physically to files until after the instant of commitment is reached. All related uncommitted I/O is done in contiguous entries in the receivers making for good efficiency. Physical table I/O can be handled totally by DB2 after that. SLIC routines can make updates faster than system calls.</p>
<p>Here is some code to play with to see what commitment control can do. (Taken from Vern Hamberg&#8217;s test in the midrange.com archives. Modified for more general usage, more specific example, etc.) This creates some test files:
<pre>
DROP TABLE mylib.filecmt RESTRICT;
CREATE TABLE mylib.filecmt ( field1 INTEGER NOT NULL
                                    CONSTRAINT constraint1 PRIMARY KEY,
                             field2 INTEGER NOT NULL);
DROP TABLE mylib.filejrn RESTRICT;
CREATE TABLE mylib.filejrn ( field1 INTEGER NOT NULL
                                    CONSTRAINT constraint2 PRIMARY KEY,
                             field2 INTEGER NOT NULL);
DROP TABLE mylib.filenone RESTRICT;
CREATE TABLE mylib.filenone ( field1 INTEGER NOT NULL
                                     CONSTRAINT constraint3 PRIMARY KEY,
                              field2 INTEGER NOT NULL);</pre>
<p>Create a default QSQJRN journal in mylib before creating the tables. After running the SQL, run ENDJRNPF for the FILENONE table so that two tables are journaled and one is not.</p>
<p>This is basic CL to control the test run:
<pre>
pgm

   clrpfm    filecmt
   clrpfm    filejrn
   clrpfm    filenone

   strcmtctl lcklvl(*all) cmtscope(*job)
   call      TSTJRNCMT
   endcmtctl

endpgm</pre>
<p>The ILE RPG to run the three updates:
<pre>
     ffilecmt   if a e           k disk    commit prefix(C)
     f                                     rename( filecmt : FILECMTR )
     ffilejrn   if a e           k disk    prefix(J)
     f                                     rename( filejrn : FILEJRNR )
     ffilenone  if a e           k disk    prefix(N)
     f                                     rename( filenone : FILENONER )

     d i               s             10i 0
     d j               s             10i 0
     d k               s             10i 0 inz
     d sTimestamp      s               z
     d eTimestamp      s               z
     d duration        s             15p 6

     dTSTJRNCMT        pr

     dTSTJRNCMT        pi
      /free
       sTimestamp = %timestamp();

       for i = 1 to 100;
          for j = 1 to 1000;
             k += 1;
             cfield1 = k;
             cfield2 = k;
             write filecmtr;
          endfor;
          commit;
       endfor;

       eTimestamp = %timestamp();
       duration = %diff(eTimestamp : sTimestamp : *mseconds) / 1000000;
       dsply ('Commit type: ' + %char(duration) + ' seconds');

       sTimestamp = %timestamp();

       for i = 1 to 100000;
          jfield1 = i;
          jfield2 = i;
          write filejrnr;
       endfor;

       eTimestamp = %timestamp();
       duration = %diff(eTimestamp : sTimestamp : *mseconds) / 1000000;
       dsply ('Journal type: ' + %char(duration) + ' seconds');

       sTimestamp = %timestamp();

       for i = 1 to 100000;
          nfield1 = i;
          nfield2 = i;
          write filenoner;
       endfor;

       eTimestamp = %timestamp();
       duration = %diff(eTimestamp : sTimestamp : *mseconds) / 1000000;
       dsply ('Neither type: ' + %char(duration) + ' seconds');

       *inlr = *on;
      /end-free</pre>
<p>The RPG inserts 100000 records into each of the three tables. FILECMT is updated under commitment control, FILEJRN is simply journaled and FILENONE is simply updated.</p>
<p>I ran three tests. Nothing special was done to alter performance &#8212; no journal caching, no receivers in a multi-arm dedicated user ASP, etc. The delays that force journal writes synchronously under basic journaling are obvious.</p>
<p>Results:
<ul>
<li>DSPLY  Commit type: 115.240000 seconds</li>
<li>DSPLY  Journal type: 750.756000 seconds</li>
<li>DSPLY  Neither type: 61.373000 seconds </li>
<li>DSPLY  Commit type: 117.267000 seconds </li>
<li>DSPLY  Journal type: 750.333000 seconds</li>
<li>DSPLY  Neither type: 59.932000 seconds </li>
<li>DSPLY  Commit type: 107.282000 seconds</li>
<li>DSPLY  Journal type: 745.358000 seconds</li>
<li>DSPLY  Neither type: 58.359000 seconds </li>
</ul>
<p>Performance tuning for journaling could bring the first two types down a bit, but the clear differences won&#8217;t disappear. If journaling is important and performance is important, then commitment control becomes more important.</p>
<p>Tom</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogeybetsy</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79358</link>
		<dc:creator>bogeybetsy</dc:creator>
		<pubDate>Mon, 19 Jul 2010 17:42:25 +0000</pubDate>
		<guid isPermaLink="false">#comment-79358</guid>
		<description><![CDATA[I have sent an e-mail to Dave Owen (of IBM) and he says there will be no PTF of the ENDJRNPF improvement in V6R1 for V5R4.  

I guess there won&#039;t be any solution for this now...not until we get V6R1.  Anyway, thanks Tom and Philip for your time...

Allan]]></description>
		<content:encoded><![CDATA[<p>I have sent an e-mail to Dave Owen (of IBM) and he says there will be no PTF of the ENDJRNPF improvement in V6R1 for V5R4.  </p>
<p>I guess there won&#8217;t be any solution for this now&#8230;not until we get V6R1.  Anyway, thanks Tom and Philip for your time&#8230;</p>
<p>Allan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: philpl1jb</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79334</link>
		<dc:creator>philpl1jb</dc:creator>
		<pubDate>Sun, 18 Jul 2010 01:28:35 +0000</pubDate>
		<guid isPermaLink="false">#comment-79334</guid>
		<description><![CDATA[In mirrored systems a second 400 is used.  The journals from the on-line system are used to keep the off-line system up-to-date.  The updating process is delayed while the off-line system is backed-up.  I think some of the mirroring software might accomodate your batch jobs running on the back-up system and then pushing it to the on-line system but this is only a guess.  
Phil]]></description>
		<content:encoded><![CDATA[<p>In mirrored systems a second 400 is used.  The journals from the on-line system are used to keep the off-line system up-to-date.  The updating process is delayed while the off-line system is backed-up.  I think some of the mirroring software might accomodate your batch jobs running on the back-up system and then pushing it to the on-line system but this is only a guess.<br />
Phil</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogeybetsy</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79330</link>
		<dc:creator>bogeybetsy</dc:creator>
		<pubDate>Sat, 17 Jul 2010 19:12:29 +0000</pubDate>
		<guid isPermaLink="false">#comment-79330</guid>
		<description><![CDATA[I&#039;m not sure if we have mirrored systems.  Although I have heard others here talking about a shadow environment.  What&#039;s the relevance of mirrored systems?

&lt;i&gt;Your plan is very complicated and complicated systems tend to have higher failure rates.&lt;/i&gt;

I agree - I don&#039;t know if this 24x7 concept is prevalent nowadays.  What and how much benefit is it to a company? It is indeed a very complicated plan and I am already expecting high failure rates.  Or maybe I&#039;m just not that knowledgeable...]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure if we have mirrored systems.  Although I have heard others here talking about a shadow environment.  What&#8217;s the relevance of mirrored systems?</p>
<p><i>Your plan is very complicated and complicated systems tend to have higher failure rates.</i></p>
<p>I agree &#8211; I don&#8217;t know if this 24&#215;7 concept is prevalent nowadays.  What and how much benefit is it to a company? It is indeed a very complicated plan and I am already expecting high failure rates.  Or maybe I&#8217;m just not that knowledgeable&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: philpl1jb</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79329</link>
		<dc:creator>philpl1jb</dc:creator>
		<pubDate>Sat, 17 Jul 2010 15:10:54 +0000</pubDate>
		<guid isPermaLink="false">#comment-79329</guid>
		<description><![CDATA[Commitment control doesn&#039;t work without journalling.  I think you only have to journal after image ..commitment control will force before/after images.  

Yes,  Journaling will take  a little more resources.  Make sure that the receivers get rolled.

Your plan is very complicated and complicated systems tend to have higher failure rates.
I wish I could propose an alternative.  Are you running mirrored systems?
Phil]]></description>
		<content:encoded><![CDATA[<p>Commitment control doesn&#8217;t work without journalling.  I think you only have to journal after image ..commitment control will force before/after images.  </p>
<p>Yes,  Journaling will take  a little more resources.  Make sure that the receivers get rolled.</p>
<p>Your plan is very complicated and complicated systems tend to have higher failure rates.<br />
I wish I could propose an alternative.  Are you running mirrored systems?<br />
Phil</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogeybetsy</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79328</link>
		<dc:creator>bogeybetsy</dc:creator>
		<pubDate>Sat, 17 Jul 2010 13:21:38 +0000</pubDate>
		<guid isPermaLink="false">#comment-79328</guid>
		<description><![CDATA[If journaling can improve performance for a commitment control environment, we would have no problem with the batch job in which commitment control will be implemented.  But what about those other jobs where commitment control will not be used?]]></description>
		<content:encoded><![CDATA[<p>If journaling can improve performance for a commitment control environment, we would have no problem with the batch job in which commitment control will be implemented.  But what about those other jobs where commitment control will not be used?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tomliotta</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79303</link>
		<dc:creator>tomliotta</dc:creator>
		<pubDate>Fri, 16 Jul 2010 21:02:05 +0000</pubDate>
		<guid isPermaLink="false">#comment-79303</guid>
		<description><![CDATA[&lt;i&gt;We are afraid the performance of those other batch jobs would be slowed down by the journaling of the files.&lt;/i&gt;

Journaling can &lt;i&gt;improve performance&lt;/i&gt; in a commitment-control environment.

It gets kind of tricky when access paths are also being journaled. For example, if SQL is supplanting DDS, one issue is that the SQL page sizes are much bigger. That can make a big difference in how many bytes get transferred into a journal receiver.

Lots of factors can contribute.

&lt;i&gt;If IBM improved the ENDJRNPF in V6R1, then they should also have a PTF for V5R4, right?&lt;/i&gt;

Maybe. It happens. I wouldn&#039;t expect it for this function, but a number of preparatory PTFs related to journaling were released last week. Those didn&#039;t have a descriptions other than &quot;Incremental enhancement&quot; or &quot;Enablement for Future Enhancement&quot;.

I&#039;ve never checked, but it feels like many of these PTFs back to previous releases come at version boundaries. With i6.1 being followed by 7.1, this is a little unusual. Maybe IBM will PTF this backwards.

AFAIK, the more customers ask for it, the greater the chance of it happening. It obviously depends on whether or not it&#039;s even possible without the i6.1 LIC disk functions.

Tom]]></description>
		<content:encoded><![CDATA[<p><i>We are afraid the performance of those other batch jobs would be slowed down by the journaling of the files.</i></p>
<p>Journaling can <i>improve performance</i> in a commitment-control environment.</p>
<p>It gets kind of tricky when access paths are also being journaled. For example, if SQL is supplanting DDS, one issue is that the SQL page sizes are much bigger. That can make a big difference in how many bytes get transferred into a journal receiver.</p>
<p>Lots of factors can contribute.</p>
<p><i>If IBM improved the ENDJRNPF in V6R1, then they should also have a PTF for V5R4, right?</i></p>
<p>Maybe. It happens. I wouldn&#8217;t expect it for this function, but a number of preparatory PTFs related to journaling were released last week. Those didn&#8217;t have a descriptions other than &#8220;Incremental enhancement&#8221; or &#8220;Enablement for Future Enhancement&#8221;.</p>
<p>I&#8217;ve never checked, but it feels like many of these PTFs back to previous releases come at version boundaries. With i6.1 being followed by 7.1, this is a little unusual. Maybe IBM will PTF this backwards.</p>
<p>AFAIK, the more customers ask for it, the greater the chance of it happening. It obviously depends on whether or not it&#8217;s even possible without the i6.1 LIC disk functions.</p>
<p>Tom</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogeybetsy</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/endjrnpf-shortcoming/#comment-79274</link>
		<dc:creator>bogeybetsy</dc:creator>
		<pubDate>Fri, 16 Jul 2010 12:13:37 +0000</pubDate>
		<guid isPermaLink="false">#comment-79274</guid>
		<description><![CDATA[This batch process &lt;i&gt;allocates&lt;/i&gt; the files so that updates will be successful,


I mean allocate with exclusive locks (*EXCL)...]]></description>
		<content:encoded><![CDATA[<p>This batch process <i>allocates</i> the files so that updates will be successful,</p>
<p>I mean allocate with exclusive locks (*EXCL)&#8230;</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.046 seconds using memcached
Object Caching 393/399 objects using memcached

Served from: itknowledgeexchange.techtarget.com @ 2013-06-19 21:03:47 -->