Commit 3f95cca8 authored by Ajit Deshmukh's avatar Ajit Deshmukh

Updated the logic for "All Enterprise" selection while managing SQL transaction.

parent 0de63abe
...@@ -14,6 +14,7 @@ import ibase.webitm.utility.GenericUtility; ...@@ -14,6 +14,7 @@ import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.sql.*; import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
...@@ -191,7 +192,8 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -191,7 +192,8 @@ public class ManageSqlConf extends ActionHandlerEJB
//Changes End -- 13 Nov AJIT //Changes End -- 13 Nov AJIT
HashMap<String,String> schemaListMap= new HashMap<String,String>(); //HashMap<String,String> schemaListMap= new HashMap<String,String>();
ArrayList <String> enterpriseArrayList = new ArrayList<>();
sql = "SELECT APPL_DB,ENTERPRISES,REQ_ID FROM SQL_CHANGES WHERE TRAN_ID=?"; sql = "SELECT APPL_DB,ENTERPRISES,REQ_ID FROM SQL_CHANGES WHERE TRAN_ID=?";
pstmt = con.prepareStatement(sql); pstmt = con.prepareStatement(sql);
pstmt.setString(1, tranId); pstmt.setString(1, tranId);
...@@ -215,6 +217,8 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -215,6 +217,8 @@ public class ManageSqlConf extends ActionHandlerEJB
rs = null; rs = null;
} }
//All Enterprise Case
if(applDB.equalsIgnoreCase("E")) if(applDB.equalsIgnoreCase("E"))
{ {
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- START // Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- START
...@@ -223,16 +227,19 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -223,16 +227,19 @@ public class ManageSqlConf extends ActionHandlerEJB
entCon = connDriver.getConnectDB("Driver"); entCon = connDriver.getConnectDB("Driver");
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- END // Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- END
sql = "SELECT SCHEMA_NAME,ENTERPRISE FROM ENTERPRISE WHERE SCHEMA_NAME IS NOT NULL"; //sql = "SELECT SCHEMA_NAME,ENTERPRISE FROM ENTERPRISE WHERE SCHEMA_NAME IS NOT NULL";
sql = "SELECT ENTERPRISE FROM ENTERPRISE WHERE SCHEMA_NAME IS NOT NULL";
pstmt = entCon.prepareStatement(sql); pstmt = entCon.prepareStatement(sql);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while( rs.next() ) while( rs.next() )
{ {
schemaName = checkNull( rs.getString("SCHEMA_NAME") ); //schemaName = checkNull( rs.getString("SCHEMA_NAME") );
enterpriseSQL = checkNull( rs.getString("ENTERPRISE") ); //enterpriseSQL = checkNull( rs.getString("ENTERPRISE") );
schemaListMap.put(schemaName,enterpriseSQL); //schemaListMap.put(schemaName,enterpriseSQL);
enterpriseArrayList.add(checkNull( rs.getString("ENTERPRISE") ));
} }
if( pstmt != null ) if( pstmt != null )
{ {
pstmt.close(); pstmt.close();
...@@ -253,6 +260,8 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -253,6 +260,8 @@ public class ManageSqlConf extends ActionHandlerEJB
} }
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- END // Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- END
} }
if(applDB.equalsIgnoreCase("S")) if(applDB.equalsIgnoreCase("S"))
{ {
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- START // Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- START
...@@ -266,10 +275,11 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -266,10 +275,11 @@ public class ManageSqlConf extends ActionHandlerEJB
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while( rs.next() ) while( rs.next() )
{ {
schemaName = checkNull( rs.getString("SCHEMA_NAME") ); // schemaName = checkNull( rs.getString("SCHEMA_NAME") );
enterpriseSQL = checkNull( rs.getString("ENTERPRISE") ); // enterpriseSQL = checkNull( rs.getString("ENTERPRISE") );
// schemaListMap.put(schemaName,enterpriseSQL);
schemaListMap.put(schemaName,enterpriseSQL); enterpriseArrayList.add(checkNull( rs.getString("ENTERPRISE") ));
} }
if( pstmt != null ) if( pstmt != null )
{ {
...@@ -291,6 +301,8 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -291,6 +301,8 @@ public class ManageSqlConf extends ActionHandlerEJB
} }
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- END // Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- END
} }
sql = "SELECT ORA_STMNT,LINE_NO FROM SQL_CHANGES_DET WHERE TRAN_ID=?"; sql = "SELECT ORA_STMNT,LINE_NO FROM SQL_CHANGES_DET WHERE TRAN_ID=?";
pstmt = con.prepareStatement(sql); pstmt = con.prepareStatement(sql);
pstmt.setString(1, tranId); pstmt.setString(1, tranId);
...@@ -325,8 +337,59 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -325,8 +337,59 @@ public class ManageSqlConf extends ActionHandlerEJB
} }
if ("Q".equalsIgnoreCase(execRights) || "D".equalsIgnoreCase(execRights)) {
BaseLogger.log(
"3",
null,
null,
"For DEV and QC transaction :: SQL :: " + oracleStatment +
" :: enterprises :: [" + selectedEnterprise + "]"
);
String QcDevEnterprise = "";
if("Q".equalsIgnoreCase(execRights)) {
QcDevEnterprise = "APPVISQC";
}
else if("D".equalsIgnoreCase(execRights)) {
QcDevEnterprise = "APPVISDEV";
}
Savepoint entSavepoint = null;
if ("A".equalsIgnoreCase(execRights) || "Q".equalsIgnoreCase(execRights) || "D".equalsIgnoreCase(execRights)) { try {
// ✅ ENTERPRISE-LEVEL SAVEPOINT
entSavepoint = con.setSavepoint("SP_" + QcDevEnterprise);
processSqlForEnterprise(
con,
QcDevEnterprise,
oracleStatment,
tranId,
linNo,
requestID,
userId,
chgTerm
);
// ✅ commit enterprise success
con.commit();
} catch (Exception e) {
// ❌ rollback ONLY this enterprise
if (entSavepoint != null) {
con.rollback(entSavepoint);
}
BaseLogger.log(
"1",
null,
null,
"Enterprise execution failed :: " + QcDevEnterprise + " :: " + e.getMessage()
);
// continue next enterprise
}
}
if ("A".equalsIgnoreCase(execRights) ) {
BaseLogger.log( BaseLogger.log(
"3", "3",
...@@ -339,7 +402,14 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -339,7 +402,14 @@ public class ManageSqlConf extends ActionHandlerEJB
// VERY IMPORTANT // VERY IMPORTANT
con.setAutoCommit(false); con.setAutoCommit(false);
String[] enterpriseArr = selectedEnterprise.split(","); String[] enterpriseArr = null;
if(applDB.equalsIgnoreCase("S")) {
enterpriseArr = enterpriseArrayList.get(0).split(",");
}else if(applDB.equalsIgnoreCase("E")){
// Values are NOT comma-separated → copy list directly
enterpriseArr = enterpriseArrayList.toArray(new String[0]);
}
for (String enterpriseForExec : enterpriseArr) { for (String enterpriseForExec : enterpriseArr) {
...@@ -394,7 +464,9 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -394,7 +464,9 @@ public class ManageSqlConf extends ActionHandlerEJB
//if( oracleStatment.toUpperCase().startsWith("ALTER") || oracleStatment.toUpperCase().startsWith("INSERT INTO") || oracleStatment.toUpperCase().startsWith("UPDATE") || oracleStatment.toUpperCase().startsWith("DELETE")) //if( oracleStatment.toUpperCase().startsWith("ALTER") || oracleStatment.toUpperCase().startsWith("INSERT INTO") || oracleStatment.toUpperCase().startsWith("UPDATE") || oracleStatment.toUpperCase().startsWith("DELETE"))
//{ //{
executeQueries(con,schemaListMap, oracleStatment,tranId,linNo,requestID,userId,chgTerm,isThisObject) ;
//Commented by Ajit on 06-JAN-26
//executeQueries(con,schemaListMap, oracleStatment,tranId,linNo,requestID,userId,chgTerm,isThisObject) ;
//} //}
...@@ -1472,13 +1544,13 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -1472,13 +1544,13 @@ public class ManageSqlConf extends ActionHandlerEJB
} else if ("SYN".equals(rule)) { } else if ("SYN".equals(rule)) {
// Skip synonym & grant if CURRENT_USER is owner // // Skip synonym & grant if CURRENT_USER is owner
if (currentUser.equalsIgnoreCase(dbMain)) { // if (currentUser.equalsIgnoreCase(dbMain)) {
System.out.println( // System.out.println(
"Skipping SYN. CURRENT_USER is DB_MAIN." // "Skipping SYN. CURRENT_USER is DB_MAIN."
); // );
continue; // continue;
} // }
/* ----------------------------- /* -----------------------------
* Create synonym in CURRENT_USER * Create synonym in CURRENT_USER
...@@ -1625,7 +1697,20 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -1625,7 +1697,20 @@ public class ManageSqlConf extends ActionHandlerEJB
System.out.println("execSchema:: "+execSchema); System.out.println("execSchema:: "+execSchema);
System.out.println("enterpriseCode:: "+enterpriseCode); System.out.println("enterpriseCode:: "+enterpriseCode);
conn = connDriver1.getConnectDB(enterpriseCode); try {
conn = connDriver1.getConnectDB("Driver");
}
catch(Exception e) {
System.out.println("Catch block for connection failed "+e.getMessage());
String error = "Connection could not be created, Please check the logs.";
logSqlExecution(
tranId, enterpriseCode, "0", requestID,
finalSql, 0, "E", userId, chgTerm, error,""
);
}
//connForDml = connDriverForDml.getConnectDB(schemaName); //connForDml = connDriverForDml.getConnectDB(schemaName);
String connForExecSql = "select schema_name from enterprise where enterprise = ?"; String connForExecSql = "select schema_name from enterprise where enterprise = ?";
PreparedStatement connForExecPstmt = conn.prepareStatement(connForExecSql); PreparedStatement connForExecPstmt = conn.prepareStatement(connForExecSql);
...@@ -1662,6 +1747,7 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -1662,6 +1747,7 @@ public class ManageSqlConf extends ActionHandlerEJB
try { try {
if (connForQueryExec != null) connForQueryExec.rollback(); if (connForQueryExec != null) connForQueryExec.rollback();
} catch (SQLException e1) { } catch (SQLException e1) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e1.printStackTrace(); e1.printStackTrace();
} }
...@@ -1673,6 +1759,8 @@ public class ManageSqlConf extends ActionHandlerEJB ...@@ -1673,6 +1759,8 @@ public class ManageSqlConf extends ActionHandlerEJB
); );
if (rethrow) { if (rethrow) {
System.out.println("In rethrow condition");
throw new RuntimeException(e); throw new RuntimeException(e);
} }
}finally { }finally {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment