You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Stephen Cameron <st...@gmail.com> on 2015/08/01 01:49:59 UTC

Re: datanucleus issue, maybe

Hi Dan

Thanks for the feedback, I was going to try using 1.8 again today and will
do so.

If I do a clean install on the whole project now I get an warning on the
webapp project:
[WARNING] The POM for
org.apache.isis.core:isis-core-viewer-restfulobjects-rendering:jar:1.9.0-20150731.110526-139
is missing, no dependency information available.

Will provide more info once I test the suggestions.




On Sat, Aug 1, 2015 at 12:45 AM, Dan Haywood <da...@haywood-associates.co.uk>
wrote:

> Hi Steve,
>
> funny, hit almost the same issue just today while implementing ISIS-1182
> [1].  It's fixed on 1.9.0-SNAPSHOT but might also work fine on 1.8.0.
>
> As you've discovered, DN can sometimes trip up if we rely on it to lazily
> build its metamodel.  In the past we've seen issues this occur with it
> submitting invalid SQL (when it only knows about a superclass table but not
> yet any of the subclasses), and we've also seen deadlocks on HSQLDB when
> DDL is intermingled with DML.  I think you are seeing this second case
> yourself.
>
> The fix - that works on 1.9.0-SNAPSHOT at least - is to use specify the
>
>           isis.persistor.datanucleus.RegisterEntities.packagePrefix
>
> key in isis.properties.  This causes Isis to go searching for and
> registering all domain entities.
>
> We introduced this key a good while back, but I also recall that in one of
> the more recent versions (1.7.0, 1.8.0?) it got broken again.  Anyway, I've
> added some migration notes for 1.8.0 because with ISIS-1182 it seems to be
> more critical again to get it right.
>
> Let me know how you get on.
>
> Thx
> Dan
>
>
> [1] https://issues.apache.org/jira/browse/ISIS-1182
> [2]
>
> http://isis.apache.org/migration-notes.html#_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages
>
>
>
>
>
>
>
>
>
> On 31 July 2015 at 14:35, Stephen Cameron <st...@gmail.com>
> wrote:
>
> > More info, yes it seems the Volunteer table is not created at the same
> time
> > as the other tables, until I actually try to add an entry, Isis seems to
> > check for it, finds it missing and creates it.I am doing almost exactly
> the
> > same procedure successfully with another table that is already created,
> > participant.
> >
> > Here is the current striped down Volunteer class defintion:
> > package au.com.scds.chats.dom.modules.volunteer;
> >
> > import javax.jdo.annotations.Column;
> > import javax.jdo.annotations.IdentityType;
> >
> > import org.apache.isis.applib.DomainObjectContainer;
> > import org.apache.isis.applib.annotation.MemberOrder;
> >
> > import au.com.scds.chats.dom.modules.general.Person;
> >
> >
> > @javax.jdo.annotations.PersistenceCapable(identityType =
> > IdentityType.DATASTORE)
> > @javax.jdo.annotations.DatastoreIdentity(strategy =
> > javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, column = "id")
> > public class Volunteer {
> >
> >     // {{ Person (property)
> >     private Person person;
> >
> >     @Column(allowsNull="false")
> >     @MemberOrder(sequence = "1")
> >     public Person getPerson() {
> >         return person;
> >     }
> >
> >     public void setPerson(final Person person) {
> >         this.person = person;
> >     }
> >
> >     // }}
> >
> >     @javax.inject.Inject
> >     @SuppressWarnings("unused")
> >     private DomainObjectContainer container;
> >
> >     // endregion
> > }
> >
> >
> >
> > On Fri, Jul 31, 2015 at 10:38 PM, Stephen Cameron <
> > steve.cameron.62@gmail.com> wrote:
> >
> > > Hi folks
> > >
> > > I have a problem that I cannot solve and hoping someone might have seen
> > > similar.
> > >
> > > When I create a new entity the server freezes, its just the one kind of
> > > entity.
> > >
> > > In the server console I see the following output.
> > >
> > > 22:13:26,989  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK2" FOREIGN KEY
> > > ("activities_id_OID") REFERENCES "Participant" ("id")
> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Execution Time = 2 ms
> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Creating foreign key constraint : "Activity_FK1" in catalog "" schema
> ""
> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK1" FOREIGN KEY
> > > ("provider_id_OID") REFERENCES "Provider" ("id")
> > > 22:13:26,992  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Execution Time = 1 ms
> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Creating index "Activity_N49" in catalog "" schema ""
> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > CREATE INDEX "Activity_N49" ON "Activity" ("provider_id_OID")
> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Execution Time = 0 ms
> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Schema Transaction committing with connection
> > >
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> > > "
> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Schema Transaction closing with connection
> > >
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> > > "
> > > 22:13:33,718  [PropertiesFactory    455726379@qtp-1318209130-0 INFO ]
> > > Loading properties files from
> > >
> >
> jar:file:/C:/Users/stevec/.m2/repository/org/apache/wicket/wicket-extensions/6.17.0/wicket-extensions-6.17.0.jar!/org/apache/wicket/extensions/Initializer.properties
> > > with loader
> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
> > > 22:13:55,556  [PropertiesFactory    455726379@qtp-1318209130-0 INFO ]
> > > Loading properties files from
> > >
> >
> jar:file:/C:/Users/stevec/.m2/repository/org/apache/isis/viewer/isis-viewer-wicket-ui/1.9.0-SNAPSHOT/isis-viewer-wicket-ui-1.9.0-SNAPSHOT.jar!/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.properties
> > > with loader
> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
> > > 1
> > > 2
> > > 3
> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Column ""Volunteer"."id"" added to internal representation of table.
> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Field [DATASTORE_ID] -> Column(s) ["Volunteer"."id"] using mapping of
> > type
> > > "org.datanucleus.store.rdbms.mapping.java.DatastoreIdMapping"
> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Table "Volunteer" will manage the persistence of the fields for class
> > > au.com.scds.chats.dom.modules.volunteer.Volunteer (inheritance
> > > strategy="new-table")
> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Column ""Volunteer"."person_id_OID"" added to internal representation
> of
> > > table.
> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.person] ->
> > > Column(s) ["Volunteer"."person_id_OID"] using mapping of type
> > > "org.datanucleus.store.rdbms.mapping.java.PersistableMapping"
> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Column ""Volunteer"."status"" added to internal representation of
> table.
> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.status] ->
> > > Column(s) ["Volunteer"."status"] using mapping of type
> > > "org.datanucleus.store.rdbms.mapping.java.EnumMapping"
> > > (org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping)
> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Table/View "Volunteer" has been initialised
> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Schema Transaction started with connection
> > >
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@1855dae
> > "
> > > with isolation "serializable"
> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Check of existence of "Volunteer" returned no table
> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Creating table "Volunteer"
> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > CREATE TABLE "Volunteer"
> > > (
> > >     "id" BIGINT GENERATED BY DEFAULT AS IDENTITY,
> > >     "person_id_OID" BIGINT NULL,
> > >     "status" NVARCHAR(255) NOT NULL,
> > >     CONSTRAINT "Volunteer_PK" PRIMARY KEY ("id")
> > > )
> > > 22:14:05,016  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Execution Time = 1 ms
> > > 22:14:05,020  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > Creating foreign key constraint : "Volunteer_FK1" in catalog "" schema
> ""
> > > 22:14:05,021  [Schema               455726379@qtp-1318209130-0 DEBUG]
> > > ALTER TABLE "Volunteer" ADD CONSTRAINT "Volunteer_FK1" FOREIGN KEY
> > > ("person_id_OID") REFERENCES "Person" ("id")
> > >
> > > I'm still no debugging properly yet, so the 1,2,3 are from the
> following
> > > routine
> > >
> > >     public Volunteer create(
> > >             final @ParameterLayout(named = "First name") String
> > firstname,
> > >             final @ParameterLayout(named = "Middle name(s)") String
> > > middlename,
> > >             final @ParameterLayout(named = "Surname") String surname) {
> > > System.out.println("1");
> > >         final Volunteer volunteer = container
> > >                 .newTransientInstance(Volunteer.class);
> > >         final Person person =
> > container.newTransientInstance(Person.class);
> > >         person.setFirstname(firstname);
> > >         person.setMiddlename(middlename);
> > >         person.setSurname(surname);
> > >         container.persistIfNotAlready(person);
> > > System.out.println("2");
> > >         volunteer.setPerson(person);
> > >         container.persistIfNotAlready(volunteer);
> > > System.out.println("3");
> > >         return volunteer;
> > >     }
> > >
> > > What seems strange in the output is that the table Volunteer doesn't
> seem
> > > to be created in the same way as other tables. In fact its after a
> > > transaction is committed:
> > >
> > > DEBUG]  Schema Transaction closing with connection
> > >
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> > > "
> > >
> > > Also, that Volunteer table is created after the calls to add an entry
> in
> > > the create method.
> > >
> > > HFH
> > > Steve
> > >
> > >
> >
>

