Julian Tree | 3 Jun 23:46
Picon

large site using helma

Hi community,

I am conducting a study to pick a web technology to use in a  
startup.   Can someone provide me with some actual traffic statics for  
large sites that uses helma.

I know http://twoday.net  is getting 30 million hit per months

what about ORF (Austrian national public service broadcaster)?

Can you include hit per month and the number and specs of the server  
that is used to serve that traffic.

Thanks.

Julian
Bernhard Froehlich | 4 Jun 00:44
Picon
Favicon

Request based Priority Queues

Hi List.

Has anyone of you guys ever played with Request based Priority Queues [1]
using Helma? Common cases where you need that are mostly to reduce latency
for some Sessions (admins, ...) or URIs (webservices, ajax ...) under high
load.

There are various places where connections are pooled when using Apache
and mod_jk so an absolutely correct solution might need to modify mod_jk,
jetty and helma but i really want to avoid hacking all of them.

* AFAIK mod_jk only has the functionality to route specific URIs to
different workers but that seems a bit hackish to me because you would
need an mostly idle worker to get good results.

* On the Jetty side it would be possible to write an Filter [2] that
respects that priority but i am not sure how much that would help because
it heavily depends on the ratio of the mod_jk and jetty poolsize and seems
to need Jetty 7.0 which is experimental at this time.

In Helma the only thing that is left to do is to include the priority
somewhere in the cookies to help the Filter making the right decision.

Maybe someone with a better knowledge of the architecture could shed some
light on a good solution.

Kind regards,
Bernhard Fröhlich

[1]
(Continue reading)

Joshua Paine | 6 Jun 05:23

Re: Request based Priority Queues

On Wed, 2008-06-04 at 00:44 +0200, Bernhard Froehlich wrote:
> ever played with Request based Priority Queues [1]

No, I haven't--with Helma nor anything else. I have only the tiny, tiny
suggestion to add of looking at mod_proxy instead of mod_jk. It's a lot
easier to setup and seems pretty much to supersede mod_jk.

> * AFAIK mod_jk only has the functionality to route specific URIs to
> different workers but that seems a bit hackish to me because you would
> need an mostly idle worker to get good results.

