CDT and memory limitation : error - java.lang.NoSuchMethodException

Technote (FAQ)


Question

What is the CDT and memory limitation? Or the cause for error - java.lang.NoSuchMethodException

Cause

Default Memory parameters.

Answer

CDT defines a maximum memory to operate. Based on the number of records in a table it calculates the approximate memory which will be used for comparison of records. If the memory exceeds the 'maximum memory' then instead of doing the comparisons in-memory, CDT will serialize the records (in small buckets) and then compare them.

For abstract tables, this serialization does not work because we have an impl object which does not have a concrete table, rather the 'tableName' is the abstract table. Due to this, while serializing the impl object, the system gets the table name as 'yfs_pla_zone_set' (abstract) and hence gives error while accessing methods which are not present in the abstract db home.
Based on the memory calculations, it turns out that 10240 is the number of records, when CDT will go for serialization rather than in-memory comparison.

For making it work we will to have to increase the 'maximum memory' value so that instead of serialized comparison, 'in-memory' comparisons are done for this abstract table records. The default value of the below property is (10*1024*1024). We can set it to twice as follows in customer_overrides.properties.
yfs.cdt.bucket.maxBytes=20971520


Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

Sterling Order Management
Performance

Software version:

9.0, 9.1

Operating system(s):

All

Reference #:

1616275

Modified date:

2013-01-07

Translate my page

Machine Translation

Content navigation