hi Arno
I am running ICS in a nt service and i am using multi threading but the
socketservers is in the main thread. The threads only do some work with a
database and validation of the information received from the machines and in
the end the threads make a send call.
Miguel Angel Cañas C.
From: "Arno Garrels" <[EMAIL PROTECTED]>
Reply-To: ICS support mailing <twsocket@elists.org>
To: "ICS support mailing" <twsocket@elists.org>
Subject: Re: [twsocket] TWsocket server client list Error
Date: Thu, 12 Oct 2006 19:03:52 +0200
Miguel, are you running ICS in a multi-threaded application
or in a NT-Service?
---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
Wilfried Mestdagh wrote:
> Hello Miguel,
>
> No not configuration. the socket handle is probably somewhere
> overwritten. Please check carefull all variable usage, and specially
> arrays that may got overrun.
>
>> My TWsocketServer object :
>
>> LocalAddr = '0.0.0.0'//set in runtime
>> LocalPort = '0' //set in runtime
>
> Try to not set it, you never know. However I dont think it can cause
> the
> behavour you have.
>
>> OnDataSent = WSocketServerExDataSent
>> OnSessionClosed = WSocketServerExSessionClosed
>
> Set this in comment as it will never fire on server socket.
>
> ---
> Rgds, Wilfried [TeamICS]
> http://www.overbyte.be/eng/overbyte/teamics.html
> http://www.mestdagh.biz
>
> Thursday, October 12, 2006, 06:58, Miguel Cañas wrote:
>
>> Hi Wilfried
>
>> Sorry but I didn-t have time to do a test program, I am in a dead
>> line and I have another errors to fix too but this one is critical
>> to me because the service is starting to loose connections.
>
>> Let me explain better:
>
>> 1. The connections Startt to grow because of the processing time, the
>> service is processing as fast as possible.
>> 2. I have like 50 to 60 connections in the client list
>> (Wsocketserver.clientcount)
>> 3. I have the first Error 10038 in function Disconnect (closesocket)
>> Socket operation on non-socket
>> 4. I?m using TcpView
>> (http://www.sysinternals.com/Utilities/TcpView.html)
>> and I saw that the new connection got into the list of the program
>> but next disappeared and my program didn?t run the onConnect event,
>> at least no t the part that is into my program.
>> 5. After that I saw the connection with no IP no port info and the
>> Hsokcet value = -1.
>
>> Could it be a configuration problem ? in the TWsocket server ? or
>> in the server PC?
>
>> My TWsocketServer object :
>
>> LineMode = False
>> LineLimit = 65536
>> LineEnd = #13#10
>> LineEcho = False
>> LineEdit = False
>> Proto = 'tcp'
>> LocalAddr = '0.0.0.0'//set in runtime
>> LocalPort = '0' //set in runtime
>> LastError = 0
>> MultiThreaded = False
>> MultiCast = False
>> MultiCastIpTTL = 1
>> ReuseAddr = False
>> ComponentOptions = []
>> ListenBacklog = 1000 //s
>> ReqVerLow = 1
>> ReqVerHigh = 1
>> OnDataSent = WSocketServerExDataSent
>> OnSessionClosed = WSocketServerExSessionClosed
>> OnBgException = WSocketServerExBgException
>> FlushTimeout = 60
>> SendFlags = wsSendNormal
>> LingerOnOff = wsLingerOn
>> LingerTimeout = 0
>> KeepAliveOnOff = wsKeepAliveOnSystem
>> KeepAliveTime = 30000
>> KeepAliveInterval = 1000
>> SocksLevel = '5'
>> SocksAuthentication = socksNoAuthentication
>> BannerTooBusy = 'Sorry, too many clients'
>> MaxClients = 300
>> OnClientDisconnect = WSocketServerExClientDisconnect
>> OnClientConnect = WSocketServerExClientConnect
>
>
>> Miguel Angel Cañas C.
>
>
>
>
>>> From: Wilfried Mestdagh <[EMAIL PROTECTED]>
>>> Reply-To: ICS support mailing <twsocket@elists.org>
>>> To: ICS support mailing <twsocket@elists.org>
>>> Subject: Re: [twsocket] TWsocket server client list Error
>>> Date: Fri, 6 Oct 2006 12:35:51 +0200
>>>
>>> Hello Miguel,
>>>
>>> Your code looks OK. Very strange this behavour. Can you make a
>>> simple demo (GUI) project to demonstrate the behavour ? Possible I
>>> have time this weekend to investigate it.
>>>
>>> ---
>>> Rgds, Wilfried [TeamICS]
>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>> http://www.mestdagh.biz
>>>
>>> Friday, October 6, 2006, 03:25, Miguel Cañas wrote:
>>>
>>>> Hello Wilfried
>>>
>>>> Today i made some test and the results are not good for me. I
>>>> colud no t find the error that triggger the exceptior but i find
>>>> that for each exception i have an 'empty' connection (no ip no
>>>> port).
>>>
>>>> I will make a little explanacion of my code. My service is a tcp
>>>> server very similar to the example that comes with ICS componets.
>>>
>>>> My code look like this
>>>
>>>> WSocketServerExClientConnect()
>>>> ....
>>>> OnDataAvailable := ClientDataAvailable;
>>>> OnBgException := ClientBgException;
>>>> ConnectTime := Time
>>>> ....
>>>
>>>> writeinTxtFile( '--Conexiones Activas : ' + IntToStr(
>>>> WSocketServerEx.ClientCount ), true );
>>>> for i := 0 to WSocketServerEx.ClientCount - 1 do
>>>> begin
>>>> writeinTxtFile( Format( '--Activa[%d] IP [%s] PORT [%s]',
>>>> [ i, WSocketServerEx.client[ i ].getPeerAddr,
>>>> WSocketServerEx.client[ i ].getPeerport ]
>>>> ) );
>>>> end;
>>>> ...
>>>> end
>>>
>>>> WSocketServerExClientDisconnect( )
>>>> ...
>>>> for i := 0 to WSocketServerEx.ClientCount - 1 do
>>>> begin
>>>> WriteTxtFile( Format( '--D Activa[%d] IP [%s] PORT [%s]',
>>>> [ i, WSocketServerEx.client[ i ].getPeerAddr,
>>>> WSocketServerEx.client[ i ].getPeerport ]
>>>> ) );
>>>> end;
>>>> ..
>>>> end;
>>>
>>>
>>>> When i have like 150 or 200 connections in the list i have
>>>> something like this in my txt file
>>>
>>>> [05/10/2006 11:21:15:845] --D Activa[165] IP [] PORT []
>>>
>>>> and if i try to do .close call this call works but nothing happen,
>>>> not to the list no exception, no disconnect event nothing.
>>>
>>>> This behavior repeats only with heavy traffic.
>>>
>>>> If i start a new valid connection after i while this connection is
>>>> added to the end and works fine if no heavy traffic start again
>>>> but i can free the used positions with empty connections (no ip no
>>>> port).
>>>
>>>> Thank you
>>>
>>>> Miguel Angel Cañas C.
>>>
>>>
>>>>> From: Wilfried Mestdagh <[EMAIL PROTECTED]>
>>>>> Reply-To: ICS support mailing <twsocket@elists.org>
>>>>> To: twsocket@elists.org
>>>>> Subject: Re: [twsocket] TWsocket server client list Error
>>>>> Date: Thu, 5 Oct 2006 15:59:48 +0200
>>>>>
>>>>> Hello Miguel,
>>>>>
>>>>>> However I want to ask something to, Is there a theory for the
>>>>>> connections without IP and PORT that shows the
>>>>>> TWsocketServer.client[i]?
>>>>>
>>>>> No I have no theory at the momen. With empty IP and Port, which
>>>>> properties do you exacly mean ?
>>>>>
>>>>>> in case that some timeotu expired, the code looks like this:
>>>>>
>>>>> Code looks OK to me.
>>>>>
>>>>> ---
>>>>> Rgds, Wilfried [TeamICS]
>>>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>>>> http://www.mestdagh.biz
>>>>>
>>>>> Thursday, October 5, 2006, 15:37, Miguel Cañas wrote:
>>>>>
>>>>>> Thank you for the answer Wilfried
>>>>>
>>>>>> Im following your suggestios and I will test the Wsockets events
>>>>>> today with
>>>>> with
>>>>>> try .. except blocks to try to find the error.
>>>>>
>>>>>> However I want to ask something to, Is there a theory for the
>>>>>> connections without IP and PORT that shows the
>>>>>> TWsocketServer.client[i]?
>>>>>
>>>>>> [04/10/2006 17:24:09:296] --D Activa[1] IP [] PORT []
>>>>>
>>>>>> because I have a procedure that check for connections to make a
>>>>>> close socket in case that some timeotu expired, the code looks
>>>>>> like this:
>>>>>
>>>>>> //check for a valid client
>>>>>> if WSocketServerEx.IsClient( WSocketServerEx.Client[
>>>>>> i ] ) then
>>>>> then
>>>>>> begin
>>>>>> //Close socket. Nothing send.
>>>>>> TTcpSrvClient( WSocketServerEx.Client[ i ] ).Close;
>>>>>> end;
>>>>>> I can see thar in the case of the no IP no port connections i
>>>>>> can do a .Close call
>>>>>
>>>>>> Thank you
>>>>>
>>>>>> Miguel Angel Cañas C.
>>>>>
>>>>>
>>>>>>> From: Wilfried Mestdagh <[EMAIL PROTECTED]>
>>>>>>> Reply-To: ICS support mailing <twsocket@elists.org>
>>>>>>> To: ICS support mailing <twsocket@elists.org>
>>>>>>> Subject: Re: [twsocket] TWsocket server client list Error
>>>>>>> Date: Thu, 5 Oct 2006 12:42:03 +0200
>>>>>>>
>>>>>>> Hello Miguel,
>>>>>>>
>>>>>>> BGException is background exception. It comes from the message
>>>>>>> pump. This means it can come also from your code in one of the
>>>>>>> TWSocket events. To test put them all in a exception block
>>>>>>> until you found the error (if it is over there of course).
>>>>>>>
>>>>>>> Socket operation on a non socket means that somewhere some
>>>>>>> handle is overwritten. Mostly this comes because you have
>>>>>>> somewhere written outside a variable (so written [partly] to
>>>>>>> another).
>>>>>>>
>>>>>>> This is not nececary the same moment but has happend a little
>>>>>>> while before it.
>>>>>>>
>>>>>>> Also possible is that you have a pointer to a datasocket that
>>>>>>> is not exestant anymore. If you have an array of sockets or so,
>>>>>>> be sure to update it on OnClientConnect / OnClientDisconnect.
>>>>>>> Remember also that in OnClientDisconnect the datasocket in
>>>>>>> question is still there, it is called before it is destroyed
>>>>>>> (also the count argument).
>>>>>>>
>>>>>>> ---
>>>>>>> Rgds, Wilfried [TeamICS]
>>>>>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>>>>>> http://www.mestdagh.biz
>>>>>>>
>>>>>>> Thursday, October 5, 2006, 09:06, Miguel Cañas wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>
>>>>>>>> I am using TwSocketServer in a service application that
>>>>>>>> receives information from a POS Machine (using TCP) and I am
>>>>>>>> having problems with the number of
>>>>>>> of
>>>>>>>> clients that shows WSocketServerEx.ClientCount. In some cases
>>>>>>>> clientcount return more connections than the number of
>>>>>>>> machines that I have connected to the service. I am saving
>>>>>>>> the client list in txt file and it shows this;
>>>>>>>
>>>>>>>> [04/10/2006 17:24:09:296] --D Activa[0] IP [] PORT []
>>>>>>>> [04/10/2006 17:24:09:296] --D Activa[1] IP [] PORT []
>>>>>>>> [04/10/2006 17:24:09:296] --D Activa[2] IP [] PORT []
>>>>>>>> [04/10/2006 17:24:09:296] --D Activa[3] IP [10.10.10.237] PORT
>>>>>>>> [2379]
>>>>>>>
>>>>>>>> What happen with the positions 0,1 and 2 that shows no port or
>>>>>>>> ip??
>>>>>>>
>>>>>>>> I have found this exception 2 segs before the addition of a
>>>>>>>> new 'empty´(no ip or port) connection and was capture in
>>>>>>>> WSocketServerExBgException.
>>>>>>>
>>>>>>>> [04/10/2006 17:24:07:453] [ESocketException] Msg[Error 10038
>>>>>>>> in function Disconnect (closesocket)
>>>>>>>> Socket operation on non-socket]
>>>>>>>
>>>>>>>> Is there a relationship between this exception and the
>>>>>>>> addition of the new
>>>>>>> new
>>>>>>>> empty connection? or I have to look for the error in another
>>>>>>>> place. Any help would be appreciated.
>>>>>>>
>>>>>>>> Thank you
>>>>>>>
>>>>>>>> Miguel Angel Cañas C.
>>>>>>>
>>>>>>>>
_________________________________________________________________
>>>>>>>> Express yourself instantly with MSN Messenger! Download today
>>>>>>>> it's FREE!
>>>>>>>>
>>> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> To unsubscribe or change your settings for TWSocket mailing list
>>>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>>>>>> Visit our website at http://www.overbyte.be
>>>>>
>>>>>> _________________________________________________________________
>>>>>> Express yourself instantly with MSN Messenger! Download today
>>>>>> it's FREE! http://messenger.msn.click-
>>>>>> url.com/go/onm00200471ave/direct/01/
>>>>>
>>>>>
>>>>> --
>>>>> To unsubscribe or change your settings for TWSocket mailing list
>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>>>> Visit our website at http://www.overbyte.be
>>>
>>>> _________________________________________________________________
>>>> Express yourself instantly with MSN Messenger! Download today it's
>>>> FREE! http://messenger.msn.click-
>>>> url.com/go/onm00200471ave/direct/01/
>>>
>>>
>>> --
>>> To unsubscribe or change your settings for TWSocket mailing list
>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>> Visit our website at http://www.overbyte.be
>
>> _________________________________________________________________
>> Express yourself instantly with MSN Messenger! Download today it's
>> FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be