You've just upgraded AD-TXK from Delta 6 to Delta 12, and the very first adop phase=fs_clone you run hits a wall:
This post explains exactly what triggered it, why Delta 12 introduced this check, and how to fix it permanently.
In This Article
1. The Dual File System Architecture — Quick Recap
Oracle EBS R12.2 requires two independent application-tier file systems to enable zero-downtime patching — the run edition file system (fs1) and the patch edition file system (fs2). A third component, fs_ne (non-editioned), holds data shared across both editions and is never copied during patching.
2. What fs_clone Actually Does
adop phase=fs_clone recreates the patch edition file system as a complete, synchronized copy of the run edition. It is not part of the standard patching cycle — it is an out-of-cycle resynchronization operation.
When to run it:
- After configuration changes (autoconfig on run edition) and cutover — to propagate those changes to the patch edition before the next PREPARE
- After
adop phase=abort— to restore the patch file system to a clean, synchronized state - When run and patch file systems have diverged significantly — faster than applying all accumulated delta patches
- Before cloning the entire EBS environment — ensures both file systems are perfectly aligned
What fs_clone does internally, in sequence:
- Validates the run edition context file — including
s_appltmp. This is where our error fires. - Backs up the current patch APPL_TOP
- Copies the run edition APPL_TOP to the patch edition location, preserving permissions, ownership, and timestamps
- Generates the patch edition context file from the run edition context file
- Updates patch-edition-specific paths in the cloned context file (fs1 → fs2 path substitution)
3. s_appltmp: Purpose, Location, and Why Shared Paths Break ADOP
s_appltmp is an XML parameter in the node's context file that defines the application temporary directory — where EBS writes temporary files during concurrent processing, form operations, and ADOP phases.
Context file location:
What the parameter looks like in the context file:
Why a shared path breaks things:
In a multi-node EBS application tier, each node runs independent concurrent manager processes. When s_appltmp points to a shared NFS location, every node writes its temporary files to the same directory simultaneously. This causes:
- File collisions — two nodes create a temp file with the same name, one overwrites the other
- PID conflicts — lock files with identical names written by different nodes' processes
- ADOP concurrency failures — multiple ADOP processes across nodes collide on shared temporary state
s_appltmp is for application-layer temporary files and must be node-local (one per node). APPLPTMP is for PL/SQL concurrent program output files and must be shared and accessible from the database server — the exact opposite requirement. Mixing these up is a common source of confusion.
The correct value is always node-local, under $INST_TOP — which is per-node by definition:
4. What Delta 12 Changed That Surfaced This
AD-TXK Delta releases are cumulative updates to the Application DBA (AD) and Applications Technology (TXK) modules. Delta 12 introduced a significantly enhanced ADOP validation framework in txkADOPValidations.pm and related modules.
The key change: Delta 12's validation explicitly checks that s_appltmp is a node-local path, not a shared location. This check runs at the start of adop phase=prepare, fs_clone, cutover, and abort.
Systems that ran with a shared s_appltmp under Delta 6 — where this check did not exist — hit this error the first time they run any ADOP phase after upgrading to Delta 12. The upgrade itself does not reconfigure your context files.
s_appltmp discovered mid-clone — when multiple ADOP processes on different nodes simultaneously write to the same temp directory — produces far harder-to-diagnose failures: corrupted temp files, half-cloned directories, unrecoverable ADOP state. Early rejection is the right design.
5. The Fix — Step by Step
The remediation has three parts: fix the context file, run AutoConfig to propagate the change to all dependent configs, then run fs_clone to synchronize the file systems. Repeat on every application node.
Identify and back up the context file
Check the current s_appltmp value
Edit the context file
Find the s_appltmp parameter and replace the shared path with the node-local value:
Create the appltmp directory if it doesn't exist
Run AutoConfig on the run edition
AutoConfig reads the updated context file and regenerates all dependent configuration files — shell environment scripts, service configs, port assignments, and so on. Without this step, the context file change does not propagate to the actual runtime environment.
Run fs_clone
With the context file corrected and AutoConfig run, fs_clone can now validate cleanly and propagate the correct configuration to the patch edition.
s_appltmp will cause the same error.
6. Verification
After fs_clone completes, confirm the patch edition inherited the corrected value:
7. Pre-fs_clone Checklist
Regardless of why you're running fs_clone, work through these checks first to avoid mid-run failures:
| Check | Command | Requirement |
|---|---|---|
| Patch FS disk space | df -h $PATCH_FS_MOUNT |
≥ 25 GB free |
| /tmp free space | df -h /tmp |
≥ 15 GB free |
| No active ADOP | ps -ef | grep adop |
No running adop processes |
| Database reachable | tnsping $ORACLE_SID |
OK response from listener |
| s_appltmp value correct | grep s_appltmp $INST_TOP/appl/admin/$CONTEXT_NAME.xml |
Must be $INST_TOP/appltmp |
| AutoConfig recently run | ls -lt $INST_TOP/appl/admin/log/adautocfg*.log | head -1 |
After last context file edit |
| No form compiler active | ps -ef | grep f90 | grep -v grep |
Empty output |
| Log directory space | df -h $INST_TOP/appl/admin/log/ |
≥ 5 GB free |
Root Cause — At a Glance
txkADOPValidations.pm that rejects any s_appltmp value pointing to a shared or non-node-local path. Systems running with a shared s_appltmp under Delta 6 — where this check did not exist — encounter the error on the first ADOP phase after the upgrade. The fix is deterministic: correct the context file → run AutoConfig → run fs_clone. Repeat on every node.
The error message is deliberately explicit. The fix is a three-command sequence per node. And the validation failing before any file system operations begin is intentional — it prevents far messier mid-clone failures that would require manual state recovery.
If you fixed the context file on only some nodes and the error persists, run fs_clone with verbose logging to identify which node is still misconfigured. ADOP logs per-node validation results early in the output.
- MOS Note 2424019.1 — fs_clone Fails With s_appltmp Error
- MOS Note 2220669.1 — ADOP Cutover / Abort / fs_clone Fails s_appltmp Validation
- Oracle E-Business Suite Maintenance Guide (Doc ID 1982566.1)
- AD and TXK Delta 12 Release Notes (Oracle EBS Blog)
No comments:
Post a Comment