标签: coldfusion-9

我可以在同一台服务器上安装coldfusion 9和coldfusion 8吗?

我可以在同一台服务器上安装coldfusion 8coldfusion 9并单独使用吗?

十分感谢.

coldfusion coldfusion-8 coldfusion-9

5
推荐指数
1
解决办法
2499
查看次数

如何获取ColdFusion 9中页面上运行的所有查询的列表

我想在Application.cfc onRequestEnd函数中添加一些代码,如果某个应用程序变量标志打开,则会将查询sql和执行时间记录到数据库表中.这部分相对容易,因为ColdFusion将sql和执行时间作为查询结构的一部分返回.

但是,这个网站可能接近1000页,修改所有这些页面是不现实的.所以我想在onRequestEnd函数中以编程方式完成这项工作.为了做到这一点,我需要以某种方式获取在页面上执行的所有查询的列表,这就是我难倒的地方.

如何获取当前页面上已执行的所有查询的名称列表?这些查询出现在模板的变量范围中,但是其中还有无数的其他变量,我不确定如何轻松地循环并确定哪个是查询.

任何帮助,将不胜感激.

coldfusion cfc cfquery application.cfc coldfusion-9

5
推荐指数
1
解决办法
1791
查看次数

如何使用ColdFusion ORM映射基类?

我有两个组件,一个基本Entity组件:

<cfcomponent persistent="true">
    <cfproperty name="Id" fieldtype="id" generator="native">
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

以及Client扩展它的组件:

<cfcomponent persistent="true" extends="Entity">
    <cfproperty name="FirstName">
    <cfproperty name="LastName">
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试创建一个实例时Client,我得到一个错误,表明它们被映射为两个不同的表.我知道Hibernate有能力忽略基类,但是我如何使用ColdFusion的标签来做,或者我是否必须回归到这个功能的HBM映射?

附录:删除persistent="true"from Entity也不起作用,如果我这样做,Client就好像它没有Id属性一样.

nhibernate coldfusion orm hibernate coldfusion-9

5
推荐指数
1
解决办法
365
查看次数

Coldfusion 9.0.1标准64位和Oracle 11g 64位ODBC连接导致"架构不匹配"

我有一个新建的64位Windows Server 2008 R2盒子,我已经安装了64位Coldfusion 9 Standard.我已升级并将其修改为最新版本的CF. 我还在盒子上安装了64位Oracle 11g(11.1.0.7.0)客户端.我在Windows中使用64位ODBC数据源管理器创建了一个系统DSN,可以成功测试数据源的连接.

所有这些安装都顺利进行,但是,当我在Coldfusion Administrator中添加数据源时,我收到错误:

数据源的连接验证失败:myDatabaseName

java.sql.SQLException:[Macromedia] [SequeLink JDBC Driver] [ODBC Socket]内部错误:指定的DSN包含驱动程序和应用程序之间的体系结构不匹配根本原因是:java.sql.SQLException:[Macromedia] [SequeLink JDBC驱动程序] [ODBC套接字]内部错误:指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

我很难理解这个架构不匹配的确切位置,因为该盒子完全是64位.我看到所有正在运行的进程,一些相关的CF进程在32位运行(Verity相关进程,SOLR和CFDotNetSVC).我不确定这些是否可能导致这个问题,但我无法解释这种不匹配是否来自其他方面.

有人有主意吗?

oracle11g coldfusion-9

5
推荐指数
2
解决办法
5102
查看次数

如何最好地创建和存储APPLICATION变量?

我正在使用ColdFusion 9.0.1

我正在接管一个网站,我之前的人创建了大约100个变量并将它们放入APPLICATION范围.我相信他的100个变量不断被每个页面加载覆盖.

基本上,他在Application.cfc中有这个:

APPLICTION.VariableOne = "SomeStringOne";
APPLICTION.VariableTwo = "SomeStringTwo";
APPLICTION.VariableThree = "SomeStringThree";
Run Code Online (Sandbox Code Playgroud)

我的计划是保持简单,而且非常易读,可以测试应用程序范围内的特定结构.如果不存在,请创建结构和变量:

if (not isDefined("APPLICTION.AppInfo") or not isStruct(APPLICTION.AppInfo)) {
    APPLICTION.AppInfo = structNew();
    APPLICTION.AppInfo.VariableOne = "SomeStringOne";
    APPLICTION.AppInfo.VariableTwo = "SomeStringTwo";
    APPLICTION.AppInfo.VariableThree = "SomeStringThree";
}
Run Code Online (Sandbox Code Playgroud)

