Ошибка при получении соединения JDBC: не удалось подключиться к транзакции при входе в мета-осведомленный объект - PullRequest
3 голосов
/ 30 сентября 2010

У меня проблема с получением соединения JDBC в EJB SessionBean.Ошибка:

org.jboss.util.NestedSQLException: Не удалось подключиться к транзакции при входе в мета-осведомленный объект !;- вложенный throwable: (javax.transaction.SystemException: java.lang.Throwable: невозможно подключить ресурс, см. предыдущие предупреждения.

Я думал, что это происходит, потому что у меня уже есть открытое соединение сдругой источник данных, поэтому я настроил источник данных XA , чтобы избежать проблем с транзакциями, но он вообще не работает, поэтому я не знаю, делаю ли я что-то неправильно в своем коде. Вот оно:

  try 
    {
        Properties p = new Properties();
        p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
        p.put(Context.PROVIDER_URL,"jnp://localhost:11099");
        p.put("java.naming.factory.url.pkgs", "org.jboss.naming");

        InitialContext ic = new InitialContext(p);

        DataSource dataSource = (DataSource)ic.lookup("java:/jdbc/etlreportservices");

        return dataSource.getConnection();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }

Исключение выдается при вызове dataSource.getConnection().

Ответы [ 4 ]

6 голосов
/ 27 марта 2015

Можете попробовать, для старых Jboss-es: /server/all/conf/jbossjta-properties.xml

<properties depends="arjuna" name="jta">
   <property name="com.arjuna.ats.jta.allowMultipleLastResources" value="true"/>
</properties>

для новых: standalone \ configuration \ standalone.xml (или другой используемый вами)

<system-properties>
    <property name="com.arjuna.ats.arjuna.allowMultipleLastResources"   value="true"/>
</system-properties>  
1 голос
/ 21 апреля 2011

Я заметил это в тех случаях, когда время ожидания истекло. FWIW.

0 голосов
/ 22 июля 2013

При использовании JBoss 6.0.0 сообщение об ошибке немного отличается:

Причина: org.jboss.resource.JBossResourceException: Не удалось подключиться к транзакции при вводе объекта с поддержкой мета!*


По причине: цитата из здесь

В рамках одного и того же процесса были сделаны два вызова для разных не-XA данныхисточники.Это не поддерживается по умолчанию в JBoss.

На этом же сайте показано решение, которое не было применимо для JBoss 6.0.0.


Общее решение - изменить все источников данных, участвующих в одной и той же транзакции, в XA источников данных .Затем он работает как с управляемыми компонентом , так и с управляемыми контейнером транзакциями .Например, это решение предлагается в CodeRanch , а также в форуме JBoss .

0 голосов
/ 30 сентября 2010

Я изменил свой менеджер транзакций на bean-управляемый, и он отлично работает.

...