Как настроить EJB timerDataSource в Open Liberty - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь развернуть приложение Java EE, содержащее несколько служб таймера EJB (с постоянством = true).Сервер жалуется, что источник данных не определен:

Caused by: javax.ejb.EJBException: See nested exception; nested exception is: java.lang.IllegalStateException: The ejbPersistentTimer feature is enabled, but the defaultEJBPersistentTimerExecutor persistent executor cannot be resolved. The most likely cause is that the DefaultDataSource datasource has not been configured. Persistent EJB timers require a datasource configuration for persistence.

Включена функция ejbPersistentTimer-3.2.Я не могу найти пример, как настроить такой источник данных в файле server.xml

Я пытался:

<dataSource id="timerDataSource" jndiName="jdbc/timerDataSource">
</dataSource>

<databaseStore id="EJBTimerDatabaseStore"
    tablePrefix="EJBTimer_" dataSourceRef="timerDataSource" />
<persistentExecutor
    id="defaultEJBPersistentTimerExecutor"
    taskStoreRef="EJBTimerDatabaseStore" />

Но это, кажется, не достаточно?Мне тоже нужно было активировать DerbyDB как функцию?

1 Ответ

2 голосов
/ 31 мая 2019

Похоже, что в вашей <dataSource> конфигурации отсутствует несколько элементов:

  1. A <jdbcDriver>, который указывает на jar драйвера JDBC, который соответствует используемой вами БД
  2. Элемент <properties>, который идентифицирует свойства БД, такие как имя хоста, порт и имя БД сервера БД.

Поскольку вы упомянули об использовании DerbyDB, вот пример того, как может выглядеть конфигурация Derby:

<dataSource id="timerDataSource" jndiName="jdbc/timerDataSource">
    <jdbcDriver libraryRef="DerbyLib"/>
    <properties.derby.embedded databaseName="${server.config.dir}/data/EJBTimerDB" createDatabase="create"/>
</dataSource>

<library id="DerbyLib">
    <fileset dir="${server.config.dir}/derbyDriverDir/"/>
</library>

Для получения дополнительной информации о настройке источников данных в Liberty, посмотрите этот документ:
Настройка подключения к реляционной базе данных в Liberty

...