标签: coldfusion

ColdFusion - 何时使用"请求"范围?

一直在查看我的前任代码,并经常查看"请求"范围的用法.该范围的适当用法是什么?

coldfusion railo cfml

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

选择一列DISTINCT SQL

补充:使用SQL Server 2000和2005,因此必须同时使用它们.另外,value_rk不是数字/整数(错误:操作数数据类型uniqueidentifier对于min运算符无效)

当我不关心返回的其他列时,有没有办法做单列"DISTINCT"匹配?例:

**Table**
Value A, Value L, Value P
Value A, Value Q, Value Z
Run Code Online (Sandbox Code Playgroud)

我需要根据第一行(值A)中的内容返回其中一行.我仍然需要来自第二和第三列的结果(第二列实际上应该全部匹配,但第三列是唯一的键,我至少需要其中一个).

这是我到目前为止所得到的,尽管它显然不起作用:

SELECT value, attribute_definition_id, value_rk
FROM attribute_values
WHERE value IN (
    SELECT value, max(value_rk)
    FROM attribute_values
)
ORDER BY attribute_definition_id
Run Code Online (Sandbox Code Playgroud)

我在ColdFusion工作,所以如果有一个简单的解决方法,我也会对此持开放态度.我试图限制或"分组"第一列"值".value_rk是我的大问题,因为每个值都是唯一的,但我只需要一个.

注意:value_rk不是数字,因此这不起作用

更新:我有一个工作版本,它可能比纯SQL版本慢一点,但说实话,任何工作在这一点上都比没有好.它从第一个查询获取结果,执行第二个查询,但将结果限制为一个,并获取匹配值的匹配value_rk.像这样:

<cfquery name="queryBaseValues" datasource="XXX" timeout="999">
    SELECT DISTINCT value, attribute_definition_id
    FROM attribute_values
    ORDER BY attribute_definition_id
</cfquery>

<cfoutput query="queryBaseValues">
    <cfquery name="queryRKValue" datasource="XXX">
        SELECT TOP 1 value_rk
        FROM attribute_values
        WHERE value = '#queryBaseValues.value#'
    </cfquery>
    <cfset resourceKey = queryRKValue.value_rk>
    ...
Run Code Online (Sandbox Code Playgroud)

所以你有它,在ColdFusion中明显选择一个列.任何纯SQL Server 2000/2005建议仍然非常受欢迎:)

sql sql-server coldfusion cfml

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

如何防止SerializeJSON将Yes/No/True/False字符串更改为boolean?

我有一个以JSON格式存储的数据结构,使用serializeJSON函数进行转换.我遇到的问题是CF中可以布尔的字符串,如Yes,No,True和False,将转换为JSON作为布尔值.下面是示例代码.有关如何防止这种情况的任何想法?

码:

<cfset test = {str='Yes'}>
<cfset json = serializeJSON(test)>
<cfset fromJSON = deserializeJSON(json)>

<cfoutput>
    #test.str#<br>
    #json#<br>
    #fromJSON.str#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

结果:

Yes
{"STR":true}
YES
Run Code Online (Sandbox Code Playgroud)

coldfusion json

14
推荐指数
1
解决办法
5709
查看次数

ColdFusion中的相对日期

寻找像一个函数 ColdFusion的,让我显示日期为"10分钟前"或"2天前"或"一个月前".

coldfusion

14
推荐指数
2
解决办法
623
查看次数

插入ColdFusion和MySQL后获取表ID

我正常的插入一个表然后获取ID以便我可以插入到另一个表中的过程在MSSQL中是这样的:

DECLARE @transactionKey uniqueidentifier
SET @transactionKey = NEWID()

INSERT INTO transactions(transactionKey, transactionDate, transactionAmount)
    VALUES(@transactionKey, '#transactionDate#', '#transactionAmount#')

DECLARE @transactionID int
SELECT @transactionID = transactionID
    FROM transactions
    WHERE transactionKey = @transactionKey


INSERT INTO transactionItems(transactionID, itemID, itemAmount)
    VALUES(@transactionID, '#itemID#', '#itemAmount#')


SELECT @transactionID as transactionID
Run Code Online (Sandbox Code Playgroud)

我的问题是2部分.首先,这是最好的方法吗?我读到GUID有可能在我身上发生变化,我最终在第二个表中出现了无效的GUID.我假设这个机会非常渺茫,我多年来一直在各种项目上做这件事并且从来没有遇到过问题.

我的问题的第二部分是在MySQL中做这样的工作吗?我开始使用MySQL开发一个新项目,我不确定最好的方法.我通常只在MSSQL上工作过.

我在这个新项目上使用CF9和MySQL.

对此的任何帮助都会很棒.

提前致谢.

mysql sql-server coldfusion

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

强制Jboss记录使用SLF4J

我正在使用Hibernate 4.0和Coldfusion 8与Jrun,遗憾的是已经包含了log4j,我无法将其删除,并且log4j的版本太旧(没有跟踪).因此Hibernate无法正常工作.我想强制Jboss Logging使用SLF4j,我已经为自定义log4j添加了绑定.

coldfusion logging jboss log4j slf4j

14
推荐指数
1
解决办法
6458
查看次数

CF10 websocket p2p可以从JavaScript调用任何CFC中的任何公共函数.这怎么不是安全风险?

在Adobe ColdFusion 10开发指南中的点对点通信使用WebSocket时mysocket,<cfwebsocket>可以调用一个invoke()方法,该方法可以从JavaScript调用Any CFC上的任何公共方法.

这怎么不是安全风险?cfc/function如何防止被websocket调用?

1.创建CFM页面index.cfm.

<script type="text/javascript"> 
       function msgHandler(msgobj){ 
           var txt = document.getElementById("myDiv"); 
           var message = ColdFusion.JSON.encode(msgobj); 
           txt.innerHTML += message + "<br >" + "<br>"; 
       } 
       function invokecfcfn(){ 
              var fname= document.getElementById("fnname").value; 
              if (fname == "f2") { 
                     alert("f2 selected"); 
                     mysocket.invoke("mycfc", "f2", ["echo"]); 
              } 
              else 
                     mysocket.invoke("mycfc", fname); 

       } 
</script> 
<cfwebsocket name="mysocket" onmessage="msgHandler"/> 
<form> 
       <select id="fnname"> 
              <option>f1</option> 
              <option>f2</option> 
              <option>f3</option> 
       </select> 

       <input id="invokefn" name="invokefn" value="Invoke CFC function " type="button"  onclick="invokecfcfn();"> 
       <div id="myDiv"> …
Run Code Online (Sandbox Code Playgroud)

coldfusion coldfusion-10 cfwebsocket

14
推荐指数
2
解决办法
2914
查看次数

如何处理CFML中的时区?

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

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

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

coldfusion timezone datetime cfml

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

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

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

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

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

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

这是我要使用的字符串:

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

谢谢!

coldfusion coldfusion-8

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

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
查看次数