Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Amazing foxISAPI observations - this can't be!
Message
General information
Forum:
Visual FoxPro
Category:
Internet applications
Miscellaneous
Thread ID:
00985861
Message ID:
00986840
Views:
48

For typical web apps, you probably don't want a client application unloading your vfp server app(although I don't think it would be that hard to actually program this - see next statement). VFP mtdlls typically run in Pooled or High Isolation applications which can easily be 'unloaded' from IIS without affecting other applications or IIS(just push the 'Unload' button). This also can easily be automated as I did with the VFP project hook in the downloads section.

My theory is that you don't emphasize mtdlls with WWC because you've invested so much time and effort into your isapi extension and this is your proprietary code - emphasizing mtdlls could possibly make your commercial product less necessary because they work so well with ASP.NET/ASP. That's my only explanation since vfp mtdlls are an obvious improvement to all web development that's gone before in vfp.

Thanks for that blog. I'll try to respond to it in more detail directly on your site, but, here are some first impressions:
Myth 1)There's an issue with debugging mtdlls -Wrong! Debugging in ActiveVFP has improved with each version. Version 2 and 3 allow debugging of COM servers. Version 3 works with Win 2k, xp, and windows 2003. No issues at all, no recompiling necessary, just like regular vfp. A major problem with WWC is that many, many developers are using what amount's to "debugging" mode(file based messaging)for production servers. The switch to COM based processing in WWC has been characterized as a "b*tch" because it so hard to set up and get running, so, many just don't do it. AVFP, on the other hand is always high performance COM messaging.
Myth 2)There's an issue with mtdlls and the stability of the server Wrong! Mtdlls typically run in Pooled or High Isolation. This and the use of COMRETURNERROR allow graceful error handling and no major crashes. Also, with version 3 of AVFP you can simply swap out the main.fxp without the need to unload the application or web server(with vers. 2 you'd just 'unload' the app).
Myth 3)Performance/scalability is somehow better using pooled EXEs - Although the performance/scalability numbers are about even in the perf numbers you got, I don't think you mentioned some of the details like # of wwc servers running and the corresponding memory requirements. For each of those EXE servers the regular vfp runtime is loaded as well. Not true with mtdlls - one runtime is loaded and it's the smaller optimized one. Also, I believe your wwc apps are running in low isolation - did you also run the mtdlls in low isolation too?


>Well that's the problem with MTDLL. You as the client application have no control over it because the host (IIS) is not under your control and you can't even unload yourself.
>
>>There are internal SYS calls (2336) that can help queue the pool. Is this necessary for a MTDLL?
>
>SYS(2336) provides Critical section support which is a BLOCKING feature for thread synchronization. This only allows you to block code from running while in the critical section.
>
>>I saw (and tried to bibliograph) something I read regarding WC interoperability with VFP COMS MTDLLs (and even foxISAPI). Did I misread?
>
>No, Web Connection has an option to run using MTDLLs inside of ASP. But I don't recommend it for a number of reasons. You're basically giving up all the management features and performance benefits that Web Connection provides. It's like a downgrade loosing features and performance, so obviously we don't recommend it. But this is a very specific scenario with Web Connection code which is not 100% optimized for MTDLL operation.
>
>Over the weekend I wrote up a BLOG entry comparing Web Connection and classic ASP + MTDLL COM.
>
>http://west-wind.com/weblog/posts/1475.aspx
>
>We've been over all those on this thread, but this post backs up some of the things I've been talking about with numbers and more detailed explanations.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform