667481 members! Sign up to stay informed.

Sponsored Links


Resources

Enterprise Java
Research Library

Get Java white papers, product information, case studies and webcasts

News News News Messages: 51 Messages: 51 Messages: 51 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer

Posted by: Joseph Ottinger on April 01, 2005 DIGG
Jean-Francois Arcand, Tomcat5 developer, talks about Tomcat5 development, internal architecture, and embedding it into other processes. Tomcat's migration to JMX is also discussed, as well as its impact on performance.

Mr. Arcand brings up Tomcat's valve architecture and how it affects Tomcat, and how developers might leverage it in their own projects.

View Jean-Francois Arcand on Tomcat5

Threaded replies

·  Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer by Joseph Ottinger on Fri Apr 01 12:15:45 EST 2005
  ·  Tomcat as an embedded container is a good news by Nader Aeinehchi on Fri Apr 01 14:25:22 EST 2005
  ·  two seconds is fast by Rolf Tollerud on Fri Apr 01 14:42:40 EST 2005
    ·  Two second startup by Joseph Ottinger on Sat Apr 02 06:23:27 EST 2005
      ·  Tomcat good candidate for devlopment with out EJB by Murugan Velchamy on Sat Apr 02 10:41:05 EST 2005
      ·  Two second startup by Juergen Hoeller on Sat Apr 02 11:10:41 EST 2005
        ·  Two second startup by Joseph Ottinger on Sun Apr 03 08:06:45 EDT 2005
          ·  Two second startup by Juergen Hoeller on Sun Apr 03 16:31:17 EDT 2005
            ·  Orion JSP by Joseph Ottinger on Sun Apr 03 21:39:22 EDT 2005
        ·  Two second startup by Fyodor Kupolov on Sun Apr 03 08:08:51 EDT 2005
          ·  Both Servlet 2.3 / JSP 1.2... by Yoav Shapira on Sun Apr 03 12:30:47 EDT 2005
          ·  Two second startup by peter lin on Mon Apr 04 09:25:56 EDT 2005
      ·  Two second startup by Nader Aeinehchi on Sat Apr 02 14:50:02 EST 2005
        ·  Orion by Joseph Ottinger on Sun Apr 03 08:04:53 EDT 2005
  ·  some benchmarks of static files by peter lin on Fri Apr 01 15:21:24 EST 2005
    ·  This benchmark seem to be constrained by network throughput by Alex Roytman on Fri Apr 01 15:39:49 EST 2005
      ·  yup, that would be accurate by peter lin on Fri Apr 01 19:31:42 EST 2005
    ·  re: some benchmarks of static files by Will Hartung on Fri Apr 01 19:04:41 EST 2005
  ·  Tomcat and Geronimo by Sean Sullivan on Fri Apr 01 21:42:31 EST 2005
    ·  JSP Loading by Lyndon Samson on Sat Apr 02 02:52:51 EST 2005
    ·  Tomcat and Geronimo by Nader Aeinehchi on Sat Apr 02 14:46:53 EST 2005
  ·  Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer by Irakli Nadareishvili on Sun Apr 03 04:56:19 EDT 2005
    ·  Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer by analog boy on Sun Apr 03 05:49:30 EDT 2005
    ·  Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer by Matthias Ernst on Sun Apr 03 06:23:44 EDT 2005
    ·  Port 80 by Yoav Shapira on Sun Apr 03 23:52:07 EDT 2005
      ·  Port 80 by Irakli Nadareishvili on Mon Apr 04 06:43:02 EDT 2005
        ·  Port 80 by peter lin on Mon Apr 04 08:17:30 EDT 2005
          ·  the Gordian knot solved once and for all by Rolf Tollerud on Mon Apr 04 09:01:26 EDT 2005
          ·  Port 80 by Irakli Nadareishvili on Mon Apr 04 09:47:55 EDT 2005
            ·  load balancer by peter lin on Mon Apr 04 09:57:18 EDT 2005
              ·  load balancer by Bill Burke on Mon Apr 04 10:35:25 EDT 2005
                ·  load balancer by Bill Burke on Mon Apr 04 10:44:11 EDT 2005
                  ·  affects high end by peter lin on Mon Apr 04 10:52:18 EDT 2005
            ·  Port 80 by analog boy on Mon Apr 04 11:57:30 EDT 2005
              ·  Port 80 by Cameron Purdy on Mon Apr 04 12:41:53 EDT 2005
                ·  Port 80 by analog boy on Tue Apr 05 06:55:44 EDT 2005
                  ·  Port 80 by Irakli Nadareishvili on Tue Apr 05 09:12:26 EDT 2005
                    ·  Port 80 by peter lin on Tue Apr 05 09:29:32 EDT 2005
                      ·  Tomcat 5.5.7 by Mark Nuttall on Tue Apr 05 10:48:33 EDT 2005
                        ·  the resource page by peter lin on Tue Apr 05 11:03:22 EDT 2005
                          ·  the resource page by Mark Nuttall on Tue Apr 05 12:10:07 EDT 2005
                      ·  Port 80 by Irakli Nadareishvili on Tue Apr 05 10:59:29 EDT 2005
                        ·  Port 80 by peter lin on Tue Apr 05 11:14:25 EDT 2005
                          ·  Port 80 by Irakli Nadareishvili on Tue Apr 05 12:23:29 EDT 2005
                            ·  Port 80 by peter lin on Tue Apr 05 12:50:40 EDT 2005
                              ·  Port 80 by Irakli Nadareishvili on Tue Apr 05 13:25:47 EDT 2005
                                ·  Wild guess by peter lin on Tue Apr 05 13:48:19 EDT 2005
                                  ·  Wild guess by Irakli Nadareishvili on Wed Apr 06 15:59:11 EDT 2005
                                    ·  Not like no one else has ever done that by peter lin on Wed Apr 06 16:21:35 EDT 2005
                    ·  Port 80 by analog boy on Wed Apr 06 06:48:29 EDT 2005
                      ·  isn't everyone on Fiber already? by peter lin on Wed Apr 06 08:29:25 EDT 2005
        ·  Suit yourself... by Yoav Shapira on Tue Apr 05 02:01:42 EDT 2005
  Message #164403 Post reply Post reply Post reply Go to top Go to top Go to top

Tomcat as an embedded container is a good news

Posted by: Nader Aeinehchi on April 01, 2005 in response to Message #164372
Congradulations to Tomcat team.

I am particularly happy that Tomcat can now be embedded. I do not know whether it was possible in previous versions.

I tried to integrate Jetty and OpenEJB in embedded mode, but enountered lots of problems, mainly due to JNDI and not to mention lack of documentation. I will try to see whether it would be easier with the combination of Tomcat and OpenEJB in "both" embedded mode. Has anyone experience with this?

  Message #164406 Post reply Post reply Post reply Go to top Go to top Go to top

two seconds is fast

Posted by: Rolf Tollerud on April 01, 2005 in response to Message #164372
The best thing with Tomcat5 is that it starts in two seconds on my machine!

That’s all I ask..

  Message #164418 Post reply Post reply Post reply Go to top Go to top Go to top

some benchmarks of static files

Posted by: peter lin on April 01, 2005 in response to Message #164372
For those curious about how Tomcat compares against HTTPD 1.3 and 2.0, here is a recent benchmark I ran. The raw charts are also available for those who want to see.

http://jakarta.apache.org/tomcat/articles/benchmark_summary.pdf
http://people.apache.org/~woolfel/tc_results.html

peter

  Message #164421 Post reply Post reply Post reply Go to top Go to top Go to top

This benchmark seem to be constrained by network throughput

Posted by: Alex Roytman on April 01, 2005 in response to Message #164418
May be I missed somethink but it looks like the results for large files reach 10,000 -12,000 Kbyte/s or 80-90Mbit/sec - pretty close to theoretical throughput of 100Mb/s network he wos using

  Message #164438 Post reply Post reply Post reply Go to top Go to top Go to top

re: some benchmarks of static files

Posted by: Will Hartung on April 01, 2005 in response to Message #164418
The HUGE sites have always been the exception and not the rule.

The modern Java servers are more than adequate for a vast majority of applications barring some specific application requirements.

For those that are running their applications off of a single box, the difference is essentially irrelevant. When the application starts slowing down to be noticable, you're not going to be happy with 10-15% improvement in performance, so you may as well get another box and deal with that problem rather than swapping in the other server, because the head room if gives you just isn't enough to matter, save for the most short term of solutions. And if you're that desperate, you're going to be needing a new box soon anyway.

Use the devil you know and master it.

  Message #164439 Post reply Post reply Post reply Go to top Go to top Go to top

yup, that would be accurate

Posted by: peter lin on April 01, 2005 in response to Message #164421
I need to run the tests on a system with gigabit ethernet or something with dual or quad ethernet. tomcat is pretty efficient now. I did compare it to jetty for static files and tomcat was faster. though honestly, both are plenty fast. More likely than not, the bandwidth to the internet will be clogged long before either Jetty or Tomcat die.

peter

  Message #164444 Post reply Post reply Post reply Go to top Go to top Go to top

Tomcat and Geronimo

Posted by: Sean Sullivan on April 01, 2005 in response to Message #164372
The Geronimo team has been working on embedding Tomcat into the Geronimo application server:

http://svn.apache.org/viewcvs.cgi/geronimo/trunk/modules/tomcat/

Jetty support is there too:

http://svn.apache.org/viewcvs.cgi/geronimo/trunk/modules/jetty/

  Message #164456 Post reply Post reply Post reply Go to top Go to top Go to top

JSP Loading

Posted by: Lyndon Samson on April 02, 2005 in response to Message #164444
It would be nice if you could load JSP's from something other than the filesystem...

  Message #164463 Post reply Post reply Post reply Go to top Go to top Go to top

Two second startup

Posted by: Joseph Ottinger on April 02, 2005 in response to Message #164406
Why not use something like Orion, which is a full J2EE container - and still manages to start in two seconds or so?

  Message #164478 Post reply Post reply Post reply Go to top Go to top Go to top

Tomcat good candidate for devlopment with out EJB

Posted by: Murugan Velchamy on April 02, 2005 in response to Message #164463
I worked in JBoss and other commercial application servers. It takes more time to start and load the application.

Tomcat is really faster in startup even if you have many web-apps in one box.

I am using Eclipse with tomcat plugin for devlopment. It saves atleat one or two minutes in each development cycle.

Everything is open source here.

  Message #164481 Post reply Post reply Post reply Go to top Go to top Go to top

Two second startup

Posted by: Juergen Hoeller on April 02, 2005 in response to Message #164463
Why not use something like Orion, which is a full J2EE container - and still manages to start in two seconds or so?

Well, as much as I liked Orion in former days, it isn't a really viable choice anymore. It hasn't moved forward for (literally) years. How compelling is a J2EE 1.3 server these days, in particular one that had significant compatibility issues until quite recently?

Tomcat has grown into a viable production platform over the past few years, and it is still compelling as development platform too. If all you need is a decent, up-to-date J2EE web container, Tomcat is hard to beat these days. In particular with a decent application framework on top of it, caring for all the rest :-)

BTW, don't forget Resin, which has proven to be a very nice and up-to-date J2EE web application server for years, and still is a compelling choice for both development and production. It starts up very fast, and is generally hard to beat in terms of performance.

Juergen

  Message #164505 Post reply Post reply Post reply Go to top Go to top Go to top

Tomcat and Geronimo

Posted by: Nader Aeinehchi on April 02, 2005 in response to Message #164444
The Geronimo team has been working on embedding Tomcat into the Geronimo application server:http://svn.apache.org/viewcvs.cgi/geronimo/trunk/modules/tomcat/Jetty support is there too:http://svn.apache.org/viewcvs.cgi/geronimo/trunk/modules/jetty/

Correct me if I am wrong, but in Geronimo, the communication between various containers goes through some sort of proxy.
However, I would very much like to directly call each server.
Have I misunderstood something here?

  Message #164507 Post reply Post reply Post reply Go to top Go to top Go to top

Two second startup

Posted by: Nader Aeinehchi on April 02, 2005 in response to Message #164463
Why not use something like Orion, which is a full J2EE container - and still manages to start in two seconds or so?

To my knowledgment, there are a couple of issues with Orion. Firstly, Orion does not expose a ready-to-use API. Secondly, I am not sure it has been designed to be embedded. I asked the same question in Orion discussion forum, but never got an answer.

  Message #164532 Post reply Post reply Post reply Go to top Go to top Go to top

Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer

Posted by: Irakli Nadareishvili on April 03, 2005 in response to Message #164372
I have not used "embedded" feature of Tomcat but the impression, from the interview, is that this just means there is an interface which allows you to control Tomcat from your application.

