J'ai un tas de systèmes de point de vente (POS) client qui envoient régulièrement de nouvelles données de vente à une base de données centralisée, qui stocke les données dans une grande base de données pour la génération de rapports.
Le POS client est basé sur PHPPOS, et j'ai implémenté un module qui utilise la bibliothèque XML-RPC standard pour envoyer des données de vente au service. Le système serveur est construit sur CodeIgniter et utilise les bibliothèques XML-RPC et XML-RPCS pour le composant de service Web. Chaque fois que j'envoie beaucoup de données sur les ventes (aussi peu que 50 lignes de la table des ventes et des lignes individuelles de sales_items relatives à chaque article de la vente), j'obtiens l'erreur suivante:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M est la valeur par défaut php.ini
, mais je suppose que c'est un nombre énorme à casser. En fait, j'ai même essayé de définir cette valeur à 1024M, et tout ce qu'il faut, c'est prendre plus de temps pour l'erreur.
En ce qui concerne les mesures que j'ai prises, j'ai essayé de désactiver tous les traitements côté serveur et je les ai truqués pour renvoyer une réponse standardisée quelle que soit l'entrée. Cependant, je pense que le problème réside dans l'envoi réel des données. J'ai même essayé de désactiver le temps d'exécution maximal du script pour PHP, et cela continue de produire des erreurs.