<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rui Miguel Feio &#187; JES</title>
	<atom:link href="http://www.ruifeio.com/category/mainframe/jes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ruifeio.com</link>
	<description>Sharing knowledge with the world</description>
	<lastBuildDate>Sat, 24 Dec 2011 15:42:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How the system starts and manages batch jobs</title>
		<link>http://www.ruifeio.com/2010/12/11/how-the-system-starts-and-manages-batch-jobs/</link>
		<comments>http://www.ruifeio.com/2010/12/11/how-the-system-starts-and-manages-batch-jobs/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 20:06:48 +0000</pubDate>
		<dc:creator>Rui Miguel Feio</dc:creator>
				<category><![CDATA[JES]]></category>
		<category><![CDATA[MVS]]></category>
		<category><![CDATA[Tech - Mainframe]]></category>

		<guid isPermaLink="false">http://www.ruifeio.com/?p=615</guid>
		<description><![CDATA[Batch processing is the most fundamental function of z/OS. Many batch jobs are run in parallel and JCL is used to control the operation of each job. Correct use of JCL parameters (especially the DISP parameter in DD statements) allows parallel, asynchronous execution of jobs that may need access to the same data sets. The [...]]]></description>
			<content:encoded><![CDATA[<p>Batch processing is the most fundamental function of z/OS. Many batch jobs are run in parallel and JCL is used to control the operation of each job. Correct use of JCL parameters (especially the DISP parameter in DD statements) allows parallel, asynchronous execution of jobs that may need access to the same data sets.</p>
<p>The job entry subsystem (JES) helps z/OS receive jobs, schedule them for processing, and determine how job output is processed.</p>
<p>An <strong>initiator </strong>is a system program that processes JCL, sets up the necessary environment in an address space, and runs a batch job in the same address space. Multiple initiators (each in an address space) permit the parallel execution of batch jobs.</p>
<p>One goal of an operating system is to process work while making the best use of system resources. To achieve this goal, resource management is needed during key phases to do the following:</p>
<p>-    Before job processing, reserve input and output resources for jobs.</p>
<p>-    During job processing, manage spooled SYSIN and SYSOUT data.</p>
<p>-    After job processing, free all resources used by the completed jobs, making the resources available to other jobs.</p>
<p>z/OS shares with the <strong>Job Entry Subsystem </strong>(JES) the management of jobs and resources. JES receives jobs into the system, schedules them for processing by z/OS, and controls their output processing. JES is the manager of the jobs waiting in a queue. It manages the priority of the jobs and their associated input data and output results. The initiator uses the statements in the JCL records to specify the resources required of each individual job after it is released (dispatched) by JES.</p>
<p>During the life of a job, both JES and the z/OS base control program control different phases of the overall processing. Jobs are managed in queues: Jobs that are waiting to run (conversion queue), currently running (execution queue), waiting for their output to be produced (output queue), having their output produced (hard-copy queue), and waiting to be purged from the system (purge queue).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruifeio.com/2010/12/11/how-the-system-starts-and-manages-batch-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JES2 Start Methods</title>
		<link>http://www.ruifeio.com/2010/11/13/jes2-start-methods/</link>
		<comments>http://www.ruifeio.com/2010/11/13/jes2-start-methods/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 21:38:30 +0000</pubDate>
		<dc:creator>Rui Miguel Feio</dc:creator>
				<category><![CDATA[JES]]></category>
		<category><![CDATA[Tech - Mainframe]]></category>

		<guid isPermaLink="false">http://www.ruifeio.com/?p=590</guid>
		<description><![CDATA[The following are the three possible JES2 start methods: 1. WARM - This is the default start method. - WARM specifies that JES2 is to continue processing jobs from where they were stopped. - If the FORMAT option was also coded, then JES2 will ignore the WARM specification and perform a cold start. 2. COLD [...]]]></description>
			<content:encoded><![CDATA[<p>The following are the three possible JES2 start methods:</p>
<p><strong>1. </strong><strong>WARM </strong></p>
<p>- This is the default start method.</p>
<p>- WARM specifies that JES2 is to continue processing jobs from where they were stopped.</p>
<p>- If the FORMAT option was also coded, then JES2 will ignore the WARM specification and perform a cold start.</p>
<p><strong>2. </strong><strong>COLD</strong></p>
<p>- COLD specifies that JES2 is to be cold-started.</p>
<p>- All jobs in the system will be purged and all job data on the spool volumes will be scratched which means that the existing data in JES will be totally destroyed.</p>
<p><strong>3. </strong><strong>FORMAT</strong></p>
<p><strong> </strong></p>
<p>- FORMAT specifies that JES2 is to format all existing spool volumes.</p>
<p>- With FORMAT, JES2 automatically performs a cold start.</p>
<p>- If you add unformatted spool volumes, JES2 automatically formats them whether FORMAT is specified or not.</p>
<p>The default value is NOFMT which means that JES2 is not to format existing spool volumes unless JES2 determines that formatting is required.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruifeio.com/2010/11/13/jes2-start-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Job Processing Phases in JES2</title>
		<link>http://www.ruifeio.com/2010/11/03/job-processing-phases-in-jes2/</link>
		<comments>http://www.ruifeio.com/2010/11/03/job-processing-phases-in-jes2/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 20:34:17 +0000</pubDate>
		<dc:creator>Rui Miguel Feio</dc:creator>
				<category><![CDATA[JES]]></category>
		<category><![CDATA[Tech - Mainframe]]></category>

		<guid isPermaLink="false">http://www.ruifeio.com/?p=583</guid>
		<description><![CDATA[Work to be processed by a z/OS system has to be defined using Job Control Language (JCL). JCL is used to define which program to execute, which resources to allocate, whom to notify, and so forth. This description of work is called a job. z/OS uses a Job Entry Subsystem (JES) to receive jobs into [...]]]></description>
			<content:encoded><![CDATA[<p>Work to be processed by a z/OS system has to be defined using Job Control Language (JCL). JCL is used to define which program to execute, which resources to allocate, whom to notify, and so forth. This description of work is called a job.</p>
<p>z/OS uses a Job Entry Subsystem (JES) to receive jobs into the operating system, schedule them for processing, and to control their output processing. The actual execution of a job is handled by an initiator.</p>
<p>The process of job processing can be divided into the following five stages:</p>
<p>- Input Phase</p>
<p>- Conversion Phase</p>
<p>- Execution Phase</p>
<p>- Output Phase</p>
<p>- Purge Phase</p>
<p>For JES2 these phases represent:</p>
<p><strong>1. </strong><strong>Job Input phase</strong></p>
<p>JES2 jobs can be entered on input devices such as card readers, remote terminals, or other programs. Jobs can also come from other nodes in a job entry network and from internal readers. (An internal reader is a program that other programs can use to submit jobs, control statements, and commands to JES2.)</p>
<p>As JES2 reads the input stream, it assigns a job identifier to each job and places each job&#8217;s</p>
<p>JCL, optional JES2 control statements, and data within the job (SYSIN data) onto DASD data sets called spool data sets. Simultaneous peripheral operations online (Spool) refers to the direct access device that contains the spool data sets. Spooling provides simultaneous processing and a temporary storage area for work that is not yet completed.</p>
<p>Later on, JES2 selects jobs from the spool data sets for processing and subsequent running.</p>
<p><strong>2. </strong><strong>Conversion phase</strong></p>
<p><strong> </strong></p>
<p>JES2 uses a converter program to analyze each job&#8217;s JCL statements and to perform a syntax check. It also determines if the JCL includes any procedure calls. If so, the converter takes the job&#8217;s JCL and merges it with the JCL from the procedure library (for example, SYS1.PROCLIB), and converts the composite JCL into internal text.</p>
<p>The internal text is stored in the spool data set. If, during the job conversion any JCL errors are detected, JES2 issues the proper error messages and queues the job for output processing. If JES2 detects no errors, it queues the job for further processing according to its priority within its job class.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>3. </strong><strong>Execution phase</strong></p>
<p><strong> </strong></p>
<p>Before work can be processed on a z/OS system, initiators have to be started. An initiator is started either by an operator or automatically by JES2 when the system is initialized. If an initiator is ready to process work, it requests a job from JES2.</p>
<p>JES2 selects jobs based on the job classes that are assigned to the initiator and the priority order in which the job classes should be searched. When JES2 selects a job, it passes it to the initiator. The initiator then invokes the interpreter to build control blocks from the internal text that the converter created for the job.</p>
<p>The initiator allocates the resources specified in the JCL for the first step of the job. This allocation ensures that the devices are available before the job step starts running. The initiator then starts the program requested in the JCL EXEC statement.</p>
<p>JES2 and the base control program communicate constantly to control system processing.</p>
<p>The communication mechanism, known as the subsystem interface, allows z/OS to request services of JES2. For example, a requestor can ask JES2 to find a job, do message or command processing, or open (access) a SYSIN or SYSOUT data set. Further, the base control program notifies JES2 of events such as messages, operator commands, the end of a job, or the end of a task.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>4. </strong><strong>Output phase</strong></p>
<p><strong> </strong></p>
<p>JES2 controls all output processing, that is, system messages that must be printed, as well as data sets requested by the user that must be printed or punched. After a job finishes, JES2 analyzes the characteristics of the job&#8217;s output in terms of its output class and device setup requirements; then JES2 groups data sets with similar characteristics. JES2 queues the output for print or punch processing.</p>
<p>JES2 selects output for processing from the output queue. It can contain output that is to be processed locally or output to be processed at a remote location (either a remote job entry (RJE) workstation or another node known as network job entry (NJE)). After processing all the output for a particular job, JES2 puts the job on the purge queue.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>5. </strong><strong>Purge phase</strong></p>
<p><strong> </strong></p>
<p>When all processing for a job completes, JES2 releases the spool space assigned to the job, making the space available for allocation to subsequent jobs. JES2 then issues a message to the operator indicating that the job has been purged from the system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruifeio.com/2010/11/03/job-processing-phases-in-jes2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What does a JES initiator do?</title>
		<link>http://www.ruifeio.com/2010/11/01/what-does-a-jes-initiator-do/</link>
		<comments>http://www.ruifeio.com/2010/11/01/what-does-a-jes-initiator-do/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 20:10:57 +0000</pubDate>
		<dc:creator>Rui Miguel Feio</dc:creator>
				<category><![CDATA[JES]]></category>
		<category><![CDATA[Tech - Mainframe]]></category>

		<guid isPermaLink="false">http://www.ruifeio.com/?p=580</guid>
		<description><![CDATA[A JES initiator performs several functions to ensure that multiple jobs run at the same time, without conflicts. To run multiple jobs asynchronously, the system must perform a number of functions: -    Select jobs from the input queues (JES does this). -    Ensure that multiple jobs (including TSO users and other interactive applications) do not [...]]]></description>
			<content:encoded><![CDATA[<p>A JES initiator performs several functions to ensure that multiple jobs run at the same time, without conflicts.</p>
<p>To run multiple jobs asynchronously, the system must perform a number of functions:</p>
<p>-    Select jobs from the input queues (JES does this).</p>
<p>-    Ensure that multiple jobs (including TSO users and other interactive applications) do not conflict in data set usage.</p>
<p>-    Ensure that single-user devices, such as tape drives, are allocated correctly.</p>
<p>-    Find the executable programs requested for the job.</p>
<p>-    Clean up after the job ends and then request the next job.</p>
<p>Most of this work is done by the initiator, based on JCL information for each job. The most complex function is to ensure there are no conflicts due to data set utilization. For example, if two jobs try to write in the same data set at the same time (or one reads while the other writes), there is a conflict. This event would normally result in corrupted data. The primary purpose of JCL is to tell an initiator what is needed for the job.</p>
<p>The prevention of conflicting data set usage is critical to z/OS and is one of the defining characteristics of the operating system. When the JCL is properly constructed, the prevention of conflicts is automatic. For example, if job A and job B must both write to a particular data set, the system (through the initiator) does not permit both jobs to run at the same time. Instead, whichever job starts first causes an initiator attempting to run the other job to wait until the first job completes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruifeio.com/2010/11/01/what-does-a-jes-initiator-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