"Embedded" in the case of Jetty means much more - embedded Jetty is just one JAR and you can use it as one Jar, it is very small, in size, so you can really embed.

So, unless I misunderstood something, for the embedding (e.g. for testing purposes, using as a Stub) Jetty, still, seems much more convenient.

And, for me personally, it was alerting to hear that Jean-Francois has no idea about the embedding features in Jetty. That may not mean much but is odd. People who have tendency towards the re-invention of the wheel, do not usually invent good wheels. If you begin work on embedding feature and there is a product that has that figured-out, why would not you go and see how they did it? Maybe you won't do it the same way (most probably not) but at least - you should look into it, should not you?

Also:

I was really surprised by one comment from the interview. The question was if people should use Apache in front of Tomcat or run it as-is. Jean-Francois made it sound like it is just a matter of performance and almost suggested that Tomcat without Apache is just as good.

NOT TRUE.

Yes, Tomcat has gone long way in performance but that just proves the point that: putting Apache in front of Tomcat is not a matter of performance (performance may be the same) but _security_.

To make Tomcat listen to port 80 you will need to launch it under root user, which means your application code will also run under root. That's _evil_. User applications should never run with root privileges.

When you put Apache in front of Tomcat (or any other servlet engine/J2EE container, for that matter) your application can run under an non-privileged user. That's much more secure.

  Message #164536 Post reply Post reply Post reply Go to top Go to top Go to top

Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer

Posted by: analog boy on April 03, 2005 in response to Message #164532
Thats partly true, but you could just use iptables to redirect 80 -> 8080 which does sound like a hack, but works quite well in practice.

A more compelling reason to use apache (or squid as a reverse proxy) is that it can buffer slow connections, because of the single threaded nature of requests in tomcat, slow connections can leave threads running for longer than normal. This could cause the server to run out of available threads for subsequent requests. By putting apache or squid in front of tomcat, tomcat can perform at full speed and the other daemon will take care of the buffer.

I've written more about using squid here.

Peter: I *will* get that benchmarking done and send the results over :$

  Message #164538 Post reply Post reply Post reply Go to top Go to top Go to top

Tech talk: Jean-Francois Arcand, Tomcat5 and Sun ONE developer

Posted by: Matthias Ernst on April 03, 2005 in response to Message #164532
I have not used "embedded" feature of Tomcat but the impression, from the interview, is that this just means there is an interface which allows you to control Tomcat from your application."Embedded" in the case of Jetty means much more - embedded Jetty is just one JAR and you can use it as one Jar, it is very small, in size, so you can really embed.

I second that. Tomcat indeed has a nice API for embedding, yet you need a lot of jars and there's a lot of classloader trickery going on that seems pretty brittle to me. In our case, the presence of xercesImpl.jar on the application class path would cause some commons-modeler to break. I don't want that component anyway ...

javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
        at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:99)
        at org.apache.commons.modeler.util.DomUtil.readXml(DomUtil.java:284)
...
        at org.apache.catalina.startup.Embedded.start(Embedded.java:846)

Using Jetty was no problem at all.
To make Tomcat listen to port 80 you will need to launch it under root user

Well, privileged ports for root only are so outdated. A modern OS as Solaris 10 allows you to grant that privilege to "normal" users:

# usermod -K defaultpriv=basic,net_privaddr bob

Now bob's Tomcat will be able to bind to port 80.

Matthias

  Message #164540 Post reply Post reply Post reply Go to top Go to top Go to top

Orion

Posted by: Joseph Ottinger on April 03, 2005 in response to Message #164507
What does "expose a ready-to-use API" mean?

I haven't seen anything on embedding it, true.

As far as J2EE 1.3, well... I suppose it depends on what you need. Plus, 1.4 is on its way. :)

  Message #164541 Post reply Post reply Post reply Go to top Go to top Go to top

Two second startup

Posted by: Joseph Ottinger on April 03, 2005 in response to Message #164481
Why not use something like Orion, which is a full J2EE container - and still manages to start in two seconds or so?
Well, as much as I liked Orion in former days, it isn't a really viable choice anymore. It hasn't moved forward for (literally) years. How compelling is a J2EE 1.3 server these days, in particular one that had significant compatibility issues until quite recently?

Which significant compatibility issues?

Besides, Orion *has* moved forward... just not as fast as I'd have liked.

As far as 1.3 being compelling... well, I'd like to see more recent versions of the specs, too, but then again, I've had no problems with J2EE 1.3 either. Maybe it's just me.

  Message #164542 Post reply Post reply Post reply Go to top Go to top Go to top

Two second startup

Posted by: Fyodor Kupolov on April 03, 2005 in response to Message #164481
I know at least two servlet 2.3 compliant engines/web servers with startup time less than one second: bj Http Web Server and BEJY Java server.
The authors claim these servers beat Tomcat (and several other web servers) in performance, but these servers provide not so many extra features.
I would not recommend these tiny servers in production (cause I've no such experience), but I've found them useful in development.

Regards,
Theodore Kupolov

  Message #164547 Post reply Post reply Post reply Go to top Go to top Go to top

Both Servlet 2.3 / JSP 1.2...

Posted by: Yoav Shapira on April 03, 2005 in response to Message #164542
... which makes them suitable for the people who want J2EE 1.3, but if you actually want up to date software, you choose something else ;)

  Message #164555 Post reply Post reply Post reply Go to top Go to top Go to top

Two second startup

Posted by: Juergen Hoeller on April 03, 2005 in response to Message #164541
Which significant compatibility issues? Besides, Orion *has* moved forward... just not as fast as I'd have liked. As far as 1.3 being compelling... well, I'd like to see more recent versions of the specs, too, but then again, I've had no problems with J2EE 1.3 either. Maybe it's just me.

Regarding compatibility issues: have a look at the following issue - a severe problem in the JSP container, making the affected Orion versions effectively unusable for custom tags that export nested scripting variables.

http://bugs.orionserver.com/issue/view.jsp?id=1081

Look at how long it took them to fix this basic JSP compliance issue: reported on July 5th 2003, fixed on March 28th 2004 (!) This is not acceptable for such severe issues.

I haven't had problems with J2EE 1.3 either. Well, JSP 2.0 of course has the built-in EL scripting and tag files as major new features. But in general, I wouldn't mind working with a J2EE 1.3 server. My main issue with Orion is the lack of responsiveness regarding J2EE 1.3 compliance issues.

