JdeCacheInit API Failed on the Web

KSK

Well Known Member
Hi ,


JdeCacheInit API is working good on Local Web and Getting Failed on the Server ,Captured the below mentioned error message from the server. If anyone faced the similar issue before Pls guide .

JDEDEBUG log Message.

Entering jdeCacheInit - Name:[AdvancedPricingCache]
CAC0001075 - (jdeCacheInit) Invalid cache registry
Entering JDB_GetEnv
Exiting JDB_GetEnv with Success
 

KSK

Well Known Member
Hi All .

I found the Bug , Pls have the root cause of the issue .

We are migrating from XE to E91 . The Business function caches are created based on the Computer id .

GetLocalComputerid and GetAuditInformation business function are used to retrieve the computer id (Server Computer id on WEB). In XE both the business functions are working good (They are running in Windows Platform) and returning the same computer id . In E91 the computer id returned by these business functions are different.
Now the issue is GetLocalComputerid Business functions are used while creating the caches , during the fetch from cache the program is using GetAuditInformation compute. Due to this reason JdeCacheInit is getting failed on the Web.

Also , in Local web both the business function returning the same computer id (Local WorkStation id) .so we are not getting any issue with the cache.

Technical information share by Oracle(GetLocalComputerId (B9800181) and GetAuditInformation(B9800100)).

The BSFN are functioning as they are intended,
The last parameter on the function, they set it to 0 = false, 1 = true which refer to the override. That is how it is coded in the engine.
False look at the INI setting: [CLUSTER] section PrimaryNode
True get the machine name from the system (OS) api
The engine look at that flag and determine where the name of the machine is coming from.

THE BSFN would need to be customized to both either True or get te machine name from the OS API
or False and get the machine name from INI [Cluster] section primaryNode



B9800100.c
============
.
.
{
int i;
int n = MAX_COMPUTERNAME_LENGTH + 1;
JCHAR pComputerName[MAX_COMPUTERNAME_LENGTH + 1] = _J("");

jdeGetHostName((PJSTR)&pComputerName, n, 0);
jdeStrncpy (lpszComputerName, (const JCHAR *)&pComputerName, (int)nSize);

return 1;
}


B9800181.c
============
.
.
if (jdeGetHostName(lpDS->szMachineKey, DIM(lpDS->szMachineKey),1) != TRUE)
{
idReturnCode = ER_SUCCESS;
}

Note: calls for the jdeGetHostName are different. Last params are 0 (false) and 1 (true),
False look at the INI setting: [CLUSTER] section PrimaryNode
True get the machine name from the system (OS) api
 
Top