Puede crear y almacenar el temporizador EJB de MySQL como usuario, pero cuando intenta configurar el servicio de temporizador EJB para MySQL se genera la siguiente excepción (SQLException executing statement):
"CREATE TABLE EJB__TIMER__TBL (TIMERID VARCHAR(255) NOT NULL, BLOB BLOB(64000), INITIALEXPIRATIONRAW BIGINT, SCHEDULE VARCHAR(255), INTERVALDURATION BIGINT, OWNERID VARCHAR(255), STATE INTEGER, LASTEXPIRATIONRAW BIGINT, PKHASHCODE INTEGER, CREATIONTIMERAW BIGINT, CONTAINERID BIGINT, PRIMARY KEY (TIMERID))": com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BLOB BLOB(64000), INITIALEXPIRATIONRAW BIGINT, SCHEDULE VARCHAR(255), INTERVALDU' at line 1|#] |
Para obtener más información, consulte el Informe del problema.
Asegúrese de que la datasource-classname especificada para la agrupación del temporizador representa una fuente de datos XA.
Pasos específicos de MySQL:
Desempaquete glassfishv3/glassfish/lib/install/applications/ejb-timer-service-app.war .
Agregue lo siguiente a WEB-INF/classes/__ejb_timer_mappings.xml después de <persistence-unit-metadata>:
<persistence-unit-defaults> <delimited-identifiers/> </persistence-unit-defaults>
Vuelva a empaquetar el archivo WEB-INF/classes/__ejb_timer_mappings.xml.
(Este paso sólo es necesario si la instalación actual ya ha utilizado el servicio de temporizador EJB.) Cree manualmente el EJB__TIMER__TBL en la base de datos mediante esta instrucción de creación:
CREATE TABLE `EJB__TIMER__TBL` (`TIMERID` VARCHAR(255) NOT NULL, `BLOB` BLOB(64000), `INITIALEXPIRATIONRAW` BIGINT, `SCHEDULE` VARCHAR(255), `INTERVALDURATION` BIGINT, `OWNERID` VARCHAR(255), `STATE` INTEGER, `LASTEXPIRATIONRAW` BIGINT, `PKHASHCODE` INTEGER, `CREATIONTIMERAW` BIGINT, `CONTAINERID` BIGINT, PRIMARY KEY (`TIMERID`))