Mostrando entradas con la etiqueta iseries. Mostrar todas las entradas
Mostrando entradas con la etiqueta iseries. Mostrar todas las entradas

martes, 23 de octubre de 2012

Problemas al arrancar el servidor SMTP en iSeries/AS400.

Ya son varias las veces que me he encontrado con el problema de que el día menos pensado no puedo arrancar el servidor SMTP del iSeries ó AS400 (como a mí me gusta llamarlo).

Estamos dando por hecho que el iSeries ó AS400 está bien configurado y el problema se produce de forma inesperada. La configuración del AS400 para enviar email ya la comentamos en el post correspondiente: 

Los motivos pueden ser diversos y no es el objetivo de este post analizarlos, sino otro bien distinto: anotar la secuencia de comandos que en la mayoría de las ocasiones nos permitirá restaurar el servidor SMTP.

Los trabajos de SMTP se ejecutan en el subsistema QSYSWRK, por lo que una visión a los trabajos de este subsistema (WRKSBSJOB SBS(QSYSWRK)) nos puede ayudar a familiarizarnos con ellos. Concretamente, los trabajos de SMTP son los que comienzan por QTSMTP* (también pueden verse con el iNavigator):

Ventana del iNavigator donde podemos ver los trabajos ordenados por cualquier columna
Los pasos a seguir son los siguientes (yo además recomiendo ir controlando en las anotaciones del trabajo y de la QSYSOPR que los mandatos van procesandose de forma correcta antes de seguir con el siguiente mandato en la lista):
  • ENDMSF
    • Finalizar Infraestructura de Servidor de Correo en el subsistema de trabajos del sistema (QSYSWRK).
  • ENDTCPSVR SERVER(*SMTP)
    • Finalizar el servidor SMTP. Si ya está finalizado, que será lo normal si no te arranca, no pasará nada.
  • QSYS/ENDPJ SBS(QSYSWRK) PGM(QTCP/QTMSCLCP)
  • QSYS/ENDPJ SBS(QSYSWRK) PGM(QTCP/QTMSSRCP)
    • Finalizar los trabajos de prearranque del servidor SMTP.
  • STRTCPSVR SERVER(*SMTP)
    • Arrancar el servidor SMTP.
  • STRMSF
    • Arrancar Infraestructura del Servidor de Correo
Espero que esto sirva de utilidad a quien se encuentre con un problema similar. Suerte.

miércoles, 20 de junio de 2012

El código de respuesta negativo es 10050129. Negative response code is 10050129.

Recientemente perdí tontamente un par de horas en un error que me daba un programa de AS400 - iSeries cuando sacaba una pantalla. Ya me había pasado alguna que otra vez, pero no lo había anotado, como ahora. 

El error era un CPF5192 y me decía lo siguiente:


- Los datos enviados al dispositivo no son válidos. El código de respuesta negativo es 10050129.


Puesto que es un error no habitual, en estos casos solemos pensar inmediatamente que hay algún campo con algún carácter erróneo.

Los que llevamos muchos años en esto a veces cometemos el error de no leer completamente la causa del error y en mi caso, cuando comprobé que no había ningún carácter mal no sólo no procedí a leerlo sino que busqué en internet, así que como es posible que algún compañero pueda cometer el mismo error que yo reproduzco el texto que te dice claramente las causas del error.


Causa . . . . . :   La condición se debe a que los datos de salida del programa contienen valores menores que hex 40 o demasiados campos de entrada. Se puede encontrar más información sobre códigos de respuesta negativos en la publicación IBM 5494 Remote Control Unit Functions Reference (bajo el apartado respuestas negativas) o en el Manual de Formatos SNA (bajo los códigos SENSE o LUSTAT). Pueden haberse producido datos no válidos (inferiores a hex 40) de una de las siguientes formas:

- Se han pasado datos de parámetro no válidos en una variable al programa de lenguaje de control. La variable se utiliza en el mandato SNDPGMMSG. Se produce un error en el mandato al visualizar los datos.

 - Se han entrado caracteres hexadecimales inferiores al hex 40 en el parámetro TEXT del mandato crear. Se produce un error en el mandato para visualizar el objeto al tratar de visualizar los parámetros del objeto.

 - El programa de aplicación visualiza un registro de base de datos que contiene datos no válidos.

- No se ha especificado RSTDSP(*YES) cuando se alternan pantallas de más de un archivo para el dispositivo, donde ambos archivos tienen campos de entrada.

Si no tienes caracteres erróneos ni el problema es el parámetro RSTDSP(*YES) ya sabes, haz un DSPFFD del DSPF y probablemente te encuentres con algún formato de pantalla como el que yo tenía con sus 257 campos de entrada, cuando el máximo es 256:


Espero que si pasa otra vez y vuelvo a pasarme de listo, busque en internet y encuentre la respuesta en mi propio blog de apuntes, ;-)))

viernes, 21 de octubre de 2011

Query Manager te dice "No tiene autorización para utilizar UPDATE"

¿Alguna vez estas usando el Query y no te deja incluir sentencias UPDATE?

El mensaje habitual al incluir la sentencia en un fuente es del tipo "No tiene autorización para utilizar UPDATE" (por ejemplo).

Si te pasa esto seguramente es porque no tienes los permisos suficientes asignados para el uso de ciertas sentencias QUERY. Sigue los siguientes pasos para asignar los permisos necesarios (siempre que tengas la autorización correspondiente).

Arrancar el Gestor de Consultas DB/2 (STRQM)
10. Trabajar con perfiles del Gestor de Consultas
Seleccionar con 2 el usuario al que queremos modificarle los permisos.
Cambiar con Y la opción "Seleccionar sentencias SQL permitidas"



 
Asignarle los permisos deseados.


Saludos y suerte.

jueves, 20 de octubre de 2011

Pasar al IFS archivos de AS400 / iSeries en formato texto con CPYTOIMPF.

Si queremos usar la línea de mandatos para realizar esta tarea, aquí tenemos un ejemplo del uso del mandato CPYTOIMPF para pasar ficheros a formato txt:

CPYTOIMPF FROMFILE(LIBRERIA/ARCHIVO MIEMBRO) TOSTMF('/temporal/carlos/nombre.txt') FROMCCSID(284) STMFCCSID(*PCASCII) RCDDLM(*CRLF) STRDLM(*NONE)

martes, 3 de mayo de 2011

Más soluciones para problemas de acceso al IFS y QDLS del AS400 / iSeries

En un post del 31 de marzo comentabamos como intentar solucionar los problemas de credenciales que pueden surgir con Windows 7 para acceder a la QDLS o IFS del AS400 modificando un par de directivas.

Si a pesar de seguir las instrucciones o cualquier otro intento no puedes entrar a la QDLS o al IFS desde el PC, te aconsejo que compruebes si tu PC mantiene abierta una conexión al puerto CIFS (Common Internet File System) y si la tiene, finalizarla. Para ello debes ejecutar lo siguiente en la línea de mandatos del AS400 con un usuario con la autoridad suficiente.

NETSTAT OPTION(*CNN)
o bien
NETSTAT y seleccionar posteriormente la opción 3.

Te saldrá una pantalla con todas las conexiones, busca la IP correspondiente y con la opción 4, finaliza la conexión CIFS que tenga.

A continuación ya podrás entrar desde el PC a la QDLS o al IFS.

El puerto 445/TCP se usa para el Sistema de archivos de Internet común (CIFS) y es necesario para el uso compartido de archivos y algunas aplicaciones.

¡¡¡ Suerte !!!

miércoles, 13 de abril de 2011

En tiempos de crisis, demuestra que tienes la mejor empresa de servicios.

En estos tiempos que corren no es nada fácil para las empresas de servicios incrementar ventas y conseguir nuevos proyectos de inversión.

Lógicamente, es una constante el esfuerzo diario de las empresas del sector para mover al cliente y captar proyectos vendiendo las cualidades y virtudes de sus productos y servicios. Es por eso que ahora es cuando echo en falta al empresario valiente, el que confía en su oferta, en su proyecto. El empresario que se implique económicamente en cada proyecto de sus clientes.

Recientemente participé en una reunión para la puesta en marcha de un proyecto donde el cliente tenía capacidad para invertir entre hasta 300.000 euros, a pesar de que también tenía ofertas para el mismo proyecto de 30.000 euros. El proveedor más caro presentó la oferta de su producto, un extraordinario producto con grandes virtudes, pero que requería una importante inversión.

En este tipo de inversiones, lo más importante no es el montante de la inversión, sino el retorno de dicha inversión, su amortización y su rentabilidad. Pero para que una empresa se decida en una inversión no hay nada como minimizar el riesgo de dicha inversión, así que propuse al proveedor una implicación económica: que una parte de la facturación de la inversión fuese ligada al retorno de dicha inversión. La respuesta que fue un no: “No entra en nuestra filosofía de trabajo”. Yo les comenté que deberían estudiar cambiar su filosofía de trabajo ya que estaban demostrando que no tenían capacidad de adaptación al cliente.

