brookd
Explorer
brookd
Explorer
Activity
‎Oct 20, 2021
08:18 PM
These steps worked (adding the stop of CF to the steps offered above from Adobe):
- Uninstall the SAML package from CF admin UI - Package manager - Installed Packages - Select SAML - Uninstall
- Stop ColdFusion - Clear all folders in - C:\ColdFusion2021\cfusion\bin\felix-cache - Clear all the classes files from C:\ColdFusion2021\cfusion\wwwroot\WEB-INF\cfclasses - Startthe CF server and Install the SAML package
... View more
‎Oct 20, 2021
08:07 PM
It did install cleanly in the end. CF support is suggesting: - Uninstall the SAML package from CF admin UI - Package manager - Installed Packages - Select SAML - Uninstall - Clear all folders in - C:\ColdFusion2021\cfusion\bin\felix-cache - Clear all the classes files from C:\ColdFusion2021\cfusion\wwwroot\WEB-INF\cfclasses - Restart the CF server and Install the SAML package and try. I'll try that and post my results here.
... View more
‎Oct 20, 2021
02:29 PM
Hello, So, the server having the issue had the easySSO SSO components installed before CF2021 was installed. They were not used in the end, but I don't think that is related as they are .NET not JAVA components. Also, this was working fine previously with this install of CF 2021. I am able to copy the neo-saml.xml file from the working server and replace it and SSO seems to be working. I am just unable to do any configuration via the CFADMIN without those errors. The log for Updater 2 shows a couple of errors on its first run. It was run multiple times and eventually completed without errors: Moving files failed: Status: FATAL ERROR Additional Notes: FATAL ERROR - Could not move the file C:\ColdFusion2021\cfusion\lib\updates\hf202100-4212182.jar to the backup location C:\ColdFusion2021\cfusion\hf-updates\hf-2021-00002-328618\backup\lib\updates\hf202100-4212182.jar Moving files failed: Status: FATAL ERROR Additional Notes: FATAL ERROR - Could not move the file C:\ColdFusion2021\cfusion/lib/jackson-mapper-asl-1.9.13.jar to the backup location C:\ColdFusion2021\cfusion\hf-updates\hf-2021-00002-328618\backup/lib/jackson-mapper-asl-1.9.13.jar Moving files failed: Status: FATAL ERROR Additional Notes: FATAL ERROR - Could not move the file C:\ColdFusion2021\cfusion/lib/jackson-core-asl-1.9.13.jar to the backup location C:\ColdFusion2021\cfusion\hf-updates\hf-2021-00002-328618\backup/lib/jackson-core-asl-1.9.13.jar
... View more
‎Oct 14, 2021
12:49 PM
Hello folks, Has anyone recieved this erorr when trying to add or edit a SP within the CFADMIN? Its working on one server and not on the other, both have identical configurations. I get this error when editing an existing SP entry and when trying to save a new one! class coldfusion.saml.SpConfiguration cannot be cast to class coldfusion.saml.SpConfiguration (coldfusion.saml.SpConfiguration is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @1bbea556; coldfusion.saml.SpConfiguration is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @487f3afe)
... View more
‎Sep 16, 2021
02:39 PM
That index was backwards <cffunction name="getJavatoSQLTimeZoneMap" access="public" output="false" returntype="any">
<!--- get the windowsZones.xml file (https://raw.githubusercontent.com/unicode-org/cldr/main/common/supplemental/windowsZones.xml) --->
<cftry>
<cfsavecontent variable="local.xml">
<cfinclude template="/config/windowsZones.xml">
</cfsavecontent>
<cfset local.xml = xmlParse(trim(local.xml))>
<cfcatch>
<cfthrow message="Unable to locate windowsZones.xml or error parsing XML. #cfcatch.message#">
</cfcatch>
</cftry>
<cfset local.tz_java2winmap={
win2java:{},
java2win:{}
}>
<cfset local.childnodes = local.xml.xmlroot.xmlchildren[2].xmlchildren[1].xmlchildren>
<cfloop array="#local.childnodes#" item="local.item">
<cfset local.tz_java2winmap.win2java[local.item.XmlAttributes.other] = local.item.XmlAttributes.type>
<cfset local.tz_java2winmap.java2win[local.item.XmlAttributes.type] = local.item.XmlAttributes.other>
</cfloop>
<cfreturn local.tz_java2winmap>
</cffunction>
<cffunction name="getTimeZoneForSQL" access="public" output="false" returntype="string">
<cfargument name="timezone" type="string" required="true">
<cfif structKeyExists(this.java2wintimezonemap.java2win,arguments.timezone)>
<cfreturn this.java2wintimezonemap.java2win[arguments.timezone]>
<cfelse>
<cfreturn ''>
</cfif>
</cffunction>
... View more
‎Sep 16, 2021
02:32 PM
There is likely a better way to do this, but in case anyone cares, this function will read the xml file from my previous post and create a struct with java2win, and win2java keys for translating the timezones back and forth.. <cffunction name="getJavatoSQLTimeZoneMap" access="public" output="false" returntype="any">
<!--- get the windowsZones.xml file (https://raw.githubusercontent.com/unicode-org/cldr/main/common/supplemental/windowsZones.xml) --->
<cftry>
<cfsavecontent variable="local.xml">
<cfinclude template="/config/windowsZones.xml">
</cfsavecontent>
<cfset local.xml = xmlParse(trim(local.xml))>
<cfcatch>
<cfthrow message="Unable to locate windowsZones.xml or error parsing XML. #cfcatch.message#">
</cfcatch>
</cftry>
<cfset local.tz_java2winmap={
win2java:{},
java2win:{}
}>
<cfset local.childnodes = local.xml.xmlroot.xmlchildren[2].xmlchildren[1].xmlchildren>
<cfloop array="#local.childnodes#" item="local.item">
<cfset local.tz_java2winmap.win2java[local.item.XmlAttributes.type] = local.item.XmlAttributes.other>
<cfset local.tz_java2winmap.java2win[local.item.XmlAttributes.other] = local.item.XmlAttributes.type>
</cfloop>
<cfreturn local.tz_java2winmap>
</cffunction>
... View more
‎Sep 16, 2021
11:24 AM
I found a XML file that has all the conversions! Still testing it but so far looks like like it is perfect. Link is here https://raw.githubusercontent.com/unicode-org/cldr/main/common/supplemental/windowsZones.xml
... View more
‎Sep 16, 2021
11:23 AM
Well at least matches on this site wouldn't get a glazed over look in their eyes when you talk about timezones and offsets. 😉
... View more
‎Sep 16, 2021
09:19 AM
Aww, Charlie, you are right, and I wish the original designer had used UTC. But alas, all the dates are stored in PST. So we run everthing through time zone conversion code which is slow, and painful. SQL Servers' AT TIMEZONE function is helpful in translating the dates though, and is one of the workarounds we are currently reviewing. Thanks for the replies guys! You two are veterans!! Allaire day vets! There's no way your profile pics are recent guys, come on this isn't a dating site 😉 jk
... View more
‎Sep 16, 2021
08:31 AM
Not a dump idea, that is my back up plan 😉 If it is that easy, that would be great. I don't expect it to be that easy for ALL the timezones, although I admittedly have not dumped them all out and made a side-by-side comparison. I feel this approach could be error-prone. I was hoping for a more systematic approach or some interoperability I wasn't aware of that would help translate these values.
... View more
‎Sep 16, 2021
07:53 AM
Hey Folks, We store timezone IDs from java.util.TimeZone, and now we want to use them with SQL Server (2019)'s AT TIMEZONE function. The problem is, the Java name for the timezone is not the same as the name SQL server wants. For example, we store the timezone ID from Java 'Australia/Adelaide'. We can get the full name via java.util.TimeZone.getTimeZone('Australia/Adelaide').getDisplayName(), which returns 'Australian Central Standard Time (South Australia)'. But.... SQL Server wants 'Australian Central Standard Time' and throws an error when using the string returned from Java. --- this works
select datetime AT TIME ZONE 'Pacific Standard Time' AT TIME ZONE 'Australian Central Standard' AS datetime_TimeZone
-- this fails
select datetime AT TIME ZONE 'Pacific Standard Time' AT TIME ZONE 'Australian Central Standard Time (South Australia)' AS datetime_TimeZone Note, our dates are stored in PST and there is no way to easily change that now. We just need to be able to convert Java's name of the timezone to the one SQL server expects which I believe is based on the window registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones Has anyone had to deal with this or have any idea?
... View more
‎Sep 20, 2020
06:34 PM
Thanks for the suggestion; however, this is just one example of where this is happening, and its springled into so many parts of our application that this approach would be time-consuming and error-prone. Its a shame the default behavior changed between versions and is not backward compatible.
... View more
‎Sep 16, 2020
10:57 AM
On CF2016, when using SerializeJSON() to serialize a struct, string values like "true" would get converted to booleans in the JSON. While this could be considered a bug, serializeJSON() has always worked like this, and our code base (client side) is expecting the boolean value when deserializing the strings. Is there any way to enable the old behavoir for the entire app / server on CF 2018? <cfset x = {}>
<cfset x.normal = true>
<cfset x.normalStr = 'true'>
// serialize and dump
<cfdump var="#serializeJSON(x)#">
// on CF2016, we get a boolean value for normalStr
{"NORMALSTR":true,"NORMAL":true}
// on CF2018, the data type is preserved
{"NORMALSTR":"true","NORMAL":true}
I know I can set the metadata to preserve data types, but my code base is to large to find all the various nested structs and keys that would need to have meta data description. I'm looking for a way to make CF2018 serializeJSON() work like it did on 2016. I have also added a regex to replace "true" with true, within the resulting JSON, but this is not ideal and I haven't found all the places where this is causing issues. Anyone know how to turn on the old behavoir of 2016? Thanks!!
... View more
‎Sep 09, 2020
08:23 PM
Did you ever find an answer to this? I've been seeing this on CF2016 for months and have been unable to track down the issue. It doesn't seem to be related to GC as mentioned here https://www.bennadel.com/blog/2580-coldfusion-threads-hanging-on-jdbc-pool-checkin-checkout.htm. Any luck on your end?
... View more
‎Jan 15, 2018
10:57 AM
Has anyone found a fix for this? Using the Eclipse plugin version of CFBuilder 2016, when I select a few lines and hit TAB it can take up to 30 seconds in a big CFC to indent. It is ridiculously slow!! I end up going line by line and tabbing but thats getting old. Why is this happening? Its starting to make CF Builder unusable for me. Anyone find a fix?
... View more
‎Dec 05, 2017
12:25 PM
Hi Guys and Gals, Having a weird issue with javaloader and a new JAR I had a developer write for me. My existing code uses itext 2.1.7 and its loaded via Mark Mandel's javaloader (https://github.com/markmandel/JavaLoader) The existing code merges PDF's together (and does a better job than CFPDF and isn't crippled. Its not complicated code either. The part of the code in question: local.outStream = server.javaLoader.create("java.io.FileOutputStream").init( local.fulloutputpath ); local.copy = server.javaLoader.create("com.lowagie.text.pdf.PdfCopyFields").init(local.outStream); local.PdfReader = server.javaLoader.create("com.lowagie.text.pdf.PdfReader"); Then it does some work. and then closes the PDF: local.copy.close(); That close() call throws an error java.lang.RuntimeException: The document is not open. But it only throws that error if I have added this new JAR I had a guy write for me, to the java loader. I haven't even called the single method of this new class, and it is already breaking my existing code. How can that be? Is it the import statements? Do they somehow overwrite the existing itext libs? The JAVA source code is below - anybody have any idea how to re-write it (outside of re-writing it in CFML, which I guess is an option too..), so that the references to itext (is it the import statements causing an issue??) don't cause issues with other code and itext loaded via the javaloader: package com.pdfutil; import java.io.FileOutputStream; import com.lowagie.text.pdf.PRStream; import com.lowagie.text.pdf.PdfDictionary; import com.lowagie.text.pdf.PdfName; import com.lowagie.text.pdf.PdfObject; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfStamper; /** * Utility class for Pdf page number * */ public class PageNumberUtil { public static void main(String[] args) { // testing String input = "PDF Numbering2.pdf"; String output = "PDF Numbering2_output.pdf"; boolean status = PageNumberUtil.updatePageNumbering(input, output); System.out.println("status=" + status); } public static boolean updatePageNumbering(String inputPath, String outputPath) { System.out.println("updatePageNumbering starting..."); boolean status = true; try { // create pdf reader PdfReader reader = new PdfReader(inputPath); // get total of page Integer numOfPages = reader.getNumberOfPages(); // loop from 1 to numOfPages for (Integer i = 1; i <= numOfPages; i++) { PdfDictionary dictionary = reader.getPageN(i); PdfObject object = dictionary.getDirectObject(PdfName.CONTENTS); if (object instanceof PRStream) { PRStream stream = (PRStream) object; byte[] data = PdfReader.getStreamBytes(stream); // find {pagenum} of {pagetotal} placeholders and replace String dataStr = new String(data); dataStr = dataStr.replace("{pagenum}", i.toString()); dataStr = dataStr.replace("{pagetotal}", numOfPages.toString()); stream.setData(dataStr.getBytes()); } } PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputPath)); stamper.close(); reader.close(); } catch (Exception e) { e.printStackTrace(); status = false; } System.out.println("updatePageNumbering End..."); return status; } }
... View more
‎Dec 01, 2017
06:18 PM
It all makes sense now, thanks Charlie!!
... View more
‎Dec 01, 2017
06:43 AM
Hey Charlie! Haven't tested the performance of that code for a while. These JVM args from our DEV server which has fusionReactor ENT Edition v.6. In production we have the same version of FR and I see: javaagent:C:/FusionReactor/instance/cfusion.cf2016/fusionreactor.jar=name=cfusion.cf2016,address=[masked]:8088 -agentpath:C:/FusionReactor/instance/cfusion.cf2016/frjvmti_x64.dll In the JVM config, but I don't see the debug option in the FR admin page. Should I remove the javaagent and agentpath on our production server?
... View more
‎Jul 05, 2017
06:13 AM
No,its not related (its misspelled with consistency ) It may be to early to say for sure but locking all access to VFS may have resolved this problem... I'll write back in a few days if so...
... View more
‎Jul 02, 2017
07:15 AM
Whats weird is using the VFS seems problematic. I am wondering if these problems are related to the use of virtual directories within the VFS. I only just started using virtual sub directories to organize the temp files and be able to more easily delete them based on where they were stored (ie. temp + more perm files). But check this out: I have a remote monitoring service that checks server health and also checks VFS space remaining by running this code (monitor.cfm) <cfset vfsmetadata = getVFSMetadata('ram')> <cfdump var="#vfsmetadata#" label="Virtual File System"> <cfif vfsmetadata.free lt 10000000> Alert me..... </cfif> The dump is for me if I want to visually look at remaining space Intermittently throughout the day I get this error (Weird I get this error just from calling getVFSMetadata()). --------------------- An error occurred when performing a file operation listFiles on file /widcardparsingtemplates. org.apache.commons.vfs.FileSystemException: Could not list the contents of folder "ram:///widcardparsingtemplates". at org.apache.commons.vfs.provider.AbstractFileObject.getChildren(AbstractFileObject.java:561) at coldfusion.vfs.VFile.listFiles(VFile.java:480) at coldfusion.tagext.io.FileUtils.recursiveDirectorySize(FileUtils.java:122) at coldfusion.tagext.io.FileUtils.recursiveDirectorySize(FileUtils.java:131) at coldfusion.tagext.io.FileUtils.getDirectorySize(FileUtils.java:112) at coldfusion.runtime.CFPage.GetVFSMetaData(CFPage.java:634) at cfmonitor2ecfm1275412139.runPage(monitor.cfm:44) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:360) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:94) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:200) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doRequestNoFilter(FusionReactorCoreFilter.java:712) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFusionRequest(FusionReactorCoreFilter.java:341) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:246) at com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter(FusionReactorFilter.java:121) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at jrun.servlet.FilterChain.service(FilterChain.java:101) at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) Caused by: java.lang.ArrayIndexOutOfBoundsException: 2114 at org.apache.commons.vfs.FileSystemException: Could not list the contents of folder "ram:///widcardparsingtemplates". at org.apache.commons.vfs.provider.AbstractFileObject.getChildren(AbstractFileObject.java:561) at coldfusion.vfs.VFile.listFiles(VFile.java:480) at coldfusion.tagext.io.FileUtils.recursiveDirectorySize(FileUtils.java:122) at coldfusion.tagext.io.FileUtils.recursiveDirectorySize(FileUtils.java:131) at coldfusion.tagext.io.FileUtils.getDirectorySize(FileUtils.java:112) at coldfusion.runtime.CFPage.GetVFSMetaData(CFPage.java:634) at cfmonitor2ecfm1275412139.runPage(C:\inetpub\wwwroot\LF\web\health\monitor.cfm:44) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:360) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:94) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:200) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doRequestNoFilter(FusionReactorCoreFilter.java:712) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFusionRequest(FusionReactorCoreFilter.java:341) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:246) at com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter(FusionReactorFilter.java:121) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at jrun.servlet.FilterChain.service(FilterChain.java:101) at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) Caused by: java.lang.ArrayIndexOutOfBoundsException: 2114 at
... View more
‎Jul 02, 2017
06:14 AM
Ok thanks again for the ideas! I don't understand why a lock would be needed if the file name is unique, but... I guess I may have to try this method and see if it helps.
... View more
‎Jul 01, 2017
07:37 AM
This is on a CF9 server on Windows 2008 We do a lot of writing to and then including from, the VFS (Virtual File System). Very intermittently, we get these errors when attempting to write to the RAM disk. Retrying the failed WRITE operation usually succeeds. The filename is always a unique file name created with createUUID() in the filename. I have read that this stack trace error is related to deleting items from an array while accessing it at the same time. Do I need to lock all access to the VFS? I feel like that would really hurt performance. Should I clean up the temporary files created and written to the VFS at the end of the request, or maybe I should schedule it to run daily so there is less contention for those resources? java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) at java.util.AbstractList$Itr.next(AbstractList.java:343) at org.apache.commons.vfs.provider.ram.RamFileSystem.listChildren(RamFileSystem.java:100) at org.apache.commons.vfs.provider.ram.RamFileObject.doListChildren(RamFileObject.java:81) at org.apache.commons.vfs.provider.AbstractFileObject.getChildren(AbstractFileObject.java:557) at coldfusion.vfs.VFile.listFiles(VFile.java:480) at coldfusion.tagext.io.FileUtils.recursiveDirectorySize(FileUtils.java:122) at coldfusion.tagext.io.FileUtils.getDirectorySize(FileUtils.java:112) at coldfusion.runtime.CFPage.GetVFSMetaData(CFPage.java:634) at cfmonitor2ecfm1275412139.runPage(C:\inetpub\wwwroot\LF\web\health\monitor.cfm:44) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:360) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:94) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:200) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doRequestNoFilter(FusionReactorCoreFilter.java:712) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFusionRequest(FusionReactorCoreFilter.java:341) at com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:246) at com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter(FusionReactorFilter.java:121) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at jrun.servlet.FilterChain.service(FilterChain.java:101) at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) Any help appreciated, the VFS is really not working as well as I hoped it would. Brook
... View more
‎Jul 01, 2017
06:44 AM
Thank you for looking into this! However, I used Fusion Reactor's Line Performance tool and found the majority of the time was spent on the CFINCLUDE (which is when the compiling happens). Having a smaller CFML string means a shorter compilation process. It is not the WRITE that is slow, it is the compilation time on the include. If you add timer code around each part of code I am sure you will see the same.
... View more
‎Jun 22, 2017
09:26 PM
VMWARE Virtual Machine Windows Web Server 2008 R2, SP1 Intel Xeon(R) CPU x5660 2.8GHZ x 2 12 GB RAM 64 Bit Note, I see the same slowness on local workstation (windows 7 64 BIT) (not a VM)
... View more
‎Jun 22, 2017
08:19 AM
Sorry, the RAM disk needs a mapping for the cfinclude. Save the code below as application.cfc to the same directory or just add the single line for the mapping to YOUR application.cfc <cfcomponent output="false"> <cfset this.mappings[ "/ram" ] = "ram://" /> </cfcomponent>
... View more
‎Jun 22, 2017
07:37 AM
I don't know why the JVM config is not coming through formatted, here it is again: # # VM configuration # # Where to find JVM, if {java.home}/jre exists then that JVM is used # if not then it must be the path to the JRE itself java.home=C:\\ColdFusion2016\\jre # # If no java.home is specified a VM is located by looking in these places in this # order: # # 1) ../runtime/jre # 2) registry (windows only) # 3) JAVA_HOME env var plus jre (ie $JAVA_HOME/jre) # 4) java.exe in path # # Arguments to VM java.args=-server -Xms6024m -Xmx6024m -XX:+UseParallelGC -Xbatch -Dcoldfusion.home={application.home} -Duser.language=en -Dcoldfusion.rootDir={application.home} -Dcoldfusion.libPath={application.home}/lib -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dcoldfusion.jsafe.defaultalgo=FIPS186Random -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog -Djava.util.logging.config.file={application.home}/lib/logging.properties -javaagent:C:/FusionReactor/instance/VMDEBUG/fusionreactor.jar=name=VMDEBUG,address=8088 -agentpath:C:/FusionReactor/instance/VMDEBUG/frjvmti_x64.dll -Dcoldfusion.classPath={application.home}/lib/updates,{application.home}/lib,{application.home}/lib/axis2,{application.home}/gateway/lib/,{application.home}/wwwroot/WEB-INF/flex/jars,{application.home}/wwwroot/WEB-INF/cfform/jars # -XX:+UseParallelGC # -XX:NewSize=5200m -XX:MaxNewSize=5200m -XX:SurvivorRatio=6 -XX:TargetSurvivorRatio=4 # Comma separated list of shared library path java.library.path={application.home}/lib,{application.home}/jintegra/bin,{application.home}/jintegra/bin/international,{application.home}/lib/oosdk/classes/win # Comma separated list of shared library path for non-windows java.nixlibrary.path={application.home}/lib java.class.path={application.home}/lib/oosdk/lib,{application.home}/lib/oosdk/classes
... View more
‎Jun 22, 2017
07:34 AM
Hello, my code snippet IS shared in my previous reply, can you see it? I have included it again below the JVM config: My JVM config file is below: # # VM configuration # # Where to find JVM, if {java.home}/jre exists then that JVM is used # if not then it must be the path to the JRE itself java.home=C:\\ColdFusion2016\\jre # # If no java.home is specified a VM is located by looking in these places in this # order: # # 1) ../runtime/jre # 2) registry (windows only) # 3) JAVA_HOME env var plus jre (ie $JAVA_HOME/jre) # 4) java.exe in path # # Arguments to VM java.args=-server -Xms6024m -Xmx6024m -XX:+UseParallelGC -Xbatch -Dcoldfusion.home={application.home} -Duser.language=en -Dcoldfusion.rootDir={application.home} -Dcoldfusion.libPath={application.home}/lib -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dcoldfusion.jsafe.defaultalgo=FIPS186Random -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog -Djava.util.logging.config.file={application.home}/lib/logging.properties -javaagent:C:/FusionReactor/instance/VMDEBUG/fusionreactor.jar=name=VMDEBUG,address=8088 -agentpath:C:/FusionReactor/instance/VMDEBUG/frjvmti_x64.dll -Dcoldfusion.classPath={application.home}/lib/updates,{application.home}/lib,{application.home}/lib/axis2,{application.home}/gateway/lib/,{application.home}/wwwroot/WEB-INF/flex/jars,{application.home}/wwwroot/WEB-INF/cfform/jars # -XX:+UseParallelGC # -XX:NewSize=5200m -XX:MaxNewSize=5200m -XX:SurvivorRatio=6 -XX:TargetSurvivorRatio=4 # Comma separated list of shared library path java.library.path={application.home}/lib,{application.home}/jintegra/bin,{application.home}/jintegra/bin/international,{application.home}/lib/oosdk/classes/win # Comma separaed list of shared library path for non-window java.nixlibrary.path={application.home}/lib java.class.path={application.home}/lib/oosdk/lib,{application.home}/lib/oosdk/classes Code Snippet to reproduce slow compile times: <cfset filename = 'wildcardparsing-#createUUID()#.cfm'> <cfset tempfilepath = 'ram://'> <cfset tempIncludefilepath = '/ram/'> <!--- create CFML ---> <cfset cfml = '<cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif>'> <cfset local.submissionTimerStart=gettickcount()> <cfloop from="1" to="1000" index="index"> <cfset filename = 'wildcardparsing-#createUUID()#.cfm'> <cffile action="write" output="#cfml#" file="#tempfilepath##filename#" /> <cfsavecontent variable="parsedSTR"> <cfoutput> <cfinclude template="#tempIncludefilepath##filename#" /> </cfoutput> </cfsavecontent> </cfloop> <cfset local.submissionTimerEnd=gettickcount()> <cfset local.runDuration=local.submissionTimerEnd-local.submissionTimerStart> <cfoutput> Compile Completed in #local.runDuration# ms... </cfoutput>
... View more
‎Jun 19, 2017
03:28 PM
JVM config is basically default out of the box, but with the memory bumped up to 6GB. The code is a simple loop, try it on CF9 vs CF2016 and you will see a huge difference in speed: <cfdump var="#getVFSMetaData('ram')#"> <cfset filename = 'wildcardparsing-#createUUID()#.cfm'> <cfset tempfilepath = 'ram://'> <cfset tempIncludefilepath = '/ram/'> <!--- create CFML ---> <cfset cfml = '<cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif><cfset x = 1><cfif x is 1>1<cfelse>2</cfif>'> <cfset local.submissionTimerStart=gettickcount()> <cfloop from="1" to="1000" index="index"> <cfset filename = 'wildcardparsing-#createUUID()#.cfm'> <cffile action="write" output="#cfml#" file="#tempfilepath##filename#" /> <cfsavecontent variable="parsedSTR"> <cfoutput> <cfinclude template="#tempIncludefilepath##filename#" /> </cfoutput> </cfsavecontent> </cfloop> <cfset local.submissionTimerEnd=gettickcount()> <cfset local.runDuration=local.submissionTimerEnd-local.submissionTimerStart> <cfoutput> Compile Completed in #local.runDuration# ms... </cfoutput>
... View more
‎Jun 08, 2017
08:13 PM
Anyone? The server is actually slow all around, decreased performance across the board - but the start up time compile time has gone through the roof. Anyone else run into this?
... View more
‎Jun 08, 2017
07:28 PM
We are seeing the same thing! The VFS seems to fill up so quickly, but without actually being used! And setting it to a lower setting seems to work better. You also mentioned compiling and including CFML. Did you find this way slower on CF11 vs CF9? We're seeing a huge performance hit and slow down in compile times. Were you ever able to move to CF11? Kinda wish we were back on CF9 now... Any pointers appreciated! Thanks in advance. Brook
... View more