Re: Onstat question
Posted in 1997
}>
}>When we use the Onstat -u , sometimes we get this display:
}>
}>onstat -u
}>
}>INFORMIX-OnLine Version 7.12.UC1 -- On-Line -- Up 11 days 20:31:52 --
142096 Kbytes
}>
}>Userthreads
}>address flags sessid user tty wait tout locks nreads
nwrites
}>332c020 ---P--D 0 informix - 0 0 0 2100
1585
}>332c6a8 ---P--F 0 informix - 0 0 0 0
0
}>332cd30 ---P--F 0 informix - 0 0 0 0
0
}>332d3b8 ---P--F 0 informix - 0 0 0 0
0
}>332da40 ---P--F 0 informix - 0 0 0 0
0
}>332e0c8 ---P--B 8 informix - 0 0 0 1868
10682
}>332e750 ---P--D 0 informix - 0 0 0 0
0
}>3330170 Y--P--- 11899 G4SLUS03 - 5fae4e0 0 1 44
109
}>3330e80 Y--P--- 11837 intdba ttyq1 603cef8 0 1 1
0
}>3331b90 Y--P--- 11812 sylvainL ttypc 4437548 0 1 2
0
}>Changing data structure forced command termination.
}>
}>
}>Does anyone know why we are getting the message "Changing data structure
..." ?
}>
}>How can we prevent this from happening ? We found that, by bringing
Online
}>down and then up, it solves this problem. Is there a better alternative
?
}>
}>Thank you
}>
}>Michel
The Changing data structure is encountered because we do not lock shared
memory when an onstat command is run. This is really the output from a
segv that onstat encountered.
Since we only read from shared memory when doing an onstat and are running
outside of the engine, we do not suspend all of the threads in the engine
while the onstat is running as this would hang the engine. This means
that it is possible that some of the data structures that onstat is
reporting on could be changing while the onstat command is running. This
results in the message that you are seeing. It's really nothing to worry
about. It just means that the threads in the engine are doing "their
thing".
Madison Pruet