Strange behaviour on dpGetPeriod()

Discussions about product bugs & problems!
Note: This is no replacement for the Official ETM Support!
Search

Post Reply
3 posts • Page 1 of 1
User avatar
aorange
Posts: 147
Joined: Thu Nov 04, 2010 10:07 am

Strange behaviour on dpGetPeriod()

Post by aorange »

My post number 100 I wonder if I will earn a "Board addict" status :)

I noticed a strange behaviour this week when testing a scrip that performs a number of dpGetPeriod() commands to do some calculations. On certain DPE's the script will stop on the dpGetPeriod() command as if it was waiting for the data to be retrieved from the Oracle database but the problem is that it never moves on.

At first I thought that maybe there is no data for the period in question so I've used a dpGet ":_start..original" command beforehand but it hasn't helped. The strangest thing is that I can see the manager executing the script starting to consume RAM uncontrollably when it does this

Any thoughts before I send this to support? below is a code snippet that kind of explains what I am trying to do... the function works fine for 3800 identical DPE's and will only fail on 1 or 2.

We are using 3.10 SP2

Code: Select all

  int          iRet;
  time         tArchiveStart;
  string       sDp, 
  time         tStartTime, 
  time         tEndTime, 
  dyn_float    dfValues,
  dyn_time     dtTimeStamps
  
  iRet = dpGet(sDp + ":_start.._original", tArchiveStart);
  
  if(tStartTime > tArchiveStart)
  {
    iRet = dpGetPeriod(tStartTime,
                       tEndTime,
                       0,
                       sDp,
                       dfValues,
                       dtTimeStamps);
  }


User avatar
leoknipp
Posts: 2926
Joined: Tue Aug 24, 2010 7:28 pm

Re: Strange behaviour on dpGetPeriod()

Post by leoknipp »

Hello,

reading the attribute _start.._offline will not return a valid result when using RDB. This special functionality is not implemented in the RDB manager.
When reading values from the Oracle-database you have to look if useRDBArchive is used or not. Also you should have a look if errors are reported when reading the values fails.
The memory usage can increase when reading historical values because the messages with the results have to be read and stored in the memory for the CTRL-manager.

Best Regards
Leopold Knipp
Senior Support Specialist

User avatar
aorange
Posts: 147
Joined: Thu Nov 04, 2010 10:07 am

Re: Strange behaviour on dpGetPeriod()

Post by aorange »

Thanks Leopold, whilst looking into this I noticed that :_start.._original wasn't returning anything... but I also discovered that this is not caused by the function trying to retrieve data outside the archiving period.

For example, I carry out 4 dpGetPeriod() calls for each datapoint
[ol][*]Get data for last night[*]
[*]Get data for last night minus 2 weeks[*]
[*]Get data for last night minus 1 week[*]
[*]Get data for yesterday night[*][/ol]

At first I thought that I was asking for data before the start of the archive, but now I have seen the function succeed on the first 3 calls and then fail on the fourth. The memory increase is drastic for only 6 hours worth of data, I have killed the manager when it has reached around 1GB but it doesn't stop there.

I will try to dissect the problem further today to narrow it down a bit and raise a support ticket.

Thanks for the advice

Post Reply
3 posts • Page 1 of 1