[gx-l] Daemon - Demonio en Java

1,017 views
Skip to first unread message

asaa...@antel.com.uy

unread,
Mar 26, 2007, 1:43:56 PM3/26/07
to gx...@gxtech.com.uy
Venerables:
 
    El desafio del dia lunes es el siguiente. Tengo que armar un procedimiento que se ejecute una vez al dia, a una hora X. La consulta, es posible que solo con Gx haga el proc en Java y quede corriendo en el servidor (y como "demonios" lo hago?) o tengo que hacer alguna cosilla mas extra-GX para que eso pueda funcionar?
 
Gracias a todos como siempre!
 
Saludos,
 
Andrés Saavedra

Este e-mail y cualquier posible archivo adjunto está dirigido únicamente al destinatario del mensaje y contiene información que puede ser confidencial. Si Ud. no es el destinatario correcto por favor notifique al remitente respondiendo este mensaje y elimine inmediatamente el e-mail y los posibles archivos adjuntos al mismo de su sistema. Está prohibida cualquier utilización, difusión o copia de este e-mail por cualquier persona o entidad que no sean las específicas destinatarias del mensaje. ANTEL no acepta ninguna responsabilidad con respecto a cualquier comunicación que haya sido emitida incumpliendo nuestra Política de Seguridad de la Información.

. . . . . . . . .

This e-mail and any attachment is confidential and is intended solely for the addressee(s). If you are not intended recipient please inform the sender immediately, answering this e-mail and delete it as well as the attached files. Any use, circulation or copy of this e-mail by any person or entity that is not the specific addressee(s) is prohibited. ANTEL is not responsible for any communication emitted without respecting our Information Security Policy.

Calvet Rodrigo

unread,
Mar 26, 2007, 2:36:11 PM3/26/07
to gx...@gxtech.com.uy
Andrés, la forma en que lo resolvemos acá es generando un procedimiento main y colocando una tarea programada de windows que corra dicho procedimiento en el momento que se desee en el servidor. Si es esto lo que necesitas avisame y te puedo dar una mano para configurar la tarea.
 
Saludos
 
Rodrigo

From: asaa...@antel.com.uy [mailto:asaa...@antel.com.uy]
Sent: Lunes, 26 de Marzo de 2007 02:44 p.m.
To: gx...@gxtech.com.uy
Subject: [gx-l] Daemon - Demonio en Java

Nelson Corbo

unread,
Mar 26, 2007, 3:00:39 PM3/26/07
to gx...@gxtech.com.uy
Una tarea programada que corra tu proc Java diariamente a la hora que lo necesitas, esta opción tiene como ventaja que tu proceso no tiene que estar en espera todo el día

Nelson Corbo
Information Services 
Rüsch Uruguay Ltda. 
Address: Cno. Carrasco 7365
         Montevideo - Uruguay
         CP 12100
Phone:   +598-2-601 9835


asaa...@antel.com.uy escribió:

asaa...@antel.com.uy

unread,
Mar 26, 2007, 3:02:03 PM3/26/07
to gx...@gxtech.com.uy
Gracias, pero lo que necesito corre bajo un mainframe...evidentemente veo que algo 100 % genexus para esto no debe haber, se debe tener que sincronizar con alguna otra aplicacion....


De: Calvet Rodrigo [mailto:Calvet...@JohnDeere.com]
Enviado el: Lunes, 26 de Marzo de 2007 03:36 p.m.
Para: gx...@gxtech.com.uy
Asunto: RE: [gx-l] Daemon - Demonio en Java

Silvia A. García Cabrera

unread,
Mar 26, 2007, 3:07:54 PM3/26/07
to gx...@gxtech.com.uy
Hola Andrés,
 
Hay forma de hacer lo que requieres:
 
1. En Genexus, generas tu procedimiento (no debe recibir parametros, debe ser main y la propiedade Call Protocol = Command Line)
 
2. Para programarlo, depende de tu sistema operativo, si es Windows solo utiliza las Tareas Programadas o en Linux puedes utilizar los comandos CRON, ahí puedes definir la frecuencia y hora de ejecución
 
Saludos,
 
Silvia García Cabrera 
 


De: asaa...@antel.com.uy [mailto:asaa...@antel.com.uy]
Enviado el: Lunes, 26 de Marzo de 2007 11:44 a.m.
Para: gx...@gxtech.com.uy
Asunto: [gx-l] Daemon - Demonio en Java

