Ответ 1
1. Пример настройки базы данных
-
Я использую MySQL для своей базы данных.
-
Создайте таблицу
EJB__TIMER__TBL
из{GF_HOME}/glassfish/lib/install/databases/ejbtimer_{DB_ENGINE}.sql
DB_ENGINE = например, MySQL:
CREATE TABLE EJB__TIMER__TBL (
`CREATIONTIMERAW` BIGINT NOT NULL,
`BLOB` BLOB,
`TIMERID` VARCHAR(255) NOT NULL,
`CONTAINERID` BIGINT NOT NULL,
`OWNERID` VARCHAR(255) NULL,
`STATE` INTEGER NOT NULL,
`PKHASHCODE` INTEGER NOT NULL,
`INTERVALDURATION` BIGINT NOT NULL,
`INITIALEXPIRATIONRAW` BIGINT NOT NULL,
`LASTEXPIRATIONRAW` BIGINT NOT NULL,
`SCHEDULE` VARCHAR(255) NULL,
`APPLICATIONID` BIGINT NOT NULL,
CONSTRAINT `PK_EJB__TIMER__TBL` PRIMARY KEY (`TIMERID`)
);
2. Конфигурация сервера
- Запустите консоль администратора GlassFish: обычно
http://localhost:4848
- С левой стороны перейдите к [Конфигурации] > [сервер-config] > [Контейнер EJB]
- Затем нажмите TAB вверху [Служба таймера EJB]
- Затем заполните Источник данных таймера: с вашим ресурсом JDBC, например. [MySQL-пу]. ( Примечание: По умолчанию
jdbc/__TimerPool
) - Перезапустить сервер
3. Результат
...
INFO: [TimerBeanContainer] Created TimerBeanContainer: TimerBean
INFO: EJB5181:Portable JNDI names for EJB TimerBean: [java:global/ejb-timer-service-app/TimerBean, java:global/ejb-timer-service-app/TimerBean!com.sun.ejb.containers.TimerLocal]
INFO: WEB0671: Loading application [ejb-timer-service-app] at [/ejb-timer-service-app]
INFO: EJB5109:EJB Timer Service started successfully for data source [mysql-pu]
INFO: Setting DBReadBeforeTimeout to false
INFO: ==> Restoring Timers ...
INFO: There are no EJB Timers owned by this server
INFO: <== ... Timers Restored.
...
4. Все еще сломан? TimerService просто перестала работать (она работала)?
Итак, это случилось со мной после дня, полного "разворачивания при сохранении". "Таймерсервис" неожиданно был недоступен.
Severe: Exception while loading the app
Severe: Undeployment failed for context /ejb-timer-service-app
Warning: Cannot deploy or load EJBTimerService: org.glassfish.deployment.common.DeploymentException: Error in linking security policy for ejb-timer-service-app -- Inconsistent Module State