IBM Support

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

Question & Answer


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

[{"Product":{"code":"SS6PEW","label":"Sterling Order Management"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Performance","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.1;9.0","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
16 June 2018

UID

swg21616275