Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-02-2014, 13:00   #1
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Bloccare un file ".jar"

Ciao a tutti,

volevo sottoporvi una questione... cercherò di essere il più preciso possibile.

Ho un'applicazione scritta in JAVA che gira su una macchina con SO "Ubuntu 13.10". Gira come applicazione ".jar".

Siccome questa applicazione, sotto determinate condizioni, si blocca volevo sapere se esiste la possibilità di creare, sempre in JAVA, un'altra applicazione "supervisore" che monitora il lavoro della prima e la chiude in caso si blocchi.

Al momento uso codice scritto direttamente da SO, in sostanza uso la parola chiave "kill" per chiudere il ".jar" e poi lo faccio ripartire. Come posso by-passare questa operazione?
Grazie mille in anticipo!!!
nighe4 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 13:18   #2
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da nighe4 Guarda i messaggi
Ciao a tutti,

volevo sottoporvi una questione... cercherò di essere il più preciso possibile.

Ho un'applicazione scritta in JAVA che gira su una macchina con SO "Ubuntu 13.10". Gira come applicazione ".jar".

Siccome questa applicazione, sotto determinate condizioni, si blocca volevo sapere se esiste la possibilità di creare, sempre in JAVA, un'altra applicazione "supervisore" che monitora il lavoro della prima e la chiude in caso si blocchi.

Al momento uso codice scritto direttamente da SO, in sostanza uso la parola chiave "kill" per chiudere il ".jar" e poi lo faccio ripartire. Come posso by-passare questa operazione?
Grazie mille in anticipo!!!
La cosa migliore da fare è capire perchè l'applicazione si blocca. Hai scritto tu il programma che si blocca? Esiste un file di log?
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 13:44   #3
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Quote:
Originariamente inviato da clockover Guarda i messaggi
La cosa migliore da fare è capire perchè l'applicazione si blocca. Hai scritto tu il programma che si blocca? Esiste un file di log?
No non l'ho scritto io ma ho il codice sorgente... il problema è che per debuggarlo devo andare fisicamente sul sito dove si trova la macchina. Lo farò, ma nel mentre devo pensare a tutti i metodi che posso usare nel caso non riesca a capire come correggere il codice direttamente.
Uno dei piani (tipo piano "c") è questo che ho appena descritto.
Ho già pensato di creare un thread che supervisioni il programma che si blocca(che quindi diventerebbe un thread "figlio"), il problema è che girando su Linux, per la gestione di scheduling che ha, potrei creare dei problemi "sincronismo" fra tutti i thread che così creerò.

Per quanto riguarda il motivo che blocca l'applicazione originale, è un problema di connessione. Ho un socket che prende i dati da un server, ma se la connessione cade per più di un minuto circa il sistema si blocca... ma ripeto ancora devo debuggaarlo in locale quindi è difficile anche per me essere chiaro ed esauriente!
nighe4 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:04   #4
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Come ti è stato già detto la cosa migliore da fare è correggere il programma. L'istruzione che apre la connessione ha un parametro che consente di impostare il timeout. Se questo viene raggiunto viene sollevata un'eccezione che puoi intercettare e gestire in modo opportuno.

Per rispondere alla tua domanda poi, cosa c'è che non va con il metodo che hai già adottato?
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:10   #5
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Come ti è stato già detto la cosa migliore da fare è correggere il programma. L'istruzione che apre la connessione ha un parametro che consente di impostare il timeout. Se questo viene raggiunto viene sollevata un'eccezione che puoi intercettare e gestire in modo opportuno.
Il problema non è quando tento di aprire la connessione con il socket ma dopo che questa è già stata aperta ed è in atto già uno scambio di informazioni. Se in questa fase la connessione cade per più di un tot di tempo il sistema si blocca.

Per rispondere alla tua domanda poi, cosa c'è che non va con il metodo che hai già adottato?[/quote]

Quale metodo? Quello dei thread?
nighe4 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:10   #6
Maui78
Senior Member
 
L'Avatar di Maui78
 
Iscritto dal: Jan 2005
Messaggi: 395
Ciao
Ma l'applicazione è costituita dal solo jar o c'è un application server a monte ?
Genera dump quando si blocca ?

Io proverei a fare un thread dump del processo java per vedere dove sono bloccati i thread, o eventualmente capire se c'è qualche leak di memoria.
Infine, se l'applicazione si collega a un db, ammesso ci sia un connection pool, andrebbe visto su quest'ultimo se restano sessioni aperte con relativi lock.
Maui78 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:19   #7
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Allora vedi qui:
http://docs.oracle.com/javase/6/docs...meout%28int%29

Intendevo il metodo con il "kill".
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:28   #8
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da nighe4 Guarda i messaggi
Ho già pensato di creare un thread che supervisioni il programma che si blocca(che quindi diventerebbe un thread "figlio"), il problema è che girando su Linux, per la gestione di scheduling che ha, potrei creare dei problemi "sincronismo" fra tutti i thread che così creerò.
Questa mi sembra una supercazzola ma comunque...


Come fai ad accorgerti che il processo in esecuzione è "bloccato" per poi utilizzare il comando "kill" (kill è un comando vero e proprio) ?? Hai un tuo metodo? Il processo dice parolacce?
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:42   #9
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Quote:
Originariamente inviato da clockover Guarda i messaggi
Questa mi sembra una supercazzola ma comunque...


Come fai ad accorgerti che il processo in esecuzione è "bloccato" per poi utilizzare il comando "kill" (kill è un comando vero e proprio) ?? Hai un tuo metodo? Il processo dice parolacce?
No aspetta, il comando "kill" è eseguito dalla shell di linux.


Cmq stiamo deviando dalla mia domanda originale.
Posso bloccare un eseguibile che sta girando su un SO con un altro eseguibile?
nighe4 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:47   #10
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da nighe4 Guarda i messaggi
No aspetta, il comando "kill" è eseguito dalla shell di linux.


Cmq stiamo deviando dalla mia domanda originale.
Posso bloccare un eseguibile che sta girando su un SO con un altro eseguibile?
Nel tuo primo post hai detto "parola chiave kill". Kill è molto più di una parola chiave. Con kill puoi mandare qualunque tipo di segnale. Ed è proprio con i segnali che puoi comunicare con i processi in esecuzione sul tuo sistema operativo.
Ora ti chiedo di nuovo: "Come te ne accorgi che il tuo processo in esecuzione non funziona più come dovrebbe?"
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 14:58   #11
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Quote:
Originariamente inviato da clockover Guarda i messaggi
Nel tuo primo post hai detto "parola chiave kill". Kill è molto più di una parola chiave. Con kill puoi mandare qualunque tipo di segnale. Ed è proprio con i segnali che puoi comunicare con i processi in esecuzione sul tuo sistema operativo.
Ora ti chiedo di nuovo: "Come te ne accorgi che il tuo processo in esecuzione non funziona più come dovrebbe?"
Perché lui deve scaricare dei dati da un server collegandosi ad esso via internet.
Monitorando con uno sniffer la rete si vede che dopo che la connessione cade e viene ristabilita dopo più di un minuto, non ci sono più richieste da e verso detto server. L'applicazione non manda segnali di alcun tipo nè solleva eccezioni.
nighe4 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 15:14   #12
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Allora non puoi farci nulla. Bisogna modificare il sorgente. Questo perché un processo esterno non può sapere se il programma in esecuzione è realmente bloccato oppure semplicemente non ha nulla da fare in quel momento. A meno che non abbia un file di journaling che può essere consultato dall'esterno che dice ad esempio "ho cominciato il download", "ho terminato il download ", ecc...

Inviato da una supercazzola ed un Nexus 5 scappellato a sinistra.. con senso unico
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 15:19   #13
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Quote:
Originariamente inviato da clockover Guarda i messaggi
Allora non puoi farci nulla. Bisogna modificare il sorgente. Questo perché un processo esterno non può sapere se il programma in esecuzione è realmente bloccato oppure semplicemente non ha nulla da fare in quel momento. A meno che non abbia un file di journaling che può essere consultato dall'esterno che dice ad esempio "ho cominciato il download", "ho terminato il download ", ecc...

Inviato da una supercazzola ed un Nexus 5 scappellato a sinistra.. con senso unico
Capito destra sinistra, se per quando mi si è sbloccato il socket posso bloccarlo da dietro per via risorgimento sempre diritto!!!!
nighe4 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 15:21   #14
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Cos'è, un indovinello?

Ti ripropongo la mia domanda, cos'ha che non va il kill?
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 15:22   #15
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Vedo che hai quartato. Comunque se vuoi è molto più semplice implementare un file di journaling che far testare la rete al programma. Sono davvero poche righe di codice. A quel punto un semplicissimo script pianificato con crontab e sei a cavallo

Inviato da una supercazzola ed un Nexus 5 scappellato a sinistra.. con senso unico
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 15:40   #16
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Quote:
Originariamente inviato da clockover Guarda i messaggi
Vedo che hai quartato. Comunque se vuoi è molto più semplice implementare un file di journaling che far testare la rete al programma. Sono davvero poche righe di codice. A quel punto un semplicissimo script pianificato con crontab e sei a cavallo

Inviato da una supercazzola ed un Nexus 5 scappellato a sinistra.. con senso unico
@ daniels: non sai cos'è la supercazzola? vai su youtube!!! Gran pezzo dis toria cinematografica d'italia
non è che non posso... ma vorrei trovare anche un'altra soluzione...

Ok grazie mille!
nighe4 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 15:47   #17
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ah certo, non avevo associato

I processi si possono terminare anche "programmaticamente" (si può dire?), alcuni linguaggi potrebbero mettere a disposizione delle api portabili, con altri invece devi ricorrere a quelle del sistema operativo. Questo "monitor" vorresti farlo sempre in java?

PS. in ogni mio post ti ripeterò sempre che la retta via è quella di correggere il programma principale.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2014, 16:08   #18
nighe4
Senior Member
 
L'Avatar di nighe4
 
Iscritto dal: May 2010
Città: Ancona
Messaggi: 893
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Ah certo, non avevo associato

I processi si possono terminare anche "programmaticamente" (si può dire?), alcuni linguaggi potrebbero mettere a disposizione delle api portabili, con altri invece devi ricorrere a quelle del sistema operativo. Questo "monitor" vorresti farlo sempre in java?

PS. in ogni mio post ti ripeterò sempre che la retta via è quella di correggere il programma principale.
Sono d'accordo con il tuo suggerimento... ma dato che ancora non posso fare il debug sto pensando a tutto!!!
nighe4 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Basta una cartella e l'agente di Claude ...
OpenAI: i modelli "ragionano meglio...
Dieci morti o 100 milioni di danni: le s...
La modalità vocale di Claude lasc...
Marvel's Wolverine torna a mostrarsi con...
Aruba AI Site Manager, l'IA per gestire ...
Servono 4 chip Huawei per pareggiare una...
Crollo di benzina e diesel in Europa: le...
Il nuovo trailer del film di Resident Ev...
Star Wars Zero Company svela il cast e p...
Da 0,7 a 20 FPS: Doom domato su una CPU ...
Amazon col caldo fa pazzie: TOP 15 con p...
Lego ricrea Donkey Kong da sala giochi e...
ChatGPT ignora l'embolia polmonare: uten...
Auto nuova a soli 100 euro al mese: cos'...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v