Tag: 连接池

db-oracle不会刷新数据

我正在使用Node.js工作一个简单的服务。 它接收上传的文件,将它们存储在磁盘上,并在Oracle表上logging一些元数据。 我正在使用db-oracle软件包和连接池一起使用这篇文章: http : //nodejsdb.org/2011/05/connection-pooling-node-db-with-generic-pool/ 但是,我注意到,我插入的数据只在连接池closures空闲连接之后才通过调用disconnect()方法发送到Oracle数据库。 在向客户端发送“OK”信号之前,是否有办法刷新数据? 现在它的工作方式,我的web服务或Oracle本身的崩溃可能会导致数据丢失,我的服务的客户端不会知道它。 实际上,我在一些上传之后通过杀死我的应用进程来testing,数据确实丢失了。 以下是代码的简化版本: var express = require('express'); var app = module.exports = express.createServer(); app.post('/upload', handleUpload); app.listen(4001, function(){ console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); }); function handleUpload(req, res) { res.contentType('application/xml'); var buf = ''; req.on('data', function(chunk) { buf += chunk; }); req.on('end', function() […]

调整节点 – mongodb – 本地连接池的大小

我有一个快速的应用程序通过节点mongodb本机驱动程序与mongodb交谈。 在我的应用程序中的一些请求是间歇性缓慢。 任何确定或排除驱动程序连接池大小的好工具或策略都是一个瓶颈? 下面是关于调整池大小的一些讨论 ,但这是非常不确定的。 aheckmann指出,5的默认值通常是很多,而tinana看到了许多并发请求,从而激起了巨大的收益。 更新:这个问题是为了帮助我理解调整和工具驱动程序池大小,而不是解决即时性能问题。 我描述我的问题只是为了提出这个问题。

node-mysql – 何时释放连接回池

我正在使用连接池的node-mysql驱动程序。 只有一个查询时,将连接释放回池中很容易: pool.getConnection(function(err, connection) { if (err) { throw err; } query = "SELECT * FROM user WHERE id = ?"; connection.query(query, [id], function(err, users) { connection.release(); if (err) { throw err; } // … }); }); 如果我需要再次使用连接,该怎么办? 我不得不将release()移动几行。 但是,如果错误被抛出,会发生什么? 连接是否永远不会返回到池中? 我是否必须使用一些控制stream程lib才能释放它? 任何更好的想法?

node-mongodb-native中的连接池,何时调用db.open和db.close

我在这里阅读了关于node-mongodb-native的大部分问题,但我无法制定出何时打开/closures连接的标准做法。 有些来源说需要打开/closures,有人说整个使用一个数据库实例。 node-mongodb-native支持自动连接池吗? 如果是这样,我该如何使用它? 我真的很感激示例代码显示正确的使用db.open和db.close相对于一个login请求。

node-postgres:设置最大连接池大小

我无法findnode-postgres驱动器的任何文档来设置最大连接池大小,甚至找不到它是不可configuration的。 有谁知道我可以如何设置最大连接数,或默认情况下是什么?

节点js – http.request()连接池的问题

考虑以下简单的Node.js应用程序: var http = require('http'); http.createServer(function() { }).listen(8124); // Prevent process shutting down var requestNo = 1; var maxRequests = 2000; function requestTest() { http.request({ host: 'www.google.com', method: 'GET' }, function(res) { console.log('Completed ' + (requestNo++)); if (requestNo <= maxRequests) { requestTest(); } }).end(); } requestTest(); 它一个接一个地向Google.com发出2000个HTTP请求。 问题是请求第5号并暂停大约3分钟,然后继续处理请求6-10,然后再暂停3分钟,然后请求11-15,暂停,等等。 编辑: 我试图改变www.google.com本地主机,一个非常基本的Node.js应用程序运行我的机器,返回“你好世界”,我仍然得到3分钟的停顿。 现在我读了我可以增加连接池的限制: http.globalAgent.maxSockets = 20; 现在,如果我运行它,它处理请求1 […]

Node.js Redis连接池

在Redis中使用node_redis Node.js模块时,我应该只使用一个连接,因为Redis是单线程进程,还是应该创build一个连接池来提高性能?

node-mysql连接池

我正在使用node-mysql模块( https://github.com/felixge/node-mysql )或( http://utahjs.com/2010/09/22/nodejs-and-mysql-introduction/ )。 这个API也处理连接池吗? 我的意思是,我调用Client.connect()来查询MySQL并释放连接: Client.end() 。 这是正确的方式,还是应该在代码中连接/断开一次? 我从这个文档学习: https : //github.com/felixge/node-mysql/blob/master/Readme.md