I don't think hive.server2.idle.session.timeout can be set via client. It might need to be set on server side.
So before you run your query, you might need to restart HS2 with that property set, but I'm not sure that's what you are looking for.

On Sun, Nov 29, 2015 at 11:50 PM, reena upadhyay <reena2485@gmail.com> wrote:
I am using hive jdbc 1.0 in my java application to create connection with hive server and execute query. I want to set the idle hive connection timeout from java code. Like say, user first creates the hive connection, and if the hive connection remains idle for next 10 minutes, then this connection object should get expired. If user uses this same connection object after 10 minutes for executing query, then hive jdbc should throw error. Can you please tell me the way to achieve this through java code.

I know there is a property hive.server2.idle.session.timeout in hive, but I don't know whether this is the right property required to be set from java code or there is some other property. I tried setting this property in jdbc connection string but it did not worked.

        try {
                Class.forName("org.apache.hive.jdbc.HiveDriver");
            } catch (ClassNotFoundException e) {
                LOG.error(ExceptionUtils.getStackTrace(e));
            }

            String jdbcurl = "jdbc:hive2://localhost:10000/idw?hive.server2.idle.session.timeout=1000ms";
            Connection con;
            con = DriverManager.getConnection(jdbcurl,"root","");

            Thread.sleep(3000);

Now below I am using connection object, hive jdbc should throw error here as I used connection object after 3000 ms but I had set the idle timeout as 1000ms but hive jdbc had not thrown error

            ResultSet rs = con.createStatement().executeQuery("select * from idw.emp");

Need help on this.



--
Takahiko Saito