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

Reply via email to