Hi Folks,
I need a favor from you guys on handling large results sets. Here's my problem :
I have an employee table where there are more than 5000 employees. My application is based on Spring/Hibernate. In my Service class I have a method called "autoCancel". This method is scheduled to run everyday at off peak hours by a scheduler called "Quartz". I have a dao class where all the db ops are coded.
The autoCancel method will call a method called getEmployeeList. Then it will iterate over this list and for each element in the list it will cast the element to a EmploymentDetail object and get the employeeTerminationDate from this object. Then it will compare that date with the current date and if the termination date is after current date then it will call the cancelForm method on the dao which in turn inserts a row in the db. The cancelForm can be run independently too and it never causes any problem in doing so. It seems the session is getting closed before inserting the data in the db because of the large resultset.
Though scheduling thru Quartz is working fine but I am getting errors when when processing this huge resultset.
Following are the related code excerpts :
Service class
Code:
public void autoCancel() {
List employeeList = new ArrayList();
Calendar today = Calendar.getInstance();
System.out.println("Todays date***** "+today.toString());
// gets the employeeList from the DB
System.out.println("calling manageMRDao.getEmployeeList%%%%%%%%%");
employeeList = manageMRDao.getEmployeeList();
System.out.println("got employeeList#####size"+employeeList.size());
// iterates thru the list and checks if 15 months have passed the associates' termination date
for(int i=0;i<employeeList.size();i++) {
System.out.println("111111111111111111");
employmentDetail = (EmploymentDetail)employeeList.get(i);
System.out.println("2222222222222");
if(employmentDetail.getTerminationDate() !=null) {
System.out.println("33333333333333");
Date empTermDate = employmentDetail.getTerminationDate();
System.out.println("Employee termination date===="+empTermDate.toString());
Calendar calTerm = Calendar.getInstance();
calTerm.setTime(empTermDate);
System.out.println("Date and time for employee termination===="+calTerm.toString());
calTerm.add(Calendar.MONTH, BHPConstants.EXPIRY_PERIOD);
System.out.println("after adding 15 months to termnation date===="+calTerm.toString());
String personId = employmentDetail.getPersonMaster().getPersonId().toString();
System.out.println("person id getting processed===="+personId);
if (calTerm.after(today)) {
System.out.println("calling manageMRDao.cancelMRForm**** ");
manageMRDao.cancelMRForm(personId);
System.out.println("cancelled the form#####");
}
}
}
}
Dao classCode:
public MRFormDto cancelMRForm(String personId) {
mrAuthInfo = new MRAuthInfo();
mrFormDto.setFormSubmitted(isFormOnFile(personId));
//if(isFormCancelled(personId)){
mrFormDto.setFormActive(isFormCancelled(personId));
List personList = new ArrayList();
try {
personList = hibernateOperations.find("from PersonMaster pm where pm.personId = "+personId);
logger.debug("person id in cancel form =="+personId);
} catch (DataAccessException de) {
de.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
if(!personList.isEmpty()) {
personMaster = (PersonMaster)personList.get(0);
logger.debug("person list is not empty");
}
try {
logger.debug("iterating over the form list in db");
Iterator formInfoList = hibernateOperations.iterate("select fm from MRFormMaster fm, Oraganisation org, PersonMaster pm," +
" Subscriber sub where org.custId = sub.oraganisation.custId and sub.personMaster.personId = pm.personId" +
" and org.mrFormMaster.formId = fm.formId and pm.personId ="+personId );
while ( formInfoList.hasNext() ) {
mrFormMaster = (MRFormMaster)formInfoList.next();
logger.debug("form id====="+mrFormMaster.getFormId());
logger.debug("form master found");
}
} catch (DataAccessException de) {
de.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
mrAuthInfo.setPersonId(new Integer(personId));
mrAuthInfo.setFormId(mrFormMaster.getFormId());
mrAuthInfo.setStatus("N");
mrAuthInfo.setAllProviders("N");
mrAuthInfo.setIsExpired("Y");
mrAuthInfo.setExpiryDate(new Date());
mrAuthInfo.setEsignature(personMaster.getLastName()+personMaster.getFirstName()+personMaster.getDateOfBirth());
mrAuthInfo.setSentToIhub("Y");
mrAuthInfo.setDateSentToIhub(new Date());
mrAuthInfo.setCreatedDate(new Date());
mrAuthInfo.setCreatedBy(personMaster.getLastName()+","+personMaster.getFirstName());
mrAuthInfo.setModifiedBy(personMaster.getLastName()+","+personMaster.getFirstName());
mrAuthInfo.setModifiedDate(new Date());
mrAuthInfo.setSpouseSelected("N");
mrAuthInfo.setOtherSelected("N");
hibernateOperations.save(mrAuthInfo);
return mrFormDto;
}
public List getEmployeeList() {
List employeeList = new ArrayList();
employeeList = hibernateOperations.find("from EmploymentDetail as empdet");
return employeeList;
}
Logs
com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: ResultSet is closed.
at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.runtimeXIfNotClosed(WSJdbcResultSet.java(Inlined Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next(WSJdbcResultSet.java(Compiled Code))
at org.hibernate.impl.IteratorImpl.postNext(IteratorImpl.java:83)
at org.hibernate.impl.IteratorImpl.next(IteratorImpl.java:120)
at com.nationwide.nsbu.bh.dao.impl.ManageMRDaoImpl.cancelMRForm(ManageMRDaoImpl.java:414)
at com.nationwide.nsbu.bh.services.impl.ManageMRServiceImpl.autoCancel(ManageMRServiceImpl.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:275)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:276)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
java.sql.SQLException: ORA-01400: cannot insert NULL into ("BHP"."MR_AUTH_INFO"."FORM_ID")
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java(Inlined Compiled Code))
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:2883)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeBatch(WSJdbcStatement.java:352)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:370)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:629)
at com.nationwide.nsbu.bh.dao.impl.ManageMRDaoImpl.cancelMRForm(ManageMRDaoImpl.java:440)
at com.nationwide.nsbu.bh.services.impl.ManageMRServiceImpl.autoCancel(ManageMRServiceImpl.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:275)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:276)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
2007-11-02 06:05:51,031 WARN DefaultQuartzScheduler_Worker-1 org.hibernate.util.JDBCExceptionReporter org.hibernate.util.JDBCExceptionReporter - SQL Error: 1400, SQLState: 23000
2007-11-02 06:05:51,031 ERROR DefaultQuartzScheduler_Worker-1 org.hibernate.util.JDBCExceptionReporter org.hibernate.util.JDBCExceptionReporter - ORA-01400: cannot insert NULL into ("BHP"."MR_AUTH_INFO"."FORM_ID")
2007-11-02 06:05:51,031 ERROR DefaultQuartzScheduler_Worker-1 org.hibernate.event.def.AbstractFlushingEventListener org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:370)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:629)
at com.nationwide.nsbu.bh.dao.impl.ManageMRDaoImpl.cancelMRForm(ManageMRDaoImpl.java:440)
at com.nationwide.nsbu.bh.services.impl.ManageMRServiceImpl.autoCancel(ManageMRServiceImpl.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:275)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:276)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("BHP"."MR_AUTH_INFO"."FORM_ID")
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java(Inlined Compiled Code))
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:2883)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeBatch(WSJdbcStatement.java:352)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
... 19 more
2007-11-02 06:05:51,047 DEBUG DefaultQuartzScheduler_Worker-1 org.springframework.orm.hibernate3.SessionFactoryUtils org.springframework.orm.hibernate3.SessionFactoryUtils - Closing Hibernate Session
2007-11-02 06:05:51,047 DEBUG DefaultQuartzScheduler_Worker-1 org.hibernate.impl.SessionImpl org.hibernate.impl.SessionImpl - closing session
2007-11-02 06:05:51,047 DEBUG DefaultQuartzScheduler_Worker-1 org.hibernate.jdbc.ConnectionManager org.hibernate.jdbc.ConnectionManager - performing cleanup
2007-11-02 06:05:51,047 DEBUG DefaultQuartzScheduler_Worker-1 org.hibernate.jdbc.ConnectionManager org.hibernate.jdbc.ConnectionManager - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
2007-11-02 06:05:51,047 DEBUG DefaultQuartzScheduler_Worker-1 org.hibernate.jdbc.JDBCContext org.hibernate.jdbc.JDBCContext - after transaction completion
2007-11-02 06:05:51,047 DEBUG DefaultQuartzScheduler_Worker-1 org.hibernate.jdbc.ConnectionManager org.hibernate.jdbc.ConnectionManager - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
2007-11-02 06:05:51,047 DEBUG DefaultQuartzScheduler_Worker-1 org.hibernate.impl.SessionImpl org.hibernate.impl.SessionImpl - after transaction completion
2007-11-02 06:05:51,047 WARN DefaultQuartzScheduler_Worker-1 org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob - Could not invoke method 'autoCancel' on target object [com.nationwide.nsbu.bh.services.impl.ManageMRServiceImpl@29e7a5e2]
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Caused by:
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:370)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:629)
at com.nationwide.nsbu.bh.dao.impl.ManageMRDaoImpl.cancelMRForm(ManageMRDaoImpl.java:440)
at com.nationwide.nsbu.bh.services.impl.ManageMRServiceImpl.autoCancel(ManageMRServiceImpl.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:275)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:276)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("BHP"."MR_AUTH_INFO"."FORM_ID")
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java(Inlined Compiled Code))
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:2883)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeBatch(WSJdbcStatement.java:352)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
... 19 more
2007-11-02 06:05:51,062 DEBUG DefaultQuartzScheduler_Worker-1 org.quartz.utils.ExceptionHelper org.quartz.utils.ExceptionHelper - Detected JDK support for nested exceptions.
2007-11-02 06:05:51,062 INFO DefaultQuartzScheduler_Worker-1 org.quartz.core.JobRunShell org.quartz.core.JobRunShell - Job DEFAULT.manageMRServiceInvokingJobDetail threw a JobExecutionException:
org.quartz.JobExecutionException: Could not invoke method 'autoCancel' on target object [com.nationwide.nsbu.bh.services.impl.ManageMRServiceImpl@29e7a5e2] [See nested exception: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update]
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:290)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:622)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:629)
at com.nationwide.nsbu.bh.dao.impl.ManageMRDaoImpl.cancelMRForm(ManageMRDaoImpl.java:440)
at com.nationwide.nsbu.bh.services.impl.ManageMRServiceImpl.autoCancel(ManageMRServiceImpl.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:275)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:276)
... 3 more
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:370)
... 12 more
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("BHP"."MR_AUTH_INFO"."FORM_ID")
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java(Inlined Compiled Code))
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:2883)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeBatch(WSJdbcStatement.java:352)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
... 19 more