May 14, 2013 · By Mark Drew · No Comments
LONDON, UK, May, 11, 2013 — The Railo Company Ltd; creators of the Open Source Railo Server and a leading global provider of CFML products and services and Daemon; a well established web development company based in Australia, announced that they are teaming up. Through the partnership, joint customers can rely on Daemon to support Railo Server throughout the APAC territory.
The partnership forms a centre of technical excellence and a Sales and Marketing alliance between The Railo Company and Daemon.
[Read more →]
March 14, 2013 · By Mark Drew · 5 Comments
In Railo Version 4.1 we have put some thought into making your applications portable. One of most obvious things that comes to mind as a requirement for an application is defining the datasource(s) that it needs.
Already you can define the name of a datasource you are using by doing:
In version 4.1 we have enabled you to define the WHOLE connection string to the datasource in the Application.cfc file. The easiest way to see this is to actually create a datasource connection in the Railo Web Administrator. Once you have done that click on the "Edit" datasource button:
Then, at the bottom of the Edit Datasource screen you can see the snippet that you can use to actually define this datasource in the Application.cfc, for example:
You can now copy and paste that into your Application.cfc:
delete the datasource from the administrator and use the "mydatasource" datasource as you would have done anyway!
The generated example above is the "native" way that Railo needs datasources defined. But this is not all, we have a "simpler" way to define datasources, and that is by giving it the fields you would expect in the administrator. So for the above example (where we used the class and connection string) we can also define it with the field names you would expect:
Default and Inline Datasources
Defining default datasources can also be done by using the
this.defaultDatasource parameter. You can then either refer to a datasource you have defined:
or create a datasource within the parameter itself :
Finally this is also true for ORM settings. You an define a datasource within your
this.ormsettings structure too:
Side note about passwords:
You might notice that the password is encrypted in the "
password" attribute. This is shown by the "
encrypted:" prefix to the long string of code. What Railo has done is get your password and encrypted it. Making it safer to use within your code.
Of course, you don't have to use encrypted strings. you can inou can replace the clear text password if you like rather than using the
Have fun with Railo!
Features · Railo 4.1 · Tips
March 08, 2013 · By Mark Drew · 3 Comments
Version 4.1 of Railo brings with it many updates and improvements. One of these improvements that this version brings is the new way in which Railo Server now manages Java class information.
Each time a CFML template is modified, Railo recompiles it and generates a new Java class file. This has, up until now, had two major implications:
- The JVM keeps the compiled class information in an area called the Permanent Generation (commonly referred to as PermGen). This area is a finite resource, so the more changes you make to your templates the more memory is consumed. The problem is that, as the name implies, this information is supposedly "Permanent" and therefore the memory is not reclaimed by the Garbage Collector the same way as the object memory on the Heap does.
- In order to dispose of the loaded classes, Railo had to dispose of the class loader that loaded that class, which resulted in the undesired disposal of all the other classes that were loaded by that class loader. That of course meant that all of the classes that were disposed of unnecessarily needed to be loaded again.
So what's new now?
Now Railo has the ability to modify the Java bytecode of a loaded class -- so instead of unloading a bunch of classes and then loading them back -- Railo simply updates the bytecode for the Java class in place, which results in a huge performance gain and improved PermGen memory management.
The only thing you have to do in order to take advantage of this new feature is to enable the Java Agent for the JVM. This can be done easily by using the command line switch
-javaagent and specify the location of the railo-inst.jar in the format:
In most cases when you login to the Railo Server Administrator, Railo will tell you the correct path to the jar file. For example, on a typical Railo Express setup that path is
"lib/ext/" so to use it simply open the batch/shell file that you use to start Railo, and add
-javaagent:lib/ext/railo-inst.jar to the command line arguments.
A typical command line would be:
java -javaagent:lib/ext/railo-inst.jar -Xms256M -Xmx1024M -jar start.jar
Usually we conclude our messages with the statement "Have fun with Railo", but we think that this time it would be more accurate to say:
Be productive with Railo!
Performance · Railo 4.1
March 01, 2013 · By Mark Drew · 5 Comments
The Engineering team have been busy over the last couple of months getting Railo 4.1 ready and we are pleased to announce that we now have a public beta of Railo 4.1 available!
Some of the highlights of this new version:
- Create a Datasource Definition in the Application.cfc (RAILO-1935)
- You can now enable full null support in Railo including the "null" keyword (RAILO-2194)
- Great enhancement to multi-threading! Now all the each functions support the argument "parallel" (RAILO-2158)
- Try it again! With help of "retry" you can reexecute a try block that had failed before (RAILO-2176)
- More control with nested loops! labels allow you to specify which loop you refer to with "break" and "continue" (RAILO-2179)
- Railo rocks! The new Elvis Operator ( ?: ) will help you to write faster and cleaner code! (RAILO-2195)
- The missing piece! With help of the function componentListPackage() you can easily list all of the available CFCs of a certain package (RAILO-2307)
- Keep it efficient! Using the attribute lazy="true" with cfquery will defer the loading of data to memory to the time you try to access it (RAILO-1641)
But that's not all:
- Smart Whitespace management allows you to keep preformatted text in tags like <textarea> and <code> (RAILO-142)
- Generate heapdumps easily with use of the <cfadmin> tag, (final release will have an option to do so from the Railo Admin) (RAILO-2162)
- Full control of how Railo buffers suppressed output (RAILO-2157)
- Per function setting of how the local scope should be handled using the 'localmode' attribute (RAILO-2142)
- Pass the attribute async="true" to <cfdump> and dump large objects to file without slowing down your script (RAILO-2185)
- Ability to remove space between cffunction and cfargument (RAILO-2040)
- New Function: queryColumnData as improvement over the function valueList (RAILO-2084)
- Second parameter to the "round()" function allows to specify the precision(RAILO-2139)
- Replace() and ReplaceNoCase() accept an optional Struct argument for populating text templates (RAILO-2160)
- Add support for attribute "preauth" to cfhttp for more control over authentication (RAILO-2244)
- Add support to define custom locale date/time formats (RAILO-464)
- The Railo admin is now faster, by using a sprite for image loading (RAILO-2225)
- Improved string based filters for cfdirectory (RAILO-2188)
- The function fileCopy now support the argument overwrite to specify the handling of existing files (RAILO-2133)
You can find Railo 4.1 Beta in our Download Section
Over the next few weeks we shall go into each of these features and some other new items so that you can get the most of Railo 4.1!
Have fun with Railo!
New release · Railo 4.1
November 27, 2012 · By Gert Franz · 11 Comments
Sometimes receiving an error is an indication, that something isn't in the stat you expect it to be. So we have introduced the new tag CFTRY. It comes with a set of jump statements which will be introduced in Railo 4.1 and which we will be blogging about soon. So let's start with CFTRY.
[Read more →]
CFML · Features · New release · Railo 4.1
November 20, 2012 · By Gert Franz · No Comments
Today we released the last release candidate for Railo 4.0. The following fixes have been made since version 4.0.0.013, which is the official download release at the moment.
[Read more →]
Features · Railo 4.0 · Release
November 20, 2012 · By Gert Franz · 1 Comment
Today I needed to compare two arrays in order to find out what the differences are between the two arrays. In PHP there are around 10 dfferent functions to find out the differences between two arrays. So what I ended up doing is to create a function arrayCompare().
[Read more →]
Features · HowTo · Railo 4.0 · Tips
November 19, 2012 · By Gert Franz · 4 Comments
Last week I needed to write a piece of software that analyzes the HTTP user agent and then determines what's behind the single
log entries. So I was scanning the net for a piece of code that would help me with a solution.
[Read more →]
cache · Performance · Railo 4.0
October 02, 2012 · By Gert Franz · 1 Comment
I am really glad to be back in the US for the CFML Government Conference and MuraCon. The Government Conference is taking place on October 9th in Washington, DC. This is the first conference organized by the OpenCFML Foundation and as far as I know it is one of the first events that presents CFML solutions for government agencies and organizations.
I will be there for this event and for MuraCon on October 10th and 11th and I will present about the upcoming release of Railo 4.0 due this month. If you want to meet me in person or you want to chat about Railo, I am more than happy to help out.
See you in Washington. And if you haven't reserved for the OpenCFML Foundation event you can do so on the official website.
Conference · Railo 4.0
September 04, 2012 · By Gert Franz · 2 Comments
One of the downsides of CFHTTP is that it does not work with NTLM authentication. The latest version of Railo 4.0.1 allows now to use NTLM authentication as well.
[Read more →]
Features · HowTo · Preview · Railo 4.0 · Tips