1

如果我尝试设置一个客户端变量,只需<cfset Client.X = 0 />在 onRequestStart 中执行一个简单操作,请求就会占用一秒钟(而不是仅仅几毫秒),以下是输出coldfusion-out.log

Aug 22, 2013 15:51:54 PM Information [ajp-bio-8012-exec-9] - [Macromedia][SQLServer JDBC Driver][SQLServer]String or binary data would be truncated.
Aug 22, 2013 15:51:55 PM Information [ajp-bio-8012-exec-9] - client variable JDBC STORE - retry 1
Aug 22, 2013 15:51:55 PM Information [ajp-bio-8012-exec-9] - [Macromedia][SQLServer JDBC Driver][SQLServer]String or binary data would be truncated.
Aug 22, 2013 15:51:55 PM Information [ajp-bio-8012-exec-9] - client variable JDBC STORE - retry 2
Aug 22, 2013 15:51:55 PM Information [ajp-bio-8012-exec-9] - [Macromedia][SQLServer JDBC Driver][SQLServer]String or binary data would be truncated.
Aug 22, 2013 15:51:55 PM Information [ajp-bio-8012-exec-9] - client variable JDBC STORE - retry 3
Aug 22, 2013 15:51:55 PM Information [ajp-bio-8012-exec-9] - [Macromedia][SQLServer JDBC Driver][SQLServer]String or binary data would be truncated.
Aug 22, 2013 15:51:55 PM Warning [ajp-bio-8012-exec-9] - Failed to store CLIENT variables to datasource mydsn - [Macromedia][SQLServer JDBC Driver][SQLServer]String or binary data would be truncated.

根据消息,该变量不会被存储 - 但我不确定为什么它认为任何东西都会被截断 - 它并不是很多数据。

我很确定这之前一直运行良好,但我不确定它什么时候开始发挥作用(我一直在做涉及远程 http 请求的工作,所以在那期间不会注意到额外的一秒钟)。

如果我删除 client.x 行,它会立即响应并且不会记录警告。

同样,如果我将客户端变量的存储机制更改为 cookie 或注册表,则不会发生此问题。

我尝试删除 CDATA 和 CGLOBAL 表并重新分配数据源以重新创建它们,但这没有效果。

4

1 回答 1

3

就在我要发布问题时,我想出了它是什么,所以为了帮助其他遇到同样问题的人,我也会继续回答......

错误是指该app列。

这是作为 char(64) 创建的,但对于此应用程序,名称是基于几个因素生成的,导致其最终长度为 95 个字符。

我将数据库中的列编辑为 char(255),问题就消失了。

于 2013-08-22T15:15:46.630 回答