![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
We're running a VB6 component via ASP pages, under IIS 5.0, and this makes heavy use of Analysis Services via ADOMD. Memory usage appears to be growing steadily until performance gets so bad as to be unusable, or something breaks. [PS, we can confirm that we're correctly using the Session context, and that we are successfully utilising multiple threads] By using HeapWalk we found that the leakage is occurring in the main process heap. By adding code to watch when new packets appeared, we found that hundreds of small (e.g. 16 to 64 byte) packets were appearing in the main heap when we used ADOMD, and these were being retained. By dumping the contents of these packets we found the vast majority were plain BSTR string packets, and that these contained symbol names -- almost as though we'd found the entries in a dictionary or symbol table. Some of the names I didn't recognise (e.g. _B_str_LCase), but many were very familiar (e.g. FormatNumber, IsError, MsgBox, Tan, Join). We recently found a reply by Mosha to a very similar post (http://www.sqljunkies.com/Newsgroups....sqlserver.ola p/2003/11/21/ff47b747-ce0b-4256-ad96-29db9902d3d5.aspx). Although we haven't tried the REFRESH CUBE technique described there, we have already tried adding code to periodically close the OLAP connection -- surely that should flush any cache too(?). Could anyone confirm whether what we've observed is normal behaviour, or whether it needs investigating and reporting? Tony Proctor |
#3
| |||
| |||
|
|
It's looking more-and-more like this might be a VB 'Retain In Memory' issue. As well as losing memory due to some symbol table being re-created, we also leaking semaphore handles badly. A related thread is already open in an IIS newsgroup: http://groups.google.ie/groups?as_q=....iis&lr=&hl=en Tony Proctor "Tony Proctor" <tony_proctor (AT) aimtechnology_NOSPAM (DOT) com> wrote in message news:#BAUmYr3DHA.632 (AT) TK2MSFTNGP12 (DOT) phx.gbl... We're running a VB6 component via ASP pages, under IIS 5.0, and this makes heavy use of Analysis Services via ADOMD. Memory usage appears to be growing steadily until performance gets so bad as to be unusable, or something breaks. [PS, we can confirm that we're correctly using the Session context, and that we are successfully utilising multiple threads] By using HeapWalk we found that the leakage is occurring in the main process heap. By adding code to watch when new packets appeared, we found that hundreds of small (e.g. 16 to 64 byte) packets were appearing in the main heap when we used ADOMD, and these were being retained. By dumping the contents of these packets we found the vast majority were plain BSTR string packets, and that these contained symbol names -- almost as though we'd found the entries in a dictionary or symbol table. Some of the names I didn't recognise (e.g. _B_str_LCase), but many were very familiar (e.g. FormatNumber, IsError, MsgBox, Tan, Join). We recently found a reply by Mosha to a very similar post (http://www.sqljunkies.com/Newsgroups....sqlserver.ola p/2003/11/21/ff47b747-ce0b-4256-ad96-29db9902d3d5.aspx). Although we haven't tried the REFRESH CUBE technique described there, we have already tried adding code to periodically close the OLAP connection -- surely that should flush any cache too(?). Could anyone confirm whether what we've observed is normal behaviour, or whether it needs investigating and reporting? Tony Proctor |
![]() |
| Thread Tools | |
| Display Modes | |
| |