That said, I still appreciate Orion and do not intend to discredit it in general. But unfortunately, the 2001 fork of their codebase that became Oracle OC4J is significantly more compliant and more up-to-date in the meantime. A pity, but that's how things seem to have turned out to me.

Juergen

  Message #164558 Post reply Post reply Post reply Go to top Go to top Go to top

Orion JSP

Posted by: Joseph Ottinger on April 03, 2005 in response to Message #164555
Hmm, something's really funky there. I've used Orion for a long time, and I've exported scripting variables successfully; something's going on somewhere for your case, and I have no idea where it would be.

  Message #164566 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Yoav Shapira on April 03, 2005 in response to Message #164532
Among other inaccuracies in your post, this one sticks out:

>To make Tomcat listen to port 80 you will need to launch it >under root user, which means your application code will also >run under root. That's _evil_. User applications should never >run with root privileges.

Not true. Tomcat comes with a service utility which allows you to run it on port 80 not as the root user. It uses the Jakarta Commons Daemon component for this, as documented at http://jakarta.apache.org/tomcat/tomcat-5.5-doc/setup.html.

Also, Jean-Francois mentioned several options for embedding Tomcat. There's the interface you mentioned, but also JMX and others. It's flexible and solid, including Commons-Modeler.

  Message #164588 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Irakli Nadareishvili on April 04, 2005 in response to Message #164566
Yoav,

This is exactly from the documentation:
[blockquote]Tomcat can be run as a daemon using the jsvc tool from the commons-daemon project. Source tarballs for jsvc are included with the Tomcat binaries, and need to be compiled. Building jsvc requires a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.[/blockquote]

I do not see much different between bridging using C-code jsvc and Apache through an AJP connector. None of them look to me like "pure-Tomcat". I would rather use Apache, though, because I trust it more, with all due respect.

I much rather accept the "analog boy"'s reply that one can do port-mapping.

Generally, I do not understand why Tomcat team wastes time on reimplementing, in Java, functionality that Apache has been providing for years perfectly. AJP connectors are quite solid and that seems sufficient to me.

Regarding the embedding: apparently, we have different views on what convenient "embedding" means: simple and lighweight. Tomcat embedding is neither, IMHO. I think, Mathias made a very true comment on that.

cheers

  Message #164602 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: peter lin on April 04, 2005 in response to Message #164588
Yoav, This is exactly from the documentation:[blockquote]Tomcat can be run as a daemon using the jsvc tool from the commons-daemon project. Source tarballs for jsvc are included with the Tomcat binaries, and need to be compiled. Building jsvc requires a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.[/blockquote]I do not see much different between bridging using C-code jsvc and Apache through an AJP connector. None of them look to me like "pure-Tomcat". I would rather use Apache, though, because I trust it more, with all due respect.I much rather accept the "analog boy"'s reply that one can do port-mapping.Generally, I do not understand why Tomcat team wastes time on reimplementing, in Java, functionality that Apache has been providing for years perfectly. AJP connectors are quite solid and that seems sufficient to me.Regarding the embedding: apparently, we have different views on what convenient "embedding" means: simple and lighweight. Tomcat embedding is neither, IMHO. I think, Mathias made a very true comment on that.cheers

Apache httpd and tomcat are both rock solid servers, but I don't understand the Apache front approach to be blunt. On heavy duty sites, we setup Cisco to forward port 80 requests to 8080. That is far better in my bias opinion because it generally performs better. If you're servers are handling 10million+ page views a day, do you really want to spend all that extra time forwarding from Apache to tomcat using AJP? Doing it at the load balancer with routing filters is definitely more efficient in terms of performance. my bias .2 cents.

peter

  Message #164614 Post reply Post reply Post reply Go to top Go to top Go to top

the Gordian knot solved once and for all

Posted by: Rolf Tollerud on April 04, 2005 in response to Message #164602
Peter. Sometimes I love you!

  Message #164619 Post reply Post reply Post reply Go to top Go to top Go to top

Two second startup

Posted by: peter lin on April 04, 2005 in response to Message #164542
I know at least two servlet 2.3 compliant engines/web servers with startup time less than one second: bj Http Web Server and BEJY Java server.The authors claim these servers beat Tomcat (and several other web servers) in performance, but these servers provide not so many extra features.I would not recommend these tiny servers in production (cause I've no such experience), but I've found them useful in development.Regards,Theodore Kupolov

I seriously doubt either of those two webservers can beat Tomcat. If you look at the results in the spreadsheet I posted, tomcat is already hitting the network IO bottleneck. For static files larger than 1K, tomcat is even with Apache 1.3 and 2.0. Both of them saturate the network IO.

Unfortunately, I don't have gigabit ethernet, so I can't say conclusively that tomcat or apache don't have performance bottlenecks. But here's the thing, how many ISP give you a full 100mbit of bandwidth? Keeping in mind a 100mbit link to their router does not constitute 100mbit of bandwidth. Even when I had servers co-located at Level3's facility, we hit a network bottleneck around 10mbit. Back then, the San Diego facility had an OC128 or something close to that.

The only people capable of handing sustained 100mbit of bandwidth are carriers or gigantic sites like yahoo, or google. Even then, they have thousands of servers co-located across several sites for redundancy. The biggest factor in performance isn't the webserver, but people still worry about it. oh well, that's life.

peter

  Message #164628 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Irakli Nadareishvili on April 04, 2005 in response to Message #164602
For numerous reasons, often times, you may want to set up several application servers (e.g. Tomcat) on one physical machine.

I know how to do it using Apache+AJP connector and it will provide me load-balancing, failover, sticky sessions, too. It's quite easy, actually.

I would appreciate, if somebody could educate me, if and how that can be achieved using port mapping?

thank you

  Message #164630 Post reply Post reply Post reply Go to top Go to top Go to top

load balancer

Posted by: peter lin on April 04, 2005 in response to Message #164628
For numerous reasons, often times, you may want to set up several application servers (e.g. Tomcat) on one physical machine.I know how to do it using Apache+AJP connector and it will provide me load-balancing, failover, sticky sessions, too. It's quite easy, actually.I would appreciate, if somebody could educate me, if and how that can be achieved using port mapping? thank you

if you're using something like localDirector or some other hardware load balancer, it provides several ways to provide sticky sessions and port forwarding. Generally speaking, Cisco's local director can redirect using url pattern, port or hostname. For example, you can setup http://cluster.mydomain.com/ to load balance across all tomcat instances behind the load balancer. of course, if you can't afford a hardware load balancer this approach won't work for you. I won't bother copy/pasting product info from Cisco. Just go to Cisco's page for localDirector and see for yourself.

peter

  Message #164637 Post reply Post reply Post reply Go to top Go to top Go to top

load balancer

Posted by: Bill Burke on April 04, 2005 in response to Message #164630
For numerous reasons, often times, you may want to set up several application servers (e.g. Tomcat) on one physical machine.I know how to do it using Apache+AJP connector and it will provide me load-balancing, failover, sticky sessions, too. It's quite easy, actually.I would appreciate, if somebody could educate me, if and how that can be achieved using port mapping? thank you
if you're using something like localDirector or some other hardware load balancer, it provides several ways to provide sticky sessions and port forwarding. Generally speaking, Cisco's local director can redirect using url pattern, port or hostname. For example, you can setup http://cluster.mydomain.com/ to load balance across all tomcat instances behind the load balancer. of course, if you can't afford a hardware load balancer this approach won't work for you. I won't bother copy/pasting product info from Cisco. Just go to Cisco's page for localDirector and see for yourself.peter

JBoss Inc., through Remy Maucherat and Mladen Turk, is funding a lot of JNDI work on Tomcat to beef up performance so that an Apache HTTPD front does not need to be there.

Bill

  Message #164640 Post reply Post reply Post reply Go to top Go to top Go to top

load balancer

Posted by: Bill Burke on April 04, 2005 in response to Message #164637
For numerous reasons, often times, you may want to set up several application servers (e.g. Tomcat) on one physical machine.I know how to do it using Apache+AJP connector and it will provide me load-balancing, failover, sticky sessions, too. It's quite easy, actually.I would appreciate, if somebody could educate me, if and how that can be achieved using port mapping? thank you
if you're using something like localDirector or some other hardware load balancer, it provides several ways to provide sticky sessions and port forwarding. Generally speaking, Cisco's local director can redirect using url pattern, port or hostname. For example, you can setup http://cluster.mydomain.com/ to load balance across all tomcat instances behind the load balancer. of course, if you can't afford a hardware load balancer this approach won't work for you. I won't bother copy/pasting product info from Cisco. Just go to Cisco's page for localDirector and see for yourself.peter
JBoss Inc., through Remy Maucherat and Mladen Turk, is funding a lot of JNDI work on Tomcat to beef up performance so that an Apache HTTPD front does not need to be there. Bill

Sorry, that should say "is funding a lot of JNI" work. In other words, Remy/Mladen are adding a lot of native hooks to get rid of the advantage Apache HTTPD has.

  Message #164643 Post reply Post reply Post reply Go to top Go to top Go to top

affects high end

Posted by: peter lin on April 04, 2005 in response to Message #164640
Sorry, that should say "is funding a lot of JNI" work. In other words, Remy/Mladen are adding a lot of native hooks to get rid of the advantage Apache HTTPD has.

In my bias opinion, most people aren't going to benefit from the work :) I've been keeping an eye on the work Mladen's been doing. High end applications that have to support a large number of concurrent requests or higher throughput will benefit. The typical webapp isn't really going to get much considering all the improvements in TC5.

It's still great to have those features using apache APR + JNI. Hopefully when that work is done, I can run a new set of benchmarks with high concurrency to see how it really compares.

peter

  Message #164659 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: analog boy on April 04, 2005 in response to Message #164628
you couldn't do that with port mapping, you could only forward from one port to another. You could use squid to proxy the connections which could forward to different ports depending on the url requested, but you'd be better off using apache in your case.

in a high-volume environment you wouldn't use multiple servers anyway, you'd have dedicated machines. if you aren't dealing with huge volumes then don't worry about your apache config.

  Message #164666 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Cameron Purdy on April 04, 2005 in response to Message #164659
in a high-volume environment you wouldn't use multiple servers anyway, you'd have dedicated machines.

I don't understand this comment. Please explain?

(I assume by high volume, you're talking at least 10 million page views a day.)

Peace,

Cameron Purdy
Tangosol, Inc.
Coherence: Cluster your POJOs!

  Message #164719 Post reply Post reply Post reply Go to top Go to top Go to top

Suit yourself...

Posted by: Yoav Shapira on April 05, 2005 in response to Message #164588
Yoav, This is exactly from the documentation:[blockquote]Tomcat can be run as a daemon using the jsvc tool from the commons-daemon project. Source tarballs for jsvc are included with the Tomcat binaries, and need to be compiled. Building jsvc requires a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.[/blockquote]

I do not see much different between bridging using C-code jsvc and Apache through an AJP connector. None of them look to me like "pure-Tomcat". I would rather use Apache, though, because I trust it more, with all due respect.

I much rather accept the "analog boy"'s reply that one can do port-mapping.

Thanks for the doc quote, I'm fairly familiar with it ;) Whether you see much "different" or not is up to you. There are enough people using the feature that it's certainly not a waste of time from our perspective. You don't like it, don't use it. But don't assume a lot of people share your point of view ;)
Generally, I do not understand why Tomcat team wastes time on reimplementing, in Java, functionality that Apache has been providing for years perfectly. AJP connectors are quite solid and that seems sufficient to me.

There's a significant and increasing trends towards usage of Tomcat standalone in heavily trafficked sites. Again, as someone who monitors the Tomcat user list closely, I know we're far from wasting time. These features highly useful and highly in demand. But if AJP works for you, great.
Regarding the embedding: apparently, we have different views on what convenient "embedding" means: simple and lighweight. Tomcat embedding is neither, IMHO. I think, Mathias made a very true comment on that.cheers

Different views indeed ;)

As a reminder, if you have a better way to embed Tomcat, or for that matter any other opinions, suggestions, or ideas, we would love to hear them at tomcat-dev@jakarta.apache.org.

  Message #164742 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: analog boy on April 05, 2005 in response to Message #164666
soz, what i meant it that you are less likely to be running a variety of applications on machines that are having to cope with a lot of use, you would probably have an application server installation per physical machine.

if the server isn't under large load, then just do the simplest thing to make it work because you don't have to obsess yourself with through-put. in the case of running multiple application servers on a single host, apache and mod_jk is probably an easy way forward for most admins.

  Message #164759 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Irakli Nadareishvili on April 05, 2005 in response to Message #164742
analog boy,

Imagine such scenario: You have dual (or quad) processor servers, a cluster of them. Each machine has 4 Gigs of RAM. However, they are 32bit CPU servers. As you know, 32bit JVM has the limit on RAM it can use ~1.6GB.

Let's assume, that is fine because your average in-process memory consumption (including cache) is under 1GB. Now, What you can do is - you can install 4 Tomcats (or whatever) and utilize your RAM better.

Now, why would one not just buy 1 GB RAM (ignoring RAM needed for OS) per machine, instead? Why would one buy more RAM than it can use?

The thing is, whether we like it or not, the stability of an OS (e.g. Linux) is much higher than that of an application server with our app deployed into it. So, there is much more probability that Tomcat will go down than the machine will go down. So, deploying several Tomcats on one machine your are cost-effectively increasing your stability by statistically increasing fail-over support.

More App Servers in the cluster - more fail-over, hence more secure your application as a whole, right? Now, what is cheaper - to buy 20 machines, each with 2 GB RAM or to buy 10 of them with 4GB RAM and deploy two instances of Tomcat in each of them?

If you have 20 Tomcats in cluster you are more secure than when you have 10 of them because even if 10 of them will go down (site is down in the latter case) you will have other 10 to stay up.

Makes sense?

Also, I really do not know to start a flame here and Tomcat guys throwing some figures and numbers of their benchmarks but here's what was the the empirical experience we had: our JBoss (with embedded Tomcat5) would crush if the number of concurrent connections to it would exceed some number near 200. I do not know whether it is a Tomcat problem, JBoss problem (why would it be? JBoss is not processing requests) or the problem of integration, but that's a fact from our own, sole experience.

In a case like this, having several (N number) Tomcats behind one Apache really helps performance because you will be able to serve N times more users.

All in all, IMHO even in high-load environments you may need to have several app servers on one physical machine for the reasons of stability and performance.

  Message #164762 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: peter lin on April 05, 2005 in response to Message #164759
analog boy,Imagine such scenario: You have dual (or quad) processor servers, a cluster of them. Each machine has 4 Gigs of RAM. However, they are 32bit CPU servers. As you know, 32bit JVM has the limit on RAM it can use ~1.6GB.Let's assume, that is fine because your average in-process memory consumption (including cache) is under 1GB. Now, What you can do is - you can install 4 Tomcats (or whatever) and utilize your RAM better.Now, why would one not just buy 1 GB RAM (ignoring RAM needed for OS) per machine, instead? Why would one buy more RAM than it can use?The thing is, whether we like it or not, the stability of an OS (e.g. Linux) is much higher than that of an application server with our app deployed into it. So, there is much more probability that Tomcat will go down than the machine will go down. So, deploying several Tomcats on one machine your are cost-effectively increasing your stability by statistically increasing fail-over support.More App Servers in the cluster - more fail-over, hence more secure your application as a whole, right? Now, what is cheaper - to buy 20 machines, each with 2 GB RAM or to buy 10 of them with 4GB RAM and deploy two instances of Tomcat in each of them?If you have 20 Tomcats in cluster you are more secure than when you have 10 of them because even if 10 of them will go down (site is down in the latter case) you will have other 10 to stay up.Makes sense?Also, I really do not know to start a flame here and Tomcat guys throwing some figures and numbers of their benchmarks but here's what was the the empirical experience we had: our JBoss (with embedded Tomcat5) would crush if the number of concurrent connections to it would exceed some number near 200. I do not know whether it is a Tomcat problem, JBoss problem (why would it be? JBoss is not processing requests) or the problem of integration, but that's a fact from our own, sole experience.In a case like this, having several (N number) Tomcats behind one Apache really helps performance because you will be able to serve N times more users.All in all, IMHO even in high-load environments you may need to have several app servers on one physical machine for the reasons of stability and performance.

I don't know which version of jboss + tomcat you were using, but I've looked at Tomcat thoroughly using benchmarks and optimizeIt. 200 concurrent connections for static files are trivial for tomcat5.5.x code base.

keep in mind the benchmark I performed measured response time and resource utilization under varying load. Notice that I ran over 200 benchmarks to establish how tomcat performs by varying file size and concurrent threads. This wasn't just 1 benchmark for each file size. All the data is there for you to see. The test plans I wrote for the benchmarks are also available http://cvs.apache.org/~woolfel/testplans.zip.

This series of tests provide a foundation of general performance for static files. I seriously doubt Tomcat is at fault, since it is able to saturate the network IO quite easily while keeping resource usage under 20%. If the EJB is slow, the problem isn't tomcat. I would like to point out Tomcat performed the same in both client and server mode. Coyote connector and the mapper are all very efficient now. If you're having performance issues, then I would suggest reporting it to Jboss or tomcat-user.

When ever I come across performance issues, I will at minimum deploy my application on another container and quantify the difference. If I can reliably reproduce the behavior, I write down the exact sequence of events and then report it. In 95% of the cases, the performance issues were in my own application and not tomcat. I'm curious what kind of behavior you were seeing?

peter lin

  Message #164776 Post reply Post reply Post reply Go to top Go to top Go to top

Tomcat 5.5.7

Posted by: Mark Nuttall on April 05, 2005 in response to Message #164762
Anyone have a good Tomcat 5.5.7 book to suggest? I went to the library, errr, bookstores last night and I only found one currently on the shelves. I tried using the online Tomcat docs but ... .

  Message #164780 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Irakli Nadareishvili on April 05, 2005 in response to Message #164762
Peter,

thank you for the information.

The behavior we were seeing was that when number of concurrent requests to JBoss 3.2.5 with integrated Tomcat 5, would reach some number near 200 JBoss would crash irrecoverably.

As I said, I do not know if it was a problem of Tomcat, per se, JBoss, of their integration. Yes, there's always a chance that the actual application might have caused problems but it is hard, for me, to understand how could it have had such problems that it would crash the container. IMHO, container should be resistant to that.

I am not trying to bash Tomcat, we use Tomcat (under JBoss) in our production servers and that's, probably, the best proof that I very much favor Tomcat.

What I am trying to say is that, in my limited experience, it may be quite beneficial to be able to run several app servers on one physical server and I was very glad that Apache + AJP was able to support that so easily and smoothly.

Basically, I am trying to defend Apache as frontend, not - give hard time to Tomcat :)

