Webinar: Improve Tomcat Productivity

Reading Time: 3 minutes

Do you ever ask yourself these questions: “Can I eliminate the redeploy phase from Tomcat’s development cycle? How can I more efficiently diagnose performance bottlenecks in my Tomcat application? How can I simplify configuring Tomcat for my application?”

Apache Tomcat users spend 160 hours per year waiting for redeploys, not to mention the time getting back into the flow of coding. They also spend quite a bit of time configuring Tomcat for deployment to production, and investigating and resolving performance and availability issues — without deep diagnostic data.

In a webinar on July 28th at 10am PT, MuleSoft and ZeroTurnaround have teamed up to provide web application developers using Tomcat with the ultimate “one-two punch” for developer productivity.

Register now!

Join us for a 45-minute demo-driven webinar, where you will see how JRebel and Tcat Server can help you:

  • Instantly see the effects of your code changes without having to restart Tomcat
  • Discover and quickly resolve performance issues with deep diagnostic capabilities
  • Visually browse and edit Tomcat configuration files

Speakers:
Sateesh Narahari, Director of Product Management at MuleSoft
Toomas Romer, Co-Founder, Lead Developer at ZeroTurnaround

Logistics:
Date: July 28, 2010
Time: 10am PT / 1pm ET / 5pm GMT / 6pm BST (find your time zone)

The easiest way to run Tomcat as a Windows service

Reading Time: 6 minutes

Organizations running Apache Tomcat in production on Windows often want to run Tomcat as a Windows service. This removes the need for someone to be actively logged into the server and provides an easy way to integrate with Windows management tools. In this blog, I will explain the easiest way to run Tomcat as a Windows service and how you can do this for multiple instances as well.

Running an instance of Apache Tomcat as a Windows service is not complicated, if you download the correct distribution of Tomcat (Windows service Installer). However, running multiple instances of Tomcat as Windows services is a more complicated process. To avoid issues, you would have to:

1. Uninstall the service that the installer has installed ( if you used the service installer)

2. Run the service.bat command and give it an unique name ( so, next service install would not fail )

service.bat install MyTomcat2 ( you have to download the zip distribution to get service.bat )

2. For each instance, edit server.xml and manually modify all ports to unique non-default numbers

3. Go to Service Control Manager by running ‘services’ from Start menu and change the startup type for each instance to be “Automatic”

You would have to repeat this process for each instance that you want to install, which can get tedious and potentially quite error-prone.

The Tcat Server installer provides a much better experience by enabling you to select a name for the service and also by enabling you to install multiple Tomcat instances on the same box. All you have to do is to run a standard install of Tcat Server on Windows, and it will automatically install Apache Tomcat as a Windows service. It can detect name conflicts and pick unique service names for the Windows services. (The installer also detects port conflicts, so you don’t run into start-up issues due to port conflicts).

Continue reading

Easily optimizing Python: Extending with Java

Reading Time: 49 minutes
cartoon_duck

Our RESTx project – a platform for the rapid and easy creation of RESTful web services and resources – is largely written in Python. Python is a dynamic, duck-typed programming language, which puts very little obstacles between your idea and working code. At least that’s the feeling I had when I started to work with Python several years ago: Never before was I able to be so productive, so quickly with so few lines of code. I was hooked. No wonder some people describe it as ‘executable pseudo code’: Just write down what you want and for the most part, it will actually work.

Now there’s a price to pay for this increased developer productivity, where the interpreter somehow figures out at run time what it is that you actually want to do and how to let your code deal with all sorts of different types: Python is interpreted, it’s dynamic and this means that for the most part it’s slower than compiled languages.

In this article here, I will talk about an interesting optimization technique for Python, which will come as a surprise to many Python developers.

Continue reading

Multiple Tomcat Instances Made Easy

Reading Time: 4 minutes

“Having Trouble With Multiple Instances” is one of those famous Tomcat users list topics that never goes away.  In fact, the question has been asked so many times that at this point, the people asking it are lucky if they get a response that’s more helpful than RTFM.

These errors are almost always caused by port conflicts.  When running multiple instances of Tomcat on a single machine, each instance must be configured with a unique set of port numbers.  This might seem like a no-brainer, but it’s actually very easy to get wrong.  Every port number must be unique on the system, and has to be changed manually in multiple locations within Tomcat’s XML configuration files, which leaves plenty of room for accidental errors.

There had to be a better way.  With the release of Tcat Server 6 R3, there is!  Tcat Server 6 R3 includes an easy way to get multiple instances of Tomcat up and running on your machine with zero errors.

Continue reading

Mule 3 Milestone 4 Released

Reading Time: 3 minutes

The Mule ESB team is pleased to announce the next milestone towards our final Mule 3.0 release. Recent work includes the following areas:

Hot DeploymentMule now supports multiple applications running within the same Mule instance and deployment descriptors for specifying the contents of your deployment (e.g., multiple configuration files). All Mule examples included in the distribution have now been updated to use the new application deployment format. If you have not yet read about the application deployment model new to Mule 3.0, read this blog post.

Message Exchange Patterns – Message Exchange Patterns (a.k.a. MEPs) give you more explicit and flexible control over the way messages flow through Mule. For example, you can now specify whether you expect a response on a given endpoint or not (see the new attribute “exchange-pattern” on endpoints). In the future, we may introduce additional exchange patterns that allow for different communication styles as well.

Continue reading

