<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=IFCHKPT_%28HLI_function%29</id>
	<title>IFCHKPT (HLI function) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=IFCHKPT_%28HLI_function%29"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;action=history"/>
	<updated>2026-05-13T18:44:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=93934&amp;oldid=prev</id>
		<title>JAL: link repair</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=93934&amp;oldid=prev"/>
		<updated>2016-09-01T23:15:56Z</updated>

		<summary type="html">&lt;p&gt;link repair&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:15, 1 September 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l90&quot;&gt;Line 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 90:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are other differences in IFCHKPT processing between single cursor IFSTRT update threads and multiple cursor IFSTRT threads. On a multiple cursor IFSTRT thread, a transaction is activated only when, and if, updating calls are executed. This allows checkpoints to be taken using IFCHKPT between update units while the host language program is still in execution.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are other differences in IFCHKPT processing between single cursor IFSTRT update threads and multiple cursor IFSTRT threads. On a multiple cursor IFSTRT thread, a transaction is activated only when, and if, updating calls are executed. This allows checkpoints to be taken using IFCHKPT between update units while the host language program is still in execution.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See [[HLI: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Transaction processing and recovery&lt;/del&gt;]] for more information about checkpoints and transaction management in the HLI processing environment.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See [[HLI: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Transactions&lt;/ins&gt;]] for more information about checkpoints and transaction management in the HLI processing environment.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Checkpointing for a multithreaded job===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Checkpointing for a multithreaded job===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JAL</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=89136&amp;oldid=prev</id>
		<title>ELowell at 22:05, 12 July 2016</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=89136&amp;oldid=prev"/>
		<updated>2016-07-12T22:05:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:05, 12 July 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The conventions used on this page are described in [[HLI: Function &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;call list&lt;/del&gt;#Function call notation conventions|Function call notation conventions]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The conventions used on this page are described in [[HLI: Function &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;summary&lt;/ins&gt;#Function call notation conventions|Function call notation conventions]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=88390&amp;oldid=prev</id>
		<title>ELowell at 21:05, 11 July 2016</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=88390&amp;oldid=prev"/>
		<updated>2016-07-11T21:05:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:05, 11 July 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The conventions used on this page are described in [[HLI: Function call list#Function call notation conventions|Function call notation conventions]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=84724&amp;oldid=prev</id>
		<title>ELowell: Created page with &quot; ==Summary== &lt;dl&gt; &lt;dt&gt;Description &lt;dd&gt;The IFCHKPT call (CHECKPOINT) accesses the Model 204 checkpoint facility and performs the specified function. The following functions can...&quot;</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFCHKPT_(HLI_function)&amp;diff=84724&amp;oldid=prev"/>
		<updated>2016-07-05T20:32:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; ==Summary== &amp;lt;dl&amp;gt; &amp;lt;dt&amp;gt;Description &amp;lt;dd&amp;gt;The IFCHKPT call (CHECKPOINT) accesses the Model 204 checkpoint facility and performs the specified function. The following functions can...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Summary==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Description&lt;br /&gt;
&amp;lt;dd&amp;gt;The IFCHKPT call (CHECKPOINT) accesses the Model 204 checkpoint facility and performs the specified function. The following functions can be performed using IFCHKPT:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Query checkpointing status&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Indicate that a checkpoint can take place&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Initiate an attempt to take a checkpoint&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Wait for a checkpoint to complete or time out &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Thread type&lt;br /&gt;
&amp;lt;dd&amp;gt;multiple cursor IFSTRT, single cursor IFSTRT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;IFCALL function number&lt;br /&gt;
&amp;lt;dd&amp;gt;30&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;IFCHKPT|IFCHKP(RETCODE,FUNC_CODE,CHK_ID)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Compile-only form&lt;br /&gt;
&amp;lt;dd&amp;gt;Not available&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Execute-only form&lt;br /&gt;
&amp;lt;dd&amp;gt;Not available&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Specify the parameters in the syntax order shown above. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Parameter&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;RETCODE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[O,i,r] The Model 204 return code is a required output parameter. The code is a binary integer value. See the completion codes in [[#IFCHKPT completion return codes (RETCODE)|IFCHKPT completion return codes (RETCODE)]].&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;FUNC_CODE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[I,i,r] The function code is a required input parameter that specifies the code number for the checkpointing function to be performed. Specify the code number as an integer value using one of the codes listed below. You can specify one code (0-3) per call:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Code&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Function&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Samples checkpoint status. (Does not initiate checkpoint; Model 204 returns the status in the return code output parameter.)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;Quiesces the thread, initiates an attempt to take a checkpoint, and returns immediately.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
In a multithreaded transaction, this code is valid only for single cursor IFSTRT threads with update indicator 1 that are participating in the transaction. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This function code is not valid for a multiple cursor IFSTRT thread. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;Quiesces the thread, indicates that a checkpoint can be taken, and waits for a checkpoint to occur or time out. (Does not initiate an attempt to take a checkpoint.)&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
In a multithreaded transaction, this code is valid only if all the other single cursor updating IFSTRT threads that are participating in the transaction have called IFCHKPT with function code 1.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;See &amp;quot;Notes and Tips&amp;quot; below for information about quiescing threads.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;CHK_ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[O,c,r/o] The checkpoint ID is an output parameter that is required only for a corresponding function code of 1, 2, or 3 in the IFCHKPT call. The ID identifies the checkpoint by date and time on return from the IFCHKPT call. Model 204 returns an eight-byte packed value in the following format:&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;YYYYDDDtttttttt&amp;lt;/var&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;where:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;YYYYDDD&amp;lt;/var&amp;gt; is the year and day (in Julian date format) that the checkpoint is taken or attempted. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;tttttttt&amp;lt;/var&amp;gt; is the exact time that the checkpoint is taken or attempted. &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The IFCHKPT call can be used to take checkpoints that are used for recovery on IFSTRT threads from within an IFAM2 or IFAM4 job.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
IFCHKPT automatically closes all files or groups that are open on the thread.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
There are other differences in IFCHKPT processing between single cursor IFSTRT update threads and multiple cursor IFSTRT threads. On a multiple cursor IFSTRT thread, a transaction is activated only when, and if, updating calls are executed. This allows checkpoints to be taken using IFCHKPT between update units while the host language program is still in execution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See [[HLI: Transaction processing and recovery]] for more information about checkpoints and transaction management in the HLI processing environment.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Checkpointing for a multithreaded job===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For a job that uses only multiple cursor IFSTRT threads, follow the steps below:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Call IFCMMT on all but the last thread with update units active.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Call IFCHKPT with function code 3 on the last updating thread.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Typically, a job would only have one multiple cursor IFSTRT thread, which would eliminate step 1 above. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For a job that mixes both single cursor and multiple cursor IFSTRT threads, follow the steps below:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Call IFCMMT on all multiple cursor IFSTRT threads with update units active.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Follow guidelines for checkpointing on single cursor IFSTRT threads which are described below.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Rocket does not recommend that you mix multiple cursor and single cursor IFSTRT threads in an HLI application.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Checkpointing on single cursor IFSTRT threads===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Once a host language job issues a single cursor IFSTRT (or IFSTRTN) call with the update indicator set to 1, Model 204 considers an update unit to be in progress and checkpoint requests from other sources time out. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
With a multithreaded transaction, each single cursor IFSTRT update thread in the job must indicate to Model 204 that it is quiescing in preparation for an attempt to take a checkpoint. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Using single cursor IFSTRT update threads, in order to enable a checkpoint request to be completed, the host language job must perform one of the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Issue an IFFNSH, which effectively resets the update indicator but also terminates the connection to Model 204. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Call IFCHKPT with function code 1, 2, or 3. With multiple threads, call IFCHKPT following these steps:&lt;br /&gt;
&amp;lt;ol type=&amp;quot;a&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Issue IFCHKPT with function code 1 on all but the last single cursor IFSTRT updating thread. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Issue IFCHKPT with function code 2 or 3 on the last single cursor IFSTRT updating thread. See the following sections. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===IFCHKPT on last updating thread with function code 2===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the last updating thread issues IFCHKPT with function code 2, the thread waits until the next attempt to take a checkpoint. It does not start an attempt to take a checkpoint. It is impossible to predict how long the thread waits.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The IFCHKPT function code 1 also initiates an attempt to take a checkpoint on a single cursor IFSTRT updating thread. If a job has more than one single cursor IFSTRT thread, and it issues IFCHKPT with function code 1 on all but the last thread, the IFCHKPT function code 2 on the last thread may wait on the checkpoint attempt that was started by the first IFCHKPT call. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Whether or not this is the case depends on the setting of the CPTQ User 0 parameter and the amount of time between the first (function code 1) IFCHKPT call and the last (function code 2) IFCHKPT call. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====IFCHKPT on last updating thread with function code 3====&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the last updating thread issues IFCHKPT with function code 3, an attempt to take a checkpoint is initiated. The thread waits for the checkpoint to complete or time out. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The maximum time that the thread may wait is approximately CPTO + CPTQ. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;[[CPTO parameter|CPTO]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[CPTQ parameter|CPTQ]]&amp;lt;/var&amp;gt; are Model 204 User 0 parameters that control the number of seconds to wait for threads to quiesce before timing out a checkpoint. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See [[HLI: Recovery and checkpoints]] for information about CPTO and CPTQ parameters in the HLI processing environment. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Completion return code (RETCODE)==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following table lists the Model 204 completion codes (RETCODE) for the IFCHKPT call. Each completion code corresponds to a particular function code (FUNC_CODE). &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;caption&amp;quot;&amp;gt;IFCHKPT completion return codes (RETCODE)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Return code&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Function code&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Completion condition&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Checkpoint is not currently in progress. CHK_ID set to ID of last successful checkpoint.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0&lt;br /&gt;
&amp;lt;p&amp;gt;1&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2,3&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Checkpoint is in progress.&lt;br /&gt;
&amp;lt;p&amp;gt;Checkpoint is started; CHK_ID set.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Checkpoint completed successfully; CHK_ID set.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2,3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Checkpoint timed out or was cancelled. Checkpoint has not been taken; CHK_ID is set to the time the checkpoint attempt was started.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2,3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Caller is not allowed to wait for checkpoints, and call is ignored. Indicates either that the caller is online (CICS) or that the caller&amp;#039;s thread belongs to a batch job with other updating threads that have not called IFCHKPT.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1&lt;br /&gt;
&amp;lt;p&amp;gt;all&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Call has been issued on a multiple cursor IFSTRT thread. IFCHKPT with a function code 1 is not allowed on a multiple cursor IFSTRT thread.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Checkpointing is not active, and call is ignored. Either module CHKP is not linked with the Host Language Interface/Model 204 load module being used, or the CHKPOINT data set definition statement is absent. A return code of 4 is also returned for invalid function codes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;all&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Roll forward recovery is running. Checkpointing is not active and the call is ignored.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sub-transaction checkpoints and IFAM===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Sub-transaction checkpoints are transparent to IFAM users. You can implement transaction-only or transaction and sub-transaction checkpoints in IFAM4, as for an Online. You can use them to recover files in active update by IFAM threads at the time of the sub-transaction checkpoint.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continuing as transaction checkpoints===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Checkpoints that accompany the following messages continue to be transaction checkpoints:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0962 &amp;#039;SIGN ON, JOB NAME = &amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0963 &amp;#039;SIGN OFF. JOB NAME = &amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Checkpoints requested and/or waited for by IFAM threads issuing various IFCHKPT function codes also continue to be transaction checkpoints. Also, checkpoint status queried by IFCHKPT function code 0 refers only to the status of the last transaction checkpoint attempted, whether an intervening sub-transaction checkpoint has occurred or not.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An IFCHKPT call issues only transaction checkpoints. Therefore, an IFCHKPT call is not necessary to use sub-transaction checkpoints. If no IFCHKPT calls are made, IFAM updates are recoverable with sub-transaction checkpoints.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding example (COBOL)==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following example shows checkpointing on a multiple cursor IFSTRT thread (in an IFAM2 or IFAM4 job). A function code of 3 initiates an attempt to take a checkpoint and waits for it to complete or time out. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;WORKING-STORAGE SECTION.&lt;br /&gt;
01  CALL-ARGS.&lt;br /&gt;
    05  RETCODE   PIC 9(5) COMP SYNC.&lt;br /&gt;
    05  FUNCTION  PIC 9(5) VALUE 3.&lt;br /&gt;
    05  CHKPTID   PIC X(8). &lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
PROCEDURE DIVISION.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
  CALL &amp;quot;IFCHKPT&amp;quot; USING RETCODE, FUNCTION, CHKPTID.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: HLI functions]]&lt;/div&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
</feed>