Many sessions in IDS 7.31 cause problem!!
Posted in 2009
Topics: Server Administration, Versions, Editions & End-of-Life
Dear All...
I've a IDS 7.31.UD8 running in RedHat Linux(uname -a showes 2.6.9-42 kernel),
Every morning AM 8:00, it will be 270 sessions in it , and then at AM 8:30,
there will be 380 sessions connect to IDS almost at the same time ,
and then the engine hang , I've to onmode -ky IDS ...
These 380 sessions are for test only , after job done,they die !!
that will only take for 2 to 3 minutes ,
unfortunately , some of them can not connect IDS because IDS die ,
I've noticed that if I stop running 190 sessions before AM 8:30 ,
I mean , only 80 sessions in IDS and the coming 380 sessions ,
the IDS will be fine ... Those stop running sessions do nothing at all at AM
8:30 , they just connect DB,and sleep , like following :
if(strncmp(basetime_hms,"090100",6) < 0 ){
fprintf(fp,"[warmaker] System Time is ==> [%s]\\
",basetime_hms);
sleep(3);
continue;
}
As you can see , those 190 stop running sessions do nothing at AM 8:30,
just only connect IDS and then sleep until to AM 09:01 ,
stop these 190 sessions will help the test at AM 08:30 goes well ,
if not , the IDS hang ...
NETTYPE ipcshm,1,20,CPU
NETTYPE soctcp,16,50,NET
and cpuvps = 20 , don't know why this happened , in my case ,
onstat -g ses | wc -l , it showes 605 and then I can not connect to IDS
anymore .... no matter ap or dbaccess .....
Any comments , suggestions are welcome !!
Mars
Hi,
with the NETTYPE parameter you can adjust the
number of poll threads in IDS, and with this you
can (indirectly) determine how many concurrent
sessions IDS can take.
But concurrently attempted connects are a different
story, because they need to go through the listener
thread. In your case this seems to be the bottle neck.
You could try to configure several listener threads
listening on different port numbers (DBSERVERALIASES,
sqlhosts, etc.). Though I'm not sure this will really help.
Other than that you can try to make the application
so that not all clients connect at the same time.
Try to spread the time a bit, i.e. have them to
connect over a period of 5 minutes at different time
slots. This surely should help. And if they first sleep
before starting to be active, this should not be too
much of a problem - some will just sleep a bit less. :)
Regards, Martin
--
Martin Fuerderer
IBM Informix Development Munich, Germany
Information Management
IBM Deutschland Research & Development GmbH
Chairman of the Supervisory Board: Martin Jetter
Board of Management: Erich Baier
Corporate Seat: Boeblingen, Germany
Reg.-Gericht: Amtsgericht Stuttgart, HRB 243294
ids-bounces@iiug.org wrote on 10/26/2009 03:39:54 AM:
>
> Dear All...
>
> I've a IDS 7.31.UD8 running in RedHat Linux(uname -a showes 2.6.
> 9-42 kernel),
> Every morning AM 8:00, it will be 270 sessions in it , and then atAM
8:30,
> there will be 380 sessions connect to IDS almost at the same time ,
> and then the engine hang , I've to onmode -ky IDS ...
>
> These 380 sessions are for test only , after job done,they die !!
> that will only take for 2 to 3 minutes ,
> unfortunately , some of them can not connect IDS because IDS die ,
> I've noticed that if I stop running 190 sessions before AM 8:30 ,
> I mean , only 80 sessions in IDS and the coming 380 sessions ,
> the IDS will be fine ... Those stop running sessions do nothing atall at
AM
> 8:30 , they just connect DB,and sleep , like following :
>
> if(strncmp(basetime_hms,"090100",6) < 0 ){
> fprintf(fp,"[warmaker] System Time is ==> [%s]\\
",basetime_hms);
> sleep(3);
> continue;
> }
>
> As you can see , those 190 stop running sessions do nothing at AM 8:30,
> just only connect IDS and then sleep until to AM 09:01 ,
> stop these 190 sessions will help the test at AM 08:30 goes well ,
> if not , the IDS hang ...
>
> NETTYPE ipcshm,1,20,CPU
> NETTYPE soctcp,16,50,NET>
> and cpuvps = 20 , don't know why this happened , in my case ,
> onstat -g ses | wc -l , it showes 605 and then I can not connect to IDS
> anymore .... no matter ap or dbaccess .....>
> Any comments , suggestions are welcome !!
>
> Mars
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
Dear All....
Thanks for all who gave me very helpful information ... After days of test ,
now I can figure out the real reason cause the problem ....
I've a IDS called IF8 , another IDS called if12 ,both IDS are 7.31.UD8
running in RedHat , In my case , I've hundreds of esql/c ap which connect to
IF8 and open cursor like the following in esql/c source :
sprintf(StrSql,"%s%s%s%s%s%s%s%s",
"select id,ptrade,puplim,pdownlim ",
"from sit2@if12:quote ",
"where id in ('",GlbWarid,"','",BasicStkid,"') ",
"order by id ");
EXEC SQL PREPARE pre_quote FROM $StrSql;
EXEC SQL DECLARE cur_quote CURSOR FOR pre_quote;
EXEC SQL OPEN cur_quote;
while(1){
fetch ...fetch ...fetch...
}
EXEC SQL CLOSE cur_quote;
EXEC SQL FREE cur_quote;
EXEC SQL FREE pre_quote ;
I've observed that if I don't execute this sql ,everything is fine ,
If I execute this , in IF8 and if12 , onstat -g opn|wc -l showes
thousands of open cursors all the time , most of them are systables in
both IDS engine , execute hundreds of such esql/c ap would hang the IF8,
if12 keep alive .... if skip this sql , I can run 1000 such esql/c ap
without problems !!
I can use two connections in esql/c ap ,this might solve my problem ,
also I can move sit2:quote from if12 to IF8 , it works ,too .
I wonder why this cause the problem I encountered ?!
Any suggestions are welcome !!~~
Old bug in 7.31xD8 IIRC.
Art
Art S. Kagel
Oninit (www.oninit.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Oninit, the IIUG, nor any other organization
with which I am associated either explicitly or implicitly. Neither do
those opinions reflect those of other individuals affiliated with any entity
with which I am affiliated nor those of the entities themselves.
On Mon, Oct 26, 2009 at 8:17 PM, MARS CHEN <mars@jsun.com> wrote:
> Dear All....
>
> Thanks for all who gave me very helpful information ... After days of test
> ,
> now I can figure out the real reason cause the problem ....
>
> I've a IDS called IF8 , another IDS called if12 ,both IDS are 7.31.UD8
> running in RedHat , In my case , I've hundreds of esql/c ap which connect
> to
> IF8 and open cursor like the following in esql/c source :
>
> sprintf(StrSql,"%s%s%s%s%s%s%s%s",
>
> "select id,ptrade,puplim,pdownlim ",
>
> "from sit2@if12:quote ",
>
> "where id in ('",GlbWarid,"','",BasicStkid,"') ",
>
> "order by id ");
>
> EXEC SQL PREPARE pre_quote FROM $StrSql;
>
> EXEC SQL DECLARE cur_quote CURSOR FOR pre_quote;
>
> EXEC SQL OPEN cur_quote;
>
> while(1){
>
> fetch ...fetch ...fetch...
>
> }
>
> EXEC SQL CLOSE cur_quote;
>
> EXEC SQL FREE cur_quote;
>
> EXEC SQL FREE pre_quote ;
>
> I've observed that if I don't execute this sql ,everything is fine ,
> If I execute this , in IF8 and if12 , onstat -g opn|wc -l showes
> thousands of open cursors all the time , most of them are systables in
> both IDS engine , execute hundreds of such esql/c ap would hang the IF8,
> if12 keep alive .... if skip this sql , I can run 1000 such esql/c ap
> without problems !!
>
> I can use two connections in esql/c ap ,this might solve my problem ,
> also I can move sit2:quote from if12 to IF8 , it works ,too .
> I wonder why this cause the problem I encountered ?!
>
> Any suggestions are welcome !!~~
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--001517473434ecc4b70476e19430
Thanks to Art .... I just reinstatement from 7.3 to 11.5 and purchase new IDS 11.5 recently , although I know IDS 7.X is out of support , but I need time to test the system and then upgrade IDS to 11.5 , I called vendor if I can still get the IDS 7.X version which fixed this bug , he said can not found a fixed 7.X version for this bug ... So I should consider IDS 11.5 seriously now ~~
Related threads
- Posting from the Informix-list
- Migrating from IDS 9.40.UC6 to 11.50.UC3
- Ip for a network session
- questions onstat -g