2017-11-29 25 views
1

Ubuntu에서 Amazon EC2를 사용하고 있습니다.연결이 닫힌 상태에서 새 명령을 추가 할 수 없습니다.

나는 그것은 잘 작동

pm2 start bin/www --log-date-format "YYYY-MM-DD HH:mm" --watch 

같이 PM2를 사용하여 서버를 실행하고 있지만 1 ~ 2 일 후에 API에 액세스하려고 할 때.

0|www  | 2017-11-29 08:30: name error { Error: Can't add new command when connection is in closed state 
0|www  |  at Connection._addCommandClosedState (/var/www/html/perb_nodejs/node_modules/mysql2/lib/connection.js:158:13) 
0|www  |  at Connection.query (/var/www/html/perb_nodejs/node_modules/mysql2/lib/connection.js:621:15) 
0|www  |  at Object.loginTrainer (/var/www/html/perb_nodejs/models/trainer.js:49:29) 
0|www  |  at /var/www/html/perb_nodejs/routes/v1/trainer.js:50:16 
0|www  |  at Layer.handle [as handle_request] (/var/www/html/perb_nodejs/node_modules/express/lib/router/layer.js:95:5) 
0|www  |  at next (/var/www/html/perb_nodejs/node_modules/express/lib/router/route.js:137:13) 
0|www  |  at Route.dispatch (/var/www/html/perb_nodejs/node_modules/express/lib/router/route.js:112:3) 
0|www  |  at Layer.handle [as handle_request] (/var/www/html/perb_nodejs/node_modules/express/lib/router/layer.js:95:5) 
0|www  |  at /var/www/html/perb_nodejs/node_modules/express/lib/router/index.js:281:22 
0|www  |  at Function.process_params (/var/www/html/perb_nodejs/node_modules/express/lib/router/index.js:335:12) fatal: true } 

그런 다음 PM2 인스턴스를 다시 시작해야합니다.

연결이 닫혀 있기 때문에이 문제에 직면하고 있음을 이해합니다. 그러나 PM2를 사용할 때 이것이 왜 일어나는지. 나는 PM2가 똑같은 일을하기로되어 있다고 생각한다.

package.json

{ 
    "name": "", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "dependencies": { 
    "body-parser": "~1.18.2", 
    "cookie-parser": "~1.4.3", 
    "cors": "2.8.4", 
    "debug": "~2.6.9", 
    "express": "~4.15.5", 
    "jade": "~1.11.0", 
    "morgan": "~1.9.0", 
    "multer": "1.3.0", 
    "mysql2": "1.5.0", 
    "path": "0.12.7", 
    "request": "2.83.0", 
    "serve-favicon": "~2.4.5" 
    } 
} 

편집 : 나는 그것이 때문이 아니라 서버입니다하지만 DB의 연결이 닫힐 생각합니다.

도움이 될 것입니다.

+0

mysql2 패키지에 문제가있는 경우 문제가 있음을 발견 한 경우 pm 날 수 있습니까? –

+0

@SamuelThompson mysql2 문제라고 생각하지 않습니다. 내가 찾을 수있는 것은, mysql 연결이 요청을 제공 할 자유가 없을 때 일어나는 일이다. 메모리 누수가 있거나 API 요청에 대해 아무 것도 반환하지 않으면 하나의 연결이 열려 있습니다. 특정 유형 후에는 모든 연결이 끊어졌으며 그 오류가 나타납니다. –

답변

-1

10 초 동안 사용하지 않으면 연결을 종료 한 다음 새 연결을 만들어 문제를 해결했습니다. 진짜 문제는 연결이 열려 있는지 여부를 알 수있는 방법이 없다는 것입니다.