Asynchronous Business Function Error

Purpose of Document

In HTML client, ASYNCHRONOUS BUSINESS FUNCTION error may appear on screen which is a representation of COMMIT FAIL Error when "End Doc" business function gets called Asynchronously.

This document illustrates how to troubleshoot this type of asynchronous business function commit fail error based on some actual issues you may encounter in a certain application. 

This document is written based on web client configuration; The same troubleshooting technique can be applied on FAT clients.

 

 

The cause of commit fail error can vary and this document is intended to narrow down possible causes of encountering this type of issue on a case by case basis.

 

Q1> What is an asynchronous business function?

Any business function which gets called asynchronously, we call it as an asynchronous business function. It is usually related with Transaction File Master Business Function in calling Edit Line and End Doc routine. Refer to <Document 1265902.1> "E1: BSFN: Master Business Function in EnterpriseOne"

Since this master business function is requested by JAS (Java Application Server) to logic server which has to response within designated time.

 


 

Q2> Parameters affecting asynchronous business function in JAS

In [OWWEB] section of jas.ini,

Server
Manager
JAS.INIDefault
Value
Explanation
Asynchronous Business Functions AsynchBSFNEnabled true If enabled, asynchronous business functions will be running in a separate thread; otherwise, asynchronous business function will be running on the same thread as of the main processing thread for the user requests.
Initial BSFN Thread Pool Size AsyncThreadPoolSize 50 Initial size of the asynchronous business function thread pool for this instance. When the number of asynchronous business function threads is over the pool size, the pool grows its size to support more threads.
Increment of asynchronous business function thread pool AsyncThreadPoolSizeIncrement 5 The number of increment threads when the asynchronous business function thread pool grows.
Log out Extension Period LogoutProcessTimeout 720000 If there is asynchronous business function running when a user logs out from EnterpriseOne, this is the maximum time period (in milliseconds) that the enterpriseOne user session is kept alive to allow for the asynchronous business functions to be completed. If there is no asynchronous business function running at the time of the user logout, the EnterpriseOne session is immediately invalidated.

 

Note:

 

Q3> Parameters affecting timeout

The following parameters can be found in jde.ini and jas.ini

 SectionServer
Manager
iniDefault
Value
Explanation
JAS JDENET Timeout Threashold enterpriseserverTimeout 90000 The maximum time, in milliseconds, before a JDENET operation is considered to have timed out. (Time out value for requests sent to the Enterprise Server)
Logic
Server
JDENET Timeout Threashold enterpriseserverTimeout 60000 (jdenet_n kernel)
The maximum time, in milliseconds, before a Java JDENET operation is considered to be timeout.
Logic Server NETWORK QUEUE SETTINGS JDENET Timeout JDENETTimeout 60 (queue kernel)
The amount of time, in seconds, that a requesting process should wait after sending a JDENET request to wait for the response before considering the message to have timed out.

 

Note:

 

Q4> What is transaction processing?

Refer to <Document 1208208.1> "E1: DB: Transaction, Transaction Processing, Commit and Rollback"

In EnterpriseOne, transaction processing is in place to fulfill "All or Nothing for critical commitment".


 

 

Q5> What is Master Business Function?

In EnterpriseOne Transaction is tightly related with Master Business Fuction. Master Business Function (MBF) is a Business Function written to process a record into the JDE system, which is made up of many sub-routines. JD Edwards provides MBFs to allow calling programs to process certain predefined transactions. An MBF encapsulates the required logic, enforces data integrity, and insulates the calling programs from the database structures.

Refer to <Document 1265902.1> E1: BSFN: Master Business Function in EnterpriseOne


 

 

Q6> How to troubleshoot?

Basic information need verifying,

Additionally (depending on the issue),


Questions to Ponder:

QuestionsQuestionsJustificationReference
  1. Is issue sporadic/intermittent? If the issue is intermittent, necessary information above has to be verified. If possible, retrieve all JDE_*.logs in logic server and analyze it  
  2. Any change made before error started to come?    
  3. Issue started happening after ESU application? Build full package after applying any baseline ESU <Internal_Only><Document 1513969.1> E1: 42: Case Study - R42800 issues error "CMRB000002 - User buffer too small. Size allocated 1178, needed 1180"</Internal_Only>
  4. Issue occurred after tools release upgrade?    
  5. Upgrade in OS (including C Compiler) and DB? Memory related issue can be specific to a certain platform  
  6. Is there any custom Function, Table Trigger and/or Stored Procedure?   <Document 1301427.1> "E1: DB: Custom Stored Procedure Causes Deadlock in the Database"
  7. Was package successful? Special Instruction is performed properly  
