Oracle 10.2 sur OpenVMS : Entre Alpha et Itanium…

J’ai séché pendant 2 jours sur un problème d’installation Oracle 10.2 sur OpenVMS Alpha, ouvert 3 SR et finalement résolu le dernier problème sans l’aide d’Oracle ; tous les voyants sont au vert et l’étape suivante, cette fois pour la production, se fera sur OpenVMS Itanium avec RAC.

J’aime bien OpenVMS et si vous cherchez des ressources Oracle 10g/OpenVMS, vous devez nous contacter. En fait, plus ça parait nécessiter une expérience d’Oracle hors du commun, plus il est probable que vous avez intérêt à venir nous en parler en commençant par nous envoyer un message (en français) ! Il faut dire que vous aurez alors la chance, comme moi, de travailler avec plusieurs personnes avec qui c’est toujours passionnant d’échanger et de construire des environnements de production autour d’Oracle 10g et 11g.

En bref et pour revenir au sujet de ce post, l’occasion n’est pas donnée assez souvent de mettre en œuvre Oracle10g RAC et OpenVMS alors, quand j’ai vu arriver le projet pour un de nos clients, j’ai tout fait pour que personne d’autre ne le prenne en charge. Tout ça remonte, pour moi, au temps où Daniel Clar, alors président de DECUS France, m’a donné mon premier et sans doute seul cours d’informatique que je n’ai jamais suivi à l’école. A l’époque, les labos avaient les 2 premiers Alpha en France mais je crois surtout que j’admirais le prof qui semblait toujours revenir du ski en plus d’être affable et plaisant (du moins, c’est le souvenir que j’en garde). Mais après tout, peut-être que ce bon karma pour OpenVMS est simplement dues les partie de TRON à 8 sur les stations VAX VMS ! C’est ringuard de dire ça en 2008 ?

Pourquoi ce post vous demandez-vous ?

La réponse tient dans cette petite phrase assassine en réponse à une demande de l’analyste qui traitait ma dernière SR et que je veux partager. Bien sur, si vous pouvez éviter de tomber dans la même situation lors de votre prochaine installation Oracle 10g sur OpenVMS, ce post ne sera pas inutile non plus.

Alors voila, quand vous êtes le sujet d’un problème, Oracle essaie de faire bénéficier de la solution à toutes les personnes qui accèdent à Metalink. C’est pour ça, en partie, que c’est si dur d’être le premier à tomber sur un problème et que Metalink est si riche. Et pourtant il semble bien que je soit le premier et seul à être tombé dans ce cas sur mon serveur du siècle dernier. Dans un soucis de faire partager mon expérience (et surtout la solution), l’analyste a demandé aux responsables du contenu d’Oracle sur OpenVMS à documenter ce cas; voilà la réponse :

Knowledge content not created because this issue is customer specific and would not benefit anyone else.

J’en conclus que les caractéristiques de mon installation d’OpenVMS est unique au monde, mais je vais quand même vous expliquer ce qui s’est passé…

Alors voila, après avoir trouver un moyen (sans SSH) d’ouvrir un display X sur le serveur et à travers le NAT, demandé les fichiers de réponse qui ne sont pas dans la distribution Alpha (Seulement Itanium) et appliqué le patch 5743818, j’ai installé le logiciel en quelques heures ; en fait, l’installeur à mis un peu plus de 3 heures pour pousser la distribution et linker Oracle. Et puis, les problèmes sérieux : impossible de lancer DBCA ! Et créer tout l’environnement de l’instance à la main, en plus d’être non supporté est à peu prêt impossible sans un exemple de script DCL généré par… DBCA !

DBCA.COM échoue avec le message Unrecognized option: -classpath [...]. Je passerai le détail de comment en arriver à la conclusion mais le fait est que Java SDK 1.5 était préalablement installé sur le serveur et que le logical JAVA$DISABLE_CMDFILE_WHITESPACE_PARSING doit être, j’imagine positionné par défaut avec l’environnement Java. DBCA, quant à lui, positionne l’environnement pour le JDK 1.4 qui vient avec la distribution mais ne « deassign » pas le logical. Pour résoudre ce problème, il suffit d’exécuter les commandes ci-dessous avec l’utilisateur Oracle :

show log JAVA$DISABLE_CMDFILE_WHITESPACE_PARSING

"JAVA$DISABLE_CMDFILE_WHITESPACE_PARSING" = "TRUE" (LNM$JOB_821F6040)

deassign/table=LNM$JOB_821F6040 JAVA$DISABLE_CMDFILE_WHITESPACE_PARSING

show log JAVA$DISABLE_CMDFILE_WHITESPACE_PARSING

Enfin, la première étape est finalement complétée. En plus au passage, plusieurs document intéressants sont apparus :

Bon, la pression et les attentes de chacun sont maintenant retombées. Je peux revenir sur du matériel tout dernier cri pour faire cette install RAC sur OpenVMS (Itanium cette fois); mais je ne m’attends pas à rencontrer trop de difficultés…