var cql = require('node-cassandra-cql');
var client = new cql.Client({hosts: ['*.*.*.*'], keyspace: '*',
username:'*', password: '*'});
console.log('connected to ' , client);
console.log('Querying....');
client.execute('select * from example where field1=?', [1],
function(err, result) {
console.log('inside', result);
if (err)
console.log('execute failed',err);
else
console.log('got chat ' + result.rows[0].field1);
client.shutdown();
}
);
私はこのコードを使用していますが、execute()コールバックは呼び出されません。私が間違ったIPアドレスを使用したかどうかをテストするために、すぐに応答し、この行console.log( 'execute failed'、err)は以下の行を記録します。新しいcql.Clientが内部接続(非同期)を呼び出しますので、右のIPアドレス何も5月に発生した場合ノードCassandraドライバがちょうどハングします。
execute failed { [PoolConnectionError]
name: 'PoolConnectionError',
info: 'Represents a error while trying to connect the pool, all the connections failed.',
individualErrors:
[ { Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: '*.*.*.*'
host: '*.*.*.*'
port: 9042 } ] }
でも接続する前にしようとしている実行作られるのですか?すべてCQLSHで完璧に動作します。私のサーバは、米国西海岸のAWSにあります。
任意の入力を歓迎します。
'client.connect([コールバック])'と、ドキュメントで推奨されているようにあなたは、 'プールを温める' 場合はどう? – raina77ow
docは、内部的に呼び出されるので、connectでのウォーミングはオプションです。 Quoting "プールが接続されていることを確認します。コールする必要はありません。内部的には、クエリを実行するときにドライバーが接続を呼び出すでしょう。私は試してみたのですが違いはありません –