2017-07-10 4 views
0

Dans WebSphere Application Server 8.5.5, je rencontre des problèmes lors de la définition des chemins de fichier native_stdout et native_stderr à partir du script wsadmin jython. Chaque fois que je définis un chemin, l'autre est masqué. c'est-à-dire défini sur null. Je suppose que j'ai besoin de former une ligne de code qui définit les deux chemins simultanément mais qui ont été incapables de créer la syntaxe correcte, si cela est possible. Le code pour produire un changement de chemin ressemble:WebSphere: impossible de modifier à la fois stderrfilname et stdoutfename en même temps

srv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/') 
processDef = AdminConfig.list('JavaProcessDef', srv) 
AdminConfig.modify(processDef, [['ioRedirect', [['stderrFilename', '${LOG_ROOT}/server1/new_stderr.log']]]]) 
AdminConfig.save() 

Cela fonctionne bien, mais quand je l'utilise alors le même script pour définir le stdoutFilename, il vide l'stderrFilename précédemment défini.

Il semble ne faire aucune différence à quel point je valide les changements en utilisant save.

Toute aide concernant ce problème serait grandement appréciée!

Répondre

0

Vous avez raison, même si le manuel indique que AdminConfig.modify() peut être ajouté aux listes lorsque vous ne l'attendez pas. J'ai observé la même chose.

Voici le modèle que vous voulez être sûr, clair dehors et définir les propriétés en même temps:

AdminConfig.modify(processDef, [['ioRedirect', []]]) 
AdminConfig.modify(processDef, [['ioRedirect', [['stderrFilename', '${SERVER_LOG_ROOT}/my_stderr.log'], ['stdoutFilename', '${SERVER_LOG_ROOT}/my_stdout.log']]]]) 

Après cela, vous pouvez le faire pour une simple vérification:

print AdminConfig.showall(processDef) 

Mais regardez la sortie de près car elle n'est pas assez imprimée

+0

Superbe! Je suis sûr que j'ai essayé cette syntaxe exacte dans mes nombreuses tentatives, mais j'ai raté les résultats. Merci beaucoup pour votre réponse rapide et votre aide. –