Jesteśmy w trakcie aktualizacji z JBoss 6 do JBoss 7. Charakter naszej aplikacji ma oddzielną instancję bazy danych na klienta, a także konfigurację podstawową baza danych wspólna dla wszystkich klientów. Często mamy kod EJB, który przynajmniej odwołuje się do podstawowej bazy danych plus dane pojedynczego klienta w jednym wywołaniu, a nawet do ogólnych procesów w tle, które przechodzą przez wszystkich klientów.Błąd podczas pobierania połączeń w jboss do wielu baz danych, nawet jeśli nie ma transakcji
W JBoss 6 problem został rozwiązany bez problemu, ustawiając metodę z atrybutem transakcji NOT_SUPPORTED. Jednak JBoss 7 narzeka to z powodu następującego błędu:
ARJUNA012140: Adding multiple last resources is disallowed. Trying to add LastResourceRecord(XAOnePhaseResource([email protected][connectionListener=d3ce980 connectionManager=25b47a05 warned=false currentXid=< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a2c28d1:-5a4c1f9a:504689c9:11, node_name=1, branch_uid=0:ffff0a2c28d1:-5a4c1f9a:504689c9:14, subordinatenodename=null, eis_name=unknown eis name >])), but already have LastResourceRecord(XAOnePhaseResource([email protected][connectionListener=1a05d94a connectionManager=135f1cfe warned=false currentXid=< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a2c28d1:-5a4c1f9a:504689c9:11, node_name=1, branch_uid=0:ffff0a2c28d1:-5a4c1f9a:504689c9:13, subordinatenodename=null, eis_name=unknown eis name >]))
Jak możemy obejść ten problem bez owijania każde wezwanie do różnych baz danych w osobnym wezwanie EJB i transakcji. Czy istnieje sposób, aby rzeczywiście wyłączyć zarządzanie transakcjami JBoss w wywołaniu EJB lub coś podobnego?
Uwaga: to pytanie zostało zmodyfikowane po rozpoczęciu nagrody, w oparciu o dodatkowe odkrycie, aby wyostrzyć koncentrację na konkretnym problemie i usunąć inne możliwości, które zostały wykluczone.
Znalazłem to. https://venugopaal.wordpress.com/2009/02/11/jboss5-adding-multiple-last-resources-is-disallowed/. Związane z? – pd40