VMware Cloud Community
FTVDaniel
Contributor
Contributor

max number of items in an array attribute

hello I am using this code to read all the lines of a postgresSQL table (100 000 lines )

var columns = {

};

var result  = vmsTable.readRecords(columns, false);

this works and in 5 seconds my result variable is filled with the 100 000 lines

but if the result variable is replaced by an array attribute of type any the script gives me the error

[2018-03-14 12:37:21.219] [E] Workflow execution stack:

***

', state: 'failed', business state: 'null', exception: 'null'

*** End of execution stack.

and if I reduce the number of lines to about 3000 it works but the workflow is very long (for exemple to log each value )

is there a maximum number of lines to use in array attributes to avoid performance issues?

Reply
0 Kudos
2 Replies
iiliev
VMware Employee
VMware Employee

Hi,

I don't think that there is hard-coded upper limit for array attributes. Most likely you are hitting some size limitation in the array serializer when the attribute value is processed internally.

Just to clarify, you are testing with code which looks like

myatrribute = vmsTable.readRecords(columns, false);

where myattribute is the attribute of type Array/Any, right?

A couple more questions:

- which vRO version is this?

- do you have some rough estimate for what is the total size of all records accumulated into the array attribute (or how big is the PostgreSQL table you read the records from)?

Reply
0 Kudos
FTVDaniel
Contributor
Contributor

Hi Ilian

the code is right,

the version of vro is 7.3

my postgresSQL database had 100 000 lines of vm informations with 10 columns

when the columns object is like

var columns = {

};

I have the error cause all the 100000 lines are found

when the columns object has has a filter

var columns = {

date:2018-02-01

};

only 3000 lines are found and in this case whith myattribute of type array/any the wf works but long

if myattribute is replaced by a variable

var myvariable = vmsTable.readRecords(columns, false);

the wf works even if the filter gives 100000 lines

Reply
0 Kudos