Re: PK problem with Postgre

From: Bryan Lewis (brya..aine.rr.com)
Date: Thu Apr 20 2006 - 17:58:32 EDT

  • Next message: lsteel..inet.net.au: "Re: PK problem with Postgre"

    Surprise to me. I use Postgres frequently and didn't run into any
    problems or custom sequences. I often switch between Oracle and
    Postgres without changing the default PK generation. My Postgres
    sequences are routine, created like so:

    create sequence pk_tablename
      INCREMENT 20 MINVALUE 1 START 200 CACHE 1;

    Why do the Postgres developers suspect Cayenne?

    Lindsay Steele wrote:

    > With Postgres, I found that I had to use a Custom Sequence - then put
    > in the sequence name and then use a Cached PK Size of 1.
    >
    > This wasn't exactly intuitive and Postgres developers think Cayenne
    > has issues - but it does seem to work.
    >
    >
    > WONDER wrote:
    >
    >> Hi,
    >>
    >> I have problem with PostGreSQL ver 8.1.3 using JDBC ver 8.2dev-501
    >> JDBC 3
    >> and Cayenne 1.2.B2.
    >>
    >> I use the Default Strategy to create the PKs using Cayenne. in the DB, i
    >> created the SEQ : pk_TableName. like pk_image for Table image.
    >>
    >> Sometimes I get the following error and sometimes it just work.
    >> Till now, I coulding find the logic behind.
    >>
    >> Anybody can help?
    >> Thanks.
    >>
    >> -------------------------------------------------
    >> Priority : INFO
    >>
    >> Class.Method(line):
    >> org.objectstyle.cayenne.access.QueryLogger.logQueryError(QueryLogger.java:43
    >>
    >> 9)
    >>
    >> Message: *** error.
    >>
    >> org.postgresql.util.PSQLException: ERROR: duplicate key violates unique
    >> constraint "image_pk"
    >>
    >> at
    >> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorI
    >>
    >> mpl.java:1513)
    >>
    >> at
    >> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.ja
    >>
    >> va:1298)
    >>
    >> at
    >> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:349)
    >>
    >>
    >> at
    >> org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statem
    >>
    >> ent.java:2559)
    >>
    >> at
    >> org.objectstyle.cayenne.access.jdbc.BatchAction.runAsBatch(BatchAction.java:
    >>
    >> 164)
    >>
    >> at
    >> org.objectstyle.cayenne.access.jdbc.BatchAction.performAction(BatchAction.ja
    >>
    >> va:114)
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAct
    >>
    >> ion.java:95)
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:309)
    >>
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataDomainFlushAction.runQueries(DataDomainFl
    >>
    >> ushAction.java:255)
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAc
    >>
    >> tion.java:177)
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:827)
    >>
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataDomain$2.transform(DataDomain.java:798)
    >>
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataDomain.runInTransaction(DataDomain.java:8
    >>
    >> 53)
    >>
    >> at org.objectstyle.cayenne.access.DataDomain.onSync(DataDomain.java:795)
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataContext.flushToParent(DataContext.java:12
    >>
    >> 17)
    >>
    >> at
    >> org.objectstyle.cayenne.access.DataContext.commitChanges(DataContext.java:11
    >>
    >> 21)
    >>
    >> at
    >> de.mrer.base.CayenneBaseComponent.commitChanges(CayenneBaseComponent.java:65
    >>
    >> )
    >>
    >> at ImageEditPage.uploadFile(ImageEditPage.java:99)
    >>
    >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    >>
    >> at
    >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
    >>
    >> )
    >>
    >> at
    >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    >>
    >> .java:25)
    >>
    >> at java.lang.reflect.Method.invoke(Method.java:585)
    >>
    >> at
    >> KeyValueCodingProtectedAccessor.methodValue(KeyValueCodingProtectedAccessor.
    >>
    >> java:54)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKe
    >>
    >> yValueCoding.java:1160)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey
    >>
    >> (NSKeyValueCoding.java:1268)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1539)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCod
    >>
    >> ing.java:498)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.va
    >>
    >> lueForKeyPath(NSKeyValueCodingAdditions.java:212)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1600)
    >>
    >>
    >> at
    >> com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOK
    >>
    >> eyValueAssociation.java:46)
    >>
    >> at
    >> com.webobjects.appserver._private.WOSubmitButton.invokeAction(WOSubmitButton
    >>
    >> .java:59)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponen
    >>
    >> tContent.java:31)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponen
    >>
    >> tContent.java:31)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponen
    >>
    >> tContent.java:31)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.j
    >>
    >> ava:55)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCompon
    >>
    >> entReference.java:104)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at com.webobjects.appserver._private.WOForm.invokeAction(WOForm.java:82)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCompon
    >>
    >> entReference.java:104)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCompon
    >>
    >> entReference.java:104)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1168)
    >>
    >> at
    >> com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1375)
    >>
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPre
    >>
    >> paredPage(WOComponentRequestHandler.java:196)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPre
    >>
    >> paredSession(WOComponentRequestHandler.java:287)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPre
    >>
    >> paredApplication(WOComponentRequestHandler.java:322)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(W
    >>
    >> OComponentRequestHandler.java:358)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WO
    >>
    >> ComponentRequestHandler.java:432)
    >>
    >> at
    >> com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:13
    >>
    >> 06)
    >>
    >> at
    >> com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java
    >>
    >> :173)
    >>
    >> at
    >> com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254
    >>
    >> )
    >>
    >> at java.lang.Thread.run(Thread.java:595)
    >>
    >>
    >> --------
    >> Priority : FATAL
    >>
    >> Class.Method(line):
    >> de.mrer.base.BaseComponent.validationFailedWithException(BaseComponent.java:
    >>
    >> 104)
    >>
    >> Message: de.mrer.exceptor.CustomException: [v.1.2B2 April 17 2006]
    >> Commit
    >> Exception
    >>
    >> ========================
    >>
    >> de.mrer.exceptor.CustomException: [v.1.2B2 April 17 2006] Commit
    >> Exception
    >>
    >> at
    >> de.mrer.base.CayenneBaseComponent.commitChanges(CayenneBaseComponent.java:74
    >>
    >> )
    >>
    >> at ImageEditPage.uploadFile(ImageEditPage.java:99)
    >>
    >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    >>
    >> at
    >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
    >>
    >> )
    >>
    >> at
    >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    >>
    >> .java:25)
    >>
    >> at java.lang.reflect.Method.invoke(Method.java:585)
    >>
    >> at
    >> KeyValueCodingProtectedAccessor.methodValue(KeyValueCodingProtectedAccessor.
    >>
    >> java:54)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKe
    >>
    >> yValueCoding.java:1160)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey
    >>
    >> (NSKeyValueCoding.java:1268)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1539)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCod
    >>
    >> ing.java:498)
    >>
    >> at
    >> com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.va
    >>
    >> lueForKeyPath(NSKeyValueCodingAdditions.java:212)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1600)
    >>
    >>
    >> at
    >> com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOK
    >>
    >> eyValueAssociation.java:46)
    >>
    >> at
    >> com.webobjects.appserver._private.WOSubmitButton.invokeAction(WOSubmitButton
    >>
    >> .java:59)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponen
    >>
    >> tContent.java:31)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponen
    >>
    >> tContent.java:31)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponen
    >>
    >> tContent.java:31)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.j
    >>
    >> ava:55)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCompon
    >>
    >> entReference.java:104)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at com.webobjects.appserver._private.WOForm.invokeAction(WOForm.java:82)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCompon
    >>
    >> entReference.java:104)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCompon
    >>
    >> entReference.java:104)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODyna
    >>
    >> micGroup.java:101)
    >>
    >> at
    >> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup
    >>
    >> .java:110)
    >>
    >> at
    >> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945)
    >>
    >> at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1168)
    >>
    >> at
    >> com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1375)
    >>
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPre
    >>
    >> paredPage(WOComponentRequestHandler.java:196)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPre
    >>
    >> paredSession(WOComponentRequestHandler.java:287)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPre
    >>
    >> paredApplication(WOComponentRequestHandler.java:322)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(W
    >>
    >> OComponentRequestHandler.java:358)
    >>
    >> at
    >> com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WO
    >>
    >> ComponentRequestHandler.java:432)
    >>
    >> at
    >> com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:13
    >>
    >> 06)
    >>
    >> at
    >> com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java
    >>
    >> :173)
    >>
    >> at
    >> com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254
    >>
    >> )
    >>
    >> at java.lang.Thread.run(Thread.java:595)
    >>
    >> -------------------------------------------------
    >>
    >>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Thu Apr 20 2006 - 17:59:04 EDT