tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Moze dibi sposobit chybu v SoapClient

před 8 lety

matok
Člen | 7

php: 5.3.5 dibi: 1.5rc

Pouzivam http://www.php.net/…apclient.php na svoju synchronizaciu nejakych dat…

<?php
$client = new SoapClient("xy.wsdl", array('connection_timeout' => 120, 'trace' => 1));

$data = $client->getClassifier("data_a", true);

foreach ($data->body as $item)
{
  $inser_data = array(); /* priprava asositivneho pola */
  dibi::query('REPLACE `data_a` SET %a', $inser_data);
}

// sync. dalsej tabulky

// sync. dalsej tabulky

// sync. dalsej tabulky
?>

Podobny kod sa opakuje viac krat… data_a az data_e. Mozno niekto bude namiestat ze REPLACE nie je najvhodnejsi – nie je… ale zatial by to stacilo… kedy mi to neskonci SoapFault – Error Fetching http headers

Ako toto suvisi s dibi netusim ale fakt je taky ze ked dibi::queuy zakomentujem tak to ide. Neviem zistit co je zle kedze toto sa stane az pri dalsej tabulke a keby mam kod v oddelych suboroch (teda ak by som to pustal zvlast) tak ziadne chyba nebude.

Stretol sa niekto uz s niecim podobnym?

před 8 lety

Milo
Nette Core | 1119

Do logů web serveru (tam kde běží SOAP server) jsi koukal? Co $client->__getLastRequestHeaders() atp…?

před 8 lety

matok
Člen | 7

Uz som to vyriesil inak – chyba dibi to nebude a cely problem bude v tom ze neviem preco ale jediny rozumny dovod je ze to ignoruje timeout 120 sekund (aj ostatne timeouty boli nastavene vysoko), zo ziadnych logov som sa nic rozumne nedozvedel.
Uz ma to privadzalo do sialenstva kedze to obcas preslo cele a niekedy nie :D ..tak som sa spytal…

před 8 lety

Milo
Nette Core | 1119

Zkoušel jsi nastavit i default_socket_timeout přes ini_set()? Prohlídnul bych ty HTTP hlavičky, Keep-Alive a pod… ale jak píšeš, to už je mimo dibi.

před 8 lety

HosipLan
Moderator | 4693

Obal celý ten tvůj úžasný script do transkace a třeba se zrychlí natolik, že to soap vydrží.