当然,一旦站点生效并且我们完成了创建所有应用程序变量,我将把它移到onApplicationStart()方法中.

我想要的解决方案必须更多地关注"可读性"而不是"效率".一些非CFers,但非常有经验的编码人员将使用它,并需要快速"获取".

我的计划是否有任何漏洞或效率太低?

是否有更易读的方法来创建和管理应用程序变量?

coldfusion application.cfc coldfusion-9

5
推荐指数
2
解决办法
5130
查看次数

在Ubuntu上使ColdFusion不区分大小写

我在Ubuntu 12.04盒子上安装了apache2和ColdFusion 9.我已经在Apache中使用CheckSpelling mod来禁用区分大小写的URL和Apache负责的其他路径.

现在,请记住,我正在使用大约4GB的遗留代码(大约6年的价值),并且很少符合惯例.在我之前的编码器并不关心区分大小写,看看应用程序是如何托管在Windows Box上的.在大多数情况下,ColdFusion表现为<cfinclude>CreateObject,但似乎<cfinvoke>(在代码库中经常使用)仍然区分大小写.

现在,我已经尝试了将代码移动到vfat分区的方法,但我遇到的是文件名的一大堆编码问题(我们处理外国公司并获得许多特殊字符).删除和/或重命名文件将是麻烦的,因为大多数也在MySQL数据库中被引用,并且也必须在那里进行修改.所以重新编码有点像噩梦.

所以,我很好奇ColdFusion在Linux上运行时是否有任何特殊标志不区分大小写,或者是否有另一种方法可以将这些全部组合在一起?

编辑

我很抱歉,我错了.cfinvoke似乎工作正常.我窒息了cfobject

apache coldfusion ubuntu case-sensitive coldfusion-9

5
推荐指数
1
解决办法
1089
查看次数

ColdFusion的cfquery默默地失败了

我有一个检索大量数据的查询.

<cfsetting requesttimeout="9999999" >

<cfquery name="randomething" datasource="ds" timeout="9999999" >
    SELECT
        col1,
        col2
    FROM
        table
</cfquery>

<cfdump var="#randomething.recordCount#" /> <!---should be about 5 million rows --->
Run Code Online (Sandbox Code Playgroud)

我可以使用python的cx_Oracle成功检索数据,并sys.getsizeof在python列表上使用返回22621060,所以大约21兆字节.

ColdFusion不会在页面上返回错误,我在任何日志中都找不到任何内容.为什么cfdump不显示行数?

附加信息

这样做的原因是因为我有大约8000个较小的查询来运行randomthing查询.换句话说,当我对数据库运行这8000个查询时,该过程需要数小时才能完成.我怀疑这是因为我与其他几个数据库用户竞争,数据库陷入困境.

8000个较小的查询在col2期间获得col1的计数.

SELECT 
    count(col1) as count
WHERE 
    col2 < 20121109 
AND 
    col2 > 20121108
Run Code Online (Sandbox Code Playgroud)

根据亚当卡梅隆的 建议.

  • cflog建议查询没有完成.

  • 我尝试在代码和 CFIDE /管理员中更改查询超时,显然CF9不再考虑超时属性,无论我尝试了什么我都无法使查询超时.

我也开始玩这个maxrows属性,看看我是否可以通过这种方式识别任何信息.

  • 当maxrows设置为1300000时,一切正常
  • 当maxrows为1400000或更高时,我收到此错误 在此输入图像描述
  • 当maxrows是2000000时,我会观察到我原来的问题

更新

所以这不是cfquery的限制.通过使用QueryNew然后循环它来添加数据,我可以很好地超过200万标记没有任何问题.

我还使用此问题中的信息创建了一个ThinClient数据源,我没有观察到行为的任何变化.

数据库端的消息是

来自客户端的SQL*Net消息

SQL*Net向客户端提供更多数据

我刚刚发现通过使用瘦客户端,blockfactor1="100" …

coldfusion caching coldfusion-9

5
推荐指数
1
解决办法
2508
查看次数

ColdFusion cfcase语句并引用它们的变量?

如果您有这样的代码:

