- postgresql jdbc driver doesn't implement setQueryTimeout yet
This commit is contained in:
parent
607d1c0a26
commit
fab259545c
|
@ -284,6 +284,11 @@ public interface AdempiereDatabase
|
||||||
|
|
||||||
public Convert getConvert();
|
public Convert getConvert();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return true if jdbc driver support statement timeout
|
||||||
|
*/
|
||||||
|
public boolean isQueryTimeoutSupported();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Data Type
|
* Get Data Type
|
||||||
* @param DisplayType display type
|
* @param DisplayType display type
|
||||||
|
|
|
@ -1105,5 +1105,9 @@ public class DB_Oracle implements AdempiereDatabase
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isQueryTimeoutSupported() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // DB_Oracle
|
} // DB_Oracle
|
||||||
|
|
|
@ -782,7 +782,13 @@ public class DB_PostgreSQL implements AdempiereDatabase
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isQueryTimeoutSupported() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
public boolean getSupportAlias()
|
public boolean getSupportAlias()
|
||||||
{
|
{
|
||||||
|
|
|
@ -134,7 +134,7 @@ public class MSequence extends X_AD_Sequence
|
||||||
ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
|
ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
|
||||||
pstmt.setString(1, TableName);
|
pstmt.setString(1, TableName);
|
||||||
//
|
//
|
||||||
if (!USE_PROCEDURE)
|
if (!USE_PROCEDURE && DB.getDatabase().isQueryTimeoutSupported())
|
||||||
pstmt.setQueryTimeout(QUERY_TIME_OUT);
|
pstmt.setQueryTimeout(QUERY_TIME_OUT);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
if (CLogMgt.isLevelFinest())
|
if (CLogMgt.isLevelFinest())
|
||||||
|
@ -291,7 +291,10 @@ public class MSequence extends X_AD_Sequence
|
||||||
cstmt.setInt(1, AD_Sequence_ID);
|
cstmt.setInt(1, AD_Sequence_ID);
|
||||||
cstmt.setString(2, adempiereSys ? "Y" : "N");
|
cstmt.setString(2, adempiereSys ? "Y" : "N");
|
||||||
cstmt.registerOutParameter(3, Types.INTEGER);
|
cstmt.registerOutParameter(3, Types.INTEGER);
|
||||||
cstmt.setQueryTimeout(QUERY_TIME_OUT);
|
if (DB.getDatabase().isQueryTimeoutSupported())
|
||||||
|
{
|
||||||
|
cstmt.setQueryTimeout(QUERY_TIME_OUT);
|
||||||
|
}
|
||||||
cstmt.execute();
|
cstmt.execute();
|
||||||
retValue = cstmt.getInt(3);
|
retValue = cstmt.getInt(3);
|
||||||
}
|
}
|
||||||
|
@ -330,7 +333,10 @@ public class MSequence extends X_AD_Sequence
|
||||||
cstmt.setInt(2, incrementNo);
|
cstmt.setInt(2, incrementNo);
|
||||||
cstmt.setString(3, calendarYear);
|
cstmt.setString(3, calendarYear);
|
||||||
cstmt.registerOutParameter(4, Types.INTEGER);
|
cstmt.registerOutParameter(4, Types.INTEGER);
|
||||||
cstmt.setQueryTimeout(QUERY_TIME_OUT);
|
if (DB.getDatabase().isQueryTimeoutSupported())
|
||||||
|
{
|
||||||
|
cstmt.setQueryTimeout(QUERY_TIME_OUT);
|
||||||
|
}
|
||||||
cstmt.execute();
|
cstmt.execute();
|
||||||
retValue = cstmt.getInt(4);
|
retValue = cstmt.getInt(4);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -495,7 +501,7 @@ public class MSequence extends X_AD_Sequence
|
||||||
pstmt.setString(3, calendarYear);
|
pstmt.setString(3, calendarYear);
|
||||||
|
|
||||||
//
|
//
|
||||||
if (!USE_PROCEDURE)
|
if (!USE_PROCEDURE && DB.getDatabase().isQueryTimeoutSupported())
|
||||||
pstmt.setQueryTimeout(QUERY_TIME_OUT);
|
pstmt.setQueryTimeout(QUERY_TIME_OUT);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
// s_log.fine("AC=" + conn.getAutoCommit() + " -Iso=" + conn.getTransactionIsolation()
|
// s_log.fine("AC=" + conn.getAutoCommit() + " -Iso=" + conn.getTransactionIsolation()
|
||||||
|
@ -779,7 +785,7 @@ public class MSequence extends X_AD_Sequence
|
||||||
pstmt.setString(2, calendarYear);
|
pstmt.setString(2, calendarYear);
|
||||||
|
|
||||||
//
|
//
|
||||||
if (!USE_PROCEDURE)
|
if (!USE_PROCEDURE && DB.getDatabase().isQueryTimeoutSupported())
|
||||||
pstmt.setQueryTimeout(QUERY_TIME_OUT);
|
pstmt.setQueryTimeout(QUERY_TIME_OUT);
|
||||||
rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
// s_log.fine("AC=" + conn.getAutoCommit() + " -Iso=" + conn.getTransactionIsolation()
|
// s_log.fine("AC=" + conn.getAutoCommit() + " -Iso=" + conn.getTransactionIsolation()
|
||||||
|
|
|
@ -80,14 +80,14 @@ import org.w3c.dom.Element;
|
||||||
public abstract class PO
|
public abstract class PO
|
||||||
implements Serializable, Comparator, Evaluatee
|
implements Serializable, Comparator, Evaluatee
|
||||||
{
|
{
|
||||||
private static final String USE_TIMEOUT_FOR_UPDATE = "org.adempiere.po.useTimeoutForUpdate";
|
|
||||||
|
|
||||||
private static final int QUERY_TIME_OUT = 10;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 1876469108787009999L;
|
private static final long serialVersionUID = 8413360272600437423L;
|
||||||
|
|
||||||
|
private static final String USE_TIMEOUT_FOR_UPDATE = "org.adempiere.po.useTimeoutForUpdate";
|
||||||
|
|
||||||
|
private static final int QUERY_TIME_OUT = 10;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Document Value Workflow Manager
|
* Set Document Value Workflow Manager
|
||||||
|
@ -2404,7 +2404,8 @@ public abstract class PO
|
||||||
} // saveUpdate
|
} // saveUpdate
|
||||||
|
|
||||||
private boolean isUseTimeoutForUpdate() {
|
private boolean isUseTimeoutForUpdate() {
|
||||||
return "true".equalsIgnoreCase(System.getProperty(USE_TIMEOUT_FOR_UPDATE, "false"));
|
return "true".equalsIgnoreCase(System.getProperty(USE_TIMEOUT_FOR_UPDATE, "false"))
|
||||||
|
&& DB.getDatabase().isQueryTimeoutSupported();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue