cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Odd error
Date Tue, 07 Feb 2012 18:00:11 GMT
Can you enable Cayenne SQL logging? You'll see all the SQL executed prior to the exception.

http://cayenne.apache.org/doc30/configuring-logging.html


On Feb 7, 2012, at 8:49 PM, Joe Baldwin wrote:

> Michael,
> 
> I have new info that makes this problem look even screwier.  (Please refer to the error
msgs below).
> 
> So, you might say: "so what, ... this looks like the same error".  Yes, it does! However,
I just got this error after I restarted tomcat and tried to login to my app.  There is ABSOLUTELY
no code that attempts to add/update a Product entity during a login.
> 
> Is it possible, that there is a cached operation that is attempting to be committed?
 (Sort of like a printer trying to print a job that you have already deleted.)
> 
> I have never heard of a DBMS/JDBC-lib/ORM attempting to do this, but then again, I do
not have control over the server and the techsupport dudes sound like they are very inexeprienced.
> 
> Joe
> 
> 
> 
> 
> Stacktrace:
> 	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cayenne.conf.WebApplicationContextFilter.doFilter(WebApplicationContextFilter.java:93)
> 
> root cause
> 
> org.apache.cayenne.CayenneRuntimeException: [v.3.0.1 Aug 25 2010 19:42:04] Commit Exception
> 	org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1134)
> 	org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1045)
> 	cms.SessionLogger.log(Unknown Source)
> 	cms.SessionLogger.log(Unknown Source)
> 	org.apache.jsp.staff.admin.main.AdminLoginVerify_jsp._jspService(AdminLoginVerify_jsp.java:85)
> 	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cayenne.conf.WebApplicationContextFilter.doFilter(WebApplicationContextFilter.java:93)
> 
> root cause
> 
> com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add
or update a child row: a foreign key constraint fails (`eagle1_om28`.`product`, CONSTRAINT
`product_ibfk_2` FOREIGN KEY (`packageTypeOid`) REFERENCES `packagetype` (`oid`))
> 
> 
> 
> 
> 
> On Feb 7, 2012, at 11:48 AM, Michael Gentry wrote:
> 
>> Hi Bryan,
>> 
>> I can confirm that the commit order varies.  We were seeing the issue
>> on the same environment, though.  When the AshwoodEntitySorter built
>> the object graph, it would vary from run-to-run.  Once built, it is
>> cached.  If it happens to build a proper order, you are good to go at
>> least until you restart.  For our particular issue, we had a deep
>> object graph cycle that didn't throw any exceptions.  The
>> AshwoodEntitySorter doesn't work so well with cycles.  Once we removed
>> that relationship, the problem went away.
>> 
>> mrg
>> 
>> 
>> On Mon, Feb 6, 2012 at 7:18 AM, Bryan Lewis <jbryanlewis@gmail.com> wrote:
>>> This error reminds me of something we see in our shop.  If multiple related
>>> entities are being committed together, Cayenne can sometimes commit them
>>> out of order which can cause FK constraint violations.  The commit order
>>> seems to be indeterminate; it can work as expected on a dev machine and
>>> fail in production.
>>> 
>>> Look at the SQL issued just before the error.  On one server you might see
>>> the packagetype being inserted before the product, but the other way around
>>> on the other server.  If this is the problem, the fix is to subclass the
>>> AshwoodEntitySorter as has been discussed a couple of times in the list.
>>> 
>>> 
>>> 
>>> On Sun, Feb 5, 2012 at 6:48 PM, Joe Baldwin <jfbaldwin@earthlink.net> wrote:
>>> 
>>>> 
>>>> Here is the current error (which is really odd because it is working just
>>>> fine on my dev server)
>>>> 
>>>> com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
>>>> Cannot add or update a child row: a foreign key constraint fails
>>>> (`eagle1_om28`.`product`, CONSTRAINT `product_ibfk_2` FOREIGN KEY
>>>> (`packageTypeOid`) REFERENCES `packagetype` (`oid`))
>>>> 
> 


Mime
View raw message