GlassFish

Ça y est, le serveur d’application Ohm Force est passé sous GlassFish 2.

Maintenant le serveur est organisé avec :

  • nginx en frontal, configuration simple et courte,
  • PHP en FCGI pour le site vitrine de GForceSoftware,
  • GlassFish pour l’hébergement d’Ohm Force, du site magasin de GForce (c’est le même code) (des applis Struts/OJB/Spring) et du site de VDM, une appli jRuby on Rails.
  • le tout connecté à un PostgreSQL 8.

Avant le setup était globalement le même, mais avec Tomcat 6.

GlassFish

Plutôt agréable à utiliser. C’est une grosse machinerie qui se laisse manipuler assez facilement. Toutefois la doc est vraiment volumineuse, et rien que chercher les infos dedans va prendre du temps.

Au cours du “portage” depuis Tomcat, j’ai utilisé 2-3 trucs :

touch .reload

Ca force GlassFish à recharger la webapp, si c’est fait à la racine du répertoire de celle-ci. Il faut avoir configurer GlassFish pour autoriser l’autoriser.

C’est plus agréable au final que la méthode automatique de Tomcat. On a le droit de choisir quand ça arrive🙂

Par contre ce redéploiement change la conf des webapp dans le domain.xml

asadmin set server.http-service.virtual-server.server.property.allowLinking=true

Permet d’utiliser des liens symboliques dans les webapps servies par le serveur virtuel server.

~/.asadminpass et ~/.asadmintruststore

Ces fichiers stockent les identifiants pour administrer GlassFish via asadmin.

asadmin deploydir <i>rep</i>

Déploie ou redéploie la webapp dans le répertoire rep.

$GLASSFISH_ROOT/domains/domain1/config/domain.xml

Le fichier de configuration, celui modifié par l’interface d’admin. Evidemment, il faut redémarrer le serveur après une modification.

$GLASSFISH_ROOT/domains/domain1/lib/

Les jars placées ici sont accessibles dans tous les classloaders du domaine. Pour pouvoir utiliser les datasources avec PostgreSQL, on place la jar du driver dans le sous-repertoire ext/ (et pas databases/!)

Attention …

GlassFish a tendance à cacher les fichiers des webapps $GLASSFISH_ROOT/domains/domain1/generated.

Faire un rsync entre deux serveurs pour synchroniser le répertoire de glassfish, c’est une mauvaise, très mauvaise idée. Les webapps ont récupéré la configuration de l’autre serveur, et les droits.

Les trucs biens

GlassFish semble vraiment plus solide que Tomcat. Il fait tourner les 3 webapp sans problème, alors que Tomcat ne supportait pas d’avoir l’appli jRuby on Rails, et crashait avec un vilain problème de mémoire.

L’interface d’admin … vraiment top. Quel changement ! J’utilisais Probe sur Tomcat, mais c’est pas aussi bien🙂

Les trucs louches

Au démarrage, la présence de l’appli jRuby on Rails fait pomper au serveur 99% des ressources pendant plusieurs minutes. Je n’ai pas encore réussi à comprendre pourquoi … surtout qu’après on redescend à une charge tout à fait raisonnable. Mais j’aimerai comprendre …

%d bloggers like this: