Tag: jrun

会话ID在调用invalidate后重新使用

我inheritance了一个非常古老的JSP应用程序(JDK 1.3.1_15),并试图插入一个会话固定孔。 在使用HttpSession.invalidate()进行身份validation后,我成功地使当前会话无效,但是在创建新会话时,将重新使用旧会话ID。 我可以在我的HTTP监视器中看到新的会话分配,它只是再次使用相同的号码。 — Initial request response — HTTP/1.1 200 OK Set-Cookie: JSESSIONID=6a303082951311647336934;path=/ — login.jsp request response — HTTP/1.1 302 Moved Temporarily Location: http://example.com/logged-in.jsp Set-Cookie: JSESSIONID=6a303082951311647336934;path=/ 在我使用session.invalidate()之前,第二个Set-Cookie响应头根本不存在。 有没有人对如何生成新的会话ID有任何建议? 我对JRUN4不是很熟悉,但是通过配置文档进行拖网并没有发现任何东西。

Oracle:OALL8处于不一致状态

作为升级JRun的一部分,我们正在从1.4 JVM迁移到1.6 JVM。 现在我得到一个非常奇怪的oracle db错误:“OALL8处于不一致状态”。 我已经把问题归结为插入完全不使用绑定变量的查询 – 所有内联参数。 如果我在没有任何绑定变量的情况下运行查询,则会出现上述错误。 只要用绑定变量替换其中一个硬编码值 – 一切都可以正常工作。 另一个奇怪的是,在执行查询之后,它实际上已提交给数据库。 我可以从另一个会话连接并查看插入的行。 我已经尝试在事务中包装查询,它似乎成功,因为没有显式事务,查询的行为没有改变。 以下是相关细节: Java版本:1.6.0_12-b04 虚拟机版本:11.2-b01(HotSpot服务器) Oracle Server:10.2.0.4 Oracle客户端:11.1.0.7.0到ojdbc6.jar 更新:我使用的是cfqueryparam – 它们在oracle世界中被称为绑定变量。 虽然这确实解决了当前的问题,但我们有一个相当大的遗留代码库,我们无法通过实际更新查询作为从CF7升级到CF8的一部分。 即使我已经确定了一个失败的特定情况(并将其封装在mxunit测试中) – 这并不意味着没有其他领域可能存在这个问题。 我真的希望有一个解决方案来消除OALL8错误,而不是围绕它编码。 更新2:在我们的DBA检查后,他已将名为CURSOR_SHARING的参数设置为SIMILAR。 Oracle默认为EXACT。 发生的事情是当ColdFusion将查询关闭以执行时,Oracle正在将所有文字值转换为绑定变量,这似乎使ColdFusion感到困惑。 将设置恢复为EXACT允许文字查询正常工作。 更新3: Oracle最终向我们发布了一个针对JDBC的带外补丁。 它被识别为JDBC错误。 最新的驱动程序应该在它们最终更新时包含它。 如果您有支持,您也可以通过他们的TAR系统请求补丁。