Aluziner

unread,
Mar 26, 2007, 3:10:40 PM3/26/07
to gx...@gxtech.com.uy
Lo mas sencillo es usar el programador de tareas de windows, creas una tarea que corra el ejecutable que hiciste en gx, y le programas la hora de ejecucion y le indicas que se ejecute diariamente, es muy sencillo, checa la ayuda de windows.

Salu2


El día 26/03/07, Calvet Rodrigo <Calvet...@johndeere.com> escribió:



--
Solo hay 2 cosas infinitas: El universo y la estupidez, y no estoy seguro de la primera. Einstein.

BeTo

unread,
Mar 26, 2007, 3:37:23 PM3/26/07
to gx...@gxtech.com.uy
Crea una pequeña aplicacion que se actualize cada 5 segundos (autorefresh),
y verifica si es la hora correcta.
Cuando se la hora hace un CALL al programa que quieres que se ejecute.

Saludos

El día 26/03/07, asaa...@antel.com.uy <asaa...@antel.com.uy > escribió:

asaa...@antel.com.uy

unread,
Mar 26, 2007, 3:56:36 PM3/26/07
to gx...@gxtech.com.uy
Excelente, voy a probar, muchas gracias!!


De: Silvia A. García Cabrera [mailto:sga...@gsite.com.mx]
Enviado el: Lunes, 26 de Marzo de 2007 04:08 p.m.
Para: gx...@gxtech.com.uy
Asunto: RE: [gx-l] Daemon - Demonio en Java

Carlos Do Carmo

unread,
Mar 26, 2007, 4:25:04 PM3/26/07
to gx...@gxtech.com.uy

Como estan.

Tengo una consulta para hacerles

Tengo una TRN Caja

Que seria algo asi

            Caja

                        CajaId  

                        CajaFchApertura

                        CajaSaldoIni

                       

Que tiene 2 sub niveles por ej

 

            Movtos

                        MovId ------> Es la clave de la TRN Movimientos

 

            Gastos

                        GastoId

                        GastoFch

                        GastoHora

                        ……

 

Lo que quiero es al listar los movimientos realizados en la caja me liste ordenado por fecha y hora, o sea que si se realizo una Factura a la hora 10:00 y después un gasto a las 10:05 y después otra factura a las 10:06

 

Me muestres ordenado por la hora, la forma que yo realizo esto es hacer dos for each, primero recorro los movimiento y en el otro los gastos, no me queda ordenado

 

Espero haberme explicado bien

 

saludos

 

 

 

Carlos Do Carmo

      Programador

msn: carly_d...@hotmail.com
yahoo: carly_do_carmo
icq: 225966736

asaa...@antel.com.uy

unread,
Mar 26, 2007, 5:20:00 PM3/26/07
to gx...@gxtech.com.uy
Comprendo tu ayuda pero lo que pasa que autorefresh es solo aplicaciones bajo plataforma WIN


De: BeTo [mailto:gxb...@gmail.com]
Enviado el: Lunes, 26 de Marzo de 2007 04:37 p.m.
Para: gx...@gxtech.com.uy
Asunto: Re: [gx-l] Daemon - Demonio en Java

Parés SA / Dep. Informática

unread,
Mar 27, 2007, 2:36:36 AM3/27/07
to gx...@gxtech.com.uy
son dos subfiles paralelos o anidados?
 
Eduard

Enrique Almeida

unread,
Mar 27, 2007, 8:18:04 AM3/27/07
to gx...@gxtech.com.uy
Andres:
Hay un SAC medio viejo que explica como hacer demonios en java...
Lo use hace mucho, no lo he necesitado en las ultimas versiones...

SAC  #  8415 Tipo : Feature 17/07/2000     
Descripción : Ejecución de procedimientos java como 'daemons'.  
  
Descripción Detallada  

A partir de la versión ceibo RC del generador java, se implementó una forma de ejecutar procedimientos Java como 'daemons' desde fuera de GeneXus.

Hay que poner en la consola de DOS lo siguiente:

java com.genexus.GXDaemon -t:<segundos> <nombre del procedimiento GeneXus>

por ejemplo:

java com.genexus.GXDaemon -t:10 com.artech.test.acallstatel

-t:10 es cada cuantos segundos lo ejecuto.

La idea es que ejecuto el proc, espero 10 segundos, lo vuelvo a ejecutar, etc. O sea, no es que dispare una ejecución cada 10 segundos, sino que espero eso después que terminó de ejecutar. Por ahora el procedimiento no puede tener parámetros.

Hay que tener en el classpath los drivers, clases de GeneXus, etc.
  

SAC Relacionados  Text Block  

  SAC  Descripción  
10834 Instalación de aplicaciones Java como servicio NT.



El 26/03/07, asaa...@antel.com.uy <asaa...@antel.com.uy> escribió:
> emitida incumpliendo nuestra Política de Seguridad de la Información.. . . .

> . . . . .
> >
> >
> > This e-mail and any attachment is confidential and is intended solely for
> the addressee(s). If you are not intended recipient please inform the sender
> immediately, answering this e-mail and delete it as well as the attached
> files. Any use, circulation or copy of this e-mail by any person or entity
> that is not the specific addressee(s) is prohibited. ANTEL is not
> responsible for any communication emitted without respecting our Information
> Security Policy.
> >
> > Este e-mail y cualquier posible archivo adjunto está dirigido únicamente
> al destinatario del mensaje y contiene información que puede ser
> confidencial. Si Ud. no es el destinatario correcto por favor notifique al
> remitente respondiendo este mensaje y elimine inmediatamente el e-mail y los
> posibles archivos adjuntos al mismo de su sistema. Está prohibida cualquier
> utilización, difusión o copia de este e-mail por cualquier persona o entidad
> que no sean las específicas destinatarias del mensaje. ANTEL no acepta
> ninguna responsabilidad con respecto a cualquier comunicación que haya sido
> emitida incumpliendo nuestra Política de Seguridad de la Información.. . . .

> . . . . .
> >
> >
> > This e-mail and any attachment is confidential and is intended solely for
> the addressee(s). If you are not intended recipient please inform the sender
> immediately, answering this e-mail and delete it as well as the attached
> files. Any use, circulation or copy of this e-mail by any person or entity
> that is not the specific addressee(s) is prohibited. ANTEL is not
> responsible for any communication emitted without respecting our Information
> Security Policy.
>
>
>
> Este e-mail y cualquier posible archivo adjunto está dirigido únicamente al
> destinatario del mensaje y contiene información que puede ser confidencial.
> Si Ud. no es el destinatario correcto por favor notifique al remitente
> respondiendo este mensaje y elimine inmediatamente el e-mail y los posibles
> archivos adjuntos al mismo de su sistema. Está prohibida cualquier
> utilización, difusión o copia de este e-mail por cualquier persona o entidad
> que no sean las específicas destinatarias del mensaje. ANTEL no acepta
> ninguna responsabilidad con respecto a cualquier comunicación que haya sido
> emitida incumpliendo nuestra Política de Seguridad de la Información.. . . .

> . . . . .
>
>
> This e-mail and any attachment is confidential and is intended solely for
> the addressee(s). If you are not intended recipient please inform the sender
> immediately, answering this e-mail and delete it as well as the attached
> files. Any use, circulation or copy of this e-mail by any person or entity
> that is not the specific addressee(s) is prohibited. ANTEL is not
> responsible for any communication emitted without respecting our Information
> Security Policy.


--
Saludos,
Enrique Almeida
Concepto
http://ealmeida.blogspot.com/

Edgar Jimenez

unread,
Mar 27, 2007, 9:20:45 AM3/27/07
to gx...@gxtech.com.uy
Quizas puedas cargar todos los movimientos en un SDT y luego orderar el mismo.
 
Saludos

 
--
Edgar Jimenez Demestri

Esteban Carle

unread,
Mar 27, 2007, 1:36:34 PM3/27/07
to gx...@gxtech.com.uy

Otra forma es usar la funcion  sleep()   y que el proc. Quede corriendo dentro de un loop que se ejecuta cada x  segundos.  

 

Igual son mejores las soluciones basadas en el S/O   (cron, Schedule)

 

Saludos

Esteban Carle

Esteban Carle

unread,
Mar 27, 2007, 1:38:31 PM3/27/07
to gx...@gxtech.com.uy

Si estas en ANTEL, pedi que lo corran con CL del mainframe, y ejecutas la secuencia de commandos que precises.

 

Saludos

Esteban Carle

Colmenero

