Problèmes possibles avec Java DB

Si Java DB ne démarre pas

Les causes peuvent être multiples mais souvent la cause est que le port TCP 1527 est déjà utilisé par un autre programme.

Pour le savoir il suffit de lire attentivement le message d'erreur au moment où vous lancez Java DB. Il est indiqué que le port 1527 est déjà occupé. Si c'est bien le cas, il vous faut trouver l'autre programme qui écoute sur ce port 1527, et l'arrêter pendant que vous utilisez Java DB. Pour cela le plus simple est d'utiliser la commande netstat.

Pas de base de données sample

Là encore les causes peuvent être multiples mais souvent la cause est que le port TCP 1527 était déjà occupé par un autre programme que Java DB au moment de l'installation. Java DB n'a donc pas pu créer la base de données.

Pour le savoir procédez comme ci-dessus et éventuellement recommencez l'installation.

Incompatibilité entre sgbd et base de données

Quand vous voulez ouvrir la base de données "sample", vous recevez un message vous disant que la base de données a été créée avec une version du sgbd qui n'est pas compatible avec le sgbd que vous utilisez.

La raison du problème : vous n'utilisez pas la bonne version du sgbd.

Résolution du problème : dans l'onglet Services, clic droit sur Java DB et "Propriétés". Pour Java DB Installation, désignez le répertoire "db" placé dans la dernière version du JDK que vous possédez (le plus souvent un répertoire du type C:\Program Files\Java\jdk1.7.0_45\db) ou le répertoire javadb situé dans le répertoire d'installation de GlassFish (un au moins va convenir).

Politique de sécurité de Java

Problème de démarrage de Java DB à cause de restrictions liées à la sécurité dans les versions de Java à partir de la version JDK 7u51. Une permission supplémentaire est requise. Le démarrage de Java DB provoque donc une erreur de type
access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve") java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve").

Une façon simple de résoudre le problème : au moment de l'erreur une fenêtre s'affiche momentanément en bas dans l'onglet "Output - Java DB Database Process". Cette fenêtre contient un bouton "Disable SecurityManager". Java DB se lance si on clique sur ce bouton. Cette fenêtre ne s'ouvre que la première fois qu'on utilise Java DB ; ensuite Java DB s'ouvrira sans problèmes.

Si vous voulez résoudre plus finement le problème, il vous faut changer la politique de sécurité de Java. Le problème et la façon de le résoudre sont expliqués dans ce lien de stackoverflow et officiellement à cette adresse (copie locale de ce lien). Je vous déconseille cette solution.

Si rien ne marche

Si vous n'arrivez pas à vous connecter à la base sample bien que vous ayez essayé tout ce qui est écrit ci-dessus, essayez ceci.