标签: connection-pooling

IIS 7.5(Windows 7)下的ASP.NET网站运行速度极慢

我刚刚在台式机上安装了Windows 7 x64 Ultimate.我安装了IIS,Visual Studio 2008,注册了ASP.NET等.

我有这个ASP.NET 3.5网站,我正在努力在这个新的IIS上运行得很慢.在STA和PROD服务器(Windows 2003 Server)和旧的XP/IIS 5.1上,一切运行顺利.

通常需要1-2秒才能加载的页面需要8秒!

我在IIS论坛上看过这篇文章.它说了一些关于Vista/7没有汇集连接的东西(只是为了让你知道,网站在本地运行,但它连接到托管在远程服务器上的SQL Server 2005).

似乎需要一段时间来"开始加载"页面...我的意思是,我点击刷新它会停留几秒钟"等待localhost"...然后当它得到响应时它会正常加载整个页面.. .

我不知道如何强制Win7/IIS7.5池数据库连接.

编辑:我已经创建了一个新的空ASP.NET ASP.NET应用程序,以查看问题是否也发生.答案是否定的,它应该使用空的默认页面快速响应.也许是与数据库连接有关的东西.我会做进一步的测试.它应该是一种修复它的方法......

编辑2:调试应用程序我注意到在执行.NET代码(Page_Load等)之后发生了延迟...所以当IIS将页面提供给浏览器时,延迟似乎就在某处.

performance connection-pooling windows-7 iis-7.5

14
推荐指数
1
解决办法
4万
查看次数

c3p0首字母缩写词源 - jdbc连接池名称

任何人都可以共享名为c3p0的jdbc连接池的来源和含义.

它是受到星球大战的启发吗?

java connection-pooling jdbc acronym c3p0

14
推荐指数
1
解决办法
2972
查看次数

如何在连接错误上清除ODP.NET连接池?

我正在使用NHibernate和ODP.NET连接到Oracle 11g数据库.当然可能存在连接错误(网络故障,DB down,......).我在我的代码中处理所有这些异常,所以没有问题.但是当然用户可以重试他的行为(可能只是一个短暂的网络故障),并且出现了我的问题:

ODP.NET默认使用连接池.通常没问题,但是当用户在连接错误后重试动作时,NHibernate会从ODP.NET获得无效(池化)连接.用户必须多次重试(直到池为空)才能重新运行.

当然我可以在ODP.NET中禁用连接池,但我想避免这种情况.我还读到了一个设置,它检查来自池的每个返回连接的数据库连接,但这会为每个连接增加一个额外的往返,我也想避免.

有没有办法配置ODP.NET在任何连接抛出连接异常时自动清除连接池?

oracle nhibernate ado.net connection-pooling odp.net

14
推荐指数
1
解决办法
8065
查看次数

如何在不重新连接每个查询的情况下有效地连接到php中的mysql

每次我学习关于php的新东西时,我都不得不重写我的代码(就像mysql连接不能作为句柄在会话中传递一样).

如何在项目中实现mysql连接?很多人提出了"连接池",但阅读手册后我还是输了.它就像:"连接池是mysql_pconnect!" - 我:"和......?现实中有什么不同?你能在会话中传递一个mysql_pconnect吗?为什么这个看似神秘的光环?"

让我解释一下我的情况.我有一个名为"query1"的函数:

function query1($query)
{
    $db = new mysql(HOST,USER,PASS,DBNAME);
    $result = $db->query($query);
    $db->close();
    return $result;
} 
Run Code Online (Sandbox Code Playgroud)

这似乎是一种查询数据库的一种诡异而低效的方式(特别是因为你需要一个mysql句柄来处理像mysql_real_escape_string这样的函数).这样做的正确形式是什么?有人可以帮帮我吗?

谢谢,我真的很感谢你的回答.

php mysql connection-pooling connect

13
推荐指数
1
解决办法
2万
查看次数

java.lang.ClassNotFoundException:org.apache.tomcat.jdbc.pool DataSourceFactory

我正在调查离开Oracle连接池并使用Tomcat连接池.我按照无数的例子来配置<Resource>Tomcat的/conf/server.xml.我发现伟大的信息在这里.但是,当我启动Tomcat时,我收到以下错误:

javax.naming.NamingException:无法加载资源工厂类[根异常是java.lang.ClassNotFoundException:org.apache.tomcat.jdbc.pool DataSourceFactory]

我正在使用Tomcat 6.0.我的<Resource>配置/conf/server.xml是:

<Resource 
    name="jdbc/myds"
    type="javax.sql.DataSource"
    auth="Container" 
    factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
    driverClassName="oracle.jdbc.OracleDriver"
    url="jdbc:oracle:thin:@10.10.10.33:1234:myds"
    user="myuname"
    password="mypasswd"
/>
Run Code Online (Sandbox Code Playgroud)

我明白Tomcat找不到工厂类,但我不明白为什么?我没有在文档中看到有关添加额外.jar文件的任何内容.我查看了发行版,.jar无论如何都找不到金色.

谁能告诉我我做错了什么?

tomcat jndi datasource connection-pooling tomcat6

13
推荐指数
1
解决办法
3万
查看次数

连接池或数据源?我应该把它放在哪个JNDI?

在JNDI级别或Webapp级别连接池更有意义吗?例如,我可以简单地在javax.sql.DataSource创建:

<Context antiJARLocking="true">
  <Resource name="jdbc/myDataSource" 
    auth="Container"
    type="javax.sql.DataSource" 
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/myDataSource" user="user" password="password" />
</Context>
Run Code Online (Sandbox Code Playgroud)

然后在Spring中配置池:

<bean id="myDataSource" class="com.mchange.v2.c3p0.DataSources"
  factory-method="pooledDataSource">
  <constructor-arg>
    <jee:jndi-lookup jndi-name="java:comp/env/jdbc/myDataSource" />
  </constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)

或者,我可以直接在JNDI本身配置池:

<Resource name="jdbc/myDataSource" 
  auth="Container"
  factory="org.apache.naming.factory.BeanFactory"
  type="com.mchange.v2.c3p0.ComboPooledDataSource" 
  driverClassName="com.mysql.jdbc.Driver"
  jdbcUrl="jdbc:mysql://localhost/myDataSource" 
  user="user" password="password"
  minPoolSize="3" 
  maxPoolSize="15" 
  maxIdleTime="5000"
  idleConnectionTestPeriod="300" 
  acquireIncrement="3" />
Run Code Online (Sandbox Code Playgroud)

离开这个春天:

<jee:jndi-lookup id="myDataSource" jndi-name="java:comp/env/jdbc/myDataSource" />
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,myDataSource spring bean都是一个c3p0连接池数据源,但哪一个更好?我认为在JNDI中使用池是最有意义的,但缺点是你必须将c3p0 lib推送到servlet容器级别,这可能会导致与现有servlet冲突,如果它们当前使用不同的版本.但是,将它放在JNDI中意味着您的应用程序根本不必担心池化.你们都在想什么?

java tomcat jndi datasource connection-pooling

13
推荐指数
1
解决办法
3万
查看次数

如何检测我的代码是否在Sidekiq服务器或Puma"内部"运行?

我正在使用Puma作为Web服务器,而Sidekiq作为我的队列运行器.

对于多个事物(数据库连接,Redis连接,其他外部服务),我正在使用ConnectionPool gem来管理对连接的安全访问.

现在,根据我是在Sidekiq还是Puma的上下文中运行,我需要这些池的大小不同(分别与Sidekiq线程或Puma线程的数量一样大,它们是不同的)

在初始化程序中,了解基于执行上下文建立连接池的最佳方法的最佳方法是什么?

谢谢!

ruby connection-pooling sidekiq puma ruby-on-rails-4

13
推荐指数
1
解决办法
2030
查看次数

为什么HikariCP建议使用固定大小的池以获得更好的性能

根据HikariCP的文档,他们提到创建固定大小的池以获得更好的性能.

minimumIdle:

此属性控制HikariCP尝试在池中维护的最小空闲连接数.如果空闲连接低于此值,HikariCP将尽最大努力快速有效地添加其他连接.但是,为了获得最高性能和对峰值需求的响应,我们建议不要设置此值,而是允许HikariCP充当固定大小的连接池.默认值:相同maximumPoolSize

我的应用程序通常需要100个连接,并且仅在少数情况下达到200个连接.

如果我创建一个200连接固定大小的池,大多数时候100个连接将是空闲的.

那么以下哪一项是最好的:

  1. 创建固定大小的连接池.即200

要么

  1. 通过设置minimumIdle为100和maximumPoolSize200 来创建连接池.

为什么HikariCP不推荐第二点?我认为第二个对我来说是最好的.

java database sql-server connection-pooling hikaricp

13
推荐指数
1
解决办法
9851
查看次数

HttpClientError:目标服务器无法响应

我正在尝试使用http客户端使用PoolingClientConnectionManager为各个主机设置最大连接来命中服务器

 //Code that inilizes my connection mananger and http client 
Run Code Online (Sandbox Code Playgroud)

HttpParams httpParam = httpclient.getParams(); HttpConnectionParams.setSoTimeout(httpParam,SOCKET_TIMEOUT);

    HttpConnectionParams.setConnectionTimeout(httpParam, CONN_TIMEOUT);

    httpclient.setParams(httpParam);

    //Run a thread which closes Expired connections
    new ConnectionManager(connManager).start(); 

        //Code that executes my request 
    HttpPost httpPost = new HttpPost(url);
            HttpEntity httpEntity = new StringEntity(request, "UTF-8");
    httpPost.setEntity(httpEntity);

    Header acceptEncoding = new BasicHeader("Accept-Encoding", "gzip,deflate");
    httpPost.setHeader(acceptEncoding);     

    if(contenttype != null && !contenttype.equals("")){
        Header contentType = new BasicHeader("Content-Type", contenttype);
        httpPost.setHeader(contentType);
    }
            InputStream inputStream = null;
    LOG.info(dataSource + URL + url + REQUEST + request);

    HttpResponse …
Run Code Online (Sandbox Code Playgroud)

java apache connection-pooling httpclient

13
推荐指数
2
解决办法
5万
查看次数

如何为postgres连接设置application_name?

我正在使用tomcat连接池org.apache.tomcat.jdbc.pool.DataSource.连接在我的数据库中显示pg_stat_activity为空application_name.

我如何在我的java应用程序中设置该应用程序名称,因此我知道每个连接的来源(因为将有多个应用程序访问同一个数据库)?

java postgresql connection-pooling tomcat-jdbc

13
推荐指数
4
解决办法
8618
查看次数