标签: coldfusion

ColdFusion邮件队列停止处理

我们的CF服务器偶尔会停止处理邮件.这是有问题的,因为我们的许多客户都依赖它.

我们在网上发现了在无法投递的文件夹中提到零字节文件的建议,因此我创建了一个每三分钟删除一次的任务.但是,再次发生了停工.

我正在寻找诊断和解决此问题的建议.

  • CF 8标准
  • WIN2K3

添加:

  • 队列失败时邮件日志中没有错误
  • 由于我们发送了大量邮件,因此我们没有尝试在不使用队列的情况下运行此操作

新增2:

  • 它对spool文件夹中的任何文件似乎都不是问题.当我们重新启动邮件队列时,它们似乎都正确处理.

补充3:

  • 我们没有使用附件.

coldfusion administration

13
推荐指数
2
解决办法
8583
查看次数

将application.cfc扩展到子目录中

我有以下两个文件,并希望第二个扩展第一个:

  1. wwwroot的\网站\的Application.cfc
  2. wwwroot的\网站\目录\的Application.cfc

但是,当我为第二个文件声明组件时,我不确定要在extends属性中放入什么. 我的问题是几个开发站点(有一个共享的SVN存储库)正在运行ColdFusion的同一个实例,所以我不能像这样在CF管理员中创建一个映射:

<cfcomponent extends="site.application">
Run Code Online (Sandbox Code Playgroud)

但是,ColdFusion不喜欢:

<cfcomponent extends="..application">
Run Code Online (Sandbox Code Playgroud)

或任何动态输入,如:

<cfcomponent extends="#expandpath('..').#application">
Run Code Online (Sandbox Code Playgroud)

创建运行时映射(如此处)似乎也不可行.在基础application.cfc中创建它是没用的,因为在声明继承cfc时该代码尚未执行; 并且我无法在定义继承组件之前创建映射,因为还没有应用程序将其附加到.

有什么方法可以引用父目录来完成我的扩展吗?

编辑以澄清:由于上面的粗体文本,ApplicationProxy解决方案不起作用.现在,作为一种解决方法,我们只是不将\ dir\application.cfc检查到SVN,以便每个开发人员都可以保留一个扩展他/她自己的根application.cfc的版本.显然,这并不理想.

coldfusion cfc application.cfc

13
推荐指数
2
解决办法
6351
查看次数

如何处理CFML中的时区?

如何处理CFML中的时区?到目前为止,我编写的所有应用程序都只使用CF服务器和/或SQL服务器的默认时区.

你们通常做什么?您是否使用GetTimezineInfo()和DateAdd()将所有日期存储在GMT中,并根据登录用户的偏好将所有时间转换为正确的时区?

或者你们使用任何java方法?

coldfusion timezone datetime cfml

13
推荐指数
1
解决办法
1690
查看次数

ColdFusion - 搜索结构数组的有效方法是什么?

我在ColdFusion中有一个半大(数百个记录)的1维数组.数组中的每个项都是具有多个属性的结构.我想在数组中搜索具有特定"name"属性的结构.我知道对于一个字符串值数组,我可以使用Java方法,如下所示:

<cfset arrayIndex = myArray.indexOf("WhatImLookingFor") + 1>
Run Code Online (Sandbox Code Playgroud)

...但这对结构数组不起作用.我也知道我可以这样蛮力:

<cfset arrayIndex = 0>
<cfloop from="1" to="#ArrayLen(myArray)#" index="counter">
    <cfif myArray[counter].name IS "WhatImLookingFor">
        <cfset arrayIndex = counter>
    </cfif>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

......但我觉得必须有一种更有效的方法.有人有比这更好的解决方案吗?您可以假设每个结构中都存在"name"属性,并且数组中没有间隙或其他对象.

arrays algorithm coldfusion search struct

13
推荐指数
2
解决办法
1万
查看次数

ColdFusion安全

从恶意用户那里获取coldfusion网页的最佳做法是什么?(包括但不限于sql注入攻击)

cfqueryparam足够吗?

security coldfusion sql-injection railo cfml

13
推荐指数
2
解决办法
1479
查看次数

使用ColdFusion从字符串末尾删除设置的字符数

这里有简单的请求(希望如此).

我有一个字符串,虽然它的长度不同,但总是需要删除最后6个字符.

使用第三方Web服务,因此在输出之前我无法编辑XML中的响应.

如果有人能建议快速修剪它们,我真的很感激!

这是我要使用的字符串:

#daysEvent[iItem].XmlChildren[iEvent].XmlChildren[16].XmlText#
Run Code Online (Sandbox Code Playgroud)

谢谢!

coldfusion coldfusion-8

13
推荐指数
1
解决办法
1万
查看次数

如何使用Coldfusion CFHTTP将JSON数据发布到远程API

我确信我完全搞砸了,但是在Stack Overflow用户的帮助下我得到了这么多,所以非常感谢到目前为止.

我需要将JSON数据POST到远程API.显然,由于SOP问题,我无法使用jQuery,而且远程API不支持JSONP.

我也不想使用任何类型的代理来解决SOP限制.

