Newsgroup: it.comp.java
Titolo: Unable to create PreparedStatement!

Ciao a tutti,
sto usando JBoss 2.2.2
Ognittanto pesco un'eccezione strana (mi sembra si verifichi quando il
server non viene utilizzato per un po' (tipo al mattino quando le prime
query vengono eseguite). Qualcuno sa dirmi come mai ciò avviene?
sul client:
RemoteException occurred in server thread; nested exception is:
javax.transaction.TransactionRolledbackException: Error executing SQL SELECT
SEQ_ASSISTITO.NEXTVAL FROM DUAL : java.sql.SQLException: Unable to create
PreparedStatement!; nested exception is: javax.ejb.EJBException: Error
executing SQL SELECT SEQ_ASSISTITO.NEXTVAL FROM DUAL :
java.sql.SQLException: Unable to create PreparedStatement!
sul server:
[Sequence] TRANSACTION ROLLBACK EXCEPTION:Error executing SQL SELECT
SEQ_ASSISTITO.NEXTVAL FROM DUAL : java.sql.SQLException: Unable to crea
te PreparedStatement!; nested exception is:
        javax.ejb.EJBException: Error executing SQL SELECT
SEQ_ASSISTITO.NEXTVAL FROM DUAL : java.sql.SQLException: Unable to create
Prepare
dStatement!
[Sequence] javax.ejb.EJBException: Error executing SQL SELECT
SEQ_ASSISTITO.NEXTVAL FROM DUAL : java.sql.SQLException: Unable to create
Prep
aredStatement!
[Sequence]      at
it.csi.sert.anagrafe.util.SequenceBean.getNextAssistito(SequenceBean.java:65
)
[Sequence]      at java.lang.reflect.Method.invoke(Native Method)
[Sequence]      at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
sSessionContainer.java:472)
[Sequence]      at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
ssionInstanceInterceptor.java:87)
[Sequence]      at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
[Sequence]      at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:263)
[Sequence]      at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[Sequence]      at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:19
0)
[Sequence]      at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[Sequence]      at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a:271)
[Sequence]      at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:392)
[Sequence]      at java.lang.reflect.Method.invoke(Native Method)
[Sequence]      at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241)
[Sequence]      at sun.rmi.transport.Transport$1.run(Transport.java:142)
[Sequence]      at java.security.AccessController.doPrivileged(Native
Method)
[Sequence]      at
sun.rmi.transport.Transport.serviceCall(Transport.java:139)
[Sequence]      at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:443)
[Sequence]      at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:6
43)
[Sequence]      at java.lang.Thread.run(Thread.java:484)
Il metodo dell'eccezione:
    public String getNextAssistito() throws RemoteException {
        Connection conn = null;
        PreparedStatement ps = null;
        String query = "SELECT SEQ_ASSISTITO.NEXTVAL FROM DUAL";
        try {
            conn = dataSource.getConnection();
            ps = conn.prepareStatement(query);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                return rs.getString(1);
            } else {
                throw new RemoteException("SEQ_ASSISTITO.NEXTVAL not
found.");
            }
        } catch(SQLException e) {
            throw new EJBException("Error executing SQL " + query + //linea
65
                                   " : " + e.toString());
        } finally {
            closeConnection(conn, ps);
        }
    }
Questa eccezione si verifica su qualsiasi metodo, se viene eseguita dopo un
lungo periodo di inattività del server. Cosa ne pensate?
~Jigi

 
 
Forse il DB dopo un po' si scorda dello statement che si era preparato 
in precedenza (visto che e' prepared) ed il driver non e' pronto a 
gestire la cosa (ossia a riprepararlo). Capendo poco di DB, pero', 
potrei averla sparata grossa.
uL

...


 ha scritto nel messaggio
news:GV998.44622$5M4.1...@twister2.libero.it...



---
| Bruno Bossola
| A Java Software Engineer :-)
| 
http://members.xoom.it/bbruno
| 
http://digilander.iol.it/bbossola