Pourquoi un pool de connexion JDBC n’est-il pas créé?

Je développe une application Java EE simple avec un fichier EAR comprenant les fichiers JAR et WAR. Dans le projet EAR sous EarContent / META-INF, j’ai le fichier glassfish-resources.xml suivant:

             

Dans le projet EJB sous META-INF, j’ai le fichier persistence.xml suivant:

    Manages events, users and comments org.eclipse.persistence.jpa.PersistenceProvider java:app/jdbc/test com.hank.entity.Question com.hank.entity.QuizWalk com.hank.entity.User com.hank.entity.QuizWalkParticipants            

J’ai un serveur Derby en cours d’exécution et le numéro de port est correct. L’application fonctionne sauf qu’aucune firebase database n’est créée. Qu’est-ce qui ne va pas? Cette approche a fonctionné avec Glassfish 3.1.

Hank

Il semble que la configuration de Glassfish v4 de la source de données jdbc soit légèrement différente de la v3. Vous devez spécifier la propriété connectionAtsortingbutes pour créer la firebase database. La propriété createDatabase n’est pas documentée et probablement ignorée.

Property connectionAtsortingbutes n’est pas bien documenté non plus, mais vous en trouverez peut-être un exemple dans la documentation PDF de Glassfish 4 ( Guide d’administration – section Administration des pools de connectino JDBC) ou dans les sources du serveur Payara , dérivées de Glassfish 4.

Je me débattais avec un problème similaire il y a un mois. À la fin, j’ai eu l’état suivant dans mes XML (par rapport au vôtre):

glassfish-resources.xml

  • J’ai ajouté les propriétés URL et driverClass à glassfish-resources.xml
  • Pas sûr que ce soit obligatoire, mais j’avais des valeurs différentes pour jndi-name et pool-name
  • J’ai utilisé mysql pour que ma jdbc-connection-pool ait ces deux atsortingbuts: res-type="javax.sql.DataSource",
    datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
    res-type="javax.sql.DataSource",
    datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
  • Aucune propriété createDatabase

Edit: voici mes ressources glassfish (il a été généré automatiquement par netbeans, je viens d’append des informations d’identité et des noms de ressources appropriés)

               

persistence.xml

   org.eclipse.persistence.jpa.PersistenceProvider JNDI_NAME false      

Selon la documentation actuelle de GF, glassfish-resources.xml est uniquement utilisé pour la génération de ressources de serveur (pool de connexions et ressources JDBC) et la génération de firebase database est facilement gérée à partir de persistence.xml .