In addition to the KeepAlive trick which is a "server-side" modification, on the "client side" default_socket_timeout should be increased from its default value (60) when you deal with ~slow SOAP servers.
As for the KeepAlive, if creating a new separate vhost for the soap api is not possible, you can add this to your existing vhost: BrowserMatch "^PHP-SOAP" nokeepalive
where PHP-SOAP is the agent name of your soap client, if you dont know what agent name your client use, just checkout the access.log of your apache.
SoapClient クラス
導入
SoapClient クラスは » SOAP 1.1、» SOAP 1.2 サーバ用のクライアントとなります。 WSDL モードあるいは non-WSDL モードで動作します。
クラス概要
SoapClient
SoapClient
{
/* メソッド */
public string __doRequest
( string $request
, string $location
, string $action
, int $version
[, int $one_way = 0
] )
public mixed __soapCall
( string $function_name
, array $arguments
[, array $options
[, mixed $input_headers
[, array &$output_headers
]]] )
}目次
- SoapClient::__call — SOAP 関数をコールする (非推奨)
- SoapClient::__construct — SoapClient のコンストラクタ
- SoapClient::__doRequest — SOAP リクエストを実行する
- SoapClient::__getFunctions — SOAP 関数の一覧を返す
- SoapClient::__getLastRequest — 直近の SOAP リクエストを返す
- SoapClient::__getLastRequestHeaders — 直近の SOAP リクエストヘッダを返す
- SoapClient::__getLastResponse — 直近の SOAP レスポンスを返す
- SoapClient::__getLastResponseHeaders — 直近の SOAP レスポンスヘッダを返す
- SoapClient::__getTypes — SOAP 型の一覧を返す
- SoapClient::__setCookie — SOAP リクエストと共に送信されるクッキーを設定する
- SoapClient::__setLocation — 使用するウェブサービスの場所を設定する
- SoapClient::__setSoapHeaders — 以降のコール用の SOAP ヘッダを設定する
- SoapClient::__soapCall — SOAP 関数をコールする
- SoapClient::SoapClient — SoapClient コンストラクタ
SoapClient
fourat dot zouari at tritux dot com
20-Jun-2009 03:08
20-Jun-2009 03:08
peter dot hansen at fastit dot net
01-May-2009 01:57
01-May-2009 01:57
When you get errors like:
"Fatal error: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in"
after a few (time intensive) SOAP-Calls, check your webserver-config.
Sometimes the webservers "KeepAlive"-Setting tends to result in this error. For SOAP-Environments I recommend you to disable KeepAlive.
Hint: It might be tricky to create a dedicated vhost for your SOAP-Gateways and disable keepalive just for this vhost because for normal webpages Keepalive is a nice speed-boost.