Turbo charging front-end development with user-created RESTful resources

Reading Time: 70 minutes

In this article, I will show you how RESTx – an open source project for the creation of RESTful web services and RESTful resources – allows front-end developers to quickly and easily make their own data resources, without having to rely on the back-end server team for every new requirement.

Continue reading

Announcing Tcat Server 6 R3

Reading Time: 6 minutes

We released Tcat Server 6 R3 today. This release packs features that were directly a result of customer feedback. Here are some of the highlights:

  • Support for Tomcat 7.0 beta – Tomcat 7.0 beta was recently announced.  Our engineers have been working with Tomcat 7.0 to support it as soon as it came out. You can now manage Tomcat 7.0 instances as well as Tomcat 6 and 5.5 instances. We are currently the first and only vendor in the world that provides enterprise Tomcat for versions 5.5, 6.0 and 7.0 beta.
  • Easiest way to run Tomcat as a Windows service – we didn’t stop at providing a way to run Tomcat as a Windows service, we integrated it with installer and provided tools that make it very easy to run Tomcat and Tcat Server console as a windows service. By running Tomcat as a Windows service, you can eliminate the need to have an administrator account logged into the server all the time.
  • Super-simple deploymentTcat Server already has an easy to use interface to deploy web applications to one or more Tomcat instances. We are taking this further by providing an easier way to upgrade a deployed application by simply clicking on an upgrade icon. We also made it easy to upload a new application or use the one that you already have in the inbuilt repository. Based on feedback from users, we changed the term from “package” to “deployment.” In prior versions, you were creating a package, starting with this R3 release, you create a “Deployment” – this is done to avoid any confusion with the overloaded term “package.”
Easier to upgrade a webapp
Upgrading to a new version is as simple as clicking the upgrade button ( green up arrow )
  • Import and export of server profiles – As you might already know Server Profiles is the easiest way to create a desired configuration and apply it to multiple Tomcat servers at once. We are now making it possible to share these profiles with your colleagues or other departments in your organization. For example, your NY data center can share their Server Profile with the folks in SF data center. Expect to see more public server profiles over next several months that will help you achieve desired configuration for third party software and dramatically simplify the install effort required for third party software.
  • Improved navigation for server diagnostic screens – we took the opportunity to change few things in the server diagnostic screens. For example, we changed how you navigate diagnostic data of your web applications. We removed right hand tabs, instead added more intuitive drop down selection box to select the data you want to view for a webapp.
Navigating a web application to view diagnostic data is easier now.
Select webapp data using the drop-down combo box
  • In the world of browsers, Internet Explorer is an exception – it behaves differently that other browsers. In this release, we added logic to address these differences, to ensure that Tcat Server can work on Internet Explorer just as well as it does on Firefox and Chrome.

Over next few weeks, we will discuss the new features of the latest release in detail. Meanwhile, see it for yourself by downloading your free copy of Tcat Server here.

Beyond Integration, Part 2: Shattering Monoliths

Reading Time: 8 minutes

After Peak Time Handling, and its heated discussions :), the Beyond Integration series continue with this new installment!

The thought of working on a legacy system makes developers shiver: they know the feeling of tiptoeing in a crystal palace or trying to run with lead-soled shows (and sometimes having to do both at the same time). At higher hierarchical levels, the idea of touching a legacy system doesn’t create much joy either, as it has “big bucks” and “unpredictability” painted all over it. But, driven by necessity (be it product end of life or the addition of new features), legacy applications end-up being modernized.

Bringing Mule ESB in the equation can help evolving legacy systems towards a new architecture that is more favorable to both the technical and business sides of things.

Legacy systems suffer from many miseries, one of them is that, being big balls of mud, they often present themselves as monolithic blocks, with coarse grained interfaces that encompass big chunks of business logic. In this post, I will discuss the opportunities that exist in shattering such monoliths and tying the pieces back together with Mule ESB.

Continue reading

Bring Erl On: Provisioning RabbitMQ users through Mule

Reading Time: 8 minutes

Though a veteran language and platform, Erlang has recently gained a lot of traction, as very visible web sites and open source projects decided to use it in order to leverage its intrinsic support for highly concurrent, fault tolerant and distributed applications. To name a few, let’s mention: Facebook Chat, Mochiwebejabberd, RabbitMQ, riak and CouchDB.

Without opting for Erlang as a development platform, companies may still be tempted to leverage an Erlang-built middleware: most of them offer public interfaces accessible over generic protocols, like HTTP, and are easy to integrate quickly and efficiently. That said advanced scenarios can require a tighter integration like, for example, creating a module for ejabberd that requires to call custom Java code or reaching server functions on RabbitMQ that are not accessible through AMQP.

This is when the Duke meets Erl. And this is when Mule ESB can help, thanks to the new and coming Erlang Transport for Mule 3. Read on for more information about the transport and a walk-through a simple use-case of RabbitMQ integration.

Continue reading

Presentation: EAI, When Tools Can Help

Reading Time: 8 minutes

I had the opportunity to give a talk last Wednesday night at VanDev Meetup (Vancouver’s Software Developer Network). 

In this talk, I have presented a few criteria to help developers and architects decide between using ready-made EAI tools versus custom built solutions. I have discussed the identification of contexts, patterns, topologies and decision factors that can help favor one approach or the other.

If you’re hesitating between walking the ad hoc coding path or the integration tool path for your integration projects, then keep reading as the following may help you.

Continue reading