diff --git a/org.adempiere.base.process/src/org/adempiere/process/ApplyMigrationScripts.java b/org.adempiere.base.process/src/org/adempiere/process/ApplyMigrationScripts.java index 84d16c50d8..9d7ecfcc61 100644 --- a/org.adempiere.base.process/src/org/adempiere/process/ApplyMigrationScripts.java +++ b/org.adempiere.base.process/src/org/adempiere/process/ApplyMigrationScripts.java @@ -149,7 +149,7 @@ public class ApplyMigrationScripts extends SvrProcess { if (statementReady) { if (sqlBuf.length() == 0) continue; - Connection conn = DB.getConnectionRW(); + Connection conn = DB.getConnection(); conn.setAutoCommit(false); Statement stmt = null; try { diff --git a/org.adempiere.base.process/src/org/compiere/process/ColumnSync.java b/org.adempiere.base.process/src/org/compiere/process/ColumnSync.java index 221f86de92..e772b2e836 100644 --- a/org.adempiere.base.process/src/org/compiere/process/ColumnSync.java +++ b/org.adempiere.base.process/src/org/compiere/process/ColumnSync.java @@ -113,7 +113,7 @@ public class ColumnSync extends SvrProcess Connection conn = null; ResultSet rs = null; try { - conn = DB.getConnectionRO(); + conn = DB.getConnection(); DatabaseMetaData md = conn.getMetaData(); String catalog = DB.getDatabase().getCatalog(); String schema = DB.getDatabase().getSchema(); diff --git a/org.adempiere.base.process/src/org/compiere/process/TableCreateColumns.java b/org.adempiere.base.process/src/org/compiere/process/TableCreateColumns.java index 3f5904b6df..3d2be30e1a 100644 --- a/org.adempiere.base.process/src/org/compiere/process/TableCreateColumns.java +++ b/org.adempiere.base.process/src/org/compiere/process/TableCreateColumns.java @@ -94,7 +94,7 @@ public class TableCreateColumns extends SvrProcess Connection conn = null; try { - conn = DB.getConnectionRO(); + conn = DB.getConnection(); AdempiereDatabase db = DB.getDatabase(); DatabaseMetaData md = conn.getMetaData(); String catalog = db.getCatalog(); diff --git a/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java b/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java index 9b4a8721db..a16ea22d8a 100644 --- a/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java +++ b/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java @@ -256,7 +256,7 @@ public class UUIDGenerator extends SvrProcess { // Find Column in Database Connection conn = null; try { - conn = DB.getConnectionRO(); + conn = DB.getConnection(); DatabaseMetaData md = conn.getMetaData(); String catalog = DB.getDatabase().getCatalog(); String schema = DB.getDatabase().getSchema(); diff --git a/org.adempiere.base/src/org/compiere/model/MIssue.java b/org.adempiere.base/src/org/compiere/model/MIssue.java index c1156c8846..3719dd4265 100644 --- a/org.adempiere.base/src/org/compiere/model/MIssue.java +++ b/org.adempiere.base/src/org/compiere/model/MIssue.java @@ -55,7 +55,7 @@ public class MIssue extends X_AD_Issue { if (s_log.isLoggable(Level.CONFIG)) s_log.config(record.getMessage()); - if (!DB.isConnected(false)) + if (!DB.isConnected()) return null; MSystem system = MSystem.get(Env.getCtx()); if (system == null || !system.isAutoErrorReport()) diff --git a/org.adempiere.base/src/org/compiere/model/MSequence.java b/org.adempiere.base/src/org/compiere/model/MSequence.java index f29369f97c..02fc251992 100644 --- a/org.adempiere.base/src/org/compiere/model/MSequence.java +++ b/org.adempiere.base/src/org/compiere/model/MSequence.java @@ -184,7 +184,7 @@ public class MSequence extends X_AD_Sequence { try { - conn = DB.getConnectionID(); + conn = DB.getConnection(false); // Error if (conn == null) return -1; @@ -388,7 +388,7 @@ public class MSequence extends X_AD_Sequence if (trx != null) conn = trx.getConnection(); else - conn = DB.getConnectionID(); + conn = DB.getConnection(false); // Error if (conn == null) return null; diff --git a/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java b/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java index 92d3013ff3..ac80ca6ec5 100644 --- a/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java +++ b/org.adempiere.base/src/org/compiere/util/CLogErrorBuffer.java @@ -216,13 +216,13 @@ public class CLogErrorBuffer extends Handler String methodName = record.getSourceMethodName(); // if (methodName == null) methodName = ""; - if (DB.isConnected(false) - && methodName != null + if (methodName != null && !methodName.equals("saveError") && !methodName.equals("get_Value") && !methodName.equals("dataSave") && loggerName.indexOf("Issue") == -1 && loggerName.indexOf("CConnection") == -1 + && DB.isConnected() ) { // create issue on a separate thread in order to eventually diff --git a/org.adempiere.base/src/org/compiere/util/DB.java b/org.adempiere.base/src/org/compiere/util/DB.java index 20fbbd6e0a..e518854829 100644 --- a/org.adempiere.base/src/org/compiere/util/DB.java +++ b/org.adempiere.base/src/org/compiere/util/DB.java @@ -38,8 +38,6 @@ import java.util.Properties; import java.util.logging.Level; import javax.sql.RowSet; -import javax.swing.JOptionPane; -import javax.swing.UIManager; import org.adempiere.exceptions.DBException; import org.adempiere.util.ProcessUtil; @@ -224,8 +222,6 @@ public final class DB mailPassword = Ini.getVar("ADEMPIERE_MAIL_PASSWORD"); else mailPassword = env.getProperty("ADEMPIERE_MAIL_PASSWORD"); - // if (mailPassword == null || mailPassword.length() == 0) - // return; // StringBuilder sql = new StringBuilder("UPDATE AD_Client SET") .append(" SMTPHost=").append(DB.TO_STRING(server)) @@ -278,7 +274,6 @@ public final class DB s_cc.setDataSource(); if (log.isLoggable(Level.CONFIG)) log.config(s_cc + " - DS=" + s_cc.isDataSource()); - // Trace.printStack(); } // setDBTarget /** @@ -290,25 +285,14 @@ public final class DB boolean success =false; try { - Connection connRW = getConnectionRW(); - if (connRW != null) + Connection conn = getConnection(); + if (conn != null) { - s_cc.readInfo(connRW); - connRW.close(); + s_cc.readInfo(conn); + conn.close(); } - Connection connRO = getConnectionRO(); - if (connRO != null) - { - connRO.close(); - } - - Connection connID = getConnectionID(); - if (connID != null) - { - connID.close(); - } - success = ((connRW != null) && (connRO != null) && (connID != null)); + success = (conn != null); } catch (Exception e) { @@ -325,16 +309,6 @@ public final class DB * @return true, if connected to database */ public static boolean isConnected() - { - return isConnected(true); - } - - /** - * Is there a connection to the database ? - * @param createNew If true, try to connect it not already connected - * @return true, if connected to database - */ - public static boolean isConnected(boolean createNew) { //bug [1637432] if (s_cc == null) return false; @@ -343,7 +317,7 @@ public final class DB boolean success = false; try { - Connection conn = getConnectionRW(createNew); // try to get a connection + Connection conn = getConnection(); // try to get a connection if (conn != null) { conn.close(); @@ -356,55 +330,107 @@ public final class DB success = false; } return success; - } // isConnected - - /** - * @return Connection (r/w) - */ - public static Connection getConnectionRW() - { - return getConnectionRW(true); } /** + * @Deprecated (since="10", forRemoval=true) + * Replace by {@link #isConnected()} + * + * Is there a connection to the database ? + * @param createNew ignore + * @return true, if connected to database + * @deprecated + */ + public static boolean isConnected(boolean createNew) + { + return isConnected(); + } // isConnected + + /** + * Get auto commit connection from connection pool. + * @return {@link Connection} + */ + public static Connection getConnection() + { + return getConnection(true); + } + + /** + * Get auto or not auto commit connection from connection pool. + * Usually you should use @{@link #getConnection()} instead to get auto commit connection + * and use {@link Trx} to works with not autoCommit connection. + * @param autoCommit + * @return {@link Connection} + */ + public static Connection getConnection(boolean autoCommit) + { + return createConnection(autoCommit, Connection.TRANSACTION_READ_COMMITTED); + } + + /** + * @Deprecated (since="10", forRemoval=true) + * Replace by @{@link #getConnection()} + * + * @return Connection (r/w) + * @deprecated + */ + public static Connection getConnectionRW() + { + return getConnection(); + } + + /** + * @Deprecated (since="10", forRemoval=true) + * Replace by @{@link #getConnection()} + * * Return (pooled) r/w AutoCommit, Serializable connection. * For Transaction control use Trx.getConnection() - * @param createNew If true, try to create new connection if no existing connection + * @param createNew ignore * @return Connection (r/w) + * @deprecated */ public static Connection getConnectionRW (boolean createNew) { - return createConnection(true, false, Connection.TRANSACTION_READ_COMMITTED); + return getConnection(); } // getConnectionRW /** + * @Deprecated (since="10", forRemoval=true) + * Replace by @{@link #getConnection(boolean)}. + * Note that this is intended for internal use only from the beginning. + * * Return everytime a new r/w no AutoCommit, Serializable connection. * To be used to ID * @return Connection (r/w) + * @deprecated */ public static Connection getConnectionID () { - return createConnection(false, false, Connection.TRANSACTION_READ_COMMITTED); + return getConnection(false); } // getConnectionID /** + * @Deprecated (since="10", forRemoval=true) + * Replace by @{@link #getConnection()}. Use {@link Trx} instead for readonly transaction. + * * Return read committed, read/only from pool. * @return Connection (r/o) + * @deprecated */ public static Connection getConnectionRO () { - return createConnection(true, true, Connection.TRANSACTION_READ_COMMITTED); // see below + return getConnection(); } // getConnectionRO /** - * Return a replica connection if possible, otherwise read committed, read/only from pool. + * Return a replica connection if possible, otherwise from pool. * @return Connection (r/o) */ public static Connection getReportingConnectionRO () { Connection conn = DBReadReplica.getConnectionRO(); if (conn == null) - conn = getConnectionRO(); + conn = getConnection(); return conn; } // getReportingConnectionRO @@ -438,8 +464,11 @@ public final class DB /** * @Deprecated (since="10", forRemoval=true) + * Replace by {@link #createConnection(boolean, int)}. + * Use {@link Trx} instead for readonly transaction. + * * Create new Connection. - * The connection must be closed explicitly by the application + * The connection must be closed explicitly by the application. * * @param autoCommit auto commit * @param readOnly ignore @@ -515,13 +544,16 @@ public final class DB /************************************************************************** + * @Deprecated (since="10", forRemoval=true) + * * Check database Version with Code version * @param ctx context * @return true if Database version (date) is the same + * @deprecated */ public static boolean isDatabaseOK (Properties ctx) { -// Check Version + // Check Version String version = "?"; String sql = "SELECT Version FROM AD_System"; PreparedStatement pstmt = null; @@ -551,21 +583,10 @@ public final class DB return true; String AD_Message = "DatabaseVersionError"; - String title = org.compiere.Adempiere.getName() + " " + Msg.getMsg(ctx, AD_Message, true); // Code assumes Database version {0}, but Database has Version {1}. String msg = Msg.getMsg(ctx, AD_Message); // complete message msg = MessageFormat.format(msg, new Object[] {Adempiere.DB_VERSION, version}); - Object[] options = { UIManager.get("OptionPane.noButtonText"), "Migrate" }; - int no = JOptionPane.showOptionDialog (null, msg, - title, JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE, - UIManager.getIcon("OptionPane.errorIcon"), options, options[0]); - if (no == 1) - { - JOptionPane.showMessageDialog (null, - "Start RUN_Migrate (in utils)\nSee: http://www.adempiere.com/maintain", - title, JOptionPane.INFORMATION_MESSAGE); - Env.exitEnv(1); - } + System.err.println(msg); return false; } // isDatabaseOK @@ -577,7 +598,7 @@ public final class DB */ public static boolean isBuildOK (Properties ctx) { -// Check Build + // Check Build String buildClient = Adempiere.getVersion(); String buildDatabase = ""; boolean failOnBuild = false; @@ -614,7 +635,6 @@ public final class DB return true; String AD_Message = "BuildVersionError"; - String title = org.compiere.Adempiere.getName() + " " + Msg.getMsg(ctx, AD_Message, true); // The program assumes build version {0}, but database has build Version {1}. String msg = Msg.getMsg(ctx, AD_Message); // complete message msg = MessageFormat.format(msg, new Object[] {buildClient, buildDatabase}); @@ -623,18 +643,8 @@ public final class DB return true; } - if (Ini.isClient()) - { - JOptionPane.showMessageDialog (null, - msg, - title, JOptionPane.ERROR_MESSAGE); - Env.exitEnv(1); - } - else - { - log.log(Level.SEVERE, msg); - } - return false; + log.log(Level.SEVERE, msg); + return false; } // isDatabaseOK @@ -659,7 +669,7 @@ public final class DB /************************************************************************** * Prepare Forward Read Only Call - * @param sql SQL + * @param sql * @return Callable Statement */ public static CallableStatement prepareCall(String sql) @@ -669,7 +679,7 @@ public final class DB /************************************************************************** * Prepare Call - * @param SQL sql + * @param SQL * @param resultSetConcurrency * @param trxName * @return Callable Statement @@ -707,10 +717,10 @@ public final class DB /** * Prepare Statement. - * @param sql sql statement + * @param sql * @param resultSetType - ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.TYPE_SCROLL_SENSITIVE * @param resultSetConcurrency - ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE - * @return Prepared Statement r/o or r/w depending on concur + * @return Prepared Statement * @deprecated */ public static CPreparedStatement prepareStatement (String sql, @@ -721,11 +731,11 @@ public final class DB /** * Prepare Statement. - * @param sql sql statement + * @param sql * @param resultSetType - ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.TYPE_SCROLL_SENSITIVE * @param resultSetConcurrency - ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE * @param trxName transaction name - * @return Prepared Statement r/o or r/w depending on concur + * @return Prepared Statement */ public static CPreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, String trxName) @@ -750,7 +760,7 @@ public final class DB * @param resultSetType - ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.TYPE_SCROLL_SENSITIVE * @param resultSetConcurrency - ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE * @param trxName transaction name - * @return Statement - either r/w ir r/o depending on concur + * @return Statement */ public static Statement createStatement(int resultSetType, int resultSetConcurrency, String trxName) { @@ -826,7 +836,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @return number of rows updated or -1 if error * @deprecated */ @@ -838,7 +848,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param trxName optional transaction name * @return number of rows updated or -1 if error */ @@ -850,7 +860,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param trxName optional transaction name * @param timeOut optional timeout parameter * @return number of rows updated or -1 if error @@ -863,7 +873,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param ignoreError if true, no execution error is reported * @return number of rows updated or -1 if error * @deprecated @@ -876,7 +886,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param ignoreError if true, no execution error is reported * @param trxName transaction * @return number of rows updated or -1 if error @@ -889,7 +899,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param ignoreError if true, no execution error is reported * @param trxName transaction * @param timeOut optional timeOut parameter @@ -903,7 +913,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param param int param * @param trxName transaction * @return number of rows updated or -1 if error @@ -916,7 +926,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param param int param * @param trxName transaction * @param timeOut optional timeOut parameter @@ -930,7 +940,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param param int parameter * @param ignoreError if true, no execution error is reported * @param trxName transaction @@ -944,7 +954,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param param int parameter * @param ignoreError if true, no execution error is reported * @param trxName transaction @@ -959,7 +969,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param params array of parameters * @param ignoreError if true, no execution error is reported * @param trxName optional transaction name @@ -973,7 +983,7 @@ public final class DB /** * Execute Update. * saves "DBExecuteError" in Log - * @param sql sql + * @param sql * @param params array of parameters * @param ignoreError if true, no execution error is reported * @param trxName optional transaction name @@ -984,7 +994,7 @@ public final class DB { if (sql == null || sql.length() == 0) throw new IllegalArgumentException("Required parameter missing - " + sql); - verifyTrx(trxName, sql); + verifyTrx(trxName); // int no = -1; CPreparedStatement cs = ProxyFactory.newCPreparedStatement(ResultSet.TYPE_FORWARD_ONLY, @@ -999,11 +1009,6 @@ public final class DB cs.setQueryTimeout(timeOut); } no = cs.executeUpdate(); - // No Transaction - Commit - if (trxName == null) - { - cs.commit(); // Local commit - } } catch (Exception e) { @@ -1016,7 +1021,6 @@ public final class DB String msg = DBException.getDefaultDBExceptionMessage(e); log.saveError (msg != null ? msg : "DBExecuteError", e); } - // throw new DBException(e); } finally { @@ -1054,7 +1058,7 @@ public final class DB if (sql == null || sql.length() == 0) throw new IllegalArgumentException("Required parameter missing - " + sql); // - verifyTrx(trxName, sql); + verifyTrx(trxName); int no = -1; CPreparedStatement cs = ProxyFactory.newCPreparedStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE, sql, trxName); // converted in call @@ -1069,11 +1073,6 @@ public final class DB } } no = cs.executeUpdate(); - // No Transaction - Commit - if (trxName == null) - { - cs.commit(); // Local commit - } } catch (Exception e) { @@ -1182,16 +1181,26 @@ public final class DB */ public static boolean rollback (boolean throwException, String trxName) throws SQLException { + // Not on transaction scope, Connection are thus auto commit/rollback + if (trxName == null) + { + return true; + } + try { - Connection conn = null; - Trx trx = trxName == null ? null : Trx.get(trxName, true); + Trx trx = Trx.get(trxName, false); if (trx != null) return trx.rollback(true); - else - conn = DB.getConnectionRW (); - if (conn != null && !conn.getAutoCommit()) - conn.rollback(); + + if (throwException) + { + throw new IllegalStateException("Could not load transation with identifier: " + trxName); + } + else + { + return false; + } } catch (SQLException e) { @@ -1200,14 +1209,13 @@ public final class DB throw e; return false; } - return true; } // commit /** * Get Row Set. * When a Rowset is closed, it also closes the underlying connection. * If the created RowSet is transfered by RMI, closing it makes no difference - * @param sql sql + * @param sql * @return row set or null */ public static RowSet getRowSet (String sql) @@ -1222,8 +1230,8 @@ public final class DB /** * Get int Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or -1 if not found * @throws DBException if there is any SQLException @@ -1275,8 +1283,8 @@ public final class DB /** * Get String Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or -1 * @throws DBException if there is any SQLException @@ -1288,8 +1296,8 @@ public final class DB /** * Get int Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or -1 if not found or error */ @@ -1309,8 +1317,8 @@ public final class DB /** * Get int Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or null */ @@ -1321,8 +1329,8 @@ public final class DB /** * Get String Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or null * @throws DBException if there is any SQLException @@ -1374,8 +1382,8 @@ public final class DB /** * Get String Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or null * @throws DBException if there is any SQLException @@ -1387,8 +1395,8 @@ public final class DB /** * Get String Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or null */ @@ -1408,8 +1416,8 @@ public final class DB /** * Get String Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or null */ @@ -1420,8 +1428,8 @@ public final class DB /** * Get BigDecimal Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or null if not found * @throws DBException if there is any SQLException @@ -1473,8 +1481,8 @@ public final class DB /** * Get BigDecimal Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or null if not found * @throws DBException if there is any SQLException @@ -1487,8 +1495,8 @@ public final class DB /** * Get BigDecimal Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or null */ @@ -1508,8 +1516,8 @@ public final class DB /** * Get BigDecimal Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or null */ @@ -1520,8 +1528,8 @@ public final class DB /** * Get Timestamp Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or null * @throws DBException if there is any SQLException @@ -1573,8 +1581,8 @@ public final class DB /** * Get BigDecimal Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or null if not found * @throws DBException if there is any SQLException @@ -1586,8 +1594,8 @@ public final class DB /** * Get Timestamp Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return first value or null */ @@ -1606,8 +1614,8 @@ public final class DB /** * Get Timestamp Value from sql - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params collection of parameters * @return first value or null */ @@ -1679,7 +1687,6 @@ public final class DB } KeyNamePair[] retValue = new KeyNamePair[list.size()]; list.toArray(retValue); - // s_log.fine("getKeyNamePairs #" + retValue.length); return retValue; } // getKeyNamePairs @@ -1822,10 +1829,10 @@ public final class DB /************************************************************************** * Get next number for Key column = 0 is Error. - * * @param ctx client - @param TableName table name - * @param trxName optionl transaction name - * @return next no + * @param ctx client + * @param TableName table name + * @param trxName optional transaction name + * @return next id no */ public static int getNextID (Properties ctx, String TableName, String trxName) { @@ -1841,11 +1848,11 @@ public final class DB * @param AD_Client_ID client * @param TableName table name * @param trxName optional Transaction Name - * @return next no + * @return next id no */ public static int getNextID (int AD_Client_ID, String TableName, String trxName) { - return MSequence.getNextID (AD_Client_ID, TableName, trxName); // it is ok to call deprecated method here + return MSequence.getNextID (AD_Client_ID, TableName, trxName); } // getNextID /** @@ -1950,6 +1957,7 @@ public final class DB } // getDocumentNo /** + * @Deprecated (forRemoval=true) * Is this a remote client connection. * * Deprecated, always return false. @@ -1962,6 +1970,7 @@ public final class DB } // isRemoteObjects /** + * @Deprecated (forRemoval=true) * Is this a remote client connection * * Deprecated, always return false. @@ -2057,7 +2066,7 @@ public final class DB /** * Package Strings for SQL command in quotes * @param txt String with text - * @return escaped string for insert statement (NULL if null) + * @return escaped string for sql statement (NULL if null) */ public static String TO_STRING (String txt) { @@ -2072,7 +2081,7 @@ public final class DB * * @param txt String with text * @param maxLength Maximum Length of content or 0 to ignore - * @return escaped string for insert statement (NULL if null) + * @return escaped string for sql statement (NULL if null) */ public static String TO_STRING (String txt, int maxLength) { @@ -2166,19 +2175,6 @@ public final class DB /** Quote */ private static final char QUOTE = '\''; - /** - * Run Post Migration manually - * @param args ignored - */ - public static void main (String[] args) - { - Adempiere.startup(true); - MSystem system = MSystem.get(Env.getCtx()); - system.setIsJustMigrated(true); - afterMigration(Env.getCtx()); - } // main - - // Following methods are kept for BeanShell compatibility. // See BF [ 2030233 ] Remove duplicate code from DB class // TODO: remove this when BeanShell will support varargs methods @@ -2210,6 +2206,7 @@ public final class DB { return getSQLValueBD(trxName, sql, new Object[]{int_param1}); } + //End BeanShell compatibility. /** * Get Array of ValueNamePair items. @@ -2404,7 +2401,7 @@ public final class DB return m_isUUIDSupported; } - private static void verifyTrx(String trxName, String sql) { + private static void verifyTrx(String trxName) { if (trxName != null && Trx.get(trxName, false) == null) { // Using a trx that was previously closed or never opened // probably timed out - throw Exception (IDEMPIERE-644) @@ -2419,7 +2416,7 @@ public final class DB * @return true if table or view with name=tableName exists in db */ public static boolean isTableOrViewExists(String tableName) { - Connection conn = getConnectionRO(); + Connection conn = getConnection(); ResultSet rs = null; try { DatabaseMetaData metadata = conn.getMetaData(); @@ -2447,8 +2444,8 @@ public final class DB /** * Get an array of objects from sql (one per each column on the select clause), column indexing starts with 0 - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return null if not found * @throws DBException if there is any SQLException @@ -2508,8 +2505,8 @@ public final class DB /** * Get an array of arrays of objects from sql (one per each row, and one per each column on the select clause), column indexing starts with 0 * WARNING: This method must be used just for queries returning few records, using it for many records implies heavy memory consumption - * @param trxName trx - * @param sql sql + * @param trxName optional transaction name + * @param sql * @param params array of parameters * @return null if not found * @throws DBException if there is any SQLException @@ -2570,7 +2567,7 @@ public final class DB /** * Prepare Read Replica Statement - * @param sql sql statement + * @param sql * @param trxName transaction * @return Prepared Statement (from replica if possible, otherwise normal statement) */ @@ -2580,7 +2577,7 @@ public final class DB /** * Prepare Read Replica Statement - * @param sql sql statement + * @param sql * @param resultSetType - ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.TYPE_SCROLL_SENSITIVE * @param resultSetConcurrency - ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE * @param trxName transaction name diff --git a/org.adempiere.base/src/org/compiere/util/Env.java b/org.adempiere.base/src/org/compiere/util/Env.java index da7ca190d5..8449ca1bbc 100644 --- a/org.adempiere.base/src/org/compiere/util/Env.java +++ b/org.adempiere.base/src/org/compiere/util/Env.java @@ -181,7 +181,7 @@ public final class Env public static void exitEnv (int status) { //hengsin, avoid unncessary query of session when exit without log in - if (DB.isConnected(false)) { + if (DB.isConnected()) { // End Session MSession session = MSession.get(Env.getCtx()); // finish if (session != null) { diff --git a/org.adempiere.base/src/org/idempiere/process/MoveClient.java b/org.adempiere.base/src/org/idempiere/process/MoveClient.java index dd717eef1a..74b5b32674 100644 --- a/org.adempiere.base/src/org/idempiere/process/MoveClient.java +++ b/org.adempiere.base/src/org/idempiere/process/MoveClient.java @@ -214,7 +214,7 @@ public class MoveClient extends SvrProcess { try { try { if (p_IsCopyClient) { - externalConn = DB.getConnectionRO(); + externalConn = DB.getConnection(); } else { externalConn = DB.getDatabase(p_JDBC_URL).getDriverConnection(p_JDBC_URL, p_UserName, p_Password); } diff --git a/org.compiere.db.oracle.provider/src/org/compiere/db/DB_Oracle.java b/org.compiere.db.oracle.provider/src/org/compiere/db/DB_Oracle.java index d683f7aa04..d8c062f06e 100644 --- a/org.compiere.db.oracle.provider/src/org/compiere/db/DB_Oracle.java +++ b/org.compiere.db.oracle.provider/src/org/compiere/db/DB_Oracle.java @@ -27,7 +27,6 @@ import java.net.URL; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.sql.Connection; -import java.sql.DatabaseMetaData; import java.sql.Driver; import java.sql.DriverManager; import java.sql.PreparedStatement; @@ -42,7 +41,6 @@ import javax.sql.DataSource; import org.adempiere.db.oracle.OracleBundleActivator; import org.adempiere.exceptions.DBException; -import org.compiere.Adempiere; import org.compiere.dbPort.Convert; import org.compiere.dbPort.Convert_Oracle; import org.compiere.model.MColumn; @@ -950,222 +948,6 @@ public class DB_Oracle implements AdempiereDatabase return null; //do not do re-execution of alternative SQL } - - /************************************************************************** - * Testing - * @param args ignored - */ - public static void main (String[] args) - { - Adempiere.startupEnvironment(true); - CConnection cc = CConnection.get(); - DB_Oracle db = (DB_Oracle)cc.getDatabase(); - db.cleanup(); - - try - { - Connection conn = null; - // System.out.println("Driver=" + db.getDriverConnection(cc)); - DataSource ds = db.getDataSource(cc); - System.out.println("DS=" + ds.getConnection()); - conn = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED); - System.out.println("Cached=" + conn); - System.out.println(db); - ////////////////////////// - System.out.println("JAVA classpath: [\n" + - System.getProperty("java.class.path") + "\n]"); - DatabaseMetaData dmd = conn.getMetaData(); - System.out.println("DriverVersion: ["+ - dmd.getDriverVersion()+"]"); - System.out.println("DriverMajorVersion: ["+ - dmd.getDriverMajorVersion()+"]"); - System.out.println("DriverMinorVersion: ["+ - dmd.getDriverMinorVersion()+"]"); - System.out.println("DriverName: ["+ - dmd.getDriverName()+"]"); - System.out.println("ProductName: ["+ - dmd.getDatabaseProductName() +"]"); - System.out.println("ProductVersion: [\n"+ - dmd.getDatabaseProductVersion()+"\n]"); - ////////////////////////// - } - catch (Exception e1) - { - e1.printStackTrace(); - } - db.cleanup(); - - System.out.println("--------------------------------------------------"); - /** - DROP TABLE X_Test; - CREATE TABLE X_Test - ( - Text1 NVARCHAR2(2000) NULL, - Text2 VARCHAR2(2000) NULL - ); - try - { - String myString1 = "123456789 12345678"; - StringBuilder myString = new StringBuilder(); - for (int i = 0; i < 99; i++) - myString.append(myString1).append((char)('a'+i)).append("\n"); - System.out.println(myString.length()); - System.out.println(Util.size(myString.toString())); - // - myString = new StringBuilder().append(Util.trimSize(myString.toString(), 2000)); - System.out.println(myString.length()); - System.out.println(Util.size(myString.toString())); - // - Connection conn2 = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED); - // - PreparedStatement pstmt = conn2.prepareStatement - ("INSERT INTO X_Test(Text1, Text2) values(?,?)"); - pstmt.setString(1, myString.toString()); // NVARCHAR2 column - pstmt.setString(2, myString.toString()); // VARCHAR2 column - System.out.println(pstmt.executeUpdate()); - // - Statement stmt = conn2.createStatement(); - System.out.println(stmt.executeUpdate - ("INSERT INTO X_Test(Text1, Text2) values('" + myString + "','" + myString + "')")); - } - catch (Exception e) - { - e.printStackTrace(); - } - db.cleanup(); - System.out.println("--------------------------------------------------"); - **/ - System.exit(0); - - - System.out.println("--------------------------------------------------"); - try - { - Connection conn1 = db.getCachedConnection(cc, false, Connection.TRANSACTION_READ_COMMITTED); - Connection conn2 = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED); - Connection conn3 = db.getCachedConnection(cc, false, Connection.TRANSACTION_READ_COMMITTED); - System.out.println("3 -> " + db); - conn1.close(); - conn2.close(); - conn1 = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED); - conn2 = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED); - System.out.println("3 -> " + db); - conn1.close(); - conn2.close(); - conn3.close(); - System.out.println("0 -> " + db); - } - catch (Exception e1) - { - e1.printStackTrace(); - } - - db.cleanup(); - - // System.exit(0); - System.out.println("--------------------------------------------------"); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.getConnectionRO()); - System.out.println(DB.getConnectionRW()); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED)); - - System.out.println(db); - - - try - { - System.out.println("-- Sleeping --"); - Thread.sleep(60000); - System.out.println(db); - db.close(); - db.cleanup(); - System.out.println(db); - } - catch (InterruptedException e) - { - } - - - - /** - // Connection option 1 - try - { - System.setProperty("oracle.jdbc.Trace", "true"); - DriverManager.registerDriver(new OracleDriver()); - Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//dev:1521/dev", "adempiere", "adempiere"); - System.out.println("Catalog=" + con.getCatalog()); - DatabaseMetaData md = con.getMetaData(); - System.out.println("URL=" + md.getURL()); - System.out.println("User=" + md.getUserName()); - // - System.out.println("Catalog"); - ResultSet rs = md.getCatalogs(); - while (rs.next()) - System.out.println("- " + rs.getString(1)); - // - System.out.println("Table"); - rs = md.getTables(null, "ADEMPIERE", null, new String[] {"TABLE"}); - while (rs.next()) - System.out.println("- User=" + rs.getString(2) + " | Table=" + rs.getString(3) - + " | Type=" + rs.getString(4) + " | " + rs.getString(5)); - // - System.out.println("Column"); - rs = md.getColumns(null, "ADEMPIERE", "C_ORDER", null); - while (rs.next()) - System.out.println("- Tab=" + rs.getString(3) + " | Col=" + rs.getString(4) - + " | Type=" + rs.getString(5) + ", " + rs.getString(6) - + " | Size=" + rs.getString(7) + " | " + rs.getString(8) - + " | Digits=" + rs.getString(9) + " | Radix=" + rs.getString(10) - + " | Null=" + rs.getString(11) + " | Rem=" + rs.getString(12) - + " | Def=" + rs.getString(13) + " | " + rs.getString(14) - + " | " + rs.getString(15) + " | " + rs.getString(16) - + " | Ord=" + rs.getString(17) + " | Null=" + rs.getString(18) - ); - - con.close(); - } - catch (SQLException ex) - { - ex.printStackTrace(); - } - **/ - } // main - public Convert getConvert() { return m_convert; } diff --git a/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java b/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java index 8167c59840..53f5978cc5 100644 --- a/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java +++ b/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java @@ -68,7 +68,7 @@ public class DBDataSource extends compiereDataSource jr.getQuery(), parametersMap, params, - DB.getConnectionRO() + DB.getConnection() ); if(m_pstmt != null) m_resultSet = m_pstmt.executeQuery(); diff --git a/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/report/ReportProcessor.java b/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/report/ReportProcessor.java index 2c34cf2fa4..a3734cda1f 100644 --- a/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/report/ReportProcessor.java +++ b/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/report/ReportProcessor.java @@ -103,7 +103,7 @@ public class ReportProcessor Language currLang = Env.getLanguage(Env.getCtx()); m_Param.put("CURRENT_LANG", currLang.getAD_Language()); - java.sql.Connection conn = DB.getConnectionRO(); + java.sql.Connection conn = DB.getConnection(); m_Param.put("REPORT_CONNECTION", conn ); //DB_CONN m_Param.put("DB_CONN", conn );