问题标签 [connection-pool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
879 浏览

azure-cosmosdb - 如果后端数据库是 NoSQL (Azure Cosoms DB),我的应用程序是否需要连接池

我对 NoSQL 世界很陌生,想知道 Azure Cosmos DB 等 NoSQL 数据库如何管理连接。

我正在为实时应用程序设计一个高度可扩展的解决方案。问题之一是如何管理从 Azure Functions 或我的业务层到 Azure Cosmos DB 的大量连接/请求?

Cosmos DB 在可用连接数方面是否受到与 SQL Server 类似的限制?

0 投票
1 回答
457 浏览

proxy - 从池中获取连接 - Envoy

我需要从池中获取连接以连接到上游,但偶尔会遇到 503 问题。我想知道这个的根本原因

https://github.com/envoyproxy/envoy/blob/master/source/common/router/router.cc

这是导致 503 的代码部分。我尝试使用 while 循环重试固定次数,但仍然面临错误。有人可以指导找到根本原因或我该如何处理吗?

编辑:我怀疑的一个可能原因是特使方面经常发生排水。那么有没有办法可以控制发生排水的持续时间的drain_type?

我已按照此文档(https://www.envoyproxy.io/docs/envoy/latest/api-v1/listeners/listeners.html?highlight=draining%20modify_only)将drain_type从默认更改为modify_only。

但是面对这个错误:

0 投票
2 回答
75 浏览

mysql - 一次杀死多个连接

我使用 root 作为用户名。

我的程序将每 5 秒刷新一次。它的作用是从 mysql 表中查询并显示数据。

问题是,每隔 5 秒,mysql 上的连接就会追加,原因是当它达到限制时会给出“TOO MUCH CONNECTIONS”的错误。

是否可以终止先前的连接,因为它已经未使用?

这是我打开连接的代码。

0 投票
1 回答
2214 浏览

spring - PooledConnection.connectUsingDriver 未加载 JDBC 驱动程序,因为 driverClassName 属性为 null

我的 web 项目是使用 spring 4.2.5.RELEASE 和 Hibernate 4.3.5.Final 开发的。我的项目 POM 也具有以下依赖项

我的数据库上下文 XML 的 - 1

XML-2

属性文件

我的应用程序运行良好,所有其他服务都能够从数据库中获取数据。但是,在服务器(即 TCserver)中部署时,它在服务器启动期间抛出以下警告并写入日志文件。它不会在本地 tomcat 中抛出此错误。应用程序也运行良好,但需要修复此警告。

0 投票
1 回答
154 浏览

java - 如何从连接池 tomcat 8 获取连接

我正在学习如何使用 Servlet api 并尝试开发我的第一个 Web 应用程序。而且我的 JDBC 连接有问题。我了解如何连接到我的数据库,但我想从连接池中获取连接。我不明白如何使用它。你能给我建议或链接到示例应用程序,看看它是如何工作的吗?

0 投票
1 回答
3826 浏览

jdbc - Tomcat JDBC连接池,创建的连接数超过maxActive

我正在使用 tomcat 8.0.39、mysql 5.7 服务器和 mysql 连接器 5.1.34 这是我的 context.xml 配置

连接数增加到 130,但预计最多 40

0 投票
1 回答
452 浏览

java - 池中没有可用的连接,netstat 在 Recv-Q 中显示非零值

我有一个在 Tomcat 6 上运行 java 1.6 的旧 Java 应用程序。由于它在环境中的设置方式,很难进行任何内部诊断 - 基本上我无法触摸它 - 它是一个黑盒。

由于缺少免费连接,该应用程序正在崩溃。限制设置得很高(最多 255 个并行连接),但是即使打开的连接数像 60,它仍然会崩溃。

netstat显示recvQ中有很多数据(只是一个例子):

我找不到有关此案的任何有用提示(类似问题在这里:https ://serverfault.com/questions/672730/no-connection-available-in-pool-netstat-recvq-shows-high-number )。

问题:
1)为什么应用程序没有读取收到的所有数据?
2)由于没有读取所有数据,因此打开了另一个与数据库的连接。我对吗?

任何想法将不胜感激。

0 投票
0 回答
595 浏览

spring-boot - Spring Boot Show Error with tomcat 8 connection pool打开的文件太多

有人可以帮忙吗?

我有应用程序,我在 Spring Boot 中使用 context.xml 中的连接池使用外部 Tomcat 8。

但是当我用线程调用时,几分钟后会出现错误。

看看我的代码和配置:

TKS 4 全部!!!

上下文.xml

应用程序属性

2018 年 7 月 26 日 16:40:29.049 警告 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.deploy.NamingResourcesImpl.cleanUp 无法检索容器 [StandardEngine[Catalina].StandardHost[localhost] 的 JNDI 命名上下文。 StandardContext[/ocp-api]] 所以没有对该容器执行清理

javax.naming.NameNotFoundException:名称 [comp/env] 未绑定在此上下文中。无法找到 [comp]。在 org.apache.naming.NamingContext.lookup(NamingContext.java:824) 在 org.apache.naming.NamingContext.lookup(NamingContext.java:172) 在 org.apache.catalina.deploy.NamingResourcesImpl.cleanUp(NamingResourcesImpl.java :993) 在 org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221) 在 org.apache.catalina.core 的 org.apache.catalina.deploy.NamingResourcesImpl.stopInternal(NamingResourcesImpl.java:975)。 StandardContext.stopInternal(StandardContext.java:5551) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221) at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:259) at org .apache.catalina.core.ContainerBase。