Por supuesto, la respuesta del cliente fue desechar su opción, elegir una opción más barata y quizás con menos potencial, pero minimizando el riesgo.

Si tú tienes una empresa de servicios y estás seguro de que tu producto garantiza una rentabilidad a tu cliente deberías estudiar si debes incluir esta opción en ciertas operaciones. Tendrás una ventaja competitiva, ganarás cuota de mercado y saldrás más fortalecido de la crisis que tu competencia.

Si por el contrario no puedes hacer esto, revisa tu oferta. Es muy probable que no estés ofreciendo lo mejor a tus clientes.

jueves, 31 de marzo de 2011

¿No puedes acceder al AS400 / iSeries desde Windows 7? Revisa estas 2 directivas.

Ahora que Windows 7 se extiende como la espuma, es muy habitual encontrarse con usuarios que no pueden entrar al IFS del AS400 / iSeries o tienen problemas de credenciales al acceder desde el explorador al IFS y a la QDLS a pesar de usar el mismo usuario y contraseña en ambas plataformas.

La mayoría de las veces he solucionado estos problemas ajustando dos directivas de grupo local:

- Seguridad de red: nivel de autenticación de LAN Manager
- Cliente de redes de Microsoft: enviar contraseña sin cifrar para conectar con servidores SMB de terceros.

Para acceder a las directivas teclearemos en la línea de mandatos gpedit.msc y seguiremos la siguiente ruta: Configuración del equipo / Configuración de Windows / Configuración de Seguridad / Directivas Locales / Opciones de Seguridad.

Buscaremos los valores comentados y los ajustamos. Posteriormente es recomendable reiniciar aunque existen comandos para forzar la aplicación de las directivas.

Nivel de autenticación de LAN Manager.

Esta configuración de seguridad determina el protocolo de autenticación desafío/respuesta que se usa para inicios de sesión de red.


Esta opción afecta al nivel de protocolo de autenticación usado por los clientes, el nivel de seguridad de sesión negociado y el nivel de autenticación aceptado por los servidores. Windows 7 usa por defecto el nivel de autenticación NTLMv2, por lo que hay que “estandarizar” la autentificación y usar sólo NTLMv2 en las comunicaciones donde sea posible. El valor a establecer es: Enviar LM y NTLM: usar la seguridad de sesión NTLMv2 si se negocia.

Cliente de redes de Microsoft: enviar contraseña sin cifrar para conectar con servidores SMB de terceros.


Este es el caso del AS400 / iSeries. Esta configuración de seguridad debe estar habilitada, para permitir que tu Windows 7 envíe contraseñas de texto sin formato a servidores SMB que no sean de Microsoft y que no admitan el cifrado de contraseñas durante la autenticación.


Si aún sigues teniendo problemas, comprueba que el usuario que estás usando no está deshabilitado para el acceso al servidor Netserver AS/400. Asegurate de tenerlo habilitado ejecutando la siguiente sentencia: CHGUSRPRF USRPRF(NOMBRE DEL USUARIO). Al actualizar el perfil, si está deshabilitado para acceso al servidor Netserver se habilitará automáticamente.

En otra entrada de mi blog tienes más posibles soluciones: http://archivoinformatico.blogspot.com/2011/05/mas-soluciones-para-problemas-de-acceso.html


Prueba y si a pesar de todo sigues teniendo problemas puedes mirar la documentación de IBM.
El enlace que te pongo es el de la versión 6.1:

¡¡¡ Saludos y suerte !!!

lunes, 21 de marzo de 2011

Generar PDF en AS400 / iSeries Versión 6.1 fácilmente.

Desde la versión 6.1 ya se pueden generar PDF,s fácilmente en el AS400.

Si no tienes instalado el producto INFOPRINT SERVER, esta es una opción interesantísima y con muchísimas aplicaciones para generar documentos PDF. Una de las más interesantes es la facilidad con la que puedes ubicar los archivos y nombrarlos de forma dinámica. Más adelante veremos esto.

Lo primero que debemos comprobar es que tenemos instaladas las siguientes opciones del sistema operativo.

PROGRAMA

OPCION

DESCRIPCION

5761SS1

3

Soporte de directorio base ampliado

5761SS1

33

Entorno soluc aplic portables (PASE)

5761TS1

*BASE

IBM Transform Services para i5/OS

5761TS1

1

Transformaciones - Transf de AFP a PDF

Podemos verlo en la opción 11 del menú LICPGM al que podemos acceder tecleando GO LICPGM:

El producto 5761TS1 es gratuito y viene con los CD,s del Sistema operativo.

Para generar documentos PDF el PRTF debe tener las siguientes características:

