4.8.?在一个多线程或服务器小应用环境里使用驱动

许多JDBC驱动的一个共同问题是它们在劝拿庞蜗菲教ㄗ⒉嵬锯时刻一个线程只能使用一个Connection,否则可能一个线程在发送一个查询而另一个线程正在接受结果, 这样做可能导致服务器的混乱。

UXDB JDBC驱动都是线程安全的。 所以,如果你的应用要使用多线程, 那么你不必考虑劝拿庞蜗菲教ㄗ⒉嵬锯时刻只允许一个线程使用数据库的复杂算法。

如果一个线程在其他线程正在使用数据库时试图访问数据库,那么它将等到另一个线程完成当前操作之后进行。 如果这是一个普通的SQL语句, 那么该操作就是发送该语句, 并检索任何ResultSet(完整的)。如果这是一个捷径调用(例如: 从一个大对象里读取一个数据块),那么这时就包含发送, 和接收该数据块。

这对客户端的大小应用都很好, 但是可能造成服务器端小应用 (servlets) 的性能问题。 如果你有好几个线程执行查询, 那么它们除一个之外其它都是暂停的。 要解决这个问题,澳门游戏平台注册网站建议你创建一个连接池(pool of Connections)。 当一个线程需要使用数据库,它向管理类请求一个Connection。 管理器赋予该线程一个空闲连接,然后把它标记为忙。 如果没有空闲连接,管理器就打开一个。 一旦线程完成数据库使用,该线程把连接返回给管理器, 管理器既可以关闭该连接,也可以把它加到连接池里。 管理器同样还检查连接是否仍然激活,如果连接死亡了就把它从连接池删除。 缺点是这样做增加了服务器端的负荷,因为对每个Connection都要创建一个会话。 选择何种方式是你和你的应用的需求决定的。

XML 地图 | Sitemap 地图