Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js TNS侦听器找不到具有匹配协议堆栈的可用处理程序?在nodejs中使用node oracledb_Node.js_Oracle_Oracle10g_Node Oracledb - Fatal编程技术网

Node.js TNS侦听器找不到具有匹配协议堆栈的可用处理程序?在nodejs中使用node oracledb

Node.js TNS侦听器找不到具有匹配协议堆栈的可用处理程序?在nodejs中使用node oracledb,node.js,oracle,oracle10g,node-oracledb,Node.js,Oracle,Oracle10g,Node Oracledb,即使我在完成查询的执行后释放连接,它也会抛出一个名为TNS listener找不到具有匹配协议堆栈的可用处理程序的错误。 在最初的2到5次中,它工作得很好。但是,在一些请求随机之后,它抛出了这种类型的错误。你能帮我解决什么问题吗。 我使用的是express、oracledb和oracle 10g express edition 注意:我是node和oracledb的初学者 以下是我收到请求时的代码: oracledb.createPool({ user : "harsh

即使我在完成查询的执行后释放连接,它也会抛出一个名为TNS listener找不到具有匹配协议堆栈的可用处理程序的错误。 在最初的2到5次中,它工作得很好。但是,在一些请求随机之后,它抛出了这种类型的错误。你能帮我解决什么问题吗。 我使用的是express、oracledb和oracle 10g express edition

注意:我是node和oracledb的初学者

以下是我收到请求时的代码:

oracledb.createPool({
    user          : "harsha",
    password      : "harsha",
    connectString : "localhost/XE",
    poolMax       : 44,
    poolMin       : 2,
    poolIncrement : 5,
    poolTimeout   : 4

}, function(err, pool) {


    if(err) {

        errorHandler(res);
        console.log("Error in pooling with oracledb"+err);
        return false;
    }else {

        console.log("Connected to oracledb successfully");
        //select r, v1.* from (select rownum r , v.* from (select * from employee) v) v1 where r>0 and r<=10;
        var gen_query = "select r, v1.* from (select rownum r , v.* from ("+query+") v) v1 where r>"+start_sequence+" and r<="+(end_sequence)+"";
        // connection.execute("select count(*) c from "+tname, function(err, result) {

        //  if(err) {

        //      res.json({
          //            dbStatus: 'E',
          //            data:"Invlaid syntax "+err
             //    });
        //      return false;

        //  }else {

        //      console.log(result);
        //      totalRows = result.rows[0].C;
        //      console.log(totalRows);
        //      connection.execute(gen_query , function(err, result) {
             //        if(err) {
             //          console.log("Error in results"+err);

             //          res.json({
             //             dbStatus: 'E',
             //             data:"Invlaid syntax "+err
             //          });
             //          //res.status(200).send(err);
             //          //errorHandler(res);

             //          return false;

             //        }else {
             //          console.log(result);
             //          console.log(totalRows);
             //          if(end_sequence < totalRows)
             //          {
                //         res.json({
             //                 dbStatus: 'S',
             //                 data: result,
             //                 moreRowsToFetch: true
                //         });
                //       }else {

                //          res.json({
             //                 dbStatus: 'S',
             //                 data: result,
             //                 moreRowsToFetch: false
                //         });
                //       }
             //        }

          //        });
        //  }
        // })

        pool.getConnection(function(error, connection) {

            if(err) {

                console.log("Error in connecting to oracledb"+err);
            }else {

                connection.execute("select count(*) c from "+tname, function(err, result) {

                    if(err) {

                        res.json({
                            dbStatus: 'E',
                            data:"Invlaid syntax "+err
                        });

                        connection.release(function(err) {

                            if(err) {
                                console.log("Wrong with releasing connection");
                            }else {
                                console.log("Connection is released");
                                //res.end();
                            }
                        })

                        return false;

                    }else {

                        console.log(result);
                        totalRows = result.rows[0].C;
                        console.log(totalRows);
                        connection.execute(gen_query , function(err, result) {
                            if(err) {
                              console.log("Error in results"+err);

                              res.json({
                                dbStatus: 'E',
                                data:"Invlaid syntax "+err
                              });
                              //res.status(200).send(err);
                              //errorHandler(res);


                            }else {

                                if(end_sequence < totalRows) {

                                    res.json({
                                        dbStatus: 'S',
                                        data: result,
                                        moreRowsToFetch: true
                                    });
                                }else {

                                    res.json({
                                        dbStatus: 'S',
                                        data: result,
                                        moreRowsToFetch: false
                                    });
                                }
                            }

                            connection.release(function(err) {

                                if(err) {
                                    console.log("Wrong with releasing connection");
                                }else {
                                    console.log("Connection is released");
                                    //res.end();
                                }
                            })

                        });
                    }
                })

            }
        })

    }

})
您的池默认值与旧示例/webapp.js默认值类似。在初始测试和作为单个用户进行黑客攻击时,我会放弃最大池大小。最近,示例应用程序被更改为使用与硬编码默认值相同的较低值

确保您使用的是最新的节点oracledb

您可能会发现,使用类似“异步”的方法可以更轻松地处理错误。请参阅examples/plsqlarray.js了解一个示例

如果在配置不足的数据库上抛出负载,可能会看到ORA-12516错误。您可能需要修改数据库“进程”设置,例如“alter system set processs=100 scope=spfile;”在运行PHP回归测试时,我经常看到默认Oracle XE 11g出现错误


@嘿,我已经添加了我的代码。我不认为我释放了不正当的联系。如果发布中有任何错误,请您帮我解决好吗?当我重新启动服务器时,它工作正常。但在几次请求之后,它重复了相同的错误。