Korzyści (i wskazówki) z aktualizacji z JBoss 4.2.x do JBoss 5.x, 6.x, 7.x i WildFly 8.x?

Proszę założyć, że nie muszę się martwić o czas i koszty rozwoju: interesują mnie ogólne korzyści techniczne(poprawa wydajności? ulepszone interfejsy API?) i nowych funkcji.

Obecnie pracuję nad produktami używającymi 4.2.x, a my rozważamy poważną zmianę dla wersji, które są długo przed nami i muszą się zbiegać.

Krótko przyjrzałem się notatkom do wydania każdej wersji i kilku artykułom na temat każdego wydania dla 5.x, 6.x, 7.x i 8.X. ale ja chętnie uzyskam informacje zwrotne z pierwszej ręki od osób, które dokonały zmiany.

Zauważyłem, że są pewne ważne zmiany dotyczące przesyłania wiadomości (przejście z JBoss MQ na JBoss Messenging), a to dla JBoss 7.x wydaje się, że zmienia nieco swoją warstwę konfiguracyjną. Po przejściu na JBoss / WildFly 8 dzieje się o wiele więcej.x.

Polecam dobre artykuły wskazujące na pułapki, jeśli możesz. Znalazłem kilka dla migracji do JBoss 5.x, ale nie tyle za 6.x lub nawet 7.x, a ktoś inny ocenia 8.x dla nas. Zachęcamy do polecania alternatyw, jak również, jeśli uważasz, że są one istotne, choć wolałbym skupić się tylko na JBoss.

Dla informacji, używamy mieszankę JPF-i OSGi-enabled (za pomocą Eclipse Equinox) systemy oparte na wtyczkach, z klientami opracowane w Swing (niektóre wdrożone przez WebStart).

Update: chociaż to pytanie przyniosło już kilka świetnych odpowiedzi, myślę, że zasługuje na aktualizację dla WildFly (a właściwie naszego projekty wewnętrzne opóźniły przejście z 4.2.x do 7.x jak pierwotnie planowano czekać na WildFly). Nowe myśli i odpowiedzi są mile widziane.

Author: haylem, 2011-06-01

5 answers

Uaktualniłem z Jbossa 4 do 5 i z doświadczenia najważniejsze są:

  • JBoss 5 (oraz 6 i 7) nie są tak wyrozumiałe jak JBoss 4 z plikami XML. Musisz upewnić się, że wszystkie pliki XML deskryptora wdrożenia są poprawne. Możesz używać DTD w niektórych plikach-zalecam ich aktualizację, aby zamiast tego używać XML schema.
  • niektóre biblioteki mogą powodować niezgodności. Może to być szczególnie prawdziwe, jeśli korzystasz z usług internetowych i / lub wykonujesz XML parsowanie
  • Jeśli prekompilujesz swoje JSP w JBoss 4, prawdopodobnie nie będziesz w stanie tego zrobić w JBoss 6/7.
  • JBoss 4 i 5 używają różnych implementacji kolejki komunikatów. Jeśli masz zdefiniowane kolejki wiadomości lub tematy, musisz je przedefiniować.
  • JBoss TreeCache nie jest już używany. Jeśli używasz tego do celów buforowania, musisz zmienić, aby zamiast tego użyć nowej pamięci podręcznej JBoss.
  • JBoss 5 security jest inny. Jeśli twoi zdalni klienci wymagają bezpiecznego dostępu do JBoss, będzie musiał skonfigurować je inaczej.

Niektóre przydatne zasoby to:

Http://java.dzone.com/articles/migrating-jboss-4-jboss-5 http://venugopaal.wordpress.com/2009/02/02/jboss405-to-jboss-5ga

Oficjalnie JBoss 6 jest certyfikowany tylko dla profilu Java EE Web, więc jeśli używasz "starszych" funkcji, takich jak EJB 2.x, potencjalnie nie będą obsługiwane w przyszłości. W zależności od cyklu życia aplikacji może to być problem. JBoss 6 obsługuje obecnie w pełni EJB2.1, ale nie jest na to certyfikowany.

Odkryłem również, że JBoss 5 obsługuje pamięć o wiele lepiej niż JBoss 4. Z JBoss 4 widzę dużo więcej błędów PermGen niż z JBoss 5.

 24
Author: Dave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-03 17:03:46

mogę mówić tylko z doświadczenia produkcyjnego z JBoss 5.1.0 i trochę badania wersji 6.

JBoss 5 to Java EE 5 , A JBoss 6 i 7 to Java EE 6 . Różnice w funkcjach API są najlepiej udokumentowane w tych specyfikacjach. JBoss 6 prawdopodobnie ma bardzo krótki okres przydatności do użycia; jest certyfikowany tylko dla Java EE 6 web profile , a poprawki są ukierunkowane na wersję 7(w jej trzeciej wersji beta w momencie pisania).