Re: datanucleus issue, maybe

Posted by Stephen Cameron <st...@gmail.com>.
OK, looks like I owe you a favour.
Thanks, I will now read the documentation.

On Mon, Aug 3, 2015 at 9:02 PM, Dan Haywood <da...@haywood-associates.co.uk>
wrote:

> OK, so the issue is a change in the properties for "autocreate", as per
> [1].  When I made the change to:
>
> isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true
> isis.persistor.datanucleus.impl.datanucleus.schema.validateTables=true
> isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true
>
> then the app started fine and I could create a new Volunteer.  If you look
> at the console then you'll see that all the tables - including Volunteer -
> are created eagerly before start-up, and the deadlock does not arise.
>
> Cheers
> Dan
>
> [1]
>
> http://isis.apache.org/migration-notes.html#_in_the_webapp_s_code_persistor_datanucleus_properties_code
>
> On 3 August 2015 at 00:00, Stephen Cameron <st...@gmail.com>
> wrote:
>
> > Hi,
> >
> > I tried adding the
> > isis.persistor.datanucleus.RegisterEntities.packagePrefix
> >
> > key in isis.properties and in persistor_datanucleus.properties (where is
> > was already, but not set to the correct value).
> >
> > Strangely this has not fixed the problem.
> >
> > Is is possible for you take a look? I've created a release v0.0.1 in
> github
> > for the project, using Isis 1.9. I want to use 1.9 but till I get this
> one
> > sorted I am staying with 1.8.
> >
> > https://github.com/Stephen-Cameron-Data-Services/isis-chats/releases
> >
> > To see the issue just try creating a new Volunteer from the menu, it will
> > hang after you submit the new person's names. In contrast creatning a new
> > Participant, basically the same thing works fine.
> >
> > Thx
> > Steve
> >
> >
> >
> > On Sat, Aug 1, 2015 at 11:23 AM, Stephen Cameron <
> > steve.cameron.62@gmail.com
> > > wrote:
> >
> > > That warning is for 1.9 obviously.
> > >
> > > On Sat, Aug 1, 2015 at 9:49 AM, Stephen Cameron <
> > > steve.cameron.62@gmail.com> wrote:
> > >
> > >> Hi Dan
> > >>
> > >> Thanks for the feedback, I was going to try using 1.8 again today and
> > >> will do so.
> > >>
> > >> If I do a clean install on the whole project now I get an warning on
> the
> > >> webapp project:
> > >> [WARNING] The POM for
> > >>
> >
> org.apache.isis.core:isis-core-viewer-restfulobjects-rendering:jar:1.9.0-20150731.110526-139
> > >> is missing, no dependency information available.
> > >>
> > >> Will provide more info once I test the suggestions.
> > >>
> > >>
> > >>
> > >>
> > >> On Sat, Aug 1, 2015 at 12:45 AM, Dan Haywood <
> > >> dan@haywood-associates.co.uk> wrote:
> > >>
> > >>> Hi Steve,
> > >>>
> > >>> funny, hit almost the same issue just today while implementing
> > ISIS-1182
> > >>> [1].  It's fixed on 1.9.0-SNAPSHOT but might also work fine on 1.8.0.
> > >>>
> > >>> As you've discovered, DN can sometimes trip up if we rely on it to
> > lazily
> > >>> build its metamodel.  In the past we've seen issues this occur with
> it
> > >>> submitting invalid SQL (when it only knows about a superclass table
> but
> > >>> not
> > >>> yet any of the subclasses), and we've also seen deadlocks on HSQLDB
> > when
> > >>> DDL is intermingled with DML.  I think you are seeing this second
> case
> > >>> yourself.
> > >>>
> > >>> The fix - that works on 1.9.0-SNAPSHOT at least - is to use specify
> the
> > >>>
> > >>>           isis.persistor.datanucleus.RegisterEntities.packagePrefix
> > >>>
> > >>> key in isis.properties.  This causes Isis to go searching for and
> > >>> registering all domain entities.
> > >>>
> > >>> We introduced this key a good while back, but I also recall that in
> one
> > >>> of
> > >>> the more recent versions (1.7.0, 1.8.0?) it got broken again.
> Anyway,
> > >>> I've
> > >>> added some migration notes for 1.8.0 because with ISIS-1182 it seems
> to
> > >>> be
> > >>> more critical again to get it right.
> > >>>
> > >>> Let me know how you get on.
> > >>>
> > >>> Thx
> > >>> Dan
> > >>>
> > >>>
> > >>> [1] https://issues.apache.org/jira/browse/ISIS-1182
> > >>> [2]
> > >>>
> > >>>
> >
> http://isis.apache.org/migration-notes.html#_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> On 31 July 2015 at 14:35, Stephen Cameron <
> steve.cameron.62@gmail.com>
> > >>> wrote:
> > >>>
> > >>> > More info, yes it seems the Volunteer table is not created at the
> > same
> > >>> time
> > >>> > as the other tables, until I actually try to add an entry, Isis
> seems
> > >>> to
> > >>> > check for it, finds it missing and creates it.I am doing almost
> > >>> exactly the
> > >>> > same procedure successfully with another table that is already
> > created,
> > >>> > participant.
> > >>> >
> > >>> > Here is the current striped down Volunteer class defintion:
> > >>> > package au.com.scds.chats.dom.modules.volunteer;
> > >>> >
> > >>> > import javax.jdo.annotations.Column;
> > >>> > import javax.jdo.annotations.IdentityType;
> > >>> >
> > >>> > import org.apache.isis.applib.DomainObjectContainer;
> > >>> > import org.apache.isis.applib.annotation.MemberOrder;
> > >>> >
> > >>> > import au.com.scds.chats.dom.modules.general.Person;
> > >>> >
> > >>> >
> > >>> > @javax.jdo.annotations.PersistenceCapable(identityType =
> > >>> > IdentityType.DATASTORE)
> > >>> > @javax.jdo.annotations.DatastoreIdentity(strategy =
> > >>> > javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, column = "id")
> > >>> > public class Volunteer {
> > >>> >
> > >>> >     // {{ Person (property)
> > >>> >     private Person person;
> > >>> >
> > >>> >     @Column(allowsNull="false")
> > >>> >     @MemberOrder(sequence = "1")
> > >>> >     public Person getPerson() {
> > >>> >         return person;
> > >>> >     }
> > >>> >
> > >>> >     public void setPerson(final Person person) {
> > >>> >         this.person = person;
> > >>> >     }
> > >>> >
> > >>> >     // }}
> > >>> >
> > >>> >     @javax.inject.Inject
> > >>> >     @SuppressWarnings("unused")
> > >>> >     private DomainObjectContainer container;
> > >>> >
> > >>> >     // endregion
> > >>> > }
> > >>> >
> > >>> >
> > >>> >
> > >>> > On Fri, Jul 31, 2015 at 10:38 PM, Stephen Cameron <
> > >>> > steve.cameron.62@gmail.com> wrote:
> > >>> >
> > >>> > > Hi folks
> > >>> > >
> > >>> > > I have a problem that I cannot solve and hoping someone might
> have
> > >>> seen
> > >>> > > similar.
> > >>> > >
> > >>> > > When I create a new entity the server freezes, its just the one
> > kind
> > >>> of
> > >>> > > entity.
> > >>> > >
> > >>> > > In the server console I see the following output.
> > >>> > >
> > >>> > > 22:13:26,989  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK2" FOREIGN KEY
> > >>> > > ("activities_id_OID") REFERENCES "Participant" ("id")
> > >>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Execution Time = 2 ms
> > >>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Creating foreign key constraint : "Activity_FK1" in catalog ""
> > >>> schema ""
> > >>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK1" FOREIGN KEY
> > >>> > > ("provider_id_OID") REFERENCES "Provider" ("id")
> > >>> > > 22:13:26,992  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Execution Time = 1 ms
> > >>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Creating index "Activity_N49" in catalog "" schema ""
> > >>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > CREATE INDEX "Activity_N49" ON "Activity" ("provider_id_OID")
> > >>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Execution Time = 0 ms
> > >>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Schema Transaction committing with connection
> > >>> > >
> > >>> >
> > >>>
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> > >>> > > "
> > >>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Schema Transaction closing with connection
> > >>> > >
> > >>> >
> > >>>
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> > >>> > > "
> > >>> > > 22:13:33,718  [PropertiesFactory    455726379@qtp-1318209130-0
> > INFO
> > >>> ]
> > >>> > > Loading properties files from
> > >>> > >
> > >>> >
> > >>>
> >
> jar:file:/C:/Users/stevec/.m2/repository/org/apache/wicket/wicket-extensions/6.17.0/wicket-extensions-6.17.0.jar!/org/apache/wicket/extensions/Initializer.properties
> > >>> > > with loader
> > >>> > >
> > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
> > >>> > > 22:13:55,556  [PropertiesFactory    455726379@qtp-1318209130-0
> > INFO
> > >>> ]
> > >>> > > Loading properties files from
> > >>> > >
> > >>> >
> > >>>
> >
> jar:file:/C:/Users/stevec/.m2/repository/org/apache/isis/viewer/isis-viewer-wicket-ui/1.9.0-SNAPSHOT/isis-viewer-wicket-ui-1.9.0-SNAPSHOT.jar!/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.properties
> > >>> > > with loader
> > >>> > >
> > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
> > >>> > > 1
> > >>> > > 2
> > >>> > > 3
> > >>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Column ""Volunteer"."id"" added to internal representation of
> > table.
> > >>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Field [DATASTORE_ID] -> Column(s) ["Volunteer"."id"] using
> mapping
> > of
> > >>> > type
> > >>> > > "org.datanucleus.store.rdbms.mapping.java.DatastoreIdMapping"
> > >>> > >
> (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
> > >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Table "Volunteer" will manage the persistence of the fields for
> > class
> > >>> > > au.com.scds.chats.dom.modules.volunteer.Volunteer (inheritance
> > >>> > > strategy="new-table")
> > >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Column ""Volunteer"."person_id_OID"" added to internal
> > >>> representation of
> > >>> > > table.
> > >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.person]
> ->
> > >>> > > Column(s) ["Volunteer"."person_id_OID"] using mapping of type
> > >>> > > "org.datanucleus.store.rdbms.mapping.java.PersistableMapping"
> > >>> > >
> (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
> > >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Column ""Volunteer"."status"" added to internal representation of
> > >>> table.
> > >>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.status]
> ->
> > >>> > > Column(s) ["Volunteer"."status"] using mapping of type
> > >>> > > "org.datanucleus.store.rdbms.mapping.java.EnumMapping"
> > >>> > >
> (org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping)
> > >>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Table/View "Volunteer" has been initialised
> > >>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Schema Transaction started with connection
> > >>> > >
> > >>> >
> > >>>
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@1855dae
> > >>> > "
> > >>> > > with isolation "serializable"
> > >>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Check of existence of "Volunteer" returned no table
> > >>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Creating table "Volunteer"
> > >>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > CREATE TABLE "Volunteer"
> > >>> > > (
> > >>> > >     "id" BIGINT GENERATED BY DEFAULT AS IDENTITY,
> > >>> > >     "person_id_OID" BIGINT NULL,
> > >>> > >     "status" NVARCHAR(255) NOT NULL,
> > >>> > >     CONSTRAINT "Volunteer_PK" PRIMARY KEY ("id")
> > >>> > > )
> > >>> > > 22:14:05,016  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Execution Time = 1 ms
> > >>> > > 22:14:05,020  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > Creating foreign key constraint : "Volunteer_FK1" in catalog ""
> > >>> schema ""
> > >>> > > 22:14:05,021  [Schema               455726379@qtp-1318209130-0
> > >>> DEBUG]
> > >>> > > ALTER TABLE "Volunteer" ADD CONSTRAINT "Volunteer_FK1" FOREIGN
> KEY
> > >>> > > ("person_id_OID") REFERENCES "Person" ("id")
> > >>> > >
> > >>> > > I'm still no debugging properly yet, so the 1,2,3 are from the
> > >>> following
> > >>> > > routine
> > >>> > >
> > >>> > >     public Volunteer create(
> > >>> > >             final @ParameterLayout(named = "First name") String
> > >>> > firstname,
> > >>> > >             final @ParameterLayout(named = "Middle name(s)")
> String
> > >>> > > middlename,
> > >>> > >             final @ParameterLayout(named = "Surname") String
> > >>> surname) {
> > >>> > > System.out.println("1");
> > >>> > >         final Volunteer volunteer = container
> > >>> > >                 .newTransientInstance(Volunteer.class);
> > >>> > >         final Person person =
> > >>> > container.newTransientInstance(Person.class);
> > >>> > >         person.setFirstname(firstname);
> > >>> > >         person.setMiddlename(middlename);
> > >>> > >         person.setSurname(surname);
> > >>> > >         container.persistIfNotAlready(person);
> > >>> > > System.out.println("2");
> > >>> > >         volunteer.setPerson(person);
> > >>> > >         container.persistIfNotAlready(volunteer);
> > >>> > > System.out.println("3");
> > >>> > >         return volunteer;
> > >>> > >     }
> > >>> > >
> > >>> > > What seems strange in the output is that the table Volunteer
> > doesn't
> > >>> seem
> > >>> > > to be created in the same way as other tables. In fact its after
> a
> > >>> > > transaction is committed:
> > >>> > >
> > >>> > > DEBUG]  Schema Transaction closing with connection
> > >>> > >
> > >>> >
> > >>>
> >
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> > >>> > > "
> > >>> > >
> > >>> > > Also, that Volunteer table is created after the calls to add an
> > >>> entry in
> > >>> > > the create method.
> > >>> > >
> > >>> > > HFH
> > >>> > > Steve
> > >>> > >
> > >>> > >
> > >>> >
> > >>>
> > >>
> > >>
> > >
> >
>

Re: datanucleus issue, maybe

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
OK, so the issue is a change in the properties for "autocreate", as per
[1].  When I made the change to:

isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true
isis.persistor.datanucleus.impl.datanucleus.schema.validateTables=true
isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true

then the app started fine and I could create a new Volunteer.  If you look
at the console then you'll see that all the tables - including Volunteer -
are created eagerly before start-up, and the deadlock does not arise.

Cheers
Dan

[1]
http://isis.apache.org/migration-notes.html#_in_the_webapp_s_code_persistor_datanucleus_properties_code

On 3 August 2015 at 00:00, Stephen Cameron <st...@gmail.com>
wrote:

> Hi,
>
> I tried adding the
> isis.persistor.datanucleus.RegisterEntities.packagePrefix
>
> key in isis.properties and in persistor_datanucleus.properties (where is
> was already, but not set to the correct value).
>
> Strangely this has not fixed the problem.
>
> Is is possible for you take a look? I've created a release v0.0.1 in github
> for the project, using Isis 1.9. I want to use 1.9 but till I get this one
> sorted I am staying with 1.8.
>
> https://github.com/Stephen-Cameron-Data-Services/isis-chats/releases
>
> To see the issue just try creating a new Volunteer from the menu, it will
> hang after you submit the new person's names. In contrast creatning a new
> Participant, basically the same thing works fine.
>
> Thx
> Steve
>
>
>
> On Sat, Aug 1, 2015 at 11:23 AM, Stephen Cameron <
> steve.cameron.62@gmail.com
> > wrote:
>
> > That warning is for 1.9 obviously.
> >
> > On Sat, Aug 1, 2015 at 9:49 AM, Stephen Cameron <
> > steve.cameron.62@gmail.com> wrote:
> >
> >> Hi Dan
> >>
> >> Thanks for the feedback, I was going to try using 1.8 again today and
> >> will do so.
> >>
> >> If I do a clean install on the whole project now I get an warning on the
> >> webapp project:
> >> [WARNING] The POM for
> >>
> org.apache.isis.core:isis-core-viewer-restfulobjects-rendering:jar:1.9.0-20150731.110526-139
> >> is missing, no dependency information available.
> >>
> >> Will provide more info once I test the suggestions.
> >>
> >>
> >>
> >>
> >> On Sat, Aug 1, 2015 at 12:45 AM, Dan Haywood <
> >> dan@haywood-associates.co.uk> wrote:
> >>
> >>> Hi Steve,
> >>>
> >>> funny, hit almost the same issue just today while implementing
> ISIS-1182
> >>> [1].  It's fixed on 1.9.0-SNAPSHOT but might also work fine on 1.8.0.
> >>>
> >>> As you've discovered, DN can sometimes trip up if we rely on it to
> lazily
> >>> build its metamodel.  In the past we've seen issues this occur with it
> >>> submitting invalid SQL (when it only knows about a superclass table but
> >>> not
> >>> yet any of the subclasses), and we've also seen deadlocks on HSQLDB
> when
> >>> DDL is intermingled with DML.  I think you are seeing this second case
> >>> yourself.
> >>>
> >>> The fix - that works on 1.9.0-SNAPSHOT at least - is to use specify the
> >>>
> >>>           isis.persistor.datanucleus.RegisterEntities.packagePrefix
> >>>
> >>> key in isis.properties.  This causes Isis to go searching for and
> >>> registering all domain entities.
> >>>
> >>> We introduced this key a good while back, but I also recall that in one
> >>> of
> >>> the more recent versions (1.7.0, 1.8.0?) it got broken again.  Anyway,
> >>> I've
> >>> added some migration notes for 1.8.0 because with ISIS-1182 it seems to
> >>> be
> >>> more critical again to get it right.
> >>>
> >>> Let me know how you get on.
> >>>
> >>> Thx
> >>> Dan
> >>>
> >>>
> >>> [1] https://issues.apache.org/jira/browse/ISIS-1182
> >>> [2]
> >>>
> >>>
> http://isis.apache.org/migration-notes.html#_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On 31 July 2015 at 14:35, Stephen Cameron <st...@gmail.com>
> >>> wrote:
> >>>
> >>> > More info, yes it seems the Volunteer table is not created at the
> same
> >>> time
> >>> > as the other tables, until I actually try to add an entry, Isis seems
> >>> to
> >>> > check for it, finds it missing and creates it.I am doing almost
> >>> exactly the
> >>> > same procedure successfully with another table that is already
> created,
> >>> > participant.
> >>> >
> >>> > Here is the current striped down Volunteer class defintion:
> >>> > package au.com.scds.chats.dom.modules.volunteer;
> >>> >
> >>> > import javax.jdo.annotations.Column;
> >>> > import javax.jdo.annotations.IdentityType;
> >>> >
> >>> > import org.apache.isis.applib.DomainObjectContainer;
> >>> > import org.apache.isis.applib.annotation.MemberOrder;
> >>> >
> >>> > import au.com.scds.chats.dom.modules.general.Person;
> >>> >
> >>> >
> >>> > @javax.jdo.annotations.PersistenceCapable(identityType =
> >>> > IdentityType.DATASTORE)
> >>> > @javax.jdo.annotations.DatastoreIdentity(strategy =
> >>> > javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, column = "id")
> >>> > public class Volunteer {
> >>> >
> >>> >     // {{ Person (property)
> >>> >     private Person person;
> >>> >
> >>> >     @Column(allowsNull="false")
> >>> >     @MemberOrder(sequence = "1")
> >>> >     public Person getPerson() {
> >>> >         return person;
> >>> >     }
> >>> >
> >>> >     public void setPerson(final Person person) {
> >>> >         this.person = person;
> >>> >     }
> >>> >
> >>> >     // }}
> >>> >
> >>> >     @javax.inject.Inject
> >>> >     @SuppressWarnings("unused")
> >>> >     private DomainObjectContainer container;
> >>> >
> >>> >     // endregion
> >>> > }
> >>> >
> >>> >
> >>> >
> >>> > On Fri, Jul 31, 2015 at 10:38 PM, Stephen Cameron <
> >>> > steve.cameron.62@gmail.com> wrote:
> >>> >
> >>> > > Hi folks
> >>> > >
> >>> > > I have a problem that I cannot solve and hoping someone might have
> >>> seen
> >>> > > similar.
> >>> > >
> >>> > > When I create a new entity the server freezes, its just the one
> kind
> >>> of
> >>> > > entity.
> >>> > >
> >>> > > In the server console I see the following output.
> >>> > >
> >>> > > 22:13:26,989  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK2" FOREIGN KEY
> >>> > > ("activities_id_OID") REFERENCES "Participant" ("id")
> >>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Execution Time = 2 ms
> >>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Creating foreign key constraint : "Activity_FK1" in catalog ""
> >>> schema ""
> >>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK1" FOREIGN KEY
> >>> > > ("provider_id_OID") REFERENCES "Provider" ("id")
> >>> > > 22:13:26,992  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Execution Time = 1 ms
> >>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Creating index "Activity_N49" in catalog "" schema ""
> >>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > CREATE INDEX "Activity_N49" ON "Activity" ("provider_id_OID")
> >>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Execution Time = 0 ms
> >>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Schema Transaction committing with connection
> >>> > >
> >>> >
> >>>
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> >>> > > "
> >>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Schema Transaction closing with connection
> >>> > >
> >>> >
> >>>
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> >>> > > "
> >>> > > 22:13:33,718  [PropertiesFactory    455726379@qtp-1318209130-0
> INFO
> >>> ]
> >>> > > Loading properties files from
> >>> > >
> >>> >
> >>>
> jar:file:/C:/Users/stevec/.m2/repository/org/apache/wicket/wicket-extensions/6.17.0/wicket-extensions-6.17.0.jar!/org/apache/wicket/extensions/Initializer.properties
> >>> > > with loader
> >>> > >
> org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
> >>> > > 22:13:55,556  [PropertiesFactory    455726379@qtp-1318209130-0
> INFO
> >>> ]
> >>> > > Loading properties files from
> >>> > >
> >>> >
> >>>
> jar:file:/C:/Users/stevec/.m2/repository/org/apache/isis/viewer/isis-viewer-wicket-ui/1.9.0-SNAPSHOT/isis-viewer-wicket-ui-1.9.0-SNAPSHOT.jar!/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.properties
> >>> > > with loader
> >>> > >
> org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
> >>> > > 1
> >>> > > 2
> >>> > > 3
> >>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Column ""Volunteer"."id"" added to internal representation of
> table.
> >>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Field [DATASTORE_ID] -> Column(s) ["Volunteer"."id"] using mapping
> of
> >>> > type
> >>> > > "org.datanucleus.store.rdbms.mapping.java.DatastoreIdMapping"
> >>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
> >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Table "Volunteer" will manage the persistence of the fields for
> class
> >>> > > au.com.scds.chats.dom.modules.volunteer.Volunteer (inheritance
> >>> > > strategy="new-table")
> >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Column ""Volunteer"."person_id_OID"" added to internal
> >>> representation of
> >>> > > table.
> >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.person] ->
> >>> > > Column(s) ["Volunteer"."person_id_OID"] using mapping of type
> >>> > > "org.datanucleus.store.rdbms.mapping.java.PersistableMapping"
> >>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
> >>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Column ""Volunteer"."status"" added to internal representation of
> >>> table.
> >>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.status] ->
> >>> > > Column(s) ["Volunteer"."status"] using mapping of type
> >>> > > "org.datanucleus.store.rdbms.mapping.java.EnumMapping"
> >>> > > (org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping)
> >>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Table/View "Volunteer" has been initialised
> >>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Schema Transaction started with connection
> >>> > >
> >>> >
> >>>
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@1855dae
> >>> > "
> >>> > > with isolation "serializable"
> >>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Check of existence of "Volunteer" returned no table
> >>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Creating table "Volunteer"
> >>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > CREATE TABLE "Volunteer"
> >>> > > (
> >>> > >     "id" BIGINT GENERATED BY DEFAULT AS IDENTITY,
> >>> > >     "person_id_OID" BIGINT NULL,
> >>> > >     "status" NVARCHAR(255) NOT NULL,
> >>> > >     CONSTRAINT "Volunteer_PK" PRIMARY KEY ("id")
> >>> > > )
> >>> > > 22:14:05,016  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Execution Time = 1 ms
> >>> > > 22:14:05,020  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > Creating foreign key constraint : "Volunteer_FK1" in catalog ""
> >>> schema ""
> >>> > > 22:14:05,021  [Schema               455726379@qtp-1318209130-0
> >>> DEBUG]
> >>> > > ALTER TABLE "Volunteer" ADD CONSTRAINT "Volunteer_FK1" FOREIGN KEY
> >>> > > ("person_id_OID") REFERENCES "Person" ("id")
> >>> > >
> >>> > > I'm still no debugging properly yet, so the 1,2,3 are from the
> >>> following
> >>> > > routine
> >>> > >
> >>> > >     public Volunteer create(
> >>> > >             final @ParameterLayout(named = "First name") String
> >>> > firstname,
> >>> > >             final @ParameterLayout(named = "Middle name(s)") String
> >>> > > middlename,
> >>> > >             final @ParameterLayout(named = "Surname") String
> >>> surname) {
> >>> > > System.out.println("1");
> >>> > >         final Volunteer volunteer = container
> >>> > >                 .newTransientInstance(Volunteer.class);
> >>> > >         final Person person =
> >>> > container.newTransientInstance(Person.class);
> >>> > >         person.setFirstname(firstname);
> >>> > >         person.setMiddlename(middlename);
> >>> > >         person.setSurname(surname);
> >>> > >         container.persistIfNotAlready(person);
> >>> > > System.out.println("2");
> >>> > >         volunteer.setPerson(person);
> >>> > >         container.persistIfNotAlready(volunteer);
> >>> > > System.out.println("3");
> >>> > >         return volunteer;
> >>> > >     }
> >>> > >
> >>> > > What seems strange in the output is that the table Volunteer
> doesn't
> >>> seem
> >>> > > to be created in the same way as other tables. In fact its after a
> >>> > > transaction is committed:
> >>> > >
> >>> > > DEBUG]  Schema Transaction closing with connection
> >>> > >
> >>> >
> >>>
> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
> >>> > > "
> >>> > >
> >>> > > Also, that Volunteer table is created after the calls to add an
> >>> entry in
> >>> > > the create method.
> >>> > >
> >>> > > HFH
> >>> > > Steve
> >>> > >
> >>> > >
> >>> >
> >>>
> >>
> >>
> >
>

