{"id":3837,"date":"2023-09-14T15:43:52","date_gmt":"2023-09-14T13:43:52","guid":{"rendered":"https:\/\/www.skillup.cloud\/?p=3837"},"modified":"2024-01-23T17:45:48","modified_gmt":"2024-01-23T16:45:48","slug":"stack-di-un-lavoro","status":"publish","type":"post","link":"https:\/\/www.skillup.cloud\/it\/stack-di-un-lavoro\/","title":{"rendered":"Stack di un lavoro"},"content":{"rendered":"\n<p class=\"has-large-font-size\">SQL per ricavare lo &#8220;Stack&#8221; delle chiamate di un Lavoro<\/p>\n\n\n\n<p>Nel caso in cui dovesse essere necessario sapere lo &#8220;Stack&#8221; delle chiamate che vengono effettuate da un lavoro attivo, potrebbe essere utile utilizzare il seguente comando SQL:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT\n   THREAD_ID                  , THREAD_TYPE              , ORDINAL_POSITION        ,\n   ENTRY_TYPE                 , PROGRAM_NAME             , PROGRAM_LIBRARY_NAME    ,\n   STATEMENT_IDENTIFIERS      , REQUEST_LEVEL            , CONTROL_BOUNDARY        ,\n   PROGRAM_ASP_NAME           , PROGRAM_ASP_NUMBER       , MODULE_NAME             ,\n   MODULE_LIBRARY_NAME        , PROCEDURE_NAME           , ACTIVATION_GROUP_NUMBER ,\n   ACTIVATION_GROUP_NAME      , MI_INSTRUCTION_NUMBER    , JAVA_LINE_NUMBER        ,\n   JAVA_BYTE_CODE_OFFSET      , JAVA_METHOD_TYPE         , JAVA_CLASS_NAME         ,\n   JAVA_METHOD_NAME           , JAVA_METHOD_SIGNATURE    , JAVA_FILE_NAME          ,\n   JAVA_SOURCE_FILE_NAME      , PASE_LINE_NUMBER         , PASE_INSTRUCTION_ADDRESS,\n   PASE_INSTRUCTION_OFFSET    , PASE_KERNEL_CODE         , PASE_BIT_CODE           ,\n   PASE_ALTERNATE_RESUME_POINT, PASE_PROCEDURE_NAME      , PASE_LOAD_MODULE_NAME   ,\n   PASE_LOAD_MODULE_PATH      , PASE_SOURCE_PATH_AND_FILE, LIC_INSTRUCTION_OFFSET  ,\n   LIC_PROCEDURE_NAME         , LIC_LOAD_MODULE_NAME\nFROM TABLE(QSYS2.STACK_INFO('487154\/QUSER\/QZSCSRVS', 'ALL'))<\/pre>\n\n\n\n<p>Result:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">---\nJOB_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;JOB_TYPE &nbsp;THREAD_ID &nbsp;THREAD_TYPE &nbsp;ORDINAL_POSITION &nbsp;ENTRY_TYPE &nbsp;PROGRAM_NAME &nbsp;PROGRAM_LIBRARY_NAME &nbsp;STATEMENT_IDENTIFIERS &nbsp;MODULE_NAME &nbsp;MODULE_LIBRARY_NAME &nbsp;PROCEDURE_NAME &nbsp;ACTIVATION_GROUP_NUMBER &nbsp;ACTIVATION_GROUP_NAME &nbsp;MI_INSTRUCTION_NUMBER\n190936\/USR001\/QPADEV0003 &nbsp;INT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 126 &nbsp;USER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 24 &nbsp;ILE &nbsp; &nbsp; &nbsp; &nbsp; QRNXIO &nbsp; &nbsp; &nbsp; &nbsp;QSYS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 63 &nbsp;QRNXWSIO &nbsp; &nbsp; QBUILDSS1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_QRNX_WS_EXFMT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp;*DFTACTGRP\n190936\/USR001\/QPADEV0003 &nbsp;INT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 126 &nbsp;USER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 23 &nbsp;ILE &nbsp; &nbsp; &nbsp; &nbsp; PGM001 &nbsp; &nbsp; &nbsp; &nbsp;LIBPGM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;74400 &nbsp;PGM001 &nbsp; &nbsp; &nbsp; QTEMP &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PGM001 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp;*DFTACTGRP\n190936\/USR001\/QPADEV0003 &nbsp;INT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 126 &nbsp;USER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 19 &nbsp;OPM &nbsp; &nbsp; &nbsp; &nbsp; PGM000 &nbsp; &nbsp; &nbsp; &nbsp;LIBPGM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;600 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 15\n---<\/pre>\n\n\n\n<p><strong>Nota sul comando SQL:<\/strong><\/p>\n\n\n\n<p>Possono verificarsi dei casi in cui il comando SQL &#8220;sembra&#8221; non funzionare o peggio ancora che alcuni dati che dovrebbe estrarre non vengano &#8220;trovati&#8221;.<br>Questo succede se lo strumento con cui viene eseguito il comando SQL (STRSQL nativo AS400, strumenti esterni via ODBC, JDBC, OLEDB, ecc.) riscontra dei problemi nella conversione dei valori presenti all&#8217;interno delle varie colonne estratte (spesso dovuti a CCSID incompatibili fra Sistemi).In circostanze di questo genere \u00e8 necessario individuare per tentativi quali colonne NON estrarre o tentare di estrarre effettuando la conversione a carattere con la funzione &#8220;Char(colonna)&#8221;.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"32\" height=\"32\" class=\"wp-image-3817\" style=\"width: 32px;\" src=\"https:\/\/www.skillup.cloud\/wp-content\/uploads\/2023\/11\/Actions-help-hint-icon.png\" alt=\"\">Casi in cui pu\u00f2 essere utile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>conoscere quali Funzionalit\u00e0 di un Programma NON vengono MAI utilizzate (e quindi potrebbero essere rimossi dai Sorgenti alleggerendone la gestione)<\/li>\n\n\n\n<li>conoscere quali Utenti utilizzano determinate Funzionalit\u00e0 di un Programma<\/li>\n\n\n\n<li>conoscere in quali giorni \/ orari vengono utilizzate determinate Funzionalit\u00e0 di un Programma.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>SQL per ricavare lo &#8220;Stack&#8221; delle chiamate di un Lavoro Nel caso in cui dovesse essere necessario sapere lo &#8220;Stack&#8221; delle chiamate che vengono effettuate da un lavoro attivo, potrebbe essere utile utilizzare il seguente comando SQL: SELECT THREAD_ID ,&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[16],"tags":[31,40,46,76,29],"class_list":["post-3837","post","type-post","status-publish","format-standard","hentry","category-iniziamo-con-alcuni-esempi","tag-db2","tag-iseries","tag-sql","tag-stack_info","tag-as400"],"_links":{"self":[{"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/posts\/3837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/comments?post=3837"}],"version-history":[{"count":3,"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/posts\/3837\/revisions"}],"predecessor-version":[{"id":3904,"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/posts\/3837\/revisions\/3904"}],"wp:attachment":[{"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/media?parent=3837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/categories?post=3837"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skillup.cloud\/it\/wp-json\/wp\/v2\/tags?post=3837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}