mod_proxy can do the same, plus a host of powerful connection pooling
and load balancing things that I can't say I've yet had to deal with.
(Nor do I know if it's actually more than mod_jk has.) I'm not sure that
this materially differs from what's proposed in the article you linked,
though. They're mostly talking about setting aside X threads to serve
high-priority requests--it's still possible that you'll have too many
high-priority requests. Your only assurance is that they only have to
wait for other high-priority requests and not the lower-priority ones.

This is far from my area of expertise, so I apologize if this is all
blowing smoke.

--

-- 
Joshua Paine <joshua <at> papercrown.org>
Julian Tree | 16 Jun 22:18
Picon

Keeping track of changes of HopObject in onPersist()

I find onPerisist trigger very useful.

Is there a way to find out if a key/field has being changed in the  
HopObject?  Like new value of the field vs old(stored) valued of the  
field, like in a stored procedure in at SQL database.

For example something like below would be userful:

this.firstName = req.postParams.firstName;

this.onPersist = function(){
	if(this.firstName.getOldValue() == this.firstName){
		//user has changed the value of the firstName
		// do something big
	}

}

Julian
Joshua Paine | 17 Jun 01:06

Re: Keeping track of changes of HopObject in onPersist()

On Mon, 2008-06-16 at 16:18 -0400, Julian Tree wrote:
> Is there a way to find out if a key/field has being changed in the  
> HopObject?

Not in Helma 1.x. I heard there were more events planned for Helma NG,
so maybe there's an onChange event planned for HopObject properties, but
I don't know.

> if(this.firstName.getOldValue() == this.firstName){

This syntax would require deep magic, since method getOldValue would
normally be obliterated as soon as you assigned something to firstName.

If HopObject.onInit works as specified, you could add these methods to
HopObject:

function onInit(){
  var oldVals = {};
  for(let name in this) {
    if(!(this[name] instanceof HopObject ||
         this[name] instanceof Function)) {
      oldVals[name] = this[name];
    }
  }
  this.cache.oldVals = oldVals;
}

function oldValue(name){
  if(!this.cache.oldVals) return;
  return this.cache.oldVals[name];
(Continue reading)

Joshua Paine | 17 Jun 01:08

Re: Keeping track of changes of HopObject in onPersist()

On Mon, 2008-06-16 at 19:06 -0400, Joshua Paine wrote:
> if(this.firstName != this.oldValue('firstname')) doSomething();

Er, this.oldValue('firstName')

--

-- 
Joshua Paine <joshua <at> papercrown.org>
Picon

Re: Keeping track of changes of HopObjectin onPersist()

> 
> On Mon, 2008-06-16 at 16:18 -0400, Julian Tree wrote:
> > Is there a way to find out if a key/field has being changed in the 
> > HopObject?
> 
> Not in Helma 1.x. I heard there were more events planned for 
> Helma NG, so maybe there's an onChange event planned for 
> HopObject properties, but I don't know.

In the case of helma-ng and using JSAdapter objects this would be
relatively straight forward, since every property change would be
"trapped" by the JSAdapter object's getter function, which could then
easily trigger a call back.  However this isn't implemented in the
current version of minibase in the helma-ng sandbox.

Of course this kind of call back should also be possible to add into
Helma 1.x as all HopObject property access would go through the Java
class helma.scripting.rhino.HopObject get() function for "simple js"
properties or jsFunction_get() in the case of HopObject reference
properties. But as you can see, this does involve changes to core Java
code. 

Maks.
Julian Tree | 19 Jun 01:40
Picon

clustering postgresql

hi,

Is there anyone using postgresql with helma? what is general consensus  
on mysql vs postgresql? We will be using HelmaSwarm.  Should we take  
the primary key sequence generation into consideration?   is there  
there a way to cluster postgresql through jdbc like show here with  
mysql?  Thanks

http://adele.helma.org/download/helma/documentation/documentation.html#GuideClusteringHelma

At the db-node-level the clustering depends of course on the database  
system in use. If you use MySQL, then you can implement a Master/Slave  
setup on the db-side, and have the DB-requests being distributed on  
these instances via the ReplicationDriver that is part of MySQL's  
Connector/J (version 3.1.11 or higher; see 
http://dev.mysql.com/doc/mysql/en/cj-replication-connection.html) 
.

### db.properties ###
antville.url      = jdbc:mysql://master,slave1,slave2,slave3/test
antville.driver   = com.mysql.jdbc.ReplicationDriver
antville.user     = user
antville.password = pass
antville.autoReconnect = true
antville.roundRobinLoadBalance = true

Julian
Axel Zuzek | 23 Jun 14:42
Picon

XML Blaster

Hi,
does anybody have some experience using Helma with XMLBlaster?
(http://www.xmlblaster.org/)

thx Axel

_______________________________________________
Helma-user mailing list
Helma-user <at> helma.org
http://helma.org/mailman/listinfo/helma-user
Melanie Reichel | 23 Jun 16:48
Picon

helma.Html.prototype.radioButton

Hi,
I had a problem with radio buttons. If there is a selectedValue given, the corresponding radio button will not be checked.
The following code snippet in the helma.Html.prototype.radioButton function seems to cause the problem (l. 367ff in Html.js from 2007-12-13):

    if (attr.selectedValue != null) {
        if (attr.value == attr.selectedValue)
            attr.checked = "checked";
        else
            delete attr.checked;
        delete attr.selectedValue;
    }

Because it works for checkboxes I think this lines of code should be used instead of in the radioButton function
to solve the problem:

    if (attr.selectedValue != null) {
        if (helma.Html.isSelected(param.value, param.selectedValue))
            attr.checked = "checked";
        else
            delete attr.checked;
        delete attr.selectedValue;
    }

Maybe it helps one of you, too.
Melanie

_______________________________________________
Helma-user mailing list
Helma-user <at> helma.org
http://helma.org/mailman/listinfo/helma-user

Gmane