<!--

    Copyright (c) 2005, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<p><a id="ref-batchjobsconfiguration" name="ref-batchjobsconfiguration"></a><a id="GHJML146" name="GHJML146"></a></p>

<h4>Batch Runtime Configuration</h4>
<a name="BEGIN" id="BEGIN"></a>
<p>Use the Batch Runtime Configuration page to view and change the configuration of the batch runtime. The batch runtime uses a managed executor service and a data source to execute batch jobs. The managed executor service provides threads to jobs, and the data source stores job information. Batch runtime configuration data is stored in the <code>config</code> element in <code>domain.xml</code>.</p>
<p>The Batch Runtime Configuration page contains the following information.</p>
<dl>
<dt>Instance Name</dt>
<dt>Cluster Name</dt>
<dd>
<p>The name of the GlassFish cluster or server instance to which the configuration applies. This is a read-only field.</p>
</dd>
<dt>Executor Service Lookup Name</dt>
<dd>
<p>The JNDI lookup name of the managed executor service that provides threads to batch jobs. The default managed executor service is <code>concurrent/__defaultManagedExecutorService</code>.</p>
<p>The managed executor service can be changed after a batch job has been submitted to the batch runtime without impacting execution of the job.</p>
</dd>
<dt>Data Source Lookup Name</dt>
<dd>
<p>The JNDI lookup name of the data source that stores information about current and past batch jobs. The default data source is <code>jdbc/__TimerPool</code>.</p>
<p>Do not change the data source after the first batch job has been submitted to the batch runtime for execution. If the data source must be changed, stop and restart the domain and then make the change before any jobs are started or restarted. However, once the data source has been changed, information stored in the previous data source becomes inaccessible.</p>
</dd>
</dl>
<a id="GHJML158" name="GHJML158"></a>
<h5>Related Tasks</h5>
<ul>
<li>
<p><a href="task-configurebatchruntime.html">To Configure the Batch Runtime</a></p>
</li>
<li>
<p><a href="task-viewbatchjobexecutions.html">To View Batch Job Executions</a></p>
</li>
</ul>
<a id="GHJML159" name="GHJML159"></a>
<h5>Related asadmin Commands</h5>
<ul>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM897"><code>set-batch-runtime-configuration</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM863"><code>list-batch-runtime-configuration</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM861"><code>list-batch-jobs</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM884"><code>list-batch-job-executions</code>(1)</a></p>
</li>
<li>
<p><a href="http://www.oracle.com/pls/topic/lookup?ctx=E26576_01&id=GSRFM895"><code>list-batch-job-steps</code>(1)</a></p>
</li>
</ul>




<small>Copyright &#169; 2005, 2017, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></small>
