Cache Errors

Kevin_Gray

Active Member
Hi List,

We're getting cache errors on sales order entry screens. We have a call opened from JDE but I want to know what "cursors" mean in our jde.log. Here's the error:

225/243 Wed Apr 25 13:57:03 2001 jdecm2338
CAC0000004 - FATAL ERROR: Maximun number of cursors per cache (100) exceeded.

225/243 Wed Apr 25 13:58:38 2001 jdecm2338
CAC0000004 - FATAL ERROR: Maximun number of cursors per cache (100) exceeded.

Does anyone know what the cursors are and how you would change the the maximum value? Are these cursors flushed when a user logs out?

Any insight would be greatly appreciated!

This is for another division that I work with so the system is as follows:
OneWorld B733.1 Sp 11.3, Intel NT SP6a SQL 7.0 Sp1

Thanks,

Kevin

OneWorld Xe
Intel NT, SQL 7.0 SP3
Citrix
 

Larry_Jones

Legendary Poster
Kevin,

Its possible that JDE is using the term "cursor" for something unique to them, but I rather think that it is a database cursor that is being referred to. Here's a definition of that.

A "cursor" is the result set from an SQL query. Programs usually don't operate on all the rows returned from a select statement all at once (unless your result set's max size is determinable and you're using arrays as receivers for your result set and ...). Instead they usually operate on one row at a time. How this is done is as follows:

1. The program DECLAREs the cursor - this defines the SQL that will be executed.
2. The program OPENs the cursor. This actually sends the SQL to the DBMS to be executed.
3. The program then goes into a loop FETCHing one row at a time from the query result set or CURSOR and processes the data.
4. When the end of the result set is reached, the cursor should be CLOSEd. Closing the cursor is important because it allows the DBMS to release a potentially large amount of resources.

Many programs may/will have multiple "cursors" open at the same time. If however the program neglects to close cursors when done with them "bad" things can happen. It sounds like JDE has a hard-coded limit of 100 open cursors per job/process to prevent worse problems occurring with the DBMS (I'd rather have a workstation have problems than the whole DBMS server!).

Its possible that you've hit a JDE bug - or a bug caused by customizations you have made. We've never experienced this problem in SP 11.3 but our Sales order volume is low with the number of SO lines usually under 10 and the highest number of SO lines around 75.

I don't believe you can adjust this number but I may be wrong.
Your DBMS should close open cursors when the connection is terminated.

Net, net though I believe this is a programming bug - unless your DBMS has been configured so minimally as to cause the application to hiccup.

Cheers,

Larry Jones
[email protected]
OneWorld B733.1, SP 11.3
HPUX 11, Oracle SE 8.1.6
SandBox: OneWorld XE SP15
 

Dawn_Detz

Member
I also am having cache errors but in Voucher entry. I have called it into
JDE and this is the ONLY problem so far that I've run into since putting on
the Nov ESU 4605023 3 weeks ago --- I was told to do a number of things:

-Delete all type "HC" user overrides through p98950 on menu GH9011
-If that doesn't work, delete all user overrides for the offending
application
-Lastly go into the B& directory and delete these tables: glbtbl; dddict;
ddtext

I did all these things and it didn't work. BUT may work for you. I am
looking at adding these ESU's next week: JD7599 (for sar 3600491) and JD9546
(for sar 4786813).

I will be closely watching this thread for help w/ mine too....
 

hiroamano

Member
We got the same problem in P0311. Max number of cursor for JDE cache is
fixed to 100. You can not change it. In my case, there was ESU to make the
program close cursor when it's done (program was just keep opening new
cursor until crush). And yes, if a user log off, it clears cache.

hiro
 
Discover how to build no-code data integrations and business process automations.

Larry_Jones

Legendary Poster
Kevin,

scratch earlier reply (although the definition for a DBMS cursor was correct). I just remembered what JDE's "Cache"s are used for. In programs such as Sales Order Entry, Voucher Entry, etc where a document transaction consists of multiple forms and smaller transactions JDE is forced to store data in Memory Structures (cache) rather than disk. The applications perform I-O against these cache areas similar to DBMS I-O - hence the use of the term "cursor".

Now that I've muddied the waters more without providing any concrete help I'll exit, stage left :>}

Larry Jones
[email protected]
OneWorld B733.1, SP 11.3
HPUX 11, Oracle SE 8.1.6
SandBox: OneWorld XE SP15
 

Guest

Guest
Re: RE: Cache Errors

I have same problem in the speed voucher entry. JDE support line told me that they had the fix for purchase order entry but nothing for voucher entry. Please post your results to us.

Thanks

David

Xe SP13, Enterprise server-AS400 V4R4, Deployment Server-NT4.0, JAS server-NT 4.0
 

dhelsley

Well Known Member
Most caches in OneWorld are in memory. You can think of it like a table in memory with rows and indexes. You create a "cache cursor" to update or read this data. It's very much like a database cursor, it selects a group or rows and allows your program to retrieve them one at a time.

The error you are seeing is caused when the application opens caches without closing them. This occurs many places in OneWorld (poor coding techniques?). It may or may not be detrimental to the process. Most of the places I've found it, it does not appear to affect the process because the cursor is used to fetch a single record from the cache by index.

Where I've found this to be a problem the cursor is used to return a series of records and each time the error occurs the content of the cursor is lost.

Since the number of times a cursor is opened is generally a function of the number of records processed you can sometimes run the process on smaller batches to eliminate the error.

Have fun.

David D. Helsley, Inc.
Independent IT Consultant
[email protected]
 

Dawn_Detz

Member
OK... so the esu's that JDE gave me to put on were:

4605023 - nov esu
JD7599 - sar 3600491
JD9546 - sar 4786813

do you have these on your system and STILL having these problems???

OW 7332 sp11.1 NT Oracle 8.1.5
 

JoanneW

Member
We were getting the same cache errors last summer in our modified P4210. I entered SAR 3348299, but it caused other problems so we had to back it off. Finally, JDE sent Rao out and he fixed it with a line of code from SAR 3348299. He changed BSFN B4201550. On page 33 of the SAR, he added the part under Function Clean Up. Don't know if this will help you. Good Luck!

Joanne
OneWorld B733.1 Sp 7.1 (hopefully 14.2 soon)
 
Top