isis-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rade, Joerg / Kuehne + Nagel / Ham GI-DP" <Joerg.R...@Kuehne-Nagel.com>
Subject AW: DomainService fails when invoked via Quartz
Date Fri, 19 Jan 2018 12:35:05 GMT
Hi Dan,

thanks - hat is very likely the culprit. I intended 10 minutes ...

-j
-----Ursprüngliche Nachricht-----
Von: Dan Haywood [mailto:dan@haywood-associates.co.uk]
Gesendet: Freitag, 19. Januar 2018 13:33
An: users@isis.apache.org
Betreff: Re: DomainService fails when invoked via Quartz

Hi Jorg,

It's a bit difficult to say from your mail ... I'm not exactly sure what you're attempting
to do.

The quartz job will be run multiple times, depending on what's in quartz-config.xml, eg every
10 seconds..  Therefore those "init" methods will be attempting to creating objects every
10 secs too.  If the code you are running is not idempotent, then I could quite imagine you
getting the duplicate key exceptions that you are seeing.

HTH
Dan

On Tue, 16 Jan 2018 at 15:44 Rade, Joerg / Kuehne + Nagel / Ham GI-DP < Joerg.Rade@kuehne-nagel.com>
wrote:

> Hi,
>
> I've setup isisaddons (command, quartz) in order to check for changed
> files and to create objects accordingly.
>
> When I execute the import via FixtureScripts everything works as
> expected, but via Quartz I get the following stacktrace:
>
> 16:17:03,904  [Datastore            SchedulerQuartzConfigXml_Worker-1
> ERROR]  Add request failed : INSERT INTO "RELEASES_PROVIDEDSERVICES"
> ("RELEASE_ID","PROVIDESSERVICE_ID") VALUES (?,?)
> org.datanucleus.store.rdbms.exceptions.MappedDatastoreException:
> INSERT INTO "RELEASES_PROVIDEDSERVICES"
> ("RELEASE_ID","PROVIDESSERVICE_ID") VALUES
> (?,?)
>                at
> org.datanucleus.store.rdbms.scostore.JoinSetStore.doInternalAdd(JoinSetStore.java:715)
>                at
> org.datanucleus.store.rdbms.scostore.JoinSetStore.add(JoinSetStore.java:297)
>                at
> org.datanucleus.store.types.wrappers.backed.TreeSet.add(TreeSet.java:674)
>                at
> org.datanucleus.store.types.SCOUtils.updateCollectionWithCollection(SCOUtils.java:870)
>                at
> org.datanucleus.store.types.wrappers.backed.TreeSet.initialise(TreeSet.java:148)
>                at
> org.datanucleus.store.types.wrappers.backed.TreeSet.initialise(TreeSet.java:68)
>                at
> org.datanucleus.store.types.SCOUtils.wrapAndReplaceSCOField(SCOUtils.java:176)
>                at
> org.datanucleus.state.StateManagerImpl.setObjectField(StateManagerImpl.java:1804)
>                at ife.dep.Release.dnSetcapabilities(Release.java)
>                at ife.dep.Release.setCapabilities(Release.java:93)
>                at
> ife.util.ApplicationReader.handleRelease(ApplicationReader.java:136)
>                at
> ife.util.ApplicationReader.handleReleases(ApplicationReader.java:120)
>                at
> ife.util.ApplicationReader.handleApplication(ApplicationReader.java:109)
>                at
> ife.util.ApplicationReader.init(ApplicationReader.java:90)
>                at
> ife.util.MasterDataUpdateCommand.execute(MasterDataUpdateCommand.java:32)
>                at
> ife.util.MasterDataBackgroundCommandsJob.execute(MasterDataBackgroundCommandsJob.java:26)
>                at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
>                at
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.ja
> va:573) Caused by: java.sql.SQLIntegrityConstraintViolationException:
> integrity constraint violation: unique constraint or index violation;
> "RELEASES_PROVIDEDSERVICES_PK" table: "RELEASES_PROVIDEDSERVICES"
>                at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
>                at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
>                at
> org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
>                at
> org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source)
>                at
> com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
>                at
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393)
>                at
> org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431)
>                at
> org.datanucleus.store.rdbms.scostore.JoinSetStore.doInternalAdd(JoinSetStore.java:694)
>                ... 17 more
> Caused by: org.hsqldb.HsqlException: integrity constraint violation:
> unique constraint or index violation; "RELEASES_PROVIDEDSERVICES_PK" table:
> "RELEASES_PROVIDEDSERVICES"
>                at org.hsqldb.error.Error.error(Unknown Source)
>                at org.hsqldb.Constraint.getException(Unknown Source)
>                at org.hsqldb.index.IndexAVLMemory.insert(Unknown Source)
>                at org.hsqldb.persist.RowStoreAVL.indexRow(Unknown Source)
>                at
> org.hsqldb.TransactionManager2PL.addInsertAction(Unknown
> Source)
>                at org.hsqldb.Session.addInsertAction(Unknown Source)
>                at org.hsqldb.Table.insertSingleRow(Unknown Source)
>                at org.hsqldb.StatementDML.insertSingleRow(Unknown Source)
>                at org.hsqldb.StatementInsert.getResult(Unknown Source)
>                at org.hsqldb.StatementDMQL.execute(Unknown Source)
>                at org.hsqldb.Session.executeCompiledStatement(Unknown
> Source)
>                at org.hsqldb.Session.execute(Unknown Source)
>                ... 23 more
>
> The relation Release-RequiredService is m:n. My Job class:
>
> package ife.util;
>
> import
> org.apache.isis.core.commons.authentication.AuthenticationSession;
> import
> org.apache.isis.core.runtime.sessiontemplate.AbstractIsisSessionTempla
> te; import
> org.apache.isis.core.runtime.system.persistence.PersistenceSession;
>
> import ife.env.RuntimeEnvironments;
>
> public class MasterDataUpdateCommand extends AbstractIsisSessionTemplate {
>     @javax.inject.Inject
>     private ApplicationReader applicationReader;
>     @javax.inject.Inject
>     private Properties properties;
>     @javax.inject.Inject
>     private RuntimeEnvironments runtimeEnvironments;
>
>     @Override
>     public void execute(AuthenticationSession authSession, Object
> context) {
>         try {
>             this.getIsisSessionFactory().openSession(authSession);
>             PersistenceSession persistenceSession =
> this.getPersistenceSession();
>
> persistenceSession.getServicesInjector().injectServicesInto(this);
>
>             properties.init();  // simple objects without relation -> OK
>             applicationReader.init();  // m:n relation breaks
>             runtimeEnvironments.init();
>         } finally {
>             this.getIsisSessionFactory().closeSession();
>         }
>     }
>
> }
>
>
>
> ApplicationReader is in the same package as MasterDataUpdateCommand
> and is annotated with
>
> @DomainService(nature = NatureOfService.DOMAIN)
>
> 1.16.0 and 1.15.1 behave the same.
>
> Am I doing something wrong?
>
> Thanks in advance
> Jörg
>
>
> Kühne + Nagel (AG & Co.) KG
> Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE
> 812773878.
> Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Dr. Hansjörg Rodi (Vors.
> ), Martin Brinkmann, Holger Ketz, Jan-Hendrik Köstergarten, Nicholas
> Minde, Michael Nebel, Lars Wedel, Matthias Weiner.
> Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform:
> Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745,
> Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt.
> Geschäftsleitung Region Zentral- und Osteuropa: Dr. Hansjörg Rodi
> (Vors.), Dominic Edmonds, Thierry Held, Uwe Hött, Richard Huhn, Holger
> Ketz, Jan-Hendrik Köstergarten, Jan Kunze, Michael Nebel, Mustafa Sener.
>
> Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen
> Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen
> in Ziffer 23 hinsichtlich des Haftungshöchstbetrages für Güterschäden
> (§ 431
> HGB) vom Gesetz ab, indem sie die Haftung bei multimodalen Transporten
> unter Einschluss einer Seebeförderung und bei unbekanntem Schadenort
> auf 2 SZR/kg und im Übrigen die Regelhaftung von 8,33 SZR/kg
> zusätzlich auf 1,25 Millionen Euro je Schadenfall sowie 2,5 Millionen
> Euro je Schadenereignis, mindestens aber 2 SZR/kg, beschränken. Die
> ADSp sind auf unserer Webseite als Download erhältlich. Auf Anfrage senden wir Ihnen
diese auch gerne zu.
>

