Page 1 of 1

*URGENT* SERVER KICKING OFF MY USER AFTER 45 Sec after Login

Posted: 02 Apr 2007, 10:38
by anandkanatt
Hi Lapo and All,

My file is hosted at http://dream.lakshya.net/citizen.php ...

username : anand
pass: anand

now my problem is that when i login into the app ... after appx 45 seconds my server kicks me out even if there is some activity going on ...
:( Please help me ..... i am going mad with this behavior of SFS on my server ... the strange thing is that i have the same app working fine on my developer machine ...

I tried increasing the idle timeout to 3600000 .... but no use.....

Please Help its *URGENT*

Regards
Anand


UPDATE**

I found this string in my log file which i cant understand

Code: Select all

INFO   | jvm 1    | 2007/04/02 16:58:36 | 16:58:36.328 - [ WARNING ] > Found user queues full: messages were dropped
Is this the reason ?? pls help

UPDATE**

EXAMPLE FILES TOO NOT WORKING

I USE WIN2003 Server
with JRE1.5_11
and MySQl connector 5.05
with MySQlserver 5.0

The server is connecting the user and i can see the updating taking place properly in my server console ... but the user is kicked off from the server without any error. I have no idea why this is happening ... i am sitting with this problem for about 12 hrs.

Please help ...

Posted: 02 Apr 2007, 19:08
by anandkanatt
Hello everyone .....

PLEASE HELP ME .... I AM STUCK WITH THIS PROBLEM .... NO ONE EVEN FACED THIS PROBLEM AS MINE WHILE INSTALLING SFS ON WEB SERVER ?? PLEASE GIVE ME SOME POINTERS ... hey lapo i need your help .... where are u ?? its very URGENT ...


Regards
Anand

Posted: 03 Apr 2007, 02:30
by treylok

Posted: 03 Apr 2007, 05:15
by anandkanatt
treylok wrote:Did u look at this thread?

http://forums.smartfoxserver.com/viewtopic.php?p=4590
Thanks for that response treylok ;

But i have already did a que upgrade to higher values and Jvm heaps have been upgraded and i have set the DB pool to GROW on Exhaust.

Now i don't get the message que exhaust message but kicking off the user is still happening ...

my app uses and interval to pump a set of (3 records appx) to client every 5 Seconds ... and i have set my Idle time out to 1hr ... still the server kicking off my users with the message ... IDLE USER BEING DISCONNECTED, now what does this mean ?? :?

Please Help

Regards
Anand

Posted: 03 Apr 2007, 05:33
by treylok
Are you 100% sure that you are clearing the intervals on the server? Or are you setting intervals more then once, like each time a client connects?

You can test this by calling a trace command every time an interval is called and looking at the logs.

To be safe you should always call clearInterval before using setInterval.

If you reset the server does this happen right away, or only after the server has been running for a while?

Posted: 03 Apr 2007, 07:11
by Lapo
In order to see if it's the server kicking the users (I don't think it is) you should inspect the logs and see if you find messeges like this:

Code: Select all

INFO: Disconneting idle user: {USERNAME}
The server logs (with INFO level) all users that are being kicked because of inactivity

I did 3 tests on your live example:

1st time: I got connected, got the "plot list map" but was disconnected in about 20 seconds
2nd time: I got connected, waited about 50 seconds, no map, kicked
3rd time: same as 2nd

What type of server / hosting are you using? Is it dedicated? How much bandwidth do you use?

Posted: 03 Apr 2007, 09:57
by anandkanatt
Are you 100% sure that you are clearing the intervals on the server? Or are you setting intervals more then once, like each time a client connects?
The interval is set in an zone level extension and cleared on destroy()
You can test this by calling a trace command every time an interval is called and looking at the logs.

Code: Select all

INFO   | jvm 1    | 2007/04/03 15:37:38 | [extUserLogin.as]: >> INTERVAL SET
I traced it as requested and its only invoking once ..
To be safe you should always call clearInterval before using setInterval.
i have set the extention to clear any existing interval before getting the new one. infact there is only one global interval set for the entire app.
If you reset the server does this happen right away, or only after the server has been running for a while?
No this happens right away without any delay ..... even the very next moment the user connects
In order to see if it's the server kicking the users (I don't think it is) you should inspect the logs and see if you find messeges like this:
Code:
INFO: Disconneting idle user: {USERNAME}

The server logs (with INFO level) all users that are being kicked because of inactivity

Code: Select all

