Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, May 25, 2010 at 2:45 PM, Lee Jenkins wrote: > > Not the server computer, but the FCGI application, yes. > On Tue, May 25, 2010 at 3:09 PM, Michael Van Canneyt wrote: > > No, just the fastcgi app. > And what the "correct" way for do that? Kill the process? Marcos Douglas PS: I made ISAPI web apps a long time ago. Always I needed update the app, I restarted the IIS. I do not knew about these approaches out IIS, so far. Then, sorry my beginner questions. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, 25 May 2010, Marcos Douglas wrote: Hi Michael, On Tue, May 25, 2010 at 2:19 PM, Michael Van Canneyt wrote: You can do this with CGI or FastCGI proxies. It does seem elaborate, though. How often do you need to restart the FastCGI proxy ? Not often, I would think. I never used FastCGI. I know it stay in memory. So, if I need update the app I having shutdown the server, right? No, just the fastcgi app. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: Hi Michael, On Tue, May 25, 2010 at 2:19 PM, Michael Van Canneyt wrote: You can do this with CGI or FastCGI proxies. It does seem elaborate, though. How often do you need to restart the FastCGI proxy ? Not often, I would think. I never used FastCGI. I know it stay in memory. So, if I need update the app I having shutdown the server, right? Not the server computer, but the FCGI application, yes. -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Hi Michael, On Tue, May 25, 2010 at 2:19 PM, Michael Van Canneyt wrote: > > You can do this with CGI or FastCGI proxies. It does seem elaborate, though. > How often do you need to restart the FastCGI proxy ? Not often, I would > think. I never used FastCGI. I know it stay in memory. So, if I need update the app I having shutdown the server, right? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, 25 May 2010, Marcos Douglas wrote: On Tue, May 25, 2010 at 2:06 PM, Bee Jay wrote: On 25 Mei 2010, at 23:37, Marcos Douglas wrote: My only doubt is: why to use CGI proxy, not a FCGI? The main purpose of CGI proxy existence is to provide solution for some environments where FCGI setup isn't possible. The other advantages are bonuses. ;) If the environment allows use FCGI, you would not CGI gateway? You said: "Yes, I agree with Leonardo. Another plus is you got better control over FCGI app if you're using CGI gateway. You're able to terminate, restart, redirect to other app on other machine, etc. without even touching the web server. If you're using plain FCGI, you have to stop the entire web server if you want to do something with the FCGI app." ... you can "terminate, restart, redirect to other app on other machine, etc. without even touching the web server" using only FCGI approach? You can do this with CGI or FastCGI proxies. It does seem elaborate, though. How often do you need to restart the FastCGI proxy ? Not often, I would think. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 26 Mei 2010, at 24:12, Marcos Douglas wrote: > If the environment allows use FCGI, you would not CGI gateway? No, because I WANT to use those bonuses. However, by able to use the bonuses, you can't negate the main purpose of its existence. -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, May 25, 2010 at 2:06 PM, Bee Jay wrote: > > On 25 Mei 2010, at 23:37, Marcos Douglas wrote: > >> My only doubt is: why to use CGI proxy, not a FCGI? > > The main purpose of CGI proxy existence is to provide solution for some > environments where FCGI setup isn't possible. The other advantages are > bonuses. ;) > If the environment allows use FCGI, you would not CGI gateway? You said: "Yes, I agree with Leonardo. Another plus is you got better control over FCGI app if you're using CGI gateway. You're able to terminate, restart, redirect to other app on other machine, etc. without even touching the web server. If you're using plain FCGI, you have to stop the entire web server if you want to do something with the FCGI app." ... you can "terminate, restart, redirect to other app on other machine, etc. without even touching the web server" using only FCGI approach? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, May 25, 2010 at 1:58 PM, Lee Jenkins wrote: > > Seems a little redundant to me to have one FCGI proxying for another FCGI > and its not part of the standard either. Lots of sites are using FCGI out > there with the standard single FCGI server setup. > > If you're putting logic into the proxy to any significant degree then I > think that is more or less n-tier development as usual. Okay, but using only one fcgi app, we will always have to shutdown the server? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 23:37, Marcos Douglas wrote: > My only doubt is: why to use CGI proxy, not a FCGI? The main purpose of CGI proxy existence is to provide solution for some environments where FCGI setup isn't possible. The other advantages are bonuses. ;) -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: On Tue, May 25, 2010 at 12:23 PM, Lee Jenkins wrote: Personally, I don't see a problem with the static nature of a apache_mod,ISAPI if you're doing your debugging locally on an embedded server first and then deploying your executable (apache, isapi, fcgi) later. That would reduce the frequency of having to shutdown the server to replace the binary. But you still having to shutdown the server to replace the binary... I thought about the gateway/proxy approach and I consider one of the best solutions. The proxy would redirect all request for some apps. If you want disable one, you can, just redirect for other app. My only doubt is: why to use CGI proxy, not a FCGI? Seems a little redundant to me to have one FCGI proxying for another FCGI and its not part of the standard either. Lots of sites are using FCGI out there with the standard single FCGI server setup. If you're putting logic into the proxy to any significant degree then I think that is more or less n-tier development as usual. -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, May 25, 2010 at 12:23 PM, Lee Jenkins wrote: > > Personally, I don't see a problem with the static nature of a > apache_mod,ISAPI if you're doing your debugging locally on an embedded > server first and then deploying your executable (apache, isapi, fcgi) later. > That would reduce the frequency of having to shutdown the server to replace > the binary. But you still having to shutdown the server to replace the binary... I thought about the gateway/proxy approach and I consider one of the best solutions. The proxy would redirect all request for some apps. If you want disable one, you can, just redirect for other app. My only doubt is: why to use CGI proxy, not a FCGI? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, May 25, 2010 at 5:11 AM, Bee Jay wrote: > > Ok, Marcos... let's take a look at the logic of memory allocation. Everytime > an app need memory, it requests it to the OS. So, OS always knows which part > of memory belongs to what app. Once the app is terminated, OS will release > all the memory allocated for the app so it can be used by other apps. This > means memory leak only happens during the life of an app. The problem is... > if your app is always running and keep requesting memory that will never be > released later, the OS will unable to serve memory allocation request from > other apps. At the end, the OS will be running out of memory, then the whole > system will crash. That's why memory leak is a serious issue for long time > running app such as FCGI app, service, daemon, etc. For an app with short > life time, this isn't a serious issue. Nevertheless, it's a good and > recommended practice to make sure your app has no memory leaks. > > However, there's a chance when memory leak still persist though an app had > already been terminated. It happens when some apps request for shared memory > allocation. Since the memory is being used together by some apps, the memory > will not be released until ALL the apps that using it got terminated. If the > shared memory also being used by the OS kernel, then it will never be > released by the OS, unless you restart the whole system. It is a very serious > issue. > Hi Bee, Good explanation, thanks. Well... I know about everything about you said... but about OS release all the memory allocated for the app, I had forgotten :) Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: On Tue, May 25, 2010 at 4:14 AM, Bee Jay wrote: On 25 Mei 2010, at 14:06, Graeme Geldenhuys wrote: I have never looked at FastCGI before, but what you are descibing is exactly what I wanted to do with CGI. Create a GUI or Service/Daemon application (application server) that the CGI apps talks to. The application server would setup the DB connection and stay running. The CGI simply forwards requests back and forth. I'm glad to see my idea is not impossible and was already implemented. :-) ExtPascal had been using this technique since about two years ago! I told you about this more than once, but you never listen to me. ;) :D What do you think about to use 2 FCGI apps? The first is the proxy and the second is the real app. Do not is more fast than CGI gateway + FCGI? Personally, I don't see a problem with the static nature of a apache_mod,ISAPI if you're doing your debugging locally on an embedded server first and then deploying your executable (apache, isapi, fcgi) later. That would reduce the frequency of having to shutdown the server to replace the binary. To me the truly sexy thing about fpWeb/LazWeb is that the abstraction level to various implementations (cgi, fcgi, apache, etc) is well written and makes it easy to create a core application and port it to different platforms by simply wrapping the core application in the various fpWeb implementations. A embedded server makes it easy to debug the app with breakpoints, variable inspection, etc for development and maintenance. If the core app logic is encapsulated enough, its trivial to then take it from a local embedded and plug it into your favorite fpWeb implementation. That's my plan at any rate. -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, May 25, 2010 at 4:14 AM, Bee Jay wrote: > > On 25 Mei 2010, at 14:06, Graeme Geldenhuys wrote: > >> I have never looked at FastCGI before, but what you are descibing is >> exactly what I wanted to do with CGI. Create a GUI or Service/Daemon >> application (application server) that the CGI apps talks to. The >> application server would setup the DB connection and stay running. The CGI >> simply forwards requests back and forth. I'm glad to see my idea is not >> impossible and was already implemented. :-) > > ExtPascal had been using this technique since about two years ago! I told you > about this more than once, but you never listen to me. ;) :D > What do you think about to use 2 FCGI apps? The first is the proxy and the second is the real app. Do not is more fast than CGI gateway + FCGI? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, 25 May 2010, Bee Jay wrote: On 25 Mei 2010, at 20:31, Michael Van Canneyt wrote: But maybe the new garbage collector no longer has the problem; in that case, my remarks are void. I hope so. I haven't try the latest SVN either. :D Tell him he should also get rid of the one-thread-per-session model, because it is simply not correct in many circumstances. It is visible in the use of threadvars. Any suggestion how to do it better? The problem resolves itself if you convert everything to TComponent descendents: you can then follow the owner chain till you get to the TWebSession class; There is only 1 instance of that class per session, regardless of the threads in use. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 20:31, Michael Van Canneyt wrote: > But maybe the new garbage collector no longer has the problem; in that case, > my remarks are void. I hope so. I haven't try the latest SVN either. :D > Tell him he should also get rid of the one-thread-per-session > model, because it is simply not correct in many circumstances. It is visible > in the use of threadvars. Any suggestion how to do it better? -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, 25 May 2010, Bee Jay wrote: On 25 Mei 2010, at 17:36, Michael Van Canneyt wrote: Here I can reliably reproduce the memory corruption. It crashes the output regularly. (with random use, it happens 10-15 times a day, in a test enviromnent). Would you share the test code? Unfortunately I can't; it's an internal app :/ (and would take very long to set up since it needs a complicated database) The bug is in the garbage collector, which attempts to free objects that have already been freed, but were not removed from the garbage collector list. Again, which part of the code? I checked, but I can't show that any more; the garbage collector was reworked completely it seems. I have not tried with the latest version, and since I switched to fcl-web anyway, there is no point any more in using ExtPascal. But maybe the new garbage collector no longer has the problem; in that case, my remarks are void. I know that the garbage collector was reworked, but the correct implementation would have been to remove the garbage collector altogether and use TComponent decsendents instead. Because the high demand of it, some of us could convince Wanderlan that it would make ExtPascal better in the long run. Wanderlan is considering to do exactly that. See... ;) Glad to hear that. Tell him he should also get rid of the one-thread-per-session model, because it is simply not correct in many circumstances. It is visible in the use of threadvars. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 17:36, Michael Van Canneyt wrote: > Here I can reliably reproduce the memory corruption. It crashes the output > regularly. (with random use, it happens 10-15 times a day, in a test > enviromnent). Would you share the test code? > The bug is in the garbage collector, which attempts to free objects that have > already been freed, but were not removed from the garbage collector list. Again, which part of the code? > I know that the garbage collector was reworked, but the correct > implementation would have been to remove the garbage collector > altogether and use TComponent decsendents instead. Because the high demand of it, some of us could convince Wanderlan that it would make ExtPascal better in the long run. Wanderlan is considering to do exactly that. See... ;) -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
i dont have a win64 machine to test this... 2010/5/25 Bee Jay : > > On 25 Mei 2010, at 15:55, Michael Van Canneyt wrote: > >> The CGI gateway is on my todo list, as you know. > > Now everybody knows. ;) > >> Obviously. I think ExtPascal is promising, but sadly suffers from some major >> design flaws (garbage collect, thread model); which prevent me from >> using it: they can (and do) lead to serious memory corruption. > > I'm maintaining 2 FCGI apps using CGI gateway. The FCGI app will terminate > itself after being idle for 30 minutes. So far, everything is fine. Though I > must admit that once in a while it just hung up but it very rarely happened. > According to the app log, it only happen twice last year, which made me have > to kill it manually. Well, I can live with that. :D Maybe it's because the > suspected memory corruption as you said? > > Could you point out which code exactly that lead to serious memory > corruption? I could propose code review to Wanderlan if I can prove it. > >> I still follow its progress, but see no signs that the design flaws will be >> fixed, even with the recent refactorings :/ > > > Wanderlan is an open minded person. If you could prove the arguments, he will > listen up to you. ;) > > -Bee- > > ___ > fpc-pascal maillist - fpc-pas...@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, 25 May 2010, Bee Jay wrote: On 25 Mei 2010, at 15:55, Michael Van Canneyt wrote: The CGI gateway is on my todo list, as you know. Now everybody knows. ;) Obviously. I think ExtPascal is promising, but sadly suffers from some major design flaws (garbage collect, thread model); which prevent me from using it: they can (and do) lead to serious memory corruption. I'm maintaining 2 FCGI apps using CGI gateway. The FCGI app will terminate itself after being idle for 30 minutes. So far, everything is fine. Though I must admit that once in a while it just hung up but it very rarely happened. According to the app log, it only happen twice last year, which made me have to kill it manually. Well, I can live with that. :D Maybe it's because the suspected memory corruption as you said? Here I can reliably reproduce the memory corruption. It crashes the output regularly. (with random use, it happens 10-15 times a day, in a test enviromnent). The bug is in the garbage collector, which attempts to free objects that have already been freed, but were not removed from the garbage collector list. I know that the garbage collector was reworked, but the correct implementation would have been to remove the garbage collector altogether and use TComponent decsendents instead. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 15:55, Michael Van Canneyt wrote: > The CGI gateway is on my todo list, as you know. Now everybody knows. ;) > Obviously. I think ExtPascal is promising, but sadly suffers from some major > design flaws (garbage collect, thread model); which prevent me from > using it: they can (and do) lead to serious memory corruption. I'm maintaining 2 FCGI apps using CGI gateway. The FCGI app will terminate itself after being idle for 30 minutes. So far, everything is fine. Though I must admit that once in a while it just hung up but it very rarely happened. According to the app log, it only happen twice last year, which made me have to kill it manually. Well, I can live with that. :D Maybe it's because the suspected memory corruption as you said? Could you point out which code exactly that lead to serious memory corruption? I could propose code review to Wanderlan if I can prove it. > I still follow its progress, but see no signs that the design flaws will be > fixed, even with the recent refactorings :/ Wanderlan is an open minded person. If you could prove the arguments, he will listen up to you. ;) -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, 25 May 2010, Bee Jay wrote: On 25 Mei 2010, at 15:12, Michael Van Canneyt wrote: Seems like Graeme is not the only one who is not always listening: Hahahaha... I know. :D When you point a finger, there are three fingers pointing back at you! ;) I said several times before, FastCGI exists since a long time in Free Pascal; why would you need ExtPascal code for it ? Sorry, maybe I missed some of your emails. When I needed FCGI, I found ExtPascal first before fpWeb. I found fpWeb when my app had coded mostly using ExtPascal. So, I ignored it at that time. Now, I'm considering to use fpWeb for my next projects. But, the lack of CGI gateway/proxy support, and knowing ExtPascal code got refactor lately, I haven't yet made any decision. Any suggestion? The CGI gateway is on my todo list, as you know. Other than that, I have no suggestions other than the observations I already gave. All in all, I see very little reason for using ExtPascal - if you are interested only in the FastCGI code. If you want ExtJS, it's a different story. Though I no longer use ExtPascal, except to maintain 2 legacy web apps that already been on production, I still care about this project. Its future is still promising to provide web app dev tool using pascal. Especially when Wanderlan is starting to work on the web IDE. Perhaps fpWeb got better design and all, but the ease of use of ExtPascal made it more attractive to common delphi/pascal programmers, especially with ExtP Toolkit. I even promoting it in my local delphi/pascal community, along with fpWeb and FreeSpider. More alternative is better for the community, I suppose. ;) Obviously. I think ExtPascal is promising, but sadly suffers from some major design flaws (garbage collect, thread model); which prevent me from using it: they can (and do) lead to serious memory corruption. I still follow its progress, but see no signs that the design flaws will be fixed, even with the recent refactorings :/ Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 15:12, Michael Van Canneyt wrote: > Seems like Graeme is not the only one who is not always listening: Hahahaha... I know. :D When you point a finger, there are three fingers pointing back at you! ;) > I said several times before, FastCGI exists since a long time in Free Pascal; > why would you need ExtPascal code for it ? Sorry, maybe I missed some of your emails. When I needed FCGI, I found ExtPascal first before fpWeb. I found fpWeb when my app had coded mostly using ExtPascal. So, I ignored it at that time. Now, I'm considering to use fpWeb for my next projects. But, the lack of CGI gateway/proxy support, and knowing ExtPascal code got refactor lately, I haven't yet made any decision. Any suggestion? > All in all, I see very little reason for using ExtPascal - if you are > interested only in the FastCGI code. If you want ExtJS, it's a different > story. Though I no longer use ExtPascal, except to maintain 2 legacy web apps that already been on production, I still care about this project. Its future is still promising to provide web app dev tool using pascal. Especially when Wanderlan is starting to work on the web IDE. Perhaps fpWeb got better design and all, but the ease of use of ExtPascal made it more attractive to common delphi/pascal programmers, especially with ExtP Toolkit. I even promoting it in my local delphi/pascal community, along with fpWeb and FreeSpider. More alternative is better for the community, I suppose. ;) -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Op 2010-05-25 10:12, Michael Van Canneyt het geskryf: > > All in all, I see very little reason for using ExtPascal - if you are > interested only in the FastCGI code. At least I knew about FastCGI support included in Free Pascal, and that was going to be the first thing I evaluate when I get to the task. From this message thread it seemed like ExtPascal makes things easier, but as your messages suggests - it in fact adds limitations (when only wanting FastCGI). Thanks for pointing this out. Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Tue, 25 May 2010, Bee Jay wrote: On 25 Mei 2010, at 14:43, Graeme Geldenhuys wrote: My major concern is vendor lock-in. Something we want to avoid at all costs - we have been burnt too many times. So I'll stay away from ExtPascal because that requires ExtJS which is a commercial product you have to purchase (starting at $729 and going up to $39,129), and what if ExtJS goes out of business tomorrow. Because the exact same reason, ExtPascal got some code refactoring lately. The refactoring purpose is to separate FCGI code from ExtJS wrapper code (decouple). By using the latest SVN of ExtPascal, you should be able to use the FCGI part only without need to bother with the ExtJS part. However, the refactoring result isn't yet fully tested and it might leave some coupled code behind. Seems like Graeme is not the only one who is not always listening: I said several times before, FastCGI exists since a long time in Free Pascal; why would you need ExtPascal code for it ? What is more, the FastCGI implementation of Free Pascal is fully compatible with all the rest of fcl-web, making it much more easy to develop for than using ExtPascal (especially in Lazarus). Also, the FastCGI module of ExtPascal is limited to using the ExternalFastCGI directive in Apache. It does not support IIS and does not support regular FastCgi. By contrast, the implementation in Free Pascal does support the standards and also supports the ExternalFastCGI directive. All in all, I see very little reason for using ExtPascal - if you are interested only in the FastCGI code. If you want ExtJS, it's a different story. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 01:43, Marcos Douglas wrote: > On Mon, May 24, 2010 at 3:30 PM, Leonardo M. Ramé > wrote: >> Marcos, nobody is saying that you don't have to destroy instances when >> programming CGI apps. > > Okay, but if there is not memory leaks... > I ever free my objects! But I did not know about no memory leaks in > CGI programs... Ok, Marcos... let's take a look at the logic of memory allocation. Everytime an app need memory, it requests it to the OS. So, OS always knows which part of memory belongs to what app. Once the app is terminated, OS will release all the memory allocated for the app so it can be used by other apps. This means memory leak only happens during the life of an app. The problem is... if your app is always running and keep requesting memory that will never be released later, the OS will unable to serve memory allocation request from other apps. At the end, the OS will be running out of memory, then the whole system will crash. That's why memory leak is a serious issue for long time running app such as FCGI app, service, daemon, etc. For an app with short life time, this isn't a serious issue. Nevertheless, it's a good and recommended practice to make sure your app has no memory leaks. However, there's a chance when memory leak still persist though an app had already been terminated. It happens when some apps request for shared memory allocation. Since the memory is being used together by some apps, the memory will not be released until ALL the apps that using it got terminated. If the shared memory also being used by the OS kernel, then it will never be released by the OS, unless you restart the whole system. It is a very serious issue. HTH. -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Op 2010-05-25 09:51, Bee Jay het geskryf: > should be able to use the FCGI part only without need to bother with the > ExtJS part. However, the refactoring result isn't yet fully tested and > it might leave some coupled code behind. Good to know, thanks. I'll then take a look at ExtPascal closer to the time. Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 14:43, Graeme Geldenhuys wrote: > My major concern is vendor lock-in. Something we want to avoid at all costs > - we have been burnt too many times. So I'll stay away from ExtPascal > because that requires ExtJS which is a commercial product you have to > purchase (starting at $729 and going up to $39,129), and what if ExtJS goes > out of business tomorrow. Because the exact same reason, ExtPascal got some code refactoring lately. The refactoring purpose is to separate FCGI code from ExtJS wrapper code (decouple). By using the latest SVN of ExtPascal, you should be able to use the FCGI part only without need to bother with the ExtJS part. However, the refactoring result isn't yet fully tested and it might leave some coupled code behind. -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Op 2010-05-25 09:14, Bee Jay het geskryf: > > ExtPascal had been using this technique since about two years ago! I > told you about this more than once, but you never listen to me. ;) :D :-) I send lots of messages (too many in fact), so couldn't remember who told me that. The other thing was that I haven't implemented such a change yet, and it will only be done in our next release cycle. Our current product is already in feature freeze. My major concern is vendor lock-in. Something we want to avoid at all costs - we have been burnt too many times. So I'll stay away from ExtPascal because that requires ExtJS which is a commercial product you have to purchase (starting at $729 and going up to $39,129), and what if ExtJS goes out of business tomorrow. Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 14:06, Graeme Geldenhuys wrote: > I have never looked at FastCGI before, but what you are descibing is > exactly what I wanted to do with CGI. Create a GUI or Service/Daemon > application (application server) that the CGI apps talks to. The > application server would setup the DB connection and stay running. The CGI > simply forwards requests back and forth. I'm glad to see my idea is not > impossible and was already implemented. :-) ExtPascal had been using this technique since about two years ago! I told you about this more than once, but you never listen to me. ;) :D -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 11:32, Bee Jay wrote: > Oh, did I mention live debugging? ;) Oh, did I mention that FCGI is an open standardized protocol that is supported by virtually any web servers? That means you could avoid vendor technology locked-in, such as Apache mod or IIS ISAPI. ;) -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Op 2010-05-24 18:30, Bee Jay het geskryf: > > The CGI app > (lightweight) will run the ascociated FCGI app (the true app) if it's > not yet running. If it's already running, the CGI app acts as request > proxy for the FCGI app. I have never looked at FastCGI before, but what you are descibing is exactly what I wanted to do with CGI. Create a GUI or Service/Daemon application (application server) that the CGI apps talks to. The application server would setup the DB connection and stay running. The CGI simply forwards requests back and forth. I'm glad to see my idea is not impossible and was already implemented. :-) Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Op 2010-05-24 18:02, Leonardo M. Ramé het geskryf: > Aldo, I know it has templates, the problem I'm facing now is in Windows > Seven 64bits, It can't read environment/GET/POST vars, so the GetVar > function doesn't return anything. That's why I had to look elsewere. Does this only occur in Win7 (64-bit), or does it happen with any Windows version? We use Powtils v1.6.0.2 (the latest version that works for us because the latest trunk version doesn't even compile) and we have deployed CGI apps under Linux (32 & 64bit) and Windows (32-bit) without problems. I haven't tested a Windows 64-bit system yet. The version we use is downloadable from: http://opensoft.homeip.net/~graemeg/pwu-1.6.0.2.tar.gz Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 11:29, Bee Jay wrote: > > On 25 Mei 2010, at 02:15, Marcos Douglas wrote: > >> On Mon, May 24, 2010 at 3:58 PM, Lee Jenkins wrote: >>> >>> Why do you need verification? That information is readily available on >>> ExtPascal's wiki. >>> >>> http://code.google.com/p/extpascal/wiki/GettingStarted >> >> Bee said something and Leonardo responded... I want know what Bee >> think about that answer. > > Yes, I agree with Leonardo. Another plus is you got better control over FCGI > app if you're using CGI gateway. You're able to terminate, restart, redirect > to other app on other machine, etc. without even touching the web server. If > you're using plain FCGI, you have to stop the entire web server if you want > to do something with the FCGI app. Oh, did I mention live debugging? ;) -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 02:15, Marcos Douglas wrote: > On Mon, May 24, 2010 at 3:58 PM, Lee Jenkins wrote: >> >> Why do you need verification? That information is readily available on >> ExtPascal's wiki. >> >> http://code.google.com/p/extpascal/wiki/GettingStarted > > Bee said something and Leonardo responded... I want know what Bee > think about that answer. Yes, I agree with Leonardo. Another plus is you got better control over FCGI app if you're using CGI gateway. You're able to terminate, restart, redirect to other app on other machine, etc. without even touching the web server. If you're using plain FCGI, you have to stop the entire web server if you want to do something with the FCGI app. -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 5:31 PM, Felipe Monteiro de Carvalho wrote: > > Yes, it is true for Windows, Linux, Mac, plus any other decent OS. > > It is however considered good practice to clean up. It's more or less > like commenting. Sure you can write a program without comments and it > will run just the same, but it will be a very ugly code which will > likely cause headache in the future. So... the only problem would be a GUI program (always in execution) creating objects without released them until memory is out? Only in this case the release of memory would be *very* important? I need back to university... Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 8:20 PM, Marcos Douglas wrote: > ...and at the end, no memory leaks? > > This is true about Desktop (Win/Linux) apps too? Yes, it is true for Windows, Linux, Mac, plus any other decent OS. It is however considered good practice to clean up. It's more or less like commenting. Sure you can write a program without comments and it will run just the same, but it will be a very ugly code which will likely cause headache in the future. -- Felipe Monteiro de Carvalho ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 4:18 PM, Lee Jenkins wrote: > > No offense, I was just curious. Okay, don't worry :) On Mon, May 24, 2010 at 4:19 PM, Lee Jenkins wrote: > > Sorry, "way" of how it works. > When I said: "...and at the end, no memory leaks?" I talked serious! For me, all pointers that were not released, even at the end of app, remain in memory. That in any apps e.g. console, gui, cgi, whatever. Today Felipe Monteiro said "No, it doesn't continue in memory" and I was confused about it. I code for over 10 years. For me: object created, object released! Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
--- On Mon, 5/24/10, Graeme Geldenhuys wrote: > From: Graeme Geldenhuys > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: "FPC-Pascal users discussions" > Date: Monday, May 24, 2010, 4:31 PM > On 24 May 2010 18:02, Leonardo M. > Ramé wrote: > > Aldo, I know it has templates, the problem I'm facing > now is in Windows Seven 64bits, > > It can't read environment/GET/POST vars, so the GetVar > function doesn't return > > anything. That's why I had to look elsewere. > > > Well, you have the code, so why not debug the problem? > After all, that > is what developers do. Write and fix software. > Graeme, I'll do...in a couple of weeks. I'm hurried to finish a project that must be deployed to Win64, that's why I choosed FreeSpider instead of fpWeb or Powtils this time. Leonardo M. Ramé http://leonardorame.blogspot.com ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 24 May 2010 18:02, Leonardo M. Ramé wrote: > Aldo, I know it has templates, the problem I'm facing now is in Windows Seven > 64bits, > It can't read environment/GET/POST vars, so the GetVar function doesn't return > anything. That's why I had to look elsewere. Well, you have the code, so why not debug the problem? After all, that is what developers do. Write and fix software. -- Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: On Mon, May 24, 2010 at 3:55 PM, Lee Jenkins wrote: LOL. Well, you should always manage your resources regardless, though I think you question was tongue in cheek. I was talking more about the model of how it works. Sorry... what do you mean "model of how it works"? Sorry, "way" of how it works. -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: On Mon, May 24, 2010 at 3:58 PM, Lee Jenkins wrote: Why do you need verification? That information is readily available on ExtPascal's wiki. http://code.google.com/p/extpascal/wiki/GettingStarted I do not need verification. Bee said something and Leonardo responded... I want know what Bee think about that answer. No offense, I was just curious. -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 3:58 PM, Lee Jenkins wrote: > > Why do you need verification? That information is readily available on > ExtPascal's wiki. > > http://code.google.com/p/extpascal/wiki/GettingStarted I do not need verification. Bee said something and Leonardo responded... I want know what Bee think about that answer. Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 3:55 PM, Lee Jenkins wrote: > > LOL. Well, you should always manage your resources regardless, though I > think you question was tongue in cheek. > > I was talking more about the model of how it works. Sorry... what do you mean "model of how it works"? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: On Mon, May 24, 2010 at 3:45 PM, Leonardo M. Ramé wrote: Yes, but some times your FCGI app must run on one of those cheap shared hostings where you can't touch the Apache's httpd.conf file to configure the FCGI application. That's why the CGI proxy/gateway approach is used in some cases. If you have full control of the server, the CGI proxy isn't required. @Bee Jay, Do you agree with him? Why do you need verification? That information is readily available on ExtPascal's wiki. http://code.google.com/p/extpascal/wiki/GettingStarted -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: On Mon, May 24, 2010 at 2:24 PM, Lee Jenkins wrote: It is more or less a console application. 1. Request come in. 2. CGI Application starts and handles request through stdin/stdout. 3. CGI Application shuts down and release its resources. One application is started and then shutdown for every request which comes in. Not good for sites that need AJAX, connection pooling, persistent objects, etc. Great (and fast) for sites with basic fetch(static, database, etc) and display models, IMO. Oh my... Then I can do this: var s1, s2, s3: TStrings; begin s1 := TStringList.Create; s2 := TStringList.Create; s3 := TStringList.Create; end; ...and at the end, no memory leaks? This is true about Desktop (Win/Linux) apps too? LOL. Well, you should always manage your resources regardless, though I think you question was tongue in cheek. I was talking more about the model of how it works. -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 3:45 PM, Leonardo M. Ramé wrote: > > Yes, but some times your FCGI app must run on one of those cheap shared > hostings where you can't touch the Apache's httpd.conf file to configure the > FCGI application. That's why the CGI proxy/gateway approach is used in some > cases. > > If you have full control of the server, the CGI proxy isn't required. @Bee Jay, Do you agree with him? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
--- On Mon, 5/24/10, Marcos Douglas wrote: > From: Marcos Douglas > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: "FPC-Pascal users discussions" > Date: Monday, May 24, 2010, 3:39 PM > On Mon, May 24, 2010 at 2:33 PM, Bee > Jay > wrote: > > > > Because FCGI app is the true worker app. CGI proxy is > lightweight app. It does nothing but redirecting incoming > request and outgoing response, aka proxy. Since it's > lightweight, the CGI penalty can be ignored. > > > >> A FCGI lightweight app would be the proxy for some > CGI apps. The FCGI > >> stay in memory, so it is more fast for requests, > while CGI app would > >> be more specialized. > > > > Take a simple common case, an app that need to connect > to a database, run an sql query, format the result, send it > to client, and close the db connection. If it's a CGI app, > the whole process is done on every single client request. > 100 incoming request, then 100 times it's done over and > over. > > > > If it's a FCGI app, you could make it connect to > database once when it goes up, run the sql query once when > the first request comes, format the result, send it to > client, then cache the formatted result. If another similar > request coming in, since the FCGI app stays in the memory, > it could simply re-send the cached result without re-connect > and re-query to the database. The cache can be refreshed > (re-query the database) upon some conditional triggers, i.e. > time interval, number of similar request, or some special > kind of request (update query, etc). The db connection only > need to be closed before the FCGI app is about to terminate > itself at the end of its session. You can imagine how big > performance boost you will get. ;) > > I agree about the performance. > But just one connection to database will be slow and you > have to > manager that... or create a thread for each request and > each thread > have a connection. Do you agree? > > And about the cache... well, is possible use it even in CGI > apps (but > is slower, of course). > > I did not understand why to use CGI and FCGI. Why the FCGI > apps can > not receive the requests? Would be faster, don't? > > Marcos Douglas Yes, but some times your FCGI app must run on one of those cheap shared hostings where you can't touch the Apache's httpd.conf file to configure the FCGI application. That's why the CGI proxy/gateway approach is used in some cases. If you have full control of the server, the CGI proxy isn't required. Leonardo M. Ramé http://leonardorame.blogspot.com ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 3:30 PM, Leonardo M. Ramé wrote: > > Marcos, nobody is saying that you don't have to destroy instances when > programming CGI apps. > Okay, but if there is not memory leaks... I ever free my objects! But I did not know about no memory leaks in CGI programs... Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 2:33 PM, Bee Jay wrote: > > Because FCGI app is the true worker app. CGI proxy is lightweight app. It > does nothing but redirecting incoming request and outgoing response, aka > proxy. Since it's lightweight, the CGI penalty can be ignored. > >> A FCGI lightweight app would be the proxy for some CGI apps. The FCGI >> stay in memory, so it is more fast for requests, while CGI app would >> be more specialized. > > Take a simple common case, an app that need to connect to a database, run an > sql query, format the result, send it to client, and close the db connection. > If it's a CGI app, the whole process is done on every single client request. > 100 incoming request, then 100 times it's done over and over. > > If it's a FCGI app, you could make it connect to database once when it goes > up, run the sql query once when the first request comes, format the result, > send it to client, then cache the formatted result. If another similar > request coming in, since the FCGI app stays in the memory, it could simply > re-send the cached result without re-connect and re-query to the database. > The cache can be refreshed (re-query the database) upon some conditional > triggers, i.e. time interval, number of similar request, or some special kind > of request (update query, etc). The db connection only need to be closed > before the FCGI app is about to terminate itself at the end of its session. > You can imagine how big performance boost you will get. ;) I agree about the performance. But just one connection to database will be slow and you have to manager that... or create a thread for each request and each thread have a connection. Do you agree? And about the cache... well, is possible use it even in CGI apps (but is slower, of course). I did not understand why to use CGI and FCGI. Why the FCGI apps can not receive the requests? Would be faster, don't? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
--- On Mon, 5/24/10, ABorka wrote: > From: ABorka > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: "FPC-Pascal users discussions" > Date: Monday, May 24, 2010, 3:24 PM > On 5/24/2010 09:52, Leonardo M. Ramé > wrote: > > -- On Mon, 5/24/10, ABorka > wrote: > > > >> From: ABorka > >> Subject: Re: [fpc-pascal] Powtils Apache and > Windows Seven 64bits > >> To: "FPC-Pascal users discussions" > >> Date: Monday, May 24, 2010, 1:48 PM > >> On 5/24/2010 09:02, Leonardo M. Ramé > >> wrote: > >>> Aldo, I know it has templates, the problem I'm > facing > >> now is in Windows Seven 64bits, It can't read > >> environment/GET/POST vars, so the GetVar function > doesn't > >> return anything. That's why I had to look > elsewere. > >>> > >>> Leonardo M. Ramé > >>> http://leonardorame.blogspot.com > >> > >> Is this a reported problem? Can you create a bug > report on > >> this if it is a reproduceable error? > > > > This is the problem with POWTILS. > > > > For fpWeb, this is what I posted in Lazarus mailing > list: > > > > I created a basic example called 'cgiproject1' > consisting of only an TFPWebModule's OnRequest method like > this, with no action: > > > > procedure TFPWebModule1.DataModuleRequest(Sender: > TObject; ARequest: TRequest; > > AResponse: TResponse; var Handled: Boolean); > > begin > > AResponse.Content := 'Hello'; > > Handled := True; > > end; > > > > Without environment vars, the result is this: > > > > exception at 00010003B5DC: > > No REQUEST_METHOD passed from server. > > > > If I set the environment var REQUEST_METHOD using "set > REQUEST_METHOD=POST", or "GET", the result is this: > > > > An unhandled exception occurred at $00010001FC05 > : > > EWriteError : Stream write error > > $00010001FC05 > > $000100034C77 > > $000100037D54 > > $000100033DCA > > $000115DE main, line 13 of giproject1.lpr > > > > It doesn't matter if I set QUERY_STRING and PATH_INFO, > the result is the same. > > > > Leonardo M. Ramé > > I am not sure what the exception problem might be, but you > cannot just > do a SET command in a command prompt for CGI programs. > > For CGI programs you need to pass global environment > variables with > Apache, it is not automatic. For example, in the Apache > httpd.conf with > a "PassEnv TEMP" or "SetEnv TEMP /pathtotmpdir" line so the > web server > passes this global environment variable to the CGI > programs' local > environment variables. Only these "manually" passed ones > and the ones > Apache sends (the CGI environment variables that are in the > CGI > standard) are visible from within CGI programs. > > AB I did this command line testing because I was trying to find out what was causing the problem, because my trivial example didn't work on Windows Seven 64, the same test in Linux works fine. I'll come back to fpWeb in a couple of weeks from now, now I'm hurried to finish a small project, and I'll use FreeSpider for it. Leonardo M. Ramé http://leonardorame.blogspot.com ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
--- On Mon, 5/24/10, Marcos Douglas wrote: > From: Marcos Douglas > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: "FPC-Pascal users discussions" > Date: Monday, May 24, 2010, 3:20 PM > On Mon, May 24, 2010 at 2:24 PM, Lee > Jenkins > wrote: > > > > It is more or less a console application. > > > > 1. Request come in. > > 2. CGI Application starts and handles request through > stdin/stdout. > > 3. CGI Application shuts down and release its > resources. > > > > One application is started and then shutdown for every > request which comes > > in. Not good for sites that need AJAX, connection > pooling, persistent > > objects, etc. Great (and fast) for sites with basic > fetch(static, database, > > etc) and display models, IMO. > > Oh my... > > Then I can do this: > var > s1, s2, s3: TStrings; > begin > s1 := TStringList.Create; > s2 := TStringList.Create; > s3 := TStringList.Create; > end; > > ...and at the end, no memory leaks? > > This is true about Desktop (Win/Linux) apps too? > > Marcos Douglas Marcos, nobody is saying that you don't have to destroy instances when programming CGI apps. Leonardo M. Ramé http://leonardorame.blogspot.com ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 5/24/2010 09:52, Leonardo M. Ramé wrote: -- On Mon, 5/24/10, ABorka wrote: From: ABorka Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits To: "FPC-Pascal users discussions" Date: Monday, May 24, 2010, 1:48 PM On 5/24/2010 09:02, Leonardo M. Ramé wrote: Aldo, I know it has templates, the problem I'm facing now is in Windows Seven 64bits, It can't read environment/GET/POST vars, so the GetVar function doesn't return anything. That's why I had to look elsewere. Leonardo M. Ramé http://leonardorame.blogspot.com Is this a reported problem? Can you create a bug report on this if it is a reproduceable error? This is the problem with POWTILS. For fpWeb, this is what I posted in Lazarus mailing list: I created a basic example called 'cgiproject1' consisting of only an TFPWebModule's OnRequest method like this, with no action: procedure TFPWebModule1.DataModuleRequest(Sender: TObject; ARequest: TRequest; AResponse: TResponse; var Handled: Boolean); begin AResponse.Content := 'Hello'; Handled := True; end; Without environment vars, the result is this: exception at 00010003B5DC: No REQUEST_METHOD passed from server. If I set the environment var REQUEST_METHOD using "set REQUEST_METHOD=POST", or "GET", the result is this: An unhandled exception occurred at $00010001FC05 : EWriteError : Stream write error $00010001FC05 $000100034C77 $000100037D54 $000100033DCA $000115DE main, line 13 of giproject1.lpr It doesn't matter if I set QUERY_STRING and PATH_INFO, the result is the same. Leonardo M. Ramé I am not sure what the exception problem might be, but you cannot just do a SET command in a command prompt for CGI programs. For CGI programs you need to pass global environment variables with Apache, it is not automatic. For example, in the Apache httpd.conf with a "PassEnv TEMP" or "SetEnv TEMP /pathtotmpdir" line so the web server passes this global environment variable to the CGI programs' local environment variables. Only these "manually" passed ones and the ones Apache sends (the CGI environment variables that are in the CGI standard) are visible from within CGI programs. AB ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 2:24 PM, Lee Jenkins wrote: > > It is more or less a console application. > > 1. Request come in. > 2. CGI Application starts and handles request through stdin/stdout. > 3. CGI Application shuts down and release its resources. > > One application is started and then shutdown for every request which comes > in. Not good for sites that need AJAX, connection pooling, persistent > objects, etc. Great (and fast) for sites with basic fetch(static, database, > etc) and display models, IMO. Oh my... Then I can do this: var s1, s2, s3: TStrings; begin s1 := TStringList.Create; s2 := TStringList.Create; s3 := TStringList.Create; end; ...and at the end, no memory leaks? This is true about Desktop (Win/Linux) apps too? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 25 Mei 2010, at 24:10, Marcos Douglas wrote: > "If it's already running, the CGI app acts as request proxy for the FCGI app" > Would not the oposite? Because FCGI app is the true worker app. CGI proxy is lightweight app. It does nothing but redirecting incoming request and outgoing response, aka proxy. Since it's lightweight, the CGI penalty can be ignored. > A FCGI lightweight app would be the proxy for some CGI apps. The FCGI > stay in memory, so it is more fast for requests, while CGI app would > be more specialized. Take a simple common case, an app that need to connect to a database, run an sql query, format the result, send it to client, and close the db connection. If it's a CGI app, the whole process is done on every single client request. 100 incoming request, then 100 times it's done over and over. If it's a FCGI app, you could make it connect to database once when it goes up, run the sql query once when the first request comes, format the result, send it to client, then cache the formatted result. If another similar request coming in, since the FCGI app stays in the memory, it could simply re-send the cached result without re-connect and re-query to the database. The cache can be refreshed (re-query the database) upon some conditional triggers, i.e. time interval, number of similar request, or some special kind of request (update query, etc). The db connection only need to be closed before the FCGI app is about to terminate itself at the end of its session. You can imagine how big performance boost you will get. ;) -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Marcos Douglas wrote: On Mon, May 24, 2010 at 12:42 PM, Felipe Monteiro de Carvalho wrote: On Mon, May 24, 2010 at 5:26 PM, Marcos Douglas wrote: Don't worry about memory leaks?! But if a do not freed an object e.g. this is continues in memory, even after app ends. No, it doesn't continue in memory. In any operating system? So, memory leaks are valid only for apps that stay in memory, like FastCGI, ISAPI, etc? It is more or less a console application. 1. Request come in. 2. CGI Application starts and handles request through stdin/stdout. 3. CGI Application shuts down and release its resources. One application is started and then shutdown for every request which comes in. Not good for sites that need AJAX, connection pooling, persistent objects, etc. Great (and fast) for sites with basic fetch(static, database, etc) and display models, IMO. -- Warm Regards, Lee ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 1:30 PM, Bee Jay wrote: > > That's why I like the CGI gateway mechanism from ExtPascal. The CGI app > (lightweight) will run the ascociated FCGI app (the true app) if it's not yet > running. If it's already running, the CGI app acts as request proxy for the > FCGI app. As FCGI no longer got requests (went idle) for some time, it > terminates itself. So, you got CGI and FCGI advantages combined. It's also > easier during development, especially debugging. Well, for some small apps, > it might be overkill. But, for medium to large apps, with hundreds of > concurrent requests, it simply shines over plain CGI. > "If it's already running, the CGI app acts as request proxy for the FCGI app" Would not the oposite? A FCGI lightweight app would be the proxy for some CGI apps. The FCGI stay in memory, so it is more fast for requests, while CGI app would be more specialized. Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 12:42 PM, Felipe Monteiro de Carvalho wrote: > On Mon, May 24, 2010 at 5:26 PM, Marcos Douglas wrote: >> Don't worry about memory leaks?! But if a do not freed an object e.g. >> this is continues in memory, even after app ends. > > No, it doesn't continue in memory. In any operating system? So, memory leaks are valid only for apps that stay in memory, like FastCGI, ISAPI, etc? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
-- On Mon, 5/24/10, ABorka wrote: > From: ABorka > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: "FPC-Pascal users discussions" > Date: Monday, May 24, 2010, 1:48 PM > On 5/24/2010 09:02, Leonardo M. Ramé > wrote: > > Aldo, I know it has templates, the problem I'm facing > now is in Windows Seven 64bits, It can't read > environment/GET/POST vars, so the GetVar function doesn't > return anything. That's why I had to look elsewere. > > > > Leonardo M. Ramé > > http://leonardorame.blogspot.com > > Is this a reported problem? Can you create a bug report on > this if it is a reproduceable error? This is the problem with POWTILS. For fpWeb, this is what I posted in Lazarus mailing list: I created a basic example called 'cgiproject1' consisting of only an TFPWebModule's OnRequest method like this, with no action: procedure TFPWebModule1.DataModuleRequest(Sender: TObject; ARequest: TRequest; AResponse: TResponse; var Handled: Boolean); begin AResponse.Content := 'Hello'; Handled := True; end; Without environment vars, the result is this: exception at 00010003B5DC: No REQUEST_METHOD passed from server. If I set the environment var REQUEST_METHOD using "set REQUEST_METHOD=POST", or "GET", the result is this: An unhandled exception occurred at $00010001FC05 : EWriteError : Stream write error $00010001FC05 $000100034C77 $000100037D54 $000100033DCA $000115DE main, line 13 of giproject1.lpr It doesn't matter if I set QUERY_STRING and PATH_INFO, the result is the same. Leonardo M. Ramé http://leonardorame.blogspot.com ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 5/24/2010 09:02, Leonardo M. Ramé wrote: Aldo, I know it has templates, the problem I'm facing now is in Windows Seven 64bits, It can't read environment/GET/POST vars, so the GetVar function doesn't return anything. That's why I had to look elsewere. Leonardo M. Ramé http://leonardorame.blogspot.com Is this a reported problem? Can you create a bug report on this if it is a reproduceable error? ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On 24 Mei 2010, at 22:13, Leonardo M. Ramé wrote: > With CGI you have one advantage over Apache Modules or Embedded web servers, > as far as your "actions" do their work without errors, you don't have to > worry about possible memory leaks related to concurrency problems or threads > or anything like that, CGI's are much less complex than servers. That's why I like the CGI gateway mechanism from ExtPascal. The CGI app (lightweight) will run the ascociated FCGI app (the true app) if it's not yet running. If it's already running, the CGI app acts as request proxy for the FCGI app. As FCGI no longer got requests (went idle) for some time, it terminates itself. So, you got CGI and FCGI advantages combined. It's also easier during development, especially debugging. Well, for some small apps, it might be overkill. But, for medium to large apps, with hundreds of concurrent requests, it simply shines over plain CGI. -Bee- ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Aldo, I know it has templates, the problem I'm facing now is in Windows Seven 64bits, It can't read environment/GET/POST vars, so the GetVar function doesn't return anything. That's why I had to look elsewere. Leonardo M. Ramé http://leonardorame.blogspot.com --- On Mon, 5/24/10, Jorge Aldo G. de F. Junior wrote: > From: Jorge Aldo G. de F. Junior > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: "FPC-Pascal users discussions" > Date: Monday, May 24, 2010, 12:54 PM > Powtils is not unmantained, its just > slow development. > > Powutils has parametrized templates, it just dont have > documentation > for the latest version (I developed the template system > myself). > > 2010/5/24 Felipe Monteiro de Carvalho : > > On Mon, May 24, 2010 at 5:26 PM, Marcos Douglas > wrote: > >> Don't worry about memory leaks?! But if a do not > freed an object e.g. > >> this is continues in memory, even after app ends. > > > > No, it doesn't continue in memory. > > > > -- > > Felipe Monteiro de Carvalho > > ___ > > fpc-pascal maillist - fpc-pas...@lists.freepascal.org > > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > > > ___ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Powtils is not unmantained, its just slow development. Powutils has parametrized templates, it just dont have documentation for the latest version (I developed the template system myself). 2010/5/24 Felipe Monteiro de Carvalho : > On Mon, May 24, 2010 at 5:26 PM, Marcos Douglas wrote: >> Don't worry about memory leaks?! But if a do not freed an object e.g. >> this is continues in memory, even after app ends. > > No, it doesn't continue in memory. > > -- > Felipe Monteiro de Carvalho > ___ > fpc-pascal maillist - fpc-pas...@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 5:26 PM, Marcos Douglas wrote: > Don't worry about memory leaks?! But if a do not freed an object e.g. > this is continues in memory, even after app ends. No, it doesn't continue in memory. -- Felipe Monteiro de Carvalho ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Hi Leonardo, Thanks for reply. On Mon, May 24, 2010 at 12:13 PM, Leonardo M. Ramé wrote: > > I'll use it in production. With CGI you have one advantage over Apache > Modules or Embedded web servers, as far as your "actions" do their work > without errors, you don't have to worry about possible memory leaks related > to concurrency problems or threads or anything like that, CGI's are much less > complex than servers. Knowing this, I'm pretty sure FreeSpider will fit my > needs for this particular project. > Don't worry about memory leaks?! But if a do not freed an object e.g. this is continues in memory, even after app ends. About FreeSpider: There are just one owner for this project, right? This project is more stable than fpWeb, Powtils, Synapse, etc? Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
--- On Mon, 5/24/10, Marcos Douglas wrote: > From: Marcos Douglas > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: "FPC-Pascal users discussions" > Date: Monday, May 24, 2010, 12:04 PM > On Mon, May 24, 2010 at 11:51 AM, > Leonardo M. Ramé > wrote: > > Thanks Leledumbo, FreeSpider worked perfectly, I did > some tests of GET/POST vars and Templates, and it fits my > needs wonderfully. > > > > I also tried fpWeb, but it has some problems > (EWriteError : Stream write error) on Windows Seven 64, or > with Apache 2.2.15, I don't know, in Lazarus list I posted a > couple of questions trying to let it work. > > > > The only thing I miss from PowTils is executable size, > a simple program in FreeSpider took ~7mb, and with -XX -Xs > it went down to 1.6Mb. I know it will be cached in the > server, and that's not an issue for my app, but it looks > like too big for a simple CGI program. Anyway, I'll use it > for this project. > > Do someone uses FreeSpider? I don't know if it is a real > framework for > production. > > > Marcos Douglas I'll use it in production. With CGI you have one advantage over Apache Modules or Embedded web servers, as far as your "actions" do their work without errors, you don't have to worry about possible memory leaks related to concurrency problems or threads or anything like that, CGI's are much less complex than servers. Knowing this, I'm pretty sure FreeSpider will fit my needs for this particular project. Leonardo M. Ramé http://leonardorame.blogspot.com ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
On Mon, May 24, 2010 at 11:51 AM, Leonardo M. Ramé wrote: > Thanks Leledumbo, FreeSpider worked perfectly, I did some tests of GET/POST > vars and Templates, and it fits my needs wonderfully. > > I also tried fpWeb, but it has some problems (EWriteError : Stream write > error) on Windows Seven 64, or with Apache 2.2.15, I don't know, in Lazarus > list I posted a couple of questions trying to let it work. > > The only thing I miss from PowTils is executable size, a simple program in > FreeSpider took ~7mb, and with -XX -Xs it went down to 1.6Mb. I know it will > be cached in the server, and that's not an issue for my app, but it looks > like too big for a simple CGI program. Anyway, I'll use it for this project. Do someone uses FreeSpider? I don't know if it is a real framework for production. Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Thanks Leledumbo, FreeSpider worked perfectly, I did some tests of GET/POST vars and Templates, and it fits my needs wonderfully. I also tried fpWeb, but it has some problems (EWriteError : Stream write error) on Windows Seven 64, or with Apache 2.2.15, I don't know, in Lazarus list I posted a couple of questions trying to let it work. The only thing I miss from PowTils is executable size, a simple program in FreeSpider took ~7mb, and with -XX -Xs it went down to 1.6Mb. I know it will be cached in the server, and that's not an issue for my app, but it looks like too big for a simple CGI program. Anyway, I'll use it for this project. Leonardo M. Ramé http://leonardorame.blogspot.com --- On Mon, 5/24/10, leledumbo wrote: > From: leledumbo > Subject: Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits > To: fpc-pascal@lists.freepascal.org > Date: Monday, May 24, 2010, 1:59 AM > > Powtils seems to be ignored by the author for a couple of > years, use fpWeb or > FreeSpider instead. Both are maintained and quite advanced > (fpWeb: > parameterized templates, FreeSpider: smart module loading), > and what you > need: both have working file upload example. > > -- > View this message in context: > http://old.nabble.com/CGI-file-upload-tp28650163p28653703.html > Sent from the Free Pascal - General mailing list archive at > Nabble.com. > > ___ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Powtils Apache and Windows Seven 64bits
Powtils seems to be ignored by the author for a couple of years, use fpWeb or FreeSpider instead. Both are maintained and quite advanced (fpWeb: parameterized templates, FreeSpider: smart module loading), and what you need: both have working file upload example. -- View this message in context: http://old.nabble.com/CGI-file-upload-tp28650163p28653703.html Sent from the Free Pascal - General mailing list archive at Nabble.com. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal