2017-11-01 5 views
0

go-lang postgres 드라이버를 사용하여 gosh 스크립트를 redshift에 연결합니다. 쿼리를 완료하는 데 5 분 이상이 걸리면 프로그램이 제어권을 다시 얻지 못합니다. redshift-server에서 쿼리를 확인한 후 그 쿼리가 ~ 7 분 내에 완료된 것을 봅니다.SQL 쿼리가 서버에서 완료되지만 프로그램이 다시 시작되지 않습니다.

왜 이런 일이 발생하는지 잘 모름.

내 코드

func truncate_and_populate_set_1(db *sql.DB, parameter string){ 
    insert_q := `...` 
    db := GetDB() 
    util.ExeQ(db, insert_q) 
    log.Println("Done adding records to table") 
} 

func GetDB() *sql.DB { 
    connection_string := "postgres://%s:%[email protected]" 
    db, err := sql.Open("postgres", connection_string) 
    if err != nil { 
    fmt.Println(err) 
    } 
    return db 
} 

func ExeQ(db *sql.DB, query string) { 
_, err := db.Exec(query) 
if err != nil { 
    log.Fatal(err) 
    } 
} 

답변

0

당신은 적색 편이 연결을 관리하는 것 도서관의 살아있는 동작을 유지하려면 변경해야합니다. 유감스럽게도 Go에서 어떻게하는지 알려줄 수는 없습니다. 는 JDBC URL에 대한

당신은 옵션을 추가 할 수 있습니다 : http://docs.aws.amazon.com/redshift/latest/mgmt/troubleshooting-connections.html

:

jdbc:redshift://my-cluster … :5439/user?tcpKeepAlive=true&TCPKeepAliveMinutes=2 

더 많은 옵션을 보려면 여기를 설명서를 참조하십시오