3.2 Comparing tc Runtime and Apache Tomcat

The runtime component of SpringSource tc Server (tc Runtime) is an enterprise version of Apache Tomcat. tc Runtime is a drop-in replacement for Apache Tomcat 6, ensuring a seamless upgrade path for existing custom-built and commercial software applications already certified for Tomcat. Maintaining this level of compatibility enables customers to add the functionality they need to run and manage their applications more effectively with the least amount of effort.

SpringSource tc Runtime also adds many business-critical features to standard Apache Tomcat. The following sections compare the two:

Standard Application Server Features

SpringSource tc Runtime and Apache Tomcat share key standard features of application servers.

Table 3.1. Standard Application Server Feature Comparison

Application Server FeaturesSpringSource tc RuntimeApache Tomcat
Servlet 2.5 supportYesYes
Java Server Pages (JSP) 2.1 supportYesYes
HTTP session clusteringYesYes
Advanced I/O featuresYesYes
Pre-built advanced non-blocking I/O componentsYesYes
Basic Windows service wrapperYesYes

Enterprise Application Server Features

Because SpringSource tc Runtime is based on Apache Tomcat 6, it provides a powerful yet lightweight platform that is compatible with existing Tomcat-based applications and with Web applications that run on other Java EE application servers such as IBM WebSphere or Oracle WebLogic. Applications can be seamlessly moved from Apache Tomcat to SpringSource tc Runtime to gain the benefits that SpringSource tc Runtime provides beyond the base Apache Tomcat.

Table 3.2. Enterprise Application Server Feature Comparison

Enterprise Application Server FeaturesSpringSource tc RuntimeApache Tomcat
Multiple runtime instances from a single binary installationYesNo
New high-concurrency JDBC connection pool`YesNo
Preconfigured for JMX managementYesNo
Includes latest security vulnerability and bug fixesYesRebuild Tomcat yourself to apply incremental fixes.
Binary patch updatesYesBinary patches are not provided by Tomcat community.
Unix boot scriptsYesNo
Enhanced Windows service wrapperYesNo

SpringSource tc Runtime has a number of advanced configuration features that Apache Tomcat does not.

Table 3.3. Advanced Configuration Feature Comparison

Advanced Configuration FeaturesSpringSource tc RuntimeApache Tomcat
Templated production-ready configuration out-of-the-box.YesNo
Create Tomcat single server configuration.YesNo
Modify general server configuration including JVM startup parameters.YesNo
Modify context container configuration.YesNo
Modify server defaults for JSPs and static content.YesNo
Add, modify, and delete JDBC datasources.YesNo
Modify HTTP and AJP connector settings.YesNo
Create and view general services.YesNo
Modify general engine configuration.YesNo
Pre-tuned JVM options.YesNo

Business-Critical Operational Features

SpringSource tc Runtime includes advanced, distributed management and monitoring capabilities through a centralized management console called Hyperic HQ user interface.

The tables in this section list the capabilities that SpringSource tc Runtime provides over and above the base Apache Tomcat and also notes the features that HQ provides for existing Apache Tomcat environments.

SpringSource tc Runtime provides a wide range of capabilities that enable developers, administrators, and operators to centrally diagnose, measure, and monitor the distributed application infrastructure.

Table 3.4. Diagnostics, Metrics, and Monitoring Feature Comparison

Diagnostics, Metrics, and Monitoring FeaturesSpringSource tc RuntimeApache Tomcat
Application deadlock detectionYesNo
Uncaught exception detectionYesNo
Garbage collection metrics, including throughput and countYesNo
SQL query time monitoring metrics.YesNo
Enhance response time monitoring metricsYesNo
Enhanced connection pool health metricsYesNo
Enhanced thread pool health metricsYesNo
Role-based customizable dashboardYesYes (via Hyperic HQ)
Automated inventory of application servers and software resourcesYesYes (via Hyperic HQ)
Real-time metric collection and monitoring of tc Runtime, Tomcat, Apache Web server, Apache ActiveMQ, underlying JVM, operating system, and other resourcesYesYes (via Hyperic HQ)
Charting and graphing performanceYesYes (via Hyperic HQ)
Advanced alerting: multi-conditional, availability, event, and recovery alerts, group-based alerting, and escalation schemes.YesYes (via Hyperic HQ)
Log file tracing, alerts on event levelsYesYes (via Hyperic HQ)
Alerts based on configuration file updatesYesYes (via Hyperic HQ)
Performance baselining for alert thresholdsYesYes (via Hyperic HQ)

SpringSource tc Runtime provides a centralized, secure dashboard that enables administrators and operators to organize, operate, and control their distributed applications and infrastructure.

Table 3.5. Centralized Operations and Management Feature Comparison

Centralized Operations and Management FeaturesSpringSource tc RuntimeApache Tomcat
Secure, distributed, JMX-based server managementYesNo
Create application server groupsYesYes (via Hyperic HQ)
Application server start/stop/restart from central consoleYesYes (via Hyperic HQ)
List deployed applications and current statusYesNo
Application deploy/undeploy/reload/start/stopYesNo
Security and access/authorization controlYesYes (via Hyperic HQ)
Scheduled control: maintenance activities, on-demand actions, scheduled remediation actions, or scheduled responses to alert conditionsYesYes (via Hyperic HQ)

SpringSource tc Runtime provides scripting support for administrators and operators who prefer to create and run scripts to handle distributed configuration and deployment steps.

Table 3.6. Scripting Feature Comparison

Scripting FeaturesSpringSource tc RuntimeApache Tomcat
List deployed servers.YesNo
Create server groups.YesNo
Add and delete servers to and from groups.YesNo
List deployed applications, including current status.YesNo
Deploy application WAR file.YesNo
Undeploy application.YesNo
Start, stop, and reload deployed applications.YesNo
Get (download) configuration files and JVM parameters from a server.YesNo
Modify configuration files on an individual server.YesNo
Set (push) configuration files and JVM parameters to a server group.YesNo
Start, stop, and restart a server or group of serversYesNo