Q1. What is Environment Cache and which tables are cached?
Q2. When is the JDB Database Cache Loaded?
Q3. When is the JDB Database Cache Used?
Q4. What kind of information is cached in JAS (Java Application Server)?
Q5. What kind of information is cached in Logic Server (where BSFNs and UBEs are running)?
Q6. Are there be any other tables to be cached on the Server other than object cache?
Q7. Can we define custom Service Cache and/or Database Cache?
Q8. Where to find information on Database Caching and Service Cache?
Q9. Is there a full list of tables for Database Cache and Service Cache?
Q10. How to refresh/reset/flush Database Cache and Service Cache?
Q11. How does it make use of these caching data in programming?
Q12. What does it mean cache can not be updated?
Q13. What is the impact on applications if you remove any table (Ex: F0008) from F98613 table and not re-add it?
Q14. How to determine whether a certain application is making use of cache or not?
Q15. Can database cache be reset/flushed when multiple users are connected to a data source you want to reset?
Q16. What kind of BSFN/API will cache tables?
Q17. Is it possible to cache a certain range of data (not the whole table) in calling CacheTableForUBE?
Q18. Is there a way to force subsystem process/jobs to pick up changes to UDCs that occurred since the subsystem UBE was first submitted?
Q19. What is the memory area name in JDE?
Q20. Other Industry caches
Q21. Will the data in table Company Constant (F0010) be cached?
Q22. What are the common errors you may get that are caused by uncompleted Cache Refreshing which is related to data in F0010?
Q23. How to debug when the issue appears to be caused by data in F0010?
Q24. How does the system make use of runtime cache when submitting a UBE to the Server?
Q25. Unable to see changes to tables F0006 and F0901 listed in P98613 after they are updated
Q26. What does the message "System cache is full" in the server JDE.LOG mean?
Q27. Is there any manual steps to delete cache and reload javascript in JAS?
Q28. What is JSP Cache and how to clear JSP Cache?
Q1. What is Environment Cache and what tables belong to this cache?
Environment Cache is the cache which is initialized during E1 login or when starting JDE service(s). This concept is similar to PGA (Program Global Area), a memory region that stores the data and control information for the server processes. Some of the tables that are cached:
TABLE | TABLE NAME/DESC |
---|---|
F0009 | General Constants |
F0010 | Company Constants |
F00921 | User Display Preferences |
F4009 | Distribution/Manufacturing Constants |
F0092 | Library List - Users |
If any value for the above tables change, the change will take effect after logging off and back on to EnterpriseOne.
- The table F0009 is unique from above list as this file belongs to neither Service Cache nor Database Cache
- Since F0009 is to control entire EnterpriseOne behavior, try not to change after JDE service has been started
- If a certain Call Object Kernel process is running the change made against the table F0009 may not affect transaction within existing process
- F00921 (User Display Preference) is re-categorized from Environment Cache to User Cache
- Only default company belongs to environment cache in caching Company Constants (F0010)
- Actual query is SELECT CCCO,CCCRCD,CCCRYR,CCBKTX,CCABIN FROM PDCURYDTA.F0010 WHERE (CCCO = '00000' )
- CRCD - Currency Code - From (CurrencyCodeFrom)
- CRYR - Currency Conversion Y/N/Z (CurrencyConverYNAR) this is important flag as based on this value it determines system variable SL CurrencyProcessing
- BKTX - Detailed Currency Restatement (BookToTax)
- ABIN - Post Account Balances by Currency (AddressBookInterface)
- Last two columns BKTX and ABIN are changed the usage
- So if it is crucial to change any value against the table F0009,
- Either put running call object kernel process into Kernel Recycling
- Or restart JDE service
- DD Alias DCYR (Century Cutoff Year (EnterpriseOne), to get default value) will be cached at this level
Q2. When is the JDB Database Cache Loaded?
The list of tables defined in Business View Environment Server (F98613) are NOT pre-loaded into cache during JDE startup. EnterpriseOne reads defined tables in F98613 at startup time, opens the tables specified and caches the information about which tables to be kept in JDB Database cache. In F98613, each table has a limit of how many rows/how much memory will be stored for that table. As the applications fetch a specific row, they are added to cache; and if it exceeds its limit which will be flushed.
Q3. When is the JDB Database Cache Used?
ONLY WHEN it meets the following conditions in a certain EnterpriseOne Business Function:
- If the table is defined in F98613 AND
- If the business function issued JDB APIJDB_FetchKeyed() AND
- If the business function specified the Primary key in the Selection AND
- If the business function specified all of the columns as return values in the primary key in the Selection
When a business function issues a JDB_FetchKeyed(), JDB checks whether that table is defined in F98613. It will first search cache for the requested record. If the row is not in cached, it fetches the row from the table and adds it to cache. One of the other JDB I/O APIs uses JDB DB cache. In Performance Viewer, a read from JDB DB cache shows up as a call to JDB_FetchKeyedCache(). In a certain batch, tables can be added to initiate database cache by calling business function B4101380 - CacheTableForUBE.
Q4. What kind of information is cached in JAS (Java Application Server)?
The following information will be cached by JAS. These caches will be handled by JVM in memory (RAM). For example:
- Data Dictionary Alpha Cache (c.f., DDTEXT)
- JDBJ OCM Cache
- Row Column Cache (c.f., FDATEXT)
- JDBj Service Cache (refer Service Cache)
- Menu Cache (from F989998/F989999)
- Data Dictionary Glossary Text (F00165 -Media Object)
- JDBj Security Cache
- Serialized Objects (Object Cache data in F989998/F989999 - Java Persistent Data)
Object cache will contain conventional TAMSpec information. Note that synchronization of this information is important among Central Objects, Serialized Objects and Object Cache.
- Object Cache can be referred to as RuntimeCache, TAMSpec or metadata per its own usage and status of information.
- Web Browser may use JSP (JavaServer Pages). Detail information how to delete jsp cache can be found at Q28. What is JSP Cache and how to clear JSP Cache?
- Refer to Document 1142313.1 E1: ENV: Master Note on Specification (SPEC) in EnterpriseOne
Q5. What kind of information is cached in Logic Server (where BSFNs and UBEs run)?
Tables that are cached:
TABLE | TABLE NAME/DESC |
---|---|
F98613 | Database Caching (Table Defined from F98613) |
F98611 | Data Source Master |
F983051 | Version List (Processing Option) |
F986101 | Object Configuration Master (OCM) |
F00950 | Security Workbench Table (Runtime Security) |
These table cachings fulfill higher data integrity in general. The sequence of cached data will be identical to the sequence of primary key of tabled defined as it returns the best performance in searching data.
Q6. Are any other tables cached on the Server other than for object cache?
It varies between Tools Releases. For example, JDE makes use of KRNLSPEC.zip to cache bootstrap tables. The tables defined below are hard coded so overriding OCM will not take effect. Examples are, KRNLSPEC.zip. Refer to Document 644929.1 E1: DD: Impact of Changing a Bootstrap Table Data Dictionary Item.
TABLE | TABLE NAME/DESC |
---|---|
F00165 | Media Objects storage |
F0092 | Library Lists - User |
F00921 | User Display Preferences |
F00922 | User Preference Tag File |
F00924 | User Install Package |
F00925 | User Access Definition |
F00926 | Anonymous User Access Table |
F0093 | Library List Control |
F0094 | Library List Master File |
F00941 | Environment Detail - One World |
F00942 | Object Path Master File |
F00945 | Release Master |
F00948 | Release/Data Source Map |
F00960 | Machine/Group Identification |
F9200 | Data Item Master |
F9202 | Data Field Display Text |
F9203 | Data Item Alpha Descriptions |
F9207 | Data Dictionary - Error Message Information |
F9210 | Data Field Specifications (OneWorld) |
F9211 | Data Dictionary - Smart Field |
F9312 | Security History |
F95921 | Role Relationship Table |
F9650 | Machine Master |
F98101 | Imaging Constants |
F983051 | Version List |
F9860 | Object Librarian Master Table |
F9861 | Object Librarian - Status Detail |
F986101 | Object Configuration Master |
F98611 | Data Source Master |
F986111 | Job Number Master File |
F98613 | Business View Environmental Server (Database Caching) |
F9862 | Object Librarian - Function Detail |
F9863 | Object Librarian - Object Relationships |
F9865 | Form Information File |
F98710 | Table Header |
F98711 | Table Columns |
F98712 | Primary Index Header |
F98713 | Primary Index Detail |
F98720 | Business View Specfication |
F98740 | Event Rules - Link Table |
F98741 | Event Rules - Specification Table |
F98743 | Data Structure Templates |
F98745 | Smart Field Named Mappings |
F98750 | Forms Design Aid Text Information |
F98751 | Forms Design Aid Specification Info |
F98752 | Forms Design Aid/Software Versions Repository Header Info |
F98753 | Forms Design Aid/Software Versions Repository Detail Info |
F98760 | Report Design Aid Text Information |
F98761 | Report Design Aid Specification Info |
F98762 | JDEBLC - Behavior Information |
F9885 | Install Package Header |
F9887 | Install Package Build History |
F9888 | Merge Log |
F9889 | Deployment Location Master |
F98891 | Deployment Location Path Code |
F98950 | User Override Table |
F98DRENV | Data Replication Environment Mapping Table |
F98DRPUB | Data Replication Publisher |
F98DRSUB | Data Replication Subscribers |
F98OWSEC | OneWorld Security |
- The industry definition of Bootstrap ("a summary of the process of a simple computer system activating a more complicated computer system or, a self-sustaining process that proceeds without external help") implies, JDE Service needs restarting to take effect on changes made against the above listed tables for some instances. Refer to:
- Document 1348278.1 E1: DB: List of Tables Owned by Server Map (SVM900)
- Document 1142313.1 E1: ENV: Overview of Specification (SPEC) in EnterpriseOne
- To find list of tables used by any E1 application, review Document 1523804.1 E1: How To Generate a List of Tables Updated by a JD Edwards EnterpriseOne Application - for details.
Q7. Can a custom Service Cache and/or Database Cache be defined?
Yes. Ideally you can define your own cache but we discourage you from adding it because it may cause other issues. One possible reason is that the JDE API will determine whether to read the cache table or physical table so this has to work with the actual C code available in executing a certain transaction. As we have discussed earlier, the purpose of caching is not only to have better performance but also to maintain higher consistency across the system.
Q8. Where to find information on Database Caching and Service Cache?
The different caches are as follows:
- Database Cache
- Log on WebDev/HTML client
- Fast Path to P98613 (Work with Database Caching)
- Service Cache
- Do not change defined values/tables as it may cause unexpected results when running certain applications
- You can get this information from \System_JAR\com\jdedwards\database\services\serviceobj\ on your JAS server to check tables which are members of ServiceCache in OAS (c.f., ...\webclient.war\WEB-INF\lib for WAS).
Q9. Is there a full list of tables for Database Cache and Service Cache?
P98613 (Work With Database Caching) application will list all tables cached within your own environment because the tables defined can vary between EnterpriseOne versions and Tools Releases. Below is a basic list of tables where data are cached.
- Database Cache in Logic server and FAT client
able | Table Name/Description | Others |
---|---|---|
F0004 | User Defined Code Types | Database Cache & Service Cache |
F0005 | User Defined Codes | Database Cache & Service Cache |
F0006 | Cost Center Master | |
F0007 | Work Day Calendar | |
F0008 | Date Fiscal Patterns | |
F0010 | Company Constants | Database Cache & Service Cache * In Xe and ERP8, this table is not a member of Database Cache |
F0010T | Company Constants Tag Table | Can be added for Dynamic Cache (9.1 Update 2 and above) |
F0012 | Automatic Accounting Instructions Mater | |
F0013 | Currency Codes | Database Cache & Service Cache |
F0014 | Payment Terms | |
F00141 | Advanced Payment Terms | Can be added for Dynamic Cache (9.1 Update 2 and above) |
F00144 | Installment Payment Terms | |
F0015 | Currency Exchange Rates | |
F0022 | Tax Rules | |
F0025 | Ledger Type Master File | Database Cache & Service Cache |
F0026 | Job Cost Constants | |
F01138 | AB Data Permission List Definitions | |
F069016 | Payroll Tax Area Profile | |
F069036 | Payroll Transaction Cross Reference | |
F069056 | Establishment Constant File | |
F069086 | Payroll Corporate Tax Identification | |
F069096 | Payroll General Constants | |
F069106 | Union Benefits Master | |
F069116 | Payroll Transaction Constants | |
F069226 | Unemployment Insurance Rates | |
F07901 | Pre-Payroll DBA Calculation Control Table | |
F08040 | HR History Constants | |
F0901 | Account Master | |
F1200 | Fixed Asset Constants | Can be added for dynamic cache (9.1 Update 2 and above) |
F1609 | Cost Management Constants | |
F1690 | Enables Tables by Application | |
F17001 | Service Warranty Constants Table | |
F1724 | Service Contract Coverage | |
F1725 | Service Contract Services | |
F1752 | Case Types | |
F1753 | Case Priority | |
F1790 | Product Family/Model Master | |
F1793 | S/WM Line Type Constants | |
F3009 | Job Ship Manufacturing Constants | |
F3009T | Manufacturing Constants Tag File | Can be added for dynamic cache (9.1 Update 2 and above) |
F40039 | Document Type Master | |
F40070 | Preference Master File | |
F40073 | Preference Hierarchy File | |
F4008 | Tax Areas | |
F4009 | Distribution/Manufacturing Constants | |
F40095 | Default Locations/Printers | |
F4009T1 | Distribution/Manufacturing Constant Tag Table | Added for Taxed Unit Price (9.0 and above) |
F40203 | Order Activity Rules | |
F40205 | Line Type Control Constants File | |
F4070 | Price Adjustment Schedule | |
F4071 | Price Adjustment Type | |
F4095 | Distribution/Manufacturing - AAI Values | |
F41001 | Inventory Constants | |
F41002 | Item Units of Measure Conversion Factors | |
F41003 | Unit of Measure standard conversion | |
F46L001 | License Plate Numbering Constants | |
F48091 | Billing System Constants | |
F49002 | Transportation Constants | Can be added for dynamic cache (9.1 Update 2 and above) |
F49003 | Load Type Constants | Can be added for dynamic cache (9.1 Update 2 and above) |
F49004 | Mode of Transport Constants | Can be added for dynamic cache (9.1 Update 2 and above) |
F4950 | Routing Entries | Can be added for dynamic cache (9.1 Update 2 and above) |
F4953 | Routing Hierarchy | Can be added for dynamic cache (9.1 Update 2 and above) |
F4973 | Rate Structure Definition | Can be added for dynamic cache (9.1 Update 2 and above) |
F4978 | Charge Code Definitions | Can be added for dynamic cache (9.1 Update 2 and above) |
F7306 | Quantum Sales and Use Tax Constants | |
F90CA000 | CRM_Constants Table | Can be added for dynamic cache (9.1 Update 2 and above) |
F95922 | Permission List Relationship Table | |
F99410 | OneWorld System Control File | * Not Server Map |
FF30L011 | Line Design Control Parameters | |
FF30L012 | Kanban Control Parameters | |
FF34S003 | DFM Planning Parameters |
- Service Cache in JAS
Table | Table Name/Description | Others |
---|---|---|
F0004 | User Defined Code Types | & Database Cache |
F0005 | User Defined Codes | & Database Cache |
F0005D | User Defined Codes - Alternative Language | Only Service Cache (Not Database Cache) |
F0010 | Company Constants | & Database Cache |
F0013 | Currency Codes | & Database Cache |
F0025 | Ledger Type Master File | & Database Cache |
F0092 | Library List - User | Only Service Cache (Not Database Cache) |
F00941 | Environment Detail - OneWorld | Only Service Cache (Not Database Cache) |
F0111 | Address Book - Who's Who | Only Service Cache (Not Database Cache) |
F9500001 | CFR Configuration Table | Only Service Cache (Not Database Cache) |
F95921 | Role Relationship Table | Only Service Cache (Not Database Cache) |
F9861 | Object Librarian - Status Detail | Only Service Cache (Not Database Cache) |
Refer to Document 650630.1 E1: FDA: Tables Cached by JDBJ (8.95 and higher) and also the list below of the detailed definition:
* abfullname
* bootstrap
* cfrconfig
* company
* currency
* datadictionary
* ledgertype
* ocm
* omw
* packagelookup
* pathcode
* role
* security
* serviceobj
* setid
* spec
* tablelookup
* udc
- Most tables defined here are constant (static) tables which requires low maintenance or data is not added/updated/deleted frequently.
- In EnterprieseOne, tables sitting in system settings (menu ID xxx41 (Ex: G4241)) are good candidates for JDB Database Caching.
- F0006 is a member of Database Caching. When you use this as Job Master try not to modify often and in case you have updated a certain column value (Ex: Address Book Number) and the application does not reflect it, you need to reset database cache.
Q10. How to refresh/ reset/ flush Database Cache and Service Cache?
Refreshing/resetting/flushing cache can be vary, for example:
- Database Cache
- Log into a FAT/HTML or WebDev client
- Fast Path to WSJ (Work with Submitted Jobs)
- (Optional) if you have the enhancement bug 11734236 (Form Exit) Advanced (P986116)
- Highlight your logic Server and from ROW menu click on Reset Cache
- Select Database, then click OK. This will flush database caching
Update: EnterpriseOne Tools Release 9.1.2 and above - Two additional options are available to reset database table cache:
- Option 1 - to reset Database Cache in Enterprise Server (through Server Manager)
- Managed Homes and Managed Instances
- (Combo Box) Select View > Clear Table Cache
- Option 2- to reset Database Cache in Enterprise Server (through HTML client)
- Reset Database Table Cache through P986116D
- GH902 (EnterpriseOne Menus > EnterpriseOne Life Cycle Tools > Application Development > Reset Table Cache (P986116D))
IMPORTANT Update 2: If you are EnterpriseOne Application Release 9.1 Update 2, new feature which can delete Database Table Cache automatically in your updating/deleting a certain table record through Pre-Configured applications. For detail information refer to Document 1617534.1 E1: ENV: Resetting Database Table Cache Using a Pre-Configured Application and P986116D.
- Option 3 - Reset/Delete/Flush a specific table (Database Table Cache) automatically as defined in Pre-Configured application/table combination
- Clear Table Cache(TBLREFR) is enabled in System Control File - F99410/P99410
- Set Special Handling Code 11 for UDC 00/RF - Table Cache Auto Refresh
- Run applications listed in UDC 00/RF
- Service Cache
- Use SAW (Server Administration Workbench) or Server Manager (depending on the Tools Release)
- Find the JAS instance you are working with
- In the Runtime Metrics category (SMC), click on JDBJ Database Caches
- Select JDBj Service Caches and click on Clear Cache to flush Service Cache
- Verify that Cache Size is set to zero
The enhancement Bug 11734236 WSJ USABILITY changes the behavior of Fast Path 'WSJ':
1. Read F0005.DL02 (=20/GH9011) where (F0005.KY = 'WSJ') on UDC H90/FP (Fast Path)
2. Read F9000.OBNM (=P986116) where (F9000.TASKNM = 20/GH9011). So WSJ is calling P986116|ZJDE0001 (which is default version)
3. In P986116, depending on Processing Option parameters (PO cManagerEntry),
- Blank (ZJDE0001 version, Default): Call P986110B|W986110BA - [Submitted Job Search]
- 1 (ZJDE0002 version): Call P986116|W986116A [Work With Servers]. Same application can be accessed through Form Exit of P986110B|W986110BA where Reset Cache option is available
Q11. How does it make use of the caching data in programming?
If JDE BSFN is to read cache, JDE API JDB_FetchKeyed will be issued from a certain BSFN. For Tools Releases 8.97 and above, additional information can be found in our Server Manager Guides on Caching:
- Document 1396301.2Information Center: Server Manager in the JD Edwards EnterpriseOne Tools and Technology Product
- Document 747330.1 E1: SVM: An Introduction To Server Manager For JD Edwards EnterpriseOne
- Document 702188.1 JD Edwards EnterpriseOne Tools Release 8.97 Server Manager Guide, Update
- Document 705509.1 JD Edwards EnterpriseOne Tools 8.98 Server Manager Guide, Update
Q12. What does "cache can not be updated" mean?
Transactional Cache can be updated or manipulated through BSFNs; however Database cache which is shared cache can only be inserted and deleted. Deletion\flush takes place when starting or bouncing JDE Service(s) or by clicking the button 'Reset Cache' in Work with Server Jobs (WSJ) or when database cache reaches the defined maximum value of Memory or Rows.
Q13. What is the impact on applications if you remove any table (Ex: F0008) from F98613 and not re-add it?
This action is not recommended. As stated above the purpose of database caching is to maintain high integrity and performance for constant tables which are to be requested frequently. Across EnterpriseOne, table F0008 will be accessed numerous times. In removing F0008 from F98613 a certain routine has to take round trip to logic server to DB server so there can be some performance impact especially in running long running UBEs. Most of cases, F0008 is subset of F0010 so it is not proper to remove it from list.
Q14. How to determine whether a certain application is making use of cache or not?
There can be a few methods to determine this. First; in a long running report, the performance gain may be significant (Ex: run R3482/R3483 with caching on and without caching on). An alternative way to determine is by analyzing the JDEDEBUG.LOG (Call Object kernel log) which may have the behavior described below:
Entering JDB_OpenTable(Table = F0004)
Exiting JDB_OpenTable(Table = F0004) with Success
Entering JDB_FetchKeyed
ORACLE DBInitReq conn=08A89A20 requ=1AB3AFF0 den60srvs (gsc812) new [ 24]
SELECT * FROM PD812.F0004 WHERE ( DTSY = '01' AND DTRT = 'ST' )
ORACLE DBFetch conn=08A89A20 requ=1AB3AFF0 maxrows=100
Fetched the record
Entering JDB_CloseTable
Entering JDB_CloseTable(Table = F0004)
2nd request:
Entering JDB_OpenTable(Table = F0004)
Exiting JDB_OpenTable(Table = F0004) with Success
Entering JDB_FetchKeyed
Fetched the record
Entering JDB_CloseTable
Entering JDB_CloseTable(Table = F0004)
From the above example, it does not make a connection to DB den60srvs because database cache will return a value immediate after JDE API JDB_FetchKeyed(). You may flush database cache in case you need to debug what is actual query issued as it is shown '1st request' above.
Q15. Can database cache be reset/flushed when multiple users are connected to a data source you want to reset?
Yes. As stated above, database cache sits in a shared memory area per data source that you have defined so it should not affect cache (private memory) created during transactions . Steps to get certain table information are:
- EnterpriseOne business function issues JDB_FetchKeyed() against the table defined in F98613
- Look up whether table requested is a member of table F98613
- Look up in DB cache
- (If found from DB cache then) read cache
- (Not found then) travel to Database to get requested information in specific data source
- Then insert it into DB cache for next request
If database cache is flushed in the middle of a transaction, it will do step 5.
Q16. What kind of BSFN/API will cache tables?
Some examples are:
- Call JDE API JDB_AddTableToDBCache with parameters (hUser, idTable,lpDS->idNumberRowsToCache) can be called in long running UBEs
- B3400490 - MRPGetMRPParameters (MRP, Get MRP Parameters) when running R3482/R3483 - MRP/DRP to add tables F4101, F4102 and F4801
- B4101380 - CacheTableForUBE (Cache Table for UBE) when running R42800 to add tables F0101, F4101 and F4102
- Call a specific APIs mrdbCreateTable() and mrdbCreateIndex()
- B4504650 - PricingCacheManager in P4530 (Accelerated Pricing Resolution Engine Workbench) to cache tables F4072, F4092, F40941, F40942 and F40943.
- For this example, Caching Table returns better performance rather than integrity for data which has to be referenced multiple times. Note that Table Caching cannot be performed for specific data unless it follows standard JDECACHE process (Ex: InitEnv, InitUser, CreateIndex, CacheInit, CacheAdd, CacheOpenCursor, ManipululationAPIs, CacheCloseCursor, CacheTerminate, CacheTerminateAll, FreeUser, FreeEnv)
- Depending on the settings, B3400490 may cache data from F4101, F4102 and F4801 as this data may be requested from multiple internal routines (which reads all the Supply/Demand related transactions).
- Above APIs just adds defined tables to be cached (because these tables are not defined in P98613) not data.
- For this case, data for item A can be requested multiple times then caching it in Memory can be a better option to read from DB and it minimizes round trips to the DB.
- Most common example can be in tables F0010 and F0005 which get requested multiple times in a single transaction. In this scenario, the performance gain of database caching can be huge.
- Currently UBEs (R085530, R12800, R15L1091, R17024, R42520, R42565, R42760, R4277701, R42800, R45502, R46171, R47011 and R4981) add tables for Database Cache dynamically by calling B4101380
- idNumberRowsToCache is not specified (that is, 0) then it records 1000 rows in memory.
- API JDBRS_GetTableSpecs() gets called to get metadata (Table and Index) in Memory for tables listed in B4504650
Q17. Is it possible to cache a certain range of data (not the entire table) in calling CacheTableForUBE?
No. it is not possible to implement this as JDE borrows Database technology to perform this. So if a certain table is huge in size, (and it is optional) do not turn on caching as this may cause 'Memory Allocation Failure' errors. If a certain table is defined for caching through UBE, then it is just ready to be cached supposing that same records may be requested multiple times in a routine. To have some example of standard EnterpriseOne UBEs refer to Document 1420774.1 E1: 40: Database Cache in Distribution and Manufacturing
- JDB Database Cache is limited through the max number of rows in F98613. For details refer to Document 626185.1 E1: DB: How To Adjust Database Caches Within OneWorld/EnterpriseOne.
- For the size of memory in Unicode refer to Document 1272974.1 E1: UBE: Case Study on "MEMORY ALLOCATION FAILURE" Errors in EnterpriseOne Batch Applications.
Q18. Is there a way to force subsystem process/jobs to pick up changes to UDCs that occurred since the subsystem UBE was first submitted?
No. Due to the nature of subsystem UBEs, these run continuously and by default. So changes to UDC values will not be picked up until EnterpriseOne services are restarted, or the subsystem UBE is stopped and restarted. Refer section "When is the JDB Database Cache Used?" which explains why it performs dirty read.
Q19. What is the memory area name in JDE?
It is defined at COMMON_POOL which sits in the Shared Memory area and this is accessed globally and should not be updated.
Since EnterpriseOne follows the Distributed Environment in industry, other types of caches used depends on these possible questions:
- What resource/data should be stored in the cache?
- How long should the resource/object/data be stored in the cache?
- So possible industry caching:
- Temporal Cache (Ex: Database Cache, Service Cache)
- Spatial Cache (Ex: Cache in Grid)
- Primed Cache (Ex: Web Browser Cache)
- Demand Cache (Ex: Object Cache)
- Transactional Cache (Ex: Any cache used through application level business functions)
- Shared Cache (Ex: Database Cache)
Note that certain caches can be categorized in more than 2 cache types depending on Time and Space.
Q21. Will the data in table Company Constant (F0010) be cached?
The Table F0010 is cached for both JAS (Client) and Logic Server (Server). We may call it Service Cache and Database Caching respectively. In general:
- If the issue is related to Currency Information it will come from Service Cache as Currency Decimal has to be handled at Presentation level along with F0013, F0025 etc. Refer to Document 1090584.1 E1: BSFN: Frequently Asked Questions on Business Functions Running on JAS to have the full list of Business Method which runs in JAS.
- If the issue is not related to Currency Code then most likely the issue may come from Server Database Caching since the thin/HTML client environment DEFAULT BSFN is mapped to run on the Server through the OCM mapping. So the request for table F0010 will be performed through BSFN(s) so it has to be read Cache in Server (Database Cache)
Q22. What are the common errors you may get that are caused by uncompleted Cache Refreshing which is related to data in F0010?
To determine this observe the BSFN which gives the error. If the error comes from BSFNs the error may appear as "Record Invalid" or "Fetch From table failed" depending on the application you are running. This is usually caused by Service Cache in Server.
- B0000069 - RetrieveLedgerTypeCurrency
- B0000095 - FormatCompany
- B0000128 - RetrieveCompanyCurrencyCode
- B0000130 - RetrieveCompanyFromBusinessUnit
- B0000198 - GetCurrencyCodeandDecimals
- B0000399 - CurrencyDecimalShift
If the error is issued by other BSFNs, Database caching may have a problem. The error can vary like this example: Current Period Number may be computed wrongly. Some examples may be:
- Issue is related to Currency Code: Then service cache is to be refreshed
- Issue is related something other than Currency Code: Database Caching has to be refreshed
Example of error:
Form P4210_W4210A
Control Id 11
Control Title Invoice Warehouse
Event Control Exited/Changed-Inline
Line No 21
BSFN Details:
Source File RetrieveCompanyCurrencyCode.java (in package com.peoplesoft.e1.bsfn.b0000128)
Error ID 0002
BSFN DSTR Item 1
For this example, Service Cache in JAS is having problem after changing period number in P0010. As we can see in the error detail, issue is detected by business method RetrieveCompanyCurrencyCode.java. For further detail, refer to Document 1090584.1 E1: BSFN: Frequently Asked Questions on Business Functions/Methods Running on JAS. So to minimize this type of errors, reset Service Cache in JAS and Database cache in your Logic Server.
Q23. How to debug when the issue appears to be caused by data in F0010?
Whenever there is any issue with table F0010, try to capture the JASDEBUG.LOG from the JAS Server and JDEDEBUG.LOG from the Logic Server. To handle data for both database level and presentation level, some BSFNs will be running in JAS while others run on the logic server though by default, The DEFAULT BSFN is mapped to Server for J* Environments through OCM mapping. Some BSFNs run in Local (JAS) which can be found defined in LocalLogicCatalogLocalLogicCatalog.xml (OAS: OAS:
\\ JASMachineName\ E1Release\system\OC4J\j2ee\home\applications\webclient.ear\webclient\WEB-INF\classes)
Refer to Document 1090584.1 E1: BSFN: Frequently Asked Questions on Business Functions Running on JAS
Q24. How does the system make use of runtime cache when submitting a UBE to the Server?
With Tools Release 8.97 and 8.98 there are two different object caches, one is in UserOverride and the other is in RuntimeCache. Please note that when deploying a package or submitting version spec, object cache (RDASPEC) will get flushed and created. Running a UBE, the UBE Kernel will create a temporary file to hold runtime cache (DataSelection and DataSequence information) and at the end of the transaction these files are removed.
Q25. Unable to see changes to tables F0006 and F0901 listed in P98613 after they are updated
Custom applications that write to F0006 and F0901 which are listed in P98613, do not show newly updated data after an insert/update. If these tables are removed from P98613, the new/updated data shows. Is there any impact to these tables (Ex: data integrity) if they are removed from P98613?
If these tables are being updated frequently (inserts/updates, etc.), then caching these tables is not recommended; which would mean deleting these tables from P98613. If these tables are not updated frequently, resetting the database cache after any changes to these tables would be required.
Tables are cached only when select operation are performed. For example, when an insert or update to these tables is done, it will not cache at the same time. To reflect changes in cache, a reset/refresh cache is required.
Q26. What does the message "System cache is full" in the server JDE.LOG mean?
The Enterprise/Logic server JDE.LOG log is full of thousands of lines the same message:
JDB9900999999 - System cache is full
What does this message mean and how can it be eliminated?
The error with "System cache is full" does not mean that it is from the JDE kernel or "system" code. The error can come from any jdeCache usage, from Apps, BSFNs, and Tools code. Any call to jdeCacheAdd() or JDECM_CacheAdd(), could result in a code path to the error. The following are some issues that can cause this message in the log. Note: Some of the causes listed below do not have a direct solution.
Scenario 1:
The error could happen if the nTotalMemoryUsed starts at size zero, and the very first usage comes in with a negative nDataSize. However, there is a test for nDataSize <= 0, which should log a different error.
Scenario 2:
The error could happen if the actual cache memory usage became larger than 2147483647, at which point the nTotalMemoryUsed would become a negative number. However, it would likely be a large negative number, and would not trigger the error until it was increased enough to be larger than -1000. The error could be created by having nDataSize of (2147483647 minus {1, or 2, or 3, ... through 499}). Adding the second record should trigger the error.
Scenario 3:
It can be caused if the previous cache memory was deleted (such as RBTREE_Delete()), and the nNodeDataSize was too large, or the function was called too many times, resulting in a negative nTotalMemoryUsed. This might happen if the nDataSize was not consistent, and data was added using different sizes, and that resulted in incorrect sizes being subtracted as records were dropped.
Scenario 4:
A memory overwrite, from somewhere else, could write over nTotalMemoryUsed , and change it to a small negative number.
The function JDECM_GetMemoryStats() can be called to get nTotalMemoryUsed size.
CMTRACE can be turned on, to track if there was a negative data size or negative total memory. The functions jdeCacheAdd() or JDECM_CacheAdd() will call JCACH_CacheAddInt(), which will display "JDECM_SUCCESS: Add rec size:%d Total mem:%d Total recs:%d", where "rec size" is the nDataSize being added and the "Total mem" is the nTotalMemoryUsed.
For this type of message, contact Oracle Global Support for further assistance.
The error could happen if the nTotalMemoryUsed starts at size zero, and the very first usage comes in with a negative nDataSize. However, there is a test for nDataSize <= 0, which should log a different error.
Q27. Is there any manual steps to delete cache and reload javascript in JAS?
This instruction can be applied as follows:
- when applying a fix from Oracle Development or there is an update that involves JS files
- and/or when restarting the JAS instance does not fix the issue
Note that Step 1 and 2 is only for situations where Oracle Development has delivered a customer specific fix
- Move the original JDEDTA.js (can be any js file) file from …\webclient.ear\webclient\js\ to desktop.
- Now place the updated JDEDTA.js file under …\webclient.ear\webclient\js\
- Run the Internet browser (Ex: Firefox), press ctrl-shift-del and delete all files. (check all check boxes)
- Press ctrl-F5 to reload javascript
- Test the application
- Repeat #3 with Internet Explorer with same command key
Q28. What is JSP Cache and how to clear JSP Cache?
JSP (JavaServer Pages) Cache is the compiled version of JSP files. When JSP gets compiled by Apache Jserv, it gets internally gets converted into a .java file (servlet) and then that .java file gets compiled into a .class file. To optimize runtime performance, it may be required to clear JAS cache.
In OAS:
- Stop OAS application server
- The usual directory that holds the JSP cache is $COMMON_TOP/_pages in the Oracle App sever. Customer can check for the html4login.class, loginDecoration.class in that dir and delete that 2 files only(pls take a back up of file before delete them).
- start the JAS instance and retest the issue.
- Example JSPCache path is: \denicint2\z$\product\10.1.3.1\OracleAS_1\j2ee\<server_name>\application-deployments\EA_JS_101\webclient\persistence\_pages\_share…
- Delete _html4login.java, _html4login.class, _html4login.jpa files in this dir.
- Review the loginDecoration.class, loginDecoration.jpa, loginDecoration.class files and delete then under this dir. and bounce the server and re-test this issue.
In WebLogic:
For Weblogic server under the domain/servers folder go to each server folder. Delete the folders named like "tmp", cache. (Take a backup of the folders before deleting)
Ex: user_projects\domains\<yourdomain>\servers\\tmp