You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Alex Chew <al...@msn.com> on 2016/06/08 11:06:06 UTC
Too many connections error while using storm-JDBC
Hi all,
I got Too Many Connections error while running my topology in test environment. I am checking below codes,
//prepare JDBC configuration
Map jdbcConfigMap = Maps.newHashMap();
jdbcConfigMap.put("dataSourceClassName", prop.getProperty("mysql.dataSource.className"));//com.mysql.jdbc.jdbc2.optional.MysqlDataSource
jdbcConfigMap.put("dataSource.url", prop.getProperty("mysql.url"));//jdbc:mysql://localhost/test
jdbcConfigMap.put("dataSource.user", prop.getProperty("mysql.user"));//root
jdbcConfigMap.put("dataSource.password", prop.getProperty("mysql.password"));//password
config.put(JDBC_CONF, jdbcConfigMap);
this.connectionProvider = new HikariCPConnectionProvider(jdbcConfigMap);
This will create a new HikariCPConnectionProvider each Spout/Bolt task. By default each connectionProvider will initial 10 connections. Totally there have 48 tasks. This will create 480 connections while MySQL max-conenctions is 400. I am going to change this, but I don't know how to force all tasks running on my 4 supervisor nodes to use the same dataSource?
Thanks in advance.
Alex
回复: Too many connections error while using storm-JDBC
Posted by Alex Chew <al...@msn.com>.
Thanks a lot. because topologies are running in seperated JVMs I'll let them use different datasources. I think I can change DB pool configuration to reduce connections for a single dataProvider. I can also let those tasks running in the same JVM share one datasource.
Best Regards,
Alex
-------- 原始邮件 --------
主题:Re: Too many connections error while using storm-JDBC
发件人:Alberto S鉶 Marcos
收件人:user@storm.apache.org
抄送:
I dont think is possible to use the same datasource across topologies/bolts
how would u share such a resource across multiple jvms and threads?
On Wed, Jun 8, 2016 at 2:49 PM, Jacob Johansen <jo...@gmail.com>> wrote:
In the HikariCPConnectionProvider you need to set the connection pool
smaller or in your MySQL DB configure, increase the number of
available connections.
Jacob Johansen
On Wed, Jun 8, 2016 at 6:06 AM, Alex Chew <al...@msn.com>> wrote:
> Hi all,
>
>
> I got Too Many Connections error while running my topology in test
> environment. I am checking below codes,
>
>
> //prepare JDBC configuration
> Map jdbcConfigMap = Maps.newHashMap();
> jdbcConfigMap.put("dataSourceClassName",
> prop.getProperty("mysql.dataSource.className"));//com.mysql.jdbc.jdbc2.optional.MysqlDataSource
> jdbcConfigMap.put("dataSource.url",
> prop.getProperty("mysql.url"));//jdbc:mysql://localhost/test
> jdbcConfigMap.put("dataSource.user",
> prop.getProperty("mysql.user"));//root
> jdbcConfigMap.put("dataSource.password",
> prop.getProperty("mysql.password"));//password
> config.put(JDBC_CONF, jdbcConfigMap);
> this.connectionProvider = new
> HikariCPConnectionProvider(jdbcConfigMap);
>
> This will create a new HikariCPConnectionProvider each Spout/Bolt task. By
> default each connectionProvider will initial 10 connections. Totally there
> have 48 tasks. This will create 480 connections while MySQL max-conenctions
> is 400. I am going to change this, but I don't know how to force all tasks
> running on my 4 supervisor nodes to use the same dataSource?
>
>
> Thanks in advance.
>
> Alex
>
>
>
Re: Too many connections error while using storm-JDBC
Posted by Alberto São Marcos <al...@gmail.com>.
I dont think is possible to use the same datasource across topologies/bolts
how would u share such a resource across multiple jvms and threads?
On Wed, Jun 8, 2016 at 2:49 PM, Jacob Johansen <jo...@gmail.com>
wrote:
> In the HikariCPConnectionProvider you need to set the connection pool
> smaller or in your MySQL DB configure, increase the number of
> available connections.
> Jacob Johansen
>
>
> On Wed, Jun 8, 2016 at 6:06 AM, Alex Chew <al...@msn.com> wrote:
> > Hi all,
> >
> >
> > I got Too Many Connections error while running my topology in test
> > environment. I am checking below codes,
> >
> >
> > //prepare JDBC configuration
> > Map jdbcConfigMap = Maps.newHashMap();
> > jdbcConfigMap.put("dataSourceClassName",
> >
> prop.getProperty("mysql.dataSource.className"));//com.mysql.jdbc.jdbc2.optional.MysqlDataSource
> > jdbcConfigMap.put("dataSource.url",
> > prop.getProperty("mysql.url"));//jdbc:mysql://localhost/test
> > jdbcConfigMap.put("dataSource.user",
> > prop.getProperty("mysql.user"));//root
> > jdbcConfigMap.put("dataSource.password",
> > prop.getProperty("mysql.password"));//password
> > config.put(JDBC_CONF, jdbcConfigMap);
> > this.connectionProvider = new
> > HikariCPConnectionProvider(jdbcConfigMap);
> >
> > This will create a new HikariCPConnectionProvider each Spout/Bolt task.
> By
> > default each connectionProvider will initial 10 connections. Totally
> there
> > have 48 tasks. This will create 480 connections while MySQL
> max-conenctions
> > is 400. I am going to change this, but I don't know how to force all
> tasks
> > running on my 4 supervisor nodes to use the same dataSource?
> >
> >
> > Thanks in advance.
> >
> > Alex
> >
> >
> >
>
Re: Too many connections error while using storm-JDBC
Posted by Jacob Johansen <jo...@gmail.com>.
In the HikariCPConnectionProvider you need to set the connection pool
smaller or in your MySQL DB configure, increase the number of
available connections.
Jacob Johansen
On Wed, Jun 8, 2016 at 6:06 AM, Alex Chew <al...@msn.com> wrote:
> Hi all,
>
>
> I got Too Many Connections error while running my topology in test
> environment. I am checking below codes,
>
>
> //prepare JDBC configuration
> Map jdbcConfigMap = Maps.newHashMap();
> jdbcConfigMap.put("dataSourceClassName",
> prop.getProperty("mysql.dataSource.className"));//com.mysql.jdbc.jdbc2.optional.MysqlDataSource
> jdbcConfigMap.put("dataSource.url",
> prop.getProperty("mysql.url"));//jdbc:mysql://localhost/test
> jdbcConfigMap.put("dataSource.user",
> prop.getProperty("mysql.user"));//root
> jdbcConfigMap.put("dataSource.password",
> prop.getProperty("mysql.password"));//password
> config.put(JDBC_CONF, jdbcConfigMap);
> this.connectionProvider = new
> HikariCPConnectionProvider(jdbcConfigMap);
>
> This will create a new HikariCPConnectionProvider each Spout/Bolt task. By
> default each connectionProvider will initial 10 connections. Totally there
> have 48 tasks. This will create 480 connections while MySQL max-conenctions
> is 400. I am going to change this, but I don't know how to force all tasks
> running on my 4 supervisor nodes to use the same dataSource?
>
>
> Thanks in advance.
>
> Alex
>
>
>