APRINTER() se cuelga en Windows Server 2008 R2 bajo Terminal Service

267 views
Skip to first unread message

Victor Espina

unread,
Jul 9, 2014, 1:44:38 PM7/9/14
to publice...@googlegroups.com
Amigos, tengo una aplicacion hecha en VFP9 que ejecuta via Terminal Service desde un servidor Windows Server 2008 R2.  Hasta el dia de ayer todo funcionaba bien, pero hoy los usuarios empezaron a reportar que la aplicacion no se ejecutaba aunque si quedaba en memoria.

Al revisar el log veo que la aplicacion se esta quedando colgada al obtener la lista de impresoras instaladas con APRINTER().  Ejecute el VFP directo en el servidor y, efectivamente, la llamada a APRINTERS() no termina, pero tampoco da error.

Alguien se ha topado con esto antes?  alguna idea de cual puede ser el problema?  driver de impresion defectuoso?  cambios en la configuracion de seguridad del servidor?


Saludos

Victor Espina

Staff de Desarrollos EfiMax

unread,
Jul 9, 2014, 2:00:46 PM7/9/14
to publice...@googlegroups.com

En algún momento tuve un problema similar; se abortaba el sistema en un equipo en particular al seleccionar una impresora resultado del aprinter() y era el nombre de la impresora que tenía un guion en el caso era una Star NX-1001 se quito el guion y listo.

 

Te recomiendo cambies el nombre sospechoso hasta que encuentran la impresora en particular que te da el problema para que puedas actuar en consecuencia; en mi caso solo quite el carácter menos y el sistema dejo de abortarse en ese PC (en las otras funcionaba ok).

 

En el caso de TS las impresoras se instalan conforme los clientes se conectan puedes ir eliminando una a una y correr VFP hasta que encuentres la del problema, total se va a instalar cuando se conecte de nuevo el pc cliente.

 

Suerte.

 

 

 

____________________________________

Carlos Omar Figueroa López

Ingeniero Industrial y de Sistemas

http://www.efimax.com.mx

Fernando D. Bozzo

unread,
Jul 9, 2014, 2:45:47 PM7/9/14
to publice...@googlegroups.com
Hola Víctor:

Yo no recuerdo haber tenido problemas con APRINTERS() en Citrix, pero sí con SET("PRINTER",N) para obtener la impresora predeterminada de Windows y de FoxPro.


Los errores que me tocaron fueron por varios motivos distintos:

- Unos creo que fueron por lo que comentó Carlos
- Otros fueron porque el usuario todavía tenía configuradas impresoras que ya no existían físicamente
- Otros fueron porque, por una optimización que permite Citrix de cargar la aplicación y dejar para lo último el mapeo de impresoras, FoxPro no podía obtener la lista (lista vacía), lo que implicó desactivar esa optimización
- Otros fueron porque en algunos servidores teníamos instalado el PdfCreator (impresora virtual) que se cargaba como única impresora, no reconociendo las que el usuario tuviera conectada (hubo que desinstalarlo del servidor)
- Otros que no recuerdo :-)

En fin, fueron muchas cosas las que tuvimos que resolver hasta dejar de tener problemas, y por supuesto, la rutina de control de errores fue fundamental para controlar la mayoría de estos errores.
En tu caso, aunque no arroje errores podés determinar la cantidad de impresoras que reconoció, que si es 0 se puede considerar un error.


Saludos.-

Antonio Meza

unread,
Jul 9, 2014, 3:26:26 PM7/9/14
to publice...@googlegroups.com
Hola Victor!!


Aunque es cara la licencia para windows server, la verdad te evitas muchos problemas a demas ya no tienes que estar instalando drivers de impresoras en el servidor, de hecho ninguna impresora y lo mejor de todo que se imprime mas rápido en conexiones lentas, no te bloquea el servidor porque no se imprimió, etc.

Se instala la versión server en el servidor y ya no tienes que instalar ninguna impresora en el servidor, y en las maquinas de los usuarios instalas la versión cliente y listo a imprimir.

Puedes bajar la versión demo, solo que esta imprime una marca en la impresión. y en la conexión del escritorio remoto del usuario no debe estar marcado Impresoras.

saludos
Antonio Meza

Victor Espina

unread,
Jul 10, 2014, 5:15:47 PM7/10/14
to publice...@googlegroups.com
Les comento que me quede con la duda, porque el cliente reinicio el servidor y el problema desaparecio.

Gracias a todos por sus respuestas.


Victor

Staff de Desarrollos EfiMax

unread,
Jul 10, 2014, 5:58:17 PM7/10/14
to publice...@googlegroups.com

Victor yo tenía muchos problemas con el servidor de impresión en un servidor con una concurrencia de unos 40 - 47 equipos remotos y cada uno de ellos aportaba ente 3 y 5 impresoras que automáticamente se instalaban en el servidor; así que por momentos podía haber una media de 150 impresoras activas, al final lo que hice fue lo siguiente.

 

- Cada 30 minutos se manda a cerrar el servicio de administración de cola de impresión

- Elimino las colas de impresión que puedan haber quedado atoradas (se van acumulando cuando el impresor del cliente no está en linea o con papel, etc.)

- Inmediatamente después mando a abrir el servicio de administración de la cola de impresión.

- Todo esto dentro de un .bat que correo cada x minutos en mi caso particular lo puse a cada 30 minutos el proceso no tarda ni 5 segundos.

 

Y en unos 5 años desde que lo puse así no he vuelto a tocar nada relacionado con el tema.

 

Adicionalmente cuando el servidor se reinicia mando a eliminar automáticamente todas las instalaciones de impresoras residuales que hayan quedado de sesiones remotas previas excepto las que deseo que prevalezcan como el de PDF's.

 

Suerte.

 

 

 

____________________________________

Carlos Omar Figueroa López

Ingeniero Industrial y de Sistemas

http://www.efimax.com.mx

 

 

 

Victor Espina

unread,
Jul 11, 2014, 10:52:46 AM7/11/14
to publice...@googlegroups.com
Gracias por el dato.  Seria mucho pedir que me enviaras el BAT que usas?

Saludos

Victor Espina

Staff de Desarrollos EfiMax

unread,
Jul 11, 2014, 11:11:00 AM7/11/14
to publice...@googlegroups.com

Déjame procurarlo y te lo hago llegar.

 

Que estés bien.

Staff de Desarrollos EfiMax

unread,
Jul 11, 2014, 9:10:22 PM7/11/14
to publice...@googlegroups.com

Victor Espina te lo envié en la mañana a tu Email personal pero no confirmaste de recibido así que lo anexo aquí:

 

net stop spooler

del %systemroot%\system32\spool\printers\*.shd

del %systemroot%\system32\spool\printers\*.spl

cd\

cd temp

del *.xml

del *.pdf

net start spooler

 

 

Suerte

Reply all
Reply to author
Forward
0 new messages