Fastream Technologies wrote: > Arno, > > There is a TWndControl in the worker thread context which is created > before clients are threadattach'ed to the thread (in a custom message > handler).
I still recommend to find the sender of that anonymous message as well as find a reliable range of message numbers that can be used by ICS V6 exclusively. Who knows whether there is still a strange third party message being processed that you do not note because it simply doesn't raise the test exception but triggers a ICS event? In other words I always would try to find the root of the problem. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html > > Regards, > > SZ > > ----- Original Message ----- > From: "Arno Garrels" <[EMAIL PROTECTED]> > To: "ICS support mailing" <twsocket@elists.org> > Sent: Monday, February 05, 2007 5:57 PM > Subject: Re: [twsocket] Possible bug and solution in TWndControl > > >> Fastream Technologies wrote: >>> Yoiu also missed that this is a service application thread with no >>> other component than ICS! Even no GUI. I am unable to find the bug-- >>> there is one I know but it happens under heavy load and does not >>> show its ugly head under Debug compilation. >>> >>> It is just a simple constant, why shouldn't it be 800 instead of >>> 100?? >> >> You can, but I fear it doesn't _solve the problem finally. >> >> If you set property MsgLow like: >> >> WSocket1 := TWSocket.Create(something); >> WSocket1.MsgLow := WM_APP + 100; >> >> strange things will happen, including AVs in >> TIcsWndHandler.UnregisterMessage. Because some message numbers >> are already assigned with default numbers (base WM_USER) before the >> new value of property MsgLow will be set. >> >> Instead initialize global variable GWndHandlerMsgLow in an >> Initialization section in project unit. >> >> initialization >> GWndHandlerMsgLow := WM_APP + 100; >> >> I hope this helps. >> >> --- >> Arno Garrels [TeamICS] >> http://www.overbyte.be/eng/overbyte/teamics.html >> >> >> >> >>> Regards, >>> >>> SZ >>> >>> ----- Original Message ----- >>> From: "Arno Garrels" <[EMAIL PROTECTED]> >>> To: "ICS support mailing" <twsocket@elists.org> >>> Sent: Monday, February 05, 2007 3:47 PM >>> Subject: Re: [twsocket] Possible bug and solution in TWndControl >>> >>> >>>> Fastream Technologies wrote: >>>>> Yes these are all what I thought for a week time! I call >>>>> GetMessage, then check for known/my messages. If none of them, >>>>> call dispatchmessage and all works fine except the problem which >>>>> goes away if we set the WHG_MAX to 800 instead of 100! Now there >>>>> is no such exception thrown--tested with millions of connections. >>>> >>>> Ahh, I missed that you use WM_APP + 100, that's a range I would not >>>> use for window messages but something in the higher range of >>>> WM_USER instead. >>>> >>>> It's strange anyway that increasing the maximum number of messages >>>> made the error went away since that shouldn't change the base >>>> number and range. >>>> >>>> However here is a quick text-search in my component folder >>>> >>>> VirtualTreeview: >>>> WM_CHANGESTATE = WM_APP + 32; >>>> >>>> >>>> VShellTools: >>>> WM_NEWINPUT = WM_APP + 111; >>>> WM_SHELLNOTIFY = WM_APP + 51; // Change in the Shell occured >>>> WM_REMOVEBUTTON = WM_APP + 8; // VirtualShellToolbar >>>> WM_CHANGENOTIFY_CUSTOM = WM_APP + 9; >>>> WM_UPDATESCROLLBAR = WM_APP + 10; >>>> WM_VETBASE = WM_APP + 100 >>>> >>>> and more.. >>>> So be carefull and find the sender!! >>>> >>>> --- >>>> Arno Garrels [TeamICS] >>>> http://www.overbyte.be/eng/overbyte/teamics.html >>>> >>>> >>>> >>>> >>>>> >>>>> Francois, will you? >>>>> >>>>> Best Regards, >>>>> >>>>> SZ >>>>> >>>>> ----- Original Message ----- >>>>> From: "Arno Garrels" <[EMAIL PROTECTED]> >>>>> To: "ICS support mailing" <twsocket@elists.org> >>>>> Sent: Monday, February 05, 2007 1:50 PM >>>>> Subject: Re: [twsocket] Possible bug and solution in TWndControl >>>>> >>>>> >>>>>>>> This is probably because you post custom messages do you? >>>>>>> >>>>>>> Yes but they are starting from WM_USER and there are only 4 of >>>>>>> them in this thread. According to help, WM_USER starts from >>>>>>> 0x0800 and there should be enough room until WM_APP+100. >>>>>> >>>>>> But there must somebody send messages in that range. >>>>>> >>>>>> At first check whether you send any message to the hidden >>>>>> component window that has not been registered thru a call to >>>>>> WndHandler.AllocateMsgHandler(). >>>>>> >>>>>> Also, you can (should) use your own message pump in a thread, >>>>>> that checks the HWND. >>>>>> >>>>>> if msg.hwnd = 0 then { Thread message } >>>>>> begin >>>>>> Any message that was posted to this thread goes here. >>>>>> In this case you may even PostThreadMessages with message >>>>>> numbers in the range of ICS messages. >>>>>> end >>>>>> else >>>>>> Not a thread message, receiver is a window >>>>>> >>>>>> --- >>>>>> Arno Garrels [TeamICS] >>>>>> http://www.overbyte.be/eng/overbyte/teamics.html >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Fastream Technologies wrote: >>>>>>> Hello Arno, >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>> From: "Arno Garrels" <[EMAIL PROTECTED]> >>>>>>> To: "ICS support mailing" <twsocket@elists.org> >>>>>>> Sent: Monday, February 05, 2007 1:24 PM >>>>>>> Subject: Re: [twsocket] Possible bug and solution in TWndControl >>>>>>> >>>>>>> >>>>>>>> Fastream Technologies wrote: >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> When I use the following thread code: >>>>>>>>> >>>>>>>>> void __fastcall ReverseProxyClientThread::Execute() >>>>>>>>> { >>>>>>>>> //---- Place thread code here ---- >>>>>>>>> FreeOnTerminate = true; >>>>>>>>> >>>>>>>>> ... >>>>>>>>> >>>>>>>>> TIcsWndHandler *windowHandler = new TIcsWndHandler(); >>>>>>>>> windowHandler->MsgLow = WM_APP + 100; >>>>>>>>> >>>>>>>>> while(!Terminated) >>>>>>>>> messagePump(); >>>>>>>>> >>>>>>>>> delete windowHandler; >>>>>>>>> } >>>>>>>>> >>>>>>>>> sometimes we get "Test exception" exception. We have up to 32 >>>>>>>>> THttpConnection and 32 THttpCli descendents in this thread. >>>>>>>>> When I raised WHG_MAX to 800, the exception disappears. >>>>>>>>> Francois, could you raise the constant? >>>>>>>> >>>>>>>> This is probably because you post custom messages do you? >>>>>>> >>>>>>> Yes but they are starting from WM_USER and there are only 4 of >>>>>>> them in this thread. According to help, WM_USER starts from >>>>>>> 0x0800 and there should be enough room until WM_APP+100. >>>>>>> >>>>>>> Best Regards, >>>>>>> >>>>>>> SZ >>>>>> -- >>>>>> 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 >>>> -- >>>> 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 >> -- >> 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 -- 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