<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5706577239959749713</id><updated>2011-12-21T09:52:39.032+01:00</updated><category term='trucos'/><category term='tools'/><category term='blog'/><category term='notas'/><category term='seguridad'/><category term='howto'/><title type='text'>Howto and Tools for AS/400 iSeries</title><subtitle type='html'>Documentos y  utilidades para AS/400 que he ido creando y recopilando a lo largo de los años trabajando con este gratificante sistema operativo.
www.as400howto.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>100</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5200876969154188116</id><published>2011-12-21T09:18:00.002+01:00</published><updated>2011-12-21T09:52:39.039+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Felices Fiestas y prospero 2012</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bcOWgQBhkQY/TvGU_EDzGWI/AAAAAAAAQYw/lICZnpXfwjk/s1600/arbol-de-navidad-con-estrella.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-bcOWgQBhkQY/TvGU_EDzGWI/AAAAAAAAQYw/lICZnpXfwjk/s200/arbol-de-navidad-con-estrella.png" width="181" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: large;"&gt;Os deseo unas felices fiestas y un prospero año 2012, que el sentido común&amp;nbsp;guié&amp;nbsp; nuestros actos, en un futuro que se prevee difícil, y que los que trabajamos con sistemas &lt;b&gt;AS400&lt;/b&gt; lo tengamos un poco mejor.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;b&gt;pd:&lt;/b&gt; Aunque el blog esta en "standby", espero poder reanudar la publicación de nuevos&amp;nbsp;artículos&amp;nbsp;en las&amp;nbsp;próximas&amp;nbsp;semanas.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5200876969154188116?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5200876969154188116/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5200876969154188116' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5200876969154188116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5200876969154188116'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/12/felices-fiestas-y-prospero-2012.html' title='Felices Fiestas y prospero 2012'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-bcOWgQBhkQY/TvGU_EDzGWI/AAAAAAAAQYw/lICZnpXfwjk/s72-c/arbol-de-navidad-con-estrella.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Kiritimati / Isla Navidad, Kiribati</georss:featurename><georss:point>1.78022 -157.3086236</georss:point><georss:box>1.5262845 -157.6244806 2.0341555 -156.9927666</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4741561641274872971</id><published>2011-09-22T17:22:00.000+02:00</published><updated>2011-09-22T17:22:30.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Activada visualizacion en moviles</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-OFlaEx-kTV4/TntSeI7l7UI/AAAAAAAAQDw/-v_Rbbpedf4/s1600/as400howto_for_phone.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-OFlaEx-kTV4/TntSeI7l7UI/AAAAAAAAQDw/-v_Rbbpedf4/s1600/as400howto_for_phone.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Activada la funcionalidad de Blogger para la publicación de las entradas de este blog en formato para móviles&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4741561641274872971?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4741561641274872971/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4741561641274872971' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4741561641274872971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4741561641274872971'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/09/activada-visualizacion-en-moviles.html' title='Activada visualizacion en moviles'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-OFlaEx-kTV4/TntSeI7l7UI/AAAAAAAAQDw/-v_Rbbpedf4/s72-c/as400howto_for_phone.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5157200821728181864</id><published>2011-09-15T19:17:00.000+02:00</published><updated>2011-09-15T19:20:02.154+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Tango/04 Computing Group - 20º Aniversario</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;La empresa Tango/04, dedicada a diseñar productos de visualización de eventos (monitorizacion pero de alto nivel y calidad), &amp;nbsp;cumple años y ha publicado un &lt;a href="http://www.tango04.com/es/20-aniversario"&gt;"timeline&lt;/a&gt;" de los principales hitos de sus productos.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" height="168" src="http://4.bp.blogspot.com/-kQuWmvfrc7k/TnIw7oBXdoI/AAAAAAAAPZw/OZKi25BYGKQ/s400/20Tango04.PNG" width="400" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: large;"&gt;&lt;b&gt;¡¡ F&lt;span class="Apple-style-span" style="color: red;"&gt;e&lt;/span&gt;l&lt;span class="Apple-style-span" style="color: orange;"&gt;i&lt;/span&gt;c&lt;span class="Apple-style-span" style="color: yellow;"&gt;i&lt;/span&gt;d&lt;span class="Apple-style-span" style="color: lime;"&gt;a&lt;/span&gt;d&lt;span class="Apple-style-span" style="color: blue;"&gt;e&lt;/span&gt;s !!&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5157200821728181864?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5157200821728181864/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5157200821728181864' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5157200821728181864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5157200821728181864'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/09/tango04-computing-group-20-aniversario.html' title='Tango/04 Computing Group - 20º Aniversario'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-kQuWmvfrc7k/TnIw7oBXdoI/AAAAAAAAPZw/OZKi25BYGKQ/s72-c/20Tango04.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-722044618973525839</id><published>2011-08-01T09:08:00.000+02:00</published><updated>2011-09-02T09:18:55.103+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Estoy de vacaciones</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2wbHq6cjihE/TmCDVu8gf-I/AAAAAAAAPZQ/wvJ8ZlDiZU4/s1600/cerradoxvacaciones.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://4.bp.blogspot.com/-2wbHq6cjihE/TmCDVu8gf-I/AAAAAAAAPZQ/wvJ8ZlDiZU4/s320/cerradoxvacaciones.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-722044618973525839?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/722044618973525839/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=722044618973525839' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/722044618973525839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/722044618973525839'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/08/estoy-de-vacaciones.html' title='Estoy de vacaciones'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-2wbHq6cjihE/TmCDVu8gf-I/AAAAAAAAPZQ/wvJ8ZlDiZU4/s72-c/cerradoxvacaciones.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-860273507241570503</id><published>2011-06-21T20:44:00.002+02:00</published><updated>2011-06-21T20:46:51.100+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Averiguar cuando se hizo el ultimo SAVSYS</title><content type='html'>&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/-hROT5IIMo0E/TgDmCyNYgpI/AAAAAAAAOhQ/WYiddf73oFE/s1600/IBM7208-002-012.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Si nunca habéis tenido la necesidad de averiguar cuando se hizo el ultimo SAVSYS en nuestro&amp;nbsp;sistema AS400, aquí tenéis un enlace a un interesante articulo donde explica como averiguarlo:&lt;/span&gt; &lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://systeminetwork.com/article/when-was-my-last-savsys-savcfg-savsecdta"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;When Was Your Last SAVSYS, SAVCFG, SAVSECDTA?&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img border="0" i$="true" src="http://3.bp.blogspot.com/-hROT5IIMo0E/TgDmCyNYgpI/AAAAAAAAOhQ/WYiddf73oFE/s1600/IBM7208-002-012.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-860273507241570503?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/860273507241570503/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=860273507241570503' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/860273507241570503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/860273507241570503'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/06/averiguar-cuando-se-hizo-el-ultimo.html' title='Averiguar cuando se hizo el ultimo SAVSYS'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-hROT5IIMo0E/TgDmCyNYgpI/AAAAAAAAOhQ/WYiddf73oFE/s72-c/IBM7208-002-012.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-86278773116138848</id><published>2011-05-11T17:47:00.000+02:00</published><updated>2011-09-15T19:41:00.984+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Control umbral de disco</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Una de las preocupaciones de todo administrador de sistemas es la del espacio en disco disponible en el sistema.&lt;br /&gt;Debemos evitar una caída del sistema por ocupación en disco, ya que un IPL anormal por dicha causa tendrá una larga duración, y ademas no es seguro que se libere el espacio en disco suficiente para terminarla sin intervención manual desde la consola.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Nuestro sistema AS400 tiene dos formas de avisarnos cuando el sistema esta llegando al porcentaje de uso del umbral (predefinido) de ocupación en disco:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;(&lt;b style="background-color: white; color: red;"&gt;A&lt;/b&gt;) La de "toda la vida": El sistema operativo empieza a enviar mensajes de aviso cuando la ocupación en disco supera el umbral definido en la configuración del disco, normalmente del 90%. A partir de ese momento empieza a enviar el mensaje &lt;b&gt;CPF0907 "Serious storage condition may exist. Press HELP."&lt;/b&gt; a la cola del operador (QSYSOPR) y al histórico del sistema (DSPLOG). Este mensaje nos indica la cantidad de almacenamiento disponible, el usado y el porcentaje de almacenamiento libre en ese instante. Si tenemos creada la cola de mensaje QSYSMSG (ver &lt;a href="http://as400howto.blogspot.com/2009/05/crear-cola-de-mensajes-qsysmsg.html"&gt;Cola de mensajes QSYSMSG&lt;/a&gt;) también los recibiremos en esa cola de mensajes especial.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Para ver y/o modificar el umbral, debemos arrancar las herramientas de servicio (DST), para ello nuestro perfil de usuario debe ser de tipo *SECOFR y tener autorización *SERVICE como mínimo. Para entrar en la herramienta de las DST teclearemos el mandato&lt;b&gt; &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzamh%2Frzamhwhatdstsst.htm"&gt;STRSST&lt;/a&gt;&lt;/b&gt;,&lt;b&gt; &lt;/b&gt;que nos pedirá el usuario de servicio y contraseña.&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-4S2pKu0KDoQ/TcqVkC89JDI/AAAAAAAAOTo/7nG3lMYqGzI/s1600/STRSST.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="125" src="http://4.bp.blogspot.com/-4S2pKu0KDoQ/TcqVkC89JDI/AAAAAAAAOTo/7nG3lMYqGzI/s320/STRSST.gif" width="320" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Seleccionamos la opción &lt;b&gt;3. Work with disk units&amp;nbsp;&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-NxsiolPPeuc/TcqVliuqWpI/AAAAAAAAOT0/fZNuTTVpOcA/s1600/SSTmenu.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://3.bp.blogspot.com/-NxsiolPPeuc/TcqVliuqWpI/AAAAAAAAOT0/fZNuTTVpOcA/s320/SSTmenu.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Después seleccionar la opción &lt;b&gt;2. Work with disk configuration&lt;/b&gt; y a continuación seleccionaremos la opción &lt;b&gt;3. Work with ASP threshold&lt;/b&gt;, que nos mostrara los umbrales de todas las ASP de disco que tengamos configuradas.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-NaGUZUaexjI/TcqVlyJmubI/AAAAAAAAOT4/CLnCfSXmXuk/s1600/SST-WRKDSK3_menu.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="63" src="http://3.bp.blogspot.com/-NaGUZUaexjI/TcqVlyJmubI/AAAAAAAAOT4/CLnCfSXmXuk/s320/SST-WRKDSK3_menu.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Para modificar el umbral de una ASP, seleccionarla con un &lt;b&gt;1&lt;/b&gt; y pulsar &lt;b&gt;Intro&lt;/b&gt;:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-esgdtxQEC1M/TcqVmMDb4FI/AAAAAAAAOT8/9F1491PamMQ/s1600/SST-WRKDSK31_menu.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://4.bp.blogspot.com/-esgdtxQEC1M/TcqVmMDb4FI/AAAAAAAAOT8/9F1491PamMQ/s320/SST-WRKDSK31_menu.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Introducir el nuevo umbral, &lt;b&gt;en %&lt;/b&gt;, que deseemos que el i5/OS a partir del cual nos envié el mensaje de aviso.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Para salir de las DST iremos pulsando &lt;b&gt;F3&lt;/b&gt; y finalmente nos pedirá confirmación para salir pulsando &lt;b&gt;Intro&lt;/b&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-G14zCiuQUp4/TcqVlL31B1I/AAAAAAAAOTw/mZ9Ulo9IRSw/s1600/SST-end_menu.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="64" src="http://4.bp.blogspot.com/-G14zCiuQUp4/TcqVlL31B1I/AAAAAAAAOTw/mZ9Ulo9IRSw/s320/SST-end_menu.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;(&lt;b style="background-color: white; color: red;"&gt;B&lt;/b&gt;) La otra de las opciones es utilizar los valores de sistema de control del almacenamiento, usar WRKSYSVAL SYSVAL(*STG) para verlos:&lt;/div&gt;&lt;ul&gt;&lt;li style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;QSTGLOWACN&amp;nbsp; Auxiliary storage lower limit action&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;QSTGLOWLMT&amp;nbsp; Auxiliary storage lower limit&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;El valor de sistema QSTGLOWLMT, nos permite, conjuntamente con el valor QSTGLOWACN, controlar que  debe hacer el sistema operativo cuando llega a cierto limite de  ocupación en disco. Su valor indica el porcentaje de disco libre (límite inferior), por omisión es el 5%, a partir del cual empezara a ejecutar la acción definida en el valor QSTGLOWACN, en este caso cuando el sistema llegue al 95% de ocupación en disco.&lt;br /&gt;El valor de sistema QSTGLOWACN puede tener los siguientes valores, con los 3 primeros valores hemos de preocuparnos de que hacer cuando el sistema llegue a su limite inferior de almacenamiento:&lt;/div&gt;&lt;ul&gt;&lt;li style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;*MSG:&lt;/b&gt; Este es el valor por omisión, e indica que se envié el mensaje &lt;b&gt;CPI099C " Critical storage lower limit reached"&lt;/b&gt; a la cola del operador QSYSOPR (y por ende al histórico del sistema) y a la cola QSYSMSG, si esta existe.&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;*CRITMSG:&lt;/b&gt; Indica que se enviará el mensaje &lt;b&gt;CPI099B "Critical storage condition exists"&lt;/b&gt; a los usuarios designados en los atributos de servicio (&lt;a href="http://publib.boulder.ibm.com/infocenter/powersys/v3r1m5/topic/areaj/srvval.htm"&gt;CHGSRVA&lt;/a&gt;).&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;*ENDSYS&lt;/b&gt;: Indica que finalizara TODOS los trabajos y subsistemas y dejara el sistema en estado restringido (subsistema QCTL o QBASE activo desde consola). Esta opción es la más recomendable en sistemas de desarrollo, o no críticos, ya que, aunque podrían haber perdidas de datos  (ya que se cancelaran los trabajos que se están ejecutando así como dejaremos de dar servicio), en cambio nos protege una parada incontrolada del sistema cuando llegue al 100% de ocupación en disco y que nos forzaría a una IPL anormal, mucho mas lenta, ademas nos permitirá liberar espacio de disco manualmente, desde la consola, con lo que acortaremos el tiempo de recuperación del sistema.&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;*PWRDWNSYS&lt;/b&gt;: Ejecutará el mandato PWRDWSYS dejando el sistema apagado. &lt;u&gt;No recomiendo para nada esta opción&lt;/u&gt;, antes es mejor tener el valor *ENDSYS para dejarlo en restringido. &lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;*REGFAC&lt;/b&gt;: Ejecutará el exit program registrado para el exit point "&lt;b&gt;QIBM_QWC_QSTGLOWACN&lt;/b&gt;". Con esto podemos conseguir que cuando se llegue al límite inferior de ocupación en disco, el sistema operativo ejecute el&amp;nbsp; programa que definamos nosotros. Este programa podría ejecutar, entre otras cosas:&lt;/li&gt;&lt;/ul&gt;&lt;ol style="text-align: justify;"&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;La finalización controlada de aplicaciones no necesarias.&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;La finalización controlada de transcriptores (impresoras).&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Retener colas de trabajos batch.&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;La eliminación de datos, u objetos, temporales y no necesarios. &lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;etc...&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Si no podemos corregir la situación, podremos realizar una parada controlada del sistema para evitar daños mayores.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Para ver, definir, o cambiar el valor del exit program, ejecutar el mandato WRKREGINF EXITPNT(QIBM_QWC_QSTGLOWACN) y la opción &lt;b&gt;8=Work with exit programs&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Js51UaRfFBI/Tcql435OM1I/AAAAAAAAOUE/Waet3DmrFfg/s1600/QIBM_QWC_QSTGLOWACN.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://3.bp.blogspot.com/-Js51UaRfFBI/Tcql435OM1I/AAAAAAAAOUE/Waet3DmrFfg/s320/QIBM_QWC_QSTGLOWACN.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-86278773116138848?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/86278773116138848/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=86278773116138848' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/86278773116138848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/86278773116138848'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/05/control-umbral-de-disco.html' title='Control umbral de disco'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-4S2pKu0KDoQ/TcqVkC89JDI/AAAAAAAAOTo/7nG3lMYqGzI/s72-c/STRSST.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4837183336153147914</id><published>2011-04-15T10:00:00.028+02:00</published><updated>2011-04-15T15:18:45.558+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Utilidad CHGOBJAUT</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La utilidad CHGOBJAUT nos permite cambiar los permisos de uno, o varios, objetos de una biblioteca.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-k24KVu7RfDU/TaASr1D-C5I/AAAAAAAAN9o/QbVKtJ1spg4/s1600/CHGOBJAUT.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="62" src="http://2.bp.blogspot.com/-k24KVu7RfDU/TaASr1D-C5I/AAAAAAAAN9o/QbVKtJ1spg4/s320/CHGOBJAUT.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Por ejemplo el mandato: &lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CHGOBJAUT LIB(MYLIB) OBJ(XYZ*) TYPE(*FILE) USER(AN_USER) AUT(*CHANGE)&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Otorgara autorización *CHANGE al usuario AN_USER a todos los objetos tipo *FILE de la biblioteca MYLIB que su nombre de objeto empiece por XYZ. &lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;La diferencia con el mandato GRTOBJAUT, es que CHGOBJAUT solo cambiara la autorización si esta es diferente, para comprobar esta diferencia utiliza la utilidad &lt;a href="http://as400howto.blogspot.com/2011/04/utilidad-cmpobjaut.html"&gt;CMPOBJAUT&lt;/a&gt; publicada anteriormente en este blog.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Cuando finaliza la ejecución del mandato CHGOBJAUT envía el mensaje CPF9897 informando del resultado de su ejecución:&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Procesados 0000000018 objetos. No se ha otorgado autorización a&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; 0000000000 objetos.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Podéis bajar el código de esta utilidad del grupo &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=81e67f1a-3698-4109-b043-06fd5bbb8acb#fullpageWidgetId=Wfb71c05c1300_4fa6_b95c_cd1c744f38d7&amp;amp;file=8a705dd3-c219-4880-9d5c-76c17907d1f6" target="_new"&gt;Recursos AS400 en IBM developersWorks&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4837183336153147914?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4837183336153147914/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4837183336153147914' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4837183336153147914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4837183336153147914'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/04/utilidad-chgobjaut.html' title='Utilidad CHGOBJAUT'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-k24KVu7RfDU/TaASr1D-C5I/AAAAAAAAN9o/QbVKtJ1spg4/s72-c/CHGOBJAUT.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1084408569633926265</id><published>2011-04-09T09:48:00.004+02:00</published><updated>2011-04-09T09:57:48.534+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Utilidad CMPOBJAUT</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;El mandato CMPOBJAUT nos permite, dentro de un programa, comparar la autorización de un objeto para un usuario concreto.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PjV-86-OgHg/TaAMieMIBTI/AAAAAAAAN9k/hlTLGt0LsbE/s1600/CMPOBJAUT.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" src="http://4.bp.blogspot.com/-PjV-86-OgHg/TaAMieMIBTI/AAAAAAAAN9k/hlTLGt0LsbE/s320/CMPOBJAUT.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Por ejemplo con el siguiente mandato:&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CMPOBJAUT LIB(MYLIB) OBJ(AN_OBJECT) TYPE(*FILE) USER(AN_USER) AUT(*USE) LGL (&amp;amp;MATCH)&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Verificaremos si el usuario AN_USER tiene autorización *USE al archivo MYLIB/AN_OBJECT, si es así devolverá un '0' en la variable &amp;amp;MATCH, si es diferente devuelve '1'.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Podéis bajar el código de esta utilidad del grupo &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=81e67f1a-3698-4109-b043-06fd5bbb8acb#fullpageWidgetId=Wfb71c05c1300_4fa6_b95c_cd1c744f38d7&amp;amp;file=07c72896-baff-4903-9655-ecf76647abe3" target="_new"&gt;Recursos AS400 en IBM developersWorks&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1084408569633926265?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1084408569633926265/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1084408569633926265' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1084408569633926265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1084408569633926265'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/04/utilidad-cmpobjaut.html' title='Utilidad CMPOBJAUT'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-PjV-86-OgHg/TaAMieMIBTI/AAAAAAAAN9k/hlTLGt0LsbE/s72-c/CMPOBJAUT.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4235128671381229248</id><published>2011-03-18T20:23:00.001+01:00</published><updated>2011-03-23T19:53:22.697+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Mandato para añadir dias a una fecha (ADDDAT)</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Con el mandato &lt;b&gt;ADDDAT&lt;/b&gt; podemos sumar o restar días a una fecha, es muy útil para utilizarlo en programas CL.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-caEPQ1Fo48o/TYOuGblbXpI/AAAAAAAAN30/GyWrCuvkEzE/s1600/adddat.GIF" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="https://lh4.googleusercontent.com/-caEPQ1Fo48o/TYOuGblbXpI/AAAAAAAAN30/GyWrCuvkEzE/s400/adddat.GIF" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Debemos pasar en el parámetro &lt;b&gt;DAYS&lt;/b&gt; el numero de días a añadir, o sustraer, a la fecha que le pasamos en el parámetro &lt;b&gt;DAT&lt;/b&gt;E, por omisión tiene el valor especial &lt;b&gt;*TODAY&lt;/b&gt; que recuperara la fecha del sistema. La nueva fecha la devuelve en la variable que pongamos en el parámetro &lt;b&gt;TOVAR&lt;/b&gt;. &lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/3310dee6-76ac-428f-8d58-21e068923e38/media/ADDDAT-To_add_n_days_to_a_date.rar"&gt;Podéis bajaros el código de esta utilidad desde este enlace&lt;/a&gt; en &lt;a href="http://bit.ly/db68dd"&gt;&lt;b&gt;Recursos400 de IBM DeveloperWorks&lt;/b&gt;&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4235128671381229248?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4235128671381229248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4235128671381229248' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4235128671381229248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4235128671381229248'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/03/mandato-para-anadir-dias-una-fecha.html' title='Mandato para añadir dias a una fecha (ADDDAT)'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-caEPQ1Fo48o/TYOuGblbXpI/AAAAAAAAN30/GyWrCuvkEzE/s72-c/adddat.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7259106687519352057</id><published>2011-03-16T22:46:00.079+01:00</published><updated>2011-03-18T17:06:53.309+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Autoarranque servicios TCP/IP</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-SfJeBJINap8/TWfl7VpUveI/AAAAAAAAN2Q/495tTgVaW8U/s1600/tcpip_world.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="114" src="http://4.bp.blogspot.com/-SfJeBJINap8/TWfl7VpUveI/AAAAAAAAN2Q/495tTgVaW8U/s200/tcpip_world.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El mandato STRTCPSVR tiene el valor *ALL por omisión para el parámetro SERVER. Si no tenemos controlado el uso de este mandato, se arrancaran un montón de servicios TCP/IP y que puede que no necesitemos en nuestras aplicaciones, consumiendo además, recursos del sistema para nada.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Un ejemplo podría ser el servidor de correo SMTP que, evidentemente si no lo usamos en nuestro sistema, puede consumir recursos y darnos algún dolor de cabeza. &lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Por esta razón recomiendo cambiar el valor por defecto del comando STRTCPSVR (solo&amp;nbsp;válido solo para las versiones del OS/400 V4R5 o superiores):&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: left;"&gt;CHGCMDDFT&amp;nbsp; CMD(STRTCPSVR) NEWDFT('SERVER(*AUTOSTART)') &lt;/div&gt;&lt;br /&gt;De esta forma si se ejecuta un STRTCPSVR sin parámetros, en lugar de arrancar todos los servicios TCP/IP, solo se arrancaran los que hayamos definido como autoarranque nosotros. Además prevendremos posibles ataques por los puertos de los servicios que no estamos utilizando.&lt;br /&gt;&lt;br /&gt;¿Como hacemos esto?, pues con el mandato CFGTCP, seleccionamos la opción 20, y vamos modificando todos servicios, que nos interese arrancar automáticamente, con el parámetro AUTOSTART(*YES), el resto los dejamos con el valor *NO. Eso si hemos de tener muy claro que servicios usamos y cuales no.&lt;br /&gt;Para algunos servicios existen comandos para cambiarlos directamente desde la linea de mandatos, por ejemplo para el FTP Trivial: CHGTFTPA AUTOSTART(*NO) &lt;br /&gt;&lt;br /&gt;&lt;b&gt;¡¡Ojo&lt;/b&gt;!! Hay algunos servicios que solo se pueden configurar desde el "Navegador de Operaciones" (menú Network, Servers, TCP/IP). Para modificarlos usar el botón derecho sobre cada servicio (Propiedades) y desmarcar o marcar la casilla "Start when TCP/IP is started".&lt;br /&gt;&lt;br /&gt;&lt;b&gt;¡¡Ojo&lt;/b&gt;!!&amp;nbsp; También deberemos verificar el programa QSTRUP, o el que utilicemos en nuestro sistema, no tenga "hardcode" el mandato &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;STRTCPSVR SERVER(*ALL). &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7259106687519352057?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7259106687519352057/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7259106687519352057' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7259106687519352057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7259106687519352057'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/03/autoarranque-servicios-tcpip.html' title='Autoarranque servicios TCP/IP'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-SfJeBJINap8/TWfl7VpUveI/AAAAAAAAN2Q/495tTgVaW8U/s72-c/tcpip_world.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3372057830148576656</id><published>2011-03-05T17:20:00.003+01:00</published><updated>2011-04-01T19:29:24.988+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Gestionar mejor la configuracion de subsistemas</title><content type='html'>&lt;span style="font-family: Verdana,sans-serif;"&gt;En varias de las entradas del blog se mostraba como "tunear" nuestros subsistemas:&lt;/span&gt;&lt;br /&gt;&lt;a class="l" href="http://as400howto.blogspot.com/2008/11/asignar-prioridad-automticamente.html" onmousedown="function onmousedown(){function onmousedown(){function onmousedown(){return clk(this.href,'','','','6','','0CB8QFjAF')}}}"&gt;&lt;span style="color: #551a8b; font-family: Verdana,sans-serif;"&gt;Asignar prioridad automáticamente&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="l" href="http://as400howto.blogspot.com/2009/05/cola-de-trabajos-independiente.html" onmousedown="function onmousedown(){function onmousedown(){function onmousedown(){return clk(this.href,'','','','12','','0CAkQFjABOAo')}}}"&gt;&lt;span style="color: #0000cc; font-family: Verdana,sans-serif;"&gt;Cola de trabajos independiente&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="l" href="http://as400howto.blogspot.com/2008/10/memoria-para-subsistema-dedicado.html" onmousedown="function onmousedown(){function onmousedown(){function onmousedown(){return clk(this.href,'','','','1','','0CAYQFjAA')}}}"&gt;&lt;span style="color: #551a8b; font-family: Verdana,sans-serif;"&gt;Memoria para subsistema&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;a class="l" href="http://as400howto.blogspot.com/2009/06/colas-de-trabajos.html" onmousedown="function onmousedown(){function onmousedown(){function onmousedown(){return clk(this.href,'','','','5','','0CBoQFjAE')}}}"&gt;&lt;span style="color: #551a8b; font-family: Verdana,sans-serif;"&gt;Colas de trabajos&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;a class="l" href="http://as400howto.blogspot.com/2009/06/entradas-de-direccionamiento.html" onmousedown="function onmousedown(){function onmousedown(){function onmousedown(){return clk(this.href,'','','','8','','0CCkQFjAH')}}}"&gt;&lt;span style="color: #0000cc; font-family: Verdana,sans-serif;"&gt;Entradas de direccionamiento&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="l" href="http://as400howto.blogspot.com/2008/12/cambiar-inicio-de-sesin.html" onmousedown="function onmousedown(){function onmousedown(){function onmousedown(){return clk(this.href,'','','','10','','0CDMQFjAJ')}}}"&gt;&lt;span style="color: #0000cc; font-family: Verdana,sans-serif;"&gt;Cambiar inicio de sesión&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;La gente de &lt;/span&gt;&lt;a href="http://systeminetwork.com/"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;System i Network&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt; publica utilidades y artículos muy interesantes, y muchos de ellos nos pueden ser de mucha utilidad. Entre ellas han publicado unas utilidades de &lt;a href="http://systeminetwork.com/author/carsten-flensburg"&gt;Carsten Flensburg&lt;/a&gt; que nos pueden facilitar las tareas de configuración de los subsistemas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Están d¡vididas en cuatro artículos titulados:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Carsten's Corner - New Subsystem Entry Commands&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://systeminetwork.com/article/carstens-corner-new-subsystem-entry-commands-part-one"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;New Subsystem Entry Commands - Part 1&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://systeminetwork.com/article/carstens-corner-new-subsystem-entry-commands-part-two"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;New Subsystem Entry Commands - Part 2&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://systeminetwork.com/article/carstens-corner-new-subsystem-entry-commands-part-3"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;New Subsystem Entry Commands - Part 3&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://systeminetwork.com/article/carstens-corner-new-subsystem-entry-commands-part-4"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;New Subsystem Entry Commands - Part 4&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3372057830148576656?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3372057830148576656/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3372057830148576656' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3372057830148576656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3372057830148576656'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/03/gestionar-mejor-la-configuracion-de.html' title='Gestionar mejor la configuracion de subsistemas'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5654275318051621863</id><published>2011-02-25T17:56:00.001+01:00</published><updated>2011-02-25T17:56:49.408+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Nueva version utilidad CPYJOBSPL</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SWsJRymkaaI/AAAAAAAAGJw/Z5K62nCTfjk/s200/engranaje2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SWsJRymkaaI/AAAAAAAAGJw/Z5K62nCTfjk/s200/engranaje2.jpg" /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;La utilidad CPYJOBSPL ha sido modificada para habilitar el parámetro MAXSIZ cuando seleccionamos la opción *TEXT en el parámetro TOFMT. Esta opción solo funcionaba con la opción *SPL y esta pensada para evitar copiar archivos demasiado grandes, cuando solo queremos documentar una parte del proceso.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Ir al articulo &lt;a href="http://as400howto.blogspot.com/2008/10/copiar-archivos-spool-de-trabajo.html"&gt;Copiar  archivos spool.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5654275318051621863?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5654275318051621863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5654275318051621863' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5654275318051621863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5654275318051621863'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/02/la-utilidad-cpyjobspl-ha-sido.html' title='Nueva version utilidad CPYJOBSPL'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SWsJRymkaaI/AAAAAAAAGJw/Z5K62nCTfjk/s72-c/engranaje2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3955110361155107151</id><published>2011-02-12T18:18:00.001+01:00</published><updated>2011-03-18T18:11:14.790+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Copiar archivos fuentes a un directorio</title><content type='html'>&lt;div align="left" class="Estilo139"&gt;&lt;div align="left"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Utilidad que copia miembros, de un archivo de fuentes, a archivos en formato de pc (ANSI), en un directorio del AS400.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-U39weTGQ8z8/TVa_90sp9fI/AAAAAAAANy0/16tSwo84wNw/s1600/CPYSRCTOPC.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" h5="true" height="67" src="http://3.bp.blogspot.com/-U39weTGQ8z8/TVa_90sp9fI/AAAAAAAANy0/16tSwo84wNw/s320/CPYSRCTOPC.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;El archivo de salida lo renombra con esta nomenclatura:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Miembro.Atributo_Descripcion.TXT&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/9d1e426c-c6b7-47d4-b37a-f74e91c55cfa/media/CPYSRCTOPC_Copia%20miembros%20a%20archivos%20ANSI.zip"&gt;Podéis bajaros el código desde este enlace&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Verdana;"&gt;Utilidad publicada, en el año 2000, en mi antigua web "&lt;a href="http://www.telefonica.net/web2/motxilla/AS400/AS400.htm"&gt;Utilitats per a..., Utilidades para..., Tools for AS/400 iSeries&lt;/a&gt;"&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3955110361155107151?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3955110361155107151/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3955110361155107151' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3955110361155107151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3955110361155107151'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/02/copiar-archivos-fuentes-un-directorio.html' title='Copiar archivos fuentes a un directorio'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-U39weTGQ8z8/TVa_90sp9fI/AAAAAAAANy0/16tSwo84wNw/s72-c/CPYSRCTOPC.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7436185413410439145</id><published>2011-01-31T15:08:00.000+01:00</published><updated>2011-02-12T17:59:44.511+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Cambio ubicacion utilidades publicadas</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="https://picasaweb.google.com/lh/photo/L33DjauU99v6iL3v0cFoIHykZZlAtFbgyc51ylcDdRc?feat=embedwebsite" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img height="144" src="https://lh6.googleusercontent.com/_ORi3k4zAPi4/S9aTXPwHDwI/AAAAAAAALTU/BTfTd5swAqM/s144/dW_RecursosAS400.jpg" width="144" /&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Debido a los problemas para descargar las utilidades desde &lt;a href="http://sites.google.com/"&gt;Google Sites&lt;/a&gt;,&amp;nbsp;estoy&amp;nbsp;moviendolas a la web de &lt;a href="http://bit.ly/db68dd"&gt;Recursos AS400&lt;/a&gt; en &lt;a href="http://www.ibm.com/developerworks"&gt;IBM Developers&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Podeis ver todas las &lt;a href="http://as400howto.blogspot.com/search/label/tools"&gt;utilidades publicadas en este blog hasta el momento en este enlace&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7436185413410439145?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7436185413410439145/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7436185413410439145' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7436185413410439145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7436185413410439145'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2011/02/cambio-ubicacion-utilidades-publicadas.html' title='Cambio ubicacion utilidades publicadas'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/_ORi3k4zAPi4/S9aTXPwHDwI/AAAAAAAALTU/BTfTd5swAqM/s72-c/dW_RecursosAS400.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7619101591724602237</id><published>2010-12-20T13:11:00.000+01:00</published><updated>2010-12-20T13:11:49.872+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Feliz Navidad y Prospero año nuevo</title><content type='html'>&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;b&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/TQ9Hy3vG2II/AAAAAAAANqQ/OONqOISAHUI/s1600/bonnadal2011.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/TQ9Hy3vG2II/AAAAAAAANqQ/OONqOISAHUI/s320/bonnadal2011.jpg" width="256" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Feliç Any Nou, Feliz Año Nuevo, Happy New Year, Neues frohes Jahr, Bonne  Année, Felice anno nuevo, Ano feliz novo, Mutlu yeni yıl, Nowy  Szczęśliwy Rok, prosperu añu nuevu, Erós An Nau, srecno novo leto, shoma  mobarak bashad, Feliz AniNovo, Boldog Új Évet Kívánok, Farsaelt Komandi  ar, Appi Niu Yaa, Annum Nuevo, Xin Nian Kuai Le, bona annada,  Te-Pito-O-Te-Henua, Anul Nou Fericit, prosperu annu nou, Vesela Nova  Gomina, Manigong Bagong Taon, Hepi Nu Yia…&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7619101591724602237?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7619101591724602237/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7619101591724602237' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7619101591724602237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7619101591724602237'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/12/feliz-navidad-y-prospero-ano-nuevo.html' title='Feliz Navidad y Prospero año nuevo'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/TQ9Hy3vG2II/AAAAAAAANqQ/OONqOISAHUI/s72-c/bonnadal2011.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-357334981198932284</id><published>2010-11-08T10:00:00.005+01:00</published><updated>2010-11-08T10:00:06.688+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Estadisticas espacio en disco</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Muchos de nosotros conocemos la utilidad del sistema para recoger las estadísticas de uso de disco. Para los que no las conozcan se accede a ellas con el mandato &lt;span style="font-weight: bold;"&gt;GO MENU(DISKTASKS)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SkNoLTJFbWI/AAAAAAAAHiw/qdipVfYPyb0/s1600-h/DISKTASKS.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5351235325572509026" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SkNoLTJFbWI/AAAAAAAAHiw/qdipVfYPyb0/s200/DISKTASKS.gif" style="display: block; height: 127px; margin: 0px auto 10px; text-align: center; width: 200px;" /&gt;&lt;/a&gt;Con ellas podemos planificar la recogida de datos de ocupación de disco (mandato &lt;span style="font-weight: bold;"&gt;RTVDSKINF&lt;/span&gt;), ya que el proceso suele tardar horas, y la impresión de los informes de los datos recogidos (mandato &lt;span style="font-weight: bold;"&gt;PRTDSKINF&lt;/span&gt;), con varios niveles de detalle.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Lo más habitual es planificar la recogida de datos de ocupación en disco semanalmente (o mensualmente) durante el fin de semana (por ejemplo), con la opción &lt;span style="font-weight: bold;"&gt;1. Collect disk space information&lt;/span&gt;, e imprimir el informe al lunes siguiente.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Cuando planificamos la recogida el sistema nos añade una entrada en el planificador de trabajos denominada &lt;span style="font-weight: bold;"&gt;QEZDKWKMTH&lt;/span&gt;, lo podemos ver con el mandato WRKJOBSCDE JOB(QEZDK*).&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;El trabajo QEZDKWKMTH graba los datos en el archivo QUSRSYS/QAEZDISK, no confundir con el mismo archivo en la biblioteca QSYS ya que esta vacío. Cada vez que se lanza el trabajo QEZDKWKMTH limpia, antes de empezar, el archivo QAEZDISK, de la QUSRSYS, para insertar los nuevos datos en la siguiente ejecución.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-357334981198932284?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/357334981198932284/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=357334981198932284' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/357334981198932284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/357334981198932284'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/11/estadisticas-espacio-en-disco.html' title='Estadisticas espacio en disco'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SkNoLTJFbWI/AAAAAAAAHiw/qdipVfYPyb0/s72-c/DISKTASKS.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7853458638357054702</id><published>2010-10-25T07:00:00.006+02:00</published><updated>2010-10-25T07:00:04.470+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Cambio hora verano/invierno</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SO9VFiIsvdI/AAAAAAAAEjA/8SC2HxQ1RSM/s1600/reloj_de_arena.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SO9VFiIsvdI/AAAAAAAAEjA/8SC2HxQ1RSM/s200/reloj_de_arena.jpg" width="180" /&gt;&lt;/a&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Como cada año el próximo fin de semana se realiza el cambio de hora al horario de invierno (-01:00 GMT)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Para que nuestros sistemas AS400 no se despisten y realicen el cambio de hora automáticamente revisar el articulo publicado el año pasado:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://as400howto.blogspot.com/2009/10/cambio-hora-veranoinvierno.html"&gt;Cambio hora verano/invierno&lt;/a&gt;&lt;/div&gt;&lt;h3 class="post-title entry-title"&gt;&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7853458638357054702?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7853458638357054702/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7853458638357054702' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7853458638357054702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7853458638357054702'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/10/cambio-hora-veranoinvierno.html' title='Cambio hora verano/invierno'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SO9VFiIsvdI/AAAAAAAAEjA/8SC2HxQ1RSM/s72-c/reloj_de_arena.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2467665898564324856</id><published>2010-10-22T21:30:00.001+02:00</published><updated>2010-10-23T12:33:39.087+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Averiguar quien elimino un archivo de spool</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/TMHRxDKYHZI/AAAAAAAANkc/Ui50E2OOpkM/s1600/Lupa.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/TMHRxDKYHZI/AAAAAAAANkc/Ui50E2OOpkM/s1600/Lupa.gif" /&gt;&lt;/a&gt;Algunas veces todos hemos tenido la necesidad de averiguar que usuario ha eliminado un archivo de spool de un trabajo. Esto lo podremos hacer si tenemos activada la auditoria del sistema&lt;span style="font-family: Verdana,sans-serif;"&gt; (valor QAUDCTL) que debe contener *AUDLVL. También debe estar especificado  *SPLFDTA, en&amp;nbsp; el&amp;nbsp; valor de sistema QAUDLVL &lt;/span&gt;(ver &lt;b&gt;Nota2&lt;/b&gt;)&lt;span style="font-family: Verdana,sans-serif;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Una vez comprobado, y activado, lo anterior, ya podemos recuperar las entradas del diario de auditoria que se correspondan con las operaciones en el spool.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Para ello lo mas recomendable es someter el mandato DSPJRN&amp;nbsp; (suele tardar bastante) indicando día/hora&amp;nbsp; de inicio y día/hora fin, del rango de tiempo donde queremos investigar la desaparición del spool, e indicando que solo queremos volcar las entradas de diario &lt;b&gt;T-SF&lt;/b&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;SBMJOB CMD(DSPJRN JRN(QAUDJRN) RCVRNG(*CURCHAIN) FROMTIME(&lt;b&gt;ddmmyy hhmmss&lt;/b&gt;) TOTIME(&lt;b&gt;ddmmyy hhmmss&lt;/b&gt;) JRNCDE((T)) ENTTYP(SF) OUTPUT(*OUTFILE) OUTFILFMT(&lt;b&gt;*TYPE5&lt;/b&gt;) OUTFILE(&lt;b&gt;MyTmpLib/TmpDspJrn&lt;/b&gt;) ENTDTALEN(&lt;b&gt;*CALC&lt;/b&gt;)) JOB(DSPJRN)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;El trabajo DSPJRN nos generará un archivo con las entradas relacionadas, en el ejemplo &lt;b&gt;MyTmpLib/TmpDspJrn&lt;/b&gt;. Ahora podremos ejecutar una consulta, por ejemplo con SQL, indicando el nombre del archivo de spool y el nombre del trabajo de donde ha desaparecido el spool, en el ejemplo "&lt;b&gt;QSYSPRT&lt;/b&gt;" y "&lt;b&gt;MyJob&lt;/b&gt;":&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;SELECT * FROM &lt;b&gt;MyTmpLib/TmpDspJrn&lt;/b&gt; WHERE JOESD LIKE '&lt;b&gt;D&lt;/b&gt;%' AND JOESD LIKE '%&lt;b&gt;QSYSPRT&lt;/b&gt;%' AND JOESD LIKE '%&lt;b&gt;MyJob&lt;/b&gt;%'&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Y "voila", en la columna JOB NAME y USER NAME, ya tenemos el usuario que ha eliminado el archivo de spool, así como la hora y desde que programa, si es QCMD indica que se eliminó desde la linea de mandatos, o con alguna opción de menú. Cuando eliminamos un spool, el campo JOESD empieza con el carácter &lt;b&gt;D&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/TMHfbgrLyJI/AAAAAAAANkg/7RNLgyoVwwE/s1600/DSPJRNAUD-TYPE4.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/TMHfbgrLyJI/AAAAAAAANkg/7RNLgyoVwwE/s400/DSPJRNAUD-TYPE4.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Nota1: &lt;/b&gt;El OUTFILFMT(*TYPE5) es válido para la versión V5R2 o superiores. Para versiones anteriores podemos utilizar el *TYPE4, pero entonces no podemos especificar el nombre de trabajo (MyJob), con lo cual pueden aparecer más entradas que correspondan a eliminaciones de archivo de spool, pero en varios trabajos. Si no tenemos muchos puede que no sea un problema, pero si aparecen muchos, sera difícil discernir cual es el que buscamos, aunque hay otros valores que nos pueden ayudar, como puede ser la cola de salida que también aparece en el campo JOESD.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Nota2:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;span style="font-family: Verdana,sans-serif;"&gt;Para activar la seguridad  del sistema leer la entrada &lt;/span&gt;&lt;a href="http://as400howto.blogspot.com/2010/03/configurar-seguridad-del-sistema.html" style="font-family: Verdana,sans-serif;"&gt;Configurar seguridad del sistema.&lt;/a&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt; Para saber más sobre la auditoria del sistema, &lt;/span&gt;&lt;a href="http://www.help400.es/asp/scripts/nwart.asp?Num=108&amp;amp;Pag=30&amp;amp;Tip=U" style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Help400&lt;/b&gt; publicó , hace ya unos años, una utilidad&lt;/a&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt; que puede ir bien para entender mejor como funciona.&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2467665898564324856?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2467665898564324856/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2467665898564324856' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2467665898564324856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2467665898564324856'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/09/averiguar-quien-elimino-archivo-de.html' title='Averiguar quien elimino un archivo de spool'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/TMHRxDKYHZI/AAAAAAAANkc/Ui50E2OOpkM/s72-c/Lupa.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7333725247350250026</id><published>2010-10-06T15:35:00.001+02:00</published><updated>2010-10-06T15:39:12.484+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Tabla de trabajos</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;El mandato WRKSYSSTS nos&amp;nbsp; muestra una pantalla con el estado del sistema.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/TKx6VtD5NCI/AAAAAAAANgs/Kmg7Ayo8Yfk/s1600/wrksyssts.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/TKx6VtD5NCI/AAAAAAAANgs/Kmg7Ayo8Yfk/s320/wrksyssts.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Uno de los valores que hemos de tener en cuenta ,en sistemas con muchos trabajos, es "&lt;b&gt;Jobs in system&lt;/b&gt;" que nos indica cuantos JobID tiene el sistema, esto incluye cualquier trabajo que este en cola de trabajos, en estado activo o en cola de salida.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Existe un valor de sistema que nos indica cual es el numero máximo de trabajos en el sistema : &lt;b&gt;DSPSYSVAL SYSVAL(QMAXJOB) &lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;El sistema usa unas tablas para controlar los trabajos que están en el sistema, cada una de ellas puede contener 16352 entradas, con los JobId de los trabajos, que están en el sistema.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Con el mandato DSPJOBTBL podemos visualizar el estado de dichas tablas.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/TKx6VvGoxfI/AAAAAAAANgw/R2jeHRRR-_Y/s1600/dspjobtbl.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="169" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/TKx6VvGoxfI/AAAAAAAANgw/R2jeHRRR-_Y/s320/dspjobtbl.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;h3 class="post-title entry-title"&gt; &lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Es importante tener activada la limpieza del sistema (ver entrada &lt;a href="http://as400howto.blogspot.com/2010/09/limpiar-automaticamente-mensajes.html"&gt;Limpiar automaticamente mensajes, joblogs, dumps, ...&lt;/a&gt;) para evitar llegar a llenar las tablas de trabajos y tengamos una parada anormal del sistema.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7333725247350250026?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7333725247350250026/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7333725247350250026' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7333725247350250026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7333725247350250026'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/10/tabla-de-trabajos.html' title='Tabla de trabajos'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/TKx6VtD5NCI/AAAAAAAANgs/Kmg7Ayo8Yfk/s72-c/wrksyssts.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2100759690509367138</id><published>2010-09-17T14:57:00.002+02:00</published><updated>2011-02-12T15:42:19.661+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Recuperar trabajos de un usuario</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La utilidad &lt;b&gt;RTVUSRJOB&lt;/b&gt; nos sirve para recuperar los trabajos de los usuarios, pudiendo seleccionar por nombre de usuario, nombre de trabajo (incluido genéricos), estado del trabajo y tipo de trabajo (Batch, Interactivo o todos).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;La salida del mandato puede ser a archivo de spool o directamente a fichero, no se contempla la salida a pantalla porque ya existe el mandato WRKUSRJOB que realiza dicha función.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/TJNipuArEbI/AAAAAAAANSE/9w5rIX7BsEY/s1600/RTVUSRJOB.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="96" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/TJNipuArEbI/AAAAAAAANSE/9w5rIX7BsEY/s400/RTVUSRJOB.gif" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Pulsando &lt;b&gt;F1&lt;/b&gt; podemos acceder a la ayuda del mandato.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/d9b33a26-d57d-4b74-a988-11ef0aa5813b/media/RTVUSRJOB-Retrieve%20user%20jobs.rar"&gt;La utilidad la podéis bajar pulsando aquí&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;pd: También esta disponible en el &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=81e67f1a-3698-4109-b043-06fd5bbb8acb#fullpageWidgetId=Wfb71c05c1300_4fa6_b95c_cd1c744f38d7&amp;amp;file=d9b33a26-d57d-4b74-a988-11ef0aa5813b"&gt;Grupo Recursos AS400 de IBM MydW&lt;/a&gt; para su descarga. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2100759690509367138?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2100759690509367138/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2100759690509367138' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2100759690509367138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2100759690509367138'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/09/recuperar-trabajos-de-un-usuario.html' title='Recuperar trabajos de un usuario'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/TJNipuArEbI/AAAAAAAANSE/9w5rIX7BsEY/s72-c/RTVUSRJOB.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5046004963717029008</id><published>2010-09-02T19:05:00.117+02:00</published><updated>2010-09-09T12:04:01.771+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Limpiar automaticamente mensajes, joblogs, dumps, ...</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Una de las tareas básicas de cualquier administrador de un sistema es mantener los logs del sistema. Nuestro AS400 incluye una funcionalidad para realizar estas tareas, de una forma sencilla y automática.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;Para ello solo hemos de ejecutar el mandato &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;GO MENU(CLEANUP)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; que nos mostrará un menú con las siguientes opciones:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/TIiwhMQcnYI/AAAAAAAAL2c/dOZ6tY7dQu4/s1600/CLEANUP.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/TIiwhMQcnYI/AAAAAAAAL2c/dOZ6tY7dQu4/s320/CLEANUP.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;Primero definiremos que acciones y periodos queremos limpiar, para ello seleccionamos la opción &lt;b&gt;1&lt;/b&gt;, que nos mostrará la siguiente pantalla:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/TIirRH5qDlI/AAAAAAAAL2U/F3pXAVtmJ7c/s1600/CLEANUP1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/TIirRH5qDlI/AAAAAAAAL2U/F3pXAVtmJ7c/s400/CLEANUP1.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;En esta pantalla definimos los periodos de retención de los mensajes, diarios y logs del sistema, así como la hora de ejecución diaria de la limpieza. Pulsar &lt;b&gt;Intro&lt;/b&gt; para guardar los cambios y otra vez para salir.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Nota1:&lt;/b&gt; La limpieza de joblogs la realiza solo de los listados ubicados en&amp;nbsp; las colas de salida QUSRSYS/QEZJOBLOG y QUSRSYS/QEZDEBUG.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Nota2: &lt;/b&gt;Para que los listados de los joblogs, dumps y vuelcos de servicio vayan a parar a las colas QEZ* correspondientes,  ejecutar los siguientes mandatos: &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; CHGPRTF&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE(*ALL/QPJOBLOG) OUTQ(*LIBL/QEZJOBLOG)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; CHGPRTF&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE(*ALL/QPPGMDMP) OUTQ(*LIBL/QEZDEBUG) &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; CHGPRTF&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE(*ALL/QPSRVDMP) OUTQ(*LIBL/QEZDEBUG)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;A continuación solo nos queda activar la limpieza automática seleccionando la opción &lt;b&gt;2&lt;/b&gt;. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Nota3:&amp;nbsp; &lt;/b&gt;Para que se ejecute la limpieza diaria debe estar activo el &lt;a href="http://as400howto.blogspot.com/2009/11/planificador-de-trabajos.html"&gt;Planificador de trabajos&lt;/a&gt; del sistema. Trabajo QSYSSCD en subsistema QCTL o QBASE, este trabajo somete el trabajo QCLNUSRMSG, así como los trabajos planificados.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;También podemos lanzar la limpieza automática inmediatamente con la opción &lt;b&gt;3&lt;/b&gt;, o cancelar su ejecución con la opción &lt;b&gt;4&lt;/b&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5046004963717029008?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5046004963717029008/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5046004963717029008' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5046004963717029008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5046004963717029008'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/09/limpiar-automaticamente-mensajes.html' title='Limpiar automaticamente mensajes, joblogs, dumps, ...'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/TIiwhMQcnYI/AAAAAAAAL2c/dOZ6tY7dQu4/s72-c/CLEANUP.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8688227341863217716</id><published>2010-08-04T17:28:00.000+02:00</published><updated>2010-08-04T17:28:00.998+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Goodbye, AS/400, Old Friend</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Interesante Articulo con una retrospectiva de la historia del AS400 y sus orígenes, publicado en ITJungle en Abril de 2008 por Brian Kelly:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;http://www.itjungle.com/tfh/tfh040708-story05.html&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;El siguiente enlace al documento "&lt;a href="http://www.ibmsystemsmag.com/PDFs/TimeLine08FNL2.pdf"&gt;20 years of the AS/400&lt;/a&gt;", podemos ver el timeline de la historia de este sistema.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;Aprovechad el verano para su lectura.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8688227341863217716?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8688227341863217716/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8688227341863217716' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8688227341863217716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8688227341863217716'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/08/goodbye-as400-old-friend.html' title='Goodbye, AS/400, Old Friend'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1165575137876561158</id><published>2010-07-24T18:38:00.001+02:00</published><updated>2010-07-24T18:38:00.560+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Auditar la seguridad en AS400</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La gente de &lt;a href="http://www.powertech.com/"&gt;PowerTech&lt;/a&gt; tiene colgada una guía donde nos explica los conceptos de seguridad del As400 y algunos ejemplos para comprobar nuestro estado. Recomiendo su lectura ya que puede sernos muy interesante a la vez que aprendemos mas sobre nuestro sistema:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;a href="http://powertech.com/guides/Compliance/ComplianceGuide.htm"&gt;System i Compliance Guide &lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Además realizando este tipo de análisis muchas veces descubrimos problemas ocultos en nuestras aplicaciones.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1165575137876561158?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1165575137876561158/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1165575137876561158' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1165575137876561158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1165575137876561158'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/07/auditar-la-seguridad-en-as400.html' title='Auditar la seguridad en AS400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4797687989410354910</id><published>2010-07-14T18:25:00.000+02:00</published><updated>2010-07-14T18:25:58.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Trabajos QZDASOINIT</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Los trabajos &lt;b&gt;QZDASOINIT&lt;/b&gt; dan servicio a las conexiones ODBC de los usuarios y/o aplicaciones remotas realizan desde cliente (PC,o Servidor). Estos trabajos se ejecutan con el usuario QUSER.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;QZDASOINIT es un trabajo de prearranque del subsistema QUSRWRK; para ver estas entradas usar el mandato &lt;b&gt;DSPSBSD SBSD(QUSRWRK)&lt;/b&gt; y seleccionar la opción &lt;b&gt;10&lt;/b&gt; "Prestart job entries". En esas entradas podemos ver, con la opción 5, la configuración de este servicio y sobre todo el numero inicial de trabajos y&amp;nbsp; numero máximo de trabajos permitidos.&lt;br /&gt;Para arrancar el servicio &lt;span style="font-size: x-small;"&gt;(es necesario que este levantado el subsistema QSERVER)&lt;/span&gt;: &lt;br /&gt;&lt;b&gt;STRHOSTSVR  SERVER(*DATABASE)&lt;/b&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  The database server daemon is started in the QSERVER subsystem&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;   &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  The daemon job is named QZDASRVSD.&amp;nbsp; The associated server jobs &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;   &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  are named QZDASOINIT, QZDASSINIT, and QTFPJTCP.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para detener el servicio:&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;ENDHOSTSVR SERVER(*DATABASE)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The active connections being serviced by the&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QZDASOINIT and QZDASSINIT server jobs will be ended. &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The server jobs servicing these connections will be&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ended.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/TD3keix4gnI/AAAAAAAALzI/rdN4O6yoCjs/s1600/QZDASOINIT.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="93" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/TD3keix4gnI/AAAAAAAALzI/rdN4O6yoCjs/s400/QZDASOINIT.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Si ejecutamos el mandato &lt;b&gt;WRKACTJOB JOB(QZDASOINIT)&lt;/b&gt; vemos, rápidamente, que usuarios están conectados en ese momento al servicio, ya que desde la V5R4 del OS400 se modifico este mandato para mostrar el &lt;b&gt;Current User&lt;/b&gt; en la columna User, si no hay nadie conectado en ese momento se muestra QUSER.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4797687989410354910?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4797687989410354910/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4797687989410354910' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4797687989410354910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4797687989410354910'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/07/trabajos-qzdasoinit.html' title='Trabajos QZDASOINIT'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/TD3keix4gnI/AAAAAAAALzI/rdN4O6yoCjs/s72-c/QZDASOINIT.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7802508906267124044</id><published>2010-06-21T15:09:00.000+02:00</published><updated>2010-06-21T15:09:00.466+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Impacto del ENDJOBABN</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;El comando ENDJOBABN tiene la finalidad de terminar trabajos que aparentemente no responden a una finalizacion con el mandato ENDJOB.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S9nSMKG0uHI/AAAAAAAALTs/7M_1hTxW2Jg/s1600/ENDJOBABN.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="41" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S9nSMKG0uHI/AAAAAAAALTs/7M_1hTxW2Jg/s200/ENDJOBABN.gif" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Es muy recomendable no utilizar normalmente este mandato, ya que tiene implicaciones ocultas.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Una vez ejecutado se activa una marca en el sistema por el cual el siguiente IPL sera considerado "anormal" y el sistema al arrancar realizara una serie de tareas de comprobación del sistema adicionales que alargaran el tiempo de IPL.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Ademas si hay alguna ptf &lt;/span&gt;pendiente de aplicar en IPL no se aplicará, ya que el sistema considera que no debe instalarlas en una IPL con terminación anormal.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Existe un valor de sistema para ver cual si el ultimo IPL fue anormal, para ello ejecutar el comando: DSPSYSVAL SYSVAL(QABNORMSW)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Esto nos mostrara uno de los siguientes valores:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S9nUgeHnc1I/AAAAAAAALT0/796oSmwDPKQ/s1600/QABNORMSW.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S9nUgeHnc1I/AAAAAAAALT0/796oSmwDPKQ/s200/QABNORMSW.gif" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;0=Normal&amp;nbsp; &lt;br /&gt;1=Abnormal&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7802508906267124044?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7802508906267124044/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7802508906267124044' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7802508906267124044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7802508906267124044'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/06/impacto-del-endjobabn.html' title='Impacto del ENDJOBABN'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/S9nSMKG0uHI/AAAAAAAALTs/7M_1hTxW2Jg/s72-c/ENDJOBABN.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3816518190518089270</id><published>2010-06-09T08:00:00.003+02:00</published><updated>2011-02-12T15:38:40.544+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Recuperar subsistema de un trabajo</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;La utilidad RTVJOBSBS nos devuelve el nombre del subsistema donde se esta ejecuta un trabajo.&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S78UllKk6MI/AAAAAAAALJc/s9_Aa1D1OqY/s1600/RTVJOBSBS.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S78UllKk6MI/AAAAAAAALJc/s9_Aa1D1OqY/s320/RTVJOBSBS.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Esto nos puede ser de utilidad para, por ejemplo, no ejecutar un ENDSBS SBS(QINTER) si nuestro trabajo se esta ejecutándose en ese subsistema.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/01c647c0-ad83-4ab1-9b2f-c6f09fdc3cef/media/RTVJOBSBS-Retrieve_Job_Subsystem.rar"&gt;Podéis bajaros el código desde este enlace&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3816518190518089270?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3816518190518089270/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3816518190518089270' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3816518190518089270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3816518190518089270'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/06/recuperar-subsistema-de-un-trabajo.html' title='Recuperar subsistema de un trabajo'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/S78UllKk6MI/AAAAAAAALJc/s9_Aa1D1OqY/s72-c/RTVJOBSBS.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2112478515128933773</id><published>2010-06-02T10:27:00.000+02:00</published><updated>2010-06-02T10:27:32.294+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>The IBM AS400 A technical introduction</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span id="widget-container-fullpage" style="display: block; visibility: visible;"&gt;He encontrado este documento, creado por Tom Van Looy en 2009, y puede servirnos para introducirnos  en el fantástico mundo del AS400.&lt;/span&gt;&lt;span id="widget-container-fullpage" style="display: block; visibility: visible;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span id="widget-container-fullpage" style="display: block; visibility: visible;"&gt; &lt;/span&gt;&lt;span id="widget-container-fullpage" style="display: block; visibility: visible;"&gt;Esta colgado en el apartado Archivos del nuevo espacio de Recursos/400 en &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=81e67f1a-3698-4109-b043-06fd5bbb8acb"&gt;IBM MydW&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2112478515128933773?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2112478515128933773/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2112478515128933773' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2112478515128933773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2112478515128933773'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/06/ibm-as400-technical-introduction.html' title='The IBM AS400 A technical introduction'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2972935056569598741</id><published>2010-05-17T07:00:00.002+02:00</published><updated>2011-02-12T15:35:05.520+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Modificada utilidad CHGSTSJRN</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Se ha modificado la utilidad CHGSTSJRN, para permitir desactivar el registro por diario de todos los archivos de una biblioteca, aunque esa biblioteca no tenga ningún diario.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Esta utilidad, que se publico en el año 2004, permite Parar, Arrancar o Parar y Arrancar el registro por diario de todos los archivos físicos de una biblioteca. También tiene la opción de crear el diario y sus receptor automáticamente.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S-q4LweomyI/AAAAAAAALUU/o9_WFSaPyB8/s1600/CHGSTSJRN.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="102" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S-q4LweomyI/AAAAAAAALUU/o9_WFSaPyB8/s400/CHGSTSJRN.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Pulsando F1 podemos acceder a la ayuda del mandato.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/5eb2f246-f3da-4084-99f9-2cffbe30bf1e/media/CHGSTSJRN_Run%20ENDSTRJRNPF%20of%20the%20PF%20in%20a%20library.rar" style="font-family: Verdana,sans-serif;"&gt;Podemos bajar la nueva versión desde este enlace.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2972935056569598741?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2972935056569598741/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2972935056569598741' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2972935056569598741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2972935056569598741'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/05/modificada-utilidad-chgstsjrn.html' title='Modificada utilidad CHGSTSJRN'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/S-q4LweomyI/AAAAAAAALUU/o9_WFSaPyB8/s72-c/CHGSTSJRN.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5886372347867020543</id><published>2010-05-10T08:00:00.001+02:00</published><updated>2010-05-10T08:00:01.043+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Desactivar usuarios con contraseña por omision</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;Para evitar accesos indeseados a nuestros sistemas es una norma básica no utilizar la contraseña por omisión al crear el usuario y que habitualmente es igual al nombre del perfil, ya que cualquier usuario con unos conocimientos muy básicos del sistema podría acceder a nuestro sistema.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Para saber cual es nuestra situación actual podemos analizar las contraseñas actuales con una herramienta del sistema:&lt;/div&gt;&lt;ul&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S4LK8xmQ-BI/AAAAAAAAKp8/xbqUmiO_2Fc/s1600-h/go_sectools-1.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="0" height="45" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S4LK8xmQ-BI/AAAAAAAAKp8/xbqUmiO_2Fc/s200/go_sectools-1.gif" width="200" /&gt;&lt;/a&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;Ir al menú &lt;b&gt;GO SECTOOLS&lt;/b&gt;.&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;Seleccionar la opción "&lt;b&gt;1. Analyze default passwords&lt;/b&gt;" (mandato ANZDFTPWD), en este mandato podemos seleccionar varias opciones:&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;*NONE: Solo imprime el listado de usuarios con contraseña igual al perfil &lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;*DISABLE: Desactiva el usuario&lt;/li&gt;&lt;li style="font-family: Verdana,sans-serif;"&gt;*PWDEXP: Caduca la contraseña del usuario para forzar su cambio en el próximo inicio de sesión.&lt;/li&gt;&lt;/ol&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;li&gt;Para evaluar nuestro estado es recomendable utilizar el valor &lt;b&gt;*NONE&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Podemos someterlo ya que puede tardar algunos minutos:&lt;/li&gt;&lt;li&gt;SBMJOB CMD(ANZDFTPWD ACTION(*NONE)) JOB(ANZDFTPWD)&lt;/li&gt;&lt;li&gt;Después analizaremos el resultado del listado y actuaremos en consecuencia.&lt;/li&gt;&lt;li&gt;Si nosotros no controlamos la creación de los usuarios, podemos planificar la ejecución de este mandato pero con la opción de *DISABLE o *PWDEXP:&lt;/li&gt;&lt;li&gt;ADDJOBSCDE JOB(ANZDFTPWD) CMD(ANZDFTPWD ACTION(*DISABLE)) FRQ(*MONTHLY) SCDDATE(*MONTHEND) SCDDAY(*NONE) JOBQ(*LIBL/QSYSNOMAX) TEXT('Desactiva usuarios con contraseña por omisión')&lt;/li&gt;&lt;li&gt;En este caso hemos optado por desactivar automáticamente y mensualmente los usuarios con la contraseña igual al perfil, pero podríamos haber optado por caducarla y forzar su cambio.&lt;/li&gt;&lt;li&gt;Es aconsejable hacer estas acciones con el perfil de usuario QSECOFR. &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Otra acción recomendable es cambiar el mandato para crear perfiles de usuario (CRTUSRPRF) para que, por omisión, la contraseña sea igual a *NONE, con lo que después de crear un usuario no tendría contraseña y no podría conectarse al sistema:&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;li&gt;CHGCMDDFT CMD(QSYS/CRTUSRPRF) NEWDFT('&lt;b&gt;PASSWORD(*NONE)&lt;/b&gt;') &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;Después manualmente le asignaríamos una contraseña que cumpla las políticas y ademas forzaríamos su caducidad en el primer inicio de sesión, para que el usuario la cambie a la que le parezca mejor:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;CHGUSRPRF USRPRF(&lt;/span&gt;&lt;b style="font-family: Verdana,sans-serif;"&gt;New_User&lt;/b&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;) PASSWORD(krl2_lt5vz) PWDEXP(&lt;/span&gt;&lt;b style="font-family: Verdana,sans-serif;"&gt;*YES&lt;/b&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5886372347867020543?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5886372347867020543/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5886372347867020543' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5886372347867020543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5886372347867020543'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/05/desactivar-usuarios-con-contrasena-por.html' title='Desactivar usuarios con contraseña por omision'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/S4LK8xmQ-BI/AAAAAAAAKp8/xbqUmiO_2Fc/s72-c/go_sectools-1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3395240483822769533</id><published>2010-05-06T09:00:00.002+02:00</published><updated>2010-05-06T09:29:18.023+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Únase a la comunidad hispana del entorno AS/400</title><content type='html'>&lt;a href="http://v.calameo.com/2.0/cviewer.swf?bkcode=000003875905ff2f6ccef&amp;amp;langid=es&amp;amp;page=16" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="1" height="260" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S-JvgG4j1_I/AAAAAAAALUE/v2xXa7wH438/s400/Unase+a+la+comunidad+hispana+del+entorno+AS400.jpg" width="400" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3395240483822769533?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3395240483822769533/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3395240483822769533' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3395240483822769533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3395240483822769533'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/05/unase-la-comunidad-hispana-del-entorno.html' title='Únase a la comunidad hispana del entorno AS/400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/S-JvgG4j1_I/AAAAAAAALUE/v2xXa7wH438/s72-c/Unase+a+la+comunidad+hispana+del+entorno+AS400.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4461696744957840152</id><published>2010-04-29T20:07:00.002+02:00</published><updated>2010-04-29T20:08:16.706+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Corregido bug utilidad CPYJOBSPL</title><content type='html'>&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://as400howto.blogspot.com/2009/01/corregido-bug-utilidad-cpyjobspl.html"&gt;&lt;/a&gt; &lt;/h3&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5290332388522748322" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SWsJRymkaaI/AAAAAAAAGJw/Z5K62nCTfjk/s200/engranaje2.jpg" style="cursor: pointer; float: left; height: 55px; margin: 0pt 10px 10px 0pt; width: 73px;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Se ha  corregido un pequeño bug de la utilidad CPYJOBSPL, que eliminaba el archivo de spool cuando el primer archivo a copiar se denominaba QSYSPRT.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Ir al articulo &lt;/span&gt;&lt;a href="http://as400howto.blogspot.com/2008/10/copiar-archivos-spool-de-trabajo.html"&gt;Copiar  archivos spool.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4461696744957840152?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4461696744957840152/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4461696744957840152' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4461696744957840152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4461696744957840152'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/04/corregido-bug-utilidad-cpyjobspl.html' title='Corregido bug utilidad CPYJOBSPL'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SWsJRymkaaI/AAAAAAAAGJw/Z5K62nCTfjk/s72-c/engranaje2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3749509955729605053</id><published>2010-04-23T13:39:00.008+02:00</published><updated>2010-04-23T14:28:44.362+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>IBM i 7.1 y Power7</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/S9GHC6gOqOI/AAAAAAAALSU/Z4HV8sSLO6I/s1600/systems_power_news_annc_i_100x100.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/S9GHC6gOqOI/AAAAAAAALSU/Z4HV8sSLO6I/s320/systems_power_news_annc_i_100x100.jpg" /&gt;&lt;/a&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;IBM ha anunciado la nueva versión V7R1M0 del OS400, o como la llama ahora IBM i 7.1, así como sus nuevos procesadores POWER7&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Podéis ver los anuncios de la 7.1 en &lt;a href="http://www-03.ibm.com/systems/power/software/i/rossmauri/index.html"&gt;IBM Power of i&lt;/a&gt; y del nuevo procesador &lt;a href="http://www-03.ibm.com/systems/power/news/announcement/20100413_annc.html"&gt;POWER7&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Tenemos mucho más detalle en los siguientes enlaces:&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;li style="text-align: justify;"&gt;&lt;a href="http://www-03.ibm.com/systems/power/software/i/advantages/v7r1/index.html"&gt;IBM i 7.1&lt;/a&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;a href="http://systeminetwork.com/article/ibm-delivers-ibm-i-71"&gt;IBM Delivers IBM i 7.1&lt;/a&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;a href="http://www.ibmsystemsmag.com/power/february10/coverstory/31497p3.aspx"&gt;POWER7 Unvelied&lt;/a&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;a href="http://help400.blogspot.com/2010/04/ibm-i-71-el-rpg-y-sus-desarrolladores.html"&gt;El RPG y sus desarrolladores están de enhorabuena&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Los documentos de los anuncios los ha publicado &lt;/span&gt;&lt;a href="http://common-es.blogspot.com/2010/04/anuncios-plataforma-power7-y-version-7.html" style="font-family: Verdana,sans-serif;"&gt;Common España&lt;/a&gt;.&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3749509955729605053?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3749509955729605053/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3749509955729605053' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3749509955729605053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3749509955729605053'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/04/ibm-i-71-y-power-7-ibm-i-71.html' title='IBM i 7.1 y Power7'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/S9GHC6gOqOI/AAAAAAAALSU/Z4HV8sSLO6I/s72-c/systems_power_news_annc_i_100x100.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2273718184367713</id><published>2010-04-22T13:00:00.002+02:00</published><updated>2011-02-12T15:28:56.154+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Recuperar estado de un trabajo</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La utilidad &lt;b&gt;RTVJOBSTS&lt;/b&gt; nos facilita el recuperar el estado de un trabajo.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S78UQmE0hVI/AAAAAAAALJM/V-F--5THSMw/s1600/RTVJOBSTS.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S78UQmE0hVI/AAAAAAAALJM/V-F--5THSMw/s320/RTVJOBSTS.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Para ello hemos de indicarle el JOBID del trabajo (job_number/user/job_name) en el parámetro JOB y nos devolverá el estado en el parámetro JOBSTS (char 10). La ayuda nos indica que posibles estados nos puede devolver:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S78USDXwhzI/AAAAAAAALJU/wYv0WNUb4m8/s1600/RTVJOBSTS-help.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S78USDXwhzI/AAAAAAAALJU/wYv0WNUb4m8/s320/RTVJOBSTS-help.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La única consideración es que el trabajo debe existir en el sistema, si la ejecución del mismo ha terminado, y no tiene ningún archivo de spool&amp;nbsp; asociado, el mandato &lt;b&gt;RTVJOBSTS &lt;/b&gt;nos devolverá *ERROR.&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Este mandato solo se puede utilizar desde programas compilados.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Podéis bajar el código desde este enlace &lt;/span&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/824a1303-042e-4db3-9bb1-8d6f2bda8143/media/RTVJOBSTS-Retrieve_Job_Status.rar" style="font-family: Verdana,sans-serif;"&gt;RTVJOBSTS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2273718184367713?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2273718184367713/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2273718184367713' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2273718184367713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2273718184367713'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/04/recuperar-estado-de-un-trabajo.html' title='Recuperar estado de un trabajo'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/S78UQmE0hVI/AAAAAAAALJM/V-F--5THSMw/s72-c/RTVJOBSTS.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5892362718094005509</id><published>2010-04-09T13:51:00.005+02:00</published><updated>2011-02-12T15:25:12.187+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Recuperar número trabajos activos subsistema</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La utilidad RTVACTJOB recupera el número de trabajos activos, del subsistema&amp;nbsp; que pasemos en el parámetro SBSNAM, y lo devuelve en el parámetro ACTJOB al programa desde donde se llame.&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S73wh_RpuPI/AAAAAAAALIc/Dr7iFrqBfHY/s1600/RTVACTJOB.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="0" height="74" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S73wh_RpuPI/AAAAAAAALIc/Dr7iFrqBfHY/s320/RTVACTJOB.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Este mandato solo se puede utilizar desde programas compilados.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Podéis bajar el código desde este enlace &lt;/span&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/8368b713-9bbd-47d7-abd0-32aae27d843a/media/RTVACTJOB_Retrieve%20Subsystem%20Jobs.rar" style="font-family: Verdana,sans-serif;"&gt;RTVACTJOB&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;pd:&lt;/b&gt; También esta disponible en el &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=81e67f1a-3698-4109-b043-06fd5bbb8acb#fullpageWidgetId=Wfb71c05c1300_4fa6_b95c_cd1c744f38d7&amp;amp;file=8368b713-9bbd-47d7-abd0-32aae27d843a"&gt;Grupo Recursos AS400 de IBM MydW&lt;/a&gt; para su descarga.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5892362718094005509?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5892362718094005509/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5892362718094005509' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5892362718094005509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5892362718094005509'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/04/recuperar-numero-trabajos-activos.html' title='Recuperar número trabajos activos subsistema'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/S73wh_RpuPI/AAAAAAAALIc/Dr7iFrqBfHY/s72-c/RTVACTJOB.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4939446027604734800</id><published>2010-03-29T15:38:00.000+02:00</published><updated>2010-03-29T15:38:00.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Uso del mandato WRKACTJOB</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Uno de los mandatos más utilizados en el AS400 es el &lt;b&gt;WRKACTJOB &lt;/b&gt;(Trabajar con Trabajos Activos), ¿Pero le sacamos todo el partido a este mandato?&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;En primer lugar comentar que este mandato es un consumidor de recursos, por tanto no es recomendable que estén varias personas ejecutándolo al mismo tiempo. La primera vez que usamos el mandato puede que nos salga una pantalla parecida a esta: &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S556NrwzEXI/AAAAAAAAK8Q/c7R58Akrrcc/s1600-h/wrkactjob-basic.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S556NrwzEXI/AAAAAAAAK8Q/c7R58Akrrcc/s320/wrkactjob-basic.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Esta nos muestra las opciones y las teclas de &lt;b&gt;F&lt;/b&gt;unción que podemos usar. Una vez tengamos soltura con esas opciones y funciones, podemos pulsar&lt;b&gt; F21=Nondisplay instructions/keys&lt;/b&gt; para ocultarlas, de esta forma podemos ver más trabajos en la misma pantalla:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S557Df0QUtI/AAAAAAAAK8Y/06zAfktUFz4/s1600-h/wrkactjob-advanced.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S557Df0QUtI/AAAAAAAAK8Y/06zAfktUFz4/s320/wrkactjob-advanced.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La primera vez que ejecutamos este mandato en nuestra sesión, se activan unas estadísticas que se actualizaran cada vez que pulsemos&lt;b&gt; F5=Refresh&lt;/b&gt;, con lo que acumulara y hará las medias aritméticas de los valores de algunas columnas marcadas bajo la denominación Elapsed, como la del porcentaje de uso de CPU de los trabajos. En la parte superior tenemos el campo &lt;b&gt;Elapsed time&lt;/b&gt; que nos indica el tiempo desde el ultimo reset de las estadísticas. También vemos &lt;b&gt;CPU % &lt;/b&gt;que indica el total de uso de CPU&lt;b&gt; &lt;/b&gt;del sistema para el total de procesadores que tengamos. El total de trabajos en el sistema se nos indica en el campo &lt;b&gt;Active jobs&lt;/b&gt;.&lt;br /&gt;Si pulsamos &lt;b&gt;F10=Restart statistics&lt;/b&gt;, resetearemos las estadísticas a 0, esto nos puede servir para comprobar el consumo puntual de CPU (snapshot) de un trabajo.&lt;br /&gt;&lt;br /&gt;También podemos utilizar &lt;b&gt;F19=Start automatic refresh &lt;/b&gt;para dejar la pantalla en modo de refresco automático, que como si pulsáramos F5 cada n segundos, el valor por omisión esta indicado en el parámetro INTERVAL del mandato, por omisión es *PRV o sea el ultimo utilizado, aunque la primera vez son 300 segundos. Esto nos puede ser útil para controlar algún trabajo en concreto desde una pantalla.&lt;br /&gt;&lt;br /&gt;Con &lt;b&gt;F17=Top&lt;/b&gt; podemos ir al principio de pantalla y con &lt;b&gt;F18=Bottom&lt;/b&gt; al final, esto nos sirve para movernos algo más rápido, sobre todo si tenemos muchos trabajos.&lt;br /&gt;&lt;br /&gt;Con &lt;b&gt;F11&lt;/b&gt; podemos cambiar las vistas para ver más información sobre el trabajo, hay 3 vistas diferentes que aparecen cada vez que pulsamos la tecla de función.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;El mandato WRKACTJOB permite filtrar por:&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;li&gt;Nombre de subsistema (SBS) para por ejemplo ver solo los trabajos interactivos en el subsistema QINTER y/o QCTL:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;WRKACTJOB SBS(&lt;b&gt;QCTL QINTER&lt;/b&gt;) &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Nombre de trabajo (JOB) para ver solo los trabajos que:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Empiecen por un nombrte:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;WRKACTJOB JOB(&lt;b&gt;MyJob*&lt;/b&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Trabajos del sistema:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;WRKACTJOB JOB(&lt;b&gt;*SYS&lt;/b&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;O trabajos de subsistema activos:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;WRKACTJOB JOB(&lt;b&gt;*SBS&lt;/b&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Podemos filtrar por:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Uso de CPU (CPUPCTLMT), por ejemplo los trabajos que consumas mas de un 15% de CPU: WRKACTJOB CPUPCTLMT(15) &lt;/li&gt;&lt;li&gt;Tiempo de respuesta interactivo (RSPLMT) de una sesión (pantalla verde), por ejemplo una pantalla que tarde más de 5 minutos en ejecutar un programa/mandato: WRKACTJOB RSPLMT(300)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Otra opción muy interesante es el parámetro &lt;b&gt;Sequence&lt;/b&gt; (SEQ) que nos permite ordenar por alguna de las columnas del mandato, un clásico es ordenar por consumo de CPU para averiguar que trabajo se nos esta llevando el procesador: WRKACTJOB SEQ(*CPU) o por Total de unidades de CPU consumidas (en segundos) WRKACTJOB SEQ(*CPUPCT). Para más información pulsar &lt;b&gt;F1=Help&lt;/b&gt; sobre campo del parámetro y podremos ver una explicación más detallada de todas las opciones posibles. &lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Una opción que utilizo bastante es ordenar por una columna, combinándola con otras opciones explicadas, por ejemplo la de &lt;b&gt;Status&lt;/b&gt; de los trabajos, para ello situamos el cursor encima del titulo de la columna y pulso &lt;b&gt;F16&lt;/b&gt;=Resequence de esta forma puedo encontrar, más rápidamente, todos los trabajos que están en estado MSGW.&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Nota:&lt;/b&gt; Tener en cuenta que si queremos ordenar por subsistema debemos situar el cursor encima de la columna &lt;b&gt;Subsystem/Job&lt;/b&gt;, pero si queremos &lt;b&gt;ordenar por nombre de trabajo&lt;/b&gt; deberemos situar el cursor &lt;b&gt;encima del primer carácter del nombre de trabajo&lt;/b&gt; que aparezca en la pantalla.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Otra opción, poco conocida, es que el mandato WRKACTJOB oculta los trabajos de prearranque inactivos (PJ) o grupos de sesión inactivos (INT), es cuando pulsamos la tecla PetSys + opción 1 (&lt;a href="http://as400howto.blogspot.com/2008/09/como-modificar-el-menu-peticion-de.html"&gt;Mayusc+Esc&lt;/a&gt;) o la tecla de Atención de Sistema (Esc). Para visualizarlos hemos de pulsar &lt;b&gt;F14=Include&lt;/b&gt;, un ejemplo para el subsistema QSERVER:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: center;"&gt;WRKACTJOB SBS(QSERVER)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/S559INf7mPI/AAAAAAAAK8g/1dqtuFQ1iFY/s1600-h/wrkactjob-exclude.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/S559INf7mPI/AAAAAAAAK8g/1dqtuFQ1iFY/s320/wrkactjob-exclude.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;En esta pantalla solo vemos 5 trabajos, pero si pulsamos F14 nos aparecen más de 14 trabajos:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S559oauc_6I/AAAAAAAAK8o/RalcWFzgZxI/s1600-h/wrkactjob-include.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S559oauc_6I/AAAAAAAAK8o/RalcWFzgZxI/s320/wrkactjob-include.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;Finalmente podemos usar la tecla de función &lt;b&gt;F15=Work with system status&lt;/b&gt; que ejecuta el mandato WRKSYSSTS que necesitaría un libro para explicar su utilidad, podéis consultar la siguiente entrada para tener alguna idea sobre el tema: &lt;a href="http://as400howto.blogspot.com/2009/08/como-saber-si-el-as400-necesita-mas-ram.html"&gt;Como saber si el AS400 necesita mas RAM&lt;/a&gt;&lt;br /&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4939446027604734800?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4939446027604734800/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4939446027604734800' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4939446027604734800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4939446027604734800'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/03/uso-del-mandato-wrkactjob.html' title='Uso del mandato WRKACTJOB'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/S556NrwzEXI/AAAAAAAAK8Q/c7R58Akrrcc/s72-c/wrkactjob-basic.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3431278943603741810</id><published>2010-03-08T13:56:00.000+01:00</published><updated>2010-03-08T13:56:51.800+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Configurar seguridad del sistema</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;Existe un&amp;nbsp; mandato para configurar automáticamente la seguridad básica del sistema. Ejecutándolo nos cambiará varios valores de sistema:&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QALWOBJRST=*NONE&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QAUTOCFG=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QAUTOVRT=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QDEVRCYACN=*DSCMSG&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QDSCJOBITV=120&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QDSPSGNINF=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QINACTITV=60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QINACTMSGQ=*ENDJOB&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QLMTDEVSSN=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QLMTSECOFR=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QMAXSGNACN=3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QMAXSIGN=3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QRMTSIGN=*FRCSIGNON&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QRMTSRVATR=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QSECURITY=50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QVFYOBJRST=3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDEXPITV=60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDMINLEN=6 si es &amp;lt;6, u 8 si es &amp;lt;8&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDLMTCHR=Contenido del msgid CPXB302&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDLMTAJC=1&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDLMTREP=2&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDRQDDGT=1&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDRQDDIF=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QPWDVLDPGM=*NONE &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;También desactivara la contraseña, con PASSWORD(*NONE), de los siguientes usuarios: QSYSOPR, QPGMR, QUSER, QSRV y QSRVBAS.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;De esta forma evitamos que nadie se conecte al sistema utilizando estos perfiles.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Finalmente, si existe el diario de auditoria (QAUDJRN), ejecutará el mandato CHGSECAUD (Cambia auditoría de seguridad) que cambiara los siguientes valores de sistema: QAUDCTL=*AUDLVL y QAUDLVL=*DFTSET, que incluye la auditoria de todos los conceptos siguientes: &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;*ATNEVT, *CREATE, *AUTFAIL, *DELETE, *JOBDTA, *NETBAS, *NETCLU, *NETCMN, *NETFAIL, &lt;br /&gt;*NETSCK, *OBJMGT, *OFCSRV, *OPTICAL, *PGMADP, *PGMFAIL,*PRTDTA, *SAVRST, *SECCFG, *SECDIRSRV, *SECIPC, *SECNAS, *SECRUN, *SECSCKD, *SECURITY, *SECVFY, *SECVLDL, *SERVICE, *SPLFDTA, *SYSMGT.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Para más información sobre estos valores buscad en el &lt;/span&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/cl/chgsecaud.htm" style="font-family: Verdana,sans-serif;"&gt;IBM iSeries Information Center&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Al ejecutar el mandato CFGSYSSEC aparecerá una pantalla que nos pedirá confirmación:&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S3ktsE-6LxI/AAAAAAAAKmw/zakKGLq18MY/s1600-h/CFGSYSSEC.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S3ktsE-6LxI/AAAAAAAAKmw/zakKGLq18MY/s320/CFGSYSSEC.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Es recomendable ejecutar este mandato con el sistema restringido y conectado con usuario *SECOFR.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Podemos modificar los valores por omisión de este programa, que nos interesen para nuestro sistema, recuperando, editando y creando nuestra propia versión. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Para recuperar el fuente del programa utilizar el mandato:&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;RTVCLSRC PGM(QSECCFGS) SRCFILE(MYSRCLIB/MYSRCFILE) SRCMBR(MYQSECCFGS)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3431278943603741810?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3431278943603741810/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3431278943603741810' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3431278943603741810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3431278943603741810'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/03/configurar-seguridad-del-sistema.html' title='Configurar seguridad del sistema'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/S3ktsE-6LxI/AAAAAAAAKmw/zakKGLq18MY/s72-c/CFGSYSSEC.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-9096870396769377100</id><published>2010-03-01T11:00:00.083+01:00</published><updated>2010-03-01T11:00:00.854+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Utilizar los menus de ayuda</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Es interesante recordar los sistemas de ayuda para buscar un mandato y que nos pueden ser muy útiles, existen varias opciones:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Situar el cursor en la línea de mandatos del AS400, al pulsar &lt;b&gt;F4&lt;/b&gt; aparece el menú "&lt;b&gt;Major Command Groups&lt;/b&gt;", también podemos acceder con GO MENU(&lt;b&gt;MAJOR&lt;/b&gt;).&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/S3k1zguHIMI/AAAAAAAAKm4/vLcw9SA3-eo/s1600-h/MAJOR_MNU.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target=_new&gt;&lt;img border="1" height="98" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/S3k1zguHIMI/AAAAAAAAKm4/vLcw9SA3-eo/s200/MAJOR_MNU.gif" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;En el menú &lt;b&gt;MAJOR &lt;/b&gt;podemos intentar buscar una opción que, por la descripción, pueda contener el mandato que estamos buscando.&amp;nbsp; Muchas veces nos aparecerán submenus. Las 3 primeras opciones, del menú MAJOR, son más interesantes ya que son búsquedas genéricas, el resto son temáticas.&amp;nbsp; &lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;Un ejemplo si queremos visualizar el contenido de la cola de salida QGPL/QPRINT, seleccionaríamos la opción "&lt;b&gt;11. Spooling Commands&lt;/b&gt;", a continuación "&lt;b&gt;4. Output Queue Commands&lt;/b&gt;"&amp;nbsp; y finalmente "&lt;b&gt;8. Work with Output Queue&lt;/b&gt;" que ejecuta el mandato que buscábamos &lt;b&gt;WRKOUTQ,&lt;/b&gt; solo hace falta indicarle en el parámetro OUTQ la cola QPRINT y pulsar Intro. Evidentemente es más rápido acordarse del mandato WRKOUTQ OUTQ(QGPL/QPRINT), pero si no lo conocemos, pero si la manera de buscarlo, seguramente lo encontraremos.&lt;/div&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Con la opción "&lt;b&gt;1. Select Command by Name&lt;/b&gt;" podemos seleccionar por los caracteres con los que suponemos empieza el mandato. Por ejemplo si usamos &lt;a href="http://as400howto.blogspot.com/2010/02/diccionario-breve-para-entender.html"&gt;DSP* (Display)&lt;/a&gt; nos mostrará la lista de mandatos utilizados para visualizar algo. Podemos utilizar directamente el mandato SLTCMD, o &lt;b&gt;incluso mejor&lt;/b&gt; tecleando los caracteres iniciales del mandato y añadiendo el carácter &lt;b&gt;*&lt;/b&gt; al final, desde la linea de mandatos, y pulsando Intro: Probad &lt;b&gt;WRKJOB*&lt;/b&gt;.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La opción "&lt;b&gt;2. Verb Commands&lt;/b&gt;" (VERB) nos lista un menú con los mandatos agrupados por verbo. Por ejemplo si queremos ver todos los mandatos para verificar el estado de algo (CMDVFY) utilizaremos la opción "85. Verify Commands".&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Otra opción es "&lt;b&gt;3. Subject Commands&lt;/b&gt;" (SUBJECT), con esta se nos muestra una lista de mandatos agrupados por la función que realizan. Un ejemplo seria ver todos los mandatos que se utilizan para gestionar un dispositivo, para ello seleccionaríamos la opción "89. Device Commands".&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Darse cuenta que todos estos menús en la parte superior izquierda muestran el nombre del menú por lo que podemos acceder a ellos directamente con el mandato GO y el nombre de menú.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Todos los submenus tienen nombre para poder acceder a ellos directamente, siguen la filosofía de denominación del AS400, con lo que se nos facilita su &lt;b&gt;búsqueda por "intuición"&lt;/b&gt;. Por ejemplo queremos ver todos los mandatos (&lt;b&gt;CMD&lt;/b&gt;) que se pueden utilizar para la definición (&lt;b&gt;D&lt;/b&gt;) de un subsistema (&lt;b&gt;SBS&lt;/b&gt;), pues nada tecleamos GO MENU(CMDSBSD), pulsamos Intro y "voilà":&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S3k_T_MPxaI/AAAAAAAAKnA/y64-YVTGsnc/s1600-h/CMDSBSD_MNU.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"  target=_new&gt;&lt;img border="1" height="158" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S3k_T_MPxaI/AAAAAAAAKnA/y64-YVTGsnc/s320/CMDSBSD_MNU.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Nota:&lt;/b&gt; Los números de opción que se muestran es para la versión V5R4M0, pero pueden variar para otras versiones.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-9096870396769377100?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/9096870396769377100/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=9096870396769377100' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/9096870396769377100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/9096870396769377100'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/03/utilizar-los-menus-de-ayuda.html' title='Utilizar los menus de ayuda'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/S3k1zguHIMI/AAAAAAAAKm4/vLcw9SA3-eo/s72-c/MAJOR_MNU.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3615833880110156540</id><published>2010-02-15T12:25:00.002+01:00</published><updated>2010-02-15T12:26:54.485+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Diccionario breve para entender mandatos AS400</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Los mandatos del AS400 heredaron la nomenclatura de creación de comandos del S/38 de IBM, y la costumbre muy anglosajona de contraer las palabras usadas. Básicamente la idea, con excepciones, es utilizar las consonantes del verbo de la acción a realizar y de las palabras a utilizar mientras fueran legibles.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Por ejemplo unos de los mandatos mas utilizados del AS400 es "Trabajar con trabajos activos" y que es: &lt;b&gt;WRKACTJOB&lt;/b&gt; (Work active jobs), realmente es simple y fácil de recordar.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;A continuación os paso un breve diccionario para entender la nomenclatura de los mandatos del AS400 (no pretende ser una lista exhaustiva):&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;AUD&amp;nbsp; - Audit (Auditar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;AUT&amp;nbsp; - Authorization (Autorización)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;AUTL - List of authorization (Lista de autorizaciones)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CFG&amp;nbsp; - Configuration (Configuración)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CHG&amp;nbsp; - Change (Cambiar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CPY&amp;nbsp; - Copy (Copiar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CRT&amp;nbsp; - Create (Crear)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CTL&amp;nbsp; - Controller (Controlador)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DEV&amp;nbsp; - Device (Dispositivo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DFN&amp;nbsp; - Definition (Definición)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DIR&amp;nbsp; - Directory (Directorio)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DLT&amp;nbsp; - Delete (Eliminar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DOC&amp;nbsp; - Document (Documento)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DSK&amp;nbsp; - Disk (Disco)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DSP&amp;nbsp; - Display (Visualizar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DTA&amp;nbsp; - Data (Datos)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DUP&amp;nbsp; - Duplicate (Duplicar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;EDT&amp;nbsp; - Edit (Editar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;FIL&amp;nbsp; - File (Archivo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GRP&amp;nbsp; - Group (Grupo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GRT&amp;nbsp; - Grant (Autorizar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;HDW&amp;nbsp; - Hardware&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;INF&amp;nbsp; - Information (Información)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;JOB - Job (Trabajo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;JRN&amp;nbsp; - Journal (Diario)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LCK&amp;nbsp; - Locks (Bloqueos)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LIB&amp;nbsp; - Library (Biblioteca)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LIN&amp;nbsp; - Line (Linea)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LNK&amp;nbsp; - Links (Enlaces)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OBJ&amp;nbsp; - Object (Objeto)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OUT&amp;nbsp; - Output (Salida)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OWN&amp;nbsp; - Owner (Propietario)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PGM&amp;nbsp; - Program (Programa)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PGP&amp;nbsp; - Primary group (Grupo primario)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PNL&amp;nbsp; - Panel (Panel de visualización)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PRF&amp;nbsp; - Profile (Perfil de usuario)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PRT&amp;nbsp; - Printer (Impresora)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;QRY&amp;nbsp; - Query (Consulta)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;RMT&amp;nbsp; - Remote (Remoto)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;RMV&amp;nbsp; - Remove (Remover)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;RSC&amp;nbsp; - Resource (Recurso)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;RST&amp;nbsp; - Restore (Restaurar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;RVK&amp;nbsp; - Revoke (Revocar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SAV&amp;nbsp; - Save (Salvar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SRC&amp;nbsp; - Source (Origen, Fuente)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;STR&amp;nbsp; - Start (Arrancar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;STS&amp;nbsp; - Status (Estado)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SYS&amp;nbsp; - System (Sistema)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;TBL&amp;nbsp; - Table (Tabla)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;TGT&amp;nbsp; - Target (Destino)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;USR&amp;nbsp; - User (Usuario)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;VAL&amp;nbsp; - Value (Valor)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;WRK&amp;nbsp; - Work with (Trabajar con)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Algunos de especiales:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;***E - Entry (Entrada de una lista)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;D&amp;nbsp;&amp;nbsp;&amp;nbsp; - Description (Descripción)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp; - Queue (Cola)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3615833880110156540?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3615833880110156540/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3615833880110156540' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3615833880110156540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3615833880110156540'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/02/diccionario-breve-para-entender.html' title='Diccionario breve para entender mandatos AS400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-966481831611641236</id><published>2010-02-08T13:57:00.002+01:00</published><updated>2010-02-08T13:58:41.218+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Desactivar usuarios sin uso</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;Es recomendable desactivar los usuarios inactivos, o sea con más de x días sin conectarse al sistema.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Para ello podemos utilizamos una herramienta del sistema, es recomendable conectarse como QSECOFR para realizar esta acciones:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;li&gt;Ir al menú &lt;b&gt;GO SECTOOLS&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Seleccionar la opción "&lt;b&gt;4. Analyze profile activity&lt;/b&gt;" (mandato ANZPRFACT) e introducir los días inactivos, por ejemplo 30 días.&lt;/li&gt;&lt;li&gt;Al pulsar &lt;b&gt;Intro&lt;/b&gt; añade, o modifica si ya la teníamos, la entrada &lt;b&gt;QSECIDL1&lt;/b&gt; de los trabajos planificados del sistema.&lt;/li&gt;&lt;li&gt;Podemos ver o editar esta entrada con el mandato:&lt;/li&gt;&lt;li&gt;WRKJOBSCDE JOB(QSECIDL1)&lt;/li&gt;&lt;li&gt;Si, por ejemplo, queremos que se ejecute mensualmente (por omisión es semanal):&lt;/li&gt;&lt;li&gt;CHGJOBSCDE JOB(QSECIDL1) FRQ(*MONTHLY) SCDDATE(&lt;b&gt;*MONTHEND&lt;/b&gt;) SCDDAY(*NONE) JOBQ(*LIBL/QSYSNOMAX) TEXT('&lt;b&gt;Desactiva usuarios sin uso durante más de 30 días&lt;/b&gt;')&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Si tenemos usuarios que no nos interesa que se desactiven nunca hemos de introducirlo en la lista de usuarios a omitir por este proceso, para ello:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ir al menú &lt;b&gt;GO SECTOOLS&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Seleccionar la opción "&lt;b&gt;3. Change active profile list&lt;/b&gt;". &lt;/li&gt;&lt;li&gt;O utilizar el mandato &lt;b&gt;CHGACTPRFL&lt;/b&gt; y pulsar F4.&lt;/li&gt;&lt;li&gt;Después introducimos el perfil de usuario que queremos omitir, por ejemplo &lt;b&gt;QSECOFR&lt;/b&gt;:&lt;/li&gt;&lt;li&gt; CHGACTPRFL USRPRF(QSECOFR) ACTION(*ADD).&lt;/li&gt;&lt;li&gt;Para eliminar un usuario de la lista:&lt;/li&gt;&lt;li&gt;CHGACTPRFL USRPRF(ANYUSER) ACTION(*REMOVE)&lt;/li&gt;&lt;li&gt;Podemos visualizar, o imprimir, la lista de usuarios omitidos para desactivación automática con la opción "&lt;b&gt;2.Display active profile list&lt;/b&gt;" (mandato &lt;b&gt;DSPACTPRFL&lt;/b&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-966481831611641236?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/966481831611641236/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=966481831611641236' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/966481831611641236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/966481831611641236'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/02/desactivar-usuarios-sin-uso.html' title='Desactivar usuarios sin uso'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-6506517379474065535</id><published>2010-01-18T12:27:00.002+01:00</published><updated>2010-01-18T19:57:06.493+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Auditar uso o supresión de un objeto</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;A veces nos puede interesar auditar el uso o eliminación de un objeto por varias razones:&lt;br /&gt;&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;li&gt;Investigar quien, cuando y que lo usa/elimina un objeto.&lt;/li&gt;&lt;li&gt;Investigar si podemos eliminar un objeto sin uso.&lt;/li&gt;&lt;li&gt;Análisis el funcionamiento de una aplicación nuestra, o de terceros.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Etc...&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;USO DE UN OBJETO&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Para ello debemos cambiar el valor de auditoria del objeto, que por omision tendrá el valor indicado en los atributos de la biblioteca, utilizar mandato &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DSPLIBD LIB(MYLIB)&lt;/span&gt; y fijarse en parámetro "Create object auditing" si tiene el valor *SYSVAL habremos de ver el valor de sistema &lt;b&gt;QCRTOBJAUD&lt;/b&gt; (utilizar &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DSPSYSVAL SYSVAL(QCRTOBJAUD)&lt;/span&gt; para verlo) que habitualmente tiene el valor &lt;b&gt;*CHANGE&lt;/b&gt;, o sea solo audita cambios en el objeto, no su utilización.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Para auditar el uso de un objeto, por ejemplo del programa MYLIB/MYPGM, debemos cambiar el valor de auditoria del objeto, antes documentaremos el valor actual de auditoria para el objeto a cambiar:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DSPOBJD OBJ(MYLIB/MYPGM) OBJTYPE(*PGM) DETAIL(*FULL)&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Pulsar AvPág y ver parámetro "Object auditing value", usualmente *CHANGE.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Después ya podemos activar la auditoria de lecturas para el objeto, para ello ejecutar:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CHGOBJAUD OBJ(MYLIB/MYPGM) OBJTYPE(*PGM) OBJAUD(&lt;b&gt;*ALL&lt;/b&gt;)&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;A partir de este instante cualquier acceso al programa MYLIB/MYPGM quedara registrado en el diario de auditoria del sistema (QAUDJRN).&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Cuando queramos analizar el uso de ese programa deberemos acceder a los datos del diario de auditoria, para ello lo más recomendable es someter el comando DSPJRN para realizar un volcado de los datos del diario a un archivo temporal y posteriormente realizar un query sobre ese fichero:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Someter:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DSPJRN JRN(QAUDJRN) RCVRNG(*CURCHAIN) FROMTIME(dia/hora_inicio) TOTIME(dia/hora_fin) ENTTYP(ZR) OUTPUT(*OUTFILE) OUTFILFMT(*TYPE1) OUTFILE(MYLIBTEMP/DSPJRNUSE)&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Después con SQL, por ejemplo, podemos buscar las utilizaciones del objeto:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SELECT * FROM TEMP/DSPJRN WHERE JOESD LIKE '%MYPGM%' &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Dentro de los campos, que se nos mostraran, tendremos algunos claves para nuestra investigación:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Campo&amp;nbsp;&amp;nbsp;&amp;nbsp; Descripción&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;JOCODE&amp;nbsp;&amp;nbsp; Código de auditoría&lt;br /&gt;JOENTT&amp;nbsp;&amp;nbsp; Tipo entrada de auditoria&lt;br /&gt;JODATE&amp;nbsp;&amp;nbsp; Fecha de la entrada&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;JOTIME&amp;nbsp;&amp;nbsp; Hora de la entrada&lt;br /&gt;JOJOB&amp;nbsp;&amp;nbsp;&amp;nbsp; Nombre del trabajo&lt;br /&gt;JOUSER&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Nombre del usuario&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;JONBR&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Numero del trabajo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;JOPGM&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Nombre del programa que ha realizado el cambio&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;JOOBJ&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Nombre del objeto cambiado&lt;br /&gt;JOLIB&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Biblioteca &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;del objeto cambiado&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;JOMBR&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Nombre del miembro (si es un archivo)&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;JOESD&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Datos de la entrada (longitud variable &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Una vez analizado el uso del objeto, es recomendable dejar el valor de auditoria al valor anterior, para evitar demasiada sobrecarga en el sistema al tener que guardar en el diario cada vez que se utiliza un objeto, así como el crecimiento desmesurado de los receptores asociados del diario&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;También es recomendable no dejarlo activado el valor para muchos objetos al mismo tiempo, por las mismas razones.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;SUPRESIÓN DE UN OBJETO&lt;/b&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Si lo que buscamos es quien y cuando se ha eliminado un objeto, debemos volcar a fichero unos códigos de diario de auditoria diferentes:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DSPJRN JRN(QAUDJRN) RCVRNG(*CURCHAIN) FROMTIME(dia/hora inicio) TOTIME(dia/hora fin) JRNCDE((T)) ENTTYP(DO) OUTPUT(*OUTFILE) OUTFILFMT(*TYPE1) OUTFILE(MYLIBTEMP/DSPJRNDLT)&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Después utilizaremos la misma consulta SQL que en el caso anterior.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Nota1:&lt;/b&gt; Si queremos la fecha en formato TIMESTAMP utilizar &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OUTFILFMT(*TYPE3)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Nota3:&lt;/b&gt; Podemos ver el significado de los codigos de auditoria en el &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/rzaru/rzarujournalfinder.htm" target=_new&gt;IBM i Information Center&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Nota2:&lt;/b&gt; Tener en cuanta el periodo de latencia en el sistema de los receptores de los diarios de auditoria, ya que es habitual su borrado periódico para evitar ocupar demasiado espacio en disco &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-6506517379474065535?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/6506517379474065535/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=6506517379474065535' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6506517379474065535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6506517379474065535'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/01/auditar-uso-o-supresion-de-un-objeto.html' title='Auditar uso o supresión de un objeto'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4830820247812557147</id><published>2010-01-07T11:18:00.004+01:00</published><updated>2010-01-07T14:18:12.284+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Averiguar IP donde se desactiva un usuario</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;A veces vemos el mensaje CPF1393 en el log del sistema: &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S0WvsqaABQI/AAAAAAAAKdI/z8cuhu5YjOM/s1600-h/CPF1393.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="1" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S0WvsqaABQI/AAAAAAAAKdI/z8cuhu5YjOM/s320/CPF1393.gif" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ii gt" id=":6t"&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;Esto nos indica que el sistema ha desactivado un perfil de usuario, habitualmente por contraseña errónea.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;Si vemos que se repite mucho este mensaje, para el mismo usuario, podemos intentar averiguar desde que dirección IP se está intentando conectar. Para ello hemos de ejecutar el mandato DSPJRN y visualizar las entradas del diario de auditoria del sistema, procurando ajustar al máximo el día y hora ya que acostumbran haber cientos de entradas en el mismo segundo:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: x-small;"&gt;DSPJRN JRN(QAUDJRN) RCVRNG(*CURCHAIN) FROMTIME(250509 165607) JRNCDE((T)) &lt;/span&gt;&lt;span style="font-family: courier new; font-size: x-small;"&gt;ENTTYP(PW)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Al pulsar &lt;b&gt;Intro&lt;/b&gt; obtendremos una lista parecida a esta:&lt;/span&gt;&lt;span style="font-size: 78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/S0WxbRYcubI/AAAAAAAAKdQ/IvRl5fcFrRM/s1600-h/DSPJRN_T-PW.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="1" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/S0WxbRYcubI/AAAAAAAAKdQ/IvRl5fcFrRM/s320/DSPJRN_T-PW.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Pulsar la opción "&lt;b&gt;5=Display entire entry&lt;/b&gt;" para ver el contenido de la entrada:&lt;/span&gt;&lt;span style="font-family: Verdana,sans-serif; font-size: 78%;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: 78%;"&gt;&lt;span style="font-family: courier new;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 78%;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/S0WxeLYaZzI/AAAAAAAAKdY/XYidmPc-5ts/s1600-h/DSPJRN_5-T-PW.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="1" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/S0WxeLYaZzI/AAAAAAAAKdY/XYidmPc-5ts/s320/DSPJRN_5-T-PW.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Ahí veremos que perfil de usuario esta fallando el login; si pulsamos "&lt;b&gt;F10=Display only entry details&lt;/b&gt;" podremos ver el nombre de trabajo, la hora, y si pulsamos AvPag. podremos ver la dirección IP:&lt;span style="font-size: 78%;"&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/S0WxgP5dJKI/AAAAAAAAKdg/d22dORwgCPg/s1600-h/DSPJRN_F10-5-T-PW.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="1" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/S0WxgP5dJKI/AAAAAAAAKdg/d22dORwgCPg/s320/DSPJRN_F10-5-T-PW.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Lo único que habra que tener en cuenta es que, si usamos DHCP en los clientes, puede que esa dirección sea reutilizada por otros usuarios.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4830820247812557147?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4830820247812557147/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4830820247812557147' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4830820247812557147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4830820247812557147'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2010/01/averiguar-ip-donde-se-desactiva-un.html' title='Averiguar IP donde se desactiva un usuario'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/S0WvsqaABQI/AAAAAAAAKdI/z8cuhu5YjOM/s72-c/CPF1393.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3308487282242473657</id><published>2009-12-21T10:00:00.002+01:00</published><updated>2009-12-23T12:36:11.941+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Feliz Navidad y 2010</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.recursos-as400.com/pantallas/nadal2006_01.shtml" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SywITtdM6RI/AAAAAAAAKcA/99kxULSwDUg/s320/imatge_001_petita.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3308487282242473657?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3308487282242473657/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3308487282242473657' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3308487282242473657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3308487282242473657'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/12/feliz-navidad-y-2010.html' title='Feliz Navidad y 2010'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SywITtdM6RI/AAAAAAAAKcA/99kxULSwDUg/s72-c/imatge_001_petita.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-6506620217441221995</id><published>2009-12-19T00:24:00.001+01:00</published><updated>2009-12-24T11:39:52.734+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>eyeOS y IBM</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;Hoy he leído esta noticia  &lt;a href="http://www.elperiodico.com/default.asp?idpublicacio_PK=46&amp;amp;idioma=CAS&amp;amp;idtipusrecurs_PK=7&amp;amp;idnoticia_PK=670946" target="_new"&gt;IBM distribuirá el software de una 'start up' catalana&lt;/a&gt; en &lt;b&gt;El Periódico&lt;/b&gt; que me ha llamado la atención.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SywCKvCWvRI/AAAAAAAAKb4/UEHaOlaH6fY/s1600/eyeos.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SywCKvCWvRI/AAAAAAAAKb4/UEHaOlaH6fY/s320/eyeos.png" /&gt;&lt;/a&gt;Una compañía creada por dos estudiantes catalanes ha desarrollado el escritorio web &lt;b&gt;EyeOS,&amp;nbsp;&lt;/b&gt; basado en tecnología "cloud computing" y con software libre, y que ha sido adoptado por IBM para usarlo en sus system &lt;b&gt;Z&lt;/b&gt; (mainframe). Más información en el blog de EyeOS:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="http://blog.eyeos.org/es/2009/12/16/eyeos-y-ibm-%E2%80%93-trabajando-juntos/" target="_new"&gt;&lt;b&gt;eyeOS y IBM – Trabajando juntos&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;¡ Buena idea !&lt;/b&gt;, ¿para cuando para los system &lt;span style="font-size: large;"&gt;i&lt;/span&gt;? &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-6506620217441221995?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/6506620217441221995/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=6506620217441221995' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6506620217441221995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6506620217441221995'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/12/eyeos-y-ibm.html' title='eyeOS y IBM'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/SywCKvCWvRI/AAAAAAAAKb4/UEHaOlaH6fY/s72-c/eyeos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2878706230517806916</id><published>2009-12-19T00:18:00.003+01:00</published><updated>2011-02-12T15:22:52.958+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Biblioteca de trabajo TEMP</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SywOLPs_j0I/AAAAAAAAKcI/tSahlSevCj0/s1600/working.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SywOLPs_j0I/AAAAAAAAKcI/tSahlSevCj0/s320/working.gif" /&gt;&lt;/a&gt;Para poder crear objetos de trabajo es muy recomendable utilizar la biblioteca QTEMP, que el sistema crea &lt;b&gt;solo&lt;/b&gt; para nuestro trabajo automáticamente. Pero si los objetos creados en esa biblioteca deben ser usados en mas de un trabajo, o sesión, o accedidos por odbc, bajados por ftp, o tenerlos en el sistema durante unos días, es muy conveniente tener una biblioteca que no desaparezca y que pueda ser compartida por mas de un trabajo, para ello nada mejor que crear la biblioteca TEMP (o como queráis llamarle), con autorización *PUBLIC *ALL. Para ello ejecutar los mandatos:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;CRTLIB LIB(TEMP) TYPE(*TEST) TEXT('Temporary library (cleared weekly automatically)') &lt;/li&gt;&lt;li&gt;CHGOBJOWN OBJ(TEMP) OBJTYPE(*LIB) NEWOWN(QPGMR) &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Con la misma idea podemos crear el directorio /home/temp:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;CRTDIR DIR('/home/temp') DTAAUT(*RWX) OBJAUT(*ALL) &lt;/li&gt;&lt;li&gt;CHGOWN OBJ('/home/temp') NEWOWN(QPGMR)&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Para que esta biblioteca y directorio, no se conviertan en un contenedor de basura es muy recomendable realizar una limpieza periódica de su contenido.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Los objetos que se crean en esta biblioteca y directorio se podrían&amp;nbsp; eliminar automáticamente todos los domingos a las 06:00h (por ejemplo), con el trabajo planificado CLRTEMP.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Mandato para planificar dicho trabajo:&lt;/div&gt;&lt;div style="font-family: 'Courier New',Courier,monospace;"&gt;ADDJOBSCDE JOB(CLRTEMP) CMD(CALL PGM(ZGPL/CLRTEMP)) FRQ(*WEEKLY) SCDDATE(*NONE) SCDDAY(*SUN) SCDTIME(060000) &lt;/div&gt;&lt;div style="font-family: 'Courier New',Courier,monospace;"&gt;JOBQ(QUSRNOMAX) TEXT('Clear library TEMP and /home/temp')&lt;/div&gt;&lt;br /&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/0b27337a-210b-4546-b454-e49b25024700/media/CLRTEMP.CLP_Clear%20library%20TEMP.rar"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Codigo del programa CLRTEMP&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2878706230517806916?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2878706230517806916/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2878706230517806916' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2878706230517806916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2878706230517806916'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/12/biblioteca-de-trabajo-temp.html' title='Biblioteca de trabajo TEMP'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SywOLPs_j0I/AAAAAAAAKcI/tSahlSevCj0/s72-c/working.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-297465282191403344</id><published>2009-11-12T21:00:00.007+01:00</published><updated>2010-04-23T11:35:01.550+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Planificador de trabajos</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;El objeto de planificación de trabajos contiene entradas que configuran una planificación de trabajos (WRKJOBSCDE). Puede planificar trabajos añadiendo una entrada de planificación de trabajos al objeto de planificación de trabajos (ADDJOBSCDE).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Para que funcione el planificador de trabajos debe estar activo el trabajo QSYSSCD en el subsistema &lt;a href="http://as400howto.blogspot.com/2008/12/subsistema-de-control.html"&gt;QCTL&lt;/a&gt; (o QBASE) y se arranca automáticamente después del IPL.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SvFgTUUVlkI/AAAAAAAAJFQ/NieLlC-iRRI/s1600-h/QSYSSCD.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SvFgTUUVlkI/AAAAAAAAJFQ/NieLlC-iRRI/s400/QSYSSCD.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;El objeto de planificación de trabajos, QDFTJOBSCD, está en la biblioteca QUSRSYS y tiene un tipo de objeto *JOBSCD. No puede crear, suprimir, redenominar ni duplicar el objeto de planificación de trabajos, y no puede moverlo a otra biblioteca. Este objeto de planificación de trabajos se suministra con la autorización de uso público *CHANGE. Esta es la mínima autorización necesaria para añadir, cambiar, retener, liberar y eliminar entradas de planificación de trabajos.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Cómo guardar o restaurar objetos de planificación de trabajos&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;El objeto de planificación de trabajos puede salvarse con los mandatos Salvar Biblioteca (SAVLIB), Salvar Objeto (SAVOBJ) o Salvar Objetos Cambiados (SAVCHGOBJ), y después restaurarse con los mandatos Restaurar Biblioteca (RSTLIB) o Restaurar Objeto (RSTOBJ). La restauración del objeto de planificación de trabajos hace que la próxima fecha de sometimiento se actualice para cada entrada. Puede restaurar el objeto de planificación de trabajos al sistema desde el que se salvó o a un sistema distinto, pero no puede restaurarlo a una biblioteca que no sea QUSRSYS. Si restaura el objeto de planificación de trabajos a un sistema diferente, el registro histórico de sometimiento de trabajos se borra en cada entrada.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Información extraída del manual &lt;/span&gt;&lt;a href="http://as400bks.rochester.ibm.com/html/as400/v5r1/ic2931/books/c4153063.pdf" style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Gestión de Trabajos&lt;/b&gt;&lt;/a&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;, capitulo &lt;/span&gt;&lt;b style="font-family: Verdana,sans-serif;"&gt;Planificación de trabajos&lt;/b&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt; (pag.267)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;cite&gt;&lt;br /&gt;&lt;/cite&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-297465282191403344?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/297465282191403344/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=297465282191403344' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/297465282191403344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/297465282191403344'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/11/planificador-de-trabajos.html' title='Planificador de trabajos'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SvFgTUUVlkI/AAAAAAAAJFQ/NieLlC-iRRI/s72-c/QSYSSCD.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1045365368934710833</id><published>2009-11-04T09:43:00.004+01:00</published><updated>2009-11-04T09:54:15.327+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>IBM i Manifest</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;Por el &lt;a href="http://common.es/news/cee_news_2009_11.pdf" target="_new"&gt;boletín mensual&lt;/a&gt; de Common Europe España del mes de noviembre me he enterado de la iniciativa de 71 partners de IBM en Japón de publicar un anuncio en los periódicos pidiendo que IBM de un apoyo claro a la plataforma &lt;b&gt;system i &lt;/b&gt;(o sea el AS400), extraído del comunicado podemos leer:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;a href="http://common.es/p/index.php?mact=News,cntnt01,detail,0&amp;amp;cntnt01articleid=12&amp;amp;cntnt01origid=51&amp;amp;cntnt01returnid=51" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SvE-LWvXNvI/AAAAAAAAJFI/imTRDwAz2io/s320/imanifest_logo.jpg" /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;"Aprovechando la oportunidad del 20º aniversario de &lt;/i&gt;&lt;i&gt;IBM i hemos creado el Manifiesto i de IBM para solicitar a los usuarios volver a reconocer el valor y los logros de &lt;/i&gt;&lt;i&gt;IBM i. Les pedimos que renueven su firme confianza y la creencia de que &lt;/i&gt;&lt;i&gt;IBM i es la mejor infraestructura disponible para apoyar la innovación gerencial y operativo."&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.help400.com/" target="_new"&gt;Help400&lt;/a&gt; nos cuenta en varios artículos en su &lt;a href="http://help400.blogspot.com/" target="_new"&gt;blog&lt;/a&gt; como esta evolucionando esta iniciativa:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://help400.blogspot.com/2009/10/la-iniciativa-ibm-i-manifest-sigue.html" target="_new"&gt;Manifiesto por el IBM i,  un ejemplo a seguir&lt;/a&gt;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://help400.blogspot.com/2009/10/la-iniciativa-ibm-i-manifest-sigue.html" target="_new"&gt;La iniciativa "IBM i Manifest" sigue ganando adeptos&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://help400.blogspot.com/2009/10/i-power-spanish-imanifest.html" target="_new"&gt;i + POWER: The Spanish iManifest&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;Ahora ya podemos adherirnos a esta iniciativa en la web de&lt;a href="http://www.imanifest.eu/" target="_new"&gt; IBM i Manifest de Europa&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;Esperemos que IBM oiga nuestras "plegarias" que, aunque no tienen nada que ver con el &lt;a href="http://www.canviclimatic.net/" target="_new"&gt;cambio climático&lt;/a&gt;, si&amp;nbsp; tienen que ver con el cambio en los escenarios que se nos avecinan (&lt;a href="http://es.wikipedia.org/wiki/Cloud_computing" target="_new"&gt;cloud computing&lt;/a&gt;) y que me recuerdan a que es el enésimo vaivén hacia una estructura informática de "cliente ligero" y sistema central. ¿No os recuerda a pantalla verde + AS400?, este binomio viene mejorado en cada cambio que se ha hecho en la historia de la informática.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Pensar un poco en esta evolución: Pantalla verde + Entorno de ventanas + Navegador + Navegador que ejecuta aplicaciones remotas = Computación en nube.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1045365368934710833?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1045365368934710833/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1045365368934710833' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1045365368934710833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1045365368934710833'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/11/ibm-i-manifest.html' title='IBM i Manifest'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SvE-LWvXNvI/AAAAAAAAJFI/imTRDwAz2io/s72-c/imanifest_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2529289276741252240</id><published>2009-10-28T10:30:00.005+01:00</published><updated>2010-04-23T11:35:01.551+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Cancelar un rollback</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;En un artículo anterior se explicaba como averiguar el &lt;a href="http://as400howto.blogspot.com/2008/09/procedimiento-para-ver-el-porcentaje-de.html"&gt; porcentaje rollback realizado&lt;/a&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/b&gt;por un trabajo.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Pero en muy contadas excepciones nos puede interesar cancelar un rollback, cosa &lt;b&gt;&lt;span style="color: red;"&gt;realmente peligrosa&lt;/span&gt;&lt;/b&gt; sino conocemos, pero que muy bien, lo que esta haciendo el trabajo en la base de datos.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Por norma un rollback &lt;b style="color: red;"&gt;NUNCA&lt;/b&gt; se debe cancelar, debemos esperar que termine.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b style="color: red;"&gt;No se os ocurra realizar un IPL&lt;/b&gt; para forzar la finalización de un rollback, ya que el sistema lo terminara durante el IPL, con lo os quedareis sin sistema durante un tiempo indeterminado.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Dicho lo anterior, unos ejemplos de casos en que nos puede interesar cancelar el rollback:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="font-family: Verdana,sans-serif;"&gt;&lt;li style="text-align: justify;"&gt;Supongamos que lanzamos un programa que crea una tabla temporal, abre un ciclo de commit y empieza a insertar registros en esta tabla, el programa se mete en un bucle y continua insertando registros, cuando lleva unos cuantos millones de insert nos damos cuenta y cancelamos el trabajo. Entonces empieza a realizar el rollback eliminando  millones de registros insertados. En este caso si pudiéramos cancelar el rollback y eliminar la tabla temporal seguro que terminaría más rápido que esperar el final del rollback.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Un programa se mete en un bucle actualizando miles de veces el mismo registro, es importante verificarlo con las entradas del diario. Al cancelarlo el rollback empezara a realizar miles de update en sentido inverso hasta dejarlo en el valor original. También en este caso si supiéramos el valor del registro al inicio del bucle, podríamos cancelar el rollback y después realizar un update manual del registro a su valor inicial; con esto ahorraríamos seguramente mucho tiempo.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Un trabajo realiza cambios en una o mas tablas, utilizando un solo ciclo de commit, cuando lleva unos millones de cambios  cancelamos el trabajo. Si tenemos la absoluta seguridad que tenemos una copia de las tablas antes de empezar el proceso y que ningún otro trabajo ha realizado cambios en las mismas, podríamos valorar la posibilidad de cancelar el rollback y restaurar las tablas.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;A partir de la &lt;b&gt;V5R3&lt;/b&gt; existe un procedimiento para cancelar un rollback, es el siguiente:&lt;br /&gt;&lt;/div&gt;&lt;ol style="font-family: Verdana,sans-serif;"&gt;&lt;li style="text-align: justify;"&gt;Definir la estrategia para reparar la base de datos: Asegurarse de que tenemos los datos necesarios, verificar que tenemos las copias de seguridad,  son accesibles&amp;nbsp; y contienen las tablas implicadas (recordar los ejemplos).&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Conectarse con usuario con permisos &lt;b&gt;*SECOFR.&lt;/b&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Lanzar el &lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ENDJOB&lt;/b&gt;, con &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OPTION(*IMMED)&lt;/span&gt;, del trabajo que empezara a realizar el rollback.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Averiguar el ciclo de compromiso del rollback que vamos a cancelar:&lt;/li&gt;&lt;li style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;&lt;b&gt;WRKCMTDFN&lt;/b&gt;   JOB(012345/MYUSER/MYJOB)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Pulsar &lt;b&gt;F23&lt;/b&gt; para ver más opciones y&amp;nbsp; aparecerá la opción 20=End rollback.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Introducir la opción &lt;b&gt;20&lt;/b&gt; en el ciclo de compromiso a cancelar y pulsar &lt;b&gt;Intro&lt;/b&gt;.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Nos aparecerá una pantalla (&lt;span style="font-size: xx-small;"&gt;ver imagen&lt;/span&gt;) que nos advierte del peligro de cancelar el  rollback, ya que dejaremos inconsistente la base de datos y eso podría afectar a otros trabajos.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Si estamos seguros pulsaremos &lt;b&gt;Intro&lt;/b&gt;. Sino podemos pulsar F12 para volver atras.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;A partir de ese momento el trabajo empezará a liberar los registros bloqueados por el commit,  cancelando el rollback. Esto puede tardar algún tiempo dependiendo de la cantidad de registros.&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Una vez a finalizado el rollback y el trabajo, podremos reparar la base de datos, según la estrategia decidida en el primer paso. En los ejemplos: Eliminar la tabla temporal, Actualizar manualmente el registro implicado, Restaurar la/s tabla/s implicadas.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SvZteMFpusI/AAAAAAAAJGg/uMnEjUpPWKc/s1600-h/endrollback.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SvZteMFpusI/AAAAAAAAJGg/uMnEjUpPWKc/s400/endrollback.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: red;"&gt;ADVERTENCIA FINAL:&lt;/span&gt;&lt;/b&gt; Es responsabilidad vuestra el utilizar, o no, este procedimiento. Como comprenderéis podéis causar un daño irreversible a la base de datos, si no estáis absolutamente seguros de lo que vais a hacer. En caso de la &lt;b&gt;más mínima duda&lt;/b&gt; os recomiendo &lt;b&gt;esperar al final del rollback&lt;/b&gt;.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Más información en el documento: &lt;a href="http://www-912.ibm.com/s_dir/slkbase.NSF/ce197905697c4c6086256a4f007978f7/7712c661ad14a88d862574dd006c437b?OpenDocument"&gt;&lt;b&gt;Ending A Rollback - V530 and Later Releases&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2529289276741252240?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2529289276741252240/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2529289276741252240' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2529289276741252240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2529289276741252240'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/10/cancelar-un-rollback.html' title='Cancelar un rollback'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SvZteMFpusI/AAAAAAAAJGg/uMnEjUpPWKc/s72-c/endrollback.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5375759369066875743</id><published>2009-10-19T02:00:00.044+02:00</published><updated>2011-02-12T15:18:32.662+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Cambio hora verano/invierno</title><content type='html'>&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5255512843715657170" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SO9VFiIsvdI/AAAAAAAAEjA/8SC2HxQ1RSM/s200/reloj_de_arena.jpg" style="float: left; height: 78px; margin: 0pt 10px 10px 0pt; width: 70px;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La madrugada del ultimo domingo de Octubre los sistemas deben cambiar la hora al horario de invierno, o sea a las 3:00 se retrasara la hora a las 2:00 horas.&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Actualmente, a partir de la V5R4, podemos configurar el sistema para que automáticamente realize el cambio de hora sin nuestra intervención, para ello debéis seguir las indicaciones del articulo:&lt;/div&gt;&lt;div class="post hentry" style="font-family: Verdana,sans-serif;"&gt;&lt;a href="http://as400howto.blogspot.com/2008/10/sincronizar-la-hora-del-as400.html"&gt;Sincronizar la hora del AS400&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Pero si tenemos un sistema con una versión anterior del OS400, podemos utilizar mi utilidad &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/b331f300-8530-4161-b9fc-453096b7b191/media/SUMWIN.CLP_Cambio%20autom%C3%A1tico%20a%20horario%20de%20verano-invierno.rar"&gt;&lt;b&gt;SUMWIN&lt;/b&gt;&lt;/a&gt; para realizar el cambio de hora automáticamente.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;La estrategia para realizar el cambio de hora es añadir un trabajo automático al planificador de tareas el siguiente mandato (con usuario QSECOFR):&lt;/div&gt;&lt;div style="font-family: 'Courier New',Courier,monospace; text-align: left;"&gt;ADDJOBSCDE JOB(SUMWIN) CMD(CALL PGM(SUMWIN)) FRQ(*MONTHLY) SCDDATE(*NONE) SCDDAY(*SUN) SCDTIME(020000) RELDAYMON(*LAST) JOBQ(QSYSNOMAX) TEXT('Cambio automático a horario de verano-invierno')&lt;/div&gt;&lt;br /&gt;Con esto conseguimos que cada ultimo domingo de mes se lance el trabajo y solo cambiara la hora cuando sea:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El ultimo domingo del mes de Marzo a las 02:00:00 sumara una hora o&lt;/li&gt;&lt;li&gt;El ultimo domingo del mes de Octubre esperara a las 03:01:00 y restara una hora,&lt;/li&gt;&lt;li&gt;En ambos casos envía un mensaje al operador.&lt;/li&gt;&lt;li&gt;El resto de meses no hará nada.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/b331f300-8530-4161-b9fc-453096b7b191/media/SUMWIN.CLP_Cambio%20autom%C3%A1tico%20a%20horario%20de%20verano-invierno.rar"&gt;Podéis bajaros el código en este enlace&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5375759369066875743?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5375759369066875743/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5375759369066875743' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5375759369066875743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5375759369066875743'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/10/cambio-hora-veranoinvierno.html' title='Cambio hora verano/invierno'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SO9VFiIsvdI/AAAAAAAAEjA/8SC2HxQ1RSM/s72-c/reloj_de_arena.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1018345646401777394</id><published>2009-10-15T19:32:00.002+02:00</published><updated>2010-04-23T11:35:01.551+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Cambios en variable de sistema QLMTDEVSSN (V6R1)</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La nueva versión del i5/OS &lt;b&gt;V6R1&lt;/b&gt;, incluye un muy esperado nuevo valor para la variable del sistema &lt;b&gt;QLMTDEVSSN&lt;/b&gt; (Limit device session).&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Hasta la versión &lt;b&gt;V5R4 &lt;/b&gt;podíamos tener los siguientes valores:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;0=Do not limit&lt;/b&gt; = El usuario puede abrir tantas sesiones interactivas como quiera.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;1=Limit&lt;/b&gt; = El usuario solo puede abrir una sesion interactiva.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Con la &lt;b&gt; V6R1&lt;/b&gt; se modifican los valores de esta variable como sigue:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;0=Do not limit&lt;/b&gt; = El usuario puede abrir tantas sesiones interactivas como quiera.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;1-9=Maximum device sessions &lt;/b&gt;= Este valor nos indica cuantas sesiones podrá abrir como máximo un usuario 1,2,.. y hasta 9 sesiones interactivas concurrentes.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Para ver que valor tiene el  sistema:&lt;/span&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;DSPSYSVAL SYSVAL(QLMTDEVSSN)&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Por defecto es preferible, sobretodo en los sistemas de Producción, que este valor de sistema este a  &lt;b&gt;1&lt;/b&gt;, así todos los usuarios, que en el parámetro &lt;b&gt;LMTDEVSSN &lt;/b&gt;de su perfil de usuario tengan el valor &lt;b&gt;*SYSVAL&lt;/b&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;, &lt;/span&gt;solo podrán abrir una sesión interactiva por defecto. A los Operadores y/o Administradores podemos darles más sesiones cambiando este valor en su perfil de usuario.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Pero puede ser interesante tener el valor de sistema a 2 o 3 en los sistemas de Desarrollo, para que al crear un nuevo programador, y sin tener que cambiar su perfil de usuario, ya pueda tener más de una sesión interactiva, cosa muy solicitada y recomendable para poder realizar pruebas, del código que están creando y probando, mas cómodamente.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1018345646401777394?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1018345646401777394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1018345646401777394' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1018345646401777394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1018345646401777394'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/10/cambios-en-variable-de-sistema.html' title='Cambios en variable de sistema QLMTDEVSSN (V6R1)'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4917985022650597944</id><published>2009-09-21T20:30:00.009+02:00</published><updated>2009-09-21T20:52:38.812+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Auditar uso de comandos</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Hay ciertos mandatos que nos puede interesar que los usuarios no utilicen, pero en cambio hemos de permitir el uso de otros.&lt;br /&gt;Al crear un  usuario y  definir que  clase de usuario es (USRCLS), de alguna forma ya estamos limitando que mandatos podrá usar y cuales no. Con las autorizaciones especiales (SPCAUT) del perfil de usuario, podemos limitar aun más el acceso a los mandados críticos.&lt;br /&gt;Pero ademas podemos auditar la utilización de un mandato, sin limitar su uso, por ejemplo el mandato CLRPFM.&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;¿Como podemos  hacerlo? Simplemente  cambiando el valor de auditoria del objeto QSYS/CLRPFM de tipo *CMD.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Para ver el valor actual de auditoria de un objeto, hemos de utilizar el mandato:&lt;/p&gt;&lt;p face="courier new" style="font-weight: bold;"&gt;DSPOBJD OBJ(QSYS/CLRPFM) OBJTYPE(*CMD) DETAIL(*FULL)&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Pulsando una vez la AvPág, podremos observar que tiene el valor "Object auditing value" igual a *NONE. Para cambiarlo y empezar a auditar su uso, ejecutaremos el mandato:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p face="courier new" style="font-weight: bold;"&gt;CHGOBJAUD  OBJ(QSYS/CLRPFM)  OBJTYPE(*CMD)  OBJAUD(*ALL)&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;Esto hará que cada vez que se utilice el mandato CLRPFM, se grabara una entrada en el diario de auditoria del sistema (QSYS/QAUDJRN).&lt;/p&gt;&lt;p&gt;Posteriormente podemos obtener un listado del uso del mandato  ejecutando:&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;p face="courier new" style="font-weight: bold;"&gt;CPYAUDJRNE ENTTYP(CD)  OUTFILE(MYLIB/CMD_USE)&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Esto volcara las entradas de uso de cualquier objeto, que se este auditando, a un fichero. Después con SQL podremos seleccionarlas:&lt;/p&gt;&lt;p face="courier new" style="font-weight: bold;"&gt;SELECT CDTSTP, CDJOB, CDUSER, CDNBR, CDPGMLIB, CDPGM, CDCMDS FROM&lt;br /&gt;MYLIB/CMD_USECD&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; WHERE CDCMDS LIKE '%CLRPFM%' &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; El mandato CPYAUDJRNE añade los caracteres CD al nombre del fichero de salida.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Ahora ya podemos ver cuando, quien y desde que programa se ha utilizado el mandato CLRPFM. Si el programa es el  QCMD, nos indicara que se ha ejecutado  desde la linea de mandatos.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SrfF8hQzftI/AAAAAAAAHzA/ZGDyjWs4okk/s1600-h/dspjrn_auditcd.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 392px; height: 55px;" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SrfF8hQzftI/AAAAAAAAHzA/ZGDyjWs4okk/s400/dspjrn_auditcd.gif" alt="" id="BLOGGER_PHOTO_ID_5383989523056393938" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Este tipo de auditoria nos puede también servir para investigar algún problema en nuestros programas o aplicaciones, ver quien usa ciertos objetos, o simplemente llevar un registro del uso de ciertos objetos importantes.&lt;br /&gt;&lt;p style="font-family: courier new; font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;CHGOBJAUD  OBJ(MYLIB/MYOBJECT)  OBJTYPE(*CMD)&lt;/span&gt;  OBJAUD(*ALL)&lt;/p&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hay que tener en cuenta que estas entradas del diario de auditoria ocupan espacio en disco y habrá que tener un procedimiento de salvado y borrado de los receptores de diario para evitar comernos el espacio en disco si auditamos demasiados objetos.&lt;br /&gt;También el rendimiento del sistema puede verse afectado, ligeramente, si auditamos muchos objetos muy usados.&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;Una vez analizado sería conveniente desactivar la auditoria de uso, a no ser que queramos llevar un registro.&lt;br /&gt;&lt;/div&gt;&lt;p style="font-family: courier new; font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;CHGOBJAUD  OBJ(MYLIB/MYOBJECT)  OBJTYPE(*CMD)&lt;/span&gt;  OBJAUD(*CHANGE)&lt;br /&gt;&lt;/p&gt; Podemos usar el valor *CHANGE que habitualmente es el valor por omisión del valor de sistema QCRTOBJAUD, o *NONE para no auditar nada en absoluto ese objecto (solo es recomendable en unos pocos casos).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Mas información:&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzamv/rzamvplansecauditing.htm" target=_new&gt;Planning security auditing&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://systeminetwork.com/article/securing-powerful-and-sensitive-commands" target=_new&gt;Securing Powerful and Sensitive Commands&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4917985022650597944?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4917985022650597944/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4917985022650597944' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4917985022650597944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4917985022650597944'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/09/auditar-uso-de-comandos.html' title='Auditar uso de comandos'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/SrfF8hQzftI/AAAAAAAAHzA/ZGDyjWs4okk/s72-c/dspjrn_auditcd.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8279864026468453016</id><published>2009-09-05T11:00:00.002+02:00</published><updated>2009-09-05T11:00:00.341+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Conexion automatica al AS400</title><content type='html'>&lt;div style="text-align: justify;"&gt;¿Como realizar una conexión automática desde un servidor Windows, o un cliente de red, al AS400?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;A veces necesitamos para lanzar un cmd, o bat, en un pc en que la conexión al AS400 ya este establecida; para hacerlo automáticamente debemos tener instalado el producto iSeries Access y entonces podremos utilizar el comando c:\Program Files\ibm\Client Access\cwblogon.exe.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Básicamente se trata de cargar en un buffer de windows el usuario y la contraseña que utilizamos para conectar a el AS400 y así cuando los requiera la conexión windows la suministrara sin ninguna intervención.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SjaAvkzIY4I/AAAAAAAAHgk/scZz0R_vJ6U/s1600-h/cwblogon.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 189px;" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SjaAvkzIY4I/AAAAAAAAHgk/scZz0R_vJ6U/s200/cwblogon.gif" alt="" id="BLOGGER_PHOTO_ID_5347603162369385346" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;Sintaxis&lt;/span&gt;&lt;br /&gt;Para iniciar la sesión en un servidor:&lt;br /&gt;CWBLOGON  sistema   /u  ID_usuario   /p  contraseña&lt;br /&gt;&lt;br /&gt;Para borrar un ID de usuario específico:&lt;br /&gt;CWBLOGON  sistema   /u  ID_usuario   /c&lt;br /&gt;&lt;br /&gt;Para borrar todos los ID de usuario de un servidor:&lt;br /&gt;CWBLOGON  sistema   /c&lt;br /&gt;&lt;br /&gt;Para borrar todos los ID de usuario de la antememoria:&lt;br /&gt;CWBLOGON /c&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Parámetros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sistema&lt;/span&gt;           designa el nombre del servidor para el que debe almacenarse la información de ID de usuario y contraseña&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/u  ID_usuario&lt;/span&gt;    designa el ID de usuario del servidor que debe almacenarse en la antememoria de iSeries Access para Windows&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/p  contraseña&lt;/span&gt;    designa la contraseña del servidor asociada al ID de usuario proporcionado&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/c&lt;/span&gt;          borra la información de ID de usuario y contraseña de la antememoria de iSeries Access para Windows&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Para más información:&lt;/span&gt;&lt;br /&gt;http://www.redbooks.ibm.com/pubs/html/as400/v4r5/ic2924/info/rzaiimst.pdf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8279864026468453016?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8279864026468453016/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8279864026468453016' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8279864026468453016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8279864026468453016'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/09/conexion-automatica-al-as400.html' title='Conexion automatica al AS400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/SjaAvkzIY4I/AAAAAAAAHgk/scZz0R_vJ6U/s72-c/cwblogon.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5462777901334451672</id><published>2009-08-15T10:00:00.002+02:00</published><updated>2009-08-17T15:00:17.361+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Como saber si el AS400 necesita mas RAM</title><content type='html'>&lt;div style="text-align: justify;"&gt;¿Como podemos saber cuando un sistema AS400 necesita mas memoria RAM?&lt;br /&gt;&lt;br /&gt;Nota: En AS400 no se denomina Memoria RAM sino Memoria Principal (Main storage), y el disco Memoria Auxiliar (Auxiliary storage) que puede estar dividido en ASP (Auxiliary storage pool) a modo similar del concepto de volúmenes.&lt;br /&gt;&lt;br /&gt;El concepto de uso de la memoria, y la CPU, en el AS400 es muy diferente a la de los sistemas Windows y esa es la base de muchos errores de concepto, cuando provienen de personas que no tienen mucha idea de como funciona un AS400 y, además llegando a conclusiones totalmente equivocadas.&lt;br /&gt;&lt;br /&gt;Con el mandato &lt;span style="font-weight: bold;"&gt;DSPSYSSTS &lt;/span&gt;puedes ver la cantidad de memoria (pool size) que esta "usando" el sistema, en los diferentes pool de memoria definidos en el sistema (ver &lt;a href="http://as400howto.blogspot.com/2008/10/memoria-para-subsistema-dedicado.html"&gt;Memoria para subsistema&lt;/a&gt;), pulsa &lt;span style="font-weight: bold;"&gt;F21&lt;/span&gt;=Select assistance level y selecciona &lt;span style="font-weight: bold;"&gt;3=Advanced&lt;/span&gt;  para acceder a toda la información en la misma pantalla.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SjZ2n2Hc3xI/AAAAAAAAHgc/KwUFEF5BNoM/s1600-h/dspsyssts.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 296px; height: 142px;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SjZ2n2Hc3xI/AAAAAAAAHgc/KwUFEF5BNoM/s200/dspsyssts.gif" alt="" id="BLOGGER_PHOTO_ID_5347592034462785298" border="0" /&gt;&lt;/a&gt;El i5/OS, el nuevo nombre del sistema operativo del AS400, siempre consume siempre TODA la memoria disponible.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Normalmente yo me fijo, básicamente, en cuantas paginas en estado &lt;span style="font-weight: bold;"&gt;Inel&lt;/span&gt;egible (Wait-Inel,  Act-Inel) aparecen en el DSPSYSSTS.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;¿Que nos indica este parámetro &lt;span style="font-weight: bold;"&gt;Inel&lt;/span&gt;? pues básicamente que cuando el s.o. ha necesitado cargar una pagina de memoria de disco a memoria RAM (ya que estaba paginada), no ha podido, porque toda la memoria RAM estaba ocupada por trabajos que están activos y usando la CPU, esto explicado de manera simple y para que se entienda, ya que intervienen otros factores, como por ejemplo el TIMESLICE y el PURGE.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Además habría que analizar las causas de la paginación, ya que podría tener una "fácil" solución que no implique comprar mas RAM, sino solamente algo de "tunning" del tamaño de los pool de memoria y/o en el numero de hebras (threads) activos en cada momento.&lt;br /&gt;&lt;br /&gt;Puedes leerte las siguientes entradas de mi blog &lt;a href="http://www.as400howto.com/" target="_blank"&gt;www.as400howto.com&lt;/a&gt;, para ver si te aclaro un poco más el tema:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://as400howto.blogspot.com/2008/12/memoria-para-trabajos-batch.html" target=_new&gt;Memoria para trabajos batch&lt;/a&gt;&lt;a name="121d8a4ee7aafb5e_7615167383955108601"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://as400howto.blogspot.com/2008/12/subsistema-de-control.html" target="_blank"&gt;Subsistema de Control&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt; &lt;div&gt; &lt;h3&gt; &lt;/h3&gt;&lt;/div&gt;También tienes un link a un documento de IBM que puede servirte de ayuda:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/experience/adjuster.pdf" target="_blank"&gt;Experience Report&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5462777901334451672?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5462777901334451672/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5462777901334451672' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5462777901334451672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5462777901334451672'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/08/como-saber-si-el-as400-necesita-mas-ram.html' title='Como saber si el AS400 necesita mas RAM'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SjZ2n2Hc3xI/AAAAAAAAHgc/KwUFEF5BNoM/s72-c/dspsyssts.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8047125035505322763</id><published>2009-08-01T12:00:00.000+02:00</published><updated>2009-08-01T12:00:02.205+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Recuperar configuracion dispositivos</title><content type='html'>&lt;div style="text-align: justify;"&gt;¿Como recuperar la configuración de dispositivos, controladores y lineas configuradas en nuestro AS400?. Para ello ejecutar el siguiente mandato:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;RTVCFGSRC CFGD(*ALL) CFGTYPE(*ALL) SRCFILE(QGPL/QCLSRC) SRCMBR(SYSTEM_CFG)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Podemos utilizar la información recuperada como backup histórico o para, incluso, duplicar la configuración en otros AS400.&lt;br /&gt;&lt;br /&gt;Un ejemplo de como buscar dos impresoras con la misma dirección IP:&lt;br /&gt;&lt;/div&gt; &lt;ol&gt;&lt;li&gt;RTVCFGSRC CFGD(PRT*) CFGTYPE(*DEVD) SRCFILE(QGPL/QCLSRC) SRCMBR(PRINTERS)&lt;/li&gt;&lt;li&gt;Esto crea el miembro fuente QGPL/QCLSRC.PRINTERS.&lt;/li&gt;&lt;li&gt;Doy por supuesto que todas las impresoras se denominan PRT*, sino habrás de hacerlo por cada una, o por grupos, en ese caso acuérdate de utilizar la opción MBROPT(*ADD) para que no sobrescriba el miembro.&lt;/li&gt;&lt;li&gt;Después editar el fuente:&lt;/li&gt;&lt;li&gt;STRSEU SRCFILE(QGPL/QCLSRC) SRCMBR(PRINTERS)&lt;/li&gt;&lt;li&gt;Utilizar la opción de búsqueda de string del SEU, para encontrar la dirección IP&lt;/li&gt;&lt;li&gt;Utilizar la tecla &lt;span style="font-weight: bold;"&gt;F14&lt;/span&gt; (o el comando &lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;) + &lt;span style="font-weight: bold;"&gt;Direccion_IP&lt;/span&gt; y pulsar &lt;span style="font-weight: bold;"&gt;F16&lt;/span&gt; para buscarla.&lt;/li&gt;&lt;li&gt;Si aparece mas de una vez es que esta duplicada.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8047125035505322763?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8047125035505322763/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8047125035505322763' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8047125035505322763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8047125035505322763'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/08/recuperar-configuracion-dispositivos.html' title='Recuperar configuracion dispositivos'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1062407605081422095</id><published>2009-07-15T09:00:00.014+02:00</published><updated>2009-07-15T21:40:34.841+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Como cargar lista de bibliotecas</title><content type='html'>A veces nos puede interesar cargar en un trabajo la lista inicial de bibliotecas.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Esto nos puede servir, por ejemplo, en un menú, para nuestro operador, que realice llamadas  a programas o someta otros y estos cambian la lista de bibliotecas. Es conveniente dejar la lista de bibliotecas como estaba después de cada ejecución para evitar errores del operador al tener cargada una lista de bibliotecas diferente a la que él cree tener.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;El código que habríamos de insertar en nuestro programa seria el siguiente:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;DCL VAR(&amp;amp;BLANKS) TYPE(*CHAR) LEN(2764)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/* Incluir estas sentencias inmediatamente después de declarar las variables */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CHGVAR VAR(&amp;amp;BLANKS) VALUE(' ')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DOWHILE COND(&amp;amp;COUNT &lt;= &amp;amp;LEN)  CHGVAR VAR(&amp;amp;BLANKS) VALUE(&amp;amp;BLANKS *CAT ' ')  CHGVAR VAR(&amp;amp;COUNT) VALUE(&amp;amp;COUNT + 1) ENDDO /* Este mandato guarda en la variable &amp;amp;USRLIBL el valor de la lista de bibliotecas actual */ &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;RTVJOBA USRLIBL(&amp;amp;USRLIBL)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;....&lt;br /&gt;Inserte su código aquí&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;....&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/* Construir el mandato CHGLIBL con el valor de la lista de bibliotecas en blanco */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CHGVAR VAR(&amp;amp;CMD) VALUE('CHGLIBL LIBL(' *TCAT &amp;amp;BLANKS *TCAT ')')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/* Limpia la lista de bibliotecas del trabajo */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CALL PGM(QCMDEXC) PARM(&amp;amp;CMD &amp;amp;LEN)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/* Construir el mandato CHGLIBL con el valor de la lista de bibliotecas inicial */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CHGVAR VAR(&amp;amp;CMD) VALUE('CHGLIBL LIBL(' *TCAT &amp;amp;USRLIBL *TCAT ')')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/* Cargar la lista de bibliotecas inicial del trabajo */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CALL PGM(QCMDEXC) PARM(&amp;amp;CMD &amp;amp;LEN)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ENDPGM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;Se utiliza el QCMDEXC para ejecutar el CHGLIBL, en lugar de CHGLIBL LIBL(&amp;amp;USRLIBL), ya que en este caso solo nos cargaría en la lista la primera biblioteca de la variable &amp;USRLIBL; eso es porque el parámetro LIBL es un parámetro de listas y el interprete de mandatos del sistema operativo los trata de forma diferente.&lt;br /&gt;Para utilizar CHGLIBL deberíamos hacer CHGLIBL LIBL(&amp;amp;LIB1 &amp;amp;LIB2 ..... &amp;amp;LIBn), o sea utilizar tantas variables como bibliotecas contenga la variable &amp;amp;USRLIBL y eso complicaría aun mucho más el código.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1062407605081422095?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1062407605081422095/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1062407605081422095' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1062407605081422095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1062407605081422095'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/07/como-cargar-lista-de-bibliotecas.html' title='Como cargar lista de bibliotecas'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8078535754826200505</id><published>2009-07-05T08:00:00.003+02:00</published><updated>2009-07-05T19:17:22.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Arrancar registro por diario automaticamente</title><content type='html'>Como arrancar automáticamente el registro por diario de los objetos creados en una biblioteca.&lt;br /&gt;&lt;br /&gt;Para ello debemos crear la especial área de datos QDFTJRN en nuestra biblioteca, MYLIB por ejemplo. Los datos de este área de datos informan al sistema operativo que diario debe utilizar para arrancar el registro por diario de los nuevo objetos creados en la biblioteca MYLIB si los objetos son "journalizables" (de tipos de objeto * FILE, DTAARA * y * DTAQ) se añaden a la biblioteca.&lt;br /&gt;Cuando se crea un objeto en la biblioteca el sistema operativo busca este área de datos,  en la misma biblioteca, y utiliza los datos que contiene para decidir si el registro por diario debe ser arrancado para ese objeto. Esto solo funciona en sistemas con la versión V5R4 del OS400, en V6R1 tenemos otra manera de hacerlo (STRJRNLIB) .&lt;br /&gt;&lt;br /&gt;Como ejemplo para arrancar el registro por diario de TODOS los archivos creados en la biblioteca MYLIB, deberíamos de ejecutar los siguientes mandatos:&lt;br /&gt;&lt;ul  style="font-family:courier new;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CRTDTAARA DTAARA(MYLIB/QDFTJRN) TYPE(*CHAR) LEN(100)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CHGDTAARA DTAARA(MYLIB/QDFTJRN (1 10)) VALUE(MYLIB)    &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CHGDTAARA DTAARA(MYLIB/QDFTJRN (11 10)) VALUE(MYJRN)          &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CHGDTAARA DTAARA(MYLIB/QDFTJRN (21 10)) VALUE(*FILE)      &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CHGDTAARA DTAARA(MYLIB/QDFTJRN (31 10)) VALUE(*ALLOPR) &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SgAnvvFVqkI/AAAAAAAAHWM/o6kpnRd832g/s1600-h/qdftjrn.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 135px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SgAnvvFVqkI/AAAAAAAAHWM/o6kpnRd832g/s400/qdftjrn.gif" alt="" id="BLOGGER_PHOTO_ID_5332305659852859970" border="0" /&gt;&lt;/a&gt;Para crear los receptores de diario y el diario de una biblioteca MYLIB, podemos utilizar mi utilidad &lt;a href="http://www.telefonica.net/web2/motxilla/AS400/AS400.htm"&gt;CHGSTSJRN&lt;/a&gt;, o ejecutar los siguientes mandatos.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CRTJRNRCV JRNRCV(MYLIB/JRNRCV0001) THRESHOLD(10000) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;CRTJRN JRN(MYLIB/MYJRN) JRNRCV(MYLIB/JRNRCV0001) MNGRCV(*SYSTEM) DLTRCV(*YES) &lt;/span&gt;          &lt;/li&gt;&lt;/ul&gt;Más información en el documento&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;de IBM &lt;a href="http://www.redbooks.ibm.com/abstracts/tips0604.html" target="_new"&gt;Journaling at object creation on DB2 for iSeries&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8078535754826200505?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8078535754826200505/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8078535754826200505' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8078535754826200505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8078535754826200505'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/07/arrancar-registro-por-diario.html' title='Arrancar registro por diario automaticamente'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SgAnvvFVqkI/AAAAAAAAHWM/o6kpnRd832g/s72-c/qdftjrn.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4128651232206709351</id><published>2009-06-20T09:00:00.003+02:00</published><updated>2009-06-21T13:39:46.732+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>¿El AS400 ha muerto?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SjeztvwseaI/AAAAAAAAHg0/pRzbFn1Foxs/s1600-h/i5OS.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 75px; height: 55px;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SjeztvwseaI/AAAAAAAAHg0/pRzbFn1Foxs/s320/i5OS.jpg" alt="" id="BLOGGER_PHOTO_ID_5347940681021946274" border="0" /&gt;&lt;/a&gt;Con el último cambio de nombre del AS400, que ha hecho IBM, parece que finalmente conseguirá su objetivo de hacerlo desaparecer por "mimemitación" con el entorno.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Repasemos:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;AS/400&lt;/span&gt;: AS quiere decir &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt;pplication &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;erver (¡¡que no estaba tan mal!!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;AS/400: AS de Advanced Series.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;AS/400e&lt;br /&gt;&lt;/li&gt;&lt;li&gt;eServer&lt;/li&gt;&lt;li&gt;iSeries&lt;/li&gt;&lt;li&gt;System i&lt;/li&gt;&lt;li&gt;Power Systems&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;Pero realmente el ultimo cambio implica que ya no sabremos diferenciar, por el nombre, un sistema con sistema operativo AIX de otro con el i5/OS (antes llamado OS400),  esto finalmente implica que desaparece virtualmente nuestro AS400 y se convierte en un mero "plugin" del nuevo hardware controlado por una consola HMC que no funciona en i5/OS.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pros:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(espacio intencionadamente en blanco)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Contras:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(espacio intencionadamente en blanco)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Nota: &lt;/span&gt;Que cada cual lo rellene con sus opiniones, aunque realmente tardaremos unos años en ver el resultado de tanto "marear la perdiz".&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4128651232206709351?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4128651232206709351/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4128651232206709351' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4128651232206709351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4128651232206709351'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/06/el-as400-ha-muerto.html' title='¿El AS400 ha muerto?'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SjeztvwseaI/AAAAAAAAHg0/pRzbFn1Foxs/s72-c/i5OS.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2410606443533923366</id><published>2009-06-13T10:00:00.001+02:00</published><updated>2009-06-13T10:19:24.002+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Entradas de direccionamiento</title><content type='html'>&lt;div style="text-align: justify;"&gt;¿Para que sirven las entradas de direccionamiento?&lt;br /&gt;&lt;br /&gt;En anteriores artículos he hecho referencia a las entradas de direccionamiento de un subsistema (&lt;span style="font-size:85%;"&gt;&lt;a href="http://as400howto.blogspot.com/2008/10/memoria-para-subsistema-dedicado.html"&gt;Memoria para subsistema&lt;/a&gt;, &lt;a href="http://as400howto.blogspot.com/2008/11/asignar-prioridad-automticamente.html"&gt;Asignar prioridad automáticamente&lt;/a&gt;&lt;/span&gt; &lt;span style="font-size:85%;"&gt;y &lt;a href="http://as400howto.blogspot.com/2008/12/memoria-para-trabajos-batch.html"&gt;Memoria para trabajos batch&lt;/a&gt;&lt;/span&gt;), en este artículo intentaré explicar como funcionan y para que las podemos utilizar.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Utilizaremos como ejemplo las entradas del subsistema QBATCH. Para verlas hemos de utilizar el mandato DSPSBSD SBSD(QBATCH) y seleccionaremos la opción &lt;span style="font-weight: bold;"&gt;7. Routing entries&lt;/span&gt;:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SffsQ6-WlOI/AAAAAAAAHTo/7BOL-rLUWWY/s1600-h/RGTE_QBATCH.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 137px;" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SffsQ6-WlOI/AAAAAAAAHTo/7BOL-rLUWWY/s400/RGTE_QBATCH.gif" alt="" id="BLOGGER_PHOTO_ID_5329988459469116642" border="0" /&gt;&lt;/a&gt;En este subsistema (de ejemplo) tenemos 4 entradas de direccionamiento y la secuencia en que se ejecutaran (&lt;span style="font-weight: bold;"&gt;Seq Nbr)&lt;/span&gt;, las entradas hacen referencia a:&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;QIGC:&lt;/span&gt; Para trabajos que utilicen el sistema DBCS (Double-byte character set),  si esta instalado.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;QS36EVOKE:&lt;/span&gt; Para trabajos que utilizan el entorno compatible con IBM S/36.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;QCMD38:&lt;/span&gt; Para trabajos que utilizan el entorno compatible con IBM S/38.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;*ANY:&lt;/span&gt; Para el resto de trabajos del subsistema.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Para entender como el sistema asigna una clase al trabajo y los atributos de ejecución del mismo, deberíamos tener claro como el sistema operativo somete un trabajo y que parámetros utiliza, para ello nada mejor que leer el articulo &lt;a href="http://as400howto.blogspot.com/2009/04/someter-trabajos-batch.html"&gt;Someter trabajos batch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enrevesado, no?, veamos ahora como se asigna la clase:&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;El trabajo de control del subsistema &lt;span style="font-weight: bold;"&gt;QBATCH&lt;/span&gt; (&lt;span style="font-size:85%;"&gt;WRKJOB JOB(QSYS/QBATCH&lt;/span&gt;) lee, de la cola/s de trabajos que tiene asignada, los trabajos que están pendientes por ejecutar.&lt;/li&gt;&lt;li&gt;Recupera el valor del parámetro &lt;span style="font-weight: bold;"&gt;RTGDTA&lt;/span&gt; del trabajo, por omisión QCMDB.&lt;/li&gt;&lt;li&gt;Ira comparando el valor RTGDTA del trabajo con el valor de&lt;span style="font-weight: bold;"&gt; CMPVAL&lt;/span&gt; de las entradas de direccionamiento, en el orden de la secuencia indicada en "&lt;span style="font-weight: bold;"&gt;Seq Nbr&lt;/span&gt;".&lt;/li&gt;&lt;li&gt;Cuando encuentre una &lt;span&gt;entrada de direccionamiento que sea igual&lt;/span&gt;, ejecutará el programa que se indica en la entrada de direccionamiento. Como el valor por omisión de RTGDTA es &lt;span style="font-weight: bold;"&gt;QCMDB&lt;/span&gt;, la entrada de direccionamiento a asignar es la &lt;span style="font-weight: bold;"&gt;9999&lt;/span&gt;, que tiene el valor especial &lt;span style="font-weight: bold;"&gt;*ANY&lt;/span&gt; y por tanto llamará al programa &lt;span style="font-weight: bold;"&gt;QSYS/QCMD&lt;/span&gt;, pasando como parámetro el mandato indicado en el parámetro &lt;span style="font-weight: bold;"&gt;CMD&lt;/span&gt; del SBMJOB.&lt;/li&gt;&lt;li&gt;En la entrada de direccionamiento puede definirse en que posición del parámetro RGTDTA, debe empezar a comparar (&lt;span style="font-weight: bold;"&gt;CMPVAL&lt;/span&gt;), con lo que se amplían las posibilidades de asignación.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Entonces asignará, al trabajo, los valores de los atributos de ejecución indicados en la clase asignada a dicha entrada. Por omisión, en nuestro ejemplo, asignará los valores de la clase &lt;span style="font-weight: bold;"&gt;QSYS/QBATCH&lt;/span&gt;, o sea &lt;span style="font-weight: bold;"&gt;RUNPTY&lt;/span&gt;(50) y &lt;span style="font-weight: bold;"&gt;TIMESLICE&lt;/span&gt;(5000), para ver los valores de la clase podemos utilizar el mandato DSPCLS CLS(QSYS/QBATCH).&lt;/li&gt;&lt;li&gt;También asignará el trabajo al pool de memoria donde se ejecutara, esto se indica en el parámetro &lt;span style="font-weight: bold;"&gt;POOLID&lt;/span&gt; de la entrada de direccionamiento, ver también&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://as400howto.blogspot.com/2008/10/memoria-para-subsistema-dedicado.html"&gt;Memoria para subsistema&lt;/a&gt;&lt;/span&gt;. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;De esta forma el sistema asignará al trabajo los atributos de ejecución de la clase QBATCH a los trabajos que contengan cualquier cadena de caracteres en el campo RTGDTA que no sean igual a: QIGC, QS36EVOKE o QCMD38. Es obvio explicar que pasaría si contiene alguno de estos valores.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; Después de lo visto habréis podido deducir que el interprete de mandatos del OS400 es el programa QSYS/QCMD, tiene similitud con el interprete de comandos de windows que es c:\windows\system32\cmd.exe; y del entorno S/38 es el QSYS/QCL.&lt;br /&gt;&lt;br /&gt;Analicemos, ahora, las entradas de direccionamiento del subsistema QINTER:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SfgfRJYLwiI/AAAAAAAAHT4/KFkbV2zUdMA/s1600-h/RGTE_QINTER.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 161px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SfgfRJYLwiI/AAAAAAAAHT4/KFkbV2zUdMA/s400/RGTE_QINTER.gif" alt="" id="BLOGGER_PHOTO_ID_5330044538428572194" border="0" /&gt;&lt;/a&gt;Vemos algunas diferencias, pero creo que ya podéis deducir que:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;QCMDI &lt;/span&gt;es para llamar al interprete de mandatos del OS400, pero con la clase QINTER, que asigna por omisión los atributos de ejecución QGPL/QINTER, o sea RUNPTY(20)  y TIMESLICE(2000)  para trabajos interactivos. Notar la diferencia entre los valores QCMD&lt;span style="font-weight: bold;"&gt;I&lt;/span&gt;nteractivo y QCMD&lt;span style="font-weight: bold;"&gt;B&lt;/span&gt;atch. Es por esta entrada de direccionamiento por donde se arrancarán nuestras sesiones 5250.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;525XTEST&lt;/span&gt; esta es una entrada muy especial para ejecutar un programa de test de las pantallas 5250. Esto se conseguía pulsando una combinación de teclas al encender el terminal y aparecía una pantalla de test (&lt;span style="font-size:85%;"&gt;programa QARDRIVE&lt;/span&gt;).&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SfhyLVe104I/AAAAAAAAHUY/_UhlF5UfQzo/s1600-h/525XTEST.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 50px;" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SfhyLVe104I/AAAAAAAAHUY/_UhlF5UfQzo/s200/525XTEST.gif" alt="" id="BLOGGER_PHOTO_ID_5330135698063610754" border="0" /&gt;&lt;/a&gt;El resto de trabajos entrarán con &lt;span style="font-weight: bold;"&gt;*ANY&lt;/span&gt;, que por omisión utiliza la misma clase QINTER.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;En este ultimo punto podríamos implementar un sencillo truco para evitar que usuarios "listillos" sometan trabajos batch por el subsistema QINTER, con la "sana" intención de que sus trabajos obtengan más prioridad en la ejecución y terminen antes, pero claro a costa de que consuman más recursos del sistema. Para ello lo único que deberíamos hacer, es cambiar la clase de la entrada de direccionamiento *ANY, del subsistema QINTER, para asignarle la clase QBATCH, en lugar de la clase QINTER:&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;CHGRTGE SBSD(QSYS/QINTER) SEQNBR(9999) CLS(QSYS/QBATCH)&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;De esta forma cuando realizan el SBMJOB, como el valor RTGDTA es QCMDB, se les asignara la prioridad de un trabajo batch en lugar de interactivo. Esto no lo soluciona todo, ya que no podremos evitar que consuman memoria del mismo pool que el asignado a los trabajos interactivos en el subsistema QINTER, habitualmente &lt;span style="font-weight: bold;"&gt;*INTERACT&lt;/span&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2410606443533923366?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2410606443533923366/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2410606443533923366' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2410606443533923366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2410606443533923366'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/06/entradas-de-direccionamiento.html' title='Entradas de direccionamiento'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/SffsQ6-WlOI/AAAAAAAAHTo/7BOL-rLUWWY/s72-c/RGTE_QBATCH.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3588051773645667592</id><published>2009-06-05T08:00:00.003+02:00</published><updated>2009-06-05T08:00:03.886+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Colas de trabajos</title><content type='html'>&lt;div style="text-align: justify;"&gt;Cuando hemos de controlar la ejecución de los trabajos batch en el sistema, normalmente usamos los subsistemas, las colas de trabajo y las prioridades en la cola de trabajo (parámetro JOBPTY del CHGJOB).&lt;br /&gt;Este articulo es para entender mejor como un subsistema trabaja con las colas de trabajo que tiene asignadas y como podemos crear colas de trabajo especificas para ciertas tareas. Para ello explicare algunos conceptos relacionados con las colas de trabajo, en los ejemplos nos basaremos en el sistema QBATCH (DSPSBSD SBSD(QBATCH) y opción 6).&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;El subsistema tiene un numero de trabajos máximo que puede ejecutar, se cambia con el mandato CHGSBSD SBSD(QBATCH) MAXJOBS(*NOMAX), en este ejemplo estamos diciendo al sistema, que puede ejecutar un numero ilimitado de trabajos en el subsistema, bueno el limite es el rendimiento del sistema, ya podríamos llegar a colapsarlo.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;El subsistema tiene colas de trabajo asignadas y estas tienen un numero de secuencia, o sea el sistema primero mira si hay trabajos en la cola de trabajos de la secuencia 10, después de la 20, ..., hasta la 9999.&lt;/li&gt;&lt;li&gt;Cada cola de trabajos, asignada a un subsistema, tiene también un numero máximo de trabajos que puede ejecutar. El numero máximo de trabajos de una cola de trabajos se puede cambiar con el mandato CHGJOBQE.&lt;/li&gt;&lt;li&gt;Para complicarlo un poco más, también pueden definirse en cada cola de trabajo el numero de trabajos máximo por prioridad del trabajo, aunque por lo que he podido ver se usa poco.&lt;/li&gt;&lt;li&gt;Si el sistema encuentra un trabajo en la cola de trabajos, y no hay ejecutándose el numero máximo de trabajos activos de esa cola y el subsistema tiene menos trabajos que el máximo que tiene definido para el subsistema, entonces entraran tantos trabajos de esa cola hasta que no queden trabajos en la cola o hasta que el subsistema tenga el numero máximo de trabajos.&lt;/li&gt;&lt;li&gt;Una cola de trabajos puede estar definida en dos subsistemas diferentes, pero solo se asigna al primer subsistema que arranca.&lt;/li&gt;&lt;li&gt;Una cola puede no estar asignada a algún subsistema (o el subsistema no esta activo), en ese caso nunca entran trabajos de esa cola.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo1:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SgAFi_NrZRI/AAAAAAAAHWE/EE2o6oa-Y60/s1600-h/qbatch_jobq15.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 81px;" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SgAFi_NrZRI/AAAAAAAAHWE/EE2o6oa-Y60/s400/qbatch_jobq15.gif" alt="Ejemplo1" id="BLOGGER_PHOTO_ID_5332268057449162002" border="0" /&gt;&lt;/a&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;En este ejemplo supongamos que el subsistema QBATCH puede ejecutar un numero ilimitado de trabajos (*NOMAX).&lt;/li&gt;&lt;li&gt;En este caso podríamos tener el numero máximo de trabajos ejecutándose de todas las colas porque 10+1+4 = 15.&lt;/li&gt;&lt;li&gt;Si en la cola QBATCH hay 17 trabajos solo se ejecutaran como máximo 10, aunque el subsistema no este ejecutando ningún trabajo del resto de colas.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo2:&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SgADJeeysAI/AAAAAAAAHV8/bP0fH4bz3wo/s1600-h/qbatch_jobq.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 106px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SgADJeeysAI/AAAAAAAAHV8/bP0fH4bz3wo/s400/qbatch_jobq.gif" alt="Ejemplo2" id="BLOGGER_PHOTO_ID_5332265420142587906" border="0" /&gt;&lt;/a&gt;Igual que en el &lt;span style="font-weight: bold;"&gt;Ejemplo1&lt;/span&gt; pero con dos colas más (con *NOMAX) y el subsistema QBATCH puede ejecutar 50 trabajos al mismo tiempo como máximo:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Supongamos que se están ejecutando &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; trabajos de la cola QBATCH y llegan de golpe &lt;span style="font-weight: bold;"&gt;160&lt;/span&gt; trabajos a la cola QSRCTXT, de estos entraran &lt;span style="font-weight: bold;"&gt;47 &lt;/span&gt;trabajos, ya que &lt;span style="font-weight: bold;"&gt;3+47=50&lt;/span&gt; es el numero máximo de trabajos activos en el subsistema, quedando el resto en cola.&lt;/li&gt;&lt;li&gt;Si en ese momento llega un trabajo por la cola QBATCH1X1, esté no podrá entrar hasta que finalice algún trabajo.&lt;/li&gt;&lt;li&gt;Si finaliza un trabajo que ha entrado por la cola QSRCTXT, entonces entraría el trabajo de la QBATCH1X1, porque tiene una secuencia mas baja que la cola QSRCTXT, cuando termine otro, si no hay ninguno en las colas de las secuencias inferiores a la QSRCTXT, irán entrando más trabajos a medida que finalicen.&lt;/li&gt;&lt;li&gt;Si mientras llega algún trabajo a la cola QBATCH pasaría antes que los de la QBATCH1X1, ya que su numero de secuencia es menor.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Recomendaciones:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Si queremos asignar a una cola un numero de trabajos *NOMAX, mi recomendación es ponerla al final, y deberíamos solo enviar a esa cola trabajos de ejecución muy rápida, para no colapsar la cola ni el sistema.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Prefiero asignar al subsistema un numero máximo de trabajos ilimitado (*NOMAX), pero debemos vigilar que las colas *NOMAX no nos puedan colapsar el sistema, en ese caso no nos quedara más remedio que asignar un numero máximo de trabajos al subsistema que nos pueda soportar el sistema (CHGSBSD), habitualmente empezaríamos por asignar la suma del numero máximo de trabajos de cada cola más un numero &lt;span style="font-weight: bold;"&gt;n&lt;/span&gt; de trabajos, si vemos que es demasiado para el sistema, ir reduciendo el numero máximo de trabajos activos.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3588051773645667592?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3588051773645667592/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3588051773645667592' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3588051773645667592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3588051773645667592'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/06/colas-de-trabajos.html' title='Colas de trabajos'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SgAFi_NrZRI/AAAAAAAAHWE/EE2o6oa-Y60/s72-c/qbatch_jobq15.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3479774310283515683</id><published>2009-05-15T08:00:00.001+02:00</published><updated>2011-06-04T13:33:26.044+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Cola de trabajos independiente</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;A veces hemos tenido la necesidad de aislar ciertos tipos de trabajo para que se ejecuten en orden secuencial; como la cola de trabajos QBATCH (asignada al subsistema QBATCH), puede, por omisión, ejecutar varios trabajos simultáneamente, no podemos utilizar esa cola para ejecutar trabajos secuencialmente.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Para crear una cola de trabajos independiente y asignarla al subsistema QBATCH, para que ejecute trabajos de uno en uno seguiremos los siguientes pasos:&lt;/div&gt;&lt;ol style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;li&gt;Crear una nueva cola de trabajos donde someteremos los trabajos que queramos ejecutar secuencialmente:&lt;/li&gt;&lt;li&gt;CRTJOBQ JOBQ(QGPL/QBATCH1X1) TEXT('Job queue for run one by one') &lt;/li&gt;&lt;li&gt;Asignar esa nueva cola de trabajos al subsistema QBATCH:&lt;/li&gt;&lt;li&gt;ADDJOBQE SBSD(QBATCH) JOBQ(QGPL/QBATCH1X1) MAXACT(1) SEQNBR(15)&lt;/li&gt;&lt;li&gt;El numero de secuencia (SEQNBR) sera el orden de cola que el subsistema utilizará para ejecutar los trabajos.&lt;/li&gt;&lt;li&gt;Puede ser necesario ampliar el numero máximo de trabajos que se ejecutan en el subsistema QBATCH, y que por omisión es *NOMAX. Para comprobarlo DSPSBSD QBATCH opción 1 y ver el numero máximo de trabajos en el subsistema. Para cambiarlo usar CHGSBSD SBSD(QSYS/QBATCH) MAXJOBS(&lt;span style="font-weight: bold;"&gt;jobs que existan + 1&lt;/span&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;También podemos modificar las descripciones de trabajo, que creamos conveniente, para que se sometan siempre por esa cola de trabajos:&lt;/li&gt;&lt;li&gt;CHGJOBD JOBD(mylib/myjobd) JOBQ(QGPL/QBATCH1X1)&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SgACNlXSsiI/AAAAAAAAHV0/vI9gbtbtuRc/s1600-h/qbatch1x1.GIF" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" target="_new"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5332264391198028322" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SgACNlXSsiI/AAAAAAAAHV0/vI9gbtbtuRc/s400/qbatch1x1.GIF" style="cursor: pointer; display: block; height: 39px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3479774310283515683?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3479774310283515683/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3479774310283515683' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3479774310283515683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3479774310283515683'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/05/cola-de-trabajos-independiente.html' title='Cola de trabajos independiente'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/SgACNlXSsiI/AAAAAAAAHV0/vI9gbtbtuRc/s72-c/qbatch1x1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8907030582241242581</id><published>2009-05-04T17:28:00.011+02:00</published><updated>2010-04-23T11:35:01.552+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Cola de mensajes QSYSMSG</title><content type='html'>&lt;div style="text-align: justify;"&gt;El sistema operativo del AS400 tiene una función oculta y especial para enviar los mensajes que requieran alguna acción por parte del usuario (operador o administrador), a la cola de mensajes especial &lt;span style="font-weight: bold;"&gt;QSYSMSG&lt;/span&gt;.  Esta cola de mensajes no existe al instalar el sistema operativo y debemos de crearla manualmente:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;&lt;span style="font-weight: normal;font-size:85%;" &gt;CRTMSGQ MSGQ(QSYS/QSYSMSG) TEXT ('Special system messages queue')&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Con esto los mensajes de cierta gravedad se escribirán en la cola de mensajes &lt;span style="font-weight: bold;"&gt;QSYSMSG&lt;/span&gt;, ademas de en la cola &lt;span style="font-weight: bold;"&gt;QSYSOPR&lt;/span&gt;. Esto puede facilitarnos la monitorización de mensajes del sistema.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Podéis encontrar información sobre esta funcionalidad en el &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rbam6/qsysm.htm" target="_new"&gt;IBM Information Center&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8907030582241242581?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8907030582241242581/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8907030582241242581' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8907030582241242581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8907030582241242581'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/05/crear-cola-de-mensajes-qsysmsg.html' title='Cola de mensajes QSYSMSG'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4092603339085231801</id><published>2009-05-03T09:05:00.004+02:00</published><updated>2010-04-23T11:35:01.552+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Controlar trabajos batch</title><content type='html'>Para averiguar la duración de un trabajo batch, que no ha dejado rastro (joblog),   podemos utilizar el histórico del sistema para ver cuando se arranco, cuando finalizo y con que código.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Para ello debemos utilizar el mandato DPSLOG, por ejemplo para ver la duración del trabajo MYJOB del usuario QUSER, del cual no sabemos el numero de trabajo, pero si que se debió ejecutar el día 30 de abril por la tarde:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;DSPLOG PERIOD((120000 300409)) JOB(QUSER/MYJOB) MSGID(CPF1124 CPF1164)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Con esto obtendremos el siguiente resultado:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/Sfmu6d3hiAI/AAAAAAAAHVM/vlxstz2LrbQ/s1600-h/dsplog.gif" target=_new&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 39px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/Sfmu6d3hiAI/AAAAAAAAHVM/vlxstz2LrbQ/s400/dsplog.gif" alt="" id="BLOGGER_PHOTO_ID_5330483953442850818" border="0" /&gt;&lt;/a&gt;El message id &lt;span style="font-weight: bold;"&gt;CPF1124&lt;/span&gt; nos indica la hora de arranque del trabajo y el &lt;span style="font-weight: bold;"&gt;CPF1164&lt;/span&gt; la hora de terminación y con que código; para ver el código hemos de situar el cursor sobre la línea del mensaje y pulsar &lt;span style="font-weight: bold;"&gt;F1&lt;/span&gt;, con ello podremos ver la siguiente pantalla:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SfmvvMLS1jI/AAAAAAAAHVU/LgJ9i5JVn7k/s1600-h/cpf1164.gif" target=_new&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 208px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SfmvvMLS1jI/AAAAAAAAHVU/LgJ9i5JVn7k/s320/cpf1164.gif" alt="" id="BLOGGER_PHOTO_ID_5330484859227002418" border="0" /&gt;&lt;/a&gt;Ahí podremos ver el código de terminación, en el ejemplo &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;Si un trabajo tiene código de terminación &lt;span style="font-weight: bold;"&gt;10&lt;/span&gt;, puede que haya terminado correctamente.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Si pulsamos &lt;span style="font-weight: bold;"&gt;Av.Pag.&lt;/span&gt; podremos ver la razón de todos los códigos de terminación.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Si pulsamos la tecla &lt;span style="font-weight: bold;"&gt;F6&lt;/span&gt; imprimiremos este mensaje en nuestro el spool.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Si volvemos a ejecutar el mismo mandato DSPLOG, pero sin el parámetro MSGID, veremos &lt;span style="font-weight: bold;"&gt;todos los mensajes&lt;/span&gt; que el trabajo ha enviado al histórico del sistema.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Si pulsamos la tecla &lt;span style="font-weight: bold;"&gt;F9&lt;/span&gt; sobre el mensaje podremos ver que programa ha grabado el mensaje (a veces toda ayuda es poca):&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/Sfmzrf7ZtuI/AAAAAAAAHVc/YAb8drm1fls/s1600-h/USR0701.gif" target=_new&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 137px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/Sfmzrf7ZtuI/AAAAAAAAHVc/YAb8drm1fls/s320/USR0701.gif" alt="" id="BLOGGER_PHOTO_ID_5330489193856087778" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Tener en cuenta que el histórico del sistema se limpia automáticamente con las opciones de limpieza del sistema (GO CLEANUP), por omisión solo conserva los últimos 15 días.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Otra forma de controlar los trabajos es utilizar mi utilidad &lt;a href="http://www.telefonica.net/web2/motxilla/AS400/AS400.htm" target="_new"&gt;HSTJOBLOG&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4092603339085231801?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4092603339085231801/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4092603339085231801' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4092603339085231801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4092603339085231801'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/04/controlar-trabajos-batch.html' title='Controlar trabajos batch'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/Sfmu6d3hiAI/AAAAAAAAHVM/vlxstz2LrbQ/s72-c/dsplog.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-6311709406592179248</id><published>2009-04-29T17:56:00.007+02:00</published><updated>2009-04-29T18:07:53.468+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Caja de busqueda en el blog</title><content type='html'>He añadido una caja de Google en el blog para facilitaros la búsqueda de temas en el blog.&lt;br /&gt;&lt;form id="cse-search-box" action="http://www.google.com/cse"&gt;&lt;div&gt;&lt;input name="q" size="31" type="text"&gt;&lt;br /&gt;&lt;input value="Buscar" name="sa" type="submit"&gt;&lt;br /&gt;&lt;/div&gt;Espero que os sea útil.&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-6311709406592179248?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/6311709406592179248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=6311709406592179248' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6311709406592179248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6311709406592179248'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/04/caja-de-busqueda-en-el-blog.html' title='Caja de busqueda en el blog'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3495283293282382434</id><published>2009-04-28T08:58:00.000+02:00</published><updated>2009-04-30T16:24:25.508+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Someter trabajos batch</title><content type='html'>Para entender como el sistema somete un trabajo, explicaré cual es el &lt;span style="font-weight: bold;"&gt;procedimiento&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;básico&lt;/span&gt; que utiliza el OS400.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SfgLUStFSRI/AAAAAAAAHTw/-8d4lc-0ga8/s1600-h/sbmjob.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 184px;" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SfgLUStFSRI/AAAAAAAAHTw/-8d4lc-0ga8/s400/sbmjob.gif" alt="" id="BLOGGER_PHOTO_ID_5330022602239199506" border="0" /&gt;&lt;/a&gt;Para someter un trabajo utilizamos el mandato &lt;span style="font-weight: bold;"&gt;SBMJOB,&lt;/span&gt; indicando en el parámetro &lt;span style="font-weight: bold;"&gt;CMD&lt;/span&gt; el programa, o mandato, que queremos ejecutar, grabando una entrada en la cola de trabajo:&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Es conveniente indicar un nombre de trabajo (&lt;span style="font-weight: bold;"&gt;JOB&lt;/span&gt;) que nos ayude a controlarlo, ya que por omisión utilizara el valor *JOBD, o sea utilizara el nombre de la descripción de trabajo para todos los trabajos que sometamos sin nombre.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;El trabajo ira a la cola de trabajo (&lt;span style="font-weight: bold;"&gt;JOBQ&lt;/span&gt;) que este especificada en el SBMJOB, por omisión tiene &lt;span style="font-weight: bold;"&gt;*JOBD&lt;/span&gt; que nos indica que cogerá el valor de la cola de trabajo especificada en la descripción de trabajo, indicada en el parámetro JOBD.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;El parámetro &lt;span style="font-weight: bold;"&gt;JOBD&lt;/span&gt; nos indica la descripción de trabajo que utilizará, por omisión tiene el valor &lt;span style="font-weight: bold;"&gt;*USRPRF&lt;/span&gt;, este nos indica que cogerá el valor de la descripción de trabajo del usuario que esta sometiendo el trabajo. Esto se define en el perfil del usuario (DSPUSRPRF  parámetro JOBD).&lt;/li&gt;&lt;li&gt;El valor del parámetro JOBD(*USRPRF) puede forzarse para tener otro valor, al usar el parámetro &lt;span style="font-weight: bold;"&gt;USER&lt;/span&gt; del SBMJOB (por omisión &lt;span style="font-weight: bold;"&gt;*CURRENT&lt;/span&gt;), que indica que usara otro usuario para ejecutar el trabajo, evidentemente hemos de estar autorizados al perfil de usuario a utilizar ya que puede suponer un agujero de seguridad.&lt;/li&gt;&lt;li&gt;Podemos definir la prioridad que tendrá nuestro trabajo en la cola de trabajos (&lt;span style="font-weight: bold;"&gt;JOBPTY&lt;/span&gt;) y/o en la cola de salida (&lt;span style="font-weight: bold;"&gt;OUTPTY&lt;/span&gt;). Por omisión utiliza el valor &lt;span style="font-weight: bold;"&gt;*JOBD&lt;/span&gt; recuperando este valor de la descripción de trabajo que habitualmente es 5. Podemos indicarle otro valor que puede ir de 1 (alta prioridad) a 9 (baja prioridad), de todas formas tenemos un limite que esta indicado en el parámetro &lt;span style="font-weight: bold;"&gt;PTYLMT&lt;/span&gt; de nuestro perfil de usuario y que por omisión es 3.&lt;/li&gt;&lt;li&gt;Con el parámetro &lt;span style="font-weight: bold;"&gt;OUTQ &lt;/span&gt;definimos a que cola de salida irán los listados que genere nuestro trabajo, por omisión es &lt;span style="font-weight: bold;"&gt;*CURRENT&lt;/span&gt; con lo que utiliza la cola de salida que tienen asignada el trabajo desde donde se ejecuta el SBMJOB.&lt;/li&gt;&lt;li&gt;Otro parámetro muy importante es &lt;span style="font-weight: bold;"&gt;INLLIBL&lt;/span&gt; (Initial library list) donde indicaremos en que bibliotecas y en que orden el sistema operativo debe buscar los objetos (programas, archivos, áreas de datos, etc..) que se utilicen en el trabajo. Por omisión tiene el valor &lt;span style="font-weight: bold;"&gt;*CURRENT&lt;/span&gt; y por tanto la lista de bibliotecas sera la misma que la del trabajo desde donde se ejecuta el SBMJOB. Otro valor que puede tener el parámetro INLLIBL, y muy recomendable utilizar, es &lt;span style="font-weight: bold;"&gt;*JOBD&lt;/span&gt; que utilizara la lista de bibliotecas definida en la descripción de trabajo que utilicemos para someter el trabajo.&lt;/li&gt;&lt;li&gt;El parámetro &lt;span style="font-weight: bold;"&gt;RTGDTA&lt;/span&gt; (Routing data) es importante para asignar los atributos de ejecución del trabajo, esta relacionado con las entradas de direccionamiento que explicaré en un próximo articulo.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Después vendrían los parámetros relacionados con el log del trabajo: &lt;span style="font-weight: bold;"&gt;LOG, LOGCLPGM, LOGOUTPUT, JOBMSGQMX&lt;/span&gt;. Todos ellos tienen por omisión &lt;span style="font-weight: bold;"&gt;*JOBD&lt;/span&gt;. Habitualmente para que un trabajo deje rastro para que podamos ver los que se ha ejecutado es utilizando los valores LOG(4 00 *SECLVL) LOGCLPGM(*YES).&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Para el resto de parámetros y valores os recomiendo leer con más calma la ayuda del propio mandato SBMJOB (&lt;span style="font-size:85%;"&gt;SBMJOB + F4+F1+F2&lt;/span&gt;, &lt;span style="font-size:85%;"&gt;F14 para imprimirla&lt;/span&gt;) para entrar en más detalle.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Para mucha más información:&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzaks/rzaks1.htm" target="_new"&gt;Gestión de Trabajos en el IBM iSeries InformationCenter&lt;/a&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzaks/rzaks.pdf" target="_new"&gt;Manual de IBM iSeries Systems management and Work management&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3495283293282382434?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3495283293282382434/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3495283293282382434' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3495283293282382434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3495283293282382434'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/04/someter-trabajos-batch.html' title='Someter trabajos batch'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SfgLUStFSRI/AAAAAAAAHTw/-8d4lc-0ga8/s72-c/sbmjob.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-266972378559200374</id><published>2009-03-20T17:31:00.004+01:00</published><updated>2009-03-21T21:51:13.640+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Intercambio archivos entre AS y PC</title><content type='html'>En este documento se explican los tipos de intercambios de archivos más comunes entre AS400 y PC; deben servir solo como referencia y adaptar los parámetros según nuestras necesidades:&lt;br /&gt;&lt;br /&gt;Archivos formato texto ("planos" de 1 solo campo):&lt;br /&gt;De AS400 a PC, en un directorio ubicado en un servidor de archivos (por ejemplo):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CPYTOIMPF FROMFILE(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;mylib/myfile&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;) TOSTMF('&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;/QNTC/myserver/mysharedfolder/mytextfile.TXT&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para generar ficheros sin caracter CR (retorno carro) y solo LF (final de linea):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CPYTOIMPF FROMFILE(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;mylib/myfile&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;) TOSTMF('&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;/home/temp/myascii.txt&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;') MBROPT(*REPLACE) FROMCCSID(37) STMFCODPAG(*PCASCII) RCDDLM(*LF) DTAFMT(*DLM) STRDLM(*NONE) STRESCCHR(*NONE) RMVBLANK(*TRAILING)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FLDDLM('')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo para subir un archivo plano de PC (desde un servidor) al AS400:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Primero averiguar la longitud del archivo &lt;span style="font-weight: bold;"&gt;TEXTO.TXT&lt;/span&gt;, por ejemplo en este caso 132.&lt;/li&gt;&lt;li&gt;Crear un archivo de destino en el AS400:&lt;/li&gt;&lt;li  style="font-family:courier new;"&gt;CRTPF FILE(&lt;span style="font-weight: bold;"&gt;MYLIB/TEXTO&lt;/span&gt;) RCDLEN(132)&lt;/li&gt;&lt;li&gt;Copiar el archivo:&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;CPYFRMIMPF FROMSTMF('&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;/QNTC/myserver/mysharedfolder/mytextfile.TXT&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;') TOFILE(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;MYLIB/TEXTO&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;) MBROPT(*REPLACE) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE) RMVBLANK(*NONE) FLDDLM(*TAB)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Para convertir y copiar un archivo de AS400 a formato CSV (para Excel y/o Access) y dejarlo en la carpeta de un servidor de archivos (p.e. WinNT) puedes utilizar el mandato:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CPYTOIMPF FROMFILE(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;mylib/myfile&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;) TOSTMF ('&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;/QNTC/myserver/mysharedfolder/mycsvfile.CSV&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM('"') FLDDLM(';')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tener en cuenta que la ruta "&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;QNTC/myserver/mysharedfolder/&lt;/span&gt;" solo funciona si:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;La carpeta compartida del servidor //&lt;span style="font-weight: bold;"&gt;myserver/mysharedfolder &lt;/span&gt;es accesible desde la red.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;El &lt;a href="http://www-03.ibm.com/systems/i/software/netserver/fastpath.html" target="_net"&gt;servicio Netserver del AS400&lt;/a&gt;, esta correctamente configurado.&lt;/li&gt;&lt;li&gt;El usuario y la contraseña que lanza el mandato CPY???IMPF es igual en el AS400 y en el servidor de archivos.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-266972378559200374?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/266972378559200374/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=266972378559200374' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/266972378559200374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/266972378559200374'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/03/intercambio-archivos-entre-as-y-pc.html' title='Intercambio archivos entre AS y PC'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5374916078647810758</id><published>2009-03-06T11:00:00.001+01:00</published><updated>2009-03-06T11:00:00.571+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Comprimir archivos en IFS</title><content type='html'>Para comprimir un archivo ASCII ubicado en el IFS del AS400 podemos utilizar el comando jar en una sesión del shell de UNIX en el AS400.&lt;br /&gt;&lt;br /&gt;Como hacerlo, pues ahí va un ejemplo:&lt;br /&gt;&lt;ol style="font-family: georgia;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Desde la línea de mandatos tecleamos STRQSH, o simplemente QSH.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;En la pantalla de "QSH Command Entry" teclear:&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;jar -cfM /home/compress_folder/myfile.zip /home/myfolder/myfile1.txt&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;                                                                         Si queremos comprimir todo el contenido de un directorio:&lt;br /&gt;           &lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;jar -cfM /home/compress_folder/mydirectory.zip /home/folder_to_compress&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;Si queremos comprimir varios archivos, dentro de un CL:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;PGM&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;QSH('jar -cfM /home/compress_folder/myfile.zip /home/myfolder/myfile1.txt /home/myfiles/myfile2.csv') &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;...&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-size:100%;" &gt;ENDPGM&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5374916078647810758?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5374916078647810758/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5374916078647810758' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5374916078647810758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5374916078647810758'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/03/comprimir-archivos-en-ifs.html' title='Comprimir archivos en IFS'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-6230516092591441853</id><published>2009-02-25T13:11:00.000+01:00</published><updated>2009-02-25T13:11:00.459+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Take Control of DB2 for i Performance with V6R1 System i Navigator</title><content type='html'>Articulo que hace referencia a como controlar el rendimiento de las aplicaciones de AS400 que usan SQL:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mcpressonline.com/june-11-2008-vol-3-issue-11/system-administration/performance-monitoring-tuning/take-control-of-db2-for-i-performance-with-v6r1-system-i-navigator.html" target="_new"&gt;Take Control of DB2 for i Performance with V6R1 System i Navigator&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;y otro articulo relacionado:&lt;br /&gt;&lt;a href="http://www.mcpressonline.com/october-22-2008-vol-3-issue-20/programming/sql/making-the-best-use-of-v6-sql-olap-functions.html" target="_new"&gt;&lt;br /&gt;Making the Best Use of V6 SQL OLAP Functions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-6230516092591441853?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/6230516092591441853/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=6230516092591441853' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6230516092591441853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/6230516092591441853'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/02/take-control-of-db2-for-i-performance.html' title='Take Control of DB2 for i Performance with V6R1 System i Navigator'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3198426595028176241</id><published>2009-02-09T15:04:00.000+01:00</published><updated>2009-02-09T15:04:01.143+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Monitorizar F3 en mandato</title><content type='html'>Como controlar si un usuario a salido pulsando F3 o F12 de la ejecución de un mandato en un programa CL interactivo.&lt;br /&gt;&lt;br /&gt;Para ello solo hemos de monitorizar el mensaje CPF6801 en el programa, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;PGM&lt;br /&gt;....&lt;br /&gt;?DSPLOG                   &lt;br /&gt;MONMSG MSGID(CPF6801) EXEC(GOTO END)&lt;br /&gt;...&lt;br /&gt;END:&lt;br /&gt;RETURN&lt;br /&gt;ENDPGM  &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3198426595028176241?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3198426595028176241/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3198426595028176241' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3198426595028176241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3198426595028176241'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/01/como-controlar-si-un-usuario-salido.html' title='Monitorizar F3 en mandato'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3286557462750850233</id><published>2009-02-03T15:10:00.001+01:00</published><updated>2010-04-23T11:35:01.552+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Calcular tamaño objeto</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para obtener el tamaño de un objeto de más de 10 Gbytes, con DSPOBJD a *OUTFILE, hay que realizar la siguiente operacion ODSIZU * ODBPUN, ya que el campo ODOBSZ esta definido 10,0 Packed y no admite objetos mayores.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3286557462750850233?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3286557462750850233/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3286557462750850233' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3286557462750850233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3286557462750850233'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/02/calcular-tamano-objeto.html' title='Calcular tamaño objeto'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4971182561749334584</id><published>2009-01-26T17:00:00.000+01:00</published><updated>2009-01-26T17:00:01.065+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Ejecutar comandos DOS desde AS400</title><content type='html'>Para poder ejecutar un programa de pc desde un programa CL del AS400, hemos de ejecutar los mandatos STRPCO y STRPCCMD.&lt;br /&gt;&lt;br /&gt;Podemos por ejemplo ejecutar un .BAT o un .CMD pasándole parámetros (solo de ida)&lt;br /&gt;&lt;br /&gt;Un ejemplo para abrir la web de Google con el navegador Interner Explorer:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;STRPCO&lt;br /&gt;MONMSG MSGID(IWS4010)&lt;br /&gt;STRPCCMD PCCMD('"C:\Archivos de programa\Internet Explorer\IEXPLORE.EXE" www.google.com')&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Otro ejemplo para ejecutar el programa &lt;span style="font-size:85%;"&gt;c:\Myscripts\program1.BAT pasándole un parámetro&lt;/span&gt;:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;DCL VAR(&amp;amp;PCCMD) TYPE(*CHAR) LEN(512)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;DCL VAR(&amp;amp;VAR1) TYPE(*CHAR) LEN(256)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;CHGVAR VAR(&amp;amp;VAR1) VALUE('VALOR1')&lt;br /&gt;CHGVAR VAR(&amp;amp;PCCMD) VALUE('C:\Myscripts\program1.BAT' *BCAT &amp;amp;VAR1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;STRPCO&lt;br /&gt;MONMSG MSGID(IWS4010)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;STRPCCMD PCCMD(&amp;amp;PCCMD)&lt;br /&gt;&lt;br /&gt;Despues deberiamos controlar la ejecucion del programa&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4971182561749334584?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4971182561749334584/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4971182561749334584' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4971182561749334584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4971182561749334584'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/01/ejecutar-comandos-dos-desde-as400.html' title='Ejecutar comandos DOS desde AS400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8647452410538296088</id><published>2009-01-16T15:00:00.001+01:00</published><updated>2009-01-16T16:37:52.246+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Bibliotecas productos instalados</title><content type='html'>&lt;div style="text-align: justify;"&gt;Como averiguar en que bibliotecas están instalados los productos del sistema OS400.&lt;br /&gt;&lt;br /&gt;Para ello podemos utilizar el mandato DSPSFWRSC con salida a pantalla, impresora o fichero, si ejecutamos DSPSFWRSC OUTPUT(*) nos aparecerá la siguiente pantalla:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SXCQdzt2khI/AAAAAAAAGLY/rfM5DX6n5rg/s1600-h/dspsfwrsc1.gif" target="_new"&gt;&lt;img style="cursor: pointer; width: 200px; height: 130px;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SXCQdzt2khI/AAAAAAAAGLY/rfM5DX6n5rg/s200/dspsfwrsc1.gif" alt="" id="BLOGGER_PHOTO_ID_5291888403933467154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Si pulsamos &lt;span style="font-weight: bold;"&gt;F11=Display libraries/releases&lt;/span&gt; se visualizará la columna "Library" con el nombre de la biblioteca del producto de la primera pantalla.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SXCQAbXt97I/AAAAAAAAGLI/L2o92_WpDyE/s1600-h/dspsfwrsc2.gif" target="_new"&gt;&lt;img style="cursor: pointer; width: 200px; height: 130px;" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SXCQAbXt97I/AAAAAAAAGLI/L2o92_WpDyE/s200/dspsfwrsc2.gif" alt="" id="BLOGGER_PHOTO_ID_5291887899181971378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Esto nos puede servir cuando hagamos limpieza de bibliotecas y saber cuales corresponden a productos del limpieza, no todas las que empiezan por Q pueden ser del sistema.&lt;br /&gt;&lt;br /&gt;También hemos de tener en cuenta que los productos, cada vez más, utilizan directorios del IFS.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8647452410538296088?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8647452410538296088/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8647452410538296088' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8647452410538296088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8647452410538296088'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/01/bibliotecas-productos-instalados.html' title='Bibliotecas productos instalados'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SXCQdzt2khI/AAAAAAAAGLY/rfM5DX6n5rg/s72-c/dspsfwrsc1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3032201723720317999</id><published>2009-01-09T16:39:00.005+01:00</published><updated>2009-01-11T10:04:44.038+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>QPFRADJ=0 ???</title><content type='html'>&lt;div style="text-align: justify;"&gt;Bueno, bueno, como he visto que mi &lt;a href="http://es.wikipedia.org/wiki/Tocayo" target=_new&gt;tocayo&lt;/a&gt; Martín, de&lt;a href="http://www.sidra400.com/sidra400.nsf/" target="_new"&gt; SIDRA400,&lt;/a&gt; se ha tomado la molestia de explicarnos, con más detalle el valor de sistema QPFRADJ, ya que yo lo daba por supuesto para no extenderme,  os paso el enlace de su artículo para que podáis ampliar el conocimiento en el tema del ajuste de rendimiento del sistema.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.sidra400.com/sidra400.nsf/dx/03012009142012ADMGGB.htm" title="QPFRADJ=0 ???" rel="bookmark" target="_new"&gt;QPFRADJ=0 ???&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;¡¡ Cuidado no entréis en un bucle de blogs !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3032201723720317999?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3032201723720317999/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3032201723720317999' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3032201723720317999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3032201723720317999'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/01/qpfradj0.html' title='QPFRADJ=0 ???'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1315251288582698922</id><published>2009-01-08T13:37:00.005+01:00</published><updated>2011-02-12T15:14:19.559+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Corregido bug utilidad CPYJOBSPL</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5290332388522748322" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SWsJRymkaaI/AAAAAAAAGJw/Z5K62nCTfjk/s200/engranaje2.jpg" style="cursor: pointer; float: left; height: 55px; margin: 0pt 10px 10px 0pt; width: 73px;" /&gt;Se ha corregido un pequeño bug cosmético de la utilidad CPYJOBSPL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://as400howto.blogspot.com/2008/10/copiar-archivos-spool-de-trabajo.html"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Copiar archivos spool&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1315251288582698922?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1315251288582698922/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1315251288582698922' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1315251288582698922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1315251288582698922'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/01/corregido-bug-utilidad-cpyjobspl.html' title='Corregido bug utilidad CPYJOBSPL'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SWsJRymkaaI/AAAAAAAAGJw/Z5K62nCTfjk/s72-c/engranaje2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8850337089111017446</id><published>2009-01-01T09:00:00.004+01:00</published><updated>2009-01-05T14:57:48.020+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Hitos históricos AS/400</title><content type='html'>&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 130px; height: 98px;" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SVDceF0YVCI/AAAAAAAAF_4/-N895LekKVg/s200/as400+matrix.jpg" alt="" id="BLOGGER_PHOTO_ID_5282964772421653538" border="0" /&gt;Hitos históricos del AS/400, iSeries, System i y Power Systems (extraído del boletín de &lt;a href="http://common.es/p/" target="_new"&gt;Common Europe España&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1988&lt;/span&gt;: Junio 21: IBM anuncia el AS/400, la abreviatura de Application Server/400, que junto con más de 1000 paquetes de software es el anuncio con más aplicaciones simultáneas de la historia de los ordenadores. (En el momento en que el primer AS/400 se envió, más de 2500 aplicaciones estaban disponibles)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1989&lt;/span&gt;: Se anuncia el B70, el nuevo modelo de la gama alta junto con impresoras matriciales de alta velocidad para ser usadas con la familia AS/400&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1990&lt;/span&gt;: La línea de AS/400 se amplía con 2 procesadores de bajo coste diseñados para pequeños negocios o departamentos para grandes empresas&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1991&lt;/span&gt;: Se anuncia un nuevo modelo de punto de entrada AS/400 junto con la V2R1 de OS/400 por 12.000 $&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1992&lt;/span&gt;: IBM envía su AS/400 número 200.000, un 9406 modelo E35 y se instala en una de las principales empresas de distribución de los Países Bajos: Heineken&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1993&lt;/span&gt;: Un nuevo modelo F que proporciona hasta un 60% de potencia y ofrece una mejora en precio/rendimiento de un 26%&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1994&lt;/span&gt;: IBM envía su AS/400 número 250.000 modelo F80 a la compañía Coca Cola Company en Bélgica&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1994&lt;/span&gt;: IBM presenta la nueva generación de AS/400 llamada AS/400 Advanced Series&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1995&lt;/span&gt;: Se anuncia el AS/400 Advanced Portable, una versión compacta y de bajo coste del AS/400&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1995&lt;/span&gt;: IBM convierte el procesador del AS/400 de CISC a RISC&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1996&lt;/span&gt;: La compañía lanza el AS/400 Advanced Entry system, el primero de ellos (y el número 400.000 de los AS/400 vendidos) es presentado en Rochester a Grez LeMond, el ganador por 3 veces del tour de Francia y además un pequeño empresario.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1996&lt;/span&gt;: El OS/400 (V3R2 y V3R7) se convierte en el primer sistema operativo que es certificado como Year 2000 ready por la ITAA (Information Technology Association of America)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1997&lt;/span&gt;: IBM anuncia la nueva familia de AS/400e servers para ayudar a las pequeñas empresas a aprovechar las ventajas de las oportunidades de negocio en Internet&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1998&lt;/span&gt;: Se introduce la tecnología SOI (Silicon-on-insulator), marcando un avance fundamental en la manera de construir los chips.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1998&lt;/span&gt;: IBM entrega un AS/400 a un cliente cada 12 minutos de cada día laborable durante el año 1998.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1999&lt;/span&gt;: El AS/400 es el ordenador de carácter comercial multi usuario más popular con más de 700.000 sistemas instalados en 150 países.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1999&lt;/span&gt;: Se anuncia la V4R4 de OS/400 con más de 3,2 millones de nuevas líneas de código escritas principalmente para e-business&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2000&lt;/span&gt;: El AS/400 cambia de nombre y se convierte en IBM eServer iSeries e IBM anuncia el primer servidor de aplicaciones Web en la familia eServer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2000&lt;/span&gt;: IBM comienza el lanzamiento de la nueva línea de AS/400e con la primera producción mundial de microchips hechos de transistores SOI y cableado de cobre.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2001&lt;/span&gt;: World Access, un proveedor de servicios de telecomunicaciones, compra el sistema eServer iSeries más grande (un i840) para procesar facturas para más de 100 millones de llamadas telefónicas al día.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2002&lt;/span&gt;: IBM anuncia el microprocesador POWER4. El sistema i890 de 32 vías ejecutándose en V5R2 dobla la capacidad de proceso de la anterior línea de producto iSeries.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2003&lt;/span&gt;:Como parte de una amplísima transformación de la familia iSeries en más de una década, IBM anuncia el 825 y el 870 junto al 890 en la gama alta. Usados por más de 200.000 clientes alrededor del mundo, el IBM eServer iSeries es uno de los servidores más populares de la industria.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2004&lt;/span&gt;: IBM anuncia el eServer i5, los primeros sistemas en ser gestionados por los microprocesadores POWER5. También cambia el nombre de OS/400 a i5/OS y libera la V5R3.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2005&lt;/span&gt;: IBM anuncia la estrategia OnDemand y comienza a lanzar al mercado las herramientas de virtualización e integración.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2006&lt;/span&gt;: En Enero, la compañía saca al mercado la línea IBM System i5 con procesadores POWER5+ y la V5R4 de i5/OS pero después elimina el 5 del i5 comenzando la era System i.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2007&lt;/span&gt;: IBM anuncia los microprocesadores POWER6 y ofrece unos nuevos modelos System i 515 y 525 Express con el precio basado en número de usuarios.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2008&lt;/span&gt;: i5/OS se convierte en un sistema operativo soportado por las soluciones IBM BladeCenter&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2008&lt;/span&gt;: El System i se unifica con el System p para convertirse en Power Systems. El nombre del sistema operativo cambia a IBM i&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8850337089111017446?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8850337089111017446/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8850337089111017446' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8850337089111017446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8850337089111017446'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2009/01/hitos-histricos-as400.html' title='Hitos históricos AS/400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/SVDceF0YVCI/AAAAAAAAF_4/-N895LekKVg/s72-c/as400+matrix.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7166940740089995356</id><published>2008-12-22T01:00:00.004+01:00</published><updated>2008-12-23T11:16:01.941+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Feliz Navidad i 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.drac.com/drac/postal" target="_new"&gt;&lt;img style="cursor: pointer; width: 393px; height: 233px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SUeWXiJG9EI/AAAAAAAAF9I/4gkmj06b-G4/s400/bonnadal.jpg" alt="" id="BLOGGER_PHOTO_ID_5280354419161363522" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7166940740089995356?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7166940740089995356/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7166940740089995356' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7166940740089995356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7166940740089995356'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/12/feliz-navidad-i-2009.html' title='Feliz Navidad i 2009'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SUeWXiJG9EI/AAAAAAAAF9I/4gkmj06b-G4/s72-c/bonnadal.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2889746868111166508</id><published>2008-12-16T20:15:00.008+01:00</published><updated>2008-12-16T20:15:00.800+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Memoria para trabajos batch</title><content type='html'>En el articulo anterior se explicaba como arrancar los subsistemas QBATCH y QINTER &lt;a href="http://as400howto.blogspot.com/2008/12/subsistema-de-control.html" target="_new"&gt;cambiando el subsistema de control a QCTL&lt;/a&gt;. Doy por supuesto que tenemos el ajuste de rendimiento del sistema activado.&lt;br /&gt;&lt;br /&gt;Por omisión el subsistema QBATCH corre en el pool de memoria *BASE, esta configuración mezcla trabajos de sistema con nuestros trabajos por lotes, que posiblemente tienen unas necesidades de ejecución muy diferentes.&lt;br /&gt;&lt;br /&gt;¿Como podemos asignar una memoria especial para nuestros trabajos por lotes en el subsistema QBATCH?, pues es sencillo:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Debemos asignar memoria a un pool de memoria compartido, habitualmente para los trabajos del QBATCH se utiliza el *SHRPOOL1, calcular un tamaño mínimo para el pool (400 p.e. después se ajustara) y un nivel de actividad (numero trabajos activos al mismo tiempo en el pool, 10 p.e.) y ejecutar:&lt;/li&gt;&lt;li&gt;CHGSHRPOOL POOL(*SHRPOOL1) SIZE(400) ACTLVL(10) PAGING(*CALC) TEXT('Batch jobs pool')&lt;/li&gt;&lt;li&gt;Después añadir, al subsistema QBATCH, como segundo pool de memoria el *SHRPOOL1:&lt;/li&gt;&lt;li&gt;CHGSBSD SBSD(QBATCH) POOLS((2 *SHRPOOL1))&lt;/li&gt;&lt;li&gt;Una vez hecho, debemos cambiar el direccionamiento para que los trabajos que se sometan en este subsistema utilicen el segundo pool de memoria:&lt;/li&gt;&lt;li&gt;CHGRTGE SBSD(QSYS/QBATCH) SEQNBR(9999) POOLID(2)&lt;/li&gt;&lt;li&gt;A partir de este instante los trabajos que se sometan en el subsistema QBATCH utilizaran el pool de memoria *SHRPOOL1.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;El ajuste automático de rendimiento cambiará el tamaño de ese pool y su nivel de actividad según las necesidades de los trabajos, de la disponibilidad de  recursos y de los parámetros que le indiquemos en la gestión de pools (WRKSHRPOOL).&lt;/li&gt;&lt;/ol&gt;Para más información podemos consultar los artículos:&lt;br /&gt;&lt;a href="http://as400howto.blogspot.com/2008/10/memoria-para-subsistema-dedicado.html"&gt;Memoria para subsistema&lt;/a&gt;&lt;br /&gt;&lt;a href="http://as400howto.blogspot.com/2008/11/asignar-prioridad-automticamente.html"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Asignar prioridad automáticamente&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2889746868111166508?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2889746868111166508/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2889746868111166508' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2889746868111166508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2889746868111166508'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/12/memoria-para-trabajos-batch.html' title='Memoria para trabajos batch'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7615167383955108601</id><published>2008-12-15T19:49:00.008+01:00</published><updated>2008-12-16T12:46:04.253+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Subsistema de Control</title><content type='html'>Nuestro sistema iSeries (AS400) viene con dos configuraciones estándar de subsistema de control para la gestión de trabajos.&lt;br /&gt;&lt;br /&gt;Esta configuración se controla con el valor de sistema &lt;span style="font-weight: bold;"&gt;QCTLSBSD&lt;/span&gt;, podemos visualizarlo con &lt;span style="font-family:courier new;"&gt;DSPSYSVAL SYSVAL(QCTLSBSD)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;En los nuevos sistemas viene por defecto como QBASE, en este caso solo arranca unos pocos subsistemas (QSYSWRK, QUSRWRK, QSERVER, QSPL) y la gestión de rendimiento es más difícil, ya que casi todos los trabajos corren en el mismo pool de memoria.&lt;br /&gt;&lt;br /&gt;La otra configuración estándar (que viene de los tiempos del S/38) es utilizar el subsistema QCTL, para activarlo solo hemos de cambiar el valor del sistema QCTLSBSD con:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CHGSYSVAL SYSVAL(QCTLSBSD) VALUE('QCTL      QSYS      '&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Para que el cambio se active &lt;span style="font-weight: bold;"&gt;deberemos realizar IPL del sistema, &lt;/span&gt;por lo tanto deberemos planificar este cambio para cuando sea posible hacerlo.&lt;br /&gt;&lt;br /&gt;Ahora cuando arranquemos el sistema tendremos el subsistema de control QCTL en lugar del QBASE. Ademas deberemos incluir en nuestro programa de inicio (valor de sistema QSTRUPGM)  el arranque de los subsistemas QBATCH (para trabajos por lotes) y QINTER (para trabajos interactivos) si es que lo hemos modificado.&lt;br /&gt;&lt;br /&gt;Ya de paso podemos activar el ajuste automático de rendimiento del sistema con:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CHGSYSVAL SYSVAL(QCTLSBSD) VALUE('2')&lt;/span&gt;&lt;br /&gt;Este cambio indica al sistema que haga el ajuste de rendimiento en IPL y dinámicamente y entra en vigor inmediatamente.&lt;br /&gt;&lt;br /&gt;Este ajuste incluye entre otros:&lt;br /&gt;- Tamaño memoria&lt;br /&gt;- Niveles de actividad&lt;br /&gt;- Paginación&lt;br /&gt;&lt;br /&gt;Para una información más detallada podemos consultar el documento &lt;a style="font-weight: bold;" href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/experience/adjuster.pdf" target=_new&gt;Experience Report&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7615167383955108601?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7615167383955108601/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7615167383955108601' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7615167383955108601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7615167383955108601'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/12/subsistema-de-control.html' title='Subsistema de Control'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2558740679610049579</id><published>2008-12-02T01:08:00.022+01:00</published><updated>2008-12-05T19:56:34.625+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Cambiar inicio de sesión</title><content type='html'>&lt;div style="text-align: justify;"&gt;Como cambiar la pantalla de inicio de sesión del AS400.&lt;br /&gt;&lt;br /&gt;Primero hemos de tener en cuenta que:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;El inicio de sesión se asocia a un subsistema, por tanto podemos tener, para algunos subsistemas, diferentes pantallas de inicio de sesión.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;No es buena idea cambiar la pantalla del subsistema QCTL.&lt;/li&gt;&lt;li&gt;También deberíamos crear la nueva pantalla en una biblioteca del sistema, como la QGPL, para evitar problemas en caso de restaurar el sistema.&lt;/li&gt;&lt;/ul&gt;Una vez tengamos claro los puntos anteriores, podemos continuar con el procedimiento:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Crearemos la nueva pantalla tomando como base la del fuente ubicado en QGPL/QDDSSRC.QDSIGNON, la podemos copiar como MYSIGNON.&lt;/li&gt;&lt;li style="font-family: lucida grande;"&gt;CPYSRCF FROMFILE(QGPL/QDDSSRC) TOFILE(QGPL/QDDSSRC) FROMMBR(QDSIGNON) TOMBR(MYSIGNON)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Editar el nuevo archivo de pantalla (tipo DSPF) con el PDM, o el SDA.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Si lo que queremos es añadir un texto tipo &lt;a href="http://en.wikipedia.org/wiki/ASCII_art" target="_new"&gt;ASCII Art&lt;/a&gt;, puede que nos sea más fácil añadirla con el SDA.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Hemos de respetar todos los campos, si no queremos mostrarlos, los podemos configurar como ocultos, con la columna Use = H o con las palabras clave DSPATR(PR) y DSPATR(ND).&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Lo más habitual es solo dejar los campos de entrada Usuario (USERID) y Contraseña (PASSWRD) y de salida con el nombre del Sistema, Subsistema y dispositivo (SYSNAME, SBSNAME, DEVNAME).&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Una vez creada la nueva pantalla de inicio de sesión, podemos probarla creando un subsistema especial, ¿como hacerlo? ver la entrada publicada "&lt;a href="http://as400howto.blogspot.com/2008/11/asignar-prioridad-automticamente.html" target=_new&gt;&lt;span style="font-weight: bold;"&gt;Asignar prioridad automáticamente&lt;/span&gt;&lt;/a&gt;" para crear un subsistema SPECIAL.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;CHGSBSD SBSD(QGPL/SPECIAL) SGNDSPF(QGPL/MYSIGNON)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Una vez comprobado el nuevo inicio de sesión funciona correctamente, ya podemos cambiar la configuración del subsistema QINTER:&lt;/li&gt;&lt;li style="text-align: justify;"&gt;CHGSBSD SBSD(QINTER) SGNDSPF(QGPL/MYSIGNON)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Una vez hecho esto debemos reiniciar el subsistema QINTER, si tenemos usuarios conectados deberemos buscar el momento adecuado para hacerlo.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Esto deberíamos hacerlo desde la consola  del sistema:&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;ENDSBS SBS(QINTER) OPTION(*IMMED)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;y a continuación:&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;STRSBS SBSD(QINTER)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Y ya tenemos nuestra nueva pantalla de signon.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SQc_lKyIv_I/AAAAAAAAEm8/Mijth9NGNrw/s1600-h/AS400_newsignon.gif" target="_new"&gt;&lt;img style="cursor: pointer; width: 400px; height: 240px;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SQc_lKyIv_I/AAAAAAAAEm8/Mijth9NGNrw/s400/AS400_newsignon.gif" alt="" id="BLOGGER_PHOTO_ID_5262244597388066802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2558740679610049579?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2558740679610049579/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2558740679610049579' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2558740679610049579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2558740679610049579'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/12/cambiar-inicio-de-sesin.html' title='Cambiar inicio de sesión'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SQc_lKyIv_I/AAAAAAAAEm8/Mijth9NGNrw/s72-c/AS400_newsignon.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8619057097675502914</id><published>2008-11-28T17:33:00.006+01:00</published><updated>2008-11-28T17:33:00.789+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Obtener listas objetos en  IFS</title><content type='html'>Como obtener listas de objetos en el &lt;span style="font-weight: bold;"&gt;I&lt;/span&gt;ntegrated &lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;ile &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;ystem del AS400.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Habitualmente sabemos navegar desde la pantalla verde con el mandato&lt;br /&gt;WRKLNK OBJ('/') DETAIL(*EXTENDED) DSPOPT(*ALL) pero si desde un programa queremos obtener una lista de archivos del directorio '/home/temp' (por ejemplo) no tenemos un mandato para hacerlo directamente y hemos de volcarlo a spool y leer ese spool o utilizar  una API del sistema.&lt;br /&gt;&lt;br /&gt;Una solución sencilla, si esta instalado el entorno QSHELL (opción 30 del 5722SS1) , es  ejecutar  mandatos tipo UNIX, pongo algunos ejemplos de los que se puede conseguir:&lt;br /&gt;&lt;br /&gt;Obtener contenido del directorio /home/temp (en el archivo MYLIB/LISTDIR):&lt;/div&gt;&lt;ul&gt;&lt;li&gt;QSH        CMD('&lt;span style="font-weight: bold;"&gt;ls&lt;/span&gt; /home/temp/* &gt;/qsys.lib/mylib.lib/listdir.file/listdir.mbr')&lt;/li&gt;&lt;/ul&gt;Obtener lista de directorios del sistema (&lt;span style="font-weight: bold;"&gt;atención&lt;/span&gt; puede tardar horas):&lt;ul&gt;&lt;li&gt;QSH        CMD('&lt;span style="font-weight: bold;"&gt;find&lt;/span&gt; / -type d |grep -v "QSYS.LIB" |grep -v "QNTC"&gt;/qsys.lib/mylib.lib/listdir.file/listdir.mbr')&lt;/li&gt;&lt;/ul&gt;      o también:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;QSH         CMD('&lt;span style="font-weight: bold;"&gt;ls&lt;/span&gt; -alR / |grep "/" |grep -v "l" |grep -v "QSYS.LIB"&gt;/qsys.lib/mylib.lib/listdir.file/listdir.mbr')&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8619057097675502914?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8619057097675502914/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8619057097675502914' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8619057097675502914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8619057097675502914'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/11/obtener-listas-objetos-en-ifs.html' title='Obtener listas objetos en  IFS'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5125053537215779768</id><published>2008-11-18T11:00:00.004+01:00</published><updated>2008-11-19T18:35:22.967+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Prompt selectivo de mandato</title><content type='html'>La función del prompt selectivo en los mandatos es útil en un programa CL interactivo. Con esta función podemos ahorrarnos algún paso de parámetro en el programa.&lt;br /&gt;&lt;br /&gt;El prompt selectivo se utiliza insertando caracteres especiales delante de los parámetros de los mandatos, los valores permitidos son:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;??&lt;/span&gt;  Muestra el prompt del parámetro y permite cambiarlo.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;?*&lt;/span&gt;  Muestra el prompt del parámetro pero no permite cambiarlo&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;?-&lt;/span&gt;  Oculta el parámetro.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;?&lt;&lt;/span&gt;  Muestra el prompt del parámetro y permite cambiarlo, pero el valor por omisión es el que le enviamos desde el programa. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;?&amp;amp;&lt;/span&gt;  Solo se muestra el prompt del parámetro si se pulsa F10 y permite cambiarlo. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;?%&lt;/span&gt;  Solo se muestra el prompt del parámetro si se pulsa F10, pero no permite cambiarlo.  &lt;/li&gt;&lt;/ul&gt;Ademas si colocamos un ? delante del mandato nos modifica el comportamiento de los prompt selectivos:&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;blanco&lt;/span&gt; Muestra solo los parámetros con prompt selectivo, no permite F9. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;?&lt;/span&gt; Muestra prompt del mandato y permite cambiar parámetros y pulsar F9.  &lt;/li&gt;&lt;/ul&gt;Un ejemplo para ilustrar esta función, queremos crear un programa que restaure objetos desde un *SAVF, pero queremos dejar al usuario la elección de ciertos parámetros, de otros informarle de su valor y ocultar el resto aunque estén definidos, para ello usaremos el código siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   RSTOBJ ??OBJ(*ALL) SAVLIB(LIBSAV) ?-DEV(*SAVF) OBJTYPE(*ALL) ?*SAVF(LIBSAVF/SAVF) ??RSTLIB(LIBSAV2)  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Al ejecutar el programa obtendremos la siguiente pantalla:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPoIIuYZGnI/AAAAAAAAEk0/aOPseDXlNvU/s1600-h/prompt1.gif" target="_new"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPoIIuYZGnI/AAAAAAAAEk0/aOPseDXlNvU/s200/prompt1.gif" alt="" id="BLOGGER_PHOTO_ID_5258524460890790514" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;De esta forma dejamos al usuario cambiar que objetos quiere restaurar y en que biblioteca, aunque le mostramos una por omisión y si la deja en blanco el prompt vuelve a mostrar el valor que le hemos pasado desde programa; también puede ver que archivo de salvar se utilizará, pero no el resto de parámetros, ni aun pulsando &lt;span style="font-weight: bold;"&gt;F10&lt;/span&gt;&lt;span&gt; o F9&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Veamos que ocurre si añadimos el carácter ? delante del mandato RSTOBJ, también añadimos ?- en el parámetro DEV :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;? RSTOBJ ??OBJ(*ALL) SAVLIB(LIBSAV) ?-DEV(*SAVF) OBJTYPE(*ALL)           ?*SAVF(LIBSAVF/SAVF) ??RSTLIB(LIBSAV2)  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPoPmuDpcJI/AAAAAAAAEk8/WBWABI6gzWc/s1600-h/prompt2.gif" target="_new"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPoPmuDpcJI/AAAAAAAAEk8/WBWABI6gzWc/s200/prompt2.gif" alt="" id="BLOGGER_PHOTO_ID_5258532672781250706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Ahora vemos el resto de parámetros obligatorios que no se mostraban antes, excepto DEV que tiene la opción de prompt ?-, y además podemos pulsar &lt;span style="font-weight: bold;"&gt;F10&lt;/span&gt; para ver el resto de parámetros.&lt;br /&gt;&lt;br /&gt;Para controlar el prompt de los parámetros opcionales se utiliza &lt;span style="font-weight: bold;"&gt;?%&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;?&amp;amp;&lt;/span&gt;, aunque puede complicarnos el programa ya que hay parámetros que pueden depender de si usamos otros.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota: &lt;/span&gt;Si usamos el prompt selectivo también debemos de incluir la siguiente instrucción por si nos pulsan &lt;span style="font-weight: bold;"&gt;F3&lt;/span&gt;=Salir o &lt;span style="font-weight: bold;"&gt;F12&lt;/span&gt;=Cancelar:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MONMSG  MSGID(CPF6801) /* F3 o F12 */&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Más información en &lt;a href="http://publib.boulder.ibm.com/iseries/"&gt;iSeries Information Center&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5125053537215779768?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5125053537215779768/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5125053537215779768' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5125053537215779768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5125053537215779768'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/11/prompt-selectivo-de-mandato.html' title='Prompt selectivo de mandato'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SPoIIuYZGnI/AAAAAAAAEk0/aOPseDXlNvU/s72-c/prompt1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1124492458857101178</id><published>2008-11-02T22:00:00.003+01:00</published><updated>2008-11-02T22:34:35.893+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Asignar prioridad automáticamente</title><content type='html'>Como asignar una prioridad automáticamente para ciertos trabajos, o aplicaciones.&lt;br /&gt;&lt;br /&gt;Supongamos que tenemos unos trabajos que queremos que tengan cierto tipo de prioridad (alta o baja) en la ejecución, habitualmente se utilizan los parámetros RUNPTY y TIMESLICE, para ello habremos de crear una clase especial para nuestros trabajos y es recomendable también crear un subsistema especial para dichos trabajos.&lt;br /&gt;&lt;br /&gt;El procedimiento a seguir para crear este entorno especial:&lt;ol&gt;&lt;li&gt;Crear la cola de trabajos asociada al subsistema:&lt;/li&gt;&lt;li&gt;CRTJOBQ  JOBQ(QGPL/SPECIAL) TEXT('Job queue for specials jobs Subsystem')&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Crear el subsistema:&lt;/li&gt;&lt;li&gt;CRTSBSD  SBSD(QGPL/SPECIAL) POOLS((1 *BASE) (2 *SHRPOOL1))  MAXJOBS(*NOMAX) TEXT('Subsystem for specials jobs')&lt;/li&gt;&lt;li&gt;Con esto conseguimos que el trabajo, de tipo subsistema, se ejecute en el pool de memoria base y el resto de trabajos del subsistema se ejecutaran en el pool de memoria *SHRPOOL1.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Añadir la cola de trabajos al subsistema:&lt;/li&gt;&lt;li&gt;ADDJOBQE  SBSD(QGPL/SPECIAL) JOBQ(QGPL/SPECIAL) MAXACT(*NOMAX) SEQNBR(10)&lt;/li&gt;&lt;li&gt;Poner *NOMAX, o el numero máximo de trabajos, que queremos que se ejecuten por esa cola, el numero de secuencia es importante por si tenemos más de una cola de trabajos.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Crear la nueva clase:&lt;/li&gt;&lt;li&gt;CRTCLS  CLS(QGPL/SPECIAL) RUNPTY(25) TIMESLICE(10000)  PURGE(*NO)  TEXT('Class for subsystem of special jobs')&lt;/li&gt;&lt;li&gt;Asignar las entradas de direccionamiento para &lt;span&gt;solo los trabajos batch que queramos&lt;/span&gt; usen la nueva clase:&lt;/li&gt;&lt;li&gt;ADDRTGE  SBSD(QGPL/SPECIAL) SEQNBR(10)  CMPVAL('SPECIAL') PGM(QCMD)  CLS(QGPL/SPECIAL) POOLID(2)&lt;/li&gt;&lt;li&gt;Añadir entradas de direccionamiento para el resto de trabajos:&lt;/li&gt;&lt;li&gt;ADDRTGE SBSD(QGPL/SPECIAL) SEQNBR(9999) CMPVAL(*ANY) PGM(QCMD) CLS(*LIBL/QBATCH) POOLID(2)&lt;/li&gt;&lt;li&gt;Con estas dos entradas de direccionamiento conseguimos que:&lt;/li&gt;&lt;li&gt;Los trabajos que, en la descripción de trabajo, envían como direccionamiento el valor RTGDTA('SPECIAL') usaran la clase QGPL/SPECIAL que les asignará un RUNPTY de 25 y un TIMESLICE de 10.000.&lt;/li&gt;&lt;li&gt;El resto de trabajos usará la clase QGPL/QBATCH, que les asigna un RUNPTY de 50 y un TIMESLICE de 5.000.&lt;/li&gt;&lt;li&gt;En ambos casos los trabajos se ejecutaran por el POOLID 2, o sea en este caso en el *SHRPOOL1 (ver paso 5).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A continuación creamos una nueva descripción de trabajo, o modificar la que queramos usar, para que los trabajos se sometan por el nuevo subsistema:&lt;/li&gt;&lt;li&gt; CRTJOBD JOBD(QGPL/SPECIAL) JOBQ(QGPL/SPECIAL) TEXT('Job description for special jobs') RTGDTA('SPECIAL')&lt;br /&gt;&lt;/li&gt;&lt;li&gt;También podemos someterlos con SBMJOB, pero entonces habrá que acordarse de comprobar y modificar manualmente el parámetro RTGDTA en el mandato SBMJOB, en caso contrario usaran la clase por omisión asignada a *ANY.&lt;/li&gt;&lt;li&gt;Si además queremos usar el mismo subsistema para que se conecte alguna pantalla tendremos de:&lt;/li&gt;&lt;li&gt;Añadir el pool de memoria interactivo al subsistema:&lt;/li&gt;&lt;li&gt;CHGSBSD SBSD(QGPL/SPECIAL) POOLS((1 *BASE) (2 *SHRPOOL1) (3 *INTERACT))&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Añadir una entrada de direccionamiento para los trabajos interactivos:&lt;/li&gt;&lt;li&gt;ADDRTGE  SBSD(QGPL/SPECIAL) SEQNBR(20)  CMPVAL('QCMDI') PGM(QCMD)  CLS(*LIBL/QINTER) POOLID(3) &lt;/li&gt;&lt;li&gt;Añadir el nombre de dispositivo de pantalla que tendrá acceso al subsistema:&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ADDWSE  SBSD(QGPL/SPECIAL) WRKSTN(Device_name)&lt;/li&gt;&lt;li&gt;Con esto conseguimos que los trabajos interactivos se les asigne los valores de la clase QINTER y que son de RUNPTY 20 y un TIMESLICE de 2.000.&lt;/li&gt;&lt;li&gt;Además se ejecutaran en el pool de memoria para trabajos interactivos (*INTERACT), optimizando de esta forma el funcionamiento del ajuste automático de rendimiento del sistema:&lt;/li&gt;&lt;li&gt;Ahora solo nos queda:&lt;/li&gt;&lt;li&gt;Asignar memoria al pool compartido *SHRPOOL1, si no lo estamos usando (podemos comprobarlo con WRKSHRPOOL):&lt;br /&gt;&lt;/li&gt;&lt;li&gt;CHGSHRPOOL POOL(*SHRPOOL1) SIZE(256) ACTLVL(1)&lt;/li&gt;&lt;li&gt;Finalmente arrancar el nuevo subsistema:&lt;/li&gt;&lt;li&gt;STRSBS SBSD(QGPL/SPECIAL)&lt;/li&gt;&lt;li&gt;El tamaño del pool y el nivel de actividad se irán ajustando automáticamente si tenemos el ajuste de rendimiento del sistema activado:&lt;/li&gt;&lt;li&gt;DSPSYSVAL SYSVAL(QPFRADJ)&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SQcCDFNed4I/AAAAAAAAEm0/56M4NahZqho/s1600-h/SPECIAL_Subsystem.gif"&gt;&lt;img style="cursor: pointer; width: 400px; height: 108px;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SQcCDFNed4I/AAAAAAAAEm0/56M4NahZqho/s400/SPECIAL_Subsystem.gif" alt="" id="BLOGGER_PHOTO_ID_5262176941567276930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Nota: &lt;/span&gt;Si queremos deshacer la asignación de memoria en *SHRPOOL1 ejecutar el mandato CHGSHRPOOL POOL(*SHRPOOL1) SIZE(*NOSTG)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;¿Como podemos controlar la memoria asignada a estos trabajos y de esta forma controlar el ajuste automático del sistema?, entonces habéis de leer la entrada &lt;a href="http://as400howto.blogspot.com/2008/10/memoria-para-subsistema-dedicado.html"&gt;Memoria para subsistema&lt;/a&gt; publicada anteriormente.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1124492458857101178?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1124492458857101178/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1124492458857101178' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1124492458857101178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1124492458857101178'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/11/asignar-prioridad-automticamente.html' title='Asignar prioridad automáticamente'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SQcCDFNed4I/AAAAAAAAEm0/56M4NahZqho/s72-c/SPECIAL_Subsystem.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5701107783523885752</id><published>2008-10-10T12:03:00.019+02:00</published><updated>2009-10-20T00:19:53.993+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Sincronizar la hora del AS400</title><content type='html'>&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 70px; height: 78px;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SO9VFiIsvdI/AAAAAAAAEjA/8SC2HxQ1RSM/s200/reloj_de_arena.jpg" alt="" id="BLOGGER_PHOTO_ID_5255512843715657170" border="0" /&gt;Para ello utilizaremos el servicio SNTP (Simple Network Time Protocol),  este servicio nos sincroniza la hora del equipo con la de un servidor de hora, que puede estar en nuestra red o en Internet.&lt;br /&gt;&lt;br /&gt;En nuestro AS400 tenemos disponible este servicio desde la V5R2, y es funcional (o sea que cambia la hora del reloj automáticamente) a partir de la V5R4. Para configurar el servicio SNTP  en el AS400 ejecutar el mandato CHGNTPA con los parámetros:&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;CHGNTPA RMTSYS('&lt;a href="http://www.pool.ntp.org/zone/europe" target=_new&gt;direccion_servidor_hora&lt;/a&gt;') AUTOSTART(*YES) POLLITV(60) MINADJ(100) MAXADJ(20) ACTLOG(*CHANGE)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Además debemos activar la opción de ajuste automático de la hora:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;CHGSYSVAL SYSVAL(QTIMADJ) VALUE(QIBM_OS400_SNTP)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;También debemos configurar nuestra zona horaria para ello ejecutar:&lt;br /&gt;WRKSYSVAL SYSVAL(QTIMZON),   el valor para Europa es &lt;span style="font-weight: bold;"&gt;QP0100CET4&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Offset . . . . . :   +02:00                  &lt;br /&gt;Full name  . . . :   Central European Daylight Saving Time&lt;br /&gt;Abbreviated name :   CEST    &lt;/span&gt;                &lt;br /&gt;Podemos pulsar &lt;span style="font-weight: bold;"&gt;F4 &lt;/span&gt;para vez las zonas disponibles.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Atención&lt;/span&gt;: Cuando realicemos este cambio, inmediatamente después comprobar la hora del sistema, no sea que se le ocurra ajustarse en ese momento al horario de verano/invierno.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Para arrancar el servicio de sincronización de hora la primera vez, después debería ser automático ya que en la configuración del servicio hemos indicado &lt;span style="font-size:85%;"&gt;AUTOSTART(*YES)&lt;/span&gt; o sea que se arrancara con el sistema :&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;STRTCPSVR SERVER(*NTP)  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para detener el servicio ejecutar: &lt;span style="font-size:85%;"&gt;ENDTCPSVR SERVER(*NTP)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Podemos consultar la actividad de este servicio buscando el mensaje &lt;span style="font-weight: bold;font-size:85%;" &gt;TCP9105&lt;/span&gt;  en el log del sistema (&lt;span style=";font-family:courier new;font-size:85%;"  &gt;DSPLOG MSGID(TCP9105)&lt;/span&gt;), el mensaje nos indica donde esta el log del servicio (uno por día), normalmente ubicado en el directorio &lt;span style="font-size:85%;"&gt;/QIBM/USERDATA/OS400/TCPIP/NTP/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; Revisar esta carpeta periódicamente, ya que se van acumulando los logs y no se vacían automáticamente.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5701107783523885752?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5701107783523885752/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5701107783523885752' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5701107783523885752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5701107783523885752'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/10/sincronizar-la-hora-del-as400.html' title='Sincronizar la hora del AS400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SO9VFiIsvdI/AAAAAAAAEjA/8SC2HxQ1RSM/s72-c/reloj_de_arena.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4753055449151872266</id><published>2008-10-07T22:45:00.015+02:00</published><updated>2010-09-02T09:21:12.771+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Modificar menu PetSis</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para modificar el menú de Petición de Sistema (tecla PetSis) hemos de cambiar el mensaje CPX2313 para modificar los mandatos que llama el sistema cuando se pulsa esta tecla.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;La opción "&lt;span style="font-weight: bold;"&gt;1. Visualizar inicio de sesión para trabajo alternativo&lt;/span&gt;" no se puede modificar, o sea que la primera opción que se puede modificar es "&lt;span style="font-weight: bold;"&gt;2. Finalizar petición anterior&lt;/span&gt; " que corresponde al mandato ENDQRS del texto del mensaje.&lt;br /&gt;El valor por omisión del mensaje se puede ver con el mandato:&lt;/div&gt;&lt;span style="font-family: courier new;"&gt;DSPMSGD RANGE(CPX2313) MSGF(QSYS/QCPFMSG)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SOvYc8iTaoI/AAAAAAAAEhQ/i0jZ3Yn7yak/s1600-h/CPX2313.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" target="_new"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5254531382055758466" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SOvYc8iTaoI/AAAAAAAAEhQ/i0jZ3Yn7yak/s400/CPX2313.gif" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Por ejemplo&lt;/span&gt;, Como modificar la opción "&lt;span style="font-weight: bold;"&gt;3.Visualizar trabajo actual&lt;/span&gt;" para utilizar el comando WRKJOB, en lugar del DSPJOB,  y de paso disponer de una línea de mandatos, pero solo según el tipo de usuario, ya que no queremos que ningún usuario normal tenga acceso a la línea de mandatos en mitad de una aplicación.&lt;/div&gt;&lt;br /&gt;Para ello seguiremos el siguiente procedimiento:&lt;br /&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;Crearemos el programa CL DSPJOB2CL&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Crearemos el mandato DSPJOB2 que llama al programa DSPJOB2CL&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Este programa comprueba el tipo de usuario, si es *SECOFR o *PGMR o *SYSOPR ejecuta el mandato WRKJOB, en caso contrario ejecuta el mandato DSPJOB (como hasta ahora).&lt;/li&gt;&lt;li&gt;Finalmente cambiamos el texto de mensaje CPX2313 para que ejecute DSPJOB2 en lugar de DSPJOB: &lt;span style="font-family: courier new; font-size: 85%;"&gt;CHGMSGD    MSGID(CPX2313) MSGF(QSYS/QCPFMSG) MSG('ENDRQS         DSPJOB2  DSPMSG    SNDMSG    SIGNOFF   DSPMSG    DSCJOB       DSPWSUSR    ENDRDBRQS  ')&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;¡¡ Respetar espacios en blanco en el cuerpo del mensaje!!&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SPhvx96hSdI/AAAAAAAAEks/dPnh4VdbgQU/s1600-h/cpx2313.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" target="_new"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5258075469179341266" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SPhvx96hSdI/AAAAAAAAEks/dPnh4VdbgQU/s200/cpx2313.gif" style="cursor: pointer; height: 26px; width: 217px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notas:&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/a8cc1d5d-33a4-4c98-95b6-5c4803d3e116/media/DSPJOB2_Peticion%20de%20sistema.rar"&gt;El código de DSPJOB2 lo podemos bajar de aquí.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Si tenemos lenguajes secundarios instalados, deberemos realizar el mismo cambio para todas las bibliotecas QSYSnnnn.&lt;/li&gt;&lt;li&gt;Deberemos revisar este mensaje cada vez que actualicemos el sistema operativo, o que alguna ptf modifique el archivo de mensajes QCPFMSG.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4753055449151872266?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4753055449151872266/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4753055449151872266' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4753055449151872266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4753055449151872266'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/como-modificar-el-menu-peticion-de.html' title='Modificar menu PetSis'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SOvYc8iTaoI/AAAAAAAAEhQ/i0jZ3Yn7yak/s72-c/CPX2313.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8480737331918408785</id><published>2008-10-07T20:24:00.017+02:00</published><updated>2011-02-12T15:12:44.390+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Calculadora en ventana</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Puesta al día de la utilidad &lt;/span&gt;&lt;a href="http://www.telefonica.net/web2/motxilla/AS400/AS400.htm" target="_new"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;CALCUL&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; que nos muestra, en una ventana en modo texto, una calculadora. La podemos incluir en nuestras aplicaciones de pantalla verde, cuando tenga sentido que la puedan utilizar, o desde la línea de mandatos.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SOy8a2rhNhI/AAAAAAAAEiw/qMLwyek6oFQ/s1600-h/CALCUL_help.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" target="_new"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5254779774149426370" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SOy6XRMVfMI/AAAAAAAAEio/fvlujWmpdDY/s400/CALCUL.gif" style="cursor: pointer;" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;La ayuda la tenemos pulsando la tecla &lt;span style="font-weight: bold;"&gt;F1&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/11874e4d-b6f7-458d-843c-9b893bdf2ff0/media/CALCUL_Calculator.rar"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;El código de esta utilidad lo podemos bajar de aquí.&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8480737331918408785?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8480737331918408785/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8480737331918408785' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8480737331918408785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8480737331918408785'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/10/calculadora-en-ventana.html' title='Calculadora en ventana'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SOy6XRMVfMI/AAAAAAAAEio/fvlujWmpdDY/s72-c/CALCUL.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4382319322838984278</id><published>2008-10-02T23:15:00.006+02:00</published><updated>2009-04-29T07:17:53.685+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Memoria para subsistema</title><content type='html'>&lt;p style="text-align: justify;"&gt;Como reservar memoria y asignar una prioridad automáticamente para ciertos trabajos o aplicaciones en uno o más  subsistemas utilizando la memoria compartida.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Supongamos que tenemos unos trabajos que queremos que tengan reservada cierta cantidad de memoria solo para ellos y cierto tipo de prioridad (alta o baja) en la ejecución (habitualmente los parámetros RUNPTY y TIMESLICE).&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;En esta entrada explicare como reservar cierta cantidad de memoria para un subsistema.&lt;br /&gt;&lt;/p&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Crear un subsistema para ese tipo de trabajo es buena idea, así separamos el consumo de memoria y el ajuste automático del sistema trabaja mejor (QPFRADJ).&lt;/li&gt;&lt;li&gt;Doy  por supuesto que tienes el ajuste automático del sistema activado (QPFRADJ 2 o 3)&lt;/li&gt;&lt;li&gt;Puedes asignarle a ese pool una cantidad de memoria, que puede ser variable o fija. Si la quieres siempre fija lo indicaras cuando creas el subsistema (CRTSBSD)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Para crear un pool de memoria haz WRKSHRPOOL y asigna memoria, por ejemplo, al *SHRPOOL2, habitualmente el *SHRPOOL1 se utiliza para trabajos en el subsistema QBATCH, aunque no viene definido por omisión en el sistema.&lt;/li&gt;&lt;li&gt;Después debes cambiar la descripción del nuevo subsistema para que utilice ese nuevo pool de memoria, normalmente yo recomiendo poner 2 pools el *BASE en primer lugar y *SHRPOOL2 en segundo lugar.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Después deberás crear nuevas clases (CRTCLS) para el nuevo subsistema, que utilicen el segundo pool de memoria del subsistema y asignarlas a las entradas de direccionamiento del mismo (CHGRGTE), esto lo explicare en otro howto.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Con esto conseguimos que el trabajo &lt;span style="font-weight: bold;"&gt;subsistema,&lt;/span&gt; corra en el pool *BASE y el resto de trabajos, dentro del subsistema, en el *SHRPOOL2.&lt;/li&gt;&lt;li&gt;Para el ajuste de memoria del *SHRPOOL2, haz WRKSHRPOOL y pulsa F11 (otra vista),  en las columnas que ves, puedes definir que porcentaje de memoria mínimo y máximo quieres que se lleven los trabajos de ese pool, si ponemos el mismo porcentaje en min y max lo que conseguimos es dejar fijo el tamaño de la memoria utilizada por ese pool.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Esto creo que es mejor que asignar memoria fija al subsistema (paso 3) ya que en caso de equivocarnos solo hemos de cambiar el porcentaje y el ajuste auto del sistema hará el resto. De la otra forma hay que parar el subsistema.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;¿Como calcular el tamaño de memoria que vas a necesitar?, pues es difícil, seguramente los trabajos están más tiempo esperando o leyendo disco, que utilizando memoria y CPU, pero si tiene que ver con la cantidad de trabajos que tenemos activos y en RUN en el subsistema. Mi recomendación es partir de un valor de tamaño de pool conocido, tirando a alto, y observar la paginación de ese pool de memoria (DSPSYSSTS) , si aparecen trabajos en estado &lt;span style="font-weight: bold;"&gt;INEL&lt;/span&gt;, indica que falta memoria en ese pool, ir añadiendo memoria al pool hasta que veamos que ya no aparecen trabajos en INEL u estado intermedios.&lt;/li&gt;&lt;li&gt;Una recomendacion, para hacer estos ajustes, es mejor que no lo hagas en tu hora punta (mas que nada para que no te lleguen llamadas de usuarios) y tambien es mejor desactivar, mientras haces la prueba, el ajuste automático del sistema (QPFRADJ = 0) ya que en caso contrario te puede distorsionar el resultado.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;También debes saber que si tu proceso utiliza SQL el optimizador de SQL puede que decida crear un nuevo plan de acceso si ve que ha cambiado el tamaño del pool, eso no debería suponer un problema, pero en algunas instalaciones se traduce en un peor tiempo de respuesta de la aplicación, ya que reconstruye el plan de acceso demasiado a menudo.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4382319322838984278?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4382319322838984278/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4382319322838984278' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4382319322838984278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4382319322838984278'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/10/memoria-para-subsistema-dedicado.html' title='Memoria para subsistema'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1828084862482964320</id><published>2008-09-25T11:00:00.034+02:00</published><updated>2008-10-10T15:41:44.079+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Duración de un RCLSTG</title><content type='html'>Como averiguar la duración del ultimo proceso de Reclaim Storage (RCLSTG) realizado en el sistema, para ello ejecutar el mandato:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DSPDTAARA DTAARA(QUSRSYS/QRCLSTG)&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SOvaIT2NZ0I/AAAAAAAAEhY/bBK0XV32J_0/s1600-h/Reclaim_Storage.gif"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SOvaIT2NZ0I/AAAAAAAAEhY/bBK0XV32J_0/s400/Reclaim_Storage.gif" alt="" id="BLOGGER_PHOTO_ID_5254533226559268674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tal como se ve en la imagen el ultimo RCLSTG se ejecuto desde las 05:45:15h hasta las 09:51:46 del 01/06/2008, por tanto el proceso duro 4h 6min. 31seg.&lt;br /&gt;&lt;p&gt;En el histórico del sistema se graba el mensaje CPC8208 "Proceso de RCLSTG terminado" que nos informa de la cantidad de objetos procesados y suprimidos.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Para imprimir el histórico del sistema con los mensajes de como ha ido:&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;DSPLOG PERIOD((hora_inicio fecha_inicio) (hora_fin fecha_fin)) OUTPUT(*PRTSECLVL) MSGID(CPC8208 CPF3120 CPC3308 CPF8240 CPF8262 CPF8260 CPFA914 CPI8202 CPI8A10 CPC8A21 CPC8A22)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Para ver el contenido de la biblioteca QRCL , donde van a parar los objetos recuperados por el RCLSTG, ejecuta el mandato:&lt;/p&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;DSPLIB LIB(QRCL)&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Esto es conveniente porque se puede haber recuperado algún objeto de tamaño considerable y que seguramente se debería eliminar.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;De paso recordar que se debería pasar un RCLSTG periódicamente o, cuando ha habido una caída del sistema, y es casi obligatorio pasarlo antes de la instalación de una nueva release del sistema operativo.&lt;/p&gt;&lt;p&gt;También tener en cuenta que a partir de la V5R4 (algunos antes) tenemos algunos mandatos para reclamar cosas sin tener el sistema restringido:&lt;br /&gt;&lt;/p&gt;&lt;ul style="font-family: courier new;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RCLDBXREF   Reclaim DB Cross-Reference&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RCLDLO      Reclaim Document Lib Object&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RCLLIB      Reclaim Library&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RCLLNK      Reclaim Object Links&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RCLOBJOWN   Reclaim Objects by Owner&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RCLSPLSTG   Reclaim Spool Storage&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;RCLSTG      Reclaim Storage    &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1828084862482964320?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1828084862482964320/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1828084862482964320' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1828084862482964320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1828084862482964320'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/averiguar-duracion-de-un-rclstg.html' title='Duración de un RCLSTG'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SOvaIT2NZ0I/AAAAAAAAEhY/bBK0XV32J_0/s72-c/Reclaim_Storage.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-9116500666814716372</id><published>2008-09-10T16:01:00.004+02:00</published><updated>2008-10-17T14:17:26.759+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><title type='text'>Cuenta iSeries gratuita</title><content type='html'>Como no siempre disponemos de un sistema AS400, cuantas veces nos hemos quedado con las ganas de probar algo en un sistema que no fuera el nuestro, o cuando no estamos en nuestro trabajo, o simplemente por aprender cosas nuevas.&lt;br /&gt;&lt;br /&gt;Pues bien existe la web de &lt;a href="http://www.innovativesys.net/?page_id=19#cforms_q6" target=_new&gt;Innovative Systems&lt;/a&gt; que nos da esa posibilidad&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPPzDY195aI/AAAAAAAAEjs/fvfRvsMfM-8/s1600-h/AS400_login_free.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPPzDY195aI/AAAAAAAAEjs/fvfRvsMfM-8/s200/AS400_login_free.gif" alt="" id="BLOGGER_PHOTO_ID_5256812429605463458" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Solo hemos de registrarnos y esperar que nos envíen el usuario y la contraseña para acceder a un sistema AS400 remoto a través de Internet.&lt;br /&gt;&lt;br /&gt;Espero que os sirva de ayuda :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-9116500666814716372?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/9116500666814716372/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=9116500666814716372' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/9116500666814716372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/9116500666814716372'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/06/cuenta-iseries-gratuita.html' title='Cuenta iSeries gratuita'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SPPzDY195aI/AAAAAAAAEjs/fvfRvsMfM-8/s72-c/AS400_login_free.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-3790792287090530785</id><published>2008-09-03T20:31:00.009+02:00</published><updated>2009-09-21T20:56:23.754+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>Nefarious Masqueraders</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SN1hRHN48XI/AAAAAAAAEd4/WkBO133I8mE/s320/trojan.jpg" alt="" id="BLOGGER_PHOTO_ID_5250459687206842738" border="0" /&gt;Un articulo que llamo mi atención, hace tiempo, es el titulado "&lt;a href="http://www.400school.com/security/arttrojan.html" target="_new"&gt;&lt;span style="font-weight: bold;"&gt;Nefarious Masqueraders&lt;/span&gt;&lt;/a&gt;" publicado en la web de &lt;a href="http://www.400school.com/" target="_new"&gt;The AS/400 School&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;En él, se nos introduce en las técnicas para introducirse en un AS/400 y que nos puede servir, como administradores de sistemas, para ser conscientes de las vulnerabilidades del sistema y, de esta forma, poder tomar medidas para proteger mejor nuestros sistemas.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://translate.google.es/translate?u=http%3A%2F%2Fwww.400school.com%2Fsecurity%2Farttrojan.html&amp;amp;sl=en&amp;amp;tl=es&amp;amp;hl=es&amp;amp;ie=UTF-8" target="_new"&gt;Traducción online del articulo&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-3790792287090530785?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/3790792287090530785/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=3790792287090530785' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3790792287090530785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/3790792287090530785'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/nefarious-masqueraders.html' title='Nefarious Masqueraders'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SN1hRHN48XI/AAAAAAAAEd4/WkBO133I8mE/s72-c/trojan.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-4240915688338777566</id><published>2008-06-24T18:24:00.002+02:00</published><updated>2010-04-23T11:35:01.553+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Lógicos en diferente biblioteca</title><content type='html'>&lt;div style="text-align: justify;"&gt;Una manera rápida de como averiguar qué archivos lógicos no están en la misma biblioteca que sus archivos físicos, es mediante la siguiente instrucción SQL, que accede al fichero QSYS/QADBFDEP :&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;SELECT DbFLib, DbFFil, DbFLDp, DbFFDp&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;FROM Qsys/QADbFDep&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;WHERE DbFLib &lt;&gt; DbFLDp&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;ORDER BY DbFLib, DbFFil, DbFLDp, DbFFDp&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Una de las razones para controlar este tipo de situación es que, en caso de restauración de las bibliotecas, debe hacerse en el orden correcto, ya que sino podemos dejar de restaurar algún archivo lógico, y nos obligaría a realizar una segunda restauración con el parámetro *NEW.&lt;br /&gt;Esto también se aplica a archivos con restricciones, aunque en este caso es recomendable no tener archivos dependientes en diferentes bibliotecas y evitemos, siempre que podamos, estas situaciones.&lt;br /&gt;&lt;br /&gt;Por ejemplo, si restauramos desde las copias de seguridad, realizadas con *ALLUSR, las bibliotecas están salvadas en la cinta en orden alfabético, pero el archivo LIB1/INDEX1 no se restaurara, porque no encuentra el archivo físico FILE1, del que depende, ya que esta en la biblioteca LIB2 que aun no se ha restaurado.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;Library  File    Type&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;LIB1     INDEX1  LF&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;LIB2     FILE1   PF&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-4240915688338777566?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/4240915688338777566/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=4240915688338777566' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4240915688338777566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/4240915688338777566'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/lgicos-en-diferente-biblioteca-que-su.html' title='Lógicos en diferente biblioteca'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8559310583195722700</id><published>2008-06-19T12:21:00.002+02:00</published><updated>2009-09-21T20:55:04.289+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Gestionar receptores de diario</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Estrategias de como gestionar receptores de diario&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El tema es complicado, ya que depende mucho de los requerimientos de la aplicación, de seguridad, de replicación, etc..., para poder aplicar una estrategia de gestión de los receptores de diario. Intentare explicar los casos que se me ocurren en nuestra estrategia, para que sirvan de ejemplo.&lt;br /&gt;&lt;br /&gt;Dejo aparte la gestión de los receptores del propio sistema, que habitualmente se autogestionan en tiempo de IPL, si no vamos a realizar IPL en muchos tiempo puede que tengamos también que incluirlos en nuestra estrategia, no sin antes verificar y consultar con &lt;a href="http://www-304.ibm.com/systems/support/supportsite.wss/brandmain?brandind=5000027"&gt;IBM&lt;/a&gt;, si fuese necesario, que impacto puede tener en el sistema.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;Caso1: &lt;/b&gt;En los sistemas de producción los receptores de diario están gestionados por &lt;a href="http://www.visionsolutions.com//Products/High-Availability-MIMIX.aspx"&gt;MIMIX&lt;/a&gt; (u otra herramienta de replicación) y se mantienen en linea unos días y después se eliminan automáticamente por el software de replicación y si se han salvado previamente a cinta.&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;Caso2:&lt;/b&gt; En los sistemas de producción que no tienen MIMIX, los receptores se van salvando a cinta y eliminando periódicamente (según el sistema).&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;Caso3:&lt;/b&gt; En los sistemas de desarrollo (que nunca tienen MIMIX) los receptores los elimina automáticamente el sistema, cuando ya no hay ningún ciclo de compromiso pendiente y aunque no estén salvados a cinta, excepto los de auditoria del sistema (QAUDJRN) que se eliminan una vez salvados a cinta.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Caso4: &lt;/b&gt;Poner la vuestra...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Formas de detectar si hay ciclos largos de commit abiertos:&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;b&gt;Caso1: &lt;/b&gt;MIMIX detecta en que ciclo de commit estamos "encallados" y que nos retrasa la hora de aplicación de MIMIX, con la utilidad &lt;a href="http://www.telefonica.net/web2/motxilla/AS400/AS400.htm"&gt;DSPJOBSEC&lt;/a&gt; averiguamos rápidamente que trabajo tiene el ciclo de commit abierto y podemos actuar en consecuencia.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Caso2: &lt;/b&gt;Podemos deducir que con el movimiento normal podemos generar, en una semana (p.e.) 10 receptores de diario, si detectamos que hay más receptores de lo habitual es posible que hayan ciclos de commit abiertos.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Caso3: &lt;/b&gt;Este es el más fácil, como mucho solo puede haber un receptor conectado al diario, ya que el resto el sistema y los va eliminando automáticamente, por tanto si vemos que hay más, es (casi) seguro que algún trabajo tiene un ciclo de commit abierto.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Causas de los ciclos de commit largos:&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Programas que no hacen commit (mala programación), o se meten en un bucle.&lt;/li&gt;&lt;li&gt;Sentencias SQL. o QMQuery, sin ciclos de compromiso de larga ejecución; deberían evitarse o analizar si es posible lanzarlos con WITH NC (sin commit) aunque eso a veces no es posible si queremos tener consistencia en la base de datos.&lt;/li&gt;&lt;li&gt;A veces detectamos algún CPYF que tiene ciclos de commit (no recuerdo bien como fue).&lt;/li&gt;&lt;li&gt;Programadores que están debugando, abren un ciclo de commit, les casca el programa y van a por otra cosa, o hacen petición de sistema, o se van a comer, y el ciclo de commit se queda abierto hasta que no hacen signoff.&lt;/li&gt;&lt;li&gt;Otras ?? (que cada uno añada las suyas)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Como detectar "automáticamente" si hay ciclos de commit abiertos:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Estuve investigando usar el mandato WRKCMTDFN (a partir V5R4) pero de momento no puedo diferenciar los ciclos de commit abiertos con registros pendientes de los que no, aunque si se ve por pantalla con F11, a lo mejor dándole al "coco" mas tiempo....&lt;br /&gt;&lt;/li&gt;&lt;li&gt;De momento se nos ocurrió: Contar el numero de receptores de diario de cada diario.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="font-family:courier new,monospace;"&gt;DSPOBJD OBJ(*ALL/*ALL) OBJTYPE(*JRNRCV) OUTPUT(*OUTFILE) OUTFILE(QTEMP/JRNRCV) OUTMBR(*FIRST *REPLACE) &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Doy por supuesto que en una biblioteca no hay mas de un diario, que podría ser.&lt;/li&gt;&lt;li&gt;Deberemos omitir el diario de auditoria y los de sistema, habitualmente empiezan por Q* y en bibliotecas que también empiezan por Q*.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Otra estrategia seria hacer:&lt;/li&gt;&lt;ul&gt;&lt;li  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;DSPOBJD OBJ(Mylib/&lt;b&gt;Myjrn1&lt;/b&gt;) OBJTYPE(*JRNRCV) OUTPUT(*OUTFILE) OUTFILE(QTEMP/JRNRCV) OUTMBR(*FIRST *REPLACE)&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;DSPOBJD OBJ(Mylib/&lt;b&gt;Myjrn2&lt;/b&gt;) OBJTYPE(*JRNRCV) OUTPUT(*OUTFILE) OUTFILE(QTEMP/JRNRCV) OUTMBR(*FIRST &lt;b&gt;*ADD&lt;/b&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;DSPOBJD OBJ(&lt;b&gt;MylibX/MyjrnX&lt;/b&gt;) OBJTYPE(*JRNRCV) OUTPUT(*OUTFILE) OUTFILE(QTEMP/JRNRCV) OUTMBR(*FIRST &lt;b&gt;*ADD&lt;/b&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Después contamos los receptores de cada diario, o lo hacemos por cada biblioteca cada vez, en fin múltiples posibilidades según se adapte a nuestra estrategia.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Una vez sabemos que diario tiene un &lt;u&gt;numero "anormal" de receptores&lt;/u&gt;, dejo para cada uno lo que es anormal, seguimos con:&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Como detectar "automáticamente" que trabajo tiene un ciclo de commit abierto:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Volcamos el contenido del diario, de las entradas relacionadas con los ciclos de commit, a fichero (esto puede tardar):&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new,monospace;"&gt;DSPJRN JRN(Mylib/MyJrn) RCVRNG(*CURCHAIN) JRNCDE((C)) OUTPUT(*OUTFILE) OUTFILE(QTEMP/DSPJRN)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Después ejecutamos la sentencia SQL siguiente (esto es la "madre del cordero" ¡¡ gracias Inma!!):&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new,monospace;"&gt;WITH aa AS (SELECT * FROM dspjrn WHERE joentt = 'SC'), bb AS        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt;(SELECT * FROM dspjrn WHERE joentt &lt;&gt; 'SC') SELECT aa.joseqn,       &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt;aa.jodate, aa.jotime, aa.jonbr, aa.jouser, aa.jojob, aa.joccid from &lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new,monospace;"&gt;&lt;span style="font-size:85%;"&gt;aa LEFT EXCEPTION JOIN bb ON aa.joccid = bb.joccid  &lt;/span&gt;     &lt;/span&gt;              &lt;/div&gt; &lt;ul&gt;&lt;li&gt;Esta SELECT nos devolverá la lista de trabajos con un ciclo de commit abierto, y la hora de del ciclo de commit, ya solo nos queda ir al trabajo a ver que pasa.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Espero que, al menos, os sirva como base para detectar esos trabajos que nos pueden fastidiar, ya que normalmente los ciclos de commit largos le sientan como una "patada" al OS/400, y ya no digo si hay que hacer un rollback.&lt;br /&gt;&lt;br /&gt;Por poner un ejemplo: Un programador un viernes y en un sistema de desarrollo (que estan 24x7) hace un call a un programa que se mete en un bucle, con un ciclo de commit abierto, haciendo updates del mismo registro como un "poseso", se cae su sesión y como no puede volver a entrar, se marcha de fin de semana. El lunes se descubre que hay una sesión en RUN todo el tiempo, se hace un ENDJOB *IMMED, con millones de cambios comprometidos en el mismo ciclo de commit. El trabajo tarda como 2 horas en empezar a hacer el rollback y 2 días en terminarlo. A todo esto la ocupación en disco ha ido subiendo, porque el sistema no elimina los receptores de diario desconectados, y salvados, ya que hay un ciclo de commit con transacciones pendientes. En fin que tenemos maquinas potentes, que si no andamos con cuidado podemos cargarnos el sistema.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8559310583195722700?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8559310583195722700/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8559310583195722700' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8559310583195722700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8559310583195722700'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/como-gestionar-receptores-de-diario.html' title='Gestionar receptores de diario'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7926879597245591356</id><published>2008-05-25T09:42:00.000+02:00</published><updated>2008-10-08T16:23:23.612+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Porcentaje rollback realizado</title><content type='html'>Procedimiento para ver el porcentaje de Rollback que ya ha realizado un trabajo:&lt;ul&gt;&lt;li&gt;Ejecutar mandato &lt;span style="font-weight: bold;"&gt;DSPJOB&lt;/span&gt; JOB(num_job/user_job/name_job)&lt;/li&gt;&lt;li&gt;Seleccionar opcion "&lt;span style="font-weight: bold;"&gt;16&lt;/span&gt;. Display commitment control status, if active"&lt;/li&gt;&lt;li&gt;Opcion "&lt;span style="font-weight: bold;"&gt;5&lt;/span&gt;=Display"&lt;/li&gt;&lt;li&gt;Pulsar "&lt;span style="font-weight: bold;"&gt;F6&lt;/span&gt;=Display resource status"&lt;/li&gt;&lt;li&gt;Pulsar &lt;span style="font-weight: bold;"&gt;AvPag.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Seleccionar opcion "&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;=Select" en el recurso "&lt;span style="font-weight: bold;"&gt;Journa&lt;/span&gt;l"&lt;/li&gt;&lt;li&gt;Finalmente pulsar "&lt;span style="font-weight: bold;"&gt;F11&lt;/span&gt;=Display rollback status"&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SOvarrRpIJI/AAAAAAAAEho/Ln3cgDf0JEY/s1600-h/Rollback_complete.gif"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SOvarrRpIJI/AAAAAAAAEho/Ln3cgDf0JEY/s400/Rollback_complete.gif" alt="" id="BLOGGER_PHOTO_ID_5254533834143768722" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7926879597245591356?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7926879597245591356/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7926879597245591356' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7926879597245591356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7926879597245591356'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/procedimiento-para-ver-el-porcentaje-de.html' title='Porcentaje rollback realizado'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SOvarrRpIJI/AAAAAAAAEho/Ln3cgDf0JEY/s72-c/Rollback_complete.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-554222342722095922</id><published>2008-05-05T18:28:00.000+02:00</published><updated>2008-10-08T16:24:11.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Restaurar archivos QHST</title><content type='html'>Como restaurar los archivos históricos desde una cinta de SAVSYS, para ello seguir el siguiente procedimiento:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Cargar la cinta donde realizamos el SavSys&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;DSPTAP DEV(TAP01) DATA(*SAVRST)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;Ir pulsando&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;Intro hasta encontrar la secuencia donde están los archivos QHST.&lt;/li&gt;&lt;li&gt;Anotar numero secuencia y ID etiqueta archivo (p.e. &lt;span style="font-weight: bold;"&gt;Q5722SS1510310090&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Ejecutar RSTOBJ OBJ(QHST*) SAVLIB(QSYS) DEV(TAP01) OBJTYPE(*FILE) VOL(&lt;span style="font-weight: bold;"&gt;Q5722SS1510310090&lt;/span&gt;) SEQNBR(33)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-554222342722095922?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/554222342722095922/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=554222342722095922' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/554222342722095922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/554222342722095922'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/restaurar-archivos-qhst.html' title='Restaurar archivos QHST'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8497767039279387016</id><published>2008-04-06T17:37:00.007+02:00</published><updated>2011-02-12T15:47:21.406+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Mejorar teclado emulacion 5250</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5255598729176973058" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SO-jMuaWfwI/AAAAAAAAEjU/a3H7B7ny-R4/s200/3197.jpg" style="cursor: pointer; float: left; height: 90px; margin: 0pt 10px 10px 0pt; width: 110px;" /&gt;El IBM Client Access incluye el emulador de pantalla verde 5250 Personal Communications.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;La configuración por omisión no incluye ciertas funciones que los usuarios de los sistemas operativos de ventanas encontramos a faltar, como son las teclas &lt;span style="font-weight: bold;"&gt;Inicio&lt;/span&gt; para ir al &lt;span style="font-weight: bold;"&gt;Inicio del Campo&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Fin&lt;/span&gt; para ir al &lt;span style="font-weight: bold;"&gt;Fin del Campo&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Ctrl+C&lt;/span&gt; para &lt;span style="font-weight: bold;"&gt;Copiar&lt;/span&gt; un texto seleccionado o &lt;span style="font-weight: bold;"&gt;Ctrl+V&lt;/span&gt; para &lt;span style="font-weight: bold;"&gt;Pegar&lt;/span&gt; un texto; Ctrl+X no tiene sentido en una emulación 5250.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Como hacer esta personalización de teclado de la emulación, pues seguir los siguientes pasos:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Bajaros el archivo &lt;/span&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/9bd12e6a-85eb-4855-8323-378c266b5cc9/media/as400_mejorado.kmp"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;as400_mejorado.kmp&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; y lo guardais en la carpeta C:\Program Files\ibm\Client Access\Emulator\Private o donde os parezca mejor.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Desde la emulación de pantalla del Personal Communications, pulsais el icono &lt;img alt="Keyboard button" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SPNiUv6xt5I/AAAAAAAAEjk/xuIqUWx-9tI/s200/PC_Keyboard.gif" /&gt; o Edit, Preferences, Keyboard, Customize.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Despues File, Open y seleccionar el archivo de configuración de teclado que os habeis bajado.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A continuación salvar la nueva configuración.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A partir de ese momento ya podreis utilizar el teclado de la emulación de forma mas parecida a la que utilizais con un sistema operativo grafico de ventanas.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Esta configuración de teclado también convierte la tecla grande de &lt;span style="font-weight: bold;"&gt;Intro&lt;/span&gt;, como un &lt;span style="font-weight: bold;"&gt;Intro&lt;/span&gt; y no como &lt;span style="font-weight: bold;"&gt;Salida de Campo&lt;/span&gt;, esta la muevo a la tecla &lt;span style="font-weight: bold;"&gt;Ctrl&lt;/span&gt; de la derecha.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8497767039279387016?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8497767039279387016/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8497767039279387016' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8497767039279387016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8497767039279387016'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/04/mejorar-teclado-emulacion-5250.html' title='Mejorar teclado emulacion 5250'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SO-jMuaWfwI/AAAAAAAAEjU/a3H7B7ny-R4/s72-c/3197.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1088068959953385793</id><published>2008-04-02T20:17:00.003+02:00</published><updated>2009-09-21T20:54:04.905+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notas'/><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><title type='text'>La clave de las claves</title><content type='html'>&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 62px; height: 39px;" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SN1i7SYobQI/AAAAAAAAEeA/VwEd6K2lM3E/s200/key.gif" alt="" id="BLOGGER_PHOTO_ID_5250461511270821122" border="0" /&gt;La elección de un buena contraseña, la palabra clave que franquea el acceso a un ordenador, es esencial para salvaguardar la seguridad de los datos que contiene. Los expertos recomiendan las siguientes reglas básicas:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Una contraseña ha de ser sencilla. Desde luego, la clave TMXKQGSW resulta bastante segura frente a hackers que lo intentan al azar, pero es muy difícil de recordar.&lt;/li&gt;&lt;li&gt; Una contraseña no debe tener significado. Las palabras con significado son las más fáciles de reventar. Esto no excluye que sean sencillas de memorizar. Ejemplos: ZAZAMELI, PERPOLAS, RATOGARU.&lt;/li&gt;&lt;li&gt; Una contraseña hay que memorizarla, no apuntarla. Quien no se fíe demasiado de su memoria a largo plazo, puede apuntar su palabra clave, pero nunca de manera que un extraño pueda reconocerla como tal. Así, nunca se la ha de escribir en el listín telefónico bajo CLAVE, SECRETO u ORDENADOR. Es mejor garabatearla en la agenda junto al recordatorio del cumpleaños de la abuela. En ningún caso se debe dejar la nota escrita cerca del ordenador, bajo el teléfono o pinchada en el panel de corcho. &lt;/li&gt;&lt;li&gt; De vez en cuando conviene cambiar la contraseña. Por si acaso alguien no autorizado ya lo conoce pero todavía no se ha decidido a usarlo. Tampoco es preciso cambiarlo muy a menudo, podría causarnos molestas equivocaciones.&lt;/li&gt;&lt;li&gt;Una contraseña se teclea en privado. Al introducir la clave antes de comenzar una sesión de trabajo, hay que asegurarse de que nadie mire por encima del hombro. Las personas de confianza hacen honor a su nombre respetando la intimidad del propietario de la clave.&lt;/li&gt;&lt;li&gt; Ciertas palabras nunca han de servir de contraseña:&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Nombres propios y apellidos.&lt;/li&gt;&lt;li&gt;Apodos. El propio, jamás, pero tampoco el del perro o el gato.&lt;/li&gt;&lt;li&gt;Palabras informáticas, como TEST, SYSTEM, CHECK, BYTE...&lt;/li&gt;&lt;li&gt;Fechas de cumpleaños.&lt;/li&gt;&lt;li&gt;Cadenas con método: ABCDEFGH, A1B2C3, QWERTY...&lt;/li&gt;&lt;li&gt;Palabras de moda: CHUNGO, GUAI, SUPER, TOTAL...&lt;/li&gt;&lt;li&gt;Nombres de la mitología, la literatura o ciencia-ficción: Zeus, Quijote, Spock,    Frodo...&lt;/li&gt;&lt;li&gt;La palabra clave por antonomasia: (ábrete) SESAMO.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: right;"&gt;Articulo extraído de la revista "&lt;a href="http://www.muyinteresante.es/" target="_new"&gt;Muy Interesante&lt;/a&gt;",  noviembre 1.989&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1088068959953385793?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1088068959953385793/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1088068959953385793' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1088068959953385793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1088068959953385793'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/la-clave-de-las-claves.html' title='La clave de las claves'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SN1i7SYobQI/AAAAAAAAEeA/VwEd6K2lM3E/s72-c/key.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-2967092159505409750</id><published>2008-03-27T13:26:00.001+01:00</published><updated>2008-10-10T15:47:36.305+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>De mayúsculas a minúsculas</title><content type='html'>Como convertir un campo de mayúsculas a minúsculas o viceversa en un programa CL.&lt;br /&gt;&lt;br /&gt;Para ello añadimos el siguiente código en nuestro programa, para convertir una variable de 5 caracteres de longitud, y utilizaremos la API QLGCNVCS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;DCL VAR(&amp;amp;VAR1) TYPE(*CHAR) LEN(5)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DCL VAR(&amp;amp;VAR2) TYPE(*CHAR) LEN(5)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DCL VAR(&amp;amp;VARLEN) TYPE(*CHAR) LEN(4) VALUE(X'00000005')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DCL VAR(&amp;amp;CASEU) TYPE(*CHAR) LEN(22) + VALUE(X'00000001000000000000000000000000000000000000')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DCL VAR(&amp;amp;CASEL) TYPE(*CHAR) LEN(22) + VALUE(X'00000001000000000000000100000000000000000000')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DCL VAR(&amp;amp;ERR) TYPE(*CHAR) LEN(4) VALUE(X'00000000')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De mayúsculas a minúsculas llamar a la API con el parámetro &amp;amp;CASEL:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;CALL PGM(QLGCNVCS) PARM(&amp;amp;CASEL &amp;amp;VAR1 &amp;amp;VAR2 &amp;amp;VARLEN &amp;amp;ERR)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De minúsculas a mayúsculas llamar a la API con el parámetro &amp;amp;CASEU:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;CALL PGM(QLGCNVCS) PARM(&amp;amp;CASEU &amp;amp;VAR1 &amp;amp;VAR2 &amp;amp;VARLEN &amp;amp;ERR)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-2967092159505409750?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/2967092159505409750/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=2967092159505409750' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2967092159505409750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/2967092159505409750'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/convertir-mayusculas-minusculas-en-clp.html' title='De mayúsculas a minúsculas'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1095995877979073153</id><published>2008-03-10T13:22:00.004+01:00</published><updated>2008-10-10T20:28:48.213+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Plantilla teclado IBM 3197</title><content type='html'>Plantilla de teclado del terminal 5250 de IBM modelo 3197&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SO-BlBQcAJI/AAAAAAAAEjI/gUKV1ofnvq0/s1600-h/IBM3197-keyboard.png" target=_new&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SO-BlBQcAJI/AAAAAAAAEjI/gUKV1ofnvq0/s400/IBM3197-keyboard.png" alt="" id="BLOGGER_PHOTO_ID_5255561763157180562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A veces no recordamos como eran los terminales "tontos", aunque el IBM-3197 era de los "espabilados". Esta plantilla es la "chuleta" para acordarnos de las funciones que tenia incorporadas la ALU del terminal, como configurar la dirección twinaxial, tipo de terminal (pantalla, pantalla-pantalla, pantalla-impresora), o las macros, entre otras cosas.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1095995877979073153?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/1095995877979073153/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=1095995877979073153' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1095995877979073153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1095995877979073153'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/03/plantilla-teclado-terminal-ibm-3197.html' title='Plantilla teclado IBM 3197'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SO-BlBQcAJI/AAAAAAAAEjI/gUKV1ofnvq0/s72-c/IBM3197-keyboard.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-5833860299460552464</id><published>2008-02-25T17:33:00.002+01:00</published><updated>2010-04-23T11:35:01.554+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><title type='text'>Imprimir fuente en DIN A-4</title><content type='html'>&lt;div style="text-align: justify;"&gt;Como imprimir un miembro de un archivo de fuentes en formato DIN A-4 y doble cara (si nuestra impresora lo soporta):&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Entrar al PDM con el mandato &lt;span style="font-weight: bold;"&gt;STRPDM&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Seleccionar opción "&lt;span style="font-weight: bold;"&gt;9&lt;/span&gt;. Work with user-defined options"&lt;/li&gt;&lt;li&gt;Seleccionar archivo opciones, por omision QGPL/QAUOOPT(QAUOOPT) , pulsar &lt;span style="font-weight: bold;"&gt;Intro&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pulsar &lt;span style="font-weight: bold;"&gt;F6&lt;/span&gt;=Create&lt;/li&gt;&lt;li&gt;Opción &lt;span style="font-weight: bold;"&gt;A4&lt;/span&gt; &lt;span style="font-size:85%;"&gt;(por ejemplo)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Introducir en la linea de mandatos:&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: courier new;"&gt;OVRPRTF FILE(QPSUPRTF) PAGESIZE(102) LPI(9) OVRFLW(102) ALIGN(*YES) FONT(220) PRTQLTY(*DRAFT) PAGRTT(0)  DUPLEX(*YES) &lt;/li&gt;&lt;li&gt;Pulsar &lt;span style="font-weight: bold;"&gt;Intro&lt;/span&gt; para guardar la nueva opción del PDM.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Como usar nueva opción &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;A4&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Pulsar la opción &lt;span style="font-weight: bold;"&gt;A4&lt;/span&gt; delante del miembro que queramos imprimir y después la opción &lt;span style="font-weight: bold;"&gt;6&lt;/span&gt;=Print, si fuera necesario cambiar el listado a una cola de impresora de hojas.&lt;br /&gt;A partir de pulsar la opción &lt;span style="font-weight: bold;"&gt;A4&lt;/span&gt; todos los listados que pidamos en esa sesión, se imprimirán en ese formato. Con la opción  DUPLEX(*YES) conseguimos imprimir por ambas caras si la impresora lo soporta.&lt;br /&gt;&lt;br /&gt;Es posible se tenga que ajustar algún valor para que cuadre con la hoja de nuestra impresora.&lt;br /&gt;Pero de todas formas el medio ambiente nos agradecera que ahorremos algunas hojas.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SNuzOUCWdQI/AAAAAAAAEcw/iIt9gKkIfP4/s1600-h/noprint.gif" target="_new"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 520px; height: 44px;" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SNuzOUCWdQI/AAAAAAAAEcw/iIt9gKkIfP4/s400/noprint.gif" alt="" id="BLOGGER_PHOTO_ID_5249986849108555010" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-5833860299460552464?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/5833860299460552464/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=5833860299460552464' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5833860299460552464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/5833860299460552464'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/imprimir-fuente-en-din-4.html' title='Imprimir fuente en DIN A-4'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SNuzOUCWdQI/AAAAAAAAEcw/iIt9gKkIfP4/s72-c/noprint.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8165629792391255255</id><published>2008-02-24T20:19:00.000+01:00</published><updated>2008-10-08T16:22:19.251+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Cargar imagenes cd a AS400</title><content type='html'>Como utilizar un cd en un AS400 que no tiene, o al que no podemos acceder, unidad cd cd-rom:&lt;br /&gt;&lt;br /&gt;Seguir el siguiente procedimiento (solo funciona en AS400 a partir V5R2).&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Colocar cd en un pc&lt;/li&gt;&lt;li&gt;Arrancar pgm para generar imágenes (UltraISO, Nero, etc...) y crear imagen ISO del cd (cd's) que queremos cargar en el AS400.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SNqBO-JI5NI/AAAAAAAAEbA/78424GZDcXo/s1600-h/UltraISO.PNG" target="_new"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SNqBO-JI5NI/AAAAAAAAEbA/78424GZDcXo/s320/UltraISO.PNG" alt="" id="BLOGGER_PHOTO_ID_5249650409853215954" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Copiar archivo iso generado al un directorio del AS400 (p.e. /images)&lt;/li&gt;&lt;li&gt;Crear catalogo de imágenes en el AS400: CRTIMGCLG IMGCLG(MY_SOFTWARE) DIR('/images/MY_SOFTWARE') CRTDIR(*YES) TEXT('My software V.xx for AS400')&lt;/li&gt;&lt;li&gt;Esto creara el directorio /images/MY_SOFTWARE  y el objeto QUSRSYS/MY_SOFTWARE de tipo *IMGCLG&lt;/li&gt;&lt;li&gt;Cargar imagen del cd al catalogo de imagenes: ADDIMGCLGE IMGCLG(MY_SOFTWARE) FROMFILE('/images/My_image.iso') TEXT('My software V.xx for AS400')&lt;/li&gt;&lt;li&gt;Esto crea el archivo del ifs /images/MY_SOFTWARE/My_image.iso&lt;/li&gt;&lt;li&gt;Para comprobar si se ha cargado:WRKIMGCLGE IMGCLG(MY_SOFTWARE)&lt;/li&gt;&lt;li&gt;Crear dispositivo óptico virtual (por única vez): CRTDEVOPT DEVD(OPT90) RSRCNAME(*VRT) ONLINE(*NO) TEXT('cd-rom virtual')&lt;/li&gt;&lt;li&gt;Activar el dispositivo óptico virtual:VRYCFG CFGOBJ(OPT90) CFGTYPE(*DEV) STATUS(*ON)&lt;/li&gt;&lt;li&gt;Cargar el catalogo de imagenes (MY_SOFTWARE) al cd virtual (OPT90): LODIMGCLG IMGCLG(MY_SOFTWARE) DEV(OPT90) OPTION(*LOAD)&lt;/li&gt;&lt;li&gt;Operar como un cd cargado en dispositivo optico OPT90 y realizar las operaciones como habitualmente.&lt;/li&gt;&lt;li&gt;Al terminar descargar el catalogo de imagenes (MY_SOFTWARE) al cd virtual (OPT90): LODIMGCLG IMGCLG(MY_SOFTWARE) DEV(OPT90) OPTION(*UNLOAD)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8165629792391255255?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8165629792391255255/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8165629792391255255' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8165629792391255255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8165629792391255255'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/cargar-imagenes-de-cd-un-as400.html' title='Cargar imagenes cd a AS400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORi3k4zAPi4/SNqBO-JI5NI/AAAAAAAAEbA/78424GZDcXo/s72-c/UltraISO.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-7494745132307122032</id><published>2008-02-17T20:58:00.008+01:00</published><updated>2011-02-10T09:06:10.910+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Copiar archivos spool</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;La utilidad CPYJOBSPL nos sirve para copiar todos los archivos de spool de un trabajo, del que conocemos su jobid (numero/usuario/nombre_trabajo), si es el trabajo actual podemos usar el símbolo *.&lt;br /&gt;Si utilizamos la opción *SPL nos copiara los archivos de spool a nuestro spool, nos permite indicar un numero máximo de paginas a copiar.&lt;br /&gt;Si usamos la opción *TEXT, nos convierte todos los archivos de spool a ficheros ASCII dentro de una carpeta del IFS que le indiquemos.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SPRGc2Z1T_I/AAAAAAAAEj0/aUGurXKy5cQ/s1600-h/CPYJOBSPL.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5256904126502359026" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SPRGc2Z1T_I/AAAAAAAAEj0/aUGurXKy5cQ/s200/CPYJOBSPL.gif" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/form/anonymous/api/library/7cd1e29f-0699-4929-a741-516ce47295a8/document/e92947f8-6f35-45a5-918b-4a443462f765/media/CPYJOBSPL_Copy%20job%20spools.rar"&gt;La utilidad la podéis bajar pulsando aquí&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-7494745132307122032?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/7494745132307122032/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=7494745132307122032' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7494745132307122032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/7494745132307122032'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/10/copiar-archivos-spool-de-trabajo.html' title='Copiar archivos spool'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ORi3k4zAPi4/SPRGc2Z1T_I/AAAAAAAAEj0/aUGurXKy5cQ/s72-c/CPYJOBSPL.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-8179539140241566408</id><published>2008-01-31T19:55:00.004+01:00</published><updated>2008-10-17T12:51:32.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Configurar SNA sobre TCP/IP</title><content type='html'>Para configurar las comunicaciones SNA sobre TCPIP entre dos o más AS400 (iSeries) seguir el siguiente procedimiento en los sistemas a conectar:&lt;br /&gt;&lt;br /&gt;Prerequisitos:&lt;br /&gt;• TCPIP configurado correctamente.&lt;br /&gt;• Subsistema QSNADS arrancado.&lt;br /&gt;• Añadir usuarios al directorio (WRKDIRE).&lt;br /&gt;&lt;br /&gt;Procedimiento, ejecutar en cada uno de los sistemas a conectar:&lt;br /&gt;1. Activar el atributo de red "Permitir soporte AnyNet" con CHGNETA ALWANYNET(*YES), requiere IPL.&lt;br /&gt;2. Añadir nombre al nombre de sistema principal el de 'nombre_sistema.appn.sna.ibm.com', utilizar el mandato CHGTCPHTE o CFGTCP, opción 10 y opción 2 en el sistema a modificar su entrada, de la tabla de sistema principales (HOSTS).&lt;br /&gt;3. Crear el controlador APPC utilizando el mandato CRTCTLAPPC donde xxxxxxx es el nombre de sistema al que conectamos, en cada sistema origen utilizar el nombre del sistema destino.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;CRTCTLAPPC CTLD(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:85%;"  &gt;xxxxxxxx&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;) LINKTYPE(*ANYNW) ONLINE(*YES) APPN(*YES)&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; RMTNETID(*NETATR) RMTCPNAME(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:85%;"  &gt;xxxxxxxxx&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;) NODETYPE(*LENNODE) BEXROLE(*NETNODE) HPR(*YES) HPRPTHSWT(*NO) TMSGRPNBR(1) AUTOCRTDEV(*ALL) AUTODLTDEV(1440) USRDFN1(*LIND) USRDFN2(*LIND)&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; USRDFN3(*LIND) TEXT('APPN sobre TCPIP para &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:85%;"  &gt;xxxxxxx&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;') CMNRCYLMT(2 5) &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;MSGQ(*SYSVAL)&lt;/span&gt;&lt;div class="goog-ws-dash-text goog-ws-dash-box-border" style="margin: 5px auto 0pt; clear: both; display: block; width: 100%;"&gt;&lt;div class="goog-ws-dash-box-inside"&gt;&lt;br /&gt;4. Para crear el dispositivo APPC, y de paso probar la conexión, ejecutar STRPASTHR nombre_sistema, nos debería aparecer el inicio de sesión del sistema destino.&lt;/div&gt;&lt;/div&gt;5. Para configurar el envío/recepción de archivos y spool con SNDNETF y/o SNDNETSPLF:&lt;br /&gt;6. Ejecutar el mandato CFGDSTSRV  "Configurar Servicios de Distribución".&lt;br /&gt;7. Seleccionar la opción "1=Colas de distribución" y después pulsar "F6=Añadir cola de distribución"&lt;br /&gt;8. Teclear en los campos Cola y Nombre ubicación remota el nombre del sistema destino:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORi3k4zAPi4/SPhs-hzpOFI/AAAAAAAAEkU/2YtH2Vh9Fys/s1600-h/SNAQ1.gif" target=_new&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_ORi3k4zAPi4/SPhs-hzpOFI/AAAAAAAAEkU/2YtH2Vh9Fys/s200/SNAQ1.gif" alt="" id="BLOGGER_PHOTO_ID_5258072386437724242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPhtcT1MU6I/AAAAAAAAEkc/1GaZQi7eXGI/s1600-h/SNAQ2.gif" target=_new&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_ORi3k4zAPi4/SPhtcT1MU6I/AAAAAAAAEkc/1GaZQi7eXGI/s200/SNAQ2.gif" alt="" id="BLOGGER_PHOTO_ID_5258072898082198434" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;9. Volver a paso 6 y seleccionar a continuación la opción "2=Tabla de direccionamiento", después pulsar "F6=Añadir entrada tabla de direccionamiento".&lt;br /&gt;10. Teclear en los campos indicados el nombre de sistema de destino:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ORi3k4zAPi4/SPhtsHco7HI/AAAAAAAAEkk/KFCuu1UGdeg/s1600-h/SNART.gif" target=_new&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_ORi3k4zAPi4/SPhtsHco7HI/AAAAAAAAEkk/KFCuu1UGdeg/s200/SNART.gif" alt="" id="BLOGGER_PHOTO_ID_5258073169635896434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;11. Si además queremos utilizar los mandatos SAVRST* entre sistemas debemos tener instalado el producto "OS/400 - ObjectConnect ", para V5R2 es 5722SS1- opción 22.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-8179539140241566408?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://as400howto.blogspot.com/feeds/8179539140241566408/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5706577239959749713&amp;postID=8179539140241566408' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8179539140241566408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/8179539140241566408'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/configurar-sna-sobre-tcpip-entre-dos-o.html' title='Configurar SNA sobre TCP/IP'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORi3k4zAPi4/SPhs-hzpOFI/AAAAAAAAEkU/2YtH2Vh9Fys/s72-c/SNAQ1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5706577239959749713.post-1423387074964491664</id><published>2008-01-01T23:00:00.003+01:00</published><updated>2010-04-08T18:16:58.266+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Blog d'utilitats per AS400</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_ORi3k4zAPi4/SN1kF50uf8I/AAAAAAAAEeI/4xOKZmjfzS0/s1600-h/working.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" target="_new"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5250462793167962050" src="http://1.bp.blogspot.com/_ORi3k4zAPi4/SN1kF50uf8I/AAAAAAAAEeI/4xOKZmjfzS0/s200/working.gif" style="cursor: pointer; float: left; margin: 0pt 10px 10px 0pt;" /&gt;&lt;/a&gt;&lt;a href="http://www.telefonica.net/web2/motxilla/AS400/AS400.htm" target="_new"&gt;Utilitats per a..., Utilidades para..., Tools for AS/400 iSeries&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Link a mi antigua pagina web de Utilidades para AS/400&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5706577239959749713-1423387074964491664?l=as400howto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1423387074964491664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5706577239959749713/posts/default/1423387074964491664'/><link rel='alternate' type='text/html' href='http://as400howto.blogspot.com/2008/09/blog-dutilitats-per-as400.html' title='Blog d&apos;utilitats per AS400'/><author><name>Marti Riera</name><uri>http://www.blogger.com/profile/13392295098886110735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_ORi3k4zAPi4/SWm_gaq7ecI/AAAAAAAAGGA/oJxklYMs59Y/S220/MartiRiera_CavallBernat.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORi3k4zAPi4/SN1kF50uf8I/AAAAAAAAEeI/4xOKZmjfzS0/s72-c/working.gif' height='72' width='72'/></entry></feed>