Re: datanucleus issue, maybe

Posted by Stephen Cameron <st...@gmail.com>.
Hi,

I tried adding the isis.persistor.datanucleus.RegisterEntities.packagePrefix

key in isis.properties and in persistor_datanucleus.properties (where is
was already, but not set to the correct value).

Strangely this has not fixed the problem.

Is is possible for you take a look? I've created a release v0.0.1 in github
for the project, using Isis 1.9. I want to use 1.9 but till I get this one
sorted I am staying with 1.8.

https://github.com/Stephen-Cameron-Data-Services/isis-chats/releases

To see the issue just try creating a new Volunteer from the menu, it will
hang after you submit the new person's names. In contrast creatning a new
Participant, basically the same thing works fine.

Thx
Steve



On Sat, Aug 1, 2015 at 11:23 AM, Stephen Cameron <steve.cameron.62@gmail.com
> wrote:

> That warning is for 1.9 obviously.
>
> On Sat, Aug 1, 2015 at 9:49 AM, Stephen Cameron <
> steve.cameron.62@gmail.com> wrote:
>
>> Hi Dan
>>
>> Thanks for the feedback, I was going to try using 1.8 again today and
>> will do so.
>>
>> If I do a clean install on the whole project now I get an warning on the
>> webapp project:
>> [WARNING] The POM for
>> org.apache.isis.core:isis-core-viewer-restfulobjects-rendering:jar:1.9.0-20150731.110526-139
>> is missing, no dependency information available.
>>
>> Will provide more info once I test the suggestions.
>>
>>
>>
>>
>> On Sat, Aug 1, 2015 at 12:45 AM, Dan Haywood <
>> dan@haywood-associates.co.uk> wrote:
>>
>>> Hi Steve,
>>>
>>> funny, hit almost the same issue just today while implementing ISIS-1182
>>> [1].  It's fixed on 1.9.0-SNAPSHOT but might also work fine on 1.8.0.
>>>
>>> As you've discovered, DN can sometimes trip up if we rely on it to lazily
>>> build its metamodel.  In the past we've seen issues this occur with it
>>> submitting invalid SQL (when it only knows about a superclass table but
>>> not
>>> yet any of the subclasses), and we've also seen deadlocks on HSQLDB when
>>> DDL is intermingled with DML.  I think you are seeing this second case
>>> yourself.
>>>
>>> The fix - that works on 1.9.0-SNAPSHOT at least - is to use specify the
>>>
>>>           isis.persistor.datanucleus.RegisterEntities.packagePrefix
>>>
>>> key in isis.properties.  This causes Isis to go searching for and
>>> registering all domain entities.
>>>
>>> We introduced this key a good while back, but I also recall that in one
>>> of
>>> the more recent versions (1.7.0, 1.8.0?) it got broken again.  Anyway,
>>> I've
>>> added some migration notes for 1.8.0 because with ISIS-1182 it seems to
>>> be
>>> more critical again to get it right.
>>>
>>> Let me know how you get on.
>>>
>>> Thx
>>> Dan
>>>
>>>
>>> [1] https://issues.apache.org/jira/browse/ISIS-1182
>>> [2]
>>>
>>> http://isis.apache.org/migration-notes.html#_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 31 July 2015 at 14:35, Stephen Cameron <st...@gmail.com>
>>> wrote:
>>>
>>> > More info, yes it seems the Volunteer table is not created at the same
>>> time
>>> > as the other tables, until I actually try to add an entry, Isis seems
>>> to
>>> > check for it, finds it missing and creates it.I am doing almost
>>> exactly the
>>> > same procedure successfully with another table that is already created,
>>> > participant.
>>> >
>>> > Here is the current striped down Volunteer class defintion:
>>> > package au.com.scds.chats.dom.modules.volunteer;
>>> >
>>> > import javax.jdo.annotations.Column;
>>> > import javax.jdo.annotations.IdentityType;
>>> >
>>> > import org.apache.isis.applib.DomainObjectContainer;
>>> > import org.apache.isis.applib.annotation.MemberOrder;
>>> >
>>> > import au.com.scds.chats.dom.modules.general.Person;
>>> >
>>> >
>>> > @javax.jdo.annotations.PersistenceCapable(identityType =
>>> > IdentityType.DATASTORE)
>>> > @javax.jdo.annotations.DatastoreIdentity(strategy =
>>> > javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, column = "id")
>>> > public class Volunteer {
>>> >
>>> >     // {{ Person (property)
>>> >     private Person person;
>>> >
>>> >     @Column(allowsNull="false")
>>> >     @MemberOrder(sequence = "1")
>>> >     public Person getPerson() {
>>> >         return person;
>>> >     }
>>> >
>>> >     public void setPerson(final Person person) {
>>> >         this.person = person;
>>> >     }
>>> >
>>> >     // }}
>>> >
>>> >     @javax.inject.Inject
>>> >     @SuppressWarnings("unused")
>>> >     private DomainObjectContainer container;
>>> >
>>> >     // endregion
>>> > }
>>> >
>>> >
>>> >
>>> > On Fri, Jul 31, 2015 at 10:38 PM, Stephen Cameron <
>>> > steve.cameron.62@gmail.com> wrote:
>>> >
>>> > > Hi folks
>>> > >
>>> > > I have a problem that I cannot solve and hoping someone might have
>>> seen
>>> > > similar.
>>> > >
>>> > > When I create a new entity the server freezes, its just the one kind
>>> of
>>> > > entity.
>>> > >
>>> > > In the server console I see the following output.
>>> > >
>>> > > 22:13:26,989  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK2" FOREIGN KEY
>>> > > ("activities_id_OID") REFERENCES "Participant" ("id")
>>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Execution Time = 2 ms
>>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Creating foreign key constraint : "Activity_FK1" in catalog ""
>>> schema ""
>>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK1" FOREIGN KEY
>>> > > ("provider_id_OID") REFERENCES "Provider" ("id")
>>> > > 22:13:26,992  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Execution Time = 1 ms
>>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Creating index "Activity_N49" in catalog "" schema ""
>>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > CREATE INDEX "Activity_N49" ON "Activity" ("provider_id_OID")
>>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Execution Time = 0 ms
>>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Schema Transaction committing with connection
>>> > >
>>> >
>>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
>>> > > "
>>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Schema Transaction closing with connection
>>> > >
>>> >
>>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
>>> > > "
>>> > > 22:13:33,718  [PropertiesFactory    455726379@qtp-1318209130-0 INFO
>>> ]
>>> > > Loading properties files from
>>> > >
>>> >
>>> jar:file:/C:/Users/stevec/.m2/repository/org/apache/wicket/wicket-extensions/6.17.0/wicket-extensions-6.17.0.jar!/org/apache/wicket/extensions/Initializer.properties
>>> > > with loader
>>> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
>>> > > 22:13:55,556  [PropertiesFactory    455726379@qtp-1318209130-0 INFO
>>> ]
>>> > > Loading properties files from
>>> > >
>>> >
>>> jar:file:/C:/Users/stevec/.m2/repository/org/apache/isis/viewer/isis-viewer-wicket-ui/1.9.0-SNAPSHOT/isis-viewer-wicket-ui-1.9.0-SNAPSHOT.jar!/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.properties
>>> > > with loader
>>> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
>>> > > 1
>>> > > 2
>>> > > 3
>>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Column ""Volunteer"."id"" added to internal representation of table.
>>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Field [DATASTORE_ID] -> Column(s) ["Volunteer"."id"] using mapping of
>>> > type
>>> > > "org.datanucleus.store.rdbms.mapping.java.DatastoreIdMapping"
>>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
>>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Table "Volunteer" will manage the persistence of the fields for class
>>> > > au.com.scds.chats.dom.modules.volunteer.Volunteer (inheritance
>>> > > strategy="new-table")
>>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Column ""Volunteer"."person_id_OID"" added to internal
>>> representation of
>>> > > table.
>>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.person] ->
>>> > > Column(s) ["Volunteer"."person_id_OID"] using mapping of type
>>> > > "org.datanucleus.store.rdbms.mapping.java.PersistableMapping"
>>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
>>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Column ""Volunteer"."status"" added to internal representation of
>>> table.
>>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.status] ->
>>> > > Column(s) ["Volunteer"."status"] using mapping of type
>>> > > "org.datanucleus.store.rdbms.mapping.java.EnumMapping"
>>> > > (org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping)
>>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Table/View "Volunteer" has been initialised
>>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Schema Transaction started with connection
>>> > >
>>> >
>>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@1855dae
>>> > "
>>> > > with isolation "serializable"
>>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Check of existence of "Volunteer" returned no table
>>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Creating table "Volunteer"
>>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > CREATE TABLE "Volunteer"
>>> > > (
>>> > >     "id" BIGINT GENERATED BY DEFAULT AS IDENTITY,
>>> > >     "person_id_OID" BIGINT NULL,
>>> > >     "status" NVARCHAR(255) NOT NULL,
>>> > >     CONSTRAINT "Volunteer_PK" PRIMARY KEY ("id")
>>> > > )
>>> > > 22:14:05,016  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Execution Time = 1 ms
>>> > > 22:14:05,020  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > Creating foreign key constraint : "Volunteer_FK1" in catalog ""
>>> schema ""
>>> > > 22:14:05,021  [Schema               455726379@qtp-1318209130-0
>>> DEBUG]
>>> > > ALTER TABLE "Volunteer" ADD CONSTRAINT "Volunteer_FK1" FOREIGN KEY
>>> > > ("person_id_OID") REFERENCES "Person" ("id")
>>> > >
>>> > > I'm still no debugging properly yet, so the 1,2,3 are from the
>>> following
>>> > > routine
>>> > >
>>> > >     public Volunteer create(
>>> > >             final @ParameterLayout(named = "First name") String
>>> > firstname,
>>> > >             final @ParameterLayout(named = "Middle name(s)") String
>>> > > middlename,
>>> > >             final @ParameterLayout(named = "Surname") String
>>> surname) {
>>> > > System.out.println("1");
>>> > >         final Volunteer volunteer = container
>>> > >                 .newTransientInstance(Volunteer.class);
>>> > >         final Person person =
>>> > container.newTransientInstance(Person.class);
>>> > >         person.setFirstname(firstname);
>>> > >         person.setMiddlename(middlename);
>>> > >         person.setSurname(surname);
>>> > >         container.persistIfNotAlready(person);
>>> > > System.out.println("2");
>>> > >         volunteer.setPerson(person);
>>> > >         container.persistIfNotAlready(volunteer);
>>> > > System.out.println("3");
>>> > >         return volunteer;
>>> > >     }
>>> > >
>>> > > What seems strange in the output is that the table Volunteer doesn't
>>> seem
>>> > > to be created in the same way as other tables. In fact its after a
>>> > > transaction is committed:
>>> > >
>>> > > DEBUG]  Schema Transaction closing with connection
>>> > >
>>> >
>>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
>>> > > "
>>> > >
>>> > > Also, that Volunteer table is created after the calls to add an
>>> entry in
>>> > > the create method.
>>> > >
>>> > > HFH
>>> > > Steve
>>> > >
>>> > >
>>> >
>>>
>>
>>
>

