2017-11-01 8 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の場合

あなたはオプションを追加することもできます

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

は、より多くのオプションのためにここにドキュメントを参照してください:http://docs.aws.amazon.com/redshift/latest/mgmt/troubleshooting-connections.html

関連する問題