Eu tenho vários sistemas de ponto de venda (POS) do cliente que enviam periodicamente novos dados de vendas para um banco de dados centralizado, que armazena os dados em um grande banco de dados para geração de relatórios.
O POS do cliente é baseado no PHPPOS, e eu implementei um módulo que usa a biblioteca XML-RPC padrão para enviar dados de vendas ao serviço. O sistema do servidor é construído no CodeIgniter e usa as bibliotecas XML-RPC e XML-RPCS para o componente de serviço da web. Sempre que envio muitos dados de vendas (apenas 50 linhas da tabela de vendas e linhas individuais de sales_items pertencentes a cada item da venda), recebo o seguinte erro:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M é o valor padrão php.ini
, mas presumo que seja um número enorme para quebrar. Na verdade, eu até tentei definir esse valor para 1024M, e tudo o que faz é levar mais tempo para ocorrer um erro.
Quanto às etapas que eu tomei, tentei desabilitar todo o processamento no lado do servidor e o montei para retornar uma resposta fixa, independentemente da entrada. No entanto, acredito que o problema está no envio real dos dados. Eu até tentei desabilitar o tempo máximo de execução de script para PHP, e ele ainda gera erros.