powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / транзакции в MDB
2 сообщений из 2, страница 1 из 1
транзакции в MDB
    #33940576
Tyo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите плз чайнику. Под веб-сферой запускаю сервлет, к-рый выполняет запрос к базе, а потом отправляет сообщение в очередь.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
InitialContext initialContext =  new  InitialContext();
DataSource ds = (DataSource)initialContext.lookup("java:comp/env/MetrRef");
Connection connection = ds.getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select SYSDATE from DUAL");
resultSet.next(); 
System.out.println(resultSet.getString("SYSDATE"));
statement.close();
connection.close();
......
QueueSender queueSender = queueSession.createSender(queue);
TextMessage message = queueSession.createTextMessage();
message.setText("Listen to me please");
queueSender.send(message);
.....

Это сообщение отлавливается c помощью MDB, к-рый в своем методе onMessage() выполняет запрос к той же базе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
onMessage() {
.........
InitialContext initialContext =  new  InitialContext();
DataSource ds = (DataSource)initialContext.lookup("java:comp/env/MetrRef");
Connection connection = ds.getConnection();
Statement statement = connection.createStatement(); // вот здесь
ResultSet resultSet = statement.executeQuery("select SYSDATE from DUAL");
resultSet.next();
System.out.println(resultSet.getString("SYSDATE"));
....

и вот в этом onMessage в строке "вот здесь" Веб-сфера ругается:

WTRN0063E: An illegal attempt to commit a one phase capable resource with existing two phase capable resources has occurred.
WTRN0086I: XAException encountered during prepare phase for transaction ... Local resources follow.
WTRN0089I: ...


Что я не так делаю и как этого избежать?
Заранее спасибо
...
Рейтинг: 0 / 0
транзакции в MDB
    #33940986
Tyo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам справился. Хозяйке на заметку: надо на сервере в источнике данных указать класс OracleXADataSource вместо OracleConnectionPoolDataSource
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / транзакции в MDB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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