Naveen
Naveen

Reputation: 687

Redshift/Java: SQL execute hangs and never returns

The application that im working on runs a sequence of queries on AWS Redshift. Some of the queries take longer to execute due to the data volume.

The queries seem to finish on Redshift when i check the execution details on the server. However, the java application seems to hang indefinitely without throwing any exception or even terminating.

Here's the code that executes the query.

private void execSQLStrings(String[] queries, String dataset, String dbType) throws Exception {
    Connection conn = null;

    if (dbType.equals("redshift")) {
        conn=getRedshiftConnection();
    } else if (dbType.equals("rds")){
        conn=getMySQLConnection();
    }

    Statement stmt=conn.createStatement();

    String qry=null;
    debug("Query Length: " + queries.length);
    for (int ii=0;ii<queries.length;++ii) {
        qry=queries[ii];

        if (dataset != null) {
            qry=qry.replaceAll("DATASET",dataset);
        }

        debug(qry);
        stmt.execute(qry);
    }
    stmt.close();
    conn.close();
}

I cant post the query that im running at the moment but it has multiple table joins and group by conditions and its an 800m row table. The query takes about 7~8 mins to complete on the server.

Upvotes: 1

Views: 873

Answers (1)

Paladin
Paladin

Reputation: 630

You need to update the DSN Timeout and/ or KeepAlive settings to make sure that your connections stay alive. Refer: http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-firewall-guidance.html

Upvotes: 1

Related Questions