根据API文档(http://myemma.com/api-docs/),这是他们期望的数据格式(请求和响应数据作为JSON传输):

POST https://api.e2ma.net//123/members/add
{
  "fields": {
    "first_name": "myFirstName"
  }, 
  "email": "email@domain.com"
}
Run Code Online (Sandbox Code Playgroud)

这是我迄今为止构建的,但继续从远程API接收"无法解析JSON"错误:

<cfset fields[name_first]="#SerializeJSON( "myFirstName" )#" />
<cfset form.email="#SerializeJSON( "email@domain.com" )#" />

<cfhttp
  url="https://api.e2ma.net/123/members/add"
  method="POST"
  username="username"
  password="pssword"
  useragent="#CGI.http_user_agent#"
  result="objGet">

  <!--- add email --->
  <cfhttpparam
    type="formfield"
    name="email"
    value='#form.email#'
  />

  <!--- add field: name_first --->
  <cfhttpparam
    type="formfield"
    name="fields"
    value='#fields[name_first]#'
  />

</cfhttp>

<cfoutput>#objGet.FileContent#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

同样,我肯定会以某种方式破坏我的数据结构,但我不确定我做错了什么,特别是关于正确设置"fields":{"first_name":"myFirstName"}结构/数组.

coldfusion json cfhttp

13
推荐指数
3
解决办法
3万
查看次数

使用SerializeJSON防止ColdFusion将字符串转换为数字

我有ColdFusion 9.0.1与最新的修补程序(4).我需要ColdFusion来返回所有带有引号的JSON数据(作为字符串).我有以下问题:

<cfset test = StructNew()>
<cfset test.name = "1234.100">
<cfoutput>#SerializeJSON(test)#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

输出的文字是:

{"name":1234.100}
Run Code Online (Sandbox Code Playgroud)

每个javascript JSON解析器都将其转换为1234.1并且不保留尾随0.我需要ColdFusion输出为字符串或javascript解析器以保持尾随0.有任何想法吗?

这是一个简化的例子.我从数据库中获取这些数据.

javascript coldfusion json coldfusion-9

13
推荐指数
3
解决办法
4839
查看次数

ColdFusion调度程序线程吃CPU

我已经在开发盒上运行CF10,Windows 7,64位.每隔一分钟左右,CF10的CPU使用率将在大约20秒内上升到100%并再次下降.这很规律.

我发现很难诊断出这个问题.我已经看到了关于客户端变量清除,日志记录,监控和各种方式的讨论 - 但我已经把这些全部转为无济于事.

使用VisualVM,我设法将问题跟踪到"调度程序"线程.我有5个处于等待状态.每个都会定期运行,从而大大提高CPU的性能.采取线程转储,似乎所有这些线程都在调用java.io.WinNTFileSystem.getBooleanAttributes- 我已经看过几次提到的可能存在问题.

更新:最近我一直在onSessionEnd上玩另一个应用程序,并发现scheduler-x线程似乎是ColdFusion的内部 - 我的onSessionEnd任务似乎总是在其中一个线程中运行.

查看temp文件夹,我可以看到已经创建了许多EH Cache文件夹,我认为这些文件夹与查询缓存有关.我运行的应用程序相当广泛地使用它.我认为清除临时文件夹可能会提高性能,但它没有任何效果.

值得注意的是,如果我在没有实际调用任何应用程序的情况下启动CF服务,则不会出现问题.这可能表明问题出在应用程序本身,但它们不会在生产中造成任何问题 - 仅限于此框.也没有设置任何计划任务.

下面是导致高CPU的一个线程的示例.我很感激任何帮助来诊断这个线程正在做什么和为什么,以及如何可能阻止它使用这么多资源.

"scheduler-2" - Thread t@84
   java.lang.Thread.State: RUNNABLE
    at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
    at java.io.File.isDirectory(File.java:849)
    at coldfusion.watch.Watcher.accept(Watcher.java:352)
    at java.io.File.listFiles(File.java:1252)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:386)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.getFiles(Watcher.java:397)
    at coldfusion.watch.Watcher.checkWatchedDirectories(Watcher.java:166)
    at coldfusion.watch.Watcher.run(Watcher.java:216)
    at coldfusion.scheduling.ThreadPool.run(ThreadPool.java:211)
    at coldfusion.scheduling.WorkerThread.run(WorkerThread.java:71)
Run Code Online (Sandbox Code Playgroud)

我的环境:

  • 赢7位64位
  • CF10更新12
  • JDK 1.8.0_11

问题出现在多个版本的JVM上 - 此版本目前用于使监控可用.

我的java设置:

  • 最小堆大小:512mb
  • 最大堆大小:1024mb

    -server -XX:MaxPermSize参数=512米-XX:+ UseParallelGC -Xbatch -Dcoldfusion.home …

coldfusion jvm cpu-usage tomcat7

13
推荐指数
1
解决办法
657
查看次数

素数性能差异ACF vs. Lucee

以下用于查找素数的代码在Adobe ColdFusion(10)和Lucee(4.5)之间的性能差异很大.在同一台机器上测试(6C i7 3930k @ 4 GHz,Windows 10 64 Bit,两个CFML引擎上的JVM内存设置相同:JDK7 -Xms512m -Xmx2048m -XX:MaxPermSize=512m):

<cfscript>
    ticks = getTickCount();
    stopIndex   = 10000;
    primes      = [];
    divisions   = 0;
    primes.add(2);
    primes.add(3);
    n = 5;
    for (n; n < stopIndex; n += 2) {
        isPrime = true;
        d = 3;
        for (d; d < n; d++) {
            divisions++;
            if (n % d == 0) {
                isPrime = false;
                break;
            }
        }
        if (isPrime) {
            primes.add(n);
        }
    }
    ticks = (getTickCount() - ticks);
</cfscript> …
Run Code Online (Sandbox Code Playgroud)

coldfusion performance lucee

13
推荐指数
1
解决办法
564
查看次数