powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Jboss 6.1 - куда копать?
10 сообщений из 10, страница 1 из 1
Jboss 6.1 - куда копать?
    #38079346
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть код в stateless-бине.
В нём возникает (генерируемое мною) RemoteException.
В бине я его для профилактики отслеживаю (хотя не должно иметь значения).
Код: sql
1.
2.
3.
4.
    }catch (RemoteException e){
      log.....
      throw e;
    }



В результате когда дело доходит до менеджера транзакций
(CMTTxInterceptor), то у объекта класса ApplicationExceptionImpl признак
rollback не стоит, setRollbackOnly() не вызывается и транзакция комититься.

Вопрос- куда копать, чтобы найти ошибку? Сейчас я просто поставил
Код: sql
1.
      em.getTransaction().setRollbackOnly();


перед пробросом исключения. Но как-то неуютно. Обычно сам факт
завершения метода с exception приводил к откату транзакции. А тут
неясно- может ещё где такое же вылезет?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079382
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно отсутствует User-Transaction? Т.е. управление контейнером?
Странно, что нарисовался ApplicationExceptionImpl. Есть два типа Exception в JEE - System и Application. Первые приводят к rollback по-умолчанию. Вторые не приводят. Но можно попробовать @ApplicationException(rollback=true)
RemoteException относится к System.
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079386
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, GKS_Samara!

> em.getTransaction().setRollbackOnly();

Вру. Нельзя так.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079387
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты дебажишь CMTTxInterceptor, то посмотри там ниже. Уже после обработки ApplicationException, идёт проверка является ли Exception - System.
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079408
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Blazkowicz!

> Есть два типа
> Exception в JEE - System и Application. Первые приводят к rollback
> по-умолчанию. Вторые не приводят. Но можно попробовать
> @ApplicationException(rollback=true)
> RemoteException относится к System.

Всё, понял, спасибо!

У меня был наследник RemoteException. Поставил в описании класса
@ApplicationException(rollback=true)
и всё заработало.

Не думал, что существенно то, что у меня наследник класса
RemoteException, а не он сам.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079415
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraНе думал, что существенно то, что у меня наследник класса
RemoteException, а не он сам.

Хм, может какой-то не тот RemoteException используется при наследовании? Потому что наследники должны так же считаться системными.
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079422
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подебаж CMTTxInterceptor, там нормально instanceof для RemoteException отрабатывется.
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079444
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Blazkowicz!

> Хм, может какой-то не тот RemoteException используется при наследовании?

Ну вот весь код.
Пока не поставил @ApplicationException(rollback=true) - не ролбэчилось
Дебажить CMTTxInterceptor пойду позже...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
import java.rmi.RemoteException;

import javax.ejb.ApplicationException;

@ApplicationException(rollback=true)
public class CRemoteException extends RemoteException {
  private static final long serialVersionUID = 5677830305379655371L;

  public CRemoteException() {
    super();
  }

  public CRemoteException(String s, Throwable cause) {
    super(s, cause);
  }

  public CRemoteException(String s) {
    super(s);
  }

  @Override
  public String getMessage() {
    // Какой дебил это писал? Я про super.getMessage()
    Throwable detail = this.detail;
    this.detail = null;
    String message = super.getMessage();
    this.detail = detail;
    return message;
  }

  @Override
  public String getLocalizedMessage() {
    return getMessage();
  }

}



--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079464
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara
Код: java
1.
2.
3.
4.
import java.rmi.RemoteException;
import javax.ejb.ApplicationException;

public class CRemoteException extends RemoteException {


Тогда это более чем странно. CMTTxInterceptor вроде правильно реализован. Может я какую-то более свежую версию смотрел.
RemoteException в JRE лежит, он в другом jar-е не мог притаиться.

GKS_Samara
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
  @Override
  public String getMessage() {
    // Какой дебил это писал? Я про super.getMessage()
    Throwable detail = this.detail;
    this.detail = null;
    String message = super.getMessage();
    this.detail = detail;
    return message;
  }



В комитах в репозитории написано какой.
...
Рейтинг: 0 / 0
Jboss 6.1 - куда копать?
    #38079694
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Blazkowicz!

> В комитах в репозитории написано какой.

Это были эмоции при написании, застывшие в комментах :)
Просто я на сервере пишу туда код ошибки, на клиенте по коду нахожу в
ресурсах текст (многоязычность и т.п.), а тут getMessage() всякую фигню
выдаёт :)

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Jboss 6.1 - куда копать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]