Приложение не загружается после включения сохранения сеанса на основе jdbc

Я делаю POC с выпуском JBoss EAP 7.1, в котором я включил сохранение сеансов на основе БД, я проверил с сохранением по умолчанию менеджера кэша, и он работает хорошо, но каким-то образом он не сохраняет никаких данных сеанса в схеме базы данных, однако таблица создается в начале сервера, который я мог видеть, для этого я начинаю с примера counter.war, который присутствует в базе знаний Redhat. Я использую базу данных Oracle 12cR1.

Еще одна вещь, я также не могу видеть приложение из консоли, то же самое, когда я запускаю команду CLI для чтения ресурса. Когда я пытаюсь увидеть развертывание в разделе Развертывания, он просто жалуется

Невозможно загрузить развертывания

Неожиданный HTTP-ответ: 500 Request { "operation" => "read-children-resources", "address" => undefined, "child-type" => "deploy", "include-runtime" => true, "recursive" => true } Ответ Внутренняя ошибка сервера { "output" => "fail", "roll-back" => true }

Моя конфигурация сервера в standalone-ha.xml для хранилища jdbc выглядит следующим образом:

        <cache-container name="server" aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server">

            <transport lock-timeout="60000"/>

            <replicated-cache name="default">

                <transaction mode="BATCH"/>

            </replicated-cache>

        </cache-container>

        <cache-container name="web" default-cache="jdbc" module="org.wildfly.clustering.web.infinispan">

            <transport channel="ee" lock-timeout="60000"/>

            <local-cache name="concurrent">

                    <file-store passivation="true" purge="false"/>

            </local-cache>

            <invalidation-cache name="jdbc">

                <binary-keyed-jdbc-store data-source="Session" dialect="ORACLE" fetch-state="false" passivation="false" preload="false" purge="false" shared="true" singleton="false">

           <!-- <transaction mode="BATCH"/>-->

            <property name="database-Type">

                        oracle

                    </property>

                    <binary-keyed-table prefix="sess">

                       <id-column name="ID" type="VARCHAR2(500)"/>

                       <data-column name="DATUM" type="BINARY"/>

                       <timestamp-column name="MAXINACTIVE" type="NUMBER"/>

                       <timestamp-column name="LASTACCESS" type="NUMBER"/>

                       <timestamp-column name="VERSION" type="NUMBER"/>

                    </binary-keyed-table>

                </binary-keyed-jdbc-store>

            </invalidation-cache>

        </cache-container>

        <cache-container name="ejb" aliases="sfsb" default-cache="dist" module="org.wildfly.clustering.ejb.infinispan">

            <transport lock-timeout="60000"/>

            <distributed-cache name="dist">

                <locking isolation="REPEATABLE_READ"/>

                <transaction mode="BATCH"/>

                <file-store/>

            </distributed-cache>

Созданная таблица также выглядит так:

TName


TABTYPE CLUSTERID


BIN $ cLKr2H7 + eQ3gU1J2QgonwQ == $ 0

ТАБЛИЦА

SESS_counter_war

ТАБЛИЦА

sess_counter_war

ТАБЛИЦА

К вашему сведению, просто для моего удовольствия я попытался изменить префикс в standalone-ha.xml, поэтому вы могли видеть две таблицы.

Пожалуйста, ведите меня, если я делаю что-то не так.

1 ответ

Это довольно поздний ответ, почти год спустя, но, как говорится, "Лучше поздно, чем никогда":)

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

  1. Использование распределенного кеша вместо недействительного кеша.
  2. Использование двоичного хранилища вместо хранилища на основе строк.
  3. Недопустимый столбец и типы данных.

Обратитесь к исходному сообщению и ответьте здесь - https://developer.jboss.org/thread/278374

В EAP 7.1 вы должны настроить постоянство сеанса, используя string-keyed-jdbc-store Вместо того, чтобы использовать binary-keyed-jdbc-store что не рекомендуется в этой версии.

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