Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> блокировка при коммите в несколько БД, проблема настройки 2 БД в ejb3 
:(
    Опции темы
coolin
Дата 14.1.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.9.2006

Репутация: нет
Всего: нет



происходит блокировка БД при записи в разные базы из одной транзакции. 
Похоже на дедлок. После остановки сервера - все откатывается.

Если оставить действие только с одной БД - все ок, также не объединяя действия в одну транзакцию - все ок.


jboss 4.2.2, Hibernarte 3.2.5.ga



Код

...
@Stateless
@Local(value = ProcessingLocal.class)
public class ProcessingBean implements ProcessingLocal
{
    @EJB(beanName = "Data1Bean", beanInterface = Data1Local.class)
    private Data1Local data1;
    @EJB(beanName = "Data2Bean", beanInterface = Data2Local.class)
    private Data2Local data2;

    public void test() throws Exception
    {
            Entity1 e1 = new Entity1();
            data1.merge(e1);

            Entity2 e2 = new Entity2();
            data2.merge(e2);
     }        
}



data-ds.xml

Код

<datasources>

    <xa-datasource>
        <jndi-name>data1</jndi-name>
        <xa-datasource-class>com.informix.jdbcx.IfxXADataSource</xa-datasource-class>        
        <xa-datasource-property name="IfxIFXHOST">serv1</xa-datasource-property>       
        <xa-datasource-property name="IfxIFX_LOCK_MODE_WAIT">100</xa-datasource-property>
        <xa-datasource-property name="PortNumber">6666</xa-datasource-property>
        <xa-datasource-property name="DatabaseName">data1</xa-datasource-property>
        <xa-datasource-property name="ServerName">main</xa-datasource-property>
        <xa-datasource-property name="User">informix</xa-datasource-property>
        <xa-datasource-property name="Password">informix</xa-datasource-property>
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>

        <min-pool-size>5</min-pool-size>
        <max-pool-size>1000</max-pool-size>
       
        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.InformixExceptionSorter
        </exception-sorter-class-name>

        <metadata>
            <type-mapping>InformixDB</type-mapping>
        </metadata>

    </xa-datasource>

    <xa-datasource>
        <jndi-name>data2</jndi-name>
        <xa-datasource-class>com.informix.jdbcx.IfxXADataSource</xa-datasource-class>        
        <xa-datasource-property name="IfxIFXHOST">serv1</xa-datasource-property>
        <xa-datasource-property name="IfxIFX_LOCK_MODE_WAIT">100</xa-datasource-property>
        <xa-datasource-property name="PortNumber">6666</xa-datasource-property>
        <xa-datasource-property name="DatabaseName">data2</xa-datasource-property>
        <xa-datasource-property name="ServerName">main</xa-datasource-property>
        <xa-datasource-property name="User">informix</xa-datasource-property>
        <xa-datasource-property name="Password">informix</xa-datasource-property>
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>

        <min-pool-size>5</min-pool-size>
        <max-pool-size>1000</max-pool-size>
       
        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.InformixExceptionSorter
        </exception-sorter-class-name>

        <metadata>
            <type-mapping>InformixDB</type-mapping>
        </metadata>

    </xa-datasource>

</datasources>


in unit 1
persistence.xml
Код


<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
          http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
        version="1.0">

    <persistence-unit name="data1" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/data1</jta-data-source>        
        <properties>            
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.transaction.factory_class" value="org.hibernate.ejb.transaction.JoinableCMTTransactionFactory"/>
            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
        </properties>
    </persistence-unit>

</persistence>



in unit 2
persistence.xml
Код


<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
          http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
        version="1.0">

    <persistence-unit name="data2" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/data2</jta-data-source>        
        <properties>            
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.transaction.factory_class" value="org.hibernate.ejb.transaction.JoinableCMTTransactionFactory"/>
            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
        </properties>
    </persistence-unit>

</persistence>

[/code]
PM MAIL   Вверх
coolin
Дата 15.1.2008, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.9.2006

Репутация: нет
Всего: нет




помогли параметры:

<track-connection-by-tx/>
<isSameRM-override-value>false</isSameRM-override-value>
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0394 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.