Multiple call object kernels fall into zombie with the following errors seen in the logs:
32656/-577766592WRK:USERID_E05F8E58_P3111 Fri Sep 29 08:42:42.741352jdb_utl1.c2644
JDB9900600 - Failed to store value, maximum exceeded. Probable cause is forgetting to call jdeRemoveDataPtr()
Or,
32656/-577766592WRK:USERID_E05F8E58_ Fri Sep 29 08:42:42.741352jdb_utl1.c2644
JDB9900600 - Failed to store value, maximum exceeded. Probable cause is forgetting to call jdeRemoveDataPtr()
Note:
To debug this type of issue,
1. Gather JDE.logs which fall into Zombie or all JDE.log on the logic server.
2. Identify the offending application.
3. Modify JDE.INI (If possible, test this issue on a Web Development Client. You should also be able to replicate this issue on a Web Development Client).
[DEBUG]
Output=FILE
DataPointerTracing=1
Note: This setting enables you to trace each data pointer used in the routine.
4. Gather callstack using Performance Workbench with keywords ('DP - ', 'DataPointer', and so on). Refer to Document 747328.1 - EnterpriseOne Performance Workbench.
5. Analyze the callstack generated,
Example of CallStack:
For this example, 10 data pointer are retrieved then only a half (5) of them are removed.
*** Review specific routine ***
4. ENTER: F3112WorkOrderRoutingsEditDoc
5. ENTER: GetMfgConstantsData
5. EXIT: for GetMfgConstantsData=0
5. ENTER: GetItemMasterDescUOM
6. ENTER: VerifyAndGetBranchPlantConstants *** this function stores data pointer ***
Oct 2 12:39:45.540330 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 628
6. EXIT: for VerifyAndGetBranchPlantConstants=0
Oct 2 12:39:45.541934 jdb_utl1.c13018 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Decremented DataPointer count to 627
5. EXIT: for GetItemMasterDescUOM=0 *** the data pointer created by VerifyAndGetBranchPlantConstants gets deleted using GetItemMasterDescUOM ***
*** skip the routine without datapointer usage ***
5. ENTER: VerifyAndGetWorkOrderMaster
Oct 2 12:39:45.552926 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 628 *** VerifyAndGetWorkOrderMaster stores two data pointers ***
Oct 2 12:39:45.553601 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 629
5. EXIT: for VerifyAndGetWorkOrderMaster=0
Oct 2 12:39:45.554163 jdb_utl1.c13018 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Decremented DataPointer count to 628 *** where F3112WorkOrderRoutingsEditDoc deletes only one out of 2 ***
5. ENTER: VerifyAndGetWorkOrderMaster
Oct 2 12:39:45.555376 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 629
Oct 2 12:39:45.556017 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 630
5. EXIT: for VerifyAndGetWorkOrderMaster=0
Oct 2 12:39:45.556546 jdb_utl1.c13018 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Decremented DataPointer count to 629
5. ENTER: VerifyAndGetWorkOrderMaster
Oct 2 12:39:45.557860 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 630
Oct 2 12:39:45.558524 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 631
5. EXIT: for VerifyAndGetWorkOrderMaster=0
Oct 2 12:39:45.559064 jdb_utl1.c13018 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Decremented DataPointer count to 630
5. ENTER: VerifyAndGetWorkOrderMaster
Oct 2 12:39:45.560295 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 631
Oct 2 12:39:45.560918 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 632
5. EXIT: for VerifyAndGetWorkOrderMaster=0
Oct 2 12:39:45.561476 jdb_utl1.c13018 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Decremented DataPointer count to 631
5. ENTER: VerifyAndGetWorkOrderMaster
Oct 2 12:39:45.562767 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 632
Oct 2 12:39:45.563389 jdb_utl1.c13013 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Incremented DataPointer count to 633
5. EXIT: for VerifyAndGetWorkOrderMaster=0
Oct 2 12:39:45.563944 jdb_utl1.c13018 - 8498/-323310784 WRK:USERID_E7974B88_P3411 Decremented DataPointer count to 632
*** End of CallStack ***
6. Review the offending function which you have determined in step 5.
Example of Code:
JDEBFRTN(ID) JDEBFWINAPI VerifyAndGetWorkOrderMaster ()
{
*** Break In Code ***
if((lpDS->cCallType != _J('2')) && (lpDS->cReturnPointer == _J('1')))
{
lpdsF4801 = (LPF4801)jdeAlloc(COMMON_POOL, (unsigned long)(sizeof(F4801)), MEM_ZEROINIT);
if (lpdsF4801 != (LPF4801)NULL)
{
memcpy((void *)(lpdsF4801), (const void *)(&dsF4801), sizeof(F4801));
lpDS->idF4801Pointer = (ID)jdeStoreDataPtr(hUser, (void*)lpdsF4801);
}
}
*** Break In Code ***
if (lpDS->cReturnPointerForTag == _J('1'))
{
*** JDB_OpenTable(), JDB_FetchKeyed() ***
{
lpdsF4801Tag = (LPF4801T)jdeAlloc(COMMON_POOL, (unsigned long)(sizeof(F4801T)), MEM_ZEROINIT);
if (lpdsF4801Tag != (LPF4801T)NULL)
{
memcpy((void *)(lpdsF4801Tag), (const void *)(&dsF4801Tag), sizeof(F4801T));
lpDS->idF4801TagPointer = (ID)jdeStoreDataPtr(hUser, (void*)lpdsF4801Tag);
}
}
}
}
*** Break In Code ***
Example of Code:
*** Break In Code ***
idReturnCode = jdeCallObject (_J("VerifyAndGetWorkOrderMaster"),
NULL,
lpdsInternal->lpBhvrCom,
lpdsInternal->lpVoid,
(LPVOID) &dsB3100330,
(CALLMAP *) NULL,
(int) 0, (JCHAR *) NULL,
(JCHAR *) NULL, (int) 0);
{
*** Break In Code ***
if (dsB3100330.idF4801Pointer > (ID)0)
{
lpdsCache->lpF4801Pointer =
(LPF4801)jdeRemoveDataPtr(lpdsInternal->hUser,
(unsigned long)dsB3100330.idF4801Pointer);
}
/* BUG 19648836 */
if (dsB3100330.idF4801TagPointer > (ID)0)
{
jdeRemoveDataPtr(lpdsInternal->hUser,
(unsigned long)dsB3100330.idF4801TagPointer);
}
}
*** Break In Code ***
For this example, the function VerifyAndGetWorkOrderMaster creates two data pointers one for F4801 and the other for F4801T (Tag File) but F3112WorkOrderRoutingsEditDoc deletes data pointer. The fix for Bug 19648836 - P48013 WO HEADER ERROR is missing in the code.
1. Go to Update Center.
2. Look for the ESU based on Bug 19648836 - P48013 WO HEADER ERROR.
3. Download/Install ESU.
4. Build and deploy package for the ESU objects.