Replies:

Thank you very much, but I am not using production.There is a setQueryTimeout method in the% Net.Remote.Java.JDBCGateway class of IRIS, but this method does not exist in Ensemble2016, what should I do?

The code in IRIS is as follows:
ClassMethod jdbc() As %String
{
    
    #dim %JDBCGateway as %Net.Remote.Java.JDBCGateway
    s SQLConName="INC0001"
    s gc=$$GetJConnection^%apiGTW(SQLConName)
    i gc="" QUIT "-1^"_$$$ERROR($$$GTWCConnectionError)
    set myquery= "select top 1 * from SQLUser.OE_OrdTeeth"
    "
    q:myquery="" "-1^sql can't empty"
    
    /// prepare sql
    s command=$ZCONVERT($p(myquery," ",1),"U") 
    If (command["CALL") {
        s sqlhstmt=%JDBCGateway.prepareCall(gc,myquery)
    } else {
        s sqlhstmt=%JDBCGateway.prepareStatement(gc,myquery)
      }
      if (sqlhstmt < 0) {
        q "-1^"_%JDBCGateway.getErrorText()
      }
       s sqlerr=%JDBCGateway.setQueryTimeout(sqlhstmt,5)
      
    if sqlerr<0{
        q "-1^"_%JDBCGateway.getErrorText()
    }
   
    s sqlerr=%JDBCGateway.execQuery(sqlhstmt)
    if sqlerr<0{
        q "-1^"_%JDBCGateway.getErrorText()
    }
  
    /// dump result 
    s colcount=%JDBCGateway.getColumnCount(sqlhstmt)
    s hasdata=%JDBCGateway.next(sqlhstmt)
    while hasdata = 1 {
        
        s tpseudoid=%JDBCGateway.getString(sqlhstmt,1)
    
        
        
        s hasdata=%JDBCGateway.next(sqlhstmt)
    } //matches while hasdata
    
    d %JDBCGateway.removeResultSet(gc)
    
    q
}

Due to objective reasons, I cannot upgrade to IRIS.Can you give me an example of setting query timeout through JDBC in Ensemble2016.

thank you very much!

In IRIS as you said, but there is no such method in Ensemble2016, I use Ensemble2016

Followers:
li has no followers yet.
Following:
li has not followed anybody yet.
Global Masters badges:
li has no Global Masters badges yet.