2012-12-12 61 views
0

我有一個SOAP服務器,它能夠一次接受多個SOAP請求,並且可以同時處理它們。多個SOAP請求沒有同時處理

如果我創建了一個基本的SOAP客戶端PHP腳本來發出請求,並在不同的機器上同時多次運行此腳本,這些請求似乎在服務器上排隊,並且只能逐個處理,而不是被處理同時。

Apache/PHP/SOAP中是否有可能導致此行爲的任何內容?

我很欣賞這可能有點模糊,所以我主要想知道是否有人遇到過這個問題,以及解決方案是什麼。我很難過。

SOAP調用如下所示:

$client = new SoapClient($config['parsingWSDL'],array('trace' => FALSE, 'exceptions' => TRUE)); 
$return = $client->__soapCall("ProcessCV",array($args)); 

回答

1

有在SoapClient沒有理由,這將使單獨的實例(每一個請求是一個新的...)等待對方。但是,在客戶端,如果要回收相同的連接,HTTP KeepAlive可能會成爲問題,而在服務器端,使用具有相同標識符的會話也會阻塞,直到鎖定被釋放(因此,在這種情況下,關閉會話儘快與session_write_close()而不是保持打開

其餘取決於你的SoapServer實際上做了什麼,SQL查詢可能正在等待鎖,或者可能由您的ProcessCV完成的任何其他鎖可能是原因。

相關問題