问题标签 [jrun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2293 浏览

java - 如何解决 ColdFusion 9 中的死锁问题:coldfusion.util.AbstractCache$Lock

我一直在尝试解决一个问题,即某些脚本的执行会导致死锁,将所有后续请求置于边缘,占用 99.9% 的 CPU,并最终导致服务器崩溃。

下面是一个示例堆栈跟踪,其中一个请求已被置于边缘(永远等待):

如果你有兴趣,你可以看到完整的堆栈跟踪,顶部有我称之为“锁定脚本”的东西,所有其他人都在等待它。

当我第一次遇到这个问题时,我没有堆栈跟踪。我发布了一个问题,“当 ColdFusion 使 CPU 最大化时,我如何找出它正在咀嚼/窒息的东西? ”。我收到了许多有用的回复,通过查看堆栈跟踪,我能够确定是相同的三个脚本一遍又一遍地导致了这个死锁问题。

在每种情况下,“锁定脚本”的第一行都是:

并且所有其他请求都被阻塞在其各自的堆栈跟踪中具有以下行:

困扰我的一件事是为什么我的请求超时没有得到尊重;这些脚本将永远挂起,永不消亡。WTF,对吧?所以我不得不自己做。因此,当我杀死“锁定脚本”时,其他人就摆脱了困境。那时,如果它们低于请求超时,它们就会完成处理,如果它们超过它(大多数情况下通常都是这样),那么它们就会继续超时。但是它们不会自行超时,并且请求只会堆积起来,直到使用活动线程并且线程队列已满并且一切都停止了。

每次请求时手动杀死它们显然不是解决方案,所以,正如我妻子总是提醒我的那样,“调试,调试,调试”。使用条件<cfabort>,我逐步完成,发现它一直通过 Application.cfm,通过我的 header.cfm,直到<cfinclude>问题脚本。如果我把问题脚本放在<cfabort> 里面(即使在最上面),它不会中止并且会发生死锁问题。如果我将它放在包含之前,请求将中止并且将避免死锁问题。奇怪。

这两个地方之间没有代码,对吧?就在包含之前和就在包含内部应该在功能上是等效的,不是吗?可能不会,因为很明显那里正在发生一些事情

我没有使用任何<cflock>标签。正在发生的锁定似乎是在模板缓存级别发生的。无论是否在管理员中检查了“受信任的缓存”、“请求中的缓存模板”或“组件缓存”选项(以选中/未选中的任意组合),都会观察到相同的行为。我已经清除了模板缓存和组件缓存不止一次。我一遍又一遍地重新启动CF服务器......一切都无济于事。

在故障排除过程中,我阅读了这篇文章,描述了 CF8 (8.0.1) 中编译器缓存锁定的类似问题,以及应用补丁修复它的说明。但这不是 CF9 ......所以显然我不能应用他们的补丁。

该怎么办?有没有其他人遇到过这个问题?...并有解决方案?

0 投票
4 回答
4789 浏览

coldfusion - JRUN 进程占用 100% CPU

我们经常遇到 ColdFusion 8 的性能问题。在一个由 3 台前端服务器组成的场中,一台服务器不可用:由于某种原因,CPU 运行 100%(在一个核心上)并且从不停机。检查 Windows 任务管理器时,似乎 jrun 进程正在使用 100% 的 CPU。

有人知道如何开始排除故障吗?如何首先找出导致峰值的原因。我对 .net 更感兴趣,在 java/jrun 故障排除时感觉有点迷茫。

我们目前的配置是:CF 8 在 Windows 2008 R2 64 位上运行,带有 Oracle 11g 客户端,具有 4GB RAM 和双核 CPU。

0 投票
2 回答
1158 浏览

coldfusion - 如何在内置网络服务器中设置到远程服务器上资源的虚拟映射?

我们的实时设置使用 IIS 和虚拟目录来访问存储在另一台服务器上的图像或 pdf 等内容。我们正在尝试使用内置的网络服务器和 CF9 的开发版来设置类似的东西。

到目前为止,我可以成功地使用 cfdirectory 转储远程源上的文件,我必须像我一样让 CF9 应用服务器登录。

我可以将文件夹从远程服务器复制到我的本地 PC 并将虚拟映射条目添加到 jrun-web.xml 并且工作正常,尽管这对于我们的目的并不理想。

但是我无法直接映射到该远程服务器。我试过了

我尝试映射网络驱动器

所有这些都会导致 /login/images/directory/ 内的任何内容出现 404

0 投票
0 回答
906 浏览

apache - mod_rewrite 将 REQUEST_URI 添加到 URL 参数,使用 ColdFusion 处理

mod_rewrite 与 ColdFusion 结合使用时有一个奇怪的问题:

我在我的虚拟主机配置中使用以下重写规则:

一切正常,除了一件事:

如果我这样称呼http://www.example.com/test/?asdf我的URL.original_url阅读original_url=/test/index.php&asdf,我无法弄清楚为什么会有索引。php在里面。

我已经尝试省略了 PT 标志,但没有它就无法工作。所有页面,例如http://www.example.com/test/返回403 - Forbidden,并且在页面标题中显示“JRun Servlet 错误”。

感谢您对此的任何想法!

编辑: 好的,我错过了一些重要的事情:该文件夹/test/实际上存在于我的 documentroot 中!/test/does_not_exist/其他类似的URL不受上述问题的影响。

总结:

http://www.example.com/test/->URL.original_url得到/test/index.php

http://www.example.com/test/does_not_exist/->URL.original_url得到/test/does_not_exist/这是我的预期行为。

0 投票
1 回答
1250 浏览

java - jstack 100% CPU

所以我一直在试图弄清楚为什么我们的应用程序偶尔会消耗 100% 的 CPU。我已经阅读了几篇非常有用的 stackovertflow 帖子,但我认为为了安全起见,我想获得一些建议......指导......帮助......无论如何。实际上,这也归结为我缺乏查看堆栈跟踪的经验。如果有人能在这里指出可能的罪魁祸首并向我展示这样的指针,我将非常感激,以便我能更好地理解这一点。

值得注意的线程(在我看来)是等待监视器的线程:

0 投票
2 回答
504 浏览

jakarta-ee - ColdFusion 9 多服务器设置:设置应用程序名称可防止会话复制

所以,标题几乎说明了一切:我正在从单服务器 ColdFusion 安装切换到多服务器 ColdFusion 安装,如果我设置应用程序名称,会话复制将不起作用。

这是一个没有成功复制会话的精简 application.cfc。

只要我注释掉应用程序名称,会话复制就可以在我的服务器之间完美运行。

我相信这个 Adob​​e 帮助页面切线地引用了这个问题:

如果您未在 Application.cfc 初始化代码中的 This.name 变量中或使用 ColdFusion cfapplication 标记指定应用程序名称,则应用程序未命名,并且应用程序范围对应于 ColdFusion J2EE servlet 上下文。因此,ColdFusion 仅支持一个未命名的应用程序。

如果多个 cfapplication 标记和 Application.cfc 文件未指定应用程序名称,则这些应用程序中的所有页面共享 servlet 上下文作为它们的应用程序范围。未命名应用程序的所有会话都直接对应于 J2EE 应用程序服务器的会话对象。(如果您不使用 J2EE 会话变量,ColdFusion 会确保 J2EE 会话的持续时间至少与会话超时时间一样长。)"

显然,停止使用application.name. 但是,如何让我的服务器在使用命名应用程序时使会话可用?有没有办法在 J2EE/JRun servlet 上下文中注册应用程序名称?我不想为我们在服务器上运行的每个 CF 应用程序设置一个单独的实例集群;这似乎不是一个可扩展的解决方案。

我觉得我可能在这里遗漏了一些非常简单的东西,不是 Java 大师,但任何提示都值得赞赏。--Will

0 投票
4 回答
2662 浏览

coldfusion - 未包含在 URL 中时不处理默认文档

在 JRun(J2EE 安装)、Windows Server 2008 R2、Java 1.6.0_22 上运行 ColdFusion 9,0,1,274733

是否有其他人在获取默认文档index.cfm以使用 ColdFusion 时遇到问题?我假设这只是我们设置的一个问题;不同的 Web 服务器 (IIS) 和应用程序服务器 (ColdFusion)。我无法想象我们是唯一运行此配置的人。我们是吗?

所以这就是问题所在。
如果我们请求http://mysite.com/index.cfm它可以工作。
如果我们请求http://mysite.com/它不起作用,我们会得到 404。

我在我们的 IIS 服务器上检查了 Web 连接器的日志文件,可以看到它正在向我们的 ColdFusion 服务器发送请求。ColdFusion 服务器正在发回 404 错误代码,但我不知道为什么。我们在 IIS 服务器上为index.cfm. 我们的应用程序服务器 (web.xml) 中也包含该<welcome-file-list>集合。index.cfm

当我们不包括时,从我们的网络连接器日志中index.cfm

当我们包含以下内容时,从我们的网络连接器日志中index.cfm

我们通过使用 IIS 中的 URL 重写模块附加index.cfm到 URL 来解决这个问题。它有效,但我的直觉一直告诉我,我们不应该为这样的基本功能这样做。

还有其他人有这个问题吗?你是怎么解决这个问题的?

编辑添加更多信息

这是来自 IIS 服务器的我网站的 web.config 文件内容:

以下是APP服务器web.xml中的部分文件内容:

0 投票
1 回答
701 浏览

flash - 从 flash 调用 /flashservices/gateway

我们目前有 2 台服务器运行相同的(据我所知)ColdFusion 8 的配置:

  • 相同的数据源配置
  • 相同的映射
  • 相同的 JVM 配置
  • 相同的文件夹结构
  • 相同的代码

我们正在使用 Flash 远程处理使用一个组件的数据自定义 Flash 资产。

在一台服务器上,调用工作正常:

对另一个的相同调用失败:

如前所述,我比较了两个盒子的配置,看起来都很好。

我还将日志记录代码添加到被调用的组件中。在工作机器上,记录已完成。在故障机器上,不会生成日志。因此,我怀疑代码根本没有得到评估。

任何线索将不胜感激。

0 投票
2 回答
1158 浏览

coldfusion - 无法为 Coldfusion JVM 分配额外的内存

再会,

我在具有 4gig RAM(2gig 始终免费)的 Windows 2003 32 位服务器上运行 Coldfusion 8 MX,但我无法为 JVM 分配超过 550m 的内存。

我已经提交了这个问题,但是它太长了,并且与我的所有编辑都混淆了。我最接近它的开始是当我设置 -Xmn 时,它在崩溃前运行了 10 分钟。崩溃后,即使使用相同的参数,它也不会再次以 1024m 开始。

这些崩溃日志适用于 Java 1.6.0_38。我已经尝试过使用 Java 5,它给出了相同的结果。我什至无法让 CF8 从 Java 7 开始(这是一个单独的问题)。

我需要为 JVM 分配更多 RAM,这样 CF 就不会在重负载下不断崩溃,因此我们将不胜感激任何对此行为的深入了解。

Java Args 是:

崩溃日志 #1(服务器运行了 10 分钟后才生成此日志):

崩溃日志 #2(在它崩溃之后,我尝试使用相同的配置重新启动 CF 服务,但它甚至无法启动,并产生此错误):

0 投票
1 回答
193 浏览

coldfusion - ColdFusion 如何映射会话?

我们正在使用 ColdFusion 9.0.1,并且开始注意到,如果我们点击一​​个子域,然后是一个根域(例如 www.example.com example.com )

ColdFusion 似乎能够成功管理这一事实并将会话与正确的会话变量正确匹配。

我希望了解 ColdFusion/JRUN 如何处理会话变量映射。我知道应用程序名称是等式的一部分,但是当有多个 JSESSIONID cookie 时会发生什么。它如何决定哪一个是正确的?