Newsgroup: it.comp.lang.visual-basic
Titolo: [?] ActiveX EXE: come tenerlo in vita senza client?

 referenzino.
Ma guarda il caso... io non riesco a far morire un activeX-exe quando non ci
sono più clients :P
(il Roal che chiede aiuto... allora non è un'entità infallibile :))
Ciao

 in vita un server ActiveX EXE
Sicuramente l'utilizzo di COM+ sarebbe ottimale per queste tipologie
di problemi. Ovviamente su Win9x/ME non se ne fa nulla.
Ciao.

 ha scritto nel messaggio
news:9nfqo8$436$1...@lacerta.tiscalinet.it...
botta e risposta...
e se provi a impostare come startup una Sub Main() 'che non muore mai' a
livello di ActiveX exe?
ciao

 --
ben poche;
al max puoi 'temporizzare' la 'morte' del server activex;
del tipo, all'interno del loop puoi monitorare il numero di istanze
'distribuite' e se per un tot di tempo nessuna istanza č presente puoi
decidere di
1) serializzare su disco i dati eventualmente da mantenere
2) 'uccidere' il server
non so se č il tuo caso, ma in linea di max dovrebbe andare....
(p.s.: nota il linguaggio 'aulico' che utilizzo stasera... tutto tra
virgolette, mah, avrņ gią esaurite le energie ricuperate in vacanza... bah!)

referenzino.
Scusa la curiosità, ma a che ti serve (ammesso che si possa fare) un ActiveX attivo senza nessun
Client lo referenzi ?


Dai un'occhiata al server activex per crystal report che ho postato al SC.
Usa appunto una connector e resta (come deve) caricato anche dopo la
chiusura dei relativi client.
ciao
ugo

 momento della registrazione sul server?
Nel caso delle DLL (le uniche utilizzabili) e di COM+ (MTS non l'ho
mai utilizzato ma penso ci siano parecchie differenze), non serve
nulla, basta impostare gli opportuni parametri.
Ciao.

 Vuoi dire MTS su NT o Component services su 2000 ?
COM+ non credo giri su activex exe.
Se hai bisogno di un activex exe "server" nel senso che "gira sul server"
temo ti tocchi usare DCOM.
ciao
ugo

 ha scritto nel messaggio
news:9nga5u$9gt$3...@lacerta.tiscalinet.it...

p.s. Penso ti basti dare un'occhiata al codice, conoscendoti...
Se vuoi testarlo e non hai cryrep, ho messo il setup su
http://web.tiscali.it/sharevb
Se invece non ho capito nulla di ciň che volevi fare... :-(
ciao
ugo

dove vengono elencati almeno 4 modi per tenere in vita un ActiveX.
Grande Roal !
Questo articoletto sara' utile a molti. :-)
ciao, hal

 form fittizia sara' caricata ma mai visibile (il server non ha GUI)
Mi spiace leggere solo ora, ma avevo avuto lo stesso problema ed ho risolto
appunto con la tecnica del form (che diventa invisibile solo quando non ci
sono client collegati).
Al di lą di tutto .. auguri con DCOM !
Dato che č un argomento poco trattato qui sul NG che ne dici di riassumerci
le evoluzioni del tuo progetto ?
Saluti


Giusto per il gusto della speculazione, ti propongo un'ipotesi alternativa,
che risolverebbe (se funzionasse:)) ) anche il problema dello shutdown. L'ho
usata qualche anno fa, e leggendo il tuo post mi è venuta in mente.
L'unico problema è che lì stavo in multithreading e non c'erano problemi, in
Vb si dovrebbe fare qualche prova (timer o qualcosaltro). quindi voglio
precisare che è _soltanto_ un contributo alla riflessione, e potrebbe anche
essere una grande boiata.
Poichè l'ho usata parecchio tempo fa non citerò con precisione i nomi delle
varie api perchè non me li ricordo bene. Cmq chiunque fosse interessato li
troverà in 5 minuti...
Dunque, nella sub main crei un "named event", e subito dopo (ovviamente dopo
tutte le inizializzazioni del caso, la creazione della classe globale che
deve stare sempre attiva, ecc.), chiami una WaitforsingleEvent, e ti metti
in attesa di questo evento.
In questo modo sei "a riposo", e puoi anche fare lo shutdown dall'esterno
(basta un programmino che crei lo stesso evento e lo generi, l'activex exe
lo riceve, si sblocca, e termina correttamente).
Quello che non so (e purtroppo non ho avuto il tempo di fare delle
verifiche) è se l'activex fermo in attesa dell'evento risponde alle chiamate
com. Però credo che smanettando un po' si può fare...
Just my five cents
Ciao alfonso

 ? come fai (nel senso, come mai non muore) ?
L'Ax crea un form alla prima connessione, che mantiene in vita il processo.
Sai come sapere quando tutti i clients si staccano?
Nella Terminate delle classi?
Ciao

 3) Sporco Trucco© trovato su MSDN come da mia segnalazione: form
Msg-ID 7tqkg6$323s$
1...@stargate1.inet.it
 del 10/10/99 !
http://groups.google.com/groups?q=SporcoTrucco+group:it.comp.lang.visual-basic&hl=it&safe=off&scoring=d&start=10&sa=N&filter=0
:-PPPPPPPPPPPPPPPPPPP
Bye, G.

 Ah, dimenticavo, sono ben accette soluzioni alternative piu' "pulite"
Passo
ciao
ugo

 client-server...
Non stai parlando di WinSock vero ?
Saluti

 di buttare tutto e fare un vero server su TCP/IP.
Pensavo che DCOM era la strategia migliore .. cosa vuol dire fare un vero
server TCP/IP ?
Saluti

 Ciao alfonso
Bella :)
Io in genere vado di loop di attesa + doevents e (fondamentale IMHO, per non
ciucciarsi tutto il tempo di CPU) Sleep()...
Ciaotutti,
*

Credo di non aver capito niente...
Vorreste creare un istanza di una classe contenuta in un ActiveX EXE ed
averla sempre attiva? Come diavolo si fa? Quando "muore" l'applicazione
client scompare anche l'istanza... O sto dicendo ca__ate?
                            Ciao
                                    Allanon

 Ciao
Gli Exe ActiveX rimangono in vita se aprono Form o se sono referenziati dai
client.
Ti consiglio di assicurarti che ogni client setti a Nothing il riferimento
della classe base dell'EXE activeX...
e se devi creare form fallo dalla classe stessa con un un set mForm = new
MiaForm
ed un set mForm=nothing nel Terminate della classe base.
IO faccio così e funziona!!
ciao
-- 
Posted from 
ppp-165-135.15-151.iol.it
 [151.15.135.165] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 quella sezione dell'MSDN.
Quindi alla fine la mia scoperta empirica era corretta :)
Ora però il mio problema rimane (darò comunque un'occhio all'articolo
suggerito), perchè il processo mi rimane in vita anche dopo l'unload del
form.
Ciao

 form.
Anche se scarichi tutto (classi, form ecc..) il processo rimane comunque
attivo; se devi interrompere l'esecuzione del componente server hai solo 2
possibilità :
- deallochi tute le classi allocate dal client (ma se ti si impianta un
client, non hai più modo di deallocare niente)
- utilizzi END (che non è poi così malvagio in un componente server a
runtime)
Spero di aver azzeccato il problema ..
saluti

 runtime)
Last minute: non sempre end funziona. Ho avuto problemi con un programma che
nonostante l'end non terminava, dopo l'unload di tutti i form E l'end invece
si'.
Chiama ExitProcess se vuoi essere sicuro che l'applicazione muoia.
Ciaotutti,
*