-
多个DWR并发请求问题10
现象如下:
点击A按钮调用action,然后跳转到新的A.jsp页面,A.jsp页面有四个DIV(如DIV1.DIV2,DIV3,DIV4),每个DIV都是用列表的方式展示数据,并且每个DIV都是一个单独的DWR,先请求后台,后台返回结果,然后才显示数据。
问题如下:
每次进入A.jsp后,四个DIV中,总有两个DIV(任意两个DIV)中的DWR请求是失败的,根据后台日志显示,是DWR请求的时候,获取数据库连接失败,但是,查看Oracle的连接数和系统的连接池,绝对是够的,后来,实在是没办法,做了如下修改:
修改方法:
在后台的四个DWR方法中的任意两个方法中,增加如下语句:
//在查询数据库之前,先sleep1秒
Thread.sleep(1000);
//经过上面的sleep后,四个dwr请求都是成功的
list = xxx.queryUserInfo();
通过这样的方式,最终问题是解决了,但总感觉这样不合理
谁能解释这个现象是什么原因吗?这跟DWR并发请求有关系吗?2012年2月07日 09:51
相关推荐
这通常涉及到前端的文件选择控件优化和后端处理逻辑的调整,确保能处理多个并发的上传请求。 5. **自定义保存路径**: 文件上传后,通常需要指定服务器上的保存位置。这个功能允许开发者根据业务需求设置上传文件的...
4. **批量调用和事件处理**:DWR3.0支持批量执行多个远程调用,并且提供了事件驱动的调用模式,可以更高效地处理大量并发请求。 5. **Unicode和字符集支持**:DWR3.0改进了对多语言和不同字符集的支持,确保了跨...
5. **Batching**: DWR支持批处理,可以将多个请求合并成一个,减少网络延迟。 **二、DWR的使用步骤** 1. **配置DWR**: 首先,需要在Web应用的`web.xml`中配置DWR过滤器和Servlet,然后创建`dwr.xml`配置文件来指定...
通过对比 DWR 3.0 和 DWR 2.0 的不同之处,我们可以看出 DWR 3.0 在多个方面进行了显著的改进和增强。无论是在架构设计、性能优化还是安全性增强等方面,DWR 3.0 都展现出了更强的能力。此外,它还提供了更为丰富的 ...
6. **私人聊天和群聊**: 私人聊天涉及到一对一的消息传递,而群聊则需要广播消息给多个用户。这需要设计好消息的路由和存储机制,确保正确地分发和存储聊天记录。 7. **JavaScript编程**: 在前端,你需要使用DWR...
2. **Batching**:DWR支持批处理,允许在一个HTTP请求中发送多个调用,这可以减少网络流量并提高性能。 3. **Caching**:DWR提供了一种缓存机制,用于存储之前调用的结果,如果请求相同的方法和参数,可以直接从...
在实际应用中,可能还需要考虑多线程和并发问题,因为服务器可能需要同时处理多个用户的推送请求。此外,考虑到性能和可扩展性,可能需要利用负载均衡和集群技术来处理大量连接。 在压缩包中的`dwr`文件很可能包含...
- 使用DWR的API创建一个DWR引擎实例,连接到服务器上的`MessageService`。 - 在需要接收消息的页面上,调用`subscribeMessage`方法,并提供一个处理接收到消息的回调函数。 - 当用户发送消息时,调用`sendMessage...
4. **批量调用和异步处理**:DWR允许一次调用多个服务器方法,以及异步执行这些调用,从而优化了性能并减少了网络负载。 5. **错误处理**:DWR提供了统一的错误处理机制,帮助开发者调试和处理可能出现的问题。 6....
5. **群聊实现**: 在这个项目中,开发者使用DWR构建了一个支持多用户参与的聊天系统。每个用户都能即时看到其他用户发送的消息,这需要在服务器端维护一个聊天室状态,并通过DWR将新消息推送给所有在线用户。 6. **...
数据库缓存池(Database Connection Pool)是现代Web应用程序中提高性能和效率的重要工具,它管理数据库连接,使得多个用户或请求可以复用已存在的连接,而不是每次交互时都创建新的连接。这减少了数据库系统的压力...
同时,为避免过多的HTTP连接,可以使用DWR的Batching特性,将多个请求合并为一个。 7. **用户体验**:为了提供良好的用户体验,我们还需要关注页面的UI设计,例如使用AJAX更新聊天窗口,以及使用CSS和JavaScript...
而长连接,也称为持久连接,是HTTP 1.1引入的一种特性,允许一次建立的连接在多个请求之间复用,减少了建立和关闭连接的开销。 在DWR中,长连接上传图片的步骤大致如下: 1. **配置DWR**:在服务器端,我们需要...
DWR的批量更新和缓存机制可以有效地处理大量的并发请求,确保消息的即时性。 私聊功能则更进一步,需要在服务器端维护用户之间的会话状态。DWR支持在JavaScript和Java对象之间建立一对一的连接,这样就可以将私聊...
- **Batch**: DWR允许在一个HTTP请求中发送多个远程调用,减少了网络通信的开销。 - **CSP (Cross Site Scripting Protection)**: 为防止跨站脚本攻击,DWR提供了内置的安全机制。 - **Reverse AJAX (Push)**: ...
10. **优化的性能**:通过对内部架构的优化,DWR 3.0 提升了处理大量并发请求的能力,同时降低了内存占用。 通过解压 "dwr3.0.rar",你将获得DWR 3.0的完整源码、文档、示例以及部署所需的资源。这将帮助你深入了解...
DWR通过一种称为"Reverse Ajax"或"Comet"的技术,解决了这个问题。它创建了一个持久的连接,使服务器可以在需要时向客户端发送数据,而无需等待客户端的请求。 1. **DWR的工作原理**: DWR的核心在于它的引擎,该...
5. **批量调用**:允许一次性调用多个服务器端方法,提高性能。 6. **错误处理**:提供详细的错误报告和调试信息,便于开发者识别和解决问题。 在DWR-3.0.jar这个版本中,可能包含以下更新和改进: - 更强的性能...
- **批量调用**:DWR允许批量调用多个服务器端方法,减少网络往返次数,提高性能。 - **缓存机制**:DWR有内置的缓存策略,可以缓存已调用的方法和结果,避免不必要的网络通信。 - **调试工具**:DWR提供了一个内置...
3. **`<batch>`** 元素:用于设置批量调用的参数,如超时时间、最大并发请求等。 接下来,我们讨论如何在JSP页面上使用DWR。DWR提供了一套JavaScript库,使得在客户端直接调用服务器端的方法变得简单。以下是一个...