This document describes message/pop-up window "Memory Violation" while running Voucher Match (P4314).
Below error is coming in B9 when Windows determines Memory Violation against ActiveConsole.exe which is service/process for EnterpriseOne in Windows client
Below error message may come in B7
Since Memory Violation is determined by Operating System (Windows) the way it handles memory can be different.
In HTML client, Grid control will be collapsed in getting Memory Violation.
Solution
Possibly you may see below message in small pop-up windows if you run P4314 in Windows client,
Your JD Edwards EnterpriseOne system has experienced a fatal system error and is unstable. Please exit EnterpriseOne
Or,
DLG_MSGB.CPP190 The system may become unstable.Please debug the Application using the Event Rule Debugger.
Or, in jde.log,
library.c647 LIB0000219 - RegOpenKeyEx failed with the Windows error number 5 (Access is denied.)
Or,
gridcols.cpp5023 Sequencing is out of order in tab name (Format1) starting with Alias (JELN) - Sort Sequence: 6
Dlg_msgb.cpp170 An ER line caused a memory violation. ER Debugger will stop at the ER line. Application:P4314 Event :Post Button Clicked
Or, in jdedebug.log
The system may become unstable.Please debug the Application using the Event Rule Debugger. Application:P4314 Event :Button Clicked [T:1004 F:D:\b9\system\jdeuser\jdedlg\DLG_MSGB.CPP Ln:191 Lv:LEVEL1]
Note that Memory Violation in UBE are very much different from Memory Violation in Interactive Application. In UBE memory violation error message will be issued when called BSFN (1st level BSFN) failed to RETURN at the end of routine. So if the error is coming from a certain UBE, capture jdedebug.log which traces BSFN through Call Object Kernel and analyze it
Whereas Memory Violation in Interactive application is related with Data Structure (or Structured Data), which are:
User Override Data Structure
Grid Data Structure (issue may come when a certain application has Grid)
Form Data Structure
Grid Buffer Data Structure
Table Data Structure
Business Function Data Structure
Processing Option Data Structure
Object Dependency
Note:
In general change of data structure is delivered through baseline ESU. So make it sure baseline ESU(s) are in place for the object
Dependency can come between specification (event rule) and BSFN or between two Business Functions
So validate event rule through Form Design Aid which may issue error CER ERROR #3003 : Unable to assign to data structure
Then common way to violate Memory is,
Assign String to Math Numeric Variable/column (Most Common)
Assign bigger size string value to smaller size of memory
Assign wrong data to formatted data (e.g., Date)
Refer NULL memory address
Create corrupted memory
Above violation can come,
In Windows Client, copy data from formatted document (e.g, MS Word, MS Excel) to Grid
Copy more that 2 cells and paste it to grid
A certain grid column is repeat Form Control column which contains special characters
Insert special characters (commonly, Horizontal Tab '\t' or Carriage Return '\r') in a certain string column
Try to edit double byte language characters which are longer than assigned memory
Source data are converted through 3rd party software
Source data are encoded other than Unicode in B9
In inserting/update string value to a certain table 'Null Character' or 'Termination Character' '\0' is not populated correctly
Most of issue are coming from corrupted data of F98950 - User Override file which can be result of Tools Release upgrade or kill application not through EnterpriseOne tool sets. Possible reason for this is that the specification of a certain Grid Column in User Override data can be different from specification of a certain DD. Usually this will cause JDE Grid to assign string to math numeric columns in general.
Example of Memory Error (when 1st column contains Horizontal Tab Special Character),
String
Math Numeric
String
Input Value
Oracle'\t' Corporation
9999.9999
Memory Error
Actual assignment
Oracle
Corporation
99999999
: In assigning 2nd column it will hit Memory Violation as String memory is assigned to Math Numeric memory
Case Study 1:
In case the you are on below tools release (Number appears here is SAR)::
: This issue can come when a certain interactive application has at least 3 different forms and form data structures are not handled properly. Applications, P0411Z1, P03B11 and P4314 may have problem in running applications in Windows Client.
Case Study 2:
In processing Progress Payment you may experience Memory Violation or Collapse of ActiveConsole.exe if you do not have a <Bug 10929228>: SUBCONTRACT DATE CHANGE - SAR: 8137685
Symptom: In performing progress payment if the form W4314A - [Voucher Match] contains any warning, in clicking OK button twice (one for skipping warning and the other for commiting data) ActiveConsole.exe (which is JDEdwards windows service) collapses.
Cause: If you do not have above bug when you reach the event "Post Dialog Is Initialized" it will call system functions as below,
Set Focus on Grid
Insert Grid Buffer Row (to insert buffer row and actual row will be populated in your entering Invoice Number, Invoice Date and so on)
So in clicking OK button twice this dummy row will be inserted twice and since there is already exiting row this will cause memory override
Solution: Apply ESU which contains this bug or disable 'Set Focus on Grid' and 'Insert Grid Buffer Row' because this is handled again