You are right, one solution would have been to compare Tomcat with other servers but our aim was not benchmarking and we did not have much desire to get off JBoss+Tomcat, so what we ended up doing was - increased the number of Tomcat installations + fine-tuned our application performance so that requests would stay for less time and less concurrent requests would accumulate.

  Message #164782 Post reply Post reply Post reply Go to top Go to top Go to top

the resource page

Posted by: peter lin on April 05, 2005 in response to Message #164776
Anyone have a good Tomcat 5.5.7 book to suggest? I went to the library, errr, bookstores last night and I only found one currently on the shelves. I tried using the online Tomcat docs but ... .

I assume you've already checked the resource page? http://jakarta.apache.org/tomcat/resources.html. I don't know of a good book off hand, since I prefer to dig in to tomcat's code. This question is asked quite a bit on tomcat-user, so you should be able to find some recommendations in the archive? I know it's a bit of a pain and there really should be more docs, but that's always going to be true.

peter

  Message #164783 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: peter lin on April 05, 2005 in response to Message #164780
Peter,thank you for the information.The behavior we were seeing was that when number of concurrent requests to JBoss 3.2.5 with integrated Tomcat 5, would reach some number near 200 JBoss would crash irrecoverably. As I said, I do not know if it was a problem of Tomcat, per se, JBoss, of their integration. Yes, there's always a chance that the actual application might have caused problems but it is hard, for me, to understand how could it have had such problems that it would crash the container. IMHO, container should be resistant to that.I am not trying to bash Tomcat, we use Tomcat (under JBoss) in our production servers and that's, probably, the best proof that I very much favor Tomcat.What I am trying to say is that, in my limited experience, it may be quite beneficial to be able to run several app servers on one physical server and I was very glad that Apache + AJP was able to support that so easily and smoothly.Basically, I am trying to defend Apache as frontend, not - give hard time to Tomcat :)You are right, one solution would have been to compare Tomcat with other servers but our aim was not benchmarking and we did not have much desire to get off JBoss+Tomcat, so what we ended up doing was - increased the number of Tomcat installations + fine-tuned our application performance so that requests would stay for less time and less concurrent requests would accumulate.

