J'ai une application web qui tourne sur WAS 7.0 et qui fonctionne sans problème pendant quelques semaines. Tout à coup, elle commence à émettre des SocketExceptions lorsqu'elle essaie d'exécuter un PreparedStatement contre MS SQL 2005. Dans un premier temps, nous avons commencé à examiner certains problèmes évidents qui pourraient être à l'origine de ce problème, comme la non-fermeture d'une connexion, le redémarrage du serveur, la taille du pool de connexions, etc. Mais rien n'est apparu. Nous avons essayé la tentative de connexion de WAS dans le pool, mais cela n'a pas fonctionné. Il n'y a pas de corrélation cohérente avec les redémarrages de serveurs.
Nous utilisons WAS 7 et l'application utilise JSF 1.2. Voici le code affecté suivi de la trace de la pile.
try {
conn = DBManager.getInstance().getInpatientConnection();
String sql = "select * from Reviews where datediff(y,reviewedDate,getDate()) < 30";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
reviewed.add(rs.getString("authNum"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBManager.clean(conn, rs, ps);
}
La trace...
0000002a SystemErr R Caused by: java.lang.ClassCastException: java.net.SocketException incompatible with java.sql.SQLException
0000002a SystemErr R at com.microsoft.sqlserver.jdbc.SQLServerPooledConnection.notifyEvent(Unknown Source)
0000002a SystemErr R at com.microsoft.sqlserver.jdbc.SQLServerConnection.notifyPooledConnection(Unknown Source)
0000002a SystemErr R at com.microsoft.sqlserver.jdbc.DBComms.transmit(Unknown Source)
0000002a SystemErr R at com.microsoft.sqlserver.jdbc.IOBuffer.sendCommand(Unknown Source)
0000002a SystemErr R at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
0000002a SystemErr R at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
0000002a SystemErr R at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(Unknown Source)
0000002a SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteQuery(WSJdbcPreparedStatement.java:1099)
0000002a SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:720)
0000002a SystemErr R at com.bcbst.ipct.controllers.MemberListingController.initReviews(MemberListingController.java:266)
0000002a SystemErr R at com.bcbst.ipct.controllers.MemberListingController.<init>(MemberListingController.java:251)
0000002a SystemErr R at java.lang.J9VMInternals.newInstanceImpl(Native Method)
0000002a SystemErr R at java.lang.Class.newInstance(Class.java:1345)
0000002a SystemErr R at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:190)
0000002a SystemErr R ... 66 more
Je ne sais pas quelles autres informations fournir. Faites-moi part de toute autre information que vous jugez pertinente. J'ai fait des tonnes de recherches sur Google et je n'ai rien trouvé d'utile.
TIA