Dear Smalltalkers,
Let me announce that AIDA/Web Smalltalk web application server now has its own web site at http://www.aidaweb.si . There you can find more information about AIDA/Web like tutorial, screenshots, benchmarks, download information and other. This is a wiki-like site, running on AIDA/Web of course and it can be edited as any other wiki. But public access is closed because of spammers. Anyone interested in providing content please e-mail me to get an account. Let me introduce it a bit more: AIDA/Web is a web server and framework for complex web applications with integrated Ajax support, rich collection of web components to build web pages programatically, MVC-like separation of presentation from domain, nice looking and bookmarkable url links, with integrated session and security management and many more. AIDA/Web is based on Smalltalk web server Swazoo and consists a framework for building complex web applications of many sorts. In that respect it is similar to Seaside. It has everything you need for a real web app, together with Ajax. It is also a mature one, running web apps in production since 1996. It is used in many intranet business apps from Gas billing system for all gas in Slovenia to logistics management system called e-logis and recently a CMS like system for Quality and Business process management. Best regards Janko |
will someone please let me know.
thanks for your help Bob. |
It would help if you read the responses to messages you post.
Once again: Send e-mail to [hidden email] with the subject "unsubscribe". R - On Jan 18, 2007, at 2:12 PM, bob wrote: > will someone please let me know. > > thanks for your help > > Bob. > > > |
In reply to this post by bob-108
Dear Bob,
"To subscribe or unsubscribe, send a message to:
[hidden email] with the SUBJECT of "subscribe" or
"unsubscribe"."
Cheers
Helge
|
In reply to this post by Janko Mivšek
In certain situations my web application can have runaway processes that
consume memory in an open ended way. These are not bugs in the system so much as the user asking the system to do something very ambitious. Is there a way when a memory emergency occurs to simply have my own handler for the condition? Then I can have some special logging and notification and then automatically kill the process that was active and continue. -Carl Gundel, author of Liberty BASIC http://www.libertybasic.com |
You can create your own subclass of memory policy and
install it. When memory becomes critically low, that policy will be sent
#emergencyLowSpaceAction. Other messages are sent at various points for
other memory conditions/actions. For example, ServerMemoryPolicy, in
Wave-Server, changes this processing. And in fact, if you're using
ServerMemoryPolicy, it will trigger an event on ObjectMemory, so it's
easy to install a user action.
However, note that the process that's causing the problem may not be easy to determine. It's likely that when such an emergency triggers, the active process is one involved in running the garbage collector. At 09:13 AM 1/18/2007, Carl Gundel wrote: In certain situations my web application can have runaway processes that consume memory in an open ended way. These are not bugs in the system so much as the user asking the system to do something very ambitious. Is there a way when a memory emergency occurs to simply have my own handler for the condition? Then I can have some special logging and notification and then automatically kill the process that was active and continue. --
Alan Knight [|], Cincom Smalltalk Development
"The Static Typing Philosophy: Make it fast. Make it right.
Make it run." - Niall Ross
|
In reply to this post by Carl Gundel
The other question to ask of course is why does the system allow users to do things that may bring it down? Ambitious can usually be presented and/or executed in chunks, ala search engines etc. What specifically are you referring to? |
It's running a scripting environment (a version of BASIC) on top of Seaside
so it's pretty open ended. I do have throttles on a bunch of things, but when the image runs low on memory I don't want it to crash. On the other hand I suppose if I have a memory emergency I could just kill the image and restart it, but that's not preferred. -Carl ...... Original Message ....... On Thu, 18 Jan 2007 07:14:19 -0800 "Boris Popov" <[hidden email]> wrote: >The other question to ask of course is why does the system allow users to do things that may bring it down? Ambitious can usually be presented and/or executed in chunks, ala search engines etc. What specifically are you referring to? |
One option is also to regulate them based on time. So you
could say that a script that takes longer than X time will get killed. Or
you could say that if the image runs low on memory, you'll kill running
processes, the ones that have been running the longest, first. After each
one, do a GC, and once memory gets back below a certain threshold, go
back to normal operation. Or you could instrument memory allocation, but
that starts being complicated. An alternative is to do some of the kinds
of things Avi talks about with Dabble. Run multiple images, and have only
a few tasks per image. Put stricter thresholds on memory consumption for
the image, and if you need to kill a particular image, it's not so big a
deal.
At 10:42 AM 1/18/2007, Carl Gundel wrote: It's running a scripting environment (a version of BASIC) on top of Seaside --
Alan Knight [|], Cincom Smalltalk Development
"The Static Typing Philosophy: Make it fast. Make it right.
Make it run." - Niall Ross
|
...... Original Message .......
On Thu, 18 Jan 2007 10:50:33 -0500 Alan Knight <[hidden email]> wrote: >One option is also to regulate them based on time. So you could say that a script that takes longer than X time will get killed. Of course we're already doing that. The other stuff we'll have to consider. :-) -Carl |
In reply to this post by Carl Gundel
Carl:
in your case I'm guessing that the running out of memory conditions would occur when your users are testing their code i.e. their scripts and not per se when they are "compiling" i.e. using your IDE to code per se, point being I think your users as you allude will be able to put the enviroment in low memory conditions , your low memory threshold should then be setup so that there is enough room to generate an "hey do you want to save" page i.e. in case the Liberty Basic project is in a dirty state. A specialized memory policy, if I recall, should be able to take priority to do whatever you need to do but since it is very "open ended" I think that the final step will have to be to kill the image. I also think that its a bit trickier in a Seaside context, that just my gut speaking since I have not played much with Seaside. Thinking out loud I wonder if the memory hungrier Seaside continuations exacerbate things. BTW, Seaside is an interesting solution to the Pollock problem :) -Charles On Thu, 18 Jan 2007 10:42:30 -0500, Carl Gundel <[hidden email]> wrote: > It's running a scripting environment (a version of BASIC) on top of > Seaside > so it's pretty open ended. I do have throttles on a bunch of things, but > when the image runs low on memory I don't want it to crash. On the other > hand I suppose if I have a memory emergency I could just kill the image > and > restart it, but that's not preferred. > > -Carl > > ...... Original Message ....... > On Thu, 18 Jan 2007 07:14:19 -0800 "Boris Popov" <[hidden email]> > wrote: >> The other question to ask of course is why does the system allow users >> to > do things that may bring it down? Ambitious can usually be presented > and/or > executed in chunks, ala search engines etc. What specifically are you > referring to? -- Charles A. Monteiro http://wiki.nycsmalltalk.org http://www.monteirosfusion.com http://monteirofusion.blogspot.com |
In reply to this post by Carl Gundel
Perhaps you could set some kind of "soft" limit that is much lower than
normal. When reached, processing of new requests would be suspended until older requests have relinquished sufficient memory to drop back below the soft limit. Then processing of the queued up requests could resume in a FIFO manner. Maybe this would avoid many of the "emergencies" you now encounter. Dave Carl Gundel wrote: > ...... Original Message ....... > On Thu, 18 Jan 2007 10:50:33 -0500 Alan Knight <[hidden email]> wrote: >> One option is also to regulate them based on time. So you could say that a > script that takes longer than X time will get killed. > > Of course we're already doing that. The other stuff we'll have to > consider. :-) > > -Carl > > |
In reply to this post by Carl Gundel
There's also StackOverflow in public store that will catch when their
stack gets too deep - that may be another way to handle them writing dodgy wrong code ;) > ...... Original Message ....... > On Thu, 18 Jan 2007 10:50:33 -0500 Alan Knight <[hidden email]> wrote: >>One option is also to regulate them based on time. So you could say that a > script that takes longer than X time will get killed. > Of course we're already doing that. The other stuff we'll have to > consider. :-) > -Carl |
Free forum by Nabble | Edit this page |