What is FND_OAM_CONTEXT_FILES used for?
- Context Files are also stored in the database.. The table that store the context files( historically) is “FND_OAM_CONTEXT_FILES”
- Context files in this table is stored in a huge clob column named TEXT..
- In TEXT column the context file is stored as is, that is in xml format
- So by quering the table and using the proper xml functions , the values in context file can be read.
Desc fnd_oam_context_files -- -------- -------------- NAME NOT NULL VARCHAR2(512) VERSION NOT NULL VARCHAR2(30) PATH NOT NULL VARCHAR2(1024) LAST_SYNCHRONIZED NOT NULL DATE TEXT NOT NULL CLOB LAST_UPDATE_DATE NOT NULL DATE LAST_UPDATED_BY NOT NULL NUMBER(15) CREATION_DATE NOT NULL DATE CREATED_BY NOT NULL NUMBER(15) LAST_UPDATE_LOGIN NOT NULL NUMBER(15) NODE_NAME NOT NULL VARCHAR2(30) STATUS VARCHAR2(1) SERIAL_NUMBER NUMBER EDIT_COMMENTS VARCHAR2(2000) CTX_TYPE NOT NULL VARCHAR2(1)
For example, to gather the web port information of the E-Business Suite system, following query can be used;
SELECT extractvalue(xmltype(text),'//web_port') FROM fnd_oam_context_files where status='S';
How autoconfig works on it
- Each Context file version has a serial number given in the parameter
- When autoconfig is run, this serial number is written to the table FND_OAM_CONTEXT_FILES against the version of the Context file
- For example for a Context file containing the following information
The table FND_OAM_CONTEXT_FILES should contain the following entry:
NAME VERSION LAST_SYNC LAST_UPDATE CREATION_DATE SERIAL_NUMBER ---- ------- ------- -------- -------------- -------- apps_contextfile 115.377 21-NOV-13 21-NOV-13 27-SEP-05 67 .
- However it is possible that the Apps Tier Context file serial number can become un-synchronised with the serial number information in the table.
- If the serial number in the filesystem reads a lower value compared with that showing in the table for the same contextfile version, then each time Autoconfig is run, AutoConfig will see that the table is showing the higher value and it will replace the Context file in the filesystem with the parameter values from the contextfile associated with the serial number in the table.
- This results in any changes made to the filesystem Context file being ignored.
The adconfig log file will show the following:
File system Context file :/u11/app//appl/admin/apps_contextfile.xml Checking the Context file for possible updates from the Database Comparing the Context file stored in database with the Context file in the file system Result : File system Context is below par with respect to the data base Context Action to be taken : Copy the Data Base Context onto the file system Result : Context file successfully copied
What happens when we change the any context variable through OAM
- OAM displays all the context variable by parsing the context file stored in fnd_oam_context_files table (Autoconfig at each run uploads the context file in this table).
- When we try to update the context file, OAM first update’s the status flag from ‘S’ to ‘H'(History) for our context file record, it then inserts another row for the same context file with status ‘S’. (OAM inserts another row instead of updating the existing row to maintain change history for each context file)
- It then requests the specific node’s FNDFS listener for updating the file on the file system (autoconfig uses the file on the file system). So we have to make sure that the FNDFS listeners are running on all the nodes before using OAM to update the context file.