Fatal Error: Allowed Memory Size of 134217728 Bytes exhausted (CodeIgniter + XML-RPC)

J'ai un tas de client en point de vente (POS) des systèmes qui envoient périodiquement des nouvelles données de ventes à une base de données centralisée, qui stocke les données dans une base de données pour la génération de rapports.

Le client POS est basé sur PHPPOS, et j'ai mis en place un module qui utilise le standard XML-RPC bibliothèque pour envoyer des données de vente pour le service. Le serveur est construit sur CodeIgniter, et utilise le XML-RPC et XML-RPC bibliothèques pour le webservice composant. Chaque fois que j'envoie un lot de données de ventes (aussi peu que 50 lignes de la table de vente, et des lignes individuelles de sales_items relatives à chaque élément au sein de la vente), je reçois le message d'erreur suivant:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)

128M est la valeur par défaut dans php.ini, mais je suppose que c'est un grand nombre de rompre. En fait, j'ai même essayé de définir cette valeur à 1024M, et il n'est de prendre plus de temps pour l'erreur.

Comme pour les étapes que j'ai prises, j'ai essayé de désactiver tous les traitements côté serveur, et ont truqué le retour d'une réponse toute faite indépendamment de l'entrée. Cependant, je crois que le problème réside dans le réel l'envoi des données. J'ai même essayé de désactiver le maximum délai d'exécution des scripts PHP, et il a encore une erreur.

  • Je suis un peu confus... d'où l'erreur se produit - dans le client ou le serveur? Et à quel stade... client de l'envoi, le serveur de réception, de traitement de serveur, serveur d'envoi, de réception ou de traitement client?
  • Comment/où es-tu réglage de la memory_limit à 1024M?
  • L'erreur semble se produire au cours de la client envoi, ou le serveur de réception. J'ai essayé de désactiver tous les serverside de traitement, et le gréement pour envoyer une réponse toute faite sans tenir compte des données envoyées. L'erreur se produit si je leur envoie une certaine quantité de données. Je suis l'évolution du PHP.paramètre ini.
  • Ici c'est le code que j'utilise... j'ai inclus le XML-RPC bibliothèque utilisée pour le client ainsi: yousendit.com/download/U0d4SlIzcVg4aVBIRGc9PQ (Client) yousendit.com/download/U0d4SlIzcVhPSHhMWEE9PQ (Codeigniter Contrôleur) Merci pour votre temps, à l'avance. 🙂
  • limite de mémoire est de 128 mo, souble c': ini_set('memory_limit', '256M');
  • Résumé downvoted tous les "ignorer la fuite" des réponses, des gens qui confond CodeIgniter avec Drupal et les gens qui juste copier-collé des autres peuples réponses pour obtenir des points. La qualité des réponses de celui-ci est catastrophique.
  • Double Possible de Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 octets) en php

InformationsquelleAutor ArcticZero | 2009-02-18