AXOPEN

Planisware : problème de saturation mémoire pour le client lourd

error_ram

Introduction

Le problème abordé dans cet article se manifeste par un bug lors du démarrage ou de l’ouverture de projets en client lourd (appelé aussi Planisware PRO). Il se caractérise par le message d’erreur classique suivant :

The operating system will not make the space available because the address 
space reserved for the heap could not be increased.

Par exemple :

                               FICHE D'ANOMALIE OPX2
________________________________________________________________________________
DATE         : 01/7/2013 12:00
________________________________________________________________________________
REDACTEUR    : NIL
________________________________________________________________________________
SITE         :
________________________________________________________________________________
VERSION      : Planisware 5 - build 0520 - SP3
________________________________________________________________________________
ENVIRONNEMENT: x86 - MY_COMPUTER - Microsoft Windows 2000/XP/Vista/7/Server - Generic
________________________________________________________________________________
Nom du fichier : MY_PROJECT
Impossible de lire le pdf-file-element numéro 96465599 : "Error while doing operation
on object #{ARCHIVE:ENVIRONMENT-OBJECT@96465599}: Transaction MAKE on object
#{ARCHIVE:ENVIRONMENT-OBJECT@96465599} [status SETTING-ATTRIBUTES] with arguments ()

An allocation request for 24 bytes caused tenuring and a need for
2883584 more bytes of heap. The operating system will not make the
space available because the address space reserved for the heap could
not be increased."

Impossible de lire le pdf-file-element numéro 359976189 :
"Error while doing operation on object
#{ARCHIVE:ENVIRONMENT-OBJECT@359976199}: Transaction MAKE on object
#{ARCHIVE:ENVIRONMENT-OBJECT@359976199} [status SETTING-ATTRIBUTES]
with arguments ()

An allocation request for 24 bytes caused tenuring and a need for
7602176 more bytes of heap. The operating system will not make the
space available because the address space reserved for the heap could
not be increased."

Origine du problème

Comme indiqué dans le message d’erreur le client lourd n’arrive pas à obtenir du système d’exploitation (OS) la RAM nécessaire pour charger ses données. Il renvoie donc une erreur et se ferme.

Explications

Le client lourd Planisware utilise un volume de RAM important pour fonctionner correctement. En effet, comme pour le serveur d’application, le client lourd charge ses données en cache pour accélérer les calculs. Ainsi plus le volume de données chargées sera important (nombre de projet et d’objets par projets), plus les besoins de mémoire vive seront élevés.

A titre d’exemple, de base le chargement d’un client lourd avec un paramétrage Processes standard va nécessiter plusieurs centaines de Mo. Cette consommation a d’ailleurs augmenté entre la SP1 et la SP3.

On comprend donc qu’il faudra impérativement avoir une machine avec plusieurs Go de RAM libre si l’on veut faire fonctionner un client lourd sans rencontrer ce genre de problème.
Cependant, au-delà de la RAM totale disponible sur la machine, 2 problèmes peuvent encore apparaître :

  • Limitation de la taille du processus Planisware opx2.exe standard
  • Limitation de la taille du processus sous Windows 32 bits.

1) Limitation de la taille du processus Planisware opx2.exe standard

Lorsque l’on installe une version standard du client lourd (sans le serveur d’application) les binaires Planisware sont bridés à une utilisation de 800 Mo de RAM en 32 bits et à un peu plus d’1 Go en 64 bits. Ainsi, si le client lourd a besoin de plus de RAM il va renvoyer une erreur.
Par ailleurs, pour contourner cette limitation il sera nécessaire de remplacer le binaire « opx2.dxl » par le fichier « intranet.dxl » d’une installation d’un Planisware Application Server en le renommant en « opx2.dxl ». Il n’y aura alors plus de limitation de la taille du processus client lourd autre que celles que peut imposer l’OS.

2) Limitation de la taille du processus sous Windows 32 bits

Sous Windows 32 bits la taille maximale (en RAM) d’un processus Planisware Pro est limitée à moins d’1Go (généralement environ 800 Mo). Au-delà, on aura une erreur du type "The operating system will not make the space available because the address space reserved for the heap could not be increased.”
Ainsi, pour utiliser un client lourd sur une application contenant beaucoup de données (particulièrement sous P5 SP3), il est fortement recommandé d’utiliser un poste client possédant un OS 64 bits si on veut éviter les plantages du client lourd liés aux limitations de RAM.

Note : attention pour que le client lourd soit installé en 64 bits on utilise le setup d’installation standard que l’on déroulera sur un poste 64 bits. En revanche si on copie une installation de Planisware réalisée sur un poste 32 bits sur un poste 64 bits on aura le client lourd tournera en tant que processus 32 bits.