-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 14 posts ] 
Author Message
 Post subject: Websphere serveur avec Hibernate
PostPosted: Wed May 11, 2005 11:05 am 
Beginner
Beginner

Joined: Fri Jan 07, 2005 2:47 pm
Posts: 45
Bonjours

Nous avons une application qui fonctionne parfaitement bien si on utilise the serveur websphere localement par contre la même application déployée sur le serveur d'applications websphere ne fonctionne pas. On peut à travers le browser voir la page index mais aussitôt qu'une requête à la base de donnée Oracle est demandée nous obtenons l'erreur suivante: HTTP 500 - Internal server error
Internet Explorer

Ceci nous indique qu'il ne lit pas les configurations de la base de donnée.

Complémentaire aux configurations se trouvant sur Hibernate.cfg.xml doit-on ajouter d'autres configurations similaires? Si oui où?

Pourriez-vous m'aider svp. merci

Un forum en français est génial. Merci

Hibernate version:
2.1.7
Mapping documents:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">false</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.dialect">net.sf.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.connection.username">mmmmm</property>
<property name="hibernate.connection.password">fgfgfg</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@xxxx_oracle_ddd:1111:ddd1</property>
<mapping resource="SAP\BusinessObjects\XXXX.hbm.xml" />

</session-factory>
</hibernate-configuration>
Code between sessionFactory.openSession() and session.close():

Full stack trace of any exception that occurs:

Name and version of the database you are using:
Oracle9i
The generated SQL (show_sql=true):
show_sql">false
Debug level Hibernate log excerpt:

Erreur provenant du browser:

HTTP 500 - Internal server error
Internet Explorer


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 12, 2005 3:01 am 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
es tu certains que cela est lié à l'initialisation d'Hibernate?
Deux conseils toutefois:
- utilises un pool connexion (C3p0)
- tente d'utiliser la datasource websphere, personnellement j'ai rencontré des bugs très bizarres lors du déploiement d'une appli vers WAS alors même qu'elle fonctionnait parfaitement sur WSAD (config datasource JDBC --> pas de JTA dans cette appli). Un incident est ouvert chez IBM.

_________________
Anthony,
Get value thanks to your skills: http://www.redhat.com/certification


Top
 Profile  
 
 Post subject: Webshere avec Hibernate
PostPosted: Thu May 12, 2005 7:40 am 
Beginner
Beginner

Joined: Fri Jan 07, 2005 2:47 pm
Posts: 45
Merci du conseil.

A cette étape ci, je ne suis sure de rien. Toutefois, est-il possible que la librairie Hibernate2.jar doit se trouver inclue dans la librairie de l'application et également au root de l'application qui est hébergé par le serveur (serveurnom\application\Hibernate2.jar, app.ear\)?

En ce moment, je suis également entrain de lire les instructions et directives émis par IBM concernant plus particulièrement Websphere et Hibernate.

Si j'arrive à trouver la solution, je ferai le suivi.

Merci pour votre aide.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Nov 02, 2005 8:53 pm 
Newbie

Joined: Wed Nov 02, 2005 5:33 am
Posts: 12
Bonjour dfini,

J'ai rencontré le même problème. Comment est-ce que tu l'as résolu ?

Merci!
-------------------------
thanh.hoc@gmail.com
-------------------------


Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 03, 2005 7:56 am 
Beginner
Beginner

Joined: Fri Jan 07, 2005 2:47 pm
Posts: 45
Il y a des erreurs de syntax qui sont acceptés par ton serveur local (ton pc). Lorsque tu utilises un serveur externe (serveur d'application autre que ton pc) ces erreurs de syntax font crasher ton application (Http:error 500.....)

Dans notre cas, le fichier de configuration d'hibernate soit hibernate.conf.xml a été créé en utilisant dans \ plutot que des /.
Aussitot corrigé, l'application s'est mise à fonctionner normalement. Ce sont des erreurs stupides mais aussi les plus difficiles à trouver.

Bonne chance


Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 03, 2005 8:53 am 
Regular
Regular

Joined: Fri Sep 30, 2005 6:15 am
Posts: 50
Bonjour dfini,

Je travaille en ce moment à l'intégration d'hibernate dans un projet Web sous WSAD justement...

Est-ce ton cas? si oui comment as tu contourner le problème "could not initialize proxy - the owning Session was closed"
as tu développé un filtre hibernate?

merci


Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 03, 2005 9:09 am 
Beginner
Beginner

Joined: Fri Jan 07, 2005 2:47 pm
Posts: 45
Oui nous avons instauré un filtre qui permet d'ouvrir et fermer une session. Pour ce faire tu dois créer la classe SessionFilter voir code ci-dessous et configurer ton ficher web.xml voir exemple ci-dessous:

Bonne chance

<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>XXX.Util.SessionFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


public class SessionFilter implements Filter {
/**
* A servlet filter that opens and closes a Hibernate Session for each request.
* <p>
* This filter guarantees a sane state, committing any pending database
* transaction once all other filters (and servlets) have executed. It also
* guarantees that the Hibernate <tt>Session</tt> of the current thread will
* be closed before the response is send to the client.
* <p>
* Use this filter for the <b>session-per-request</b> pattern and if you are
* using <i>Detached Objects</i>.
*
* @see org.hibernate.ce.auction.persistence.HibernateUtil
* @author Christian Bauer <christian@hibernate.org>
*/


private static Log log = LogFactory.getLog(SessionFilter.class);

public void init(FilterConfig filterConfig) throws ServletException {
log.info("Servlet filter init, now opening/closing a Session for each request.");
}

public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

// There is actually no explicit "opening" of a Session, the
// first call to HibernateUtil.beginTransaction() in control
// logic (e.g. use case controller/event handler, or even a
// DAO factory) will get a fresh Session.
try {
chain.doFilter(request, response);

// Commit any pending database transaction.
HibernateUtil.commitTransaction();

} catch (RuntimeException ex) {
log.debug("Rolling back the database transaction.");
HibernateUtil.rollbackTransaction(); // Also closes the Session
System.err.println("Rollback Transaction");
// Just rollback and let others handle the exception, e.g. for display
throw ex;

} finally {
// No matter what happens, close the Session.
HibernateUtil.closeSession();
}
}

public void destroy() {}

}


Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 03, 2005 10:19 am 
Regular
Regular