INFO   | jvm 1    | 2007/04/03 15:45:27 | 15:45:27.234 - [ WARNING ] > Extension Call has invalid RoomID. User = anand - /59.162.126.220
INFO   | jvm 1    | 2007/04/03 15:45:27 | 15:45:27.359 - [ WARNING ] > Extension Call has invalid RoomID. User = anand - /59.162.126.220
INFO   | jvm 1    | 2007/04/03 15:45:27 | 15:45:27.359 - [ WARNING ] > Extension Call has invalid RoomID. User = anand - /59.162.126.220
INFO   | jvm 1    | 2007/04/03 15:45:39 | 15:45:39.265 - [ INFO ] > Disconneting idle user: anand
These are the lines that was logged which was not an usual behavior.
What type of server / hosting are you using? Is it dedicated? How much bandwidth do you use?

Code: Select all

INFO   | jvm 1    | 2007/04/03 15:37:38 | --- [ System Info ] ------------------------------------------
INFO   | jvm 1    | 2007/04/03 15:37:38 | 
INFO   | jvm 1    | 2007/04/03 15:37:38 | System CPU(s): 2
INFO   | jvm 1    | 2007/04/03 15:37:38 | VM Max memory: 66 MB
INFO   | jvm 1    | 2007/04/03 15:37:38 | 
INFO   | jvm 1    | 2007/04/03 15:37:38 | os.name: Windows 2003
INFO   | jvm 1    | 2007/04/03 15:37:38 | os.arch: x86
INFO   | jvm 1    | 2007/04/03 15:37:38 | os.version: 5.2
INFO   | jvm 1    | 2007/04/03 15:37:38 | java.version: 1.5.0_11
INFO   | jvm 1    | 2007/04/03 15:37:38 | java.vendor: Sun Microsystems Inc.
INFO   | jvm 1    | 2007/04/03 15:37:38 | java.vendor.url: http://java.sun.com/
INFO   | jvm 1    | 2007/04/03 15:37:38 | java.vm.specification.version: 1.0
INFO   | jvm 1    | 2007/04/03 15:37:38 | java.vm.version: 1.5.0_11-b03
INFO   | jvm 1    | 2007/04/03 15:37:38 | java.vm.vendor: Sun Microsystems Inc.
INFO   | jvm 1    | 2007/04/03 15:37:38 | java.vm.name: Java HotSpot(TM) Client VM
INFO   | jvm 1    | 2007/04/03 15:37:38 | 
yes the server is run on an 200KBps Shared Web server.

and can u guess why the strange behavior ?? while lapo tested ?? is it all connected ... i think the plot not loading issue is with the asynchronous nature of AS. is there a workaround ?? and is there a solution to my main problem ?? :?


UPDATE*

Firewall used in our server is visnetic

Posted: 03 Apr 2007, 10:26
by anandkanatt
http://forums.smartfoxserver.com/viewtopic.php?t=984

does this post has got some thing to do with my que problem ?? the post says the server should disconnect the user on the event of message que is full rather than not accepting the next message ... is this the problem in my app ??

Regards
Anand :(

Posted: 04 Apr 2007, 05:29
by Lapo
Nope, the server does not disconnect anybody.

The errors that you reported mean that the extension request where sent without a room ID, so the user was not joined inside a room

200 Kb/s is not very much but of course it should at least handle 20-30 users

Why does it take so long to download the "map" ? is it a large piece of data?

Posted: 04 Apr 2007, 09:07
by anandkanatt
Thanks lapo for that reply ...

The plot map fetches 81 rows and displays it on screen as buttons.

I have no clue about the extension call without a room id maybe the app's asynchronous mode is calling some extension during the login process.

Now i increased the MAX WRITE POOL to 16000, MAX INCOMING POOL 16000
DB POOL is set to to grow and JVM heap memory is set to MIN 66 and MAX 100. as a result the auto disconnect is not happening. so the error should be with the WRITE QUE OR INCOMING POOL right ?? I Used 16000 coz just in case ....... any idea what will be my server's memory utilization at these settings ??

Anyway the things are going smooth as of now ..... lets hope for the best

Regards
Anand :)

Posted: 06 Apr 2007, 08:18
by Lapo
I have no clue about the extension call without a room id maybe the app's asynchronous mode is calling some extension during the login process.
Yep, you should make sure that the extension calls are performed only after you have successfully joined a room.

Posted: 06 Apr 2007, 11:20
by anandkanatt
is there any commonly used technique for this asynchronous model problems ... i heard about time based animations used in games any good references for it ?? and any other techniques commonly used ?? some pointers would be great. :D

Regards
Anand