I totally understand. It's not always possible to go the extra step of running the same app in another container. My interest is finding out the limitations of a given application, so whenever an application breaks I get very curious. I don't know about others, but I generally try to break servers and applications to see how it breaks. Seeing how something breaks is very revealing and provides clues into potential limitations and/or flaws. I feel much more comfortable when I know the devil.

You may not have permission to disclose more information, but were the response times over 30 seconds or was the app using lots of XML? In my experience, the types of things that can crash tomcat are OutOfMemoryException or JDBC drivers.

peter

  Message #164798 Post reply Post reply Post reply Go to top Go to top Go to top

the resource page

Posted by: Mark Nuttall on April 05, 2005 in response to Message #164782
Anyone have a good Tomcat 5.5.7 book to suggest? I went to the library, errr, bookstores last night and I only found one currently on the shelves. I tried using the online Tomcat docs but ... .
I assume you've already checked the resource page? http://jakarta.apache.org/tomcat/resources.html. I don't know of a good book off hand, since I prefer to dig in to tomcat's code. This question is asked quite a bit on tomcat-user, so you should be able to find some recommendations in the archive? I know it's a bit of a pain and there really should be more docs, but that's always going to be true.peter

Sorry Peter, my post was more a follow up to your post and not so directly to you (but thanks for your response).
I was looking for someone's recommendation on a book (something that was helpful to them). The resources on the tomcat are way out of date (I can use Amazon to find book titles). Yes, I can and do find answers on the website/forums - but having it in one place in a not-disjointed fashion is sometimes helpful. I'll dig if/when I have to. After a day of [click link] what?, [click link] what?, [click link] what? I decided to spend a few bucks.

  Message #164802 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Irakli Nadareishvili on April 05, 2005 in response to Message #164783
My interest is finding out the limitations of a given application, so whenever an application breaks I get very curious. I don't know about others, but I generally try to break servers and applications to see how it breaks. Seeing how something breaks is very revealing and provides clues into potential limitations and/or flaws.

+1
So very true.
In my experience, the types of things that can crash tomcat are OutOfMemoryException or JDBC drivers. peter
Yes, DB queries were not too optimized. I think (hope LOL) that it was not as bad as 30 seconds but there was space for optimization. That was the first thing we did right off.