Joined: Fri Sep 30, 2005 6:15 am
Posts: 50
Bonjour et merci de répondre,

C'est bon de pouvoir partager avec des personnes travaillant sur les même technos que soit et en plus en français!

Pour le filter merci beaucoup pour le code.
Pour ma part, j'ai fait quasiment fait la même chose sauf que je commit au niveau de la couche "logique" et non dans le filtre, je ferme juste la session dans le filtre?
vois tu des raison pour lesquelles ils serait préférable de le mettre dans le filter? Moi j'avais lu justement qu'il fallait mieux le déplacer pour éviter des problèmes de lock où je ne sais plus trop...

sinon, je me pose tout de même une question sur cette architecture et peut être que tu pourras me répondre car les english y veulent pas répondre :o)
En fait, je me demande tout simplement comment fait hibernate pour savoir quelle session il doit fermer dans le filter? car d'après ce que j'ai compris, on aura une session ouverte pour chaque requete transaction donc si on en a plusieurs en simultanée, comment fait pour retrouvé la bonne session?

voici le post que j'ai envoyé sur le forum anglais, il y a l'implémentation de mon filter, on peut en discuter plus après si tu veux...

Merci,


Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 03, 2005 10:25 am 
Beginner
Beginner

Joined: Fri Jan 07, 2005 2:47 pm
Posts: 45
Je ne veux pas trop m'avancer sur le sujet mais je crois que chaque thread ou session est identifié et les transactions de requetes se passent a l'intérieur de la session identifié donc facile de la fermée.

Il est possible que quelqu'un d'autre est une réponse mieux que la mienne.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 03, 2005 10:40 am 
Regular
Regular

Joined: Fri Sep 30, 2005 6:15 am
Posts: 50
Ok merci pour la réponse,

mais j'ai oublié voici l'url de mon post anglais avec mon filter si tu veux voir :

http://forum.hibernate.org/viewtopic.php?t=949667


Top
 Profile  
 
 Post subject:
PostPosted: Thu Nov 03, 2005 10:55 am 
Regular
Regular

Joined: Fri Sep 30, 2005 6:15 am
Posts: 50
Dfini,

Utilises-tu le filtre hibernate en production?
avec quel db travailles tu? moi c'est DB2 8.1

@+


Top
 Profile  
 
 Post subject: Re: Webshere avec Hibernate
PostPosted: Thu Nov 03, 2005 11:09 am 
Regular
Regular

Joined: Fri Sep 30, 2005 6:15 am
Posts: 50
dfini wrote:

En ce moment, je suis également entrain de lire les instructions et directives émis par IBM concernant plus particulièrement Websphere et Hibernate.



Aurais-tu un lien?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Nov 04, 2005 4:49 am 
Regular
Regular

Joined: Fri Sep 30, 2005 6:15 am
Posts: 50
Dfini,

peut-être que tu ne veux pas d'entre-aide :o)
mais voici le lien de mon post anglais sur HibernateFilter.....lis la réponse de sleepybar....qu'en penses tu?

http://forum.hibernate.org/viewtopic.php?p=2269761#2269761


Top
 Profile  
 
 Post subject:
PostPosted: Fri Nov 04, 2005 5:31 am 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
dfini wrote:
Je ne veux pas trop m'avancer sur le sujet mais je crois que chaque thread ou session est identifié et les transactions de requetes se passent a l'intérieur de la session identifié donc facile de la fermée.

Il est possible que quelqu'un d'autre est une réponse mieux que la mienne.


La session en cours est gardé dans un variable de type thread local (comme la tx d'ailleurs). Ce travail est fait pas Hibernate Util. Regardez le code. Une HTTPRequest est gérée par un thread donné. CQFD

_________________
Emmanuel


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 14 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.