DEVTYPE(*AFPDS) TOSTMF(‘ruta donde se guardará el pdf’) WSCST(*PDF)

¿Cómo implementamos estas opciones?

Pues con CRTPRTF, CHGPRTF o bien con OVRPRTF a gusto del consumidor.

El parámetro TOSMTF

TOSTMF nos permite especificar el directorio o el nombre del archivo continuo donde irá el documento PDF generado en el IFS. Hay que tener en cuenta dos detalles importantes: Si se especifica un directorio, éste debe existir al ejecutar la aplicación y si se especifica el nombre de un archivo continuo, éste no debe existir

Un ejemplo de generación automática del nombre del fichero:

OVRPRTF FILE(QSYSPRT) DEVTYPE(*AFPDS) TOSTMF(‘/mispdf/2011’) WSCST(*PDF)

Si no indicamos nombre de fichero en el parámetro TOSTMF el fichero que se generará será QSYSPRTxxxxxx.pdf, donde xxxxxx es un valor que determina el sistema operativo para garantizar la unicidad del nombre del archivo.

Un ejemplo de generación que incluye el nombre del fichero:

OVRPRTF FILE(QSYSPRT) DEVTYPE(*AFPDS) TOSTMF(‘/mispdf/2011/as400.pdf’) WSCST(*PDF)

No se genera archivo de impresora.

Este es un aspecto a tener en cuenta. Si el fichero de impresora está preparado para generar el PDF de alguna de las tres maneras que hemos comentado, no se generará el fichero de spool. Directamente se generará el fichero pdf en el IFS.

Esta característica nos evita el tener que trabajar con colas de datos para saber si el fichero de impresora se ha procesado por el transcriptor. Detalle que en según qué situaciones es necesario asegurar para ejecutar ciertos procesos de negocio. En este caso sabemos que en cuanto se cierre el fichero de impresora el pdf está generado.

¿No tienes suficiente?

Sinceramente, creo que esta es una interesantísima opción que nos permite dejar volar la imaginación para aplicarla a ciertos procesos de negocio.

En cualquier caso, si necesitas opciones más puntuales necesitarás ver si el IBM Infoprint Server te puede ayudar. Este es un programa producto bajo licencia que proporciona un superconjunto de las nuevas funciones para archivos PDF. Infoprint Server te permite muchas más opciones de manejo de archivos pdf.

sábado, 22 de enero de 2011

Enviar emails desde el iSeries - AS400 (V6R1)

Hola compañeros, hoy abordamos la tarea de configurar el iSeries-AS400 (el mejor sistema de gestión empresarial que existe) para enviar correo electrónico al exterior. En mis 20 años en el mundo AS400 ya he configurado bastantes máquinas para ello, pero hace unas semanas me tocó volver hacerlo en V6R1 y aquí tenemos los apuntes por si alguien no lo tiene todavía y le puede venir bien.

INDICE:

1. Configurar el dominio TCP/IP
2. Como decirle al iSeries a donde tiene que redireccionar los correos salientes.
a. Especificar en CHGSMTPA el nombre del servidor smtp que vamos a usar y registrar hasta 3 servidores DNS en el iSeries en la configuración del dominio (CHGTCPDMN)
b. Especificar en CHGSMTPA la dirección ip del servidor smtp que vamos a usar. En este caso no es necesario registrar DNS,s en CHGTCPDMN
3. Crear la dirección e ID de usuario que utilizarán los servicios de correo para direccionar el correo cuyo destinatario es una dirección internet, dentro de este sistema y/o la red SNADS, hasta la pasarela SMTP/MIME
4. Especificar en Atributos de la distribución la dirección e ID de usuario que utilizarán los servicios de correo.
5. Enlaces

CONFIGURAR DOMINIO TCP/IP

El mandato Cambiar dominio TCP/IP (CHGTCPDMN) se utiliza para especificar los nombres de dominio y de sistema principal TCP/IP deL iSeries y para configurar la información del Servidor de Nombres de Dominio (DNS).


En esta pantalla podemos especificar las IP de los servidores DNS a usar (Recomendable). Esto es necesario si queremos que el iSeries sepa a donde reenviar los paquetes de servidores o usuarios que no encuentre en local.

Una vez hecho esto podemos probar a ver si funciona haciendo un ping a una web, por ejemplo google:




COMO DECIRLE AL ISERIES DONDE TIENE QUE REDIRECCIONAR LOS CORREOS SALIENTES
En esta parte veremos la configuración de los atributos de SMTP (Mandato CHGSMTPA) usando el iSeries Navigator. Todas estas tareas tienen su correspondiente mandato del Sistema Operativo del iSeries, los cuales suelo usar preferentemente, aunque el iNavigator es más intuitivo.

