{"id":11225,"date":"2025-05-16T10:55:04","date_gmt":"2025-05-16T08:55:04","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/640\/?post_type=ht_kb&#038;p=11225"},"modified":"2025-05-16T11:20:45","modified_gmt":"2025-05-16T09:20:45","slug":"wysoka-dostepnosc-standby-failover","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/documentation\/wysoka-dostepnosc-standby-failover\/","title":{"rendered":"Wysoka dost\u0119pno\u015b\u0107 (Standby, Failover)"},"content":{"rendered":"<h3 id=\"wprowadzenie\" >Wprowadzenie<\/h3>\n<p class=\"\" data-start=\"0\" data-end=\"213\">W systemie ERP odwzorowywane s\u0105 kluczowe procesy biznesowe przedsi\u0119biorstwa. Je\u015bli system nie jest dost\u0119pny, przebieg tych proces\u00f3w zostaje utrudniony lub staje si\u0119 niemo\u017cliwy. Z tego powodu oferowane s\u0105 liczne rozwi\u0105zania zwi\u0119kszaj\u0105ce dost\u0119pno\u015b\u0107 systemu. Opcje te zosta\u0142y szczeg\u00f3\u0142owo opisane poni\u017cej.<\/p>\n<p data-start=\"0\" data-end=\"213\">Dodatkowo zalecanym jest zapoznanie si\u0119 z poj\u0119ciami takimi jak wysoka dost\u0119pno\u015b\u0107, ci\u0105g\u0142a dost\u0119pno\u015b\u0107, failover opisanymi w <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicje-zarzadzanie-systemem\/\">tutaj<\/a>.<\/p>\n<h3 id=\"grupa-docelowa\" >Grupa docelowa<\/h3>\n<ul>\n<li>Konsultanci techniczni<\/li>\n<li>Administratorzy systemu<\/li>\n<\/ul>\n<h3 id=\"opis\" >Opis<\/h3>\n<p class=\"\" data-start=\"0\" data-end=\"268\">Ka\u017cdy zas\u00f3b potrzebny do dzia\u0142ania systemu Comarch ERP Enterprise (np. komputer, system operacyjny, JVM) mo\u017ce ulec awarii. Aby po awarii zasobu zachowa\u0107 lub przywr\u00f3ci\u0107 dost\u0119pno\u015b\u0107 systemu, konieczna jest reakcja systemu lub r\u0119czna interwencja administratora.<\/p>\n<p class=\"\" data-start=\"270\" data-end=\"389\">System mo\u017ce automatycznie reagowa\u0107 na awari\u0119 nast\u0119puj\u0105cych zasob\u00f3w i przywraca\u0107 dost\u0119pno\u015b\u0107 systemu.<\/p>\n<table style=\"width: 100%; height: 138px;\">\n<thead>\n<tr style=\"height: 23px;\">\n<th style=\"height: 23px;\"><strong>Zas\u00f3b<\/strong><\/th>\n<th style=\"height: 23px;\"><strong>Dost\u0119pno\u015b\u0107<\/strong><\/th>\n<th style=\"height: 23px;\"><strong>Wsparcie przez<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"height: 23px;\">Po\u0142\u0105czenia sieciowe<\/td>\n<td style=\"height: 23px;\">Ci\u0105g\u0142a dost\u0119pno\u015b\u0107<\/td>\n<td style=\"height: 23px;\"><em><a href=\"#ipf\">IP-Failover<\/a><\/em><a href=\"#fbd\"><em>Failover bazy danych<\/em><\/a><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"height: 23px;\">System baz danych<\/td>\n<td style=\"height: 23px;\">Ci\u0105g\u0142a dost\u0119pno\u015b\u0107<\/td>\n<td style=\"height: 23px;\"><a href=\"#fbd\"><em>Failover bazy danych<\/em><\/a><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"height: 23px;\">Message-Server<\/td>\n<td style=\"height: 23px;\">Wysoka dost\u0119pno\u015b\u0107<\/td>\n<td style=\"height: 23px;\"><em><a href=\"#asw\">Alternatywny serwer wiadomo\u015bci (Message-Server)<\/a><\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"height: 23px;\">Dost\u0119py dialogowe<\/td>\n<td style=\"height: 23px;\">Wysoka dost\u0119pno\u015b\u0107<\/td>\n<td style=\"height: 23px;\"><em><a href=\"#fpsk\">Failover po stronie klienta<\/a><\/em><em><a href=\"#lb\">Load-Balancer<\/a><\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"height: 23px;\">Przetwarzanie w tle<\/td>\n<td style=\"height: 23px;\">Wysoka dost\u0119pno\u015b\u0107<\/td>\n<td style=\"height: 23px;\"><em><a href=\"#rkp\">Rozproszone kolejki przetwarzania<\/a><\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Poni\u017cej opisano funkcje zapewniaj\u0105ce dost\u0119pno\u015b\u0107 systemu.<\/p>\n<h4 id=\"ip-failover\" ><a id=\"ipf\"><\/a>IP-Failover<\/h4>\n<p>Po\u0142\u0105czenia sieciowe pomi\u0119dzy serwerem aplikacji, systemem bazy danych i przegl\u0105dark\u0105 s\u0105 niezb\u0119dne do dzia\u0142ania systemu (szczeg\u00f3\u0142y w rozdziale: <em><a href=\"#fpsk\">Failover po stronie klienta<\/a><\/em>). Je\u015bli jedno z po\u0142\u0105cze\u0144 sieciowych zostanie trwale przerwane i nie mo\u017cna go przywr\u00f3ci\u0107, system stanie si\u0119 niedost\u0119pny.<\/p>\n<p>Je\u015bli po\u0142\u0105czenie sieciowe mi\u0119dzy serwerem aplikacji a serwerem wiadomo\u015bci systemu nie powiedzie si\u0119, serwer aplikacji pozstaje aktywny przez 30 sekund i pr\u00f3buje ponownie nawi\u0105za\u0107 po\u0142\u0105czenie sieciowe. Je\u015bli po\u0142\u0105czenie z serwerem wiadomo\u015bci mo\u017ce zosta\u0107 przywr\u00f3cone w ci\u0105gu 30 sekund, serwer aplikacji nadal dzia\u0142a bez utraty danych. W tym przypadku gwarantowana jest ci\u0105g\u0142a dost\u0119pno\u015b\u0107. Je\u015bli po\u0142\u0105czenie nie mo\u017ce zosta\u0107 przywr\u00f3cone w ci\u0105gu 30 sekund, serwer aplikacji uruchamia si\u0119 ponownie.<\/p>\n<p>Failover po\u0142\u0105cze\u0144 sieciowych (IP-Failover) pomi\u0119dzy serwerami aplikacyjnymi systemu jest zawsze aktywny. Konfiguracja IP-Failover nie jest wymagana<\/p>\n<p>Je\u015bli w wyniku awarii po\u0142\u0105cze\u0144 sieciowych utracone zostan\u0105 tak\u017ce po\u0142\u0105czenia z baz\u0105 danych, system ERP zazwyczaj rozpoznaje t\u0119 awari\u0119 i inicjuje proces <a href=\"#fbd\"><em>Failover bazy danych<\/em><\/a>.<\/p>\n<p>Inne komponenty, takie jak system plik\u00f3w, kt\u00f3re nie s\u0105 pod kontrol\u0105 systemu, musz\u0105 r\u00f3wnie\u017c reagowa\u0107 na awari\u0119 sieci. Nale\u017cy upewni\u0107 si\u0119, czy u\u017cywany sprz\u0119t i oprogramowanie s\u0105 nadal dost\u0119pne po tymczasowej awarii sieci.<\/p>\n<p>Je\u015bli infrastruktura sieciowa mi\u0119dzy serwerami aplikacji lub systemem bazy danych ulegnie trwa\u0142ej awarii, system staje si\u0119 niedost\u0119pny.<\/p>\n<h4 id=\"failover-bazy-danych\" ><strong data-start=\"0\" data-end=\"24\" data-is-only-node=\"\"><span class=\"_fadeIn_4f9by_7\"><a id=\"fbd\"><\/a>Failover <\/span><span class=\"_fadeIn_4f9by_7\">bazy <\/span><span class=\"_fadeIn_4f9by_7\">danych<\/span><\/strong><span class=\"_fadeIn_4f9by_7\"><br data-start=\"24\" data-end=\"27\" \/><\/span><\/h4>\n<p>Wi\u0119kszo\u015b\u0107 system\u00f3w zarz\u0105dzania bazami danych (DBMS) posiada mechanizmy prze\u0142\u0105czania awaryjnego. Oznacza to, \u017ce kilka instancji bazy danych dzia\u0142a r\u00f3wnolegle w tej samej bazie danych lub na bazie danych z lustrzanym odbiciem. Je\u015bli instancja bazy danych nie jest ju\u017c dost\u0119pna z powodu b\u0142\u0119du, inna instancja bazy danych mo\u017ce przej\u0105\u0107 jej zadania. Cz\u0119sto istnieje kilka sposob\u00f3w konfiguracji prze\u0142\u0105czania awaryjnego dla systemu bazy danych w ramach DBMS. Konfiguracje obs\u0142ugiwane przez system mo\u017cna znale\u017a\u0107 w dokumentacji dotycz\u0105cej instalacji.<\/p>\n<p>System zarz\u0105dza wszystkimi po\u0142\u0105czeniami do instancji bazy danych dla ka\u017cdej bazy danych we wsp\u00f3lnej puli. Je\u015bli serwer aplikacji wymaga po\u0142\u0105czenia, a wszystkie po\u0142\u0105czenia w puli s\u0105 ju\u017c u\u017cywane, a maksymalna liczba po\u0142\u0105cze\u0144 w puli nie zosta\u0142a jeszcze osi\u0105gni\u0119ta, nowe po\u0142\u0105czenie jest otwierane i rejestrowane w puli. Je\u015bli baza danych zg\u0142osi b\u0142\u0105d, dane po\u0142\u0105czenie zostanie zamkni\u0119te.<\/p>\n<p>Je\u015bli system rozpozna na podstawie komunikatu o b\u0142\u0119dzie, \u017ce instancja bazy danych uleg\u0142a awarii, wszystkie otwarte nieaktywne po\u0142\u0105czenia z baz\u0105 danych s\u0105 zamykane i ponownie otwierane po okresie oczekiwania. <span style=\"font-size: revert; color: initial;\">System wielokrotnie pr\u00f3buje wznowi\u0107 po\u0142\u0105czenie, zwi\u0119kszaj\u0105c czas oczekiwania mi\u0119dzy pr\u00f3bami. Jest to uwzgl\u0119dnienie faktu, \u017ce DBMS mo\u017ce potrzebowa\u0107 czasu na pe\u0142ne prze\u0142\u0105czenie (failover). <\/span>Podczas pr\u00f3by ponownego nawi\u0105zania po\u0142\u0105czenia przez serwer aplikacyjny wszystkie aplikacje pr\u00f3buj\u0105ce uzyska\u0107 dost\u0119p do bazy danych s\u0105 wstrzymane.<\/p>\n<p class=\"\" data-start=\"1769\" data-end=\"2043\">Je\u015bli aplikacja wykonuje operacj\u0119 na po\u0142\u0105czeniu z baz\u0105 danych, a instancja bazy przestanie dzia\u0142a\u0107, operacja zostanie przerwana z komunikatem o b\u0142\u0119dzie. System ERP rozpoznaje ten komunikat i w miar\u0119 mo\u017cliwo\u015bci pr\u00f3buje ponownie wykona\u0107 operacj\u0119 za pomoc\u0105 nowego po\u0142\u0105czenia.<\/p>\n<p class=\"\" data-start=\"2045\" data-end=\"2109\">Jednak nast\u0119puj\u0105ce operacje nie mog\u0105 zosta\u0107 ponownie wykonane:<\/p>\n<ul>\n<li data-start=\"2113\" data-end=\"2171\">zako\u0144czenie transakcji bazy danych za pomoc\u0105 <strong data-start=\"2158\" data-end=\"2168\">Commit<\/strong><\/li>\n<li data-start=\"2113\" data-end=\"2171\">pobranie nast\u0119pnego rekordu w ju\u017c otwartym <strong data-start=\"2218\" data-end=\"2231\">ResultSet<\/strong><\/li>\n<li data-start=\"2113\" data-end=\"2171\">modyfikacje schematu bazy danych<\/li>\n<\/ul>\n<p class=\"\" data-start=\"2236\" data-end=\"2376\">Je\u015bli podczas tych operacji dojdzie do zerwania po\u0142\u0105czenia z baz\u0105 danych, aplikacja zostanie zazwyczaj zako\u0144czona z komunikatem o b\u0142\u0119dzie.<\/p>\n<p>Je\u015bli \u017cadne nowe po\u0142\u0105czenia z instancj\u0105 bazy danych nie mog\u0105 zosta\u0107 otwarte nawet po wielokrotnych pr\u00f3bach, serwer aplikacji musi zosta\u0107 zamkni\u0119ty r\u0119cznie. Problem z dost\u0119pem do instancji bazy danych musi zosta\u0107 naprawiony, a nast\u0119pnie serwer aplikacji mo\u017ce zosta\u0107 ponownie uruchomiony.<\/p>\n<p>Systemy zarz\u0105dzania bazami danych obs\u0142uguj\u0105 szeroki zakres opcji konfiguracji prze\u0142\u0105czania awaryjnego bazy danych. Dlatego wa\u017cne jest, aby przetestowa\u0107 prze\u0142\u0105czanie awaryjne bazy danych w systemie deweloperskim lub testowym.<\/p>\n<h4 id=\"alternatywny-serwer-wiadomosci-message-server\" ><a id=\"asw\"><\/a>Alternatywny serwer wiadomo\u015bci (Message-Server)<\/h4>\n<p>Serwer wiadomo\u015bci koordynuje wsp\u00f3\u0142prac\u0119 wszystkich serwer\u00f3w aplikacji w systemie. Je\u015bli \u017caden serwer wiadomo\u015bci nie jest uruchomiony, \u017caden inny serwer aplikacji nie mo\u017ce si\u0119 uruchomi\u0107 ani dzia\u0142a\u0107. Serwer wiadomo\u015bci jest zatem pojedynczym punktem awarii. Aby zwi\u0119kszy\u0107 niezawodno\u015b\u0107, mo\u017cna skonfigurowa\u0107 alternatywny serwer wiadomo\u015bci dla ka\u017cdego systemu. Alternatywny serwer wiadomo\u015bci mo\u017ce przej\u0105\u0107 zadania serwera wiadomo\u015bci po jego awarii bez konieczno\u015bci r\u0119cznej interwencji. Ten proces nazywany jest <em>Cold-Standby<\/em>.<\/p>\n<p><em>Cold-Standby<\/em> dzia\u0142a w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<ul>\n<li>serwer wiadomo\u015bci ko\u0144czy dzia\u0142anie, co powoduje zerwanie po\u0142\u0105cze\u0144 sieciowych ze wszystkimi serwerami aplikacyjnymi oraz z alternatywnym serwerem wiadomo\u015bci.<\/li>\n<li>wszystkie serwery aplikacji i alternatywny serwer wiadomo\u015bci uruchamiaj\u0105 si\u0119 ponownie i pr\u00f3buj\u0105 ponownie po\u0142\u0105czy\u0107 si\u0119 z serwerem wiadomo\u015bci.<\/li>\n<li>je\u015bli alternatywny serwer wiadomo\u015bci nie mo\u017ce nawi\u0105za\u0107 po\u0142\u0105czenia z serwerem wiadomo\u015bci w czasie oczekiwania, alternatywny serwer wiadomo\u015bci zmienia konfiguracj\u0119 systemu i rejestruje si\u0119 jako serwer wiadomo\u015bci. Oryginalny serwer wiadomo\u015bci staje si\u0119 w ten spos\u00f3b alternatywnym serwerem wiadomo\u015bci.<\/li>\n<li>wszystkie serwery aplikacji w systemie rozpoczynaj\u0105 prac\u0119 z nowym serwerem wiadomo\u015bci.<\/li>\n<li>system jest ponownie dost\u0119pny.<\/li>\n<\/ul>\n<p>Je\u015bli serwer wiadomo\u015bci ulegnie awarii, system jest ponownie dost\u0119pny po kilku minutach bez r\u0119cznej interwencji dzi\u0119ki funkcji Cold-Standby. U\u017cytkownicy systemu mog\u0105 ponownie zalogowa\u0107 si\u0119 do systemu po uruchomieniu alternatywnego serwera wiadomo\u015bci.<\/p>\n<p>W artkule <em>Panel System: System<\/em> opisano spos\u00f3b konfigurowania alternatywnych serwer\u00f3w wiadomo\u015bci.<\/p>\n<h4 id=\"failover-po-stronie-klienta\" ><a id=\"fpsk\"><\/a><strong data-start=\"0\" data-end=\"31\"><span class=\"_fadeIn_4f9by_7\">Failover <\/span><span class=\"_fadeIn_4f9by_7\">po <\/span><span class=\"_fadeIn_4f9by_7\">stronie <\/span><span class=\"_fadeIn_4f9by_7\">klienta<\/span><\/strong><\/h4>\n<p>System mo\u017ce zniwelowa\u0107 kr\u00f3tkotrwa\u0142e awarie po\u0142\u0105czenia sieciowego mi\u0119dzy przegl\u0105dark\u0105 a serwerem aplikacji. W przypadku braku interakcji ze strony klienta w zdefiniowanym oknie czasowym, system okresowo sprawdza po\u0142\u0105czenie komunikacyjne mi\u0119dzy serwerem aplikacji a klientem. Je\u015bli po\u0142\u0105czenie mo\u017ce zosta\u0107 ponownie nawi\u0105zane przez oryginaln\u0105 instancj\u0119 przegl\u0105darki internetowej w tym przedziale czasowym, u\u017cytkownik mo\u017ce kontynuowa\u0107 prac\u0119 w tym samym miejscu bez \u017cadnych ogranicze\u0144.<\/p>\n<p><strong data-start=\"570\" data-end=\"596\">Comarch ERP Enterprise<\/strong> oferuje funkcje umo\u017cliwiaj\u0105ce u\u017cytkownikowi \u0142atwiejsze wznowienie pracy po nieoczekiwanym zako\u0144czeniu dzia\u0142ania serwera aplikacyjnego oraz w przypadku d\u0142u\u017cszego przerwania po\u0142\u0105czenia pomi\u0119dzy przegl\u0105dark\u0105 a serwerem aplikacyjnym. Podczas ponownego logowania (w zale\u017cno\u015bci od ustawie\u0144 u\u017cytkownika) zostaje ponownie uruchomiona ostatnia aktywna aplikacja oraz ostatnio przetwarzana jednostka biznesowa. Dzi\u0119ki temu u\u017cytkownik po ponownym zalogowaniu odnajduje tak\u0105 sam\u0105 przestrze\u0144 robocz\u0105 jak przed wyst\u0105pieniem b\u0142\u0119du.<\/p>\n<p class=\"\" data-start=\"1205\" data-end=\"1273\">W systemie dla ka\u017cdego u\u017cytkownika rejestrowana jest historia:<\/p>\n<ul data-start=\"1274\" data-end=\"1381\">\n<li class=\"\" data-start=\"1274\" data-end=\"1307\">\n<p class=\"\" data-start=\"1276\" data-end=\"1307\"><span style=\"font-size: revert; color: initial;\">ostatnio u\u017cywanych aplikacji<\/span><\/p>\n<\/li>\n<li data-start=\"1274\" data-end=\"1307\">ostatnio przegl\u0105danych jednostek biznesowych<\/li>\n<\/ul>\n<p>Histori\u0119 mo\u017cna przegl\u0105da\u0107 w r\u00f3\u017cnych widokach, na przyk\u0142ad wg. aplikacji, jednostki biznesowej lub przedzia\u0142u czasowego. U\u017cytkownik mo\u017ce korzysta\u0107 z historii, aby szybko i \u0142atwo otwiera\u0107 ostatnio u\u017cywane aplikacje i edytowa\u0107 obiekty.<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Aplikacja do obs\u0142ugi zlece\u0144, taka jak aplikacja zlece\u0144 sprzeda\u017cy, przechowuje maksymalnie 16 pozycji. Oznacza to, \u017ce u\u017cytkownik wprowadzaj\u0105cy zam\u00f3wienie w aplikacji zlece\u0144 mo\u017ce by\u0107 zmuszony do ponownego wprowadzenia co najwy\u017cej 16 pozycji.<\/div><\/section>\n<p>W praktyce liczba niezapisanych pozycji jest zawsze stosunkowo niewielka, poniewa\u017c liczba instancji aplikacji w trybie <em>Nowy<\/em> lub <em>Edycja<\/em> na jedn\u0105 sesj\u0119 dialogow\u0105 jest ograniczona.<\/p>\n<h4 id=\"load-balancer\" ><a id=\"lb\"><\/a>Load balancer<\/h4>\n<p>Dost\u0119p do ka\u017cdego serwera aplikacji u\u017cywanego do przetwarzania dialogowego mo\u017cna uzyska\u0107 za po\u015brednictwem adresu URL. Adres URL jest zazwyczaj jednoznacznie przypisany do serwera aplikacji w obr\u0119bie sieci. Je\u015bli serwer aplikacji ulegnie awarii i nie zostanie ponownie uruchomiony, dost\u0119p dialogowy nie jest mo\u017cliwy za po\u015brednictwem adresu URL przypisanego do tego serwera aplikacji. U\u017cytkownicy, kt\u00f3rzy zwykle pracowali na tym serwerze aplikacyjnym, musz\u0105 skorzysta\u0107 z innego URL, aby po\u0142\u0105czy\u0107 si\u0119 z innym serwerem aplikacyjnym.<\/p>\n<p>Load Balancer jest dostarczany wraz z systemem. Load Balancer zapewnia jeden adres URL dost\u0119pu do systemu i rozdziela dost\u0119p do tego adresu URL na kilka serwer\u00f3w aplikacji. Rozk\u0142ad u\u017cytkownik\u00f3w do uruchomionych serwer\u00f3w aplikacji odbywa si\u0119 automatycznie, bior\u0105c pod uwag\u0119 status serwer\u00f3w aplikacji.<\/p>\n<p>Je\u015bli serwer aplikacji u\u017cywany do przetwarzania dialogowego ulegnie awarii i zostanie u\u017cyty load balancer, wszystkie niezapisane dane u\u017cytkownik\u00f3w, kt\u00f3rzy pracowali na tym serwerze aplikacji, zostan\u0105 utracone. U\u017cytkownicy mog\u0105 jednak zalogowa\u0107 si\u0119 ponownie bez u\u017cycia innego adresu URL i kontynuowa\u0107 prac\u0119. Jak opisano w rozdziale <em><a href=\"#fpsk\">Failover po stronie klienta<\/a><\/em>, system mo\u017ce automatycznie ponownie uruchomi\u0107 ostatnio otwart\u0105 aplikacj\u0119, w przypadku gdy u\u017cytkownik ponownie si\u0119 zaloguje i za\u0142aduje ostatnio edytowan\u0105 jednostk\u0119 biznesow\u0105.<\/p>\n<p>Gdy tylko SAS ulegnie awarii, load balancer w przejrzysty spos\u00f3b dystrybuuje dalsze przychodz\u0105ce \u017c\u0105dania po\u0142\u0105czenia do SAS, kt\u00f3re s\u0105 nadal dost\u0119pne, przyczyniaj\u0105c si\u0119 w ten spos\u00f3b do wysokiej dost\u0119pno\u015bci systemu.<\/p>\n<h4 id=\"rozproszone-kolejki-przetwarzania\" ><a id=\"rkp\"><\/a>Rozproszone kolejki przetwarzania<\/h4>\n<p>Zlecenia przetwarzania w rozproszonej kolejce przetwarzania s\u0105 obs\u0142ugiwane przez wszystkie serwery aplikacji, kt\u00f3re zapewniaj\u0105 worker\u00f3w (Threads) dla tej kolejki przetwarzania. Oczekuj\u0105ce zadania przetwarzania s\u0105 automatycznie dystrybuowane do uruchomionych serwer\u00f3w aplikacji. Je\u015bli jeden z serwer\u00f3w aplikacji przypisanych do kolejki przetwarzania rozproszonego nie jest dost\u0119pny, oczekuj\u0105ce zadania przetwarzania s\u0105 przetwarzane przez inne serwery aplikacji przypisane do kolejki przetwarzania rozproszonego. Zadania przetwarzania, kt\u00f3re mo\u017cna ponownie uruchomi\u0107 i kt\u00f3re by\u0142y przetwarzane na serwerze aplikacji w momencie awarii, s\u0105 automatycznie uruchamiane na innym serwerze roboczym w kolejce przetwarzania rozproszonego. Zadania przetwarzania, kt\u00f3rych nie mo\u017cna ponownie uruchomi\u0107, s\u0105 anulowane i musz\u0105 zosta\u0107 ponownie uruchomione r\u0119cznie.<\/p>\n<p>W artykule <em>Panel System: Serwer aplikacji<\/em> oraz <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/panel-system-kolejka-przetwarzania\/\"><em>Panel System: Kolejka przetwarzania<\/em><\/a> opisano spos\u00f3b konfigurowania kolejek przetwarzania rozproszonego.<\/p>\n<h3 id=\"instrukcje\" >Instrukcje<\/h3>\n<p>Wymagania dotycz\u0105ce dost\u0119pno\u015bci systemu s\u0105 wymaganiem indywidualnym. Wy\u017csza dost\u0119pno\u015b\u0107 wi\u0105\u017ce si\u0119 z wy\u017cszymi kosztami. Poni\u017cej opisano warianty konfiguracji, kt\u00f3re zwi\u0119kszaj\u0105 dost\u0119pno\u015b\u0107 systemu. Mo\u017cna te warianty \u0142\u0105czy\u0107 lub modyfikowa\u0107 w zale\u017cno\u015bci od potrzeb.<\/p>\n<h4 id=\"rozproszone-kolejki-przetwarzania\" >Rozproszone kolejki przetwarzania<\/h4>\n<p><strong>Wymagania<\/strong><\/p>\n<p class=\"\" data-start=\"45\" data-end=\"392\">Nale\u017cy zapewni\u0107 co najmniej dwa, a najlepiej wi\u0119cej niezale\u017cnych komputer\u00f3w, kt\u00f3re b\u0119d\u0105 przeznaczone wy\u0142\u0105cznie do przetwarzania w tle. Komputery powinny by\u0107 skonfigurowane w taki spos\u00f3b, aby w przypadku awarii jednego z nich pozosta\u0142e dysponowa\u0142y wystarczaj\u0105c\u0105 liczb\u0105 worker\u00f3w oraz moc\u0105 obliczeniow\u0105, aby utrzyma\u0107 ci\u0105g\u0142o\u015b\u0107 pracy.<\/p>\n<p class=\"\" data-start=\"394\" data-end=\"533\">Nale\u017cy pami\u0119ta\u0107, \u017ce przy jednej jednostce CPU na serwer aplikacyjny nie powinno si\u0119 tworzy\u0107 wi\u0119cej ni\u017c 3 worker\u00f3w do przetwarzania w tle.<\/p>\n<p><strong>Instrukcja<\/strong><\/p>\n<ul>\n<li data-start=\"560\" data-end=\"698\">Nale\u017cy utworzy\u0107 kolejk\u0119 przetwarzania bez serwera aplikacyjnego o nazwie <em>SERVICES\u00a0<\/em>dla us\u0142ug niezale\u017cnych od serwera aplikacyjnego.<\/li>\n<li data-start=\"701\" data-end=\"920\">Do kolejki przetwarzania <em>SERVICES<\/em>\u00a0nale\u017cy przypisa\u0107 tyle worker\u00f3w na tak wielu r\u00f3\u017cnych komputerach, aby w przypadku awarii jednego komputera pozosta\u0142o wystarczaj\u0105co du\u017co worker\u00f3w do uruchomienia wszystkich us\u0142ug.<\/li>\n<\/ul>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Je\u015bli planuje si\u0119 uruchomi\u0107 2 us\u0142ugi, nale\u017cy skonfigurowa\u0107 na 3 serwerach aplikacyjnych dzia\u0142aj\u0105cych na 3 r\u00f3\u017cnych komputerach po jednym workerze dla kolejki przetwarzania <em>SERVICES<\/em>.<\/div><\/section>\n<ul>\n<li class=\"\" data-start=\"1133\" data-end=\"1265\">\n<p class=\"\" data-start=\"1135\" data-end=\"1265\">nale\u017cy utworzy\u0107 kolejk\u0119 przetwarzania bez serwera aplikacyjnego o nazwie <em>USERJOBS\u00a0<\/em>dla kr\u00f3tkotrwa\u0142ych zlece\u0144 przetwarzania.<\/p>\n<\/li>\n<li class=\"\" data-start=\"1266\" data-end=\"1527\">\n<p class=\"\" data-start=\"1268\" data-end=\"1527\">do kolejki przetwarzania <em>USERJOBS\u00a0<\/em>nale\u017cy przypisa\u0107 tyle worker\u00f3w na tak wielu r\u00f3\u017cnych komputerach, aby w przypadku awarii jednego komputera pozosta\u0142o wystarczaj\u0105co du\u017co worker\u00f3w do przetworzenia wszystkich kr\u00f3tkotrwa\u0142ych zlece\u0144 w akceptowalnym czasie.<\/p>\n<\/li>\n<\/ul>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Je\u015bli do przetwarzania kr\u00f3tkotrwa\u0142ych zlece\u0144 potrzeba co najmniej 2 serwer\u00f3w aplikacyjnych z 2 workerami ka\u017cdy, nale\u017cy skonfigurowa\u0107 na 3 serwerach aplikacyjnych na 3 r\u00f3\u017cnych komputerach po 2 workery dla kolejki przetwarzania <em>USERJOBS<\/em>.<\/div><\/section>\n<ul>\n<li class=\"\" data-start=\"1795\" data-end=\"1926\">\n<p class=\"\" data-start=\"1797\" data-end=\"1926\">nale\u017cy utworzy\u0107 kolejk\u0119 przetwarzania bez serwera aplikacyjnego o nazwie <em>MASSJOBS\u00a0<\/em>dla d\u0142ugotrwa\u0142ych zlece\u0144 przetwarzania.<\/p>\n<\/li>\n<li class=\"\" data-start=\"1927\" data-end=\"2187\">\n<p class=\"\" data-start=\"1929\" data-end=\"2187\">do kolejki przetwarzania <em>MASSJOBS\u00a0<\/em>nale\u017cy przypisa\u0107 tyle worker\u00f3w na tak wielu r\u00f3\u017cnych komputerach, aby w przypadku awarii jednego komputera pozosta\u0142o wystarczaj\u0105co du\u017co worker\u00f3w do przetworzenia wszystkich d\u0142ugotrwa\u0142ych zlece\u0144 w akceptowalnym czasie.<\/p>\n<\/li>\n<\/ul>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Je\u015bli do przetwarzania d\u0142ugotrwa\u0142ych zlece\u0144 potrzeba co najmniej 1 serwera aplikacyjnego z jednym workerem, nale\u017cy skonfigurowa\u0107 na 2 serwerach aplikacyjnych na 2 r\u00f3\u017cnych komputerach po jednym workerze dla kolejki przetwarzania <em>MASSJOBS<\/em>.<\/div><\/section>\n<h4 id=\"alternatywny-serwer-wiadomosci\" >Alternatywny serwer wiadomo\u015bci<\/h4>\n<p><strong>Wymagania\u00a0<\/strong><\/p>\n<p>Nale\u017cy zapewni\u0107 co najmniej dwa niezale\u017cne komputery, na kt\u00f3rych mo\u017cna rozmie\u015bci\u0107 alternatywne serwery wiadomo\u015bci. Komputery te powinny by\u0107 odpowiednio zabezpieczone przed awari\u0105.<br data-start=\"238\" data-end=\"241\" \/>Podczas korzystania z alternatywnych serwer\u00f3w wiadomo\u015bci nale\u017cy sprawdzi\u0107, czy nie jest r\u00f3wnie\u017c wymagane failover bazy danych. Zar\u00f3wno baza danych, jak i serwery wiadomo\u015bci stanowi\u0105 pojedyncze punkty awarii, a przy por\u00f3wnywalnym sprz\u0119cie oba te komponenty maj\u0105 podobne prawdopodobie\u0144stwo awarii.<\/p>\n<p><strong>Instrukcja<\/strong><\/p>\n<ul>\n<li class=\"\" data-start=\"590\" data-end=\"662\">\n<p class=\"\" data-start=\"592\" data-end=\"662\">Nale\u017cy zarejestrowa\u0107 dwa serwery aplikacji na r\u00f3\u017cnych komputerach<\/p>\n<\/li>\n<li class=\"\" data-start=\"663\" data-end=\"750\">\n<p class=\"\" data-start=\"665\" data-end=\"750\">Nale\u017cy doda\u0107 oba serwery aplikacyjne jako alternatywne serwery wiadomo\u015bci w systemie<\/p>\n<\/li>\n<\/ul>\n","protected":false},"author":27,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-11225","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-uruchomienie"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/11225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/comments?post=11225"}],"version-history":[{"count":6,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/11225\/revisions"}],"predecessor-version":[{"id":30675,"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/ht_kb\/11225\/revisions\/30675"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/640\/index.php\/wp-json\/wp\/v2\/media?parent=11225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}