Quickdex on SYSLOGINS? (OpenInsight 32-Bit)
At 17 JUN 2009 05:06:36PM Matthew Crozier wrote:
We have a TIMER event on a window that updates a list of users logged in. It uses a SELECT BY statement and loops on a select cursor to get the list of users (in OI 7.2.1). For one of our customers, this can occasionally break in RTP11 (Readnext) with a 'SYS1001: Null loading error' (from RTP27).
Not sure what's going on there, but it seems to me that we could avoid the whole repetitive Select/Readnext thing by putting a Quickdex on SYSLOGINS. The TIMER would just have to xlate %RECORDS%, and this would be faster too.
Does anyone see any problems with putting a Quickdex on SYSLOGINS? Presumably it should be placed between SYSLOGINS_MFS and RTP57 in the FS chain. Would the quickdex be maintained properly in all scenarios?, and would %RECORDS% still be transparent?
Cheers, M@
[img]http://www.vernonsystems.com/images/logo_main_ani.gif[/img]
At 18 JUN 2009 07:52AM John Bouley wrote:
M@,
I had a similar problem with a job processor that I built. It would continually cycle looking for work and then go to sleep for a few seconds. After running for sometimes days the program would crash with an unable to load a rti program. After upgrading to 8.07 the problem went away. My suspicion is there is a memory leak somwhere in that version of OI.
HTH,
John
At 18 JUN 2009 10:16AM Bob Carten wrote:
Matt,
SYSLOGING is controlled by SYSLOGINS.MFS which relies on the SELECT operation to clean up dead sessions. It is sort of like solipsism. The table is not correct until you look at it. The quickdex will not perform a select, so will not update util someone else selects the table.
On a different note, I have often use the windoss scheduler to launch periodic one-shot oengine tasks. That avoids cumulative memory leaks. or job processors I have the scheuled task use shellexectue to lauch single-purpose oinsights for each job. This approach ensures thtt one long running task does not hold up other jobs. In 9,1 we have added OERUN.EXE that you an call from a command line or the windows scheduler. OERUN.exe uses the oengineserver to actually run the task, so you can actually pass tasks to different machines as long as they are running a socketserver on an open port.
- Bob
At 18 JUN 2009 06:57PM Matthew Crozier wrote:
Thanks Bob, I'm glad I asked! OERUN.EXE seems a good way to go - once we get to OI 9.
Cheers, M@
[img]http://www.vernonsystems.com/images/logo_main_ani.gif[/img]
At 18 JUN 2009 06:59PM Matthew Crozier wrote:
Thanks John. We're soon to release our app upgrade to OI 8.0.8, so hopefully it will go away then. I might look into the scheduled task idea.
Cheers, M@
[img]http://www.vernonsystems.com/images/logo_main_ani.gif[/img]