Ошибка php soap извлечения заголовков http

Я работаю над PHP-скриптом, который обрабатывает много данных через SOAP-соединение. Оценки общего времени выполнения сценария выглядят как несколько дней, если он не встречает никаких ошибок. Проблема, с которой я столкнулся, заключается в том, что скрипт будет работать некоторое время, от часа до дня, а затем соединение SOAP умрет с ошибкой "error fetching http headers" .

Я видел много статей, предлагающих увеличить значение default_socket_timeout, и я пробовал это. Это не помогло. Я знаю, что он работает, потому что он делает по меньшей мере сто успешных вызовов, прежде чем он потерпит неудачу. Есть ли что-нибудь, что я могу сделать, чтобы остановить эту ошибку?

Обновить
Я распечатал заголовки запроса и ответа в надежде увидеть там ошибку. Но, похоже, они в порядке:

HTTP / 1.1 200 OK
Дата: ср, 25 сен 2013 21:00:12 GMT
Сервер: Apache / 2.2.15 (CentOS)
X-Powered-By: PHP / 5.3.3
Контент-длина: 516
Подключение: закрыть
Content-Type: text / xml; кодировка = UTF-8

насколько пример кода идет, фактический скрипт сумасшедший, но основная посылка такова:

 ini_set('default_socket_timeout', 120); $client = new SoapClient($wsdl,array( 'trace' =>true, 'connection_timeout' => 500000, 'cache_wsdl' => WSDL_CACHE_BOTH, 'keep_alive' => true, )); while(!$finished) { $finished = $client->someSoapFunction($data); } 

someSoapFunction() вернет действительные данные для 100 соединений, а затем случайным образом вернет мне вышеуказанную ошибку. Время, в течение которого он работает, меньше, чем любой из установленных тайм-аутов. Я не получаю ошибок в журналах ошибок php или apache. Я в тупике.

Solutions Collecting From Web of "Ошибка php soap извлечения заголовков http"

Я знаю, что это старый вопрос, но, возможно, мое решение может быть полезным для других. У меня была та же проблема, и, изменив параметр «keep_alive» на false при создании объекта SoapClient, моя проблема была решена:

 $client = new SoapClient($wsdl,array( 'trace' =>true, 'connection_timeout' => 500000, 'cache_wsdl' => WSDL_CACHE_BOTH, 'keep_alive' => false, ));