18

I'm trying to convert an Application.cfc to script. The original had this:

<cfcomponent displayname="Application" output="false">
     <cfset this.name               = "testing">
     <cfset this.applicationTimeout = createTimeSpan(0,1,0,0)>
     <cfset this.sessionManagement  = true>
     <cfset this.sessionTimeout     = createTimeSpan(0,0,30,0)>

     <cfsetting requesttimeout="20">
     ...

I can't figure out how to convert the cfsetting tag to script. The following attempts don't work:

setting requesttimeout="20"; // throws a "function keyword is missing in FUNCTION declaration." error.
setting( requesttimeout="20" ); // throws a "Variable SETTING is undefined." error.

It looks like Railo may be supporting it (link), but I can't find an equivalent for the cfsetting tag in ColdFusion's documents

Ivan Aksamentov - Drop
  • 12,860
  • 3
  • 34
  • 61
Micah
  • 1,221
  • 17
  • 42

5 Answers5

24

There isn't one. Normally I'd suggest filing an ER for this, but there already is. What I'd recommend is putting into a CFM file and using include to bring it in.

MightyE
  • 2,679
  • 18
  • 18
Raymond Camden
  • 10,661
  • 3
  • 34
  • 68
8

Give this a try

<cfscript>
createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setRequestTimeout( javaCast( "double", 20 ) );
</cfscript>

or this

<cfscript>
createObject( "java", "coldfusion.runtime.RequestMonitor" ).overrideRequestTimeout( javaCast( "long", 20 ) );
</cfscript>

where 20 is your cfsetting requesttimeout value

Mike Causer
  • 8,196
  • 2
  • 43
  • 63
7

In CF11 (and I think CF10), per the docs you can do:

setting enablecfoutputonly="true" requesttimeout="180" showdebugoutput="no";
philcruz
  • 8,265
  • 5
  • 25
  • 28
  • 2
    The question is about CF9, but since this is a top result in Google regardless of version I thought it would be useful to include here and to include the actual code sample. – philcruz Sep 23 '15 at 15:25
4

These cfml scripts:

<cfsetting enablecfoutputonly="true" />
<cfsetting requesttimeout="60" />
<cfsetting showdebugoutput="false" />

should work in cfscript as these:

createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setEnablecfoutputonly(true);
createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setRequestTimeout(javaCast( "double", 60 ));
createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setShowdebugoutput(false);
ЯegDwight
  • 24,821
  • 10
  • 45
  • 52
  • 2
    As this is not documented, I would not recommend using this in production code. – Raymond Camden Aug 30 '12 at 15:25
  • 3
    Poor documentation is no excuse for not using features built in to the software. The only difference is you are just responsible for ensuring they are still present in future editions. There has been plenty of documented features that have broken in newer versions anyway. So, long story short, make sure you use a testing framework and trust your tests more than incomplete/inaccurate documentation. – Mike Causer Dec 03 '14 at 23:55
0
setting.requesttimeout="3000";

This should work

Sven Eberth
  • 3,057
  • 12
  • 24
  • 29