`
evan0625
  • 浏览: 159438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP Connection关闭流时连接复用

    博客分类:
  • java
 
阅读更多

        HTTP Connection创建后会建立输入输出流,根据认知,应该是先关闭输出流,再关闭输入流,然后关闭connection连接。

       如果是上述操作,则会出现连接复用的情况,也就是说先关闭输入流再关闭连接则不会关闭socket,即出现了连接复用。

       这种情况会存在一种弊端,就是如果连接的应用是F5,其F5下挂的应用要进行变更时,如果长时间不释放,则无法进行应用的变更,或者说只能进行强制摘除,这样操作是很危险的。

       为了关闭连接复用(这种情况下会影响连接效率,但可能影响性能,未进行测试),经过多次调试,应先关闭连接然后关闭输出流最后关闭输入流。

       用IOUtils关闭示例如下:

IOUtils.close(conn);
IOUtils.closeQuietly(outputstream);
IOUtils.closeQuietly(inputstream);

 参考地址:

http://cn.voidcc.com/question/p-erxxoacl-by.html

分享到:
评论

相关推荐

    http下载器,连接复用技术

    2. **复用连接**:服务器收到请求后,如果支持连接复用,会在响应中返回"Connection: keep-alive",表示连接可以继续使用。客户端可以在这条连接上发送后续请求。 3. **管理连接池**:为了优化性能,客户端通常会...

    编写一个基本的连接池来实现连接的复用

    为了解决这个问题,我们可以使用连接池(Connection Pool)技术,实现数据库连接的复用,提高系统的效率和稳定性。本主题将详细讲解如何编写一个基本的连接池来实现连接的复用。 首先,我们需要理解连接池的基本...

    ConnectionPool 数据库连接池

    4. **释放连接**:执行完毕后,应用不关闭连接,而是将其归还给连接池,供其他任务复用。 5. **维护与回收**:连接池会定期检查连接状态,若发现无效连接(如超时、断开),会进行回收并重新创建新连接。 **三、...

    ConnectionPool 基于java实现数据库连接池

    这些参数影响了连接池的行为,如在连接耗尽时如何处理新请求,以及何时关闭闲置的连接。 4. **连接验证**:为了确保返回给应用的连接是可用的,连接池可能包含验证机制,定期检查并重新建立无效的连接。 5. **异常...

    怎样实现关闭connection时自动关闭Statement和ResultSet (下篇)

    这篇博客的下篇主要讨论了如何在关闭Connection时自动关闭Statement和ResultSet,以确保资源的有效释放,防止内存泄漏。以下是对这个主题的详细解释。 首先,我们需要理解数据库连接、Statement和ResultSet在JDBC中...

    java数据库连接池connectionPool.jar

    5. **关闭连接池**:应用程序结束时,连接池会释放所有连接,关闭资源。 **连接池的优势:** 1. **性能提升**:通过复用已存在的连接,减少了数据库连接的创建和销毁时间。 2. **资源管理**:有效控制最大连接数,...

    connection manager连接管理

    2. 连接复用:当一个请求完成,其使用的连接不立即关闭,而是返回到连接池,供其他请求复用。 3. 连接超时:设置连接的最大空闲时间,避免因长时间未使用的连接占用资源。 4. 连接验证:在从连接池获取连接时,会...

    okhttp中连接池实现

    它的核心特性之一就是连接池(Connection Pool),它在提高网络性能和减少延迟方面起到了关键作用。本文将深入探讨OkHttp中的连接池实现,包括连接对象的添加、移除机制以及其工作原理。 首先,我们需要了解什么是...

    数据库连接池-连接的关闭内幕

    2. **连接关闭的方式**:在Java中,关闭数据库连接通常是通过调用`Connection.close()`方法来实现的。需要注意的是,这个操作仅仅是将连接归还给连接池,并不是真正意义上的关闭。真正的关闭操作是由连接池管理器...

    给jdbc加connection pool

    3. 连接复用:多个线程可以同时使用同一个物理连接,因为每个线程都会获得连接池中的连接实例,实际上这些实例是对物理连接的封装。 4. 连接归还:使用完毕后,线程需要将连接归还给连接池,而不是关闭它。这样,...

    MySqlConnection java封装的MySql连接类

    3. **关闭连接**:每次操作完成后,都需要关闭数据库连接以释放资源。为此,我们可以提供一个`close()`方法,调用`Connection`对象的`close()`方法。同时,为了防止资源泄漏,可以使用try-with-resources语句。 ```...

    Qt 多线程连接数据库——数据库连接池

    * 连接被复用,不是每次都重新创建一个新的连接(连接的创建是一个很消耗资源的过程) * 连接断开了后会自动重连 * 当无可用连接时,获取连接的线程会等待一定时间尝试继续获取,直到取到有效连接或者超时返回一...

    Java实现Socket长连接和短连接

    - **关闭策略**:合理设置超时时间,当连接长时间无数据传输时,可以考虑关闭连接以释放资源。 **4. 应用场景** 短连接适合一次性、低延迟、资源有限的场景,如网页浏览。而长连接适合实时性强、需要持续交互的...

    Connection

    数据库连接池(Connection Pool)是一个优化策略,它预先创建并维护一定数量的数据库连接,供多个线程复用,而不是每次请求都创建新的连接。这样可以减少连接的创建和销毁开销,提高系统性能。 标签中的...

    ConnectionPool

    在IT行业中,数据库连接池(Connection Pool)是一个关键的概念,特别是在构建高性能、高并发的Web应用时。数据库连接池能够有效地管理和复用数据库连接,从而提高系统效率并降低资源消耗。这里我们将深入探讨`...

    connection pool

    这些库都是为了管理和优化数据库连接而设计的,它们提供了一种有效的方式来管理和复用数据库连接,使得在高并发环境下,数据库连接的创建和关闭能够得到有效的控制,避免了频繁的打开和关闭连接所导致的性能损失。...

    简单的jdbc连接池类

    这些库管理数据库连接的生命周期,提供高效的连接复用。在本例中,我们有一个自定义的简单连接池类,它可能包含以下关键功能: 1. **初始化连接池**:根据配置文件(如`persistence.properties`)设置初始连接数量...

    DB_Connection_Factory.rar_DB factory桥连接_factory

    4. **关闭资源**:尽管DB Connection Factory会管理连接,但在使用完数据库连接后,仍建议显式调用`Connection.close()`,将连接返回给连接池,以便其他请求复用。 下面是一个简单的Java示例,展示了如何使用...

    C# 数据库自定义链接应用池

    如果连接已超过复用次数或已超时,应关闭并从队列中移除。 4. 添加监控和管理功能,例如定时检查和清理过期的连接。 总的来说,自定义数据库连接应用池允许开发者更精细地控制数据库连接的管理和使用,以适应不同...

    socket短连接和长连接 多线程的应用

    在长连接中,一次连接建立后,可以复用此连接进行多次数据传输,直到一方明确关闭连接。这种方式减少了连接建立和释放的开销,提高了效率,但对于长时间无数据传输的连接,可能会占用较多的系统资源。 多线程...

Global site tag (gtag.js) - Google Analytics