In my last post I wrote about using RAM as a nice resource to render things from. For this post I shall go through doing a quick demo of the database resource.

That's right. You can use a database exacly like you would a file system.

Before we get started, with the latest version of Railo you need to first add the following line into your <web-root>/WEB-INF/railo/railo-web.xml.cfm

 

<resources> ...
<resource-provider arguments="case-sensitive:true;lock-timeout:1001;prefix:test_;" class="railo.commons.io.res.type.datasource.DatasourceResourceProvider" scheme="db"/>
</resources>

It might be there already but commented out. This essentially adds another resource that you can use to create mappings.

Next, just create a database in mysql, nothing fancy, you just need to then create a datasource in either your web or server admin. I called mine "resourcedb" (imaginative eh?)

Now that we have the database, we need to create a mapping to this database. To address this newly created datasource as a mapping we add the following under the Archives & Resources - Mappings section.

Virtual: /dbresource
Resource: db://resourcedb

Now you are set! Here is my code now:

<cfif NOT DirectoryExists("/dbresource/elvis/")>
<cfdirectory action="create" directory="/dbresource/elvis"/>
</cfif>
<cffile action="write" file="/dbresource/elvis/dump.cfm" output="<cfdump eval=server>">
<cfdirectory action="list" directory="/dbresource" name="dbfiles" recurse="true"/>
<cfdump eval=dbfiles />

And you should now get a nice list of the files in your db resource. This is useful if you want to share these files across distributed servers without exposing the file system itself.