Seleccionamos Red -> Servidores -> TCP/IP en el Servidor SMTP elegimos ver Propiedades haciendo click con el botón derecho.


En las propiedades SMTP vemos varias pestañas. En la pestaña GENERAL comprobaremos que está activada la opción “Iniciar cuando se inicia TCP/IP” por motivos evidentes.



En la pestaña “Restricciones de retransmisión” podremos indicar quien puede retransmitir correos e incluir diversas opciones, como, por ejemplo, diversos rangos de IPs autorizadas para retransmitir correos.




En esta pestaña podremos referenciarnos a diversas listas negras y además crearnos nuestra propia lista negra.

En la pestaña de autentificación indicaremos el host que usaremos para enviar los correos, así como el usuario y la contraseña, de forma muy similar a la de un cliente de correo.



CREAR EL USUARIO QUE UTILIZARAN LOS SERVICIOS DE CORREO DEL iSERIES
Lógicamente se crea con el mandato CRTUSRPRF, siendo recomendable crear un usuario exclusivo para esta tarea y con menú inicial “*SIGNOFF”.
Añadir el usuario al directorio de distribución con WRKDIRE o bien directamente con ADDDIRE. A continuación vemos el ejemplo del usuario típico que tendrá más de un iSeries:
ADDDIRE USRID(INTERNET GATEWAY) USRD(’Allow SNDDST to send INTERNET Mail’) SYSNAME(INTERNET) MSFSRVLVL(*USRIDX) PREFADR(NETUSRID *IBM ATCONTXT)

En el ID Usuario y dirección debemos poner el usuario y el nombre del sistema, en nivel de servicio de correo un 2 y en dirección preferida un 3.
Con F19 iremos a los nombres SMTP, también accesible a través del mandato WRKNAMSMTP.

Para una información más detallada acerca de esta última tarea podemos ver el artículo

ESPECIFICAR EN LOS ATRIBUTOS DE LA DISTRIBUCION LA DIRECCION E ID DEL USUARO QUE UTILIZARAN LOS SERVICIOS DE CORREO
CHGDSTA SMTPRTE(INTERNET GATEWAY)

Ya podemos probar a enviar correo, aquí tenemos un ejemplo de envío de correo, en este caso, un documento de una carpeta:
SNDDST TYPE(*DOC) DSTD(descripción) TOINTNET(buzon@dominio.com) DOC(documento) FLR(carpeta)


ADDSMTPLE TYPE(*HOSTAUTH) HOSTNAME(susistema.realm.com) USERNAME(receiver) PASSWORD(xxxx)

Convertir tipos de archivo para enviarlos con SNDDST A medida que el servidor iSeries adquiere un papel más destacado en Internet, se requiere un método que permita enviar información fácilmente del OS/400 a los clientes de correo electrónico. Dando por supuesto que el archivo en spool se ha creado previamente y que el archivo físico y la carpeta ya existen, debe convertir el archivo a un formato que se pueda enviar. Las conversiones se realizan utilizando mandatosiSeries, tal como se muestra más abajo. Mueva el archivo en spool a un archivo físico de base de datos.

CPYSPLF FILE(archivoSpl) TOFILE(archivoDB) JOB(trabajo3/trabajo2/trabajo1) SPLNBR(númeroSpool) TOMBR(miembro)

Mueva el archivo físico de la base de datos a una carpeta.
CPYTOPCD FROMFILE(bib/archivoDB) TOFLR(carpeta) FROMMBR(miembro) REPLACE(*YES)

Envíe el documento con el mandato SNDDST, que tiene varias opciones. Este mandato es el más sencillo para enviar una distribución, pero en los enlaces de más abajo vereis que existe una API que es mucho más completa y que particularmente recomiendo.

SNDDST TYPE(*DOC) TOUSRID(direcciónUsuario) DSTD(MAIL) DOC(miembro) FLR(carpeta)

ENLACES
Hay muchos enlaces relacionados, tan sólo hay que buscar SMTP iSERIES en Google, pero os recomiendo dos de ellos interesantes para seguir en el tema. Es posible que no sean los mejores, pero hace muchos años ya que el primero de ellos me sirvió para usar el SMTP Server del AS400 en versión V4R4.

En la siguiente dirección (toda una institución en el mundo AS400 / iSeries) teneis más información sobre el tema, relativo a versiones anteriores.

Y para entrar totalmente en faena y ampliar la información también tenemos el IBM i Information Center (este enlace corresponde a la versión V6R1):

Saludos y suerte, amigos.