Tomcat Auto Failover using Apache & Memcached

December 29, 2012

Tomcat Auto Failover using Apache & Memcached

As a requirement for Continuous Delivery, changes to applications should be deployed as frequently as possible. GitHub is a well-known example: on their “busiest day,” GitHub “saw 563 builds and 175 deploys.” To do this with a Java web application, zero-downtime deployment needs to be done to avoid service disruption.

To achieve zero-downtime deployment, there are several solutions. Both commercial tools, such as LiveRebel, and container features, such as Tomcat 7’s parallel deployment, can make this happen. This post focuses on the approach that uses Apache’s auto failover feature to achieve zero-downtime deployment by performing round-robin updates on multiple Tomcat instances.

OpenLDAP TLS Issue

August 24, 2012

OpenLDAP TLS Issue

This morning I did a yum update on my RHEL 6 box, and noticed the company’s internal websites were showing up 500 error. It turned out that LDAPS authentication was failing for those websites. Since last update was only merely a month ago, and no configuration files were touched, it took me the entire morning to figure out what went wrong.

Persist PrimeFaces DataTable State Across Requests

May 14, 2012

Persist PrimeFaces DataTable State Across Requests

PrimeFaces is well known for its wide array of useful AJAX components for JSF. <p:dataTable>, in particular, is an extremely useful component. One problem with <p:dataTable>, however, is that it can mostly only be manipulated with AJAX. Its state, including current page, column sorted and filter criteria, is reverted to the default after page refreshes. In addition, there is currently no documented way to programmatically set the state, aside from first row and sort order, for the data table.