J'ai un grand rapport. Le SQL prend seulement environ 60 secondes pour s'exécuter mais le rendu réel du PDF est ce qui prend tout le temps. Il a des centaines de pages.la demande a dépassé l'étiquette de limite de temps autorisée: cfoutput
Le paramètre global pour les délais d'attente de demande est défini sur 240 secondes.
Je remplace le paramètre Global pour ce rapport et le réglage de la valeur arbitrairement élevée (3600 secondes). De façon réaliste, ce rapport ne peut pas durer plus de 15 minutes.
Quelle que soit la durée de mon délai d'attente, cette page génèrera l'erreur de limite de temps bien avant qu'elle atteigne mon délai d'expiration.
Le SQL peut durer entre 24 secondes et 4 minutes selon le nombre de zones sélectionnées.
Même si je remplace le délai d'expiration, la page génère l'erreur environ 170 secondes (un seul point de données pour cela) après avoir terminé les requêtes. Ainsi, cela arrive parfois même une minute entière avant que le délai d'attente global ne soit atteint.
Y a-t-il une limite au temps qu'un cfdocument peut prendre pour rendre un PDF?
Existe-t-il un moyen d'augmenter ce délai?
Cela peut-il être lié à quelque chose d'autre comme la taille maximale du tampon de sortie?
ici est une fonction personnalisée que je utilise pour tester ce que le requestTimeout est:
<cffunction name="getCurrentRequestTimeout" output="false" access="private" returntype="numeric">
<cfset var rcMonitor = createObject("java", "coldfusion.runtime.RequestMonitor") />
<cfreturn rcMonitor.getRequestTimeout() />
</cffunction>
J'ai placé que dans des taches de couple pour déterminer si le délai d'attente était correctement réglé. Dans tous les cas, il est revenu 3600 secondes.
Edit, voici un autre indice:
Cette références croisées de rapport des données de 8 autres requêtes (qui ont déjà été exécutés dans le contrôleur), il fait le référencement croix dans la vue. Il y a environ un an, nous avons considérablement accéléré cette tâche (en réduisant le temps d'exécution de 1 heure à 10 minutes) en créant des hachages pour les requêtes que nous étions en train de référencer. Une tâche a été effectuée pour supprimer complètement 4 des requêtes que nous avions hachées du rapport. Une fois que j'ai retiré ces appels de fonction BuildHashTable et supprimé toutes les références à ces requêtes, la page ne se bloque plus après 3 minutes, il faut maintenant 7,5 min pour échouer.
coldfusion.runtime.RequestTimedOutException: The request has exceeded the allowable time limit Tag: cfoutput
at coldfusion.tagext.io.OutputTag.doStartTag(OutputTag.java:72)
at cfdump2ecfm625244097._factor54(/WEB-INF/cftags/dump.cfm:118)
at cfdump2ecfm625244097.runPage(/WEB-INF/cftags/dump.cfm:1)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:246)
at coldfusion.filter.CFVariablesScopeFilter.invoke(CFVariablesScopeFilter.java:56)
at coldfusion.tagext.lang.ModuleTag.doStartTag(ModuleTag.java:332)
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2991)
at cfonerror2ecfm289163184.runPage(D:\CF11\facilopstest\wwwroot\HFDS\events\onerror.cfm:8)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:246)
at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:736)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:572)
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2991)
at cfcfml2ecfm2118004321$func$INCLUDEANDRETURNOUTPUT.runFunction(D:\CF11\facilopstest\wwwroot\HFDS\wheels\global\cfml.cfm:138)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487)
at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:420)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:533)
at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2810)
at cfonerror2ecfm1534078820$func$RUNONERROR.runFunction(D:\CF11\facilopstest\wwwroot\HFDS\wheels\events\onerror.cfm:65)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487)
at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:420)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:533)
at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2810)
at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:493)
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2992)
at cfcfml2ecfm2118004321$func$SIMPLELOCK.runFunction(D:\CF11\facilopstest\wwwroot\HFDS\wheels\global\cfml.cfm:44)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487)
at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:420)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:533)
at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2810)
at cfonerror2ecfm1534078820$funcONERROR.runFunction(D:\CF11\facilopstest\wwwroot\HFDS\wheels\events\onerror.cfm:14)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487)
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:420)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:231)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:643)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:432)
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:402)
at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:108)
at coldfusion.runtime.AppEventInvoker.onError(AppEventInvoker.java:491)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:532)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:42)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:142)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:78)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
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:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:437)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:197)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Windows Server 2008 exécutant ColdFusion 11,0,07,296330 Enterprise
Par quelle méthode remplacez-vous le délai d'attente global? –
J'utilise setting requesttimeout = "3600"; dans le contrôleur et dans la vue. (Ceci est une application cfwheels) Ensuite, j'utilise une fonction que j'ai attachée aux superclasses du contrôleur que j'ai trouvé pour tester le délai d'expiration de la requête. (ajouté à la question) –
gnarbarian
Etes-vous sûr de vouloir dire le rendu, par opposition à la création du pdf? –