Re: datanucleus issue, maybe

Posted by Stephen Cameron <st...@gmail.com>.
That warning is for 1.9 obviously.

On Sat, Aug 1, 2015 at 9:49 AM, Stephen Cameron <st...@gmail.com>
wrote:

> Hi Dan
>
> Thanks for the feedback, I was going to try using 1.8 again today and will
> do so.
>
> If I do a clean install on the whole project now I get an warning on the
> webapp project:
> [WARNING] The POM for
> org.apache.isis.core:isis-core-viewer-restfulobjects-rendering:jar:1.9.0-20150731.110526-139
> is missing, no dependency information available.
>
> Will provide more info once I test the suggestions.
>
>
>
>
> On Sat, Aug 1, 2015 at 12:45 AM, Dan Haywood <dan@haywood-associates.co.uk
> > wrote:
>
>> Hi Steve,
>>
>> funny, hit almost the same issue just today while implementing ISIS-1182
>> [1].  It's fixed on 1.9.0-SNAPSHOT but might also work fine on 1.8.0.
>>
>> As you've discovered, DN can sometimes trip up if we rely on it to lazily
>> build its metamodel.  In the past we've seen issues this occur with it
>> submitting invalid SQL (when it only knows about a superclass table but
>> not
>> yet any of the subclasses), and we've also seen deadlocks on HSQLDB when
>> DDL is intermingled with DML.  I think you are seeing this second case
>> yourself.
>>
>> The fix - that works on 1.9.0-SNAPSHOT at least - is to use specify the
>>
>>           isis.persistor.datanucleus.RegisterEntities.packagePrefix
>>
>> key in isis.properties.  This causes Isis to go searching for and
>> registering all domain entities.
>>
>> We introduced this key a good while back, but I also recall that in one of
>> the more recent versions (1.7.0, 1.8.0?) it got broken again.  Anyway,
>> I've
>> added some migration notes for 1.8.0 because with ISIS-1182 it seems to be
>> more critical again to get it right.
>>
>> Let me know how you get on.
>>
>> Thx
>> Dan
>>
>>
>> [1] https://issues.apache.org/jira/browse/ISIS-1182
>> [2]
>>
>> http://isis.apache.org/migration-notes.html#_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On 31 July 2015 at 14:35, Stephen Cameron <st...@gmail.com>
>> wrote:
>>
>> > More info, yes it seems the Volunteer table is not created at the same
>> time
>> > as the other tables, until I actually try to add an entry, Isis seems to
>> > check for it, finds it missing and creates it.I am doing almost exactly
>> the
>> > same procedure successfully with another table that is already created,
>> > participant.
>> >
>> > Here is the current striped down Volunteer class defintion:
>> > package au.com.scds.chats.dom.modules.volunteer;
>> >
>> > import javax.jdo.annotations.Column;
>> > import javax.jdo.annotations.IdentityType;
>> >
>> > import org.apache.isis.applib.DomainObjectContainer;
>> > import org.apache.isis.applib.annotation.MemberOrder;
>> >
>> > import au.com.scds.chats.dom.modules.general.Person;
>> >
>> >
>> > @javax.jdo.annotations.PersistenceCapable(identityType =
>> > IdentityType.DATASTORE)
>> > @javax.jdo.annotations.DatastoreIdentity(strategy =
>> > javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, column = "id")
>> > public class Volunteer {
>> >
>> >     // {{ Person (property)
>> >     private Person person;
>> >
>> >     @Column(allowsNull="false")
>> >     @MemberOrder(sequence = "1")
>> >     public Person getPerson() {
>> >         return person;
>> >     }
>> >
>> >     public void setPerson(final Person person) {
>> >         this.person = person;
>> >     }
>> >
>> >     // }}
>> >
>> >     @javax.inject.Inject
>> >     @SuppressWarnings("unused")
>> >     private DomainObjectContainer container;
>> >
>> >     // endregion
>> > }
>> >
>> >
>> >
>> > On Fri, Jul 31, 2015 at 10:38 PM, Stephen Cameron <
>> > steve.cameron.62@gmail.com> wrote:
>> >
>> > > Hi folks
>> > >
>> > > I have a problem that I cannot solve and hoping someone might have
>> seen
>> > > similar.
>> > >
>> > > When I create a new entity the server freezes, its just the one kind
>> of
>> > > entity.
>> > >
>> > > In the server console I see the following output.
>> > >
>> > > 22:13:26,989  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK2" FOREIGN KEY
>> > > ("activities_id_OID") REFERENCES "Participant" ("id")
>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Execution Time = 2 ms
>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Creating foreign key constraint : "Activity_FK1" in catalog "" schema
>> ""
>> > > 22:13:26,991  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK1" FOREIGN KEY
>> > > ("provider_id_OID") REFERENCES "Provider" ("id")
>> > > 22:13:26,992  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Execution Time = 1 ms
>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Creating index "Activity_N49" in catalog "" schema ""
>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > CREATE INDEX "Activity_N49" ON "Activity" ("provider_id_OID")
>> > > 22:13:26,993  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Execution Time = 0 ms
>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Schema Transaction committing with connection
>> > >
>> >
>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
>> > > "
>> > > 22:13:26,994  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Schema Transaction closing with connection
>> > >
>> >
>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
>> > > "
>> > > 22:13:33,718  [PropertiesFactory    455726379@qtp-1318209130-0 INFO ]
>> > > Loading properties files from
>> > >
>> >
>> jar:file:/C:/Users/stevec/.m2/repository/org/apache/wicket/wicket-extensions/6.17.0/wicket-extensions-6.17.0.jar!/org/apache/wicket/extensions/Initializer.properties
>> > > with loader
>> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
>> > > 22:13:55,556  [PropertiesFactory    455726379@qtp-1318209130-0 INFO ]
>> > > Loading properties files from
>> > >
>> >
>> jar:file:/C:/Users/stevec/.m2/repository/org/apache/isis/viewer/isis-viewer-wicket-ui/1.9.0-SNAPSHOT/isis-viewer-wicket-ui-1.9.0-SNAPSHOT.jar!/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.properties
>> > > with loader
>> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d
>> > > 1
>> > > 2
>> > > 3
>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Column ""Volunteer"."id"" added to internal representation of table.
>> > > 22:14:05,008  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Field [DATASTORE_ID] -> Column(s) ["Volunteer"."id"] using mapping of
>> > type
>> > > "org.datanucleus.store.rdbms.mapping.java.DatastoreIdMapping"
>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Table "Volunteer" will manage the persistence of the fields for class
>> > > au.com.scds.chats.dom.modules.volunteer.Volunteer (inheritance
>> > > strategy="new-table")
>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Column ""Volunteer"."person_id_OID"" added to internal representation
>> of
>> > > table.
>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.person] ->
>> > > Column(s) ["Volunteer"."person_id_OID"] using mapping of type
>> > > "org.datanucleus.store.rdbms.mapping.java.PersistableMapping"
>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping)
>> > > 22:14:05,009  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Column ""Volunteer"."status"" added to internal representation of
>> table.
>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.status] ->
>> > > Column(s) ["Volunteer"."status"] using mapping of type
>> > > "org.datanucleus.store.rdbms.mapping.java.EnumMapping"
>> > > (org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping)
>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Table/View "Volunteer" has been initialised
>> > > 22:14:05,010  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Schema Transaction started with connection
>> > >
>> >
>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@1855dae
>> > "
>> > > with isolation "serializable"
>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Check of existence of "Volunteer" returned no table
>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Creating table "Volunteer"
>> > > 22:14:05,015  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > CREATE TABLE "Volunteer"
>> > > (
>> > >     "id" BIGINT GENERATED BY DEFAULT AS IDENTITY,
>> > >     "person_id_OID" BIGINT NULL,
>> > >     "status" NVARCHAR(255) NOT NULL,
>> > >     CONSTRAINT "Volunteer_PK" PRIMARY KEY ("id")
>> > > )
>> > > 22:14:05,016  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Execution Time = 1 ms
>> > > 22:14:05,020  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > Creating foreign key constraint : "Volunteer_FK1" in catalog ""
>> schema ""
>> > > 22:14:05,021  [Schema               455726379@qtp-1318209130-0 DEBUG]
>> > > ALTER TABLE "Volunteer" ADD CONSTRAINT "Volunteer_FK1" FOREIGN KEY
>> > > ("person_id_OID") REFERENCES "Person" ("id")
>> > >
>> > > I'm still no debugging properly yet, so the 1,2,3 are from the
>> following
>> > > routine
>> > >
>> > >     public Volunteer create(
>> > >             final @ParameterLayout(named = "First name") String
>> > firstname,
>> > >             final @ParameterLayout(named = "Middle name(s)") String
>> > > middlename,
>> > >             final @ParameterLayout(named = "Surname") String surname)
>> {
>> > > System.out.println("1");
>> > >         final Volunteer volunteer = container
>> > >                 .newTransientInstance(Volunteer.class);
>> > >         final Person person =
>> > container.newTransientInstance(Person.class);
>> > >         person.setFirstname(firstname);
>> > >         person.setMiddlename(middlename);
>> > >         person.setSurname(surname);
>> > >         container.persistIfNotAlready(person);
>> > > System.out.println("2");
>> > >         volunteer.setPerson(person);
>> > >         container.persistIfNotAlready(volunteer);
>> > > System.out.println("3");
>> > >         return volunteer;
>> > >     }
>> > >
>> > > What seems strange in the output is that the table Volunteer doesn't
>> seem
>> > > to be created in the same way as other tables. In fact its after a
>> > > transaction is committed:
>> > >
>> > > DEBUG]  Schema Transaction closing with connection
>> > >
>> >
>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a
>> > > "
>> > >
>> > > Also, that Volunteer table is created after the calls to add an entry
>> in
>> > > the create method.
>> > >
>> > > HFH
>> > > Steve
>> > >
>> > >
>> >
>>
>
>