<?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>Archives des Best practices - ETL administration console</title>
	<atom:link href="https://eac.cidwe.com/docs-category/best-practices/feed/" rel="self" type="application/rss+xml" />
	<link>https://eac.cidwe.com/docs-category/best-practices/</link>
	<description>L’application essentielle pour le déploiement et le monitoring de vos flux ETL Talend.</description>
	<lastBuildDate>Thu, 11 Sep 2025 14:17:55 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://eac.cidwe.com/wp-content/uploads/2022/10/cropped-logo-G-32x32.png</url>
	<title>Archives des Best practices - ETL administration console</title>
	<link>https://eac.cidwe.com/docs-category/best-practices/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>API</title>
		<link>https://eac.cidwe.com/docs/api/</link>
					<comments>https://eac.cidwe.com/docs/api/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Fri, 22 Aug 2025 13:41:44 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1556</guid>

					<description><![CDATA[<p>You can access the in-app API reference at https://your-eac-domain/api/doc.Below is a quick summary of the main actions and their HTTP methods. Action Method Get the application version GET Login check POST Get execution task GET Check if a task has an execution in progress GET Start a task on a server POST Start a task [&#8230;]</p>
<p>L’article <a href="https://eac.cidwe.com/docs/api/">API</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>You can access the in-app API reference at <code>https://your-eac-domain/api/doc</code>.<br>Below is a quick summary of the main actions and their HTTP methods.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="368" src="https://eac.cidwe.com/wp-content/uploads/2025/08/image-29-1024x368.png" alt="API endpoints" class="wp-image-1557" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/image-29-1024x368.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-29-300x108.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-29-768x276.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-29-1536x552.png 1536w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-29.png 1877w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Action</th><th>Method</th></tr></thead><tbody><tr><td>Get the application version</td><td><strong>GET</strong></td></tr><tr><td>Login check</td><td><strong>POST</strong></td></tr><tr><td>Get execution task</td><td><strong>GET</strong></td></tr><tr><td>Check if a task has an execution in progress</td><td><strong>GET</strong></td></tr><tr><td>Start a task on a server</td><td><strong>POST</strong></td></tr><tr><td>Start a task on this server</td><td><strong>POST</strong></td></tr><tr><td>Stop an execution task</td><td><strong>POST</strong></td></tr></tbody></table></figure>



<p><em>For paths, parameters, and response schemas, refer to the in-app documentation at the address above.</em></p>
<p>L’article <a href="https://eac.cidwe.com/docs/api/">API</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Test a New Job Version Without Impacting the Schedule</title>
		<link>https://eac.cidwe.com/docs/test-a-new-job-version-without-impacting-the-schedule/</link>
					<comments>https://eac.cidwe.com/docs/test-a-new-job-version-without-impacting-the-schedule/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Fri, 22 Aug 2025 12:55:49 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1545</guid>

					<description><![CDATA[<p>Goal Run a new job version safely while your scheduled task keeps using the current, stable version. Prerequisites Steps Notes &#38; Tips</p>
<p>L’article <a href="https://eac.cidwe.com/docs/test-a-new-job-version-without-impacting-the-schedule/">Test a New Job Version Without Impacting the Schedule</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading has-large-font-size">Goal</h2>



<p>Run a new <strong>job version</strong> safely while your <strong>scheduled task</strong> keeps using the current, stable version.</p>



<h2 class="wp-block-heading has-large-font-size">Prerequisites</h2>



<ul class="wp-block-list">
<li>You have a <strong>scheduled task</strong> already running on version <strong>A</strong>.</li>



<li>You’ve deployed job version <strong>B</strong> that you want to test.</li>



<li>Role: <strong>Admin</strong> (to edit tasks and versions).</li>
</ul>



<h2 class="wp-block-heading has-large-font-size">Steps</h2>



<ol class="wp-block-list">
<li><strong>Pin the current scheduled task to its version</strong></li>
</ol>



<ul class="wp-block-list">
<li>Go to <strong>Task › Task setup</strong> of your scheduled task.</li>



<li>Select the desired <strong>Job version = A</strong>.</li>



<li><strong>Uncheck “Follow the new version”.</strong><br><em>This pins the task to version A even if new versions are deployed.</em></li>
</ul>



<ol start="2" class="wp-block-list">
<li><strong>Create a separate test task for the new version</strong></li>
</ol>



<ul class="wp-block-list">
<li>From the <strong>Job</strong> or <strong>Tasks</strong> list, create a <strong>new task</strong> (e.g., <code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">MyTask_test</mark></code>).</li>



<li>In <strong>Task setup</strong>, choose <strong>Job version = B</strong>.</li>



<li>Leave the test task <strong>unscheduled</strong> (manual runs only), or schedule it off-hours for testing.</li>
</ul>



<ol start="3" class="wp-block-list">
<li><strong>Run and validate</strong></li>
</ol>



<ul class="wp-block-list">
<li>Launch the <strong>test task</strong> manually.</li>



<li>Check <strong>logs, status, and metrics</strong> as usual.</li>
</ul>



<ol start="4" class="wp-block-list">
<li><strong>Promote the new version to production</strong></li>
</ol>



<ul class="wp-block-list">
<li>When satisfied, go back to the <strong>scheduled task</strong>:
<ul class="wp-block-list">
<li>Either <strong>re-check “Follow the new version”</strong> (so it will pick up version B now and future versions),</li>



<li><strong>or</strong> explicitly <strong>select Job version = B</strong> to stay pinned to B.</li>
</ul>
</li>
</ul>



<ol start="5" class="wp-block-list">
<li><strong>Clean up</strong></li>
</ol>



<ul class="wp-block-list">
<li>Delete the temporary <strong>test task</strong> if no longer needed.</li>
</ul>



<h2 class="wp-block-heading has-large-font-size">Notes &amp; Tips</h2>



<ul class="wp-block-list">
<li><strong>Why this works:</strong> unchecking <strong>“Follow the new version”</strong> freezes a task on a specific job version, so your schedule remains stable while you test elsewhere.</li>



<li>Use a clear naming convention for test tasks (e.g., <code>*<mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">_test</mark></code>) and keep them <strong>manual</strong> to avoid accidental runs.</li>



<li>If contexts differ between versions, review <strong>Task setup › Context</strong> before testing.</li>



<li>Rollback is instant: just switch the scheduled task back to version <strong>A</strong> (or keep it pinned).</li>
</ul>
<p>L’article <a href="https://eac.cidwe.com/docs/test-a-new-job-version-without-impacting-the-schedule/">Test a New Job Version Without Impacting the Schedule</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/test-a-new-job-version-without-impacting-the-schedule/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Setup mount point between servers</title>
		<link>https://eac.cidwe.com/docs/setup-mount-point-between-servers/</link>
					<comments>https://eac.cidwe.com/docs/setup-mount-point-between-servers/#respond</comments>
		
		<dc:creator><![CDATA[wp_jdarges]]></dc:creator>
		<pubDate>Wed, 09 Jul 2025 08:45:18 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1000</guid>

					<description><![CDATA[<p>This part only applies to a multi-server installation. On master server Install NFS service: Edit exports file: Define rights for slave servers (imagine slave1 is is identified by 192.168.1.2 and slave 2 by 192.168.1.3): /var/www/html/shared/var/eac 192.168.1.2(rw,sync,no_subtree_check) 192.168.1.3(rw,sync,no_subtree_check) On slaves Install NFS client: Create mount point (192.168.1.1 is the main server): Mount on server startup:</p>
<p>L’article <a href="https://eac.cidwe.com/docs/setup-mount-point-between-servers/">Setup mount point between servers</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>This part only applies to a multi-server installation.</p>



<h2 class="wp-block-heading has-large-font-size">On master server</h2>



<p>Install NFS service:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install nfs-kernel-server</code></pre>



<p>Edit exports file:</p>



<pre class="wp-block-code"><code>sudo nano /etc/exports</code></pre>



<p>Define rights for slave servers (imagine slave1 is is identified by 192.168.1.2 and slave 2 by 192.168.1.3):</p>



<p>/var/www/html/shared/var/eac 192.168.1.2(rw,sync,no_subtree_check) 192.168.1.3(rw,sync,no_subtree_check)</p>



<h2 class="wp-block-heading has-large-font-size">On slaves</h2>



<p>Install NFS client:</p>



<pre class="wp-block-code"><code>sudo apt install nfs-common</code></pre>



<p>Create mount point (192.168.1.1 is the main server):</p>



<pre class="wp-block-code"><code>sudo mkdir -p /mnt/eac
sudo mount 192.168.1.1:/var/www/html/shared/var/eac /mnt/eac</code></pre>



<p>Mount on server startup:</p>



<pre class="wp-block-code"><code>sudo nano /etc/fstab

192.168.1.1:/var/www/html/shared/var/eac /mnt/eac nfs defaults 0 0</code></pre>
<p>L’article <a href="https://eac.cidwe.com/docs/setup-mount-point-between-servers/">Setup mount point between servers</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/setup-mount-point-between-servers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Performances</title>
		<link>https://eac.cidwe.com/docs/performance/</link>
					<comments>https://eac.cidwe.com/docs/performance/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 14:41:45 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1202</guid>

					<description><![CDATA[<p>This page lists practical optimizations to keep EAC fast and lean: execution purges, server monitoring, scheduler hygiene, and server-status cleanup. Quick wins (checklist) Execution &#38; log retention Each run writes an execution record and logs. Without retention, UI lists and dashboards slow down and DB/files grow indefinitely. Strategies Set these via: See the Purges page [&#8230;]</p>
<p>L’article <a href="https://eac.cidwe.com/docs/performance/">Performances</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>This page lists practical optimizations to keep EAC fast and lean: <strong>execution purges</strong>, <strong>server monitoring</strong>, <strong>scheduler hygiene</strong>, and <strong>server-status cleanup</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Quick wins (checklist)</h2>



<ul class="wp-block-list">
<li>Configure <strong>scheduled purges</strong> for executions and logs.</li>



<li>Watch <strong>Execution Server graphs</strong> (CPU %, Memory %) and error KPIs.</li>



<li>Keep <strong>scheduling</strong> enabled and tune <strong>reschedule</strong> delay.</li>



<li>Run <strong>server status sampler</strong> every minute and <strong>purge old statuses daily</strong>.</li>



<li>Keep ETL log tables small via retention + DB maintenance.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Execution &amp; log retention</h2>



<p>Each run writes an <strong>execution record</strong> and logs. Without retention, UI lists and dashboards slow down and DB/files grow indefinitely.</p>



<h3 class="wp-block-heading has-medium-font-size">Strategies</h3>



<ul class="wp-block-list">
<li><strong>History window</strong> (recommended): keep the <strong>last 30–90 days</strong> per task.</li>



<li><strong>Fixed count</strong>: keep the <strong>last 200–1000 executions</strong> per task.</li>



<li><strong>Longest executions</strong>: keep <strong>10–50 longest</strong> for performance analysis.</li>
</ul>



<p>Set these via:</p>



<ul class="wp-block-list">
<li><strong>Manual purge:</strong> <em>Tasks → {Task} → Last executions → Purge the executions of the task</em></li>



<li><strong>Scheduled purge:</strong> <em>Tasks → {Task} → Cron planification → Add scheduler →</em> <strong>Purge past executions</strong><br>Modes: <code>date</code>, <code>history</code>, <code>total</code>, <code>duration</code>.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>See the <strong>Purges</strong> page for details and examples.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Monitor servers</h2>



<p>Open <strong>Monitoring</strong> to validate:</p>



<ul class="wp-block-list">
<li>Each node sends heartbeats (CPU/Memory sparklines not flat at 0%).</li>



<li>Error Execution gauges (day/week/month) stay near zero.</li>



<li>The <strong>master</strong> and any <strong>slaves</strong> show “Last status received … seconds/minutes ago”.</li>
</ul>



<p><strong>Tip:</strong> if “hours ago”, your sampler isn’t running—see below.</p>



<p><strong>Screenshot placeholders:</strong></p>



<ul class="wp-block-list">
<li><code>![Servers dashboard – CPU/Memory](path/to/monitoring-servers.png)</code></li>



<li><code>![Server detail](path/to/monitoring-server-detail.png)</code></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Scheduling hygiene</h2>



<p>In <strong>Settings → Scheduling &amp; System</strong>:</p>



<ul class="wp-block-list">
<li><strong>Enable scheduling</strong>: <code>true</code>.</li>



<li><strong>Reschedule old task after X (min)</strong>: start with <strong>10</strong>; raise to <strong>15–30</strong> on busy systems.</li>



<li>Keep <strong>Cron user</strong> set to your service account (e.g. <code>eac</code>) and ensure directories are writable.</li>
</ul>



<p>Avoid enabling <strong>parallel launch</strong> unless the ETL job is idempotent and designed for concurrency.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Server status sampler &amp; purge</h2>



<p>EAC samples node CPU/Memory via a console command and stores recent points for graphs.</p>



<h3 class="wp-block-heading has-medium-font-size">Sampler (every minute)</h3>



<p>Run on <strong>every EAC node</strong>:</p>



<pre class="wp-block-code"><code>php bin/console eac:server-status --every=3 --env=prod
</code></pre>



<p><strong>Cron example (bare metal/VM)</strong></p>



<pre class="wp-block-code"><code>* * * * * cd /var/www/html/eac &amp;&amp; /usr/bin/php bin/console eac:server-status --every=3 --env=prod &gt;/dev/null 2&gt;&amp;1</code></pre>



<h3 class="wp-block-heading has-medium-font-size">Daily purge of old samples (required)</h3>



<p>Removes stale status rows to keep graphs snappy:</p>



<pre class="wp-block-code"><code>php bin/console eac:server-status:purge --days=4 --env=prod
</code></pre>



<p><strong>Cron (daily at 02:10)</strong></p>



<pre class="wp-block-code"><code>10 2 * * * cd /var/www/html/eac &amp;&amp; /usr/bin/php bin/console eac:server-status:purge --days=4 --env=prod &gt;/dev/null 2&gt;&amp;1</code></pre>



<p><strong>Systemd timer (optional)</strong></p>



<pre class="wp-block-code"><code># /etc/systemd/system/eac-server-status.timer
&#91;Timer]
OnCalendar=*:0/1
Persistent=true
</code></pre>



<pre class="wp-block-code"><code># /etc/systemd/system/eac-server-status-purge.timer
&#91;Timer]
OnCalendar=daily
Persistent=true
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Keep <strong>4–7 days</strong> of server statuses; more provides no benefit and grows storage.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">ETL logging footprint</h2>



<p>If <strong>ETL logs</strong> are enabled (<code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">APP_ENABLE_ETL_LOGS=true</mark></code>):</p>



<p><strong>Retention.</strong> Purge old execution records on a schedule; keep only what you need for ops &amp; audits.<br><strong>Scope.</strong> Apply purges to <code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">ETL_STAT_TABLE_NAME</mark></code>, <code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">ETL_MET_TABLE_NAME</mark></code>, and <code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">ETL_LOG_TABLE_NAME</mark></code>.<br><strong>Performance.</strong> Add indexes on the fields you filter by most (<code>start_time</code>, <code>job</code>, <code>status</code>, <code>context</code>).</p>



<p>&#8212; PostgreSQL (rename tables/columns to match your schema)</p>



<pre class="wp-block-code"><code>CREATE INDEX IF NOT EXISTS idx_stat_start  ON talend_stat(start_time);
CREATE INDEX IF NOT EXISTS idx_stat_job    ON talend_stat(job);
CREATE INDEX IF NOT EXISTS idx_stat_status ON talend_stat(status);</code></pre>



<h2 class="wp-block-heading has-large-font-size">Log backend choice</h2>



<p><strong>Settings → Task logs type</strong>:</p>



<ul class="wp-block-list">
<li><code>db</code>: fastest for searching/paging inside EAC; increases DB size.</li>



<li><code>file</code>: reduces DB size; ensure the log directory is on fast storage and rotated by purges.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Runtime tips</h2>



<ul class="wp-block-list">
<li><strong>Keep Symfony in prod mode:</strong> <code>APP_ENV=prod</code>, <code>APP_DEBUG=0</code>; warmup cache after deploy: <code>php bin/console cache:clear --env=prod &amp;&amp; php bin/console cache:warmup --env=prod</code></li>



<li><strong>Disable dev extensions</strong> (Xdebug, verbose loggers) on production nodes.</li>



<li><strong>JVM sizing for Talend jobs:</strong> keep <code>-Xms</code> small, <code>-Xmx</code> appropriate to dataset; avoid overcommitting memory.</li>
</ul>
<p>L’article <a href="https://eac.cidwe.com/docs/performance/">Performances</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/performance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Execution logs</title>
		<link>https://eac.cidwe.com/docs/debug-logs/</link>
					<comments>https://eac.cidwe.com/docs/debug-logs/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 14:41:05 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1200</guid>

					<description><![CDATA[<p>Every run produces logs you can inspect from the execution detail view. Logs can be stored in files or in the database (configurable in Settings → Task logs type). Tabs in the execution view There are four log tabs. The first mixes EAC runtime output and the job’s console. The last three are sourced from [&#8230;]</p>
<p>L’article <a href="https://eac.cidwe.com/docs/debug-logs/">Execution logs</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Every run produces logs you can inspect from the execution detail view. Logs can be stored in <strong>files</strong> or in the <strong>database</strong> (configurable in <strong>Settings → Task logs type</strong>).</p>



<ul class="wp-block-list">
<li><strong>File backend:</strong> logs written under your log directory (see <em>Settings → Local/Upload/Temp directories</em>).</li>



<li><strong>DB backend:</strong> logs persisted in the application database.</li>



<li><strong>ETL logs (Talend):</strong> optional, pulled from your ETL logging database when enabled.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Tabs in the execution view</h2>



<p>There are <strong>four</strong> log tabs. The first mixes EAC runtime output and the job’s console. The last <strong>three</strong> are sourced from your <strong>Talend/log4j</strong> logging (when ETL logs are enabled).</p>



<ol class="wp-block-list">
<li><strong>Execution logs</strong><br>Mixed stream of:
<ul class="wp-block-list">
<li>EAC scheduler/runtime messages (enqueue, script path, PID, status, warnings)</li>



<li>Job <strong>STDOUT/STDERR</strong> (e.g., <code>System.out.println(...)</code>, <code>tLogRow</code>, shell output)<br><img decoding="async" width="1150" height="525" class="wp-image-1605" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-logs-page-new.png" alt="eac execution task logs page new" srcset="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-logs-page-new.png 1872w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-logs-page-new-300x137.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-logs-page-new-1024x467.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-logs-page-new-768x350.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-logs-page-new-1536x701.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>
</ul>
</li>



<li><strong>ETL Logs</strong> (Talend log)<br>Structured <strong>application log</strong> lines emitted by your job (log4j). Useful to trace component messages and exceptions.<br><img decoding="async" width="1150" height="535" class="wp-image-1602" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-logs-list-page-new.png" alt="eac execution task ETL logs list page new" srcset="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-logs-list-page-new.png 1885w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-logs-list-page-new-300x140.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-logs-list-page-new-1024x476.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-logs-list-page-new-768x357.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-logs-list-page-new-1536x715.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>



<li><strong>ETL Statistics</strong><br>One row per run with start/end times, status, duration, context, job, etc.<br><img loading="lazy" decoding="async" width="1150" height="535" class="wp-image-1604" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-statistics-list-new.png" alt="eac execution task ETL statistics list new" srcset="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-statistics-list-new.png 1872w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-statistics-list-new-300x140.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-statistics-list-new-1024x476.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-statistics-list-new-768x357.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-statistics-list-new-1536x715.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>



<li><strong>ETL Metrics</strong><br>Per-component counters (rows read/written/rejected, etc.).<br><img loading="lazy" decoding="async" width="1150" height="556" class="wp-image-1603" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-metrics-list-page-new.png" alt="eac execution task ETL metrics list page new" srcset="https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-metrics-list-page-new.png 1874w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-metrics-list-page-new-300x145.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-metrics-list-page-new-1024x495.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-metrics-list-page-new-768x371.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/09/eac-execution-task-ETL-metrics-list-page-new-1536x743.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>The <strong>ETL Logs / Statistics / Metrics</strong> tabs are populated only if <strong>ETL logging</strong> is enabled and your ETL studio writes to a database.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Enable ETL logs, statistics, and metrics</h2>



<ol class="wp-block-list">
<li><strong>Configure your ETL studio</strong> (Talend)<br>Go to: <strong>File → Project Settings → Job parameters → Stats &amp; Logs</strong>, and select <strong>Database</strong> as the target.</li>



<li><strong>Enable ETL logs in EAC</strong> (<code>.env.local</code>)</li>
</ol>



<pre class="wp-block-code"><code>APP_ENABLE_ETL_LOGS=true
</code></pre>



<ol start="3" class="wp-block-list">
<li><strong>Provide the ETL logging DB connection</strong></li>
</ol>



<pre class="wp-block-code"><code># Examples
# PostgreSQL
DATABASE_URL_ETL_LOG="postgresql://etl_user:pass@etl-db:5432/etl_logs?serverVersion=16&amp;charset=utf8"
# MySQL/MariaDB
# DATABASE_URL_ETL_LOG="mysql://etl_user:pass@etl-db:3306/etl_logs?charset=utf8mb4"
# SQL Server
# DATABASE_URL_ETL_LOG="mssql://etl_user:pass@etl-db:1433/etl_logs?TrustServerCertificate=true"
# Oracle/sqlite also supported
</code></pre>



<ol start="4" class="wp-block-list">
<li><strong>Declare ETL table names</strong></li>
</ol>



<pre class="wp-block-code"><code>ETL_STAT_TABLE_NAME=talend_stat
ETL_MET_TABLE_NAME=talend_met
ETL_LOG_TABLE_NAME=talend_log
</code></pre>



<ol start="5" class="wp-block-list">
<li><strong>Correlate the ETL run with the EAC execution</strong><br>In your <strong>main job</strong>, print the root PID once (e.g., in a <code>tJava</code>):</li>
</ol>



<pre class="wp-block-code"><code>System.out.println("@@eac@@root_pid=" + rootPid);
</code></pre>



<p>EAC uses this marker to join your console run with the ETL rows.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">What goes where?</h2>



<ul class="wp-block-list">
<li><strong>Execution logs (tab 1):</strong>
<ul class="wp-block-list">
<li>Queueing + path to <code>*_run.sh</code></li>



<li><strong>PID</strong> and scheduler messages</li>



<li>All <strong>console</strong> output from your job (stdout/stderr)</li>



<li>Final <strong>SUCCESS/ERROR/WARNING</strong> marker</li>
</ul>
</li>



<li><strong>ETL tabs (tabs 2–4):</strong>
<ul class="wp-block-list">
<li>Populated from the <strong>ETL logging DB</strong> via <code>DATABASE_URL_ETL_LOG</code></li>



<li><strong>Logs</strong> = log4j lines; <strong>Statistics</strong> = per-run aggregates; <strong>Metrics</strong> = per-component counters</li>
</ul>
</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Storage backend for tab 1 is defined by <strong>Task logs type</strong> (<code>file</code> or <code>db</code>). ETL tabs always read from the ETL logging database.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Best practices</h2>



<ul class="wp-block-list">
<li><strong>Keep console output actionable</strong>: prefer concise <code>System.out.println(...)</code>/<code>tLogRow</code> for key checkpoints.</li>



<li><strong>Use log levels</strong> in Talend (log4j) for noise control.</li>



<li><strong>Redact secrets</strong> in both console and ETL logs.</li>



<li><strong>Retention:</strong> set up <strong>Purge</strong> jobs to keep history lean (see <em>Purges</em> page).</li>
</ul>
<p>L’article <a href="https://eac.cidwe.com/docs/debug-logs/">Execution logs</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/debug-logs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>.env.local</title>
		<link>https://eac.cidwe.com/docs/env-local/</link>
					<comments>https://eac.cidwe.com/docs/env-local/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 14:37:41 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1190</guid>

					<description><![CDATA[<p>In this deployment model, EAC loads configuration from two files only: No container/OS environment variables are used by default in this setup. Precedence (highest → lowest) Only two levels apply: Multi-server: each node has its own .env.local. Editing Settings on server A does not change server B. What the Settings page actually does To remove [&#8230;]</p>
<p>L’article <a href="https://eac.cidwe.com/docs/env-local/">.env.local</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In this deployment model, EAC loads configuration from <strong>two files only</strong>:</p>



<ul class="wp-block-list">
<li><strong><code>.env</code></strong> — baseline defaults (versioned, read-only from the UI).</li>



<li><strong><code>.env.local</code></strong> — <strong>per-server overrides</strong> (edited from the <strong>Settings</strong> page or manually on the host).</li>
</ul>



<p>No container/OS environment variables are used by default in this setup.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Precedence (highest → lowest)</h2>



<p>Only two levels apply:</p>



<ul class="wp-block-list">
<li>If a key is present in <strong><code>.env.local</code></strong>, it <strong>overrides</strong> the value from <code>.env</code> on <strong>this server only</strong>.</li>



<li>If the key is <strong>absent</strong> in <code>.env.local</code>, EAC falls back to <code>.env</code>.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Multi-server:</strong> each node has <strong>its own</strong> <code>.env.local</code>. Editing Settings on server A does <strong>not</strong> change server B.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">What the Settings page actually does</h2>



<ul class="wp-block-list">
<li>Fields labeled <strong>“Updatable (.env.local)”</strong> are written to the node’s <code>.env.local</code> when you <strong>Save</strong>.</li>



<li>Fields labeled <strong>“.env (Present value)”</strong> show the baseline from <code>.env</code> and are not modified by the UI.</li>



<li>Composite inputs (e.g., Mail) are assembled into a single DSN such as <code>MAILER_DSN</code> and written to <code>.env.local</code>.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>To <strong>remove</strong> an override, clear the field in the UI and <strong>Save</strong> (the app will fall back to <code>.env</code>).<br>Alternatively, edit the file and delete the line.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Applying changes</h2>



<p>After updating <code>.env.local</code>, reload so PHP reads the new values:</p>



<pre class="wp-block-code"><code># From the app root
php bin/console cache:clear --env=prod &amp;&amp; php bin/console cache:warmup --env=prod

# Then reload PHP-FPM (typical Debian/Ubuntu service name)
sudo systemctl reload php8.2-fpm  # adjust version if needed
</code></pre>



<p>If you run Symfony workers/cron wrappers under a service account, restart those units as well.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">File locations &amp; permissions (recommended)</h2>



<ul class="wp-block-list">
<li><strong>Location:</strong> by default EAC expects these files under the application root (e.g., <code>/var/www/html/eac/.env</code> and <code>/var/www/html/eac/.env.local</code>).<br>If your build stores overrides under <code>./shared/.env.local</code>, keep that convention consistent in your docs/scripts.</li>



<li><strong>Ownership:</strong> make them writable by your service user/group (e.g., <code>eac:www-data</code>).</li>



<li><strong>Mode:</strong> <code>chmod 640</code> (or <code>600</code> if only the owner should read). Keep secrets out of world-readable files.</li>
</ul>



<pre class="wp-block-code"><code>sudo chown eac:www-data /var/www/html/eac/.env.local
sudo chmod 640 /var/www/html/eac/.env.local
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">What belongs where</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Type</th><th>Put in</th><th>Why</th></tr></thead><tbody><tr><td>Defaults, non-sensitive, versioned</td><td><code>.env</code></td><td>Baseline tracked in VCS</td></tr><tr><td>Secrets (passwords, tokens), per-host paths, toggles differing by node</td><td><code>.env.local</code></td><td>Not versioned; per-server override</td></tr></tbody></table></figure>



<p><strong>Common keys overridden in <code>.env.local</code>:</strong></p>



<ul class="wp-block-list">
<li>Mail: <code>MAILER_DSN</code>, <code>APP_MAILER_SENDER</code>, <code>APP_MAILER_DEFAULT_RECIPIENTS</code>, <code>APP_ENABLE_TASK_MAILER</code></li>



<li>DB: <code>DATABASE_URL</code>, <code>DATABASE_URL_ETL_LOG</code></li>



<li>Paths: <code>APP_CONSOLE_CMD</code>, <code>APP_DEPLOY_DIR</code>, <code>APP_TMP_DIR</code>, <code>APP_UPLOAD_DIR</code></li>



<li>Feature toggles: <code>APP_ENABLE_SCHEDULING</code>, <code>APP_CHECK_STATUS_WITH_GIT</code>, <code>APP_ENABLE_ETL_LOGS</code></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Examples</h2>



<h3 class="wp-block-heading has-medium-font-size">Baseline in <code>.env</code></h3>



<pre class="wp-block-code"><code>APP_ENV=prod
APP_DEBUG=0

APP_BASE_URI="https://eac.example.com/"
APP_ENABLE_SCHEDULING=true

DATABASE_URL="postgresql://eac_usr:pass@db-host:5432/eac_db?serverVersion=16&amp;charset=utf8"

# Mail defaults (can be empty here)
APP_MAILER_SENDER="eac@cidwe.com"
MAILER_DSN=""
</code></pre>



<h3 class="wp-block-heading has-medium-font-size">Per-server override in <code>.env.local</code></h3>



<pre class="wp-block-code"><code># Different base URI on this host
APP_BASE_URI="https://eac-paris.example.com/"

# Mail configured on this server
APP_ENABLE_TASK_MAILER=true
APP_MAILER_SENDER="no-reply@example.com"
APP_MAILER_DEFAULT_RECIPIENTS="ops@example.com,data@example.com"
MAILER_DSN="smtp://no-reply%40example.com:My%3APass@smtp.example.com:587?encryption=tls&amp;auth_mode=login"

# ETL logs enabled on this node
APP_ENABLE_ETL_LOGS=true
DATABASE_URL_ETL_LOG="postgresql://etl_ro:pass@etl-db:5432/etl_logs?serverVersion=16&amp;charset=utf8"
</code></pre>



<p><strong>Result:</strong> all keys present in <code>.env.local</code> override the baseline; others fall back to <code>.env</code>.</p>
<p>L’article <a href="https://eac.cidwe.com/docs/env-local/">.env.local</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/env-local/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Good use of Execution purges</title>
		<link>https://eac.cidwe.com/docs/good-use-of-purges/</link>
					<comments>https://eac.cidwe.com/docs/good-use-of-purges/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 14:36:27 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1186</guid>

					<description><![CDATA[<p>Every time a task/ETL runs, EAC stores an execution record and (optionally) logs. Over time, this history grows and can impact UI responsiveness and database size.Purges let you clean old executions and their logs based on clear rules. Purging removes executions of the selected task and their attached logs (according to your log backend). It [&#8230;]</p>
<p>L’article <a href="https://eac.cidwe.com/docs/good-use-of-purges/">Good use of Execution purges</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Every time a task/ETL runs, EAC stores an <strong>execution record</strong> and (optionally) <strong>logs</strong>. Over time, this history grows and can impact UI responsiveness and database size.<br><strong>Purges</strong> let you clean old executions and their logs based on clear rules.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Purging removes <strong>executions of the selected task</strong> and their attached logs (according to your log backend). It <strong>does not</strong> delete the “purge” executions themselves.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Why purge?</h2>



<ul class="wp-block-list">
<li>Keeps the <strong>database small and fast</strong> (queries, dashboards, filters).</li>



<li>Reduces <strong>disk usage</strong> (when log type = <code>file</code>). see<a href="#"> </a><a href="https://eac.cidwe.com/docs/settings/#scheduling-and-system">settings( scheduling &amp; system > task logs type)</a></li>



<li>Improves <strong>backup/restore</strong> times.</li>



<li>Enforces <strong>data retention</strong> policies.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Manual purge (per task)</h2>



<p>From a task page:</p>



<ol class="wp-block-list">
<li>Open <strong>Tasks → {Your task}</strong>.</li>



<li>Click <strong>Purge the executions of the task</strong>.</li>



<li>In the dialog, pick a <strong>Purge mode</strong> and fill its parameter(s).</li>



<li>Click <strong>Launch the purge</strong>.</li>
</ol>



<p><strong>Screenshots (placeholders):</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="479" height="79" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-115420.png" alt="purge manually button" class="wp-image-1437" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-115420.png 479w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-115420-300x49.png 300w" sizes="(max-width: 479px) 100vw, 479px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="283" src="https://eac.cidwe.com/wp-content/uploads/2025/08/image-20-1024x283.png" alt="" class="wp-image-1440" style="width:1016px;height:auto" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/image-20-1024x283.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-20-300x83.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-20-768x212.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-20.png 1104w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>the date picker input format depends on your web browser</p>
</blockquote>



<h2 class="wp-block-heading has-large-font-size">Purge modes</h2>



<ul class="wp-block-list">
<li><strong>date</strong> — <em>Purge all before a date</em><br>Parameter: <strong>Purge before date</strong> (YYYY-MM-DD).<br>Example: delete everything started <strong>before 2025-06-01</strong>.</li>



<li><strong>history</strong> — <em>Keep only the last N days</em><br>Parameter: <strong>Days to keep</strong> (integer).<br>Example: keep <strong>30 days</strong> of history; remove older ones.</li>



<li><strong>total</strong> — <em>Keep only the last N executions</em><br>Parameter: <strong>Executions to keep</strong> (integer).<br>Example: keep <strong>200</strong> most recent runs; remove the rest.</li>



<li><strong>duration</strong> — <em>Keep only the longest N</em><br>Parameter: <strong>Executions to keep</strong> (integer).<br>Example: keep <strong>10</strong> longest runs (useful for performance analysis).</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>The UI asks for the appropriate numeric value or date depending on the selected mode.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Scheduled purge (recommended)</h2>



<p>Automate cleanup with the built-in scheduler.</p>



<ol class="wp-block-list">
<li>Open <strong>Tasks → {Your task} → Cron planification</strong>.</li>



<li>Click <strong>Add scheduler</strong>.</li>



<li><strong>Task type:</strong> <strong>Purge past executions</strong>.</li>



<li><strong>Purge mode:</strong> choose one of <em>date / history / total / duration</em>.</li>



<li>Set <strong>Begin at / Finish at</strong> if needed.</li>



<li>Define the <strong>Cron</strong> (second, minute, hour, day, month, day-of-week).</li>



<li>Check <strong>Schedule active</strong> → <strong>Save</strong>.</li>
</ol>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="549" src="https://eac.cidwe.com/wp-content/uploads/2025/08/image-21-1024x549.png" alt="" class="wp-image-1441" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/image-21-1024x549.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-21-300x161.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-21-768x412.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-21-1536x824.png 1536w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-21.png 1629w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Example schedules</h3>



<ul class="wp-block-list">
<li><strong>Nightly, keep last 30 days</strong>
<ul class="wp-block-list">
<li>Mode: <code>history</code> = 30</li>



<li>Cron: <code>0 0 * * *</code> (every day at 00:00)</li>
</ul>
</li>



<li><strong>Weekly, keep last 500 executions</strong>
<ul class="wp-block-list">
<li>Mode: <code>total</code> = 500</li>



<li>Cron: <code>0 0 * * 0</code> (Sundays at 00:00)</li>
</ul>
</li>



<li><strong>Monthly, keep the 20 longest</strong> (capacity planning)
<ul class="wp-block-list">
<li>Mode: <code>duration</code> = 20</li>



<li>Cron: <code>0 3 1 * *</code> (1st of month at 03:00)</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Choosing a retention strategy</h2>



<p>Use one or combine several purge schedules:</p>



<ul class="wp-block-list">
<li><strong>Production (typical):</strong>
<ul class="wp-block-list">
<li>Keep <strong>30–90 days</strong> with <code>history</code>, nightly.</li>



<li>Additionally keep <strong>last 200–1000 runs</strong> with <code>total</code> to preserve dense recent activity.</li>
</ul>
</li>



<li><strong>Non-prod (dev/test):</strong>
<ul class="wp-block-list">
<li>Keep <strong>7–14 days</strong> with <code>history</code>, nightly.</li>



<li>Or <strong>last 100–300 runs</strong> with <code>total</code>.</li>
</ul>
</li>



<li><strong>Performance analysis windows:</strong>
<ul class="wp-block-list">
<li>Monthly <code>duration</code> keeping <strong>10–50 longest</strong> executions.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">How to size retention</h3>



<ul class="wp-block-list">
<li>Estimate daily runs per task × average row size in log tables.</li>



<li>Ensure DB growth stays <strong>well below disk thresholds</strong> (e.g., &lt;70% usage).</li>



<li>Prefer <strong>shorter history with richer metrics</strong> over unbounded growth.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Operational notes</h2>



<ul class="wp-block-list">
<li><strong>Multi-server:</strong> Purges operate at the data layer; results are visible on all nodes.</li>



<li><strong>Log backend:</strong> If <code>file</code>, purges remove the task’s related files in your log path; ensure the service user has rights to delete.</li>



<li><strong>Safety:</strong> Start with conservative settings, verify results, then tighten retention.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Related</h2>



<ul class="wp-block-list">
<li><strong><a href="https://eac.cidwe.com/docs/good-use-of-ack/">Acknowledgement (Ack)</a>:</strong> manage failed runs before relaunch.</li>



<li><a href="https://eac.cidwe.com/docs/monitoring/"><strong>Monitoring</strong></a><strong>:</strong> watch error rates and capacity trends to adjust retention.</li>



<li><strong><a href="https://eac.cidwe.com/docs/settings/">Settings → Task logs type</a>:</strong> choose <code>file</code> vs <code>db</code> according to your ops policies.</li>
</ul>
<p>L’article <a href="https://eac.cidwe.com/docs/good-use-of-purges/">Good use of Execution purges</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/good-use-of-purges/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Good use of Ack</title>
		<link>https://eac.cidwe.com/docs/good-use-of-ack/</link>
					<comments>https://eac.cidwe.com/docs/good-use-of-ack/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 14:35:49 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1184</guid>

					<description><![CDATA[<p>Explanation of Acknowledgement (Ack) When Enable acknowledgement is turned on for a task, any failed execution must be manually acknowledged before the task can be launched again (manually or by the scheduler). This prevents blind relaunches and “error loops.” How it works Scope: Ack state is stored centrally and applies across all servers/nodes. Enable acknowledgement [&#8230;]</p>
<p>L’article <a href="https://eac.cidwe.com/docs/good-use-of-ack/">Good use of Ack</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading has-large-font-size">Explanation of Acknowledgement (Ack)</h2>



<p>When <strong>Enable acknowledgement</strong> is turned on for a task, any <strong>failed execution</strong> must be <strong>manually acknowledged</strong> before the task can be launched again (manually or by the scheduler). This prevents blind relaunches and “error loops.”</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">How it works</h2>



<ul class="wp-block-list">
<li>If the last execution <strong>ended in ERROR</strong>, the task is marked <strong>Not acked</strong>.</li>



<li>While <strong>Not acked</strong>, any attempt to launch the task is blocked and a warning appears, e.g.: <em>Unable to launch <code>&lt;task&gt;</code> because all execution tasks are not acked.</em></li>



<li>Once you <strong>Ack</strong> the failed execution(s), the task becomes launchable again.</li>



<li>Ack <strong>does not</strong> rerun the task; it only clears the block so you can run it.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Scope: Ack state is stored centrally and applies across all servers/nodes.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Enable acknowledgement for a task</h2>



<ol class="wp-block-list">
<li>Open the task: <strong>Tasks → {Your Task}</strong></li>



<li><strong>Task setup</strong> tab → check <strong>Enable acknowledgement</strong> → <strong>Save</strong>.
<ul class="wp-block-list">
<li>UI hint: “If activated, a task in error will not be launched until a manual action (ack) has been performed.”</li>
</ul>
</li>
</ol>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="290" src="https://eac.cidwe.com/wp-content/uploads/2025/08/image-17-1024x290.png" alt="" class="wp-image-1401" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/image-17-1024x290.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-17-300x85.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-17-768x217.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-17-1536x435.png 1536w, https://eac.cidwe.com/wp-content/uploads/2025/08/image-17.png 1621w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Where you can Ack</h2>



<p>You can acknowledge a single failed execution (<strong>Ack</strong>) or all failed executions of a task (<strong>Ack all</strong>):</p>



<ol class="wp-block-list">
<li><strong>Task detail page</strong> (bulk for that task)
<ul class="wp-block-list">
<li>Icon: <strong>Ack all</strong> (top action bar)</li>



<li>Path: <em>Tasks → {Task}</em><br><img loading="lazy" decoding="async" width="1150" height="49" class="wp-image-1408" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100327.png" alt="" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100327.png 1583w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100327-300x13.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100327-1024x43.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100327-768x33.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100327-1536x65.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>
</ul>
</li>



<li><strong>Execution detail page</strong> (individual execution)
<ul class="wp-block-list">
<li>Icon: <strong>Ack</strong></li>



<li>Path: <em>Tasks → {Task} → Last executions → click an execution</em><br><img loading="lazy" decoding="async" width="1150" height="51" class="wp-image-1412" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100621.png" alt="execution details" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100621.png 1577w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100621-300x13.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100621-1024x45.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100621-768x34.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100621-1536x68.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>



<li>button: <strong>Ack all </strong></li>
</ul>
</li>



<li><strong>Task execution page</strong>
<ul class="wp-block-list">
<li>path:<em>Tasks → {Task} → Last executions → </em>Top action buttons</li>



<li><img loading="lazy" decoding="async" width="1150" height="358" class="wp-image-1410" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100556.png" alt="ack actions " srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100556.png 598w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100556-300x93.png 300w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>
</ul>
</li>



<li><strong>Task execution log</strong> page
<ul class="wp-block-list">
<li>Button: <strong>Ack </strong>(logs for that task)</li>



<li>Path:<em>Tasks → {Task} → Last executions → </em>Top action buttons</li>



<li><img loading="lazy" decoding="async" width="1150" height="407" class="wp-image-1409" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100429.png" alt="task execution log" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100429.png 895w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100429-300x106.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100429-768x272.png 768w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>
</ul>
</li>
</ol>



<p>Same actions are available In task list and execution list</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">What you’ll see in the UI</h2>



<ul class="wp-block-list">
<li><strong>Status chip:</strong> <code>ERROR</code> + <code>Not acked</code> on failed, unacknowledged executions.<br><img loading="lazy" decoding="async" width="150" height="46" class="wp-image-1428" style="width: 150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-111822.png" alt="not acked badges"></li>



<li><strong>Warning banner</strong> when try to launch while ack button not triggered.<br><img loading="lazy" decoding="async" width="1150" height="327" class="wp-image-1406" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100236.png" alt="warning banner" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100236.png 1622w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100236-300x85.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100236-1024x291.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100236-768x218.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-100236-1536x437.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>



<li><strong>After Ack:</strong> the <code>Not acked</code> label disappears replaced by acked label if « ack » button triggered ; the task can be launched. </li>
</ul>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="128" height="49" src="https://eac.cidwe.com/wp-content/uploads/2025/08/image-18.png" alt="" class="wp-image-1429" style="width:159px;height:auto"/></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Typical workflow</h2>



<ol class="wp-block-list">
<li>A task run fails → shows <strong>ERROR</strong> and <strong>Not acked</strong>.</li>



<li>Investigate: open <strong>Execution logs</strong> (and <strong>ETL logs</strong> if enabled).</li>



<li>Fix the root cause (config, data, path, permissions, etc.).</li>



<li>Click <strong>Ack</strong> (or <strong>Ack all</strong>).</li>



<li>Relaunch the task (manually or wait for scheduler).</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Troubleshooting</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Symptom</th><th>Cause</th><th>Resolution</th></tr></thead><tbody><tr><td>“Unable to launch … because all execution tasks are not acked.”</td><td>Last execution ended in ERROR and task requires ack</td><td>Click <strong>Ack</strong> on the failed execution or <strong>Ack all</strong> on the task</td></tr><tr><td>I acked but still can’t run</td><td>A newer failed execution also requires ack</td><td>Ack the most recent failed execution(s)</td></tr><tr><td>Button missing</td><td>Permissions or you’re viewing a completed (non-error) run</td><td>Use an account with task admin rights and select an <strong>ERROR</strong> execution</td></tr><tr><td>It keeps failing after ack</td><td>Root cause not fixed</td><td>Review <strong>Execution logs</strong> / <strong>ETL logs</strong>, fix, then ack and relaunch</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Related</h2>



<p><a href="https://eac.cidwe.com/docs/settings/"><strong>Settings</strong> </a>— verify paths, Java/PHP binaries, and permissions if launches fail immediately.on of the acknowledgment mechanism and its use cases</p>



<p><a href="https://eac.cidwe.com/docs/monitoring/"><strong>Monitoring</strong> </a>— identify failing nodes or resource issues.</p>



<p><strong><a href="https://eac.cidwe.com/docs/setup-mailer/">Email notifications</a></strong> — enable mailer to receive error alerts.</p>
<p>L’article <a href="https://eac.cidwe.com/docs/good-use-of-ack/">Good use of Ack</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/good-use-of-ack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Good use of contexts</title>
		<link>https://eac.cidwe.com/docs/good-use-of-contexts/</link>
					<comments>https://eac.cidwe.com/docs/good-use-of-contexts/#respond</comments>
		
		<dc:creator><![CDATA[Adile EL HADDIK]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 14:34:47 +0000</pubDate>
				<guid isPermaLink="false">https://eac.cidwe.com/?post_type=docs&#038;p=1182</guid>

					<description><![CDATA[<p>EAC lets you combine Talend contexts with centralized context files and task-level overrides. This gives you repeatable deployments while keeping sensitive or environment-specific values out of jobs. When and how to use contexts efficiently Use contexts to: Key rule: Define multiple context groups (by project or environment), but only one effective context set applies per [&#8230;]</p>
<p>L’article <a href="https://eac.cidwe.com/docs/good-use-of-contexts/">Good use of contexts</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>EAC lets you combine <strong>Talend contexts</strong> with <strong>centralized context files</strong> and <strong>task-level overrides</strong>. This gives you repeatable deployments while keeping sensitive or environment-specific values out of jobs.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">When and how to use contexts efficiently</h2>



<p>Use contexts to:</p>



<ul class="wp-block-list">
<li><strong>Parameterize</strong> your jobs (paths, hosts, credentials, feature flags).</li>



<li><strong>Promote</strong> the same job from <strong>dev → test → prod</strong> without code changes.</li>



<li><strong>Centralize</strong> values that must be consistent across many tasks.</li>



<li><strong>Override</strong> a few values for a specific task only (without forking context files).</li>
</ul>



<p><strong>Key rule:</strong> Define multiple <strong>context groups</strong> (by project or environment), but <strong>only one effective context set applies per task run</strong> (computed by precedence below).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Sources &amp; precedence (low → high)</h2>



<p>When EAC prepares a run, each context key is resolved using this order:</p>



<ol class="wp-block-list">
<li><strong>Talend job defaults</strong><br>The values embedded in the job for the <strong>Default</strong> context.</li>



<li><strong>Talend environment selected in Task setup</strong><br>The <strong>context = dev/test/prod…</strong> chosen for the task.</li>



<li><strong>Global context file (Context Files page)</strong><br>If a context file group is linked, keys from the file <strong>override</strong> Talend values. Only <strong>keys that exist in the Talend job</strong> are applied; extra keys are ignored.</li>



<li><strong>Task-level overrides (Task setup)</strong><br>Per-task key/value overrides take final precedence.</li>
</ol>



<p><strong>UI hint:</strong> Values that are <strong>actually used</strong> are highlighted with a <strong>green background</strong> in the Task setup preview.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Context files</h2>



<p>Centralize values outside the job and reuse them across tasks.</p>



<ul class="wp-block-list">
<li><strong>Where:</strong> <strong> Context files</strong><br>Group files by <strong>Project</strong>.<br><img loading="lazy" decoding="async" width="1150" height="383" class="wp-image-1448" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143000.png" alt="context by project" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143000.png 1632w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143000-300x100.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143000-1024x341.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143000-768x256.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143000-1536x511.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>



<li><strong>Format:</strong> Talend-style <code>.properties</code> (UTF-8)<br><img loading="lazy" decoding="async" width="1150" height="79" class="wp-image-1449" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143542.png" alt="key value exemple" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143542.png 1519w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143542-300x21.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143542-1024x70.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143542-768x53.png 768w" sizes="(max-width: 1150px) 100vw, 1150px" />
<ul class="wp-block-list">
<li>Spaces are allowed after <code>=</code>.</li>



<li>Unknown keys (not declared in the job) are <strong>ignored</strong>.</li>



<li>Prefer <strong>one file per environment</strong>.</li>
</ul>
</li>



<li><strong>Attach to tasks:</strong> In <strong>Task setup</strong>, select the <strong>Context file group</strong> to apply.<br><img loading="lazy" decoding="async" width="1150" height="252" class="wp-image-1450" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143922.png" alt="context file in task set up" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143922.png 1556w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143922-300x66.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143922-1024x224.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143922-768x168.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-143922-1536x337.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Applying contexts in Task setup</h2>



<p>Open <strong>Tasks → {Task} → Task setup</strong> to configure:</p>



<ol class="wp-block-list">
<li><strong>Talend environment</strong> (context) to run with: <code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">Default</mark> | <mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">dev</mark> | <mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">test</mark> | <mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">prod</mark> | …</code></li>



<li><strong>Context file group</strong> (optional): link a centralized file to override job values.</li>



<li><strong>Task overrides</strong> (optional): add/modify individual key/values for this task only.</li>
</ol>



<p>You’ll see a <strong>preview</strong> of the <strong>effective context</strong> with green highlights on applied values.<br><img loading="lazy" decoding="async" width="1150" height="595" class="wp-image-1455" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-151110.png" alt="context in task setup" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-151110.png 1542w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-151110-300x155.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-151110-1024x530.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-151110-768x397.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-151110-1536x795.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Keep overrides minimal: add only what must differ for this task.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Execution details</h2>



<p>Every run captures the <strong>context snapshot</strong> used to launch the job:</p>



<ul class="wp-block-list">
<li>Open <strong>Tasks → {Task} → Last executions → {Execution}</strong>.</li>



<li>The header and logs remind the <strong>Talend env</strong>, any <strong>context file</strong> applied, and <strong>overrides</strong>.<br><img loading="lazy" decoding="async" width="1150" height="302" class="wp-image-1456" style="width: 1150px;" src="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-160707.png" alt="overwritted context log" srcset="https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-160707.png 1624w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-160707-300x79.png 300w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-160707-1024x269.png 1024w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-160707-768x202.png 768w, https://eac.cidwe.com/wp-content/uploads/2025/08/Capture-decran-2025-08-21-160707-1536x404.png 1536w" sizes="(max-width: 1150px) 100vw, 1150px" /></li>
</ul>



<p>This is essential for auditability and post-mortems.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Best practices</h2>



<ul class="wp-block-list">
<li><strong>Define once, reuse widely</strong><br>Put shared values in <strong>context files</strong> (per project/environment). Use task overrides sparingly.</li>



<li><strong>Name clearly</strong><br><code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">projectA-dev.properties</mark></code>, <code><mark style="background-color:var(--ast-global-color-4)" class="has-inline-color">projectA-prod.properties</mark></code>, etc.</li>



<li><strong>Separate secrets</strong><br>Avoid plain-text secrets in files. Prefer vault-backed injection or environment-level secrets; if you must store them, restrict OS permissions.</li>



<li><strong>Keep types stable</strong><br>Don’t switch a key from string to numeric between envs; Talend components may enforce types.</li>



<li><strong>Version context files</strong><br>Store under VCS (private repo) and review changes like code.</li>



<li><strong>DRY on overrides</strong><br>If many tasks share the same overrides, move them up into the <strong>context file</strong>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading has-large-font-size">Quick recipes</h2>



<p><strong>A) Promote dev → prod with a single job</strong></p>



<ol class="wp-block-list">
<li>Upload <code>projectA-prod.properties</code>.</li>



<li>In <strong>Task setup</strong>: set <strong>context = prod</strong>, link <strong>projectA (prod)</strong> file.</li>



<li>Remove any task overrides. Save. Launch.</li>
</ol>



<p><strong>B) One task, slightly different endpoint</strong></p>



<ol class="wp-block-list">
<li>Reuse the shared <strong>prod</strong> context file.</li>



<li>Add one <strong>task override</strong>: <code>api.base=https://api.alt.example.com</code>.</li>



<li>Save. Launch.</li>
</ol>



<p><strong>C) Audit a failed run</strong></p>



<ol class="wp-block-list">
<li>Open the execution detail.</li>



<li>Confirm <strong>Talend env</strong>, <strong>context file</strong>, and <strong>overrides</strong> used.</li>



<li>Compare with expected values; adjust in Task setup or update the context file.</li>
</ol>
<p>L’article <a href="https://eac.cidwe.com/docs/good-use-of-contexts/">Good use of contexts</a> est apparu en premier sur <a href="https://eac.cidwe.com">ETL administration console</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eac.cidwe.com/docs/good-use-of-contexts/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
