J'ai trouvé une solution à ce problème. Afin d'expliquer ma solution, j'ai utilisé des alias se référant à mes paramètres réels. Il s'agit de :
[ME] = my user name
[MYHOST] = my current workstation hostname (netbios name as well)
[MYHOST.mycompany.com] = my worksation's fully qualified domain name
Au début, j'avais la même situation que celle mentionnée ci-dessus : Je n'ai pas pu me connecter au service apex même après une installation réussie.
J'ai d'abord utilisé l'utilitaire tnsping d'Oracle :
C:\Users\ME>tnsping MYHOST
C'était la réponse :
TNS Ping Utility for 32-bit Windows: Version 11.2.0.2.0 - Production
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=
(PROTOCOL=TCP)(HOST=fe80::5d34:78a:5862:64%20)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=fe80::c27:54a4:1600:86a4%26)(PORT=1521))(ADDRESS=
(PROTOCOL=TCP)(HOST=fe80::38ab:cdb4:dd77:7ed9%12)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)
(HOST=10.9.32.208)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.106)(PORT=1521)))
TNS-12541: TNS:no listener
Vous voyez ci-dessus un grand nombre d'adresses IP différentes actuellement actives. Seule la plus importante, 127.0.0.1, est absente. Je travaille sur un ordinateur portable et le réseau change "presque toujours" (WLAN, 3G, HSDPA, Ethernet, etc.), mais seule l'adresse locale est fixe. Et c'est là que le problème est apparu. (Lorsque je travaillais dans l'environnement du bureau, connecté au réseau du bureau, cela fonctionnait également).
Lorsque j'étais dans cette situation, j'ai également commencé à utiliser l'utilitaire lsnrctl oracle. J'ai constaté ce qui suit :
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
Default Service XE
Listener Parameter File /oraclexe/app/oracle/product/11.2.0/server\network\admin\listener.ora
Listener Log File C:\oraclexe\app\oracle\diag\tnslsnr\MYHOST\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MYHOST.mycompany.com)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Vous pouvez voir que le service pour l'apex au port 8080 est absent ! !! J'ai également essayé le ping normal qui a fonctionné parfaitement :
C:\Users\ME >ping MYHOST.mycompany.com
Le résultat a été :
MYHOST.mycompany.com [fe80::c27:54a4:1600:86a4%26] ping
response fe80::c27:54a4:1600:86a4%26: time<10 ms
...
Vous pouvez réaliser que l'adresse IPv6 existe aussi dans mon essai tnsping.
J'ai donc décidé de définir MYHOST directement dans mon fichier hosts local :
127.0.0.1 localhost MYHOST MYHOST.mycompany.com
Test maintenant avec ping :
C:\Users\ME>ping MYHOST
Et la réponse :
MYHOST.mycompany.com [127.0.0.1] ping:
response 127.0.0.1: byte=32 time<10 ms. TTL=128
...
À ce stade, j'ai redémarré (arrêté et redémarré) les deux services Oracle en cours d'exécution (juste pour être sûr) :
OracleServiceXE
OracleXETNSListener
Et regardez le miracle :
C:\Users\ME>lsnrctl
LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
Default Service XE
Listener Parameter File /oraclexe/app/oracle/product/11.2.0/server\network\admin\listener.ora
Listener Log File C:\oraclexe\app\oracle\diag\tnslsnr\MYHOST\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MYHOST.mycompany.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MYHOST.mycompany.com)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
Vous pouvez voir la ligne importante avec PORT=8080 et le service XE instance. Je suis donc heureux que l'URL de démarrage fonctionne à nouveau.