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;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
......@@ -191,7 +192,8 @@ public class ManageSqlConf extends ActionHandlerEJB
//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=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, tranId);
......@@ -215,6 +217,8 @@ public class ManageSqlConf extends ActionHandlerEJB
rs = null;
}
//All Enterprise Case
if(applDB.equalsIgnoreCase("E"))
{
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- START
......@@ -223,16 +227,19 @@ public class ManageSqlConf extends ActionHandlerEJB
entCon = connDriver.getConnectDB("Driver");
// 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);
rs = pstmt.executeQuery();
while( rs.next() )
{
schemaName = checkNull( rs.getString("SCHEMA_NAME") );
enterpriseSQL = checkNull( rs.getString("ENTERPRISE") );
schemaListMap.put(schemaName,enterpriseSQL);
//schemaName = checkNull( rs.getString("SCHEMA_NAME") );
//enterpriseSQL = checkNull( rs.getString("ENTERPRISE") );
//schemaListMap.put(schemaName,enterpriseSQL);
enterpriseArrayList.add(checkNull( rs.getString("ENTERPRISE") ));
}
if( pstmt != null )
{
pstmt.close();
......@@ -253,6 +260,8 @@ public class ManageSqlConf extends ActionHandlerEJB
}
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- END
}
if(applDB.equalsIgnoreCase("S"))
{
// Added by Gagan B. on 13-NOV-25 [make connection with Driver for ENTERPRISE] -- START
......@@ -266,10 +275,11 @@ public class ManageSqlConf extends ActionHandlerEJB
rs = pstmt.executeQuery();
while( rs.next() )
{
schemaName = checkNull( rs.getString("SCHEMA_NAME") );
enterpriseSQL = checkNull( rs.getString("ENTERPRISE") );
schemaListMap.put(schemaName,enterpriseSQL);
// schemaName = checkNull( rs.getString("SCHEMA_NAME") );
// enterpriseSQL = checkNull( rs.getString("ENTERPRISE") );
// schemaListMap.put(schemaName,enterpriseSQL);
enterpriseArrayList.add(checkNull( rs.getString("ENTERPRISE") ));
}
if( pstmt != null )
{
......@@ -291,6 +301,8 @@ public class ManageSqlConf extends ActionHandlerEJB
}
// 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=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, tranId);
......@@ -325,8 +337,59 @@ public class ManageSqlConf extends ActionHandlerEJB
}
if ("A".equalsIgnoreCase(execRights) || "Q".equalsIgnoreCase(execRights) || "D".equalsIgnoreCase(execRights)) {
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;
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(
"3",
......@@ -339,7 +402,14 @@ public class ManageSqlConf extends ActionHandlerEJB
// VERY IMPORTANT
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) {
......@@ -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"))
//{
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
} else if ("SYN".equals(rule)) {
// Skip synonym & grant if CURRENT_USER is owner
if (currentUser.equalsIgnoreCase(dbMain)) {
System.out.println(
"Skipping SYN. CURRENT_USER is DB_MAIN."
);
continue;
}
// // Skip synonym & grant if CURRENT_USER is owner
// if (currentUser.equalsIgnoreCase(dbMain)) {
// System.out.println(
// "Skipping SYN. CURRENT_USER is DB_MAIN."
// );
// continue;
// }
/* -----------------------------
* Create synonym in CURRENT_USER
......@@ -1625,7 +1697,20 @@ public class ManageSqlConf extends ActionHandlerEJB
System.out.println("execSchema:: "+execSchema);
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);
String connForExecSql = "select schema_name from enterprise where enterprise = ?";
PreparedStatement connForExecPstmt = conn.prepareStatement(connForExecSql);
......@@ -1662,6 +1747,7 @@ public class ManageSqlConf extends ActionHandlerEJB
try {
if (connForQueryExec != null) connForQueryExec.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
......@@ -1673,6 +1759,8 @@ public class ManageSqlConf extends ActionHandlerEJB
);
if (rethrow) {
System.out.println("In rethrow condition");
throw new RuntimeException(e);
}
}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