Persistent 1. Does e1root_*.log contain TIMEOUT? Locking/blocking, looping and/or volume of data. Capture CallObject kernel log

<Document 1060095.1> "E1: ENV: How to Find any EnterpriseOne Log on Any Server, Platform, Client or Interactive/Batch Application"


<Document 1228683.1> "E1: DB: Case Study on Deadlock in EnterpriseOne Applications"

  2. Does e1root_*.log contain TM_TRAN_CANCELLED? This error will be specific End Doc routine with transaction processing on <Document 1094464.1> "E1: JAS: Exception/Error Code in JAS when Call Object Kernel Fails on Logic Server"
  3. Does error specific to End Doc?    
  4. Issue is specific to Edit Line?    
  5. Higher usages of system resources? (100% CPU Usage) Infinite Looping:
Review CallObject Kernel log (jdedebug.log) and determine the BSFN causes infinite looping
 
  6. Does jde_xxxx.log issues *.dmp file? Memory Error:
*.dmp file in Windows and CallStack in AS400 will contain offending BSFN. Review routine in that BSFN

<Document 1464687.1> E1: BSFN: Case Study on Memory Violation, Memory Corruption, Memory Overwrite, ACCESS VIOLATION and Zombie Kernel

 

  7. Issue occurs across environment? (DV, PY and/or PD)    
  8. The process resulted in zombie kernel? Memory Error:
Memory is created but not to be referenced
 
  9. Issue is specific to a certain user interface? Up/down grids multiple times and OK/Cancel/Close button click <Document 1265902.1> "E1: BSFN: Master Business Function in EnterpriseOne"
  10. Is issue specific to huge volume of data (e.g., a few of hundreds data through Excel Import)? Consider batch process or increase timeout parameters in jde.ini and jas.ini <Document 1265902.1> "E1: BSFN: Master Business Function in EnterpriseOne"
  11. Same issue occurs in Non-J* environment?    
Intermittent
/Sporadic
1.Any pattern in issue? (During Month-end process or a specific time range in a day) Refer best practices per applications and by having good performance in general issue can be minimized  
  2. e1root_xxxxxxxx.log?    
  3. All the jde_xxxx.logs in your logic server?    
  4. Issue occurs only for a certain transaction or data specific?    
  5. Does jde_xxxx.log issues *.dmp file?    
  6. The process resulted in zombie kernel?    
  7. Blocking information in Database?    

 

Note:

 

Q7> Possible cause and resolution of issue

Possible cause and resolution:

CauseResolutionConsiderations
The value for Timeout parameters are too small   Unless issue is specific to larget transaction do not change parameter which Oracle provides in your installation of EnterpriseOne
Faulty tools release   Look for known issue through My Oracle Support Portal
Missing bug   When issue is persistent or issue can be simulated at will
User interface issue   Based on user ID written in e1root_*.log, clarify further exact steps to simulate
The size of data Implement Batch Process or increase timeout values for both jas.ini and jde.ini <Document 1265902.1> - E1: BSFN: Master Business Function in EnterpriseOne
Blocking/Deadlock Check external Trigger, stored procedure and/or functions
Verify Object Reservation
Check Batch Control
<Document 1228683.1> - E1: DB: Case Study on Deadlock in EnterpriseOne Applications
Stored Procedure   <Document 1301427.1> - E1: DB: Custom Stored Procedure Causes Deadlock in the Database
Copied Business Data   <Document 779434.1> - E1: 43: Commit Failed Error in PY after copying Business Data from PD to PY

 

Example1:

 

*ERROR* CallObject@12395e7: COSE#1000 Request timeout: timeout after 90000ms host JDEAPP:6015(52647) SocID:49322 PID:4572 BSFN:F4211FSEndDoc user:JDE Env:JPD900
*ERROR* CallObject@12395e7: Server problem. The server may still be available, but because of state information, the entire unit-of-work must be resubmitted.

A piece of information written above reads,

: So this information contains on what is your issue about. Then depends on the nature of issue, obtain the jde_xxxx.log and jdedebug_xxxx.log.