Kühne + Nagel (AG & Co.) KG
Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE 812773878.
Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Dr. Hansjörg Rodi (Vors. ), Martin Brinkmann,
Holger Ketz, Jan-Hendrik Köstergarten, Nicholas Minde, Michael Nebel, Lars Wedel, Matthias
Weiner.
Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform: Aktiengesellschaft
nach luxemburgischem Recht, HR-Nr.: B 18745, Geschäftsführendes Verwaltungsratsmitglied:
Karl Gernandt.
Geschäftsleitung Region Zentral- und Osteuropa: Dr. Hansjörg Rodi (Vors.), Dominic Edmonds,
Thierry Held, Uwe Hött, Richard Huhn, Holger Ketz, Jan-Hendrik Köstergarten, Jan Kunze,
Michael Nebel, Mustafa Sener.

Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen Spediteurbedingungen
2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen in Ziffer 23 hinsichtlich des Haftungshöchstbetrages
für Güterschäden (§ 431 HGB) vom Gesetz ab, indem sie die Haftung bei multimodalen Transporten
unter Einschluss einer Seebeförderung und bei unbekanntem Schadenort auf 2 SZR/kg und im
Übrigen die Regelhaftung von 8,33 SZR/kg zusätzlich auf 1,25 Millionen Euro je Schadenfall
sowie 2,5 Millionen Euro je Schadenereignis, mindestens aber 2 SZR/kg, beschränken. Die ADSp
sind auf unserer Webseite als Download erhältlich. Auf Anfrage senden wir Ihnen diese auch
gerne zu.
Mime
View raw message