package hibernate.generic.sql;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import generic.tools.logging.logger;
import generic.tools.convert.cConvert;
import java.util.Enumeration;
import java.util.logging.Level;
import java.util.logging.LogManager;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
public class hibernateListener //extends hibernate.generic.system.libExtender.cMainExtender
{
protected Configuration moConfigurationHibGeneric;
protected Configuration moConfigurationHibGenericCassandra;
protected Configuration moConfigurationHibGenericMemory;
protected Configuration moConfigurationHibGenericHsql_File;
protected Configuration moConfigurationHibGenericMemoryH2DB;
public long mlLastTimeConnection = 0;
public SessionFactory sessionFactory;
public SessionFactory sessionFactoryCassandra;
public SessionFactory sessionFactoryMemory;
public SessionFactory sessionFactoryFile_Hsql;
public SessionFactory sessionFactoryMemoryH2;
public ServiceRegistry serviceRegistry;
public ServiceRegistry serviceRegistryCassandra;
public ServiceRegistry serviceRegistryMemory;
public ServiceRegistry serviceRegistryFile_Hsql;
public ServiceRegistry serviceRegistryMemoryH2;
public StandardServiceRegistryBuilder serviceRegistryBuilderCassandra;
//
// public StandardServiceRegistryBuilder serviceRegistryBuilder;
public List<Object> moAnnotationClasses = new ArrayList<>();
public boolean initialized;
public boolean initializedCassandra;
//
//
//
// STEP 1
public boolean isInitialized()
{
return false;
}
/**
* for cassandra also for mysql also
*
* disabling direcl hibernate logigng !
*/
public void disableLogging()
{
int i = 0;
Enumeration<String> lol = LogManager.getLogManager().getLoggerNames();
while (true)
{
try
{
String ltMsg = lol.nextElement();
if (ltMsg == null)
{
continue;
}
i++;
LogManager.getLogManager().getLogger(ltMsg).setLevel(Level.OFF);
}
catch (Exception e)
{
break;
}
}
//
logger.logk("Total " + i + ", logger disabled by hibernateListener.java-> setConfiguration() ");
}
/**
* cassandra enab le loggin for cassand ra and mysql for all. .
*/
public void enableLogging()
{
int i = 0;
Enumeration<String> lol = LogManager.getLogManager().getLoggerNames();
while (true)
{
try
{
String ltMsg = lol.nextElement();
if (ltMsg == null)
{
continue;
}
i++;
LogManager.getLogManager().getLogger(ltMsg).setLevel(Level.ALL);
}
catch (Exception e)
{
break;
}
}
//
logger.logk("Total " + i + ", logger disabled by hibernateListener.java-> setConfiguration() ");
}
//
//
//
//
/*
* // STEP 2
* public void insertClass(Object poClass) {
*
* moAnnotationClasses.add(poClass.getClass());
* }
*/
//
//
//
/**
* STEP 3 _ for mysql setitng settings.
*
* @param poConfiguration
*/
public void setConfiguration(Configuration poConfiguration)
{
if (logger.DEBUG_SHOW_SQL)
{
logger.logk("Show SQL - HIB ");
logger.logk("Show SQL - HIB ");
logger.logk("Show SQL - HIB ");
logger.logk("Show SQL - HIB ");
logger.logk("Show SQL - HIB ");
poConfiguration = poConfiguration.setProperty("hibernate.show_sql", "true");
//poConfiguration = poConfiguration.setProperty("hibernate.show_sql", "true");
//.setProperty("show_sql", "false")
// .setProperty("format_sql", "false")
}
else
{
logger.logk("Show SQL - HIB FALSE FALSE FALSE ");
logger.logk("Show SQL - HIB FALSE FALSE FALSE ");
logger.logk("Show SQL - HIB FALSE FALSE FALSE ");
logger.logk("Show SQL - HIB FALSE FALSE FALSE ");
poConfiguration = poConfiguration.setProperty("hibernate.show_sql", "false");
java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.OFF);
}
poConfiguration = poConfiguration.setProperty("hibernate.cache.use_query_cache", "false");
poConfiguration = poConfiguration.setProperty("hibernate.format_sql", "false");
//
// poConfiguration = poConfiguration.setProperty("hibernate.hbm2ddl.auto", "validate");
//
poConfiguration = poConfiguration.setProperty("hibernate.use_sql_comments", "false");
poConfiguration = poConfiguration.setProperty("connection.autoReconnect", "true");
poConfiguration = poConfiguration.setProperty("connection.autoReconnectForPools", "true");
poConfiguration = poConfiguration.setProperty("connection.is-connection-validation-required", "true");
//
logger.logk("hibernateGeneric->hibernateListener.java -> setConfiguration ( poConfig .. )"
+ " { moConfigurationHibGeneric= poConfig.!! important! ");
moConfigurationHibGeneric = poConfiguration;
logger.logk("PROPERTIES : \n" + poConfiguration.toString() + ", \n" + poConfiguration.getProperty("hibernate.connection.url") + "\n");
logger.logk("___________");
logger.logk("___________");
logger.logk("___________");
logger.logk("___________");
logger.logk("___________");
}
/**
*
* @param poConfiguration
*/
public void setConfigurationCassandra(Configuration poConfiguration)
{
poConfiguration = poConfiguration.setProperty("hibernate.show_sql", "false");
poConfiguration = poConfiguration.setProperty("hibernate.format_sql", "false");
//poConfiguration = poConfiguration.setProperty("hibernate.hbm2ddl.auto", "validate");
poConfiguration = poConfiguration.setProperty("hibernate.use_sql_comments", "false");
poConfiguration = poConfiguration.setProperty("connection.autoReconnect", "true");
poConfiguration = poConfiguration.setProperty("connection.autoReconnectForPools", "true");
poConfiguration = poConfiguration.setProperty("connection.is-connection-validation-required", "true");
logger.logk("hibernateGeneric->hibernateListener.java -> setConfiguration ( poConfig .. ) { moConfigurationHibGeneric= poConfig.!! important! ");
moConfigurationHibGenericCassandra = poConfiguration;
}
public void setConfigurationHibMemDb(Configuration poConfiguration)
{
logger.logk("hibernateGeneric->hibernateListener.java -> setConfiguration ( poConfig .. ) { moConfigurationHibGeneric= poConfig.!! important! ");
moConfigurationHibGenericMemory = poConfiguration;
}
/**
* Hypersql - FILE based
*
* @param poConfiguration
*/
public void setConfigurationHibFileDb(Configuration poConfiguration)
{
/*
poConfiguration = poConfiguration.setProperty("hibernate.show_sql", "false");
poConfiguration = poConfiguration.setProperty("hibernate.format_sql", "false");
//poConfiguration = poConfiguration.setProperty("hibernate.hbm2ddl.auto", "validate");
poConfiguration = poConfiguration.setProperty("hibernate.use_sql_comments", "false");
poConfiguration = poConfiguration.setProperty("connection.autoReconnect", "true");
poConfiguration = poConfiguration.setProperty("connection.autoReconnectForPools", "true");
poConfiguration = poConfiguration.setProperty("connection.is-connection-validation-required", "true");
*/
logger.logk("hibernateGeneric->hibernateListener.java -> setConfiguration ( poConfig .. ) { moConfigurationHibGeneric= poConfig.!! important! ");
moConfigurationHibGenericHsql_File = poConfiguration;
}
public void setConfigurationHibMemoryH2DB(Configuration poConfiguration)
{
/*
poConfiguration = poConfiguration.setProperty("hibernate.show_sql", "false");
poConfiguration = poConfiguration.setProperty("hibernate.format_sql", "false");
//poConfiguration = poConfiguration.setProperty("hibernate.hbm2ddl.auto", "validate");
poConfiguration = poConfiguration.setProperty("hibernate.use_sql_comments", "false");
poConfiguration = poConfiguration.setProperty("connection.autoReconnect", "true");
poConfiguration = poConfiguration.setProperty("connection.autoReconnectForPools", "true");
poConfiguration = poConfiguration.setProperty("connection.is-connection-validation-required", "true");
*/
logger.logk("hibernateGeneric->hibernateListener.java -> setConfiguration ( poConfig .. ) { moConfigurationHibGeneric= poConfig.!! important! ");
moConfigurationHibGenericMemoryH2DB = poConfiguration;
}
//
//
// STEP 4
public boolean checkconnection()
{
if (sessionFactory != null)
{
if (sessionFactory.isClosed() == false)
{
//azure.ProjectConfig.logk("Session factory is NOT null");
return true;
}
else
{
logger.logk("sessionFactory closed !!! ");
}
}
logger.logk("Factory is null, should create !! ");
return false;
}
public boolean checkconnectionCassandra()
{
if (sessionFactoryCassandra != null)
{
if (sessionFactoryCassandra.isClosed() == false)
{
//azure.ProjectConfig.logk("Session factory is NOT null");
return true;
}
else
{
logger.logk("sessionFactoryCassandra closed !!! ");
}
}
logger.logk("FactoryCassandra is null, should create !! ");
return false;
}
public boolean checkconnectionMemoryDb()
{
if (sessionFactoryMemory != null)
{
if (sessionFactoryMemory.isClosed() == false)
{
return true;
}
else
{
logger.logk("sessionFactoryMemory closed !!! ");
}
}
logger.logk("sessionFactoryMemory is null, should create !! ");
return false;
}
public boolean checkconnectionFileDb()
{
if (sessionFactoryFile_Hsql != null)
{
if (sessionFactoryFile_Hsql.isClosed() == false)
{
return true;
}
else
{
logger.logk("sessionFactoryMemory closed !!! ");
}
}
logger.logk("sessionFactoryMemory is null, should create !! ");
return false;
}
public boolean checkconnectionMemoryH2Db()
{
if (sessionFactoryMemoryH2 != null)
{
if (sessionFactoryMemoryH2.isClosed() == false)
{
return true;
}
else
{
logger.logk("sessionFactoryMemoryH2 closed !!! ");
}
}
logger.logk("sessionFactoryMemoryH2 is null, should create !! ");
return false;
}
//
//
// STEP 5
/**
* Connect(false) --> if connection is not ok .! try to initialize
* connection !
*
* @return
*/
public org.hibernate.SessionFactory getSessionFact()
{
connect(false);
return sessionFactory;
}
public org.hibernate.SessionFactory getSessionFactCassandra()
{
connectCassandra(false);
return sessionFactoryCassandra;
}
public org.hibernate.SessionFactory getSessionFactMemoryDb()
{
connectMemory(false);
return sessionFactoryMemory;
}
/**
* hsqldb : File Based
*
* @return
*/
public org.hibernate.SessionFactory getSessionFactFileDb()
{
connectMemory(false);
return sessionFactoryMemory;
}
public org.hibernate.SessionFactory getSessionFactMemoryH2()
{
connectMemoryH2(false);
return sessionFactoryMemoryH2;
}
//
//
// STEP 6
/**
*
* Exception dahi verse, SessionFactory initialized OLMADIGINDAN ötürü, 2.
* üst methodada Exception vermeye devam edecektir.
* <br>
*
* @param pbForce
* @return
*/
public boolean connect(boolean pbForce)
{
if (!pbForce)
{
if (checkconnection())
{
// Because of performance, Making Problem ,!!
// logger.logk("connect(force:" + pbForce + ") ->Status of Hibernate is good: connected : ! returns true ");
return true;
}
else
{
if (logger.DEBUG_PERF)
{
logger.logk("connection FALSE !! : connect() -- ELSE !! Bir adim Asagiya giriyor simdi. FORCE2Init =false, Connection Status = false.. ");
}
}
}
// init the time,
if (mlLastTimeConnection > 0 && sessionFactory != null)
{
//
// Second time connection checking the time.
if ((cConvert.getLinuxTime() - mlLastTimeConnection) < 20) //
{ //
//
if (logger.DEBUG_PERF)
{
logger.logk("Too many connect Called - > Bypassing. \nhibernateLister.java -> connect(force:" + pbForce + ") ->Last connection time is < 60 returns false ");
}
return false;
}
}
else if (sessionFactory == null)
{
return initSessionFactory_Mysql();
}
else
{
// sessionfactory null olabilir
}
if (logger.DEBUG_PERF)
{
logger.logk("-> Connect Called from hibernate Listerner. java -> : logger.DEBUG_PERF:" + logger.DEBUG_PERF);
}
// Connecting now,
mlLastTimeConnection = cConvert.getLinuxTime();
return initSessionFactory_Mysql();
}
/**
* do not call this directly very dangeoures. only for debug call this-.
*
* @return
*/
public boolean initSessionFactory_Mysql()
{
if (logger.DEBUG_PERF)
{
logger.logk("initSessionFactory_Mysql();");
}
// EGER 30 sn den kisa sure icinde 2 defa baglanmaya calisirsa FORCE return directly.
// azure.ProjectConfig.logk("---- HIBERNATE --> --> --> NOT CONNECTED inside of Hibernate connect ");
try
{
// Bypasss _ xml data soruyor. Dosya olmazsa, hata verdiriyor. !!! JSON dan almak daha mantikli aq.
// moConfigurationHibGeneric.configure();
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
// azure.ProjectConfig.logk("--->>>> Added AnnotatedClass : 2 classes ");
//
//
if (moConfigurationHibGeneric == null)
{
if (logger.DEBUG_PERF)
{
logger.logk("=> moConfigurationHibGeneric is null ! this is dangeroues .. (moConfigurationHibGeneric.getProperties()).buildServiceRegistry() --moConfigurationHibGeneric.getProperties()-- may b null error ");
}
}
//
if (logger.DEBUG_PERF)
{
logger.logk("hibernate ListenerJava - Hibernate Generic : Apply settings : mo configurations -->"
+ " serviceRegistry = new ServiceRegistryBuilder... getPRopertis ...moConfgrtuigs");
}
//
// logger.logk(moConfigurationHibGeneric.);
serviceRegistry = new ServiceRegistryBuilder().applySettings(
moConfigurationHibGeneric.getProperties()).buildServiceRegistry();
//
// azure.ProjectConfig.logk("--->>>> Added AnnotatedClass : 2 classes ");
//
// !! TOMCAT lib icinde JAR dosyalarini kopyalamak zorundasin ,
// Hibernate JAR dosyalarini
//
// ! Bir digeri !! EGER JSF kullaniyorsan , JAVAX .! faces lib .> icinde olacak tomcat/lib/ icinde !! bootstrap,har bunlarin
// hepsini yukluyor !
sessionFactory = moConfigurationHibGeneric.buildSessionFactory(serviceRegistry);
return true;
}//
catch (Exception ex)
{
logger.logk_PrintSTACK_TRACE("\n===================\n\n" + ex.toString() + "\n\n"
+ "\n\n" + ex.getMessage() + "IMPORTANT ! Failed to create sessionFactory object. "
+ "Hibernate Listerner.java -> connect(...) Failed ! Very important error.", ex);
return false;
}
}
public boolean connectMemory(boolean pbForce)
{
if (!pbForce)
{
if (checkconnectionMemoryDb())
{
// Because of performance, Making Problem ,!!
// logger.logk("connect(force:" + pbForce + ") ->Status of Hibernate is good: connected : ! returns true ");
return true;
}
else
{
if (logger.DEBUG_PERF)
{
logger.logk("checkconnectionMemoryDb FALSE !! : connect() -- ELSE !! Bir adim Asagiya giriyor simdi. FORCE2Init =false, Connection Status = false.. ");
}
}
}
// init the time,
if (mlLastTimeConnection > 0 && sessionFactoryMemory != null)
{
//
// Second time connection checking the time.
if ((cConvert.getLinuxTime() - mlLastTimeConnection) < 30) //
{ //
//
if (logger.DEBUG_PERF)
{
logger.logk("hibernateLister.java -> connect(checkconnectionMemoryDb : force:" + pbForce + ") ->Last connection time is < 60 returns false ");
}
return false;
}
}
// Connecting now,
mlLastTimeConnection = cConvert.getLinuxTime();
// EGER 30 sn den kisa sure icinde 2 defa baglanmaya calisirsa FORCE return directly.
// azure.ProjectConfig.logk("---- HIBERNATE --> --> --> NOT CONNECTED inside of Hibernate connect ");
try
{
if (moConfigurationHibGenericMemory == null)
{
logger.logk("=> moConfigurationHibGenericMemory is null ! this is dangeroues .. (moConfigurationHibGenericMemory.getProperties()).buildServiceRegistry() --moConfigurationHibGeneric.getProperties()-- may b null error ");
logger.logk("hibernate ListenerJava - Hibernate Generic : Apply settings : mo configurations -->"
+ " serviceRegistryMemory = new loServisRegistryBuilder.build(); ...loServisRegistryBuilder.applySettings.moConfgrtuigs");
}
StandardServiceRegistryBuilder loServisRegistryBuilder = new StandardServiceRegistryBuilder();
loServisRegistryBuilder.applySettings(moConfigurationHibGenericMemory.getProperties());
serviceRegistryMemory = loServisRegistryBuilder.build();
sessionFactoryMemory = moConfigurationHibGenericMemory.buildSessionFactory(serviceRegistryMemory);
return true;
}
catch (Exception ex)
{
logger.logk("\n===================\n\n" + ex.toString() + "\n\n"
+ "\n\n" + ex.getMessage() + "IMPORTANT ! Failed to create sessionFactoryMemory! (Memory) object. "
+ "Hibernate Listerner.java -> connect(...) Failed ! Very important error.");
return false;
}
}
public boolean connectFile(boolean pbForce)
{
if (!pbForce)
{
if (checkconnectionFileDb())
{
return true;
}
else
{
logger.logk("checkconnectionFileDb FALSE !! : connect() -- ELSE !! Bir adim Asagiya giriyor simdi. FORCE2Init =false, Connection Status = false.. ");
}
}
// init the time,
if (mlLastTimeConnection > 0 && sessionFactoryFile_Hsql != null)
{
//
// Second time connection checking the time.
if ((cConvert.getLinuxTime() - mlLastTimeConnection) < 30) //
{ //
//
logger.logk("hibernateLister.java -> connect(sessionFactoryFile_Hsql : force:" + pbForce + ") ->Last connection time is < 60 returns false ");
return false;
}
}
// Connecting now,
mlLastTimeConnection = cConvert.getLinuxTime();
// EGER 30 sn den kisa sure icinde 2 defa baglanmaya calisirsa FORCE return directly.
// azure.ProjectConfig.logk("---- HIBERNATE --> --> --> NOT CONNECTED inside of Hibernate connect ");
try
{
// Bypasss _ xml data soruyor. Dosya olmazsa, hata verdiriyor. !!! JSON dan almak daha mantikli aq.
// moConfigurationHibGeneric.configure();
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
// azure.ProjectConfig.logk("--->>>> Added AnnotatedClass : 2 classes ");
//
//
if (moConfigurationHibGenericHsql_File == null)
{
logger.logk("=> moConfigurationHibGenericHsql_File is null ! this is dangeroues .. (moConfigurationHibGenericHsql_File.getProperties()).buildServiceRegistry() --moConfigurationHibGeneric.getProperties()-- may b null error ");
}
//
logger.logk("hibernate ListenerJava - Hibernate Generic : Apply settings : mo configurations -->"
+ " serviceRegistryMemory = new loServisRegistryBuilder.build(); ...loServisRegistryBuilder.applySettings.moConfgrtuigs");
//
/*
StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
serviceRegistryBuilder.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
*/
StandardServiceRegistryBuilder loServisRegistryBuilder = new StandardServiceRegistryBuilder();
loServisRegistryBuilder.applySettings(moConfigurationHibGenericHsql_File.getProperties());
serviceRegistryFile_Hsql = loServisRegistryBuilder.build();
// -
// !! TOMCAT lib icinde JAR dosyalarini kopyalamak zorundasin ,
// Hibernate JAR dosyalarini - -bilmiyorum aq .! config local oluyor mu ?
// -
// ! Bir digeri !! EGER JSF kullaniyorsan , JAVAX .! faces lib .> icinde olacak tomcat/lib/ icinde !! bootstrap,har bunlarin hepsini yukluyor !
// -
sessionFactoryFile_Hsql = moConfigurationHibGenericHsql_File.buildSessionFactory(serviceRegistryFile_Hsql);
return true;
}
catch (Exception ex)
{
logger.logk("\n===================\n\n" + ex.toString() + "\n\n"
+ "\n\n" + ex.getMessage() + "IMPORTANT ! Failed to create sessionFactoryFile_Hsql! (File -HSQL) object. "
+ "Hibernate Listerner.java -> connect(...) Failed ! Very important error.");
return false;
}
}
public boolean connectMemoryH2(boolean pbForce)
{
if (!pbForce)
{
if (checkconnectionMemoryH2Db())
{
// Because of performance, Making Problem ,!!
// logger.logk("connect(force:" + pbForce + ") ->Status of Hibernate is good: connected : ! returns true ");
return true;
}
else
{
logger.logk("checkconnectionMemoryH2-Db FALSE !! : connect() -- ELSE !! Bir adim Asagiya giriyor simdi. FORCE2Init =false, Connection Status = false.. ");
}
}
// init the time,
if (mlLastTimeConnection > 0 && sessionFactoryMemoryH2 != null)
{
//
// Second time connection checking the time.
if ((cConvert.getLinuxTime() - mlLastTimeConnection) < 30) //
{ //
//
logger.logk("hibernateLister.java -> connect(checkconnectionMemoryH2-Db : force:" + pbForce + ") ->Last connection time is < 60 returns false ");
return false;
}
}
// Connecting now,
mlLastTimeConnection = cConvert.getLinuxTime();
// EGER 30 sn den kisa sure icinde 2 defa baglanmaya calisirsa FORCE return directly.
// azure.ProjectConfig.logk("---- HIBERNATE --> --> --> NOT CONNECTED inside of Hibernate connect ");
try
{
// Bypasss _ xml data soruyor. Dosya olmazsa, hata verdiriyor. !!! JSON dan almak daha mantikli aq.
// moConfigurationHibGeneric.configure();
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
// azure.ProjectConfig.logk("--->>>> Added AnnotatedClass : 2 classes ");
//
//
if (moConfigurationHibGenericMemoryH2DB == null)
{
logger.logk("=> moConfigurationHibGenericMemory-H2"
+ " is null ! this is dangeroues .. ("
+ "moConfigurationHibGenericMemory.getProperties())"
+ ".buildServiceRegistry() --"
+ "moConfigurationHibGeneric.getProperties()-- may b null error ");
}
//
logger.logk("hibernate ListenerJava - Hibernate Generic : Apply settings : mo configurations -->"
+ " serviceRegistry = new ServiceRegistryBuilder... getPRopertis ...moConfgrtuigs");
//
/*
StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
serviceRegistryBuilder.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
*/
StandardServiceRegistryBuilder loServisRegistryBuilder
= new StandardServiceRegistryBuilder();
loServisRegistryBuilder.applySettings(
moConfigurationHibGenericMemoryH2DB.getProperties());
serviceRegistryMemoryH2 = loServisRegistryBuilder.build();
// -
// !! TOMCAT lib icinde JAR dosyalarini kopyalamak zorundasin ,
// Hibernate JAR dosyalarini - -bilmiyorum aq .! config local oluyor mu ?
// -
// ! Bir digeri !! EGER JSF kullaniyorsan , JAVAX .! faces lib .> icinde olacak tomcat/lib/ icinde !! bootstrap,har bunlarin hepsini yukluyor !
// -
sessionFactoryMemoryH2 = moConfigurationHibGenericMemoryH2DB.
buildSessionFactory(serviceRegistryMemoryH2);
return true;
}
catch (Exception ex)
{
logger.logk("\n===================\n\n" + ex.toString() + "\n\n"
+ "\n\n" + ex.getMessage() + "IMPORTANT ! "
+ "Failed to create sessionFactoryMemoryH2! (Memory-H2)"
+ " object. "
+ "Hibernate Listerner.java -> connect(...) Failed ! Very important error.");
return false;
}
}
public boolean connectCassandra(boolean pbForce)
{
if (!pbForce)
{
if (checkconnectionCassandra())
{
return true;
}
else
{
logger.logk("connection cassandra FALSE !! : connect() -- ELSE !! "
+ " Bir adim Asagiya giriyor simdi. FORCE2Init =false, Connection Status = false.. ");
}
}
// init the time,
if (mlLastTimeConnection > 0 && sessionFactoryCassandra != null)
{
if ((cConvert.getLinuxTime() - mlLastTimeConnection) < 30) //
{
logger.logk("hibernateLister.java cassnsdra side -> connect(force:" + pbForce + ") ->Last connection time is < 60 returns false ");
return false;
}
}
// Connecting now,
mlLastTimeConnection = cConvert.getLinuxTime();
// EGER 30 sn den kisa sure icinde 2 defa baglanmaya calisirsa FORCE return directly.
// azure.ProjectConfig.logk("---- HIBERNATE --> --> --> NOT CONNECTED inside of Hibernate connect ");
try
{
// Bypasss _ xml data soruyor. Dosya olmazsa, hata verdiriyor. !!! JSON dan almak daha mantikli aq.
// moConfigurationHibGeneric.configure();
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
// azure.ProjectConfig.logk("--->>>> Added AnnotatedClass : 2 classes ");
//
//
if (moConfigurationHibGenericCassandra == null)
{
logger.logk("=> moConfigurationHibGenericCassandra is null ! this is dangeroues .."
+ " (moConfigurationHibGenericCassandra.getProperties()).buildServiceRegistry() --moConfigurationHibGeneric.getProperties()-"
+ "- may b null error ");
}
//
logger.logk("hibernate ListenerJava - Hibernate Generic : Apply settings : mo configurations -->"
+ " serviceRegistry = new ServiceRegistryBuilder.. moConfigurationHibGenericCassandra . getPRopertis ...moConfgrtuigs");
//
serviceRegistryBuilderCassandra = new StandardServiceRegistryBuilder().applySettings(
moConfigurationHibGenericCassandra.getProperties());
//
// azure.ProjectConfig.logk("--->>>> Added AnnotatedClass : 2 classes ");
//
// !! TOMCAT lib icinde JAR dosyalarini kopyalamak zorundasin ,
// Hibernate JAR dosyalarini
//
// ! Bir digeri !! EGER JSF kullaniyorsan , JAVAX .! faces lib .> icinde olacak tomcat/lib/ icinde !! bootstrap,har bunlarin
// hepsini yukluyor !
sessionFactoryCassandra = moConfigurationHibGenericCassandra.buildSessionFactory(serviceRegistryBuilderCassandra.build());
return true;
}//
catch (Exception ex)
{
logger.logk("\n===================\n\n" + ex.toString() + "\n\n"
+ "\n\n" + ex.getMessage() + "IMPORTANT ! Failed to create sessionFactory object. "
+ "Hibernate Listerner.java -> connect(...) Failed ! Very important error.");
return false;
}
}
// STEP 7
// Planned, General Exception Handler for connection problems,
public Boolean exceptionHandler(Exception poEx, Transaction poTx)
{
if (logger.DEBUG_PERF)
{
logger.logk("HibernateListener.java -> exceptionHandler(Exception poEx, Transaction poTx) ");
}
/*
* if (tx != null)
* {
* tx.rollback();
* }
* e.printStackTrace();
*/
logger.logk_PrintSTACK_TRACE("hibernateListener.java -> exceptionHandler(Exception poEx, Transaction poTx){ .. "
+ " Important : \n\n" + poEx.toString() + "\n\n\n", poEx);
try
{
if (logger.isDetailedMessageContains(poEx, "duplicate key value")
|| logger.isDetailedMessageContains(poEx, "the same identifier value was already associated")
|| logger.getStackTrace(poEx).contains("the same identifier value was already associated"))
{
if (poTx != null)
{
poTx.rollback();
}
return true;
}
}
catch (Exception e)
{
}
// org.hibernate.TransactionException: JDBC begin transaction failed: -> Change IP !
// Forcing to make connection again.
//
if (poEx.toString().contains("JDBC begin transaction failed")) //
{
// ! Devran Systems,
connect(true);// change ip and connect
}
if (poEx.toString().contains("JDBC") || poEx.toString().contains("could not inspect JDBC autocommit mode"))
{
logger.logk("Connect TRUE ! ");
// ! Devran Systems,
connect(true);
}//org.hibernate.exception.ConstraintViolationException
else if (poEx.toString().contains("MySQLNonTran") || poEx.toString().contains("commit failed"))
{
// ! Devran Systems,
if (logger.DEBUG_PERF)
{
logger.logk("(poEx.toString().contains(\"MySQLNonTran\")) -> connect true -> ");
logger.logk("(poEx.toString().contains(\"commit failed\")) -> connect true -> ");
}
connect(true);
}
else if (poEx.toString().contains("closed"))
{
if (logger.DEBUG_PERF)
{
logger.logk("exceptionHandler -> Hibernate Listener -> Exception contains . Closed : ");
}
// ! Devran Systems,
connect(true);
}
else if (poEx.toString().contains("Error calling Driver#connect"))
{
if (logger.DEBUG_PERF)
{
logger.logk("exceptionHandler -> Hibernate Listener -> Exception contains . Closed : ");
}
// ! Devran Systems,
connect(true);
}
else if (poEx.toString().contains("apped"))
{
// ! Devran Systems,
logger.logk("init Configuration ADD Classs to hibernate to map !!! ");
logger.logk("init Configuration ADD Classs to hibernate to map !!! ");
}
else
{
}
try
{
if (poTx != null)
{
if (logger.DEBUG_PERF)
{
logger.logk("Transaction logback ");
}
poTx.rollback();
}
if (poTx == null)
{
if (logger.DEBUG_PERF)
{
logger.logk("Tx is null connection to the database");
}
connect(true);
}
}
catch (Exception pe)
{
logger.logk("Other Exception happened, when itwas rolling back. \n\n" + pe.toString());
}
return null;
}
public void exceptionHandlerCassandra(Exception poEx, Transaction poTx)
{
/*
* if (tx != null)
* {
* tx.rollback();
* }
* e.printStackTrace();
*/
logger.logk("hibernateListener.java -> exceptionHandler(Exception poEx, Transaction poTx){ .. "
+ " Important : \n\n" + poEx.toString() + "\n\n\n");
// Forcing to make connection again.
//
if (poEx.toString().contains("JDBC"))
{
// ! Devran Systems,
connectCassandra(true);
}
else if (poEx.toString().contains("MySQLNonTran"))
{
// ! Devran Systems,
connectCassandra(true);
}
else if (poEx.toString().contains("closed"))
{
// ! Devran Systems,
connectCassandra(true);
}
else
{
}
try
{
if (poTx != null)
{
poTx.rollback();
}
if (poTx == null)
{
connect(true);
}
}
catch (Exception pe)
{
logger.logk("Other Exception happened, when itwas rolling back. \n\n" + pe.toString());
}
}
public void exceptionHandler(Exception poEx)
{
exceptionHandler(poEx, null);
}
public void exceptionHandlerCassandra(Exception poEx)
{
exceptionHandlerCassandra(poEx, null);
}
/**
* Sending as email this exception ! todo - planned tot
*
* @param poEx
*/
public void exceptionSendEmail(Exception poEx)
{
// -- directly from system email !
// this is sending email inside of the logs.
logger.logkerr(poEx.toString());
}
}