Ni hao ma ?

Aller au contenu | Aller au menu | Aller à la recherche

mardi 10 avril 2012

WEBSPHERE - Modifier la valeur Umask pour les fichiers crée par une application

Was possède ses propres mécanismes de sécurité lui permettant de passer outre la valeur UMASK définie dans l'environnement de l'utilisateur lançant les processus Websphere.
Si pour les besoins d'une application vous avez besoin de forcer la valeur UMASK, il est possible de définir une variable d'environnement Webphere pour le scope Node ou Server :

Pour Websphere Application Server 7 ou plus :

  • Aller dans "Environment > Websphere Variables"
  • Sélectionner le champ d'application : par exemple "Node=myMachine, Server=myServer1"pour que cette variable ne soit interprétée que pour le serveur d'application myServer1
  • Créer une nouvelle variable "_BPX_BATCH_UMASK" (avec l'underscore devant !) et positionner la valeur souhaitée ici "002"
  • Redémarrer le serveur après avoir synchronisé la configuration du DMGR et des Nodes.
Les nouveaux fichiers crées par les traitements de l'application déployée sur myServer1 auront les droits 664 (rw-rw-r--) au lieu de 644 (rw-r--r--)

Attention pour les versions antérieures de  Websphere Application Server : la variable se nomme "EDC_UMASK_DFLT"

vendredi 6 avril 2012

AIX - Agrandir la taille d'un Filesystem

Sous AIX la commande de haut niveau chfs permet de modifier un Volume logique et la table de partition du Filesystem, le tout On-line.

Voici un exemple d'utilisation :

chfs -a size=+10G /opt/IBM/WebSphere/AppServer7



Cela agrandit de10G le filesystem /opt/IBM/WebSphere/AppServer7 sans besoin de démonter auparavant.

Pour plus d'info : Doc IBM

mardi 6 décembre 2011

Weblogic - Problème Multicast

L'erreur suivante identifie un problème de multicast sur un cluster weblogic.
Elle montre que le cluster essaie de communiquer avec un éléments étranger au cluster .

####<Dec 6, 2011 10:46:59 AM CET> <Error> <Cluster> <server> <srvappli1> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1323164819137> <BEA-000141> <TCP/IP socket failure occurred while fetching statedump over HTTP from -1359018395330830255S:10.177.11.107:[10116,10116,-1,-1,-1,-1,-1]::MYDomain:srvappli1.
java.io.FileNotFoundException: Response: '403: Forbidden' for url: 'http://192.168.4.4:10116/bea_wls_cluster_internal/psquare/p2?senderNum=3&lastSeqNum=0&PeerInfo=10,3,4&ServerName=srvappli1'
        at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:487)
        at weblogic.cluster.HTTPExecuteRequest.connect(HTTPExecuteRequest.java:67)
        at weblogic.cluster.HTTPExecuteRequest.run(HTTPExecuteRequest.java:82)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)

Pour corriger il suffit de se connecter sur le domaine qui utilise l'adresse 192.168.4.4 et d'y vérifier les paramètres multicast (Cluster > Configuration >  Messaging). Si l'adresse et le port sont identiques, ils faut modifier la configuration du cluster et relancer ses serveurs membres.

Et voilà ;)

vendredi 7 octobre 2011

RHEL - Désactiver SELinux depuis le prompt d'installation

Pour désactiver SELinux depuis le prompt d'installation, il suffit d'utiliser l'option

selinux=0

Il est possible de désactiver la fonction une fois le système installé en modifiant le fichier
/etc/selinux/config

et en mettant le mode selinux à  'DISABLED'

et voilà ;-)

jeudi 1 septembre 2011

Weblogic - Script python pour avoir le status d'un domaine Weblogic

# ==============================================================
# domain_status.py
# ==============================================================
# ==============================================================
# recuperation des arguments passe en option
#
# ==============================================================
adminurl = sys.argv[1]
username = sys.argv[2]
passwd = sys.argv[3]

# ==============================================================
# connection a admin weblogic
#
# ==============================================================

def connect_weblogic(username,password,adminurl):
        try :
                connect(username,password,adminurl)
        except :
                print 'Cannot connect to ' + adminurl
                exit()

# ==============================================================
# lecture des MBEAN
#
# ==============================================================

def getMBeanByType(mbeanType):
    return adminHome.getMBeansByType(mbeanType)

# ==============================================================
# formatage de date
#
# ==============================================================

def fmtDate(t):
        from time import *
        return strftime("%d/%m %H:%M:%S",localtime(t))

# ==============================================================
# connexion et affichage des status
#
# ==============================================================

redirect("/dev/null",toStdOut='false')
connect_weblogic(username,passwd,adminurl)

listeServer = ls('Servers',returnMap='true')

domainRuntime()
listeRunning = ls('ServerRuntimes',returnMap='true')

fmt = "%11s %10s %18s %6s %5s %5s %7s %7s %11s %10s %10s %15s"


print fmt % ("Server","State","Uptime","Active","Idle","Total","Hogging","Standby","Pending Req","QueueLength","Throughput","Completed Req")

for srv in listeServer:
        if listeRunning.size()>0 and listeRunning.indexOf(srv)>=0:
                cd("/ServerRuntimes/"+srv)
                uptime = cmo.getActivationTime()/1000
                tp = getMBean('ThreadPoolRuntime/ThreadPoolRuntime')
                thp = "%.1f" % tp.getThroughput()
                active = 0
                import re
                for thrd in tp.getExecuteThreads():
                        if not re.search("ACTIVE",thrd.getName()) is None:
                                active = active +1

                print fmt % (srv,cmo.getState(),fmtDate(uptime),str(active),str(tp.getExecuteThreadIdleCount()),str(tp.getExecuteThreadTotalCount()),

str(tp.getHoggingThreadCount()),str(tp.getStandbyThreadCount()),str(tp.getPendingUserRequestCount()),str(tp.getQueueLength()),

str(thp),str(tp.getCompletedRequestCount()) )
        else:
                print fmt % (srv,"SHUTDOWN","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A")

# ==============================================================
# déconnexion
#
# ==============================================================
disconnect()
exit()

Vous pouvez lancer ce script depuis un script shell  :

#! /bin/sh
. /opt/platform103/weblogic/wlsserver_10.3/server/bin/setWLSEnv.sh > /dev/null 2>&1
java weblogic.WLST $*
exit $?

Pour le lancer :

./lancwlst.sh domain_status.py t3://127.0.0.1:7001 reader reader

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands


 Server    State         Uptime Active  Idle Total Hogging Standby Pending Req QueueLength Throughput  Completed Req
 server  RUNNING     01/09 08:54:37      1     0     6       0       5           0          0        7.5           95204
 admin  RUNNING     31/08 17:51:28      2     1     9       0       7           0          0       11.0          584537

Et Voilà

- page 1 de 10