java.sql.SQLException

Hola, soy nuevo en javamexico.org =), he tenido un problema con mi aplicacion web, y buscando en la internet me he encontrado con esta gran pagina de javamexico.org, bueno... ojala pudieran ayudarme porque no encontro la posible causa.

Tengo una aplicacion que corre en Weblogic 10 R 3, estoy utilizando SYBASE como BD y el framework de ibatis 2.x.x.
Mi aplicacion lee un archivo plano, hace un ciclo donde inserta registro por registro (200 registros aprox), como les decia uso el framework de ibatis para los inserter,updates,delete,procedimientos etc, pero el ibatis usa und Datasource weblogic (por lo tanto weblogic usa sus propios ODBC para conectarse SYBE).

El problema es que en el ciclo cuando hace los insert me marca la siguiente excepcion.

java.sql.SQLException: JZ006: Caught IOException: com.sybase.jdbc3.jdbc.SybConnectionDeadException: JZ0C0: Connection is already closed.
at com.sybase.jdbc3.jdbc.ErrorMessage.createIOEKilledConnEx(Unknown Source)
at com.sybase.jdbc3.jdbc.ErrorMessage.raiseErrorCheckDead(Unknown Source)
at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source)
at com.sybase.jdbc3.tds.Tds.new(Unknown Source)
at com.sybase.jdbc3.tds.Tds.doCommand(Unknown Source)
at com.sybase.jdbc3.tds.Tds.endTransaction(Unknown Source)
at com.sybase.jdbc3.jdbc.SybConnection.rollback(Unknown Source)
at weblogic.jdbc.wrapper.PoolConnection_com_sybase_jdbc3_jdbc_SybConnection.rollback(Unknown Source)
at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.rollback(JdbcTransaction.java:72)
at com.ibatis.sqlmap.engine.transaction.TransactionManager.end(TransactionManager.java:87)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:734)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:176)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:153)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.autoEndTransaction(SqlMapExecutorDelegate.java:835)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:464)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:66)

Mi aplicacion alcanza a insertar algunos registros, pero por alguna razon no hace todos, al parecer la conexion con la base de datos se cierra, ¿pero no sé por qué?... cualquier ayuda que me pudiera proporcionar se los agradeceria mucho.. =D

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Rollback

Por ahi en el stack trace aparece una llamada a un rollback. Probablemente uno de los INSERTs falla, se hace rollback en ese momento, se devuelve la conexión al pool (o se cierra, para el caso es lo mismo) pero por alguna razón el ciclo continúa y el siguiente INSERT falla porque ya no hay conexión.

Imagen de neko069

Aun mas claro...

concuerdo con ezamudio, sin embargo, seria bueno que postearas tu codigo (si tu trabajo te lo permite, claro) para ver como codificas tu ciclo, y como manejas las excepciones...

Re: java.sql.SQLException

1) En Internet aparece con cierta frecuencia dicho error precisamente al escribir código que transfiere datos hacia/desde la BD desde/hacia un archivo de texto.
2) Quienes reportan haberlo solucionado señalan un cambio en el encoding del archivo de texto haciéndolo coincidir con el de la BD, de manera que no existan errores de conversión.

Saludos

Javier Castañón