“2018-07-26 16:51:27 - 由于响应已经提交,因此无法转发到请求的错误页面 [/occupation]。因此,响应可能具有错误的状态代码。如果您的应用程序正在运行WebSphere Application Server 您可以通过将 com.ibm.ws.webcontainer.invokeFlushAfterService 设置为 false “org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe at org.apache.catalina. connector.OutputBuffer.realWriteBytes(OutputBuffer.java:396) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:426) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java: 345) 在 org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:320) 在 org.apache.catalina.connector。CoyoteOutputStream.flush(CoyoteOutputStream.java:110) 在 com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1054) 在 com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:607)在 org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:106) 在 org.springframework.web.servlet.mvc 的 org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:286) .method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:231) 在 org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:203) 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:113) 在 org.springframework.web.servlet.mvc.method.annotation. org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:81) .springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org .springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 在 org.springframework.web.servlet.FrameworkServlet .doGet(FrameworkServlet.java:861) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 在 javax.servlet。 http.HttpServlet.service(HttpServlet.java:729) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)901) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) 在 javax.servlet.http.HttpServlet.service (HttpServlet.java:622) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在 org.apache.catalina。 core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)901) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) 在 javax.servlet.http.HttpServlet.service (HttpServlet.java:622) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在 org.apache.catalina。 core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)861) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 在 javax.servlet.http.HttpServlet.service(HttpServlet .java:729) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)861) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 在 javax.servlet.http.HttpServlet.service(HttpServlet .java:729) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

原因:java.io.IOException:sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.IOUtil 的 Broken pipe .writeFromNativeBuffer(IOUtil.java:93) 在 sun.nio.ch.IOUtil.write(IOUtil.java:65) 在 sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) 在 org.apache.tomcat。 util.net.NioChannel.write(NioChannel.java:124) at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101) at org.apache.tomcat.util.net.NioSelectorPool.write( NioSelectorPool.java:172) 在 org.apache.coyote.http11.InternalNioOutputBuffer.writeToSocket(InternalNioOutputBuffer.java:139) 在 org.apache.coyote.http11.InternalNioOutputBuffer.addToBB(InternalNioOutputBuffer.java:197) 在 org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:320) 在 org.apache.coyote 的 org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:41)。 http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:118) at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:256) at org.apache.coyote.Response.doWrite(Response.java:491)在 org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:391) ... 省略了 66 个常用帧320) 在 org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:256) 在 org.apache.coyote.Response 的 org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:118) org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:391) 的 .doWrite(Response.java:491) ... 省略了 66 个常用帧320) 在 org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:256) 在 org.apache.coyote.Response 的 org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:118) org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:391) 的 .doWrite(Response.java:491) ... 省略了 66 个常用帧