<cfcase value="Test">
   /**Do Stuff
</cfcase>
Run Code Online (Sandbox Code Playgroud)

是否可以在案例陈述中引用该值?

我想连接一个可以处理多个案例的列表,并能够动态引用变量,如下所示:

<cfcase value="Test,Another,Yes,No">
   <cfif this.value EQ 'Test'> blabla </cfif>
</cfcase>
Run Code Online (Sandbox Code Playgroud)

我找不到任何有关这方面的细节,只是好奇,如果有可能的话.

coldfusion coldfusion-8 coldfusion-9 coldfusion-10

5
推荐指数
2
解决办法
567
查看次数

CF9:这个评估报告的评估是什么?

拜托,我被困住,需要一双清新的眼睛.

我正在和别人的意大利面条代码一起工作,这些代码已经不在了,并且正在弄清楚他们正在评估什么.

<cfset surveyCount = 0>
<cfloop query="surveys">
    <cfif evaluate("defaultReport" & ID)>
        <cfset surveyCount = surveyCount + 1>
    </cfif>
</cfloop>  
Run Code Online (Sandbox Code Playgroud)

在查询转储中,我看到9条记录,这是我所期待的但是因为评估失败,所以surveyCount没有递增.我没有看到任何列defaultReport.在我与CF合作的15年中,我总是避免评估(),现在当我需要分析它时,我完全失去了.有人可以提供任何指导吗?

添加了CFDump图像(为了隐私和安全性,已删除了一些列名称): 在此输入图像描述

更新I:这个文件有很多cfinclude语句和很少的代码格式.结果,我忽略了一些cfinclude语句.我找到了以下内容.我仍然在寻找,但想在我挖掘时记录这一点.

<cfloop query="surveys"> <cfscript> variables["defaultReport" & ID] = evaluate(thisAssociation & "Price"); </cfscript> </cfloop>

更新II:转储变量范围,我确实确认了我正在寻找的变量(找到我在UPDATE中发布的查询,我也帮助了).:)
在此输入图像描述

coldfusion cfdump coldfusion-9 cfml

5
推荐指数
2
解决办法
208
查看次数

关于ColdFusion的CGI范围/结构的未记录的不一致行为

我最初发布这个作为早期关于ColdFusion 2016上的空CGI.REDIRECT_URL的问题的答案.在考虑之后,我认为它更好,因为技术上没有回答OP的问题.相反,我决定把它变成一个单独的问题,尽管它更像是一个评论而不是一个问题.虽然这在技术上可能无法满足最小,完整和可验证的例子的全部要求,而且人们可能会给我带来帮助,但我认为它还是值得的,希望能够更容易找到未来可能遇到此问题的CFers .因此,关于CGI结构/范围的这种特殊行为,防止它们撞到墙上.

话虽如此,CGI结构/范围与其他结构/范围有一些未记录的不一致行为.请注意,我个人对这一发现不予理睬,因为我在阅读Ben Nadel的博客文章时发生过这段时间.所以我在这里发布的所有信息都已在那里详细说明,但我想在这里写一篇很好的总结.

未记录的行为1 - 与其他结构不同,如果CGI结构键不存在,则在引用它时不会引发错误.

OP的原始问题中,他想知道为什么cgi.REDIRECT_URL存在但是空洞.正如他最终发现的那样,它从未真正存在过.作为一个单独的示例,您可以执行此行代码而不会抛出错误.不是你期望的,是吧?

<cfoutout>#cgi.THIS_IS_A_FAKE_KEY#</cfoutout>
Run Code Online (Sandbox Code Playgroud)

那么什么是CFer呢?测试密钥存在.

<cfif structKeyExists( CGI, 'THIS_IS_A_FAKE_KEY' )>
    THIS_IS_A_FAKE_KEY exists
<cfelse>
    THIS_IS_A_FAKE_KEY doesn't exist
</cfif>
Run Code Online (Sandbox Code Playgroud)

未记录的行为2 - 与其他结构不同,如果转储CGI结构,它将不会显示所有键/值对,它只显示一组已定义的键.

OP的情况下,他有一个自定义的Apache CGI变量cgi.REDIRECT_URL,在升级到CF2016之前在他的代码中使用,并且能够直接引用它.但是,我假设他是否抛弃了cgi结构,它不会出现在转储中.在Ben Nadel的案例中,他还有一个自定义cgi变量,称为cgi.document_root从负载均衡器传递并且能够直接引用它,但是在转储cgi内容时他也无法看到密钥.

那么什么是CFer呢?理解这一点并将其存储在您的脑海中,这样当您转储cgi内容并且键/值对不存在时,您将不会被咬.除此之外,其他并不多.

coldfusion coldfusion-9 coldfusion-10 coldfusion-11 coldfusion-2016

5
推荐指数
2
解决办法
219
查看次数