Créer une variable d’environnement WAS

WAS (Websphere Application Server) dispose de son propre mécanisme de gestion de variable d’environnement, il s’agit de la même philosophie des variables d’environnement système. sauf que ces variable sont géré par WAS et non pas par le système d’exploitation.

Dans certain cas, il est indispensable de créer des variables d’environnement WAS, par exemple lors de la création d’un fournisseur JDBC le serveur WAS aura besoin de connaitre le chemin du jar JDBC, pour cela il est très intéressant de créer une variable d’environnement qui aura la valeur du chemin du jar JDBC.

La création d’une nouvelle variable d’environnement WAS est possible en Jython (comme en JACL) via l’objet « AdminTask ». Pour illustré un exemple de la création de variable d’environnement WAS, on va essayer de créer une variable qui va contenir la valeur d’un driver JDBC, pour cela on aura besoin d’identifier trois éléments essentiels :

  • Le nom de la variable
  • La valeur de la variable
  • La portée de la variable

Comme dans les précédents tutoriaux de Scripting WAS, la portée sera le serveur, donc on aura besoin de connaitre :

  • La cellule
  • Le nœud
  • Le serveur

La syntaxe de la création d’une variable d’environnement WAS en jython est :

AdminTask.setVariable([‘-variableName’, nom_variable, ‘-variableValue’, valeur, ‘-scope’, portée_de_la_variable])

Pour simuler le « CreateOrReplace » on peut supprimer la variable, la suppression de cette variable ne provoque aucun effet s’elle n’existe pas. La suppression pour être effectuer par :

AdminTask.removeVariable([‘-variableName’, nom_variable,‘-scope’, portée_de_la_variable])

Le code de la création d’une variable d’environnement peut être comme suit :

def createVariable(cellName, nodeName, serverName, variableName, value):
    AdminTask.removeVariable([‘-variableName’,variableName,
                             ‘-scope’,‘Cell=’ + cellName +
                             ‘, Node=’ + nodeName +
                             ‘, Server=’ + serverName])
    AdminTask.setVariable([‘-variableName’, variableName,
                           ‘-variableValue’, value,
                           ‘-scope’,‘Cell=’+ cellName +
                           ‘, Node=’+nodeName +
                           ‘, Server=’ + serverName])

L’utilisation de cette fonction peut être faite comme suit :

def main():    
    myCell=AdminControl.getCell()
    myNode=AdminControl.getNode()
    myServer=‘server1′
    oracleJDBCDriverPath=‘ORACLE_JDBC_DRIVER_PATH’
    driverPath=‘/opt/jdbcdrivers/oracle’
    createVariable(myCell, myNode, myServer, oracleJDBCDriverPath, driverPath)
    AdminConfig.save()
       
main()

A propos de l'auteur

Faut il vraiment porter des lunettes, pour travailler la nuit, sur un terminal vert sur noire, pour être Geek pour devenir root ?