Periyodik olarak tek bir merkezi veritabanına yeni satış verileri gönderen ve bu verileri rapor oluşturmak için büyük bir veritabanında depolayan bir grup müşteri satış noktası (POS) sistemim var.
İstemci POS, PHPPOS tabanlıdır ve satış verilerini servise göndermek için standart XML-RPC kütüphanesini kullanan bir modül uyguladım. Sunucu sistemi CodeIgniter üzerine kurulu ve webservice bileşeni için XML-RPC ve XML-RPCS kütüphanelerini kullanıyor. Ne zaman çok fazla satış verisi göndersem (sales tablosundan 50 satır kadar az ve sales_items'ten satıştaki her bir ürüne ait ayrı satırlar) aşağıdaki hatayı alıyorum:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M, php.ini
dosyasında varsayılan değerdir, ancak bunun kırılması için çok büyük bir sayı olduğunu varsayıyorum. Aslında, bu değeri 1024M olarak ayarlamayı bile denedim ve tek yaptığı hata vermesinin daha uzun sürmesi oldu.
Attığım adımlara gelince, sunucu tarafındaki tüm işlemleri devre dışı bırakmayı denedim ve girdiden bağımsız olarak hazır bir yanıt döndürmek için ayarladım. Ancak, sorunun gerçek veri gönderiminde yattığına inanıyorum. PHP için maksimum komut dosyası yürütme süresini devre dışı bırakmayı bile denedim ve hala hata veriyor.