I would not expect JDBC driver could crash the whole server, tho :-( If you are saying that's something known, then, probably, that was the problem. I just thought it was much more probable that number of concurrent connections would crash the server than JDBC. However, as the user load increases the load on the JDBC part increases, too so you are, probably, right.

  Message #164808 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: peter lin on April 05, 2005 in response to Message #164802
My interest is finding out the limitations of a given application, so whenever an application breaks I get very curious. I don't know about others, but I generally try to break servers and applications to see how it breaks. Seeing how something breaks is very revealing and provides clues into potential limitations and/or flaws.
+1So very true.
In my experience, the types of things that can crash tomcat are OutOfMemoryException or JDBC drivers. peter
Yes, DB queries were not too optimized. I think (hope LOL) that it was not as bad as 30 seconds but there was space for optimization. That was the first thing we did right off.I would not expect JDBC driver could crash the whole server, tho :-( If you are saying that's something known, then, probably, that was the problem. I just thought it was much more probable that number of concurrent connections would crash the server than JDBC. However, as the user load increases the load on the JDBC part increases, too so you are, probably, right.

In my experience, the only time I've seen a JVM do a core dump is using native db drivers like Oracle or DB2. I've seen Tomcat lock-up under sudden spike in concurrent requests with Tomcat4, but with tomcat5.5.x it should just deny connections. These are relatively simple scenarios without database calls. Other common scenarios that can cause slowness include jsp tags or using large XML documents.

back in 2002 Remy and I ran over 1K benchmarks combined on tomcat 4.0 and 4.1. those results are also posted on tomcat's resource page. By any chance are you using Sql Server?

peter lin

  Message #164817 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: Irakli Nadareishvili on April 05, 2005 in response to Message #164808
We are using Oracle 9i

  Message #164821 Post reply Post reply Post reply Go to top Go to top Go to top

Wild guess

Posted by: peter lin on April 05, 2005 in response to Message #164817
From past experience with Oracle8i, sounds like the semiphore settings need to be modified. If you did the default installation of Oracle8 or 9, the semiphore settings assume low concurrency. 200 concurrent queries isn't high, but it's definitely not low either. The semiphore settings could easily be the cause of the slow down. just a wild guess, since I'm assuming you've already looked into that.

peter

  Message #164947 Post reply Post reply Post reply Go to top Go to top Go to top

Port 80

Posted by: analog boy on April 06, 2005 in response to Message #164759
i think a lot here depends on your installation, i'm working for an on ultrasparc IIIs so the ram limitation doesn't mean much. also depends on whether you see the cost of the project being the up-front cost of the hardware or the maintenance cost (it can be cheaper to have more low spec'd boxes than a few high spec'd ones).

ultimately it depends on your installation, for development i don't use apache, on live we do for php and cgi support, but on some servers we use squid because we only want to improve the tomcat performance without making the install any more complex.

i think it was a bad question to ask, there is no single answer to the problem because it is *absolutely* specific to your platform and your intended users. it is important to see beyond the FUD tho, tomcat can suffice as a webserver for in many instances, but personally, i don't think you should use it unless you know that all your clients will have fast access (DSL externally or on an intranet).

  Message #164964 Post reply Post reply Post reply Go to top Go to top Go to top

isn't everyone on Fiber already?

Posted by: peter lin on April 06, 2005 in response to Message #164947
I really wish I had the resources to test Tomcat with 3-4 dozen dial up connections to measure the real impact of slow connections. It's just me, but I prefer to see real data showing a slow down. Hopefully the work on native sockets will help Tomcat in that area.

peter

  Message #165061 Post reply Post reply Post reply Go to top Go to top Go to top

Wild guess

Posted by: Irakli Nadareishvili on April 06, 2005 in response to Message #164821
Peter,

thanks.

According to our DBA, the settings were fine-tuned but there were some real bad SQL queries and, probably, JDBC was misbehaving.

  Message #165065 Post reply Post reply Post reply Go to top Go to top Go to top

Not like no one else has ever done that

Posted by: peter lin on April 06, 2005 in response to Message #165061
Although I wish that's never happen to me, I'd have to admit I've done that. Why is probably why I get very annoyed when I'm told by the product manager to "skip stress testing, because it's not important" :)

peter

New content on TheServerSide.comNew content on TheServerSide.comNew content on TheServerSide.com

Dependency Injection in Java EE 6 - Part 1

Reza Rahman explores the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6. (November 2, Article)

SAML: It's Not just for Web services

SAML is an XML-based standard for exchanging authentication and authorization data between security domains. The single most important problem that SAML was created to solve is the Web browser Single Sign-On problem. Many organizations are debating whether to stay with version 1.1 or move to 2.0. This article makes observations about both options. (September 28, Article)

Programming is Also Teaching Your Team

Joe Ottinger takes a look at how people learn, and applies it to the practice of programming. He notes that understanding how people learn is an essential part of working in a programming team. (September 22, Article)

Can Java EE Deliver The Asynchronous Web?

Stephen Maryka gave us an article about the Asynchronous Web and posed a number of questions that get examined like an approach to delivering Asynchronous Web capabilities through extensions to existing Java EE technologies. (July 14, Article)

JSF Flex

JavaServer Faces Flex goal is to provide users capability in creating standard Flex components, part of flexSDK which is open sourced through MPL license, as normal JSF components. This article by Ji Hoon Kim will provide an overview of creating a simple multilingual JSF page consisting of JSF Flex tags. (June 29, Article)

The Rules of SOA - A Road to a Successful SOA Implementation

In this session Jeff explores the key characteristics of successful SOA projects. He covers some of the patterns, and anti-patterns, tool sets, and strategies that he himself learned the hard way. Last, he provides a strategy and blueprint for achieving a high likelihood of success in your SOA project. (June 23, Tech Talk)

Ari Zilka Talks About Terracotta 3.1

Ari Zilka, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1, announced during JavaOne and available now. (June 15, Tech Talk)

Enterprise Application Integration, and Spring

In this Tech Talk, Josh Long explores an integration challenge using Spring Integration and walks through the implementation, employing and expanding on the basic patterns of Enterprise Application Integration to tie together components into a function integration solution, and then demonstrates how Spring Integration helps address the integration requirements. (June 15, Tech Talk)

Google Web Toolkit: An Introduction

In this Tech Talk, David Geary teaches you: The basics of Google Web Toolkit; How to implement Ajax-enabled applications in Java; Internationalization; Hooking into the browser history mechanism; Remote procedure calls. (June 4, Tech Talk)

Just Enough Early Architecture to Guide Development

Jon Kern discusses the best architecture/technical solutions and ensure that they are repeated by all developers. By tackling the architecture up-front in a serial manner, subsequent parallel development will be much more manageable and predictable. (May 28, Tech Talk)

Productive Programmer: On the Lam from the Furniture Police

This keynote describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to guard yourself against all those distractions. Neal Ford talks about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the misguided attempts to sap your ability to produce good work. (May 26, Tech Talk)

Auto-Scaling Your Existing Web Application

Gil demonstrates how new, aggressive uses of already abundant compute capacity by common applications offer competitive value for application designers. (May 21, Tech Talk)

Automating Hibernate Mapping and Queries For Java Web Development

Chris Keene introduces WaveMaker as a new way to automate the ability to generate Hibernate classes in order to more quickly bring OR mapping into an application. (May 19, Article)

Auto-Scaling Your Existing Web Application

In this session Nati Shalom demonstrates how to take a standard Java EE web application and scale it out or down dynamically without changes to the application code. Seeing as most web applications are over-provisioned to meet infrequent peak loads, this is a dramatic change because it enables growing your application as needed, when needed, without paying for unutilized resources. (May 19, Tech Talk)

Free Book: Jakarta-Struts Live

Download the entire book of Jakarta-Struts Live and learn about Struts MVC, Tiles, the Validator, DynaActionForms, plug-ins, internationalization, and more.
(Book PDF Download)

Application Server Matrix

The Application Server Matrix is a detailed listing of J2EE vendors and their application server products, with information on latest version numbers, J2EE spec support and licensing, pricing, platform support, and links to product downloads and reviews.
(Application Server Comparison Matrix)

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
Java Solutions
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map