Author Archives: nam

Caucho Newsletter August 2020

Newsletter at a glance

  • Resin 4.0.65 released
  • TLS v1.3 for OpenSSL
  • Disabling insecure cipher suites
  • ?Protocol and cipher-suite in
  • Customer success story – Thai AirAsia migrates to NTT Data Intramart powered by Resin and reduces 80% of its outsourcing costs

Resin 4.0.65 released

Resin 4.0.65 comes with numerous bug fixes. Notably, it adds support for TLS v1.3.

Here’s the change list for Resin 4.0.65 – released July 29, 2020

  • openssl: add +/tlsv1.3
  • class-scan: catch and continue from .class parse exceptions
  • access-log: add %{param}p for parameter (#6305, rep by Yoo)
  • websocket: avoid wrapping IOException in IllegalStateException
  • jdk: EventManager need to use ConcurrentHashMap.putIfAbsent, not Map.putIfAbsent
  • config: openssl-protocol, openssl-cipher-suite, openssl-chain-file
  • health: avoid reporting time outside window as downtime

In case you missed it, here’s the change list for Resin 4.0.64 – released February 2, 2020

  • cluster: fix heartbeat close
  • deploy: fix duplicate remote deploy
  • config: add jvm_classpath to cluster-default.xml
  • config: add access_log_format
  • jdk: TcpPort._activeConnectionSet.keySet() must use Map api
  • jdk: getAttribute should not wrap AttributeNotFound
  • jdk-compat: dynamic Logging during initialization

If you’d like to discuss updates or take advantage of new Resin features for your deployment, please email Alexandra Garmon,, to arrange a web meeting with one of our engineers.

TLS v1.3 for OpenSSL

Resin 4.0.65 adds support for TSL v1.3, which is significantly faster than TLS v1.2 to complete the SSL handshake. To enable TLS v1.3, simply install an OpenSSL library that supports it.  For users that whitelist SSL protocols in their config with “-all”, you will need whitelist it in

protocol : -all +tlsv1.2 +tlsv1.3

Disabling insecure cipher suites

TLS v1.3 improves security by removing support for insecure cipher suites.  For older TLS versions however, you’ll need to disable them manually in

cipher-suite : ALL:!aNULL:!ADH:!NULL:!LOW:!MEDIUM:!EXP:!SSLv3:+HIGH

The above disables low and medium strength cipher suites.

Customer success story – Thai AirAsia migrates to NTT Data Intramart – powered by Resin – and reduces 80% of its outsourcing costs

Intramart is the major Business Process Management workflow software provider in Japan with over 6,000 Intramart customers deployed on Resin. Intramart’s “Open & Easy” concept provides flexibility, scalability and development productivity to thousands of users, including some of the largest companies in the world.


  • Workflow previously required Thai AirAsia to outsource development, which was costly and time consuming


  • Deployment of intra-mart, which enables Thai AirAsia to insource all changes of operation flow
  • ?Operation of Thai AirAsia using intra-mart workflow covers everything from travel expense adjustment called eDTR (electric Duty Travel Request) and using VPN to applying for purchases.


  • Time: Dramatically shortens the time to create and change workflow systems
  • ?Cost: 80% reduction of outsourcing costs by complete insourcing
  • Paper reduction: 60% reduction in departmental paper use

“The ability of intra-mart to easily create workflow processes from scratch with drag and drop was outstanding compared to other products”
Mr. Pakpom – Project Coordinator, ICT Department

Read full case study here:


   Download the latest version of Resin today!

Caucho Newsletter December 2019

main caucho logo 3caucho founding outer richmond

Our deployment has run on Caucho Resin for over a decade. Resin is reliable, stable and easy to maintain/upgrade. Our production sites are critical to our business and we don’t have downtime issues while running on Resin. Additionally, Caucho tech support is great. They use experienced engineers for support and we always get a fast response." 

                    - Stewart Morse | CEO | IBRC, Inc.

Newsletter at a glance

  • Resin 4.0.63 released
  • Spring WebSocket support via Maven plugin
  • ?Resin tip – cloud deployment made easy
  • Customer success story – Resin replaces Apache and improves performance?!

Resin 4.0.63 released

Resin 4.0.63 comes with numerous bug fixes. Notably, it resolves most JDK 11 compatibility issues and JDK6/7 regressions.

Here’s the change list for Resin 4.0.63 – released October 28, 2019

  • admin: added resin.admin.heap-dump.file system property for heap-dump directory
  • config: add health_log_expire_timeout
  • config: add openssl_chain_file to cluster-default.xml
  • dist: split out jpa-16.jar from javaee-16.jar
  • file: add default-content-type to FileServlet
  • hessian: close of Hessian proxy stream when result is inputstream
  • http: HttpProxy encoding issue with ch>0×8000
  • http: HttpsEmbed missing jsse.init()
  • jdk: use Map.keySet() instead of ConcurrentHashMap.keySet() for linking issues
  • jdk-compat: jdk init with -javaagent cannot use logging from appendToClassPathForInstrumentation
  • jdk-compat: TcpPort.close() exception on JDK6/7
  • jsp-el: issues with bean getters and get()
  • mod_caucho: handling of https forwarding
  • port: thread launchers were started before initialization
  • remote: allow JDK11 w/o WebService class
  • server: on HMUX requests, wait for server start
  • server: keepalive timeout needs to killKeepalive not turn to active
  • session: SessionImpl should not clear _isModified on no-change load

In case you missed it, here’s the change list for Resin 4.0.62 – released May 23, 2019

  • cloud: distributed server update issue with .git/refs
  • debian: update debian release
  • distribution: update .jar versions and remove jars with possible conflicts
  • ?elastic: add –elastic-server-index
  • elastic: cleanup of join server-id and server-address, and timeout
  • elastic: add server-timeout to resin:ElasticCloudService
  • embed: add HttpsEmbed
  • file: cache file updates when webapp-jar changes
  • integration: WebApp.getMimeMapping
  • integration: WebApp.getLocaleMapping
  • jmx: add application-hash to WebAppMXBean
  • quercus: find interface method if available
  • security: foo.;html produces 500 exception
  • security: j_security_check with no auth should issue warning and 404 instead of 500
  • security: setting setServerHeader to null will remove Server header
  • servlet: don’t reuse form/invocation ByteToChar when very large
  • spring: add ClasspathPath to MergePath.addClassPath
  • ssl: add trust-store-algorithm and trust-store-provider to jsse
  • ssl: add key-manager-password and key-store-password to jsse
  • ssl: add key-manager-algorithm and key-manager-provider to jsse
  • websocket: add

If you’d like to discuss updates or take advantage of new Resin features for your deployment, please email Alexandra Garmon,, to arrange a web meeting with one of our engineers.

Resin Spring WebSocket support via Maven plugin

Resin now integrates with spring-websocket via a Maven plugin. The plugin provides a
ResinRequestUpgradeStrategy that is responsible for upgrading an HTTP request into a WebSocket connection for Spring. It works with both Spring 4.x and 5.x. To use it:

1. add Maven dependency


2. set a HandshakeHandler that uses ResinRequestUpgradeStrategy:

    public class WebSocketConfig implements WebSocketConfigurer {
        public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
            HandshakeHandler handshakeHandler = new DefaultHandshakeHandler(new ResinRequestUpgradeStrategy());
            registry.addHandler(myHandler(), "/myHandler").setHandshakeHandler(handshakeHandler);

Resin tip – cloud deployment made easy

Resin Pro makes it super easy to deploy your webapp to the entire cluster with just one command:

    $ resinctl deploy mywebapp.war

That’s it! With that command, Resin distributes the WAR to every server in the cluster and starts it
right up. No more manual copying of WARs. No more ssh’ing into each individual server.

Under the hood is a complex symphony that makes it all possible:

  1. 1. command uploads the webapp to a triad/hub server in your Resin configuration
  2. 2. triad server commits the webapp into its internal git repository for reliability
  3. 3. server unpacks and starts up the webapp
  4. 4. triad server distributes the webapp to other triad servers for redundancy
  5. 5. triad servers distribute the webapp to the rest of the servers in the cluster

Then to undeploy it:

    $ resinctl undeploy mywebapp.war

Customer success story – Resin solves web server performance and structural problems for Gyeonggi Provincial Office of Education

Xest Information Technology, our South Korea Premier Partner and VAR successfully worked with Gyeonggi Provincial Office of Education to solve Apache performance problems.


  • Apache’s low performance made the homepage vulnerable to overloading
  • Service slowed down with as little as about 200 concurrent users
  • In the AIX OS environment, Apache and Resin were linked as proxy passes, resulting in reduced performance


  • Replace Apache with Resin web server
  • Configure the file server separately


  • After Resin web server replaced Apache, the issues that slowed down the simultaneous connection immediately disappeared and performance significantly improved.
  • The result of using Resin is that Gyeonggi’s services achieve fast performance and stability to meet user demands for information.
  • ?Since Gyeonggi migrated to Resin, they have not experienced any issues or slowdowns. Their services run fast, smooth and without user complaints.

“Our homepage was often down because of the low performance of Apache which is vulnerable to overloading. Resin solved this problem for us with its fast performance and full compatibility. I’m now very proud that no complaints have been made since we migrated to Resin.”
- Gyeonggi Provincial Office of Education, Computerized Officer S.Y.Kang Download the latest version of Resin today!


Caucho Newsletter May 2019

main caucho logo 3

“Congratulations to our partners NTT Data Intramart for being named a Niche Player in Gartner’s Magic Quadrant for 2019 Intelligent Business Process Management! NTT Data Intramart has achieved over 6,000 customer sales and has also been ranked #1 BPM solution in the Japanese market for 10 consecutive years.”

   - Steve Montal, Co-Founder and CEO of Caucho

Newsletter at a glance

  • Resin 4.0.61 released
  • Resin supports JDK 11
  • Spring Boot 2 and tailored support
  • Gartner Magic Quadrant report lists Caucho partner, NTT Data Intramart as a Niche Player

Resin 4.0.61 released

Check out the change list for Resin 4.0.61 – released March 1, 2019

  • security: additional invalid-URL rejection for matrix parameters
  • file: redirect must not html convert the location (#6212)

In case you missed it, here’s the change list for Resin 4.0.60 – released February 6, 2019

  • embed: force close of file descriptors (#6208)
  • webapp: add info log when WebApp does not start within active-wait-time starts (#6197)
  • hessian: added default blacklist classes
  • deploy: added alarm for deployment .git gc
  • deploy: .git changes to allow for git clone from resin-data

We release Resin every 12-16 weeks. Possible changes include performance enhancements, bug fixes, feature requests, and security patches. Having a process in place to update your production systems frequently and reliably will optimize performance. If you’d like to discuss updating your deployment with a Caucho engineer, please email Alexandra Garmon,, to arrange a call.

Resin supports JDK 11

Resin 4.0.61 is the first Resin version to officially support JDK 11.  Supporting JDK 11 was a seamless process for us and it was surprisingly easy.  So easy in fact that prior versions of Resin should be able to run on JDK 11 with only minor cosmetic issues (deprecated warning messages from the JVM).  However, Resin 4.0.61+ are the only versions that we are testing against JDK 11 going forward.

We expect your JDK 11 upgrade experience to be as seamless as it was for us.  Check out JDK 11 and its new host of exciting features like new garbage collectors and enhanced cryptography support here:

Resin support for Spring Boot 2 in the works

We’re nearing official support for Spring Boot 2, one of the most requested features by Resin users.  In the first phase, which we expect to complete late summer, we’ll be adding embedding and Spring WebSockets support.  Other Spring features will come in subsequent updates.  Stay tuned and feel free to send us your feedback/requirement through Alexandra,

NTT Data Intramart listed in Magic Quadrant Gartner report

Congratulations to our partners NTT Data Intramart for being positioned as one of the Niche Players in Magic Quadrant (MQ) for 2019 Intelligent Business Process Management Suite (iBPMS) issued by Gartner!

The Gartner MQ is a culmination of research in a specific market, giving you a wide-angle view of the relative positions of the market’s competitors. By applying a graphical treatment and a uniform set of evaluation criteria, a MQ helps you quickly ascertain how well technology providers are executing their stated visions and how well they are performing against Gartner’s market view.

NTT Data Intramart has over 6,000 customers and will continue to develop digital business with a focus on BPM globally and also strive to improve the customer experience and expand business. NTT Data Intramart has been the #1 BPM solution in Japan for the last 10 consecutive years.

For more details, please visit:

   Download the latest version of Resin today!

Facebook: Caucho Technology  Resin Twitter page


Caucho Technology

4455 Morena Blvd. Suite 210

San Diego, California 92117


Caucho Newsletter January 2019

main caucho logo 3

“After 2 years with Resin Pro in production, Nssam has achieved 99.99% uptime and now operates with simplistic operational scalability. We saved 20% of our cost and are very satisfied with the performance of the Resin load balancer and the combination of reliable Resin web application server”

   - Nssam Technical Supervision Director – Ho-joong, Kim 

case study: Resin’s dynamic scaling & clustering eliminates downtime without major code alterations 

Newsletter at a glance – Caucho celebrates 21 years in business!

  • Resin 4.0.59 released
  • Resin in Maven Central
  • Resin supports JDK 9, JDK 10 and 11 in the works
  • Oracle introduces Java SE subscription
  • Resin tested against OpenJDK
  • Resin Cookbooks               


Resin 4.0.59 released

Check out the change list for Resin 4.0.59 – released December 10, 2018

  • database: avoid loop when shared XA connection fails allocation (#6200)
  • http-proxy: escape utf-8 urls when used in rewrite (#6198)
  • config: updated for http examples
  • cluster: cluster .war deployment issues (#6188)
  • tcp: only force socket close on shutdown in test mode to avoid threading issues (#6190)
  • jsp/embed: jsptaglib detection issues with embedded resin (#6191)
  • access.log: truncation of long url in access.log needs matching truncation headers (#6168)
  • file: redirect needs to encode with HTML encoding (#6184)
  • embed: deadlock with ResinEmbed and type introspection (#6177)
  • load-balance: cookies losing double quotes (#6181)
  • quercus: curl needs to use TLSv1.2 as default


In case you missed it, here is the change list for Resin 4.0.58 – released August 27, 2018

  • servlet: AsyncContext timing issues due to back-compat (#6168)
  • servlet: add load-on-startup-allow-fail (#6171)
  • config: add openssl_protocol and openssl_cipher_suite to (#6169)
  • quercus: exception wrapping when stack trace is missing or empty
  • network: change SocketLinkThreadLauncher to permanent (#6166)
  • servlet: immutability of getParameterValues (#6172)
  • classloading: scanning of module-info should be skipped (#6170)
  • security: invalid URL detection with filters
  • quercus: QuercusContext array extension using wrong variable
  • session: added cookie-same-site for version=0 (#6167)

We release Resin every 12-16 weeks. Possible changes include performance enhancements, bug fixes, feature requests, and security patches. Having a process in place to update your production systems frequently and reliably will optimize performance. If you’d like to discuss updating your deployment with a Caucho engineer, please email Alexandra Garmon,, to arrange a call.


Resin in Maven Central Repository

Check out Resin in the Maven Central repository:








Did you know you can easily embed Resin? Here’s one way:


ResinEmbed resin = new ResinEmbed();

resin.addPort(new HttpEmbed(8080));


WebAppEmbed webApp = new WebAppEmbed(“/”, “webapps/ROOT”);






Resin supports JDK 9. JDK 10 and JDK 11 in the works

The new Java release schedule calls for a feature release every six months, an update release every quarter, and a long-term support (LTS) release every three years.


Resin supports JDK 9 and we are currently adding support for JDK 10 and JDK 11.

Oracle introduces Java SE subscription

Oracle is introducing a new paid Java support model called Java SE Subscription.  It replaces Oracle’s old perpetual support plan and along with it comes new licensing terms for the Oracle JDK. 

In short, Oracle JDK 8 users do not need a subscription for commercial deployments 

(see the Java SE 8 license:


Oracle JDK 11 users must have a subscription for commercial deployments (see the Java SE 11 license:


This isn’t entirely bad news because going forward with version 11, the Oracle JDK build will be the same as theOracle OpenJDK build.  The only difference is that Oracle JDK comes with a paid support model, whereas Oracle OpenJDK does not.


So what does it mean to you?



  • option #1: use Oracle JDK 8 but with no more public updates
  • option #2: use Oracle JDK 8 and pay Oracle for updates with a Java SE Subscription
  • option #3: use an OpenJDK distribution that provides updates like RedHat, Azul, IBM, etc. (Caucho recommends OpenJDK over the Oracle JDK) 

JDK 9/10

  • end-of life 

JDK 11:

  • option #1: use Oracle JDK 11 with a Java SE Subscription
  • option #2: use an OpenJDK distribution that provides updates like RedHat, Azul, IBM, etc.

For more information, see:

Resin tested against OpenJDK

We recommend using OpenJDK, which is what we use to test Resin.  Interesting tidbit: internally, we do not use Oracle JDK at all.



Resin Cookbooks


Check out our 10-minute overviews of various Resin topics, available for viewing at: For new users or even users who want brief refreshers on advanced Resin topics, the cookbooks are a great place to start.


Resin Deployment

basic application deployment on Resin


Resin Debugging

useful debugging tools for Resin deployments


Resin on Amazon EC2

get setup on Amazon EC2 in minutes


Resin Security

4 ways to secure your deployment


Download the latest version of Resin today!


Facebook: Caucho Technology  Resin Twitter page


Caucho Newsletter – January 2014

Resin application server - Java EE 6 Web Profile Certified

January 2014 News

Resin 4.0.38
We hope everyone is off to a great beginning in 2014! With the start of the New Year we thought it would be beneficial to begin an in-depth review of Resin’s architectural stack. For Part 1, we will dive into the world’s fastest web server that, if you aren’t already, should be taking advantage of! Resin is meant for data-rich and intensive enterprise web applications. As such, the internal components are coded to provide the extra performance and insight needed to give your applications a true edge.
General feature updates and bug fixes in 4.0.38:

  • Resin Cluster – Dynamic server improvements to aid in the automatic restart after a triad server has been restarted
  • Resin Cache – Configuration added to maintain minimum thresholds in cloud environments
  • Resin Health – Thread pool analysis from PDF reports now available in new formatting

Visit for a complete list of bug fixes and improvements in this release.
Download Resin 4.0.38

Resin Essentials (Part 1) – Resin Web Server
Resin is engineered to work from end to end with specific thread optimizations made at each level of the architecture. Often is the case that applications will include components chosen by familiarity rather than performance. If your application includes an Apache Web Server, your architecture will handle 40-150% more load with fewer errors by utilizing Resin’s Web Server. If your application includes an NginX server, your architecture will handle 20%-25% more load with fewer errors by utilizing Resin’s Web Server.  In deployment you not only pay this fine in dollars spent on hardware and resources, but also on time managing multiple configuration files. Resin’s Web Server is yet another finely crafted component in an architecture that simply works.
Resin Web Server functionality:

  • Powerful and Easy to configure URL rewrite rules
  • Added security and functionality through Virtual Hosting
  • FastCGI so you can work with Python (Django), Ruby (RoR), native PHP, and more
  • Built-in HTTP Proxy Cache so you can speed dynamic pages to near-static speeds
  • Built-in mod_php like support via Quercus
  • Cluster aware load balancer that auto shares loads to new application server nodes
  • Security: Immune to buffer overflow attacks that plague other Web Severs (mostly Java with small, tight, fast JNI/C)  

Resin’s Web Server can make the difference in your application’s ability to seamlessly scale from one to millions of concurrent sessions. As an added benefit, the load balancing and clustering ensure that your application optimizes its resources redundantly across your stack.
Scott Ferguson, Chief Architect of Caucho said the following:
“For years Resin has not needed Apache httpd as a load balancer or to serve static HTML files and images. With Resin you get a complete web solution. Resin pieces are designed to work together, and designed to be fast and scalable. Performance is easy to demonstrate with our web tier, and it is the same type of performance you can expect throughout our product for session replication, proxy cache, object cache, and more. Using Resin means you value craftsmanship, and are a discerning, informed developer.”

San Diego Java User's Group – January 21

This months San Diego Java User’s Group focused on “Simple and Fun Functional Programming in Java” by Allan Schougaard. It was a very interactive JUG, with audience members debating different code segments and best practices (exactly the kind we want!). On the basis of maintainability, readability, and abstraction we’re sure participants left the meeting with some code refactoring of their own to do!  
Abstract: Functional programming is all the rage right now, and for good reason. It promises simpler and faster programs. Some of the holdbacks are that many people believe that it requires you to change programming language. Not so! In this talk I will show that you can use functional programming techniques and reap many benefits in the current incarnation of the Java language.
Check out the slide deck on the SDJUG’s site!
Please join us at the next JUG scheduled Feb 18, 2014 for a great night!
Visit the SDJUG website
Moving to the Cloud?
As cloud environments continue to mature, more companies are benefiting from migrating towards newer infrastructure. Flexibility, increased collaboration, and disaster recovery are among the top reasons fueling the movement. However, concerns about sensitive user data and having to rearchitect legacy apps mean in house systems will not be going away anytime soon. Whether a public, private, or hybrid environment is right for you, Resin is architected to work in all environments. For those wanting to port certain applications to the cloud, check out our cookbook on how to deploy Java apps on Amazon EC2:
Tip of the Month


Enabling Resin Web Administration

Since the resin-admin is just a web-app implemented with Quercus/PHP, enabling it is just adding an appropriate <web-app> tag.
To enable the /resin-admin, you'll need to create an admin user and password.

  1. Create an admin user following the prompt at /resin-admin.
  2. Copy the conf/admin-users.xml.generated to conf/admin-users.xml.
  3. Change the resin_admin_external to true if you need access from a non-local IP address.
  4. Browse /resin-admin with an HTML 5 browser. 

The steps are for security reasons. Copying the admin-users.xml verifies that you have access to the server. And the default resin_admin_external=false makes sure you're not exposing the /resin-admin to the internet.
A detailed walkthrough can be found here!

Quercus Corner

As the PHP adoption rate continues to grow, we continue to make improvements to Quercus.  The Agile movement has led to more client-side scripting and Quercus continues to bridge the gap to the server side Java components. Quercus highlights: 

  • Meets or exceeds the performance of the C PHP implementation with common PHP applications
  • Optimized compilation of PHP to Java
  • Single process model of Java reduces unnecessary switching overhead
  • Shared data allows for caching across multiple requests
  • Java implementation eliminates many traditional security problems such as buffer overflows
  • Input/output filtering for cross site-scripting and other attacks is simple with Java EE
  • Natural, high performance integration of Java libraries in PHP applications
  • Allows Java developers to use PHP as a front-end technology

Download Quercus Today!


Copyright (c) 1998-2013 Caucho Technology, Inc. All rights reserved.
Caucho®, resin® and quercus® are registered trademarks of Caucho Technology, Inc.


Success Note

"Here at IBRC, we use Resin 4 to maintain high availability and secure transmissions for our flagship SaaS product Open-Line Customer Experience Improvement Tool™.  We take full advantage of load balancing and SSL encryption to achieve our goals of making Open-Line always available and secure to all who use it."

- Stewart Morse

Caucho Resources

  Intro to Resin 4

Interview with Paul Cowan
Cloud-optimized Resin Java EE Web Profile Java application server

Interview with Reza Rahman
Resin 4, CDISource and Java EE 7 & 8

Resin Java EE Web Profile
A truly lightweight standards-based runtime that focuses on ease-of-use for web application development (whitepaper PDF)

Resin 4.0 for Cloud Computing
Easily scale web applications in a cloud environment (whitepaper PDF)

Resin RefCardz
The must have Resin cheat sheet for network administrators and developers (PDF)

CDI AOP Tutorial
Java Standard Method Interception Tutorial

Follow Us!

Facebook: Caucho Technology
Resin Twitter page
  Caucho Blog
Caucho Blog

Caucho Forum


Contact Us
(858) 456-0300