Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
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


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Intel e SK hynix al tavolo per un'allean...
Osservare la Luna con la NASA, anche in ...
Wallbox per auto elettriche su Amazon: d...
Il mistero della stagione degli uragani ...
La Corte di Cassazione affida i ricorsi ...
Tutti i nuovi prodotti Apple prenotabili...
DDR5, un kit da 598 a 1.215 euro in un m...
Portatile ASUS Vivobook 14 a 837,95€: AM...
Sparita da anni, AppZapper torna nel 202...
Revolut, la truffa dei dati è partita da...
Geely E2: abbiamo visto dal vivo la regi...
HUAWEI Mate XT 2, importarlo dalla Cina ...
Orpheus, la calza smart che usa la music...
La causa antitrust di Musk contro Apple ...
Nitter archiviato e XCancel sospeso tre ...
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:10.


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