Инъекция кластерных источников данных Weblogic

У нас действительно небольшое приложение: 2 веб-сервиса, один источник данных с целевым значением "кластер". Это приложение развернуто в WebLogic 12.2.1 с несколькими другими приложениями. Все они находятся в одном кластере, у каждого есть собственный источник данных (хотя одно из приложений имеет источник данных, который указывает на одну и ту же базу данных, но другого пользователя).

Все приложения похожи на взаимодействие с базой данных. Мы используем JPA с Hibernate 5.2.10 Final, впрыскивать EntityManager с помощью @PersistenceContext(unitName = "ourUnit"), Каждое приложение корректно работает на обоих узлах cluser.

За исключением того, о котором этот вопрос. Обычно он работает только на одном узле, но не на одном узле. Если он работает на node_1, то после перезапуска только на node_2. Однажды нам удалось поработать на обоих узлах до следующей перезагрузки. Мы получаем Caused by: javax.naming.NameNotFoundException: While trying to look up comp/env/com.our.domain.db.dao.OurDaoImpl/entityManager,

В Deployments -> app -> Configuration -> Persistence наша единица настойчивости там, и это выглядит хорошо.

Мы перепробовали все, что приходит на ум: изменение цели с кластера на оба узла, изменение параметров транзакции, изменение самого приложения (хотя я не думаю, что с этим что-то не так).

Все источники данных определены одинаково, и тестирование источника данных через консоль weblogic прошло успешно. Также исключение составляет около EntityManager сам не data-source ourds not found или что-то в этом роде, было несколько раз по пути, и это, как правило, признак того, что что-то не так с источником данных, никогда не было EntityManager один.

Я нашел одну вещь: в PL/SQL Developer, когда я подключаюсь к базе данных и захожу в Tools -> Sessions узел, который в данный момент не работает, имеет что-то вроде этого:

update user$ set spare6=DECODE(to_char(:2, 'YYYY-MM-DD'), '0select decode(upper(failover_method), NULL, 0 , 'BASIC', 1,

И несколько других вопросов, которые я не понимаю. У того, который работает, есть только первый запрос, а затем запросы, которые я вызываю через веб-сервисы. Это может быть проблемой здесь, хотя я понятия не имею, что вызывает это и как это исправить (и даже что это означает на самом деле).

Здесь persistence.xml:

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

    <persistence-unit name="ourUnit" transaction-type="JTA">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>ourds</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver" />
            <property name="hibernate.show_sql" value="false" />
            <property name="hibernate.format_sql" value="false" />
            <property name="hibernate.id.new_generator_mappings" value="true" />
            <property name="hibernate.jdbc.batch_size" value="10" />
            <property name="order_inserts" value="true" />
            <property name="hibernate.generate_statistics" value="false" />
        </properties>
    </persistence-unit>

</persistence>

Я ценю любую помощь, даже то, что, возможно, не имеет смысла.

Weblogic 12.2.1 - Oracle 12c - Hibernate 5.2.10 Final

0 ответов

Другие вопросы по тегам