Thanks, Robert.

I'm installing P6Spy to see if I can determine what the statement is
that is causing the problem.   The regular Cayenne logging didn't
output anything before generating the error.

I suspect that this is not the same issue as the query itself hasn't
changed.   The only thing that would have changed recently is the
data.

On Mon, May 9, 2011 at 7:29 PM, Robert Zeigler
<[email protected]> wrote:
> I've hit something like this once, in oracle + hibernate, when I had a 
> bucket-load of joins in the query.  The driver was freaking out on one of the 
> FK values (which was NOT a large number... <10; I could reproduce it with a 
> test case where the id sequences were starting over with 1/clean db). I can't 
> tell you why the driver thought it was a numeric overflow exception.  But I 
> can say that reducing the number of joins in the query solved the problem.
> That said... it was a truly monster query (of the sort only typically 
> generated by an ORM doing lots and lots of (joint) prefetching :).
>
> HTH,
>
> Robert
>
> On May 9, 2011, at 5/95:49 PM , Mike Kienenberger wrote:
>
>> I've got a Cayenne 1.1 application that has been running fine for years.
>> Today we hit a strange error, a Numeric Overflow on a relationship list
>> fetch.
>>
>> I've looked through the tables involved (account, user_account_relationship)
>> and didn't find any large values.
>> I am still looking through other table values.  I guess maybe it's hitting
>> the problem on prefetching something else?
>>
>> Anyone have any other ideas?
>>
>>
>>
>> Caused by: org.objectstyle.cayenne.CayenneRuntimeException: [v.1.1-dev March
>> 27 2008] Query exception.
>>    at
>> org.objectstyle.cayenne.access.util.SelectObserver.nextQueryException(SelectObserver.java:213)
>>    at
>> org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:364)
>>    at
>> org.objectstyle.cayenne.access.DataDomain.performQueries(DataDomain.java:654)
>>    at
>> org.objectstyle.cayenne.access.DataContext.performQueries(DataContext.java:1408)
>>    at
>> org.objectstyle.cayenne.access.Transaction.performQueries(Transaction.java:179)
>>    at
>> org.objectstyle.cayenne.access.DataContext.performQueries(DataContext.java:1366)
>>    at
>> org.objectstyle.cayenne.access.DataRowStore.getSnapshot(DataRowStore.java:310)
>>    at
>> org.objectstyle.cayenne.access.ObjectStore.getSnapshot(ObjectStore.java:737)
>>    at
>> org.objectstyle.cayenne.access.ObjectStore.resolveHollow(ObjectStore.java:977)
>>    at
>> org.objectstyle.cayenne.CayenneDataObject.resolveFault(CayenneDataObject.java:217)
>>    at
>> org.objectstyle.cayenne.CayenneDataObject.readProperty(CayenneDataObject.java:227)
>>    at
>> com.xyz.cayenne.ebpp.entity.generated._Account.getUserAccountRelationshipList(_Account.java:1782)
>>    at
>> com.xyz.struts.ebpp.business.batch.BillingTasks.checkForNewBills(BillingTasks.java:120)
>>    at
>> com.xyz.struts.ebpp.business.batch.BillingTasks.recoverCheckForNewBills(BillingTasks.java:104)
>>    at
>> com.xyz.struts.ebpp.business.batch.TaskProcessor.processBatchJob(TaskProcessor.java:99)
>>    at
>> com.xyz.struts.ebpp.business.batch.CronBasedTaskScheduler.checkScheduledEvents(CronBasedTaskScheduler.java:449)
>>    ... 2 more
>> Caused by: java.sql.SQLException: Numeric Overflow
>>    at
>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
>>    at
>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
>>    at
>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
>>    at
>> oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:6797)
>>    at
>> oracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:106)
>>    at
>> oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:482)
>>    at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>>    at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>    at java.lang.reflect.Method.invoke(Method.java:585)
>>    at
>> org.objectstyle.cayenne.access.types.DefaultType.materializeObject(DefaultType.java:243)
>>    at
>> org.objectstyle.cayenne.access.DefaultResultIterator.readDataRow(DefaultResultIterator.java:250)
>>    at
>> org.objectstyle.cayenne.access.DefaultResultIterator.nextDataRow(DefaultResultIterator.java:194)
>>    at
>> org.objectstyle.cayenne.access.DefaultResultIterator.dataRows(DefaultResultIterator.java:224)
>>    at org.objectstyle.cayenne.access.DataNode.runSelect(DataNode.java:413)
>>    at
>> org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:350)
>>    ... 16 more
>
>

Reply via email to