One of the biggest complaints we hear in the CFML world is "Where are the developers?". With that in mind and offering the community a place where they can search, post and look for *Box and CFML related jobs, we have created the ColdBox CFML Job Board. Hopefully we can promote help not only companies and recruiters find developers, but also so ColdBox ...
Blog
ContentBox Modular CMS v1.5.7 Released!
ContentBox Modular CMS v1.1.7 has now been released sporting over 20 issues and enhancements. Check out our engineering blog for an in-depth overview...
Tip of the Week: Amazing Interception Points
One of the most powerful features of ColdBox are interceptors. They follow a publisher/subscriber model that lets you decouple your application code and latch on to keys points in the ColdBox framework. You can create and announce as many custom interception points as you like, but today I want to review the built-in points that the framework provides you.
All it takes is a simple CFC and a line of config code to register a new interceptor, or "listener" that will be invoked any time an interception point is reached that the CFC is listening for. You can run your own auditing, logging, or re-route the request. Please skim through these and keep them in mind as you build your ColdBox applications.
JSMin 3.1 released!
We just did a critical fix for JSMin with version 3.1. We have also completely documented this project for your viewing pleasure in our wiki: http://wiki.coldbox.org/wiki/Projects:JSMin-Compressor.cfm
Version 3.1
- Critical fix for generating files under high load
This fix will prevent fr...
Couchbase: Ortus Railo Extension
So far in this series, we’ve introduced you to Couchbase Server and showed you how to set up a cache cluster. Then we covered using that cluster as an ORM Secondary Cache as well as connecting to it through our open source CacheBox Provider. Today, we’re going to show how to get the deepest integration yet for those of you running Railo’s Open Source CFML server via our upcoming Ortus Railo Couchbase Extension. Our extension will allow you to leverage Couchbase directly from Railo as a caching engine, but also as a storage container for session or even client scope variables. The extension also introduces several native ColdFusion functions that will allow you to interact with Couchbase directly from CFML code for your NoSQL or Caching needs. So let's get to it and start off by introducing our extension.
Capabilities
Caching
CFML has a set of cache-related functions that allow you to set and retrieve objects from an application cache. Adobe ColdFusion uses EHCache, an in-process Java caching solution. Railo, the open source CFML engine, also can use EHCache, but they went a step further and introduced a pluggable cache architecture that allows you to write a Java adapter class that will connect to any underlying caching engine; much how CacheBox works but right into the engine.
Session/Client Storages
Railo also allows these caches to be used for session or client storage as an added bonus. This is extremely handy if you have a farm of load balanced web servers and you want to use session storage without using session replication or enabling sticky sessions on your load balancer. By configuring your session storage to use an out-of-process distributed cache you are allowing your site to scale out easily since the application servers won't be taxed with storing session data for all your users in their in-process heap. It will also allow for your session information to survive server restarts and provide a much better user experience for your application. Lastly, it can allow your load balancers to run round-robin algorithms instead of the typical sticky session approach. This will bring a much more stable cluster farm where load can be distributed evenly and without user segregation.
Native Integration
Couchbase is not only an amazing caching solution but also a NoSQL database, as we have seen throughout our series. Having the capabilities to interact with it easily via CFML was our next step of introducing several native CFML functions thanks to Railo's extension architecture. This is where we come in. We here at Ortus Solutions have developed a commercial extension for Railo Server that adds Couchbase support for the native cache functions, as well as query/template/function caches, session/client storage and native CFML functions for NoSQL integration. This extension is built on top of the Couchbase Java SDK and truly gives you low-level access to the power of Couchbase Server.
Couchbase: CacheBox Integration
In our previous posts, we covered how to get Couchbase installed and set up your first cluster. Then we showed you how to use Couchbase for an ORM secondary cache. Now it’s time to showcase our Couchbase CacheBox provider that we released just a few days ago. This is a CFML provider that uses the Java SDK for Couchbase and lets you create one or more named caches in CacheBox that connects to one or more buckets in a Couchbase cluster. Once you connect up CacheBox, you can seamlessly also store ColdBox Platform cached events/views in Couchbase along with anything else you use the CacheBox API for. So basically you have full Couchbase storage capabilities from ColdBox and non-ColdBox applications. Let’s get started!
ForgeBox and Code
The CacheBox Couchbase provider does not ship with the ColdBox core, but can be found in our community repository; ForgeBox. You can use this provider in any installation of CacheBox that is bundled with the ColdBox Platform, or in a standalone installation. Here’s some handy links for you:
- Official ForgeBox Entry - http://www.coldbox.org/forgebox/view/Couchbase-Provider
- GitHub Repository - https://github.com/ColdBox/cachebox-couchbase
- Documentation - http://wiki.coldbox.org/wiki/CacheBox-Couchbase.cfm
New ColdBox LITE Ref Card Released
We are pleased to announce our release of the ColdBox LITE Ref Card. It is available in PDF form so you can view...
Using Couchbase for Your Hibernate Secondary Cache
In our first two posts, we covered how to install Couchbase server
Couchbase: Secondary ORM Configuration & Setup
In our first two posts, we covered how to install Couchbase server and get a cluster up and running. In this post we are going to put that cluster of yours to use and show you how to configure it as an ORM secondary cache provider for your ColdFusion applications.
Please remember that the installation instructions are pretty much the same for Adobe ColdFusion and Railo CFML.
If your “cluster” is still just a single server, don’t worry. The size and configuration of a Couchbase cluster is seamlessly invisible to the connecting client. Meaning you can grow and scale your cluster without changing your setup/connection code.
At this point in time, there is no Couchbase-specific library for a Hibernate secondary cache, but luckily for us, Couchbase is compatible with the memcached protocol, so we can use the memcached library. The only drawback is that if you are connecting on the standard port of 11211 to Couchbase, the library will only be able to connect to the “default” bucket. To use a named bucket for your ORM Secondary cache, you will need to assign the Couchbase bucket you create to a unique port number with NO password when you create it in Couchbase Administrator application.