unread,
Mar 27, 2007, 3:51:10 PM3/27/07
to gx...@gxtech.com.uy
Creo que se te facilitaria si manejas una estructura diferente, hice algo parecido(punto de venta) donde manejas difrentes cajas y diferentes turnos. Definí un catalogo de cajas y un catalogo de turnos y una trasaccion de control de turno; en esta transaccion especificas que caja y que turno vas, a usar la hora y el dia de inicio del turno asi como posteriormente la hora y dia de finalizacion. En tu transaccion de punto de venta incorporas tu turno y defines como llaves el folio y el tipo de movimiento(para lo cual haces otro catalogo de tipo de movimientos ,factura, cotizacion, pedido, apartado, diferentes gastos, etc) esto lo hace mas versatil ya que puedes estar incorporando conceptos por los cuales puedes filtrar sin tener que reprogramar.
Es solo una idea.
S2.

Gabriel Medina

unread,
Mar 29, 2007, 6:51:13 AM3/29/07
to gx...@gxtech.com.uy
Carlos,


La forma de poder ordenar una serie de elmentos, es que
estos elementos esten en un lugar comun, Tabla, Vector, SDT,.... etc.

Creo que al tenerlos separados (en Gastos/Movimientos, etc) no puedes
recorrer simultaneamente los dos arreglos.

Si todavia estas en etapa de diseño podrias analizar la posibilidad de tener un
solo subfile que se denomine movimientos y alli tengas todos los movimientos
relacionados con caja, incluidos los gastos.


Caja.TRN
CajId*
CajFech
   (MovId*
    MovTipo  //"GASTO/FACT/RECI...."
    Mov....
    MovFech  //No estaria mal tener la fecha de Caja Redundante
    MovHora 
     ....)



-----------------------------------------
Tabla Temporaria

Orde.TRN
OrdCodi*
OrdFech
OrdHora
OrdTipo //"GAST","MOVI","...."
OrdIden //Key del Movimiento /gasto
Ord.....
Ord... //Todos los datos que quieras listar en tu caja ordenada
....
OrdMonto

Esta tabla tiene un indice de "OrdenDeseado"
OrdFech+OrdHora+OrdTipo+OrdIden

---------------------------------------------

El Proceso de Carga de esa tabla podria ser
a) Batch (Final del Dia, p.e.)
Este proceso,...
  1. Borra toda la tabla
  2. Agrega Movimientos
  3. Agrega Gastos
  4. ----------------

b) Podrias hacer un proc que va actualizando permantemente esta tabla Orde
Cada Movimientos o Gasto que tenga que ver con la caja llama a un
procedimiento que agrega este movimiento en la tabla "ORDE.TBL",
En cualquier mome

Otro procesos,...
Recorre la tabla por el "OrdenDeseado" emitiendo el reporte deseado.


Saludos,

gab
--
Saludos,

gab

Otra Definicion de AJAX y Pequeños Ejemplos.
http://blog.smaldone.com.ar/2006/12/11/ajax-no-es-ajax/

Diego Fara

unread,
Mar 29, 2007, 2:42:22 PM3/29/07
to gx...@gxtech.com.uy
Creo que lo más Indicado para este caso es utilizar un SDT con los
campos Fecha y Hora, Importe y Tipo de Movimiento (Mov/Gto), llenarlo
con los datos de las dos tablas y utilizar el método Sort para
ordenarlo por Fecha y Hora.

El 26/03/07, Carlos Do Carmo <car...@adinet.com.uy> escribió:

-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,1
Por consultas owner...@gxtech.com.uy

jfo...@toolnology.com

unread,
May 11, 2018, 12:13:11 PM5/11/18
to GeneXus
Rodrigo muy buenos Dias 

Estoy buscando la manera de crear una tarea programada compilando en GX15U9 JAVA desplegada Windows.

En .NET yo tengo mi procedimiento como main Program = True y Call Protocol = Command Line. esto me genera un .exe y desde windows creo un .bat que ejecuta el .exe de esta forma queda mi tarea programada pero en .C#

En JAVA al igual que en .NET yo tengo mi procedimiento como main Program = True y Call Protocol = Command Line. esto me genera un aprc_test.java y otro archivo aprc_test.class al intentar usar el mismo codigo utilizado en el .bat reemplazando respectivamente los path y extenciones correspondientes, el procedimiento no se ejecuta ni tampoco me muestra un error. 

agradezco si me pudieran colaborar con este caso. 

Cordialmente 
César Forero
Reply all
Reply to author
Forward
0 new messages