我试图从Ruby(1.9.1p378)Sinatra(1.0)Rack(1.2.1)应用程序流文本数据(XML/JSON).建议的解决方案(例如,有没有办法将html刷新到Sinatra中的线路)似乎不起作用 - 当我产生某些无限流的元素(例如来自%w(foo bar).cycle)时,服务器就会阻塞.我试过webrick并thin作为服务器.
有关完成此任务的任何建议吗?我应该使用http://sinatra.rubyforge.org/api/classes/Sinatra/Streaming.html,如果是这样,我将如何在我的应用程序中使用它?
当使用各种JDBC模板方法之一时,我对如何迭代/滚动大型结果集(不适合内存)感到困惑.即使没有直接暴露Iterable接口,我至少也会期望在查询执行时调用RowCallbackHandler的实例,而不是在它完成之后(或堆overfloats).
我确实看过这个(虽然在精神上类似于这篇关于堆栈溢出的帖子,但我没有改变任何内容)和春季论坛中的这篇文章.后者似乎建议在游标获取数据时确实应该调用回调处理程序.然而,我的测试显示没有这样的行为
该数据库是Oracle10g.我使用的是11.1.0.7.0-Production驱动程序和Spring 2.5.6.SEC01.任何人都想知道如何迭代结果集,最好是保持RowMapper等的映射逻辑?
在监视远程应用程序时(使用jstatd)我既不能分析也不能监视CPU消耗.堆监控(假设我不使用G1)有效.jvisualvm提供消息"此JVM不支持".在CPU图形窗口中.
我的设置中是否有任何遗漏?谷歌的结果很少.
本地环境(Mac OS X 10.6):
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)
Run Code Online (Sandbox Code Playgroud)
远程环境(Linux版本2.6.16.27-0.9-smp(gcc版本4.1.0(SUSE Linux))):
java version "1.6.0_16" Java(TM) SE
Runtime Environment (build
1.6.0_16-b01) Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
本地监控按宣传方式工作.
我正在使用JDBC(使用最新的驱动程序和UCP作为DataSource)对Oracle 10g运行查询,以便检索CLOB(平均20k字符).然而,性能似乎非常糟糕:批量检索100个LOB平均需要4个.从我的观察来看,该操作既不是I/O也不是CPU,也不是网络约束.
我的测试设置如下:
PoolDataSource dataSource = PoolDataSourceFactory.getPoolDataSource();
dataSource.setConnectionFactoryClassName("...");
dataSource.setConnectionPoolName("...");
dataSource.setURL("...");
dataSource.setUser("...");
dataSource.setPassword("...");
dataSource.setConnectionProperty("defaultRowPrefetch", "1000");
dataSource.setConnectionProperty("defaultLobPrefetchSize", "500000");
final LobHandler handler = new OracleLobHandler();
JdbcTemplate j = new JdbcTemplate(dataSource);
j.query("SELECT bigClob FROM ...",
new RowCallbackHandler() {
public void processRow(final ResultSet rs) throws SQLException {
String result = handler.getClobAsString(rs, "bigClob");
}
});
}
Run Code Online (Sandbox Code Playgroud)
我尝试了获取大小但无济于事.难道我做错了什么?有没有办法在使用JDBC时加快CLOB检索?