2018 年 7 月 26 日 16:52:20.989 严重 [http-nio-8280-Acceptor-0] org.apache.tomcat.util.net.NioEndpoint$Acceptor.run 套接字接受失败 java.io.IOException:打开的文件太多在 sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) 在 sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422) 在 sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250) 在 org .apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:693) 在 java.lang.Thread.run(Thread.java:745)

[pool-24-thread-14] 警告 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL 错误:0,SQLState:08001"2018-07-26 16:52:32 - SQL 错误:0,SQLState:空2018-07-26 16:52:32 - SQL 错误:0,SQLState:空 2018-07-26 16:52:32 - SQL 错误:0,SQLState:空 2018-07-26 16:52:32 - SQL错误:0,SQLState:空 2018-07-26 16:52:32 - SQL 错误:0,SQLState:空 2018-07-26 16:52:32 - SQL 错误:0,SQLState:空 2018-07-26 16:52:33 - java.io.FileNotFoundException:/vol/app/apache-tomcat-8.0.38/webapps/ocp-api/WEB-INF/lib/jackson-core-2.8.10.jar(打开的太多文件)2018-07-26 16:52:34 - java.io.FileNotFoundException:/vol/app/apache-tomcat-8.0.38/webapps/ocp-api/WEB-INF/lib/jackson-core-2.8。 10.jar(打开的文件太多)2018-07-26 16:52:34 - java.io.FileNotFoundException: /vol/app/apache-tomcat-8.0.38/webapps/ocp-api/WEB-INF/lib/jackson-core-2.8.10.jar(打开的文件太多)

0 投票
1 回答
664 浏览

java - MongoDb with java:创建新的连接池并销毁前一个

我正在用java实现mongodb。每当我的应用程序启动时,就会为 mongoDB 创建新的连接池。有什么方法可以破坏该连接池并创建一个新连接池,而无需重新启动我的应用程序。我知道,如果 mongoURI 中的任何参数发生变化,连接池将重新初始化,但我想知道是否有任何方法可以在不更改 URI 参数的情况下做到这一点。主要目标是销毁连接池并创建新的连接池!这个连接池是由 MongoClient bean 创建的。因此我想销毁并重新创建 MongoClient Bean。

<bean id="monURI" class="com.mongodb.MongoClientURI"> <constructor-arg name="uri" value="${MONGO_URI}"/> </bean>

<bean id="mongoC" class="com.mongodb.MongoClient"> <constructor-arg ref="monURI"/> </bean>

0 投票
0 回答
559 浏览

node.js - 如何在单节点应用程序中连接多个 mongo 数据库

我有一个应用程序,每个用户都有自己的子域和每个子域的不同 mongo 数据库。我正在尝试基于引用子域连接到特定数据库,首先我正在检查请求来自哪个子域,然后我正在创建动态 mongo 连接字符串。

之后,我将连接实例保存到全局变量中,我声明了一个全局数组来保存此信息。在 server.js 中:

下面是我的代码,它首先检查如果连接已经建立,则从全局数组中提供猫鼬连接实例,但如果请求第一次来自该子域,则创建一个新连接并将实例推送到全局数组。

但问题是,每次请求来自任何子域时,它都会用最新的连接实例替换已经添加到全局数组的实例。就像请求来自 demo1 子域一样,数组值将是:

如果请求来自 demo2 子域,则数组值为:

每次用最新的连接实例替换所有连接实例时,过去几天我尝试了很多东西,但我不确定这里出了什么问题,请知道是否有人知道答案。