問題タブ [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.
mysql - 一度に複数の接続を強制終了する
ユーザー名として root を使用しています。
私のプログラムは 5 秒ごとに更新されます。それが行うことは、mysql テーブルからクエリを実行し、データを表示することです。
問題は、5秒ごとにmysqlの接続が追加され、制限に達すると「TOO MUCH CONNECTIONS」というエラーが発生することです。
すでに使用されていないため、以前の接続を強制終了することはできますか?
接続を開くときの私のコードは次のとおりです。
spring - PooledConnection.connectUsingDriver driverClassName プロパティが null であるため、JDBC ドライバーをロードしない
私の Web プロジェクトは、Spring 4.2.5.RELEASE と Hibernate 4.3.5.Final を使用して開発されました。私のプロジェクトPOMには以下の依存関係もあります
私のデータベース コンテキスト XML - 1
XML-2
プロパティファイル
私のアプリケーションは正常に動作し、残りのすべてのサービスは DB からデータを取得できます。しかし、サーバー、つまり TCserver にデプロイしているときに、サーバーの起動時に警告を下回り、ログ ファイルに書き込まれます。ローカルの tomcat でこのエラーがスローされません。また、アプリケーションは正常に動作していますが、この警告を修正する必要があります。
spring-boot - Tomcat 8接続プールでSpringブートにエラーが表示される 開いているファイルが多すぎる
誰か助けてくれませんか?
context.xmlの接続プールを使用して、外部Tomcat 8を使用してSpring Bootでビルドしたアプリがあります。
しかし、スレッドで呼び出すと、数分後にエラーが表示されます。
私のコードと構成を見てください:
TKS 4ALL!!!
context.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] はこのコンテキストにバインドされていません。[コンプ] が見つかりません。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.deploy.NamingResourcesImpl.stopInternal(NamingResourcesImpl.java:975) で org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221) で org.apache.catalina.core. StandardContext.stopInternal(StandardContext.java:5551) org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221) org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:259) 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. org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:426) の connector.OutputBuffer.realWriteBytes(OutputBuffer.java:396) 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) at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1054) at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:607) org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:286) で org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:106) で org.springframework.web.servlet.mvc org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:203) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:113) で.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) で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 javax.servlet.http.HttpServlet.service(HttpServlet.java:622) の .doGet(FrameworkServlet.java:861) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) の javax.servlet. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) の http.HttpServlet.service(HttpServlet.java:729) 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. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) の core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)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. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) の core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)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.FileDispatcherImpl.write0(Native Method) でパイプが壊れています。 .writeFromNativeBuffer(IOUtil.java:93) で sun.nio.ch.IOUtil.write(IOUtil.java:65) で sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) で org.apache.tomcat. org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101) の util.net.NioChannel.write(NioChannel.java:124) 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.access$000(InternalNioOutputBuffer.java:41) org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:320) org.apache.coyote. 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) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:391) ... 66 個の共通フレームを省略320) org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:118) で org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:256) で org.apache.coyote.Response .doWrite(Response.java:491) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:391) ... 66 個の共通フレームを省略320) org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:118) で org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:256) で org.apache.coyote.Response .doWrite(Response.java:491) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:391) ... 66 個の共通フレームを省略
26-Jul-2018 16:52:20.989 SEVERE [http-nio-8280-Acceptor-0] org.apache.tomcat.util.net.NioEndpoint$Acceptor.run ソケットの受け入れに失敗しました java.io.IOException: 開いているファイルが多すぎますsun.nio.ch.ServerSocketChannelImpl.accept0(ネイティブメソッド)で 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) at 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: null 2018-07-26 16:52:32 - SQL エラー: 0、SQLState: null 2018-07-26 16:52:32 - SQL エラー: 0、SQLState: null 2018-07-26 16:52:32 - SQLエラー: 0、SQLState: null 2018-07-26 16:52:32 - SQL エラー: 0、SQLState: null 2018-07-26 16:52:32 - SQL エラー: 0、SQLState: null 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 (開いているファイルが多すぎます)
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>
node.js - 単一ノード アプリケーションで複数の mongo データベースを接続する方法
各ユーザーが独自のサブドメインと、サブドメインごとに異なる mongo データベースを持つアプリケーションがあります。リファラーサブドメインに基づいて特定のデータベースに接続しようとしています。まず、リクエストの送信元のサブドメインを確認してから、動的なmongo接続文字列を作成しています。
その後、接続インスタンスをグローバル変数に保存し、この情報を保存するためにグローバル配列を宣言しました。server.js で:
以下は、最初にチェックするコードです。接続が既に確立されている場合は、グローバル配列からマングース接続インスタンスを提供しますが、リクエストがそのサブドメインから初めて来た場合は、新しい接続を作成し、インスタンスをグローバル配列にプッシュします。
しかし、問題は、要求がサブドメインから来るたびに、グローバル配列に既に追加されているインスタンスを最新の接続インスタンスに置き換えていることです。リクエストが demo1 サブドメインから来た場合のように、配列の値は次のようになります。
リクエストが demo2 サブドメインからのものである場合、配列の値は次のようになります。
すべての接続インスタンスを最新の接続インスタンスに置き換えるたびに、ここ数日で多くのことを試しましたが、ここで何が問題なのかわかりません。答えを知っている人がいたら教えてください。