E1: ENV: Frequently Asked Questions on Caching in EnterpriseOne (Doc ID 944015.1)


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.

Notes:
  • 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.

Fetch Keyed routine


 

 

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.

Notes:
  • 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

 

Notes: 
  • 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

Notes:
  • 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
Note: 
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
   : Reset Cache option is available in P986116 which can be accessed through (Form Exit Menu) W986110BA then choose "Advanced" which is calling P986116|W986116

 


 

 

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:

     1st request:
    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:

  1. EnterpriseOne business function issues JDB_FetchKeyed() against the table defined in F98613
  2. Look up whether table requested is a member of table F98613
  3. Look up in DB cache
  4. (If found from DB cache then) read cache
  5. (Not found then) travel to Database to get requested information in specific data source
  6. 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.

 

Notes:
  • 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

Notes:
  • 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.


 

 

Q20. Other Industry caches

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:

ER Details:
    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

  1. Move the original JDEDTA.js (can be any js file) file from …\webclient.ear\webclient\js\ to desktop.
  2. Now place the updated JDEDTA.js file under …\webclient.ear\webclient\js\
  3. Run the Internet browser (Ex: Firefox), press ctrl-shift-del and delete all files. (check all check boxes)
  4. Press ctrl-F5 to reload javascript
  5. Test the application
  6. 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:

  1. Stop OAS application server
  2. 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).
  3. 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM