{"id":622,"date":"2016-08-30T06:44:22","date_gmt":"2016-08-30T05:44:22","guid":{"rendered":"http:\/\/www.netexpertise.eu\/fr\/?p=622"},"modified":"2021-05-20T06:38:29","modified_gmt":"2021-05-20T05:38:29","slug":"lister-les-jobq-des-profils-as400","status":"publish","type":"post","link":"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html","title":{"rendered":"Lister les JOBQ des Profils Utilisateur AS400"},"content":{"rendered":"\n<p>Je veux faire un peu de m\u00e9nage sur notre <a href=\"\/fr\/tag\/ibm-i\">IBM i<\/a> principal \u00e0 commencer par les files de travaux (JOBQ) dans lesquelles s&rsquo;ex\u00e9cutent les travaux des utilisateurs. La plupart des utilisateurs ont leur propre JOBD, ce qui ne devrait pas \u00eatre. La JOBQ des utilisateurs est d\u00e9finie dans leur JOBD (Job Description). Une JOBD r\u00e9f\u00e9rence une JOBQ et peut \u00eatre affect\u00e9e \u00e0 autant d&rsquo;utilisateurs que souhait\u00e9. La premi\u00e8re chose dont j&rsquo;ai besoin est la liste des JOBQ de tous les utilisateurs.<br><br>Je peux r\u00e9cup\u00e9rer facilement les descriptions de travail avec la commande WRKUSRPRF mais r\u00e9cup\u00e9rer toutes les files d&rsquo;attente est un peu plus d\u00e9licat.<br>Mais en se connectant \u00e0 PASE, on y parvient facilement. On peut m\u00eame affecter des nouvelles JOBD \u00e0 des profils en se basant sur des crit\u00e8res d\u00e9finis.<\/p>\n\n\n\n<h2><br>Liste JOBD\/JOBQ par Profil Utilisateur<\/h2>\n\n\n\n<p>Connectez-vous \u00e0 l&rsquo;environnement PASE soit en ex\u00e9cutant &lsquo;CALL QP2TERM&rsquo; ou en SSH si le service a \u00e9t\u00e9 activ\u00e9.<br>Copiez le code shell suivant dans un fichier (appelons-le listJobq.sh) dans l&rsquo;IFS, dans votre r\u00e9pertoire maison par exemple, rendez-le ex\u00e9cutable<br>chmod +x listJobq.sh<br><br>et lancez:<br>.\/listJobq.sh<br><br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">#!\/QOpenSys\/usr\/bin\/ksh\n\nIFS='\n'\n# Assurez-vous que la librairie ADMIN existe\nsystem \"DSPUSRPRF USRPRF(*ALL) OUTPUT(*OUTFILE) OUTFILE(ADMIN\/USERLIST)\"\n\nprintf \"%11s%11s%11s\\n\" \"USRPRF\" \"JOBD\" \"JOBQ\"\n\nfor i in $(db2 \"select upuprf,upjbds from ADMIN.USERLIST\" | \\\n      sed -e '1,3 d' -e '\/^$\/ d' | sed -e '$ d'); do\n  unset IFS\n  set -A user $i\n  jobq=`system -i \"DSPJOBD JOBD(${user[1]})\" | awk '\/^ Fi\/ {print $NF;exit;}'`\n  printf \"%11s%11s%11s\\n\" \"${user[0]}\" \"${user[1]}\" \"$jobq\"\ndone<\/code><\/pre>\n\n\n\n<p><br>Cela g\u00e9n\u00e8re une liste de USRPRF \/ JOBD \/ JOBQ. La plupart des profils utilisent la JOBD DEFAULT qui envoie les travaux des utilisateurs dans la JOBQ QBATCH si l&rsquo;utilisateur ne la change pas au lancement du job.<br><br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">     USRPRF       JOBD       JOBQ\n  ABERTRAND    DEFAULT     QBATCH\n  GBOUBOURS    DEFAULT     QBATCH\n    IBURNET         IT      QPGMR\n   PBUISSON    DEFAULT     QBATCH\n    PMARTIN    DEFAULT     QBATCH\n        ...        ...        ...<\/code><\/pre>\n\n\n\n<p>\u00a0<br>Le syst\u00e8me pourrait retourner un message \u00ab\u00a0db2: cannot execute\u00a0\u00bb ou \u00ab\u00a0\/usr\/bin\/db2: Permission denied\u00a0\u00bb. Dans ce cas, cr\u00e9ez un lien symbolique comme ceci:<br>ln -s \/QOpenSys\/usr\/bin\/qsh \/QOpenSys\/usr\/bin\/db2<br>La raison est d\u00e9taill\u00e9e dans cette <a href=\"http:\/\/comp.sys.ibm.as400.misc.narkive.com\/hIIXY1N0\/using-db2-under-pase\">explication<\/a>.<\/p>\n\n\n\n<h2><br>Script Bash Optimis\u00e9 sur PASE<\/h2>\n\n\n\n<p>Un inconv\u00e9nient est la lenteur de la commande \u00ab\u00a0system\u00a0\u00bb. L&rsquo;option -i la rend un peu plus rapide mais on peut am\u00e9liorer un peu. Si vous avez install\u00e9 le paquet OPS (Open Source) d&rsquo;IBM avec les PTF correspondantes et bash, vous pouvez essayer cette version optimis\u00e9e avec tables de hachage en bash. Les <a href=\"https:\/\/www.ibm.com\/support\/pages\/getting-started-open-source-package-management-ibm-i-acs\">packages opensource<\/a> peuvent dor\u00e9navant se g\u00e9rer graphiquement via le client ACS.<br>On stocke les jobd\/jobq dans une table de hachage qui agit comme un cache puisque les descriptions de travail retournent toujours les m\u00eames JOBQ. Si beaucoup d&rsquo;utilisateurs ont la m\u00eame JOBD, ca peut \u00eatre tr\u00e8s efficace (35 fois plus rapide dans mon cas). Ainsi, cette astuce permet d&rsquo;obtenir de meilleures performances sur les shells scripts qui peuvent \u00eatre lents sur IBM i compar\u00e9s \u00e0 leurs homologues x86.<br>\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">#!\/usr\/bin\/bash\n\nIFS='\n'\ndeclare -A JOBQ\n\n# Assurez-vous que la librairie ADMIN existe\nsystem \"DSPUSRPRF USRPRF(*ALL) OUTPUT(*OUTFILE) OUTFILE(ADMIN\/USERLIST)\"\n\nprintf \"%11s%11s%11s\\n\" \"USRPRF\" \"JOBD\" \"JOBQ\"\n\nfor i in $(db2 \"select upuprf,upjbds from ADMIN.USERLIST\" | \\\n      sed -e '1,3 d' -e '\/^$\/ d' | sed -e '$ d'); do\n  unset IFS\n  # Assigne utilisateur et jobd dans user[0] et user[1]\n  user=($i)\n  # Ajoute la jobq \u00e0 la table de hachage\n  if [ -z ${JOBQ[${user[1]}]} ]; then\n    jobq=`system -i \"DSPJOBD JOBD(${user[1]})\" | awk '\/^ Fi\/ {print $NF;exit;}'`\n    JOBQ[${user[1]}]=$jobq\n  fi\n  printf \"%11s%11s%11s\\n\" \"${user[0]}\" \"${user[1]}\" \"${JOBQ[${user[1]}]}\"\ndone<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Je veux faire un peu de m\u00e9nage sur notre IBM i principal \u00e0 commencer par les files de travaux (JOBQ) dans lesquelles s&rsquo;ex\u00e9cutent les travaux des utilisateurs. La plupart des utilisateurs ont leur propre JOBD, ce qui ne devrait pas \u00eatre. La JOBQ des utilisateurs est d\u00e9finie dans leur JOBD (Job Description). Une JOBD r\u00e9f\u00e9rence [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[226],"tags":[416,424,250,195],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Netexpertise - Lister les JOBQ des Profils Utilisateur AS400<\/title>\n<meta name=\"description\" content=\"Listez les profils utilisateur AS400 et leur JOBQ par d\u00e9faut avec un script shell. Organisez et r\u00e9utilisez les JOBD des utilisateurs\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Netexpertise - Lister les JOBQ des Profils Utilisateur AS400\" \/>\n<meta property=\"og:description\" content=\"Listez les profils utilisateur AS400 et leur JOBQ par d\u00e9faut avec un script shell. Organisez et r\u00e9utilisez les JOBD des utilisateurs\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html\" \/>\n<meta property=\"og:site_name\" content=\"Netexpertise\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-30T05:44:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-20T05:38:29+00:00\" \/>\n<meta name=\"author\" content=\"dave\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@netexpertise\" \/>\n<meta name=\"twitter:site\" content=\"@netexpertise\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html\",\"url\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html\",\"name\":\"Netexpertise - Lister les JOBQ des Profils Utilisateur AS400\",\"isPartOf\":{\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#website\"},\"datePublished\":\"2016-08-30T05:44:22+00:00\",\"dateModified\":\"2021-05-20T05:38:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\"},\"description\":\"Listez les profils utilisateur AS400 et leur JOBQ par d\u00e9faut avec un script shell. Organisez et r\u00e9utilisez les JOBD des utilisateurs\",\"breadcrumb\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.netexpertise.eu\/fr\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lister les JOBQ des Profils Utilisateur AS400\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#website\",\"url\":\"https:\/\/www.netexpertise.eu\/fr\/\",\"name\":\"Netexpertise\",\"description\":\"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\",\"name\":\"dave\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"caption\":\"dave\"},\"sameAs\":[\"http:\/\/www.netexpertise.eu\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Netexpertise - Lister les JOBQ des Profils Utilisateur AS400","description":"Listez les profils utilisateur AS400 et leur JOBQ par d\u00e9faut avec un script shell. Organisez et r\u00e9utilisez les JOBD des utilisateurs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html","og_locale":"fr_FR","og_type":"article","og_title":"Netexpertise - Lister les JOBQ des Profils Utilisateur AS400","og_description":"Listez les profils utilisateur AS400 et leur JOBQ par d\u00e9faut avec un script shell. Organisez et r\u00e9utilisez les JOBD des utilisateurs","og_url":"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html","og_site_name":"Netexpertise","article_published_time":"2016-08-30T05:44:22+00:00","article_modified_time":"2021-05-20T05:38:29+00:00","author":"dave","twitter_card":"summary_large_image","twitter_creator":"@netexpertise","twitter_site":"@netexpertise","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html","url":"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html","name":"Netexpertise - Lister les JOBQ des Profils Utilisateur AS400","isPartOf":{"@id":"https:\/\/www.netexpertise.eu\/fr\/#website"},"datePublished":"2016-08-30T05:44:22+00:00","dateModified":"2021-05-20T05:38:29+00:00","author":{"@id":"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632"},"description":"Listez les profils utilisateur AS400 et leur JOBQ par d\u00e9faut avec un script shell. Organisez et r\u00e9utilisez les JOBD des utilisateurs","breadcrumb":{"@id":"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.netexpertise.eu\/fr\/systeme\/as400\/lister-les-jobq-des-profils-as400.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.netexpertise.eu\/fr"},{"@type":"ListItem","position":2,"name":"Lister les JOBQ des Profils Utilisateur AS400"}]},{"@type":"WebSite","@id":"https:\/\/www.netexpertise.eu\/fr\/#website","url":"https:\/\/www.netexpertise.eu\/fr\/","name":"Netexpertise","description":"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632","name":"dave","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/","url":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","contentUrl":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","caption":"dave"},"sameAs":["http:\/\/www.netexpertise.eu"]}]}},"_links":{"self":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/622"}],"collection":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/comments?post=622"}],"version-history":[{"count":0,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/622\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/media?parent=622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/categories?post=622"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/tags?post=622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}