TOMCAT (Généralités, Fonctionnement)
Description
Cause
Resolution

Tomcat : Présentation

Apache Tomcat est un serveur web open source développé par la fondation apache software, il gère des servlets et application Java.

Au niveau de la CRM il est utilisé pour :

  1. Les exports et imports de données. L’utilisation de Tomcat permet de s’affranchir des problèmes de versions et langues respectives des applications MsOffice et windows. Il est aussi possible d’exporter au format Excel sans nécessité d’installer Excel sur le serveur CRM.
  2. Sage CRM supporte à présent le protocole Sdata, nouveau protocole mondial optimisant les échanges de données des logiciels Sage ; ce protocole nécessite un serveur apache pour son fonctionnement.
  3. Le tableau de bord interractif qui s’appuie sur le protocole SData.
  4. Le correcteur orthographique de l’éditeur d’emails implémenté en Java et necessitant un serveur Apache.
  5. L’ouverture de Sage CRM via d’autres outils et services connectés sera facilitée par l’implémentation de solutions apache/java.

Fonctionnement

L'application principale est hébergée dans IIS dans le site Web par défaut et porte le nom donné à l'installation (exemple CRM66). Les fichiers de cette application se trouvent dans le répertoire d'installation du CRM dans le répertoire wwwroot.

Une autre application est hébergée dans IIS et porte le nom de SData. Cette application ne sert que de relais intermédiaire en vue d'appeler l'application gérée par Tomcat.

Procédure d’appel

Sage CRM utilise un site Web principal géré sous IIS. Une logique de redirection d'url permet de passer de IIS à Tomcat.

Le processus d’appel est le suivant (en prenant pour exemple un export) :

     - La demande d'export provient d'une page classique Sage CRM sous IIS. Lors de la validation la page par l'utilisateur, un outil "CRMUrlrewriter" réécrit l'url pour enlever le chemin /sdata/.

     - Un outil "CRMUrlRedirector" redirige le site [nom crm]j de IIS vers le site de même nom de Tomcat (via notamment une redirection de port).

     - Le serveur Tomcat est alors sollicité et le composant createExcelReport est exécuté.

Exemple avec une URL suite à la demande d’export, L’url est sous la forme : http://[serveur CRM]/sdata/[nom crm]j/$service/createExcelReport?[options]

     - La normalisation Sdata impose dans les url l'ajout du chemin virtuel /sdata/, cependant ce chemin n'étant pas nécessaire pour certaines fonctions telles que les exports, le chemin virtuel /sdata/ sera automatiquement retiré de l'url.

     - L'application [nom crm]j hebergée dans IIS est appelée mais une redirection va renvoyer la demande vers l'application [nom crm]j de Tomcat.

      - $service correspond à une normalisation permettant de distinguer les récupérations de ressources (données, métadonnées) de l'exécution de composants. $service est toujours suivi du nom du composant. Dans notre exemple createExcelReport.

     - [options] correspond aux paramètres à passer au composant, ici par exemple, le type d'export, le chemin, le nom du fichier contenant les données.

Astuce : L'installation de plusieurs dossiers Sage CRM sur un même serveur de production n'est pas supportée, cependant pour des raisons pratiques liées à des installations/désinstallations ou sur des environnements de tests ou démonstration, plusieurs installations CRM peuvent cohabiter. 

Résolutions de problèmes

     - Vérifier que le service est correctement démarré.

     - Si le service est correctement démarré vérifier que l’utilisation mémoire du processus est > à 250 Mo

     - Vérifier dans le fichier db.properties que la base SQL paramétré est bien la bonne : Répertoire installation Sage CRM/ tomcat\webapps\[Nom du CRM]j\WEB-INF


Dans certains cas la partie "language=English ;" provoque des problèmes : éditer le db.properties, supprimer cette partie, enregistrer et essayer de redémarrer le service.

Vérification des logs

En cas de disfonctionnement il faut vérifier les logs de la CRM + TOMCAT :

     - CRM --> Répertoire installation Sage CRM/Logs

     - TOMCAT --> Répertoire installation Sage CRM/Tomcat/Logs

A noter : les exports sont beaucoup plus explicites en cas de dysfonctionnement de Tomcat

Redéployer la web-Apps

      - Faire une sauvegarde de \Répertoire installation Sage CRM \tomcat\webapps\ et tout le contenu.

     - Supprimer tout dans \Répertoire installation Sage CRM \tomcat\webapps sauf les *.War

     - Redémarrer Tomcat.

     - Se positionner dans \Répertoire installation Sage CRM\tomcat\webapps\crm6j\WEB-INF

     - Remettre les bons paramètres de connexions dans les fichiers suivants (se référer à celui sauvegardé) :

              - jdbc.properties

              - log4j.properties

              - web.xml

      - Ces fichiers ont tous une extension .tmpl, après modification il faut les renommer afin de supprimer cette extension.

      - Redémarrer de nouveau Tomcat.

Connections

Vérifier si le problème provient de la connexion de la CRM avec Tomcat ou directement Tomcat :

     - Vérification de la connexion à Tomcat sans passer par la CRM mais directement par les redirections via IIS.Dans un navigateur insérer l’URL suivante : http:///sdata/j/sagecrm/-/$schema. Une page HTML doit s’afficher sinon vérifier le bon fonctionnement du site SData dans IIS.

     - Vérification de la connexion à Tomcat sans passer par la redirection d’URL. Dans un navigateur, insérer l’URL suivante : http://localhost:10009/CRM_8_02j/sagecrm/-/$schema. Une page HTML doit s’afficher sinon erreur.

Astuce : Pour les vérifications ci-dessus une manipulation est à réaliser, celle-ci peut régler certains problèmes de connections : 

     - Dans gestionnaires IIS/site SData

     - Sélectionner Réécriture d’URL

     - Double cliquer sur chacun des éléments

Modifier dans l’adresse de réécriture d’URL le champs {C :1} par localhost :

     - Effectuer un IISRESET

     - Vérification du port de communication : par défaut Tomcat utilise le port 10009 redirigé vers le 8443, Il faut s’assurer que ce port n’est pas utilisé par une autre application : cmd\netstat -anb : le port ne doit pas apparaitre quand le service tomcat est arrêté. Pour changer ce port : [répertoire CRM]\tomcat\conf\server.xml

Steps to duplicate
Related Solutions