cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

Newbie

Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

Intuitively, if you set maxItems to 10, then you only expect up to 10 rows back from the service.  In my experience, the number of rows returned is about four times whatever I set maxItems to.  In a simple empirical test, I tried a variety of values of maxItems for the same timeframe, and here's what I got back:

                                                                                                                                                                               

maxItemsRows returned
14
28
312
416
519
622
725

Furthermore, I would expect as I increase maxItems, I would simply get additional rows with a later time; this too is not what happens.  I always get new rows with each increase of maxItems, but they aren't all later in time!  I've summarised this below:

timestampFirst value of maxItems where timestamp is seen
2016-11-23 01:00:00.2241
2016-11-23 01:00:00.2261
2016-11-23 01:00:00.2311
2016-11-23 01:01:00.1802
2016-11-23 01:01:00.1822
2016-11-23 01:01:00.1841
2016-11-23 01:01:00.1862
2016-11-23 01:02:00.2243
2016-11-23 01:02:00.2273
2016-11-23 01:02:00.2303
2016-11-23 01:03:00.1614
2016-11-23 01:03:00.1644
2016-11-23 01:03:00.1684
2016-11-23 01:04:00.1735
2016-11-23 01:04:00.1755
2016-11-23 01:04:00.1795
2016-11-23 01:05:00.1326
2016-11-23 01:05:00.1356
2016-11-23 01:05:00.1386
2016-11-23 01:06:00.1307
2016-11-23 01:06:00.1327
2016-11-23 01:06:00.1357
2016-11-23 01:09:00.1362
2016-11-23 01:16:00.2203
2016-11-23 01:24:00.1574

Unless I'm missing something fundamental, maxItems really doesn't work properly!

PS - I've seen a post by Pat Nash related to this, but it doesn't address exactly what's going on with maxItems!

Tags (1)
15 REPLIES 15

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

What version of ThingWorx are you in?

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

I'm using ThingWorx 7.0.4-b44.

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

I just tested this in 7.2.4, and there were no issues with either streams or value streams. Perhaps if this was a bug, it is already fixed in newer versions.

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

I just tested this in 7.2.5 and the problem persists.  I clicked the "Test" button for QueryPropertyHistory on one of my Things, set maxItems to 10 and clicked "Execute Service".  I got back new fewer than 50 items!  I tried again, setting maxItems to 1 and still got back 5 items.  maxItems=2 => 10 items.

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

Can you tell me specifically what type of stream you are using? Where is the data coming from? Are you in Neo or Postgres?

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

It's a Value Stream attached to a Thing that has a number of logged properties (the one I just checked has 28).  I don't know whether it's significant, but in the case of the one I just checked, the Value Stream is attached to the Thing Template.  There's nothing special about the Value Stream as far as I can tell: it has minimal settings and uses the ThingworxPersistenceProvider.  I'm using Postgres.

By the way, I've upgraded to ThingWorx 7.3 and this issue is still evident.  When I tried QueryPropertyHistory just now (via the "Test" button) I requested a maximum of 5 items and got back 58!

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

Hello Richard Wiseman,

Just tested on Thingworx 7.2.1-b71 with H2. Logged a lot of Number properties to Value Stream.

QueryPropertyHistory is working fine, returning [maxItems] rows. If I need to get oldest data first, this boolean param is also working.

Could you provide a more detailed info regarding your environment, as Tori Tielebein asked.

What version of Thingworx and persistence provider do you use? What type of property do you log? From the service you use I can guess that you log to the Value Stream. Do you invoke QueryPropertyHistory on the Thing, not on the Stream?

Regards,

Jakub.

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

My previous comment is now online; does it tell you what you need to know?

Re: Why doesn't maxItems (the parameter of QueryPropertyHistory) work properly?

Hello Richard,

Now I'm not able to test and replicate it on Postgre-backed Thingworx, I'll be able to do it later, so after that I'll come back to you with the results.