Notes de version de Sun GlassFish Enterprise Server v3

Problème de configuration du service d'horloge EJB pour MySQL (problème 11428)

Description

La création et le stockage du service d'horloge EJB dans MySQL sont possibles en tant qu'utilisateur, mais une exception est renvoyée lors de la tentative de configuration du service d'horloge EJB pour MySQL(déclaration d'exécution SQLException ) :


"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|#] 

Pour plus d'informations, reportez-vous à Issue report.

Solution

Assurez-vous que le nom de classe de source de données spécifié pour le pool d'horloge représente une source de données XA.

Étapes MySQL spécifiques :

  1. Décompressez le fichier glassfishv3/glassfish/lib/install/applications/ejb-timer-service-app.war .

  2. Ajoutez la chaîne suivante à WEB-INF/classes/__ejb_timer_mappings.xml après <persistence-unit-metadata>:

    <persistence-unit-defaults>
    <delimited-identifiers/>
    </persistence-unit-defaults>
  3. Compressez de nouveau le fichier WEB-INF/classes/__ejb_timer_mappings.xml.

  4. Cette étape est requise uniquement si l'installation actuelle a déjà utilisé le service d'horloge EJB. Créez manuellement EJB__TIMER__TBL dans la base de données en utilisant cette déclaration de création :

    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`))