_sqlsrv2 memory issues

fdm4.com

New Member
progress version 10.1B
client - Asp.Net using odbc connection.

It doesnt appear that the _sqlsrv2 process is releasing memory. I have been monitoring the memory use and it just keeps climbing until we get this error. The only way to free up the memory is to restart the db...obviously unacceptable.

Error:
ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Insufficient Memory. Memory allocation failed at 186 in /vobs_sql/sql/src/rds/psr_env.cxx. Contact Progress Technical Support

I dont see any way to release this memory. I have checked out PSDN and there isnt much there - other then you cant stop sql processes until 10.1C.

PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
2912542 - A 0:37 3502 128016 134064 32768 5872 11668 0.0 1.0 /usr/d
l

the memory use on the broker seems fine:
PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
1749368 - A 0:44 1 1236 6068 32768 2349 4848 0.0 0.0 /usr/dl

Here are the broker startup params:

-m3
-N TCP
-S <brokername>
-H <hostname>

-Ma 5

-Mpb 4
-tablerangesize 700
-ServerType SQL
-minport 17000
-maxport 20000

Any thoughts?
 

fdm4.com

New Member
Hi,

Yes, it is AIX.

I already saw that article, I'm not sure thats the best idea - increasing the available mem to 512MB (although I am not a Dba).

I am more concerned about the _sqlsrv2 process never releasing any of the memory. Wouldnt it just climb to 512 and then crash again?

The app I am building is not pulling huge amounts of data (under 1000 records). Also, its only in the prototype stage right now - its just me running it. Ultimately, there will be around 25 users accessing the app.

I have reviewed the c# code and I am releasing the resources on that end (ie closing the odbc connections, cleaning up datasets, etc).

What do you think about the _sqlsrv2 process never releasing the memory?

oh - thanks for the quick reply!
 

Casper

ProgressTalk.com Moderator
Staff member
I never had this issue using odbc, but we only use it for reports with Crystal reports or Hyperion. The way you describe it, it seems like you got some memory leak somewhere.
Can you verify that all connection are really gone after you disconnect from the odbc driver.
You can use promon for this R&D option 1 and then 3. If you look up the pid number from the _sqlsrv2 proces you are monitoring then you can see if there are still open connections left.
You can skip the taberangesize in the parameter file btw, this should be defined in the primary broker.
You are sure you dispose the dbcmd and null it. Same for close and null of the OdbcConnection?

Casper.
 
Top