I think you ' d get better odpowiedzi na forum społeczności JBoss.

 9
Author: McDowell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-01 19:35:53

Zaktualizowaliśmy JBoss jako 5 do JBoss jako 7 i idziemy w kierunku WildFly jako 8.1. W tej chwili nie możemy przenieść do 8, ponieważ nie ma serii mq JMS 2 RAR.

Niektóre z różnic:

  • konfiguracja jest o wiele lepsza i prostsza. Nie jest już rozłożony na 20 plików XML, w których konfigurujesz aspekty w plikach XML. Zamiast tego wszystko jest jednym centralnym miejscem. Wszystkie porty są skonfigurowane w jednym centralnym miejscu, nie ma już pliku XSL, który przekształca serwer.xml. Ty może mieć sens w pliku konfiguracyjnym bez znajomości szczegółów implementacji klas. Trudno to docenić, jeśli nigdy nie skonfigurowałeś JBoss 5.x.
  • Model ładowania klas wygląda na zdrowy i masz dużą kontrolę poprzez jboss-deployment-structure.xml
  • scentralizowane logowanie (Slf4j, JUL, JCL, Log4j,...) jest naprawdę ładne.
  • biblioteka klienta EJB wygląda znacznie lepiej. Jest do 10 słoików z 20, połowa z nich to nawet Pakiety OSGi (nasz klient jest aplikacja Eclipse RCP).
  • bałagan z zależnościami Mavena klienta EJB zniknął, zamiast tego dostajesz BOM POM.
  • dostajesz BOM POM dla API serwera.
  • szybsze uruchamianie i mniejsze zużycie pamięci. Wdrażamy 80 EJB i serię mq RAR w 6 sekund bez większego strojenia. Nasz zbiór danych na żywo jest gdzieś powyżej 200 MB.
  • folder wdrożeń jest domyślnie pusty
  • (Brak) jakości XNIO jest przerażający. W 7.x służy tylko do REMOTINGU EJB i trafiliśmy na kilka pluskwy zatrzaskowe (deadlocks, double free, Socket handle leaks,...). W 8.x jest on używany również dla servletów zamiast Tomcat. W undertow wciąż naprawiane jest wiele bardzo podstawowych błędów serwletów.

Zmiany, które musieliśmy wykonać w naszej aplikacji:

  • Zmień nazwy JNDI na EE 6 standaryzowane nazwy
  • migrate from JBoss Cache to Infinispan (część naszego kodu została przeniesiona do flat API, niektóre części nadal używają tree API)
  • Bezpieczeństwo jest nieco mniej elastyczne (nie można już naprawiać uwierzytelnionych i nieautoryzowanych połączeń)
  • jakiś okropny kod, który opierał się na szczegółach zdalnego JNDI
  • Konfiguracja klienta EJB jest inna
  • wszystkie skrypty do instalacji, wdrażania, uruchamiania, zatrzymywania, ...
  • ExternalContext zniknął, musieliśmy zastąpić go innym podejściem
  • zastąpiliśmy MBeans w SARs @StartUp EJBs
  • niektóre brzydkie hacki do kokonu

AS 7.seria x ma dużo błędów z poprawkami dostępnymi tylko w serii EAP. Jeśli chcesz iść z 7.x zamiast 8.x zdecydowanie zalecamy zakup EAP 6.

 5
Author: Philippe Marschall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-21 13:02:24

Oto ciekawy wątek o Jbossie AS 7 i future, wspominając również o problemach z AS 5 I AS 6:

Http://community.jboss.org/message/613171

 0
Author: Vadzim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-19 11:18:51

Chciałem tylko zwrócić na to uwagę każdego, kto może borykać się z problemem nadęcia PermGen po aktualizacji do najnowszej. Mikrokontainer JBoss-6 próbuje skanować adnotacje specyficzne dla Jbossa, ładując klasy ze wszystkich słoików w ścieżce klas podczas uruchamiania. Powoduje to wzdęcia PermGen, gdy zaczyna ładować wszystkie niechciane klasy. Aby zmniejszyć ilość skanowania, Mikrokontainer dostarcza kolejny hook deskryptora, za pomocą JBoss-scanning.xml. Dodaj to ' JBoss-scanning.xml" do WEB - INF Inside WARs i ass ' JBoss-scanning.xml " do META-INF wewnątrz uszu.

<scanning xmlns="urn:jboss:scanning:1.0">

    <!-- Purpose: Disable scanning for annotations in contained deployment. -->

</scanning>
 0
Author: karthik m,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-29 18:52:54