Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [jsp - Oracle]

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    [jsp - Oracle]

    Ho due domande, una stupida relativa a jsp, una a oracle 9i lite.

    Domanda stupida: sono in una pagina jsp. come faccio il redirect verso un'altra pagina? ho una if che esprime la condizione che determina se quella pagina deve essere visualizzata oppure no. Quindi mi serve una cosa del genere:

    if ( !condizione) redirect("/errore.jsp");

    Ho provato response.sendRedirect ma non funziona, viene comunque caricata la pagina.

    Domanda meno stupida:
    Sto testando i vari livelli di isolamento per fare certe transazioni.
    In una classe di test, ho un metodo che fa una select, poi lo forzo ad attendere (ad esempio con una lettura da tastiera). Il codice e' una cosa del genere:
    codice:
    Connection conn = .....
    Statement s = conn.createStatement();
    conn.setAutoCommit(false);
    conn.setIsolationLevel(Connection.SERIALIZABLE);
    s.executeQuery(UNA_SELECT_STUPIDA);
    
    in.readLine(); //si blocca in attesa di input da tastiera
    
    conn.setAutoCommit(true);
    conn.setIsolationLevel(default);
    All'interno di questa transazione, mentre questa e' bloccata in attesa di input, mi connetto tramite msql, e provo a cancellare una riga, ad esempio quella referenziata dalla query. Mi aspetterei, poichè i llivello di isolamento della transazione e' serializzabile, che la connessioni manuale tramite msql rimanesse in attesa finchè la prima non ha ripristinato l'isolamento di default...invece da msql cancello tranquillamente quella riga. E questo non e' bene -.-

    Pensavo che potesse essere perchè il livello serializzabile si riferisce solo a quella istanza di connessione, per cui tutte le altre sono indipendenti da quell'isolamento...ma se cosi fosse come faccio a gestire la concorrenza tra piu connessioni?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Assodato che il problema di cui sopra dipendeva dal fatto che i due moduli operavano su connessioni diverse, ora mi si presenta un altro problema: anche se faccio condividere la stessa istanza di connessione, i livelli di isolamento sembrano non servire a una ceppa.

    inizio una transazione con livello di isolamento serializable, e mentre questa e' in corso un altro thread sulla stessa connessione cancella righe come gli pare e piace....

    qualche delucidazione?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    riuppo un thread vecchio che non ha ottenuto risposte

    nel secondo post quello che ho scritto è una vaccata, quindi siete pregati di ignorarlo.

    riprendo la seconda domanda del primo post:
    ho fatto quel test al contrario, cioè invertendo i ruoli delle connessioni. da msql ho fatto la select, e via sw ho provato a cancellare una riga, dopo aver impostato (a mano, via msql) l'isolamento a 'serializable'. Sorpresa delle sorprese...cosi tutto funziona, ovvero il sw rimane inchiodato finche:
    msql da un commit
    msql da un rollback
    msql chiude la connessione.

    Ora mi chiedevo, non è che c'e' qualcosa che non va nel metodo setTransactionIsolation, in jdbc, o cosa piu probabile, in oracle 9i lite?

  4. #4
    ti posso rispondere solo alla prima:
    codice:
    <% if (!login.hasLogin()) { %>
    	<jsp:forward page="login.jsp" />
    <% } %>
    per il resto non saprei, l'unico consiglio è verificare di aver scaricato i driver + recenti per oracle
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.