VMware Cloud Community
limivorous
Contributor
Contributor

Report Generation Error: Unable to commit the transaction

Hi,

In my particular case i am running an Oracle database (11g) with the chargeback software on a seperate server.

Trying to run a report says "Unable to commit the transaction" and from looking in the logs (C:\Program Files (x86)\VMware\VMware vCenter Chargeback\apache-tomcat-6.0.29\logs\VcenterCB.log) i found this:

2011-10-14 12:16:20,046 ERROR [pool-3-thread-2] impl.GenerateReportOperation: Execution of task with id 11 ended in error.
<Response>
  <Error majorErrorCode="404" minorErrorCode="152" message="Unable to commit the transaction." />
</Response>
at com.vmware.vim.vcenter.das.transaction.impl.HibernateTransactionImpl.commit(HibernateTransactionImpl.java:55)
at com.vmware.vim.vcenter.das.utils.DBTransaction.execute(DBTransaction.java:67)
at com.vmware.vim.vcenter.chargeback.reporting.buslogic.ReportingDataAccess.saveReportData(ReportingDataAccess.java:319)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.ReportXmlDataHandler.flushXMLDataToDB(ReportXmlDataHandler.java:116)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.ReportXmlDataHandler.populateXMLDataToReport(ReportXmlDataHandler.java:61)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.doDFSTraversal(GenerateReportOperation.java:553)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.doDFSTraversal(GenerateReportOperation.java:565)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.doDFSTraversal(GenerateReportOperation.java:565)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.doDFSTraversal(GenerateReportOperation.java:565)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.doDFSTraversal(GenerateReportOperation.java:565)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.constuctReportHierarchy(GenerateReportOperation.java:503)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.calculateCostConstuctAndMerge(GenerateReportOperation.java:345)
at com.vmware.vim.vcenter.chargeback.reporting.operation.impl.GenerateReportOperation.run(GenerateReportOperation.java:120)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at com.vmware.vim.vcenter.das.transaction.impl.HibernateTransactionImpl.commit(HibernateTransactionImpl.java:48)
... 15 more
Caused by: java.sql.BatchUpdateException: ORA-01691: unable to extend lob segment CHARGEBACK.SYS_LOB0000086098C00006$ by 128 in tablespace CHARGEBACK
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10070)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:213)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 23 more

Which is a scarey mess of a log file except for the bit where it says:

Caused by: java.sql.BatchUpdateException: ORA-01691: unable to extend lob segment CHARGEBACK.SYS_LOB0000086098C00006$$ by 128 in tablespace CHARGEBACK

So, in other words, the tablespace "CHARGEBACK" is full and it cant put the report in that tablespace. When it tries to extend the tablespace to put the data in their it is not allowed to (probably by Oracle). I now need to go and check the Oracle server and find out why the tablespace is not automatically extending!

Hope that helps someone as it took me a while to figure out that the nested error was actually oracle and not Chargeback.

Reply
0 Kudos
1 Reply
limivorous
Contributor
Contributor

To clean this up (and finish talking to myself) the particular tablespace was not set to autoextend.

When creating tablespaces in Oracle it's worth checking after you have installed Chargeback to ensure that the tablespace you have installled against is set to auto extend.....

Reply
0 Kudos