Mam kilka systemów POS, które okresowo wysyłają nowe dane sprzedażowe do jednej scentralizowanej bazy danych, która przechowuje dane w jednej dużej bazie danych w celu generowania raportów.
Klient POS oparty jest na PHPPOS, a ja wdrożyłem moduł, który używa standardowej biblioteki XML-RPC do wysyłania danych sprzedaży do usługi. System serwera jest zbudowany na CodeIgniter i wykorzystuje biblioteki XML-RPC i XML-RPCS dla komponentu webservice. Ilekroć wysyłam dużo danych dotyczących sprzedaży (zaledwie 50 wierszy z tabeli sprzedaży i poszczególnych wierszy z elementów_ sprzedaży dotyczących każdego elementu w sprzedaży), pojawia się następujący błąd:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M jest wartością domyślną php.ini
, ale zakładam, że jest to ogromna liczba do złamania. W rzeczywistości próbowałem nawet ustawić tę wartość na 1024 M, a wszystko, co robi, zajmuje więcej czasu, aby się pomylić.
Jeśli chodzi o kroki, które podjąłem, próbowałem wyłączyć wszystkie przetwarzanie po stronie serwera i przygotowałem je tak, aby zwróciło pełną odpowiedź niezależnie od danych wejściowych. Uważam jednak, że problem polega na faktycznym wysłaniu danych. Próbowałem nawet wyłączyć maksymalny czas wykonywania skryptu dla PHP i nadal występuje błąd.