bonjour mes amis ,
j'ai un souci sur mon application qui est développé avec struts2,spring et hibernate .base donne oracle 10g
dans hibernate j'hérite d' hibernateSuportDao tous fonctionne bien
mais après j'ai intégré l'audit dans mon application et chaque user de l'application deviens un user de la base donne pour gérer l'audit surla base
j'ai développé une classe session factory qui open un connection jdbc comme voir ci dessus
dans la couche DAOIMP au lieu d'appeler la session d'hibernatesuport je fais appel au getfactory

le problème est généré lorsque plusieurs utilisateur se connecte au même temps et faire des transaction en même temps c'est a dire 3 user exécute des requête au même temps le serveur apache crach
je sais pas vraiment est ce que le problèm devient de la base ou bien d'hibernate

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class SessionFactory extends HibernateDaoSupport {
	private static Connection con1;
	private static Session factory;
	private static String amine;
	private final String shema="VOUCHER4000" ;
	public Connection openConnexion(String login,String mdp) throws SQLException{
		Session session ;//getHibernateTemplate().getSessionFactory().getCurrentSession();
 
			session=getHibernateTemplate().getSessionFactory().openSession();
 
		Connection con=session.connection(); 
 
 
		//System.out.println("Avant de cherche user oracle");
		 con1=DriverManager.getConnection(con.getMetaData().getURL(),login,mdp);
		// if(!factory.isOpen())
		 factory=getHibernateTemplate().getSessionFactory().openSession(con1);
		 amine=factory.connection().getMetaData().getUserName();
		 // System.out.println("Apres de cherche user oracle");
 
		return con1;
	}
	public Session openSessionFactory(){
		try {
		factory=getHibernateTemplate().getSessionFactory().openSession(con1);
		return factory;
		}
		catch (Exception e)
		{
			System.out.println("Message erreur est "+e.getMessage()+" a cause de "+e.getCause());
			return null;
		}
	}