Z czym nie możemy pomóc

Pierwszą i najważniejszą kwestią, którą chcemy, aby każdy nasz klient wiedział, to z czym nie możemy pomóc. I nie jest to brak chęci, a fizycznie niemożliwe do osiągnięcia.

Są to ograniczenia serwera. Ograniczenia nałożone przez właściciela serwera (firmę hostingową).
A także ograniczenia samego serwera.

Generowanie XML to proces ciężki dla serwera. Wymaga on większej ilości zasobów i może spowolnić sklep (przy słabszych hostingach) podczas generowania takiego pliku. Jest to absolutnie normalne.

Najlepiej to ograniczenie obrazują gry komputerowe. Proste programy i gry chodzą szybko, a gry zawierające złożone obliczenia wymagają więcej zasobów. Tak samo jest z generowaniem plików XML.

Nie generuje się XML

Jeśli Twój problem polega na tym, że XML się nie generuje do końca, to problemem jest jedno z:

  • Serwer jest zbyt wolny
    • Oznacza to, że serwer nie jest w stanie wygenerować XML w sensownym czasie. Jeśli serwer jest zbyt obciążony, to my nie przyśpieszymy serwera.
  • Administrator nałożył limity na hosting
    • Jeśli Twój administrator nałożył limit, np. 60 sekund (takie serwery jak np. nazwa.pl) to nie ominiemy tych limitów.
  • Limity NGINX i Cloudflare
    • Wyżej wymienione systemy mają własne ograniczenia. Jeśli używasz Cloudflare, albo Twój hosting używa NGINX, to systemy te są przystosowane i zoptymalizowane do szybkiego generowania prostych stron. Generowanie plików XML powinno zostać wykonane z pominięciem tych systemów. Np. przez konsolę (jeśli masz do niej dostęp).
      Nie jesteśmy w stanie zmienić konfiguracji serwera, który do nas nie należy.
  • Mechanizmy zabijające procesy
    • Firmy hosingowe stosują również różnego rodzaju elementy zabijające długo wykonujące się procesy. Ma to zabezpieczyć serwer przed tzw. procesami zombie lub zabezpieczyć serwer przed przeciążeniem. Taki proces może mylić generowanie XML z nieaktywnym procesem.

Jak rozpoznać te przypadki

Dwa najczęstsze problemy, jakie napotykają użykownicy to komunikaty z problemem w przetwarzaniu XML przez przeglądarkę.

Tak wygląda objaw uciętego XML na przeglądarce Firefox

Błąd Firefox

Tak wygląda objaw uciętego XML na przeglądarce Chrome/Chromium

Błąd Chrome

Brak pamięci

Częstym jest u klientów błąd typu: PHP Fatal error: Out of memory (allocated 49545216) (tried to allocate 77824 bytes)
Jeśli masz taki błąd, zapytaj firmę hostingową, czy masz uprawnienia do zwiększenia limitu pamięci.

Mój XML generował się OK, ale nagle przestał.

Jeśli Twój XML generował się poprawnie jeszcze do niedawna, a nagle przestał z powodu przekroczonych zasobów serwera (czas/pamięć) może to być spowodowane kilkoma czynnikami

  • Do oferty dodane zostały nowe produkty
    • Dodanie nowych produktów efetkywnie zwiększy czas generowania XML, co może sprawić, że trafimy w limit
  • Zostały zmapowane dodatkowe ktaegorie
    • Jeśli zostały wprowadzone zmiany w mapowaniu kategorii i doszło więcej zmapowanych kategorii, oznacza to, że doszło więcej produktów do wyeksportowania. Efektywnie zwiększając zapotrzebowanie na zasoby serwera. Z tego powodu mogły rozpocząć się problemy.
  • Serwer zwolnił
    • Są różne sytuacje z serwerem. Jeśli serwer zwolnił (bo doszli na nim nowi użytkownicy) to może to wydlużyć czas gnerowania XML. Jeśli 1000 produktów generuje się 100 sekund, to przy zwiększonym obciążeniu serwera (przez innych użytkoników) może się okazać, że generowanie XML z 1000 produiktów będzie nagle trwało 150 sekund.

Co mogę zrobić?

Do wyboru jest kilka opcji:

  • Podzielić XML na mniejsze
  • Poprosić hosting o przyśpieszenie serwera
  • Zmienić serwer

Więcej informacji w FAQ