Hello Paul,

thank you for your answer !

"Could you please follow my advices above to cleanup your assembly a bit
and report if it still fail?"

Sure - will follow your advices and reply as soon I have some results.

Cheers,
Jiri

2012/10/26 eskatos [via Qi4j-dev] <[email protected]>:
> Hi Jiri,
>
> I can see several issues in your assembly.
>
> First, there are three MemoryEntityStore assembled in your
> infrastructure layer:
> - in your config module, with module visibility
> - in your indexing module, with application visibility
> - in your entitystore module, with application visibility
>
> You should remove the one from your indexing module.
> See the "Defining an Entity Store" section in
> http://qi4j.org/core-bootstrap-assembly.html
> Take special attention to the Configuration state storage.
>
> EntityStores notify each visible indexing of entities state changes.
> ConfigurationComposites are entities. You must ensure the EntityStore
> you use to store configuration cannot see the indexing service.
> Having too much EntityStores assembled is not a good idea.
>
>
> Second, you can remove the two objects declaration at the beggining
> (EntityStateSerializer & EntityTypeSerializer) as they were used by
> indexing-rdf and are not needed when using indexing-sql.
>
>
> Third, the endless loop seems to come from the DataSourceConfiguration
> loading and to take place in EntityStore.newUnitOfWork(..) but at first
> sight and without a complete test case I can't see why it goes crazy
> like that.
>
>
> Could you please follow my advices above to cleanup your assembly a bit
> and report if it still fail?
>
> Cheers
>
> /Paul
>
>
>
> jj a écrit :
>
>> Hello,
>>
>> I wrote a simple application using In-Memory EntityStore and RdfIndexing.
>> Now I want to
>> switch over to SQL Index/Store but receive the following exception :
>>
>> java.lang.IllegalStateException: java.lang.StackOverflowError
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:103)
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
>> at
>>
>> org.qi4j.runtime.service.ServicesInstance.activate(ServicesInstance.java:57)
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78)
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
>> at
>>
>> org.qi4j.runtime.structure.ModuleInstance.activate(ModuleInstance.java:281)
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78)
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
>> at
>> org.qi4j.runtime.structure.LayerInstance.activate(LayerInstance.java:175)
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78)
>> at
>>
>> org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
>> at
>>
>> org.qi4j.runtime.structure.ApplicationInstance.activate(ApplicationInstance.java:121)
>> at
>>
>> com.somepackage.qi4j.application.abc.bootstrap.AbcApplication.createApplication(AbcApplication.java:63)
>> at com.somepackage.qi4j.application.abc.Main.setUp(Main.java:15)
>> at com.somepackage.qi4j.application.abc.Main.main(Main.java:47)
>> Caused by: java.lang.StackOverflowError
>> at java.lang.Long.valueOf(Long.java:554)
>> at $Proxy36.newUnitOfWork(Unknown Source)
>> at
>>
>> org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern.newUnitOfWork(ConcurrentModificationCheckConcern.java:49)
>> at
>> org.qi4j.entitystore.memory.MemoryEntityStoreService.newUnitOfWork(Unknown
>> Source)
>> at
>>
>> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.getConfiguration(AbstractDataSourceServiceImporterMixin.java:130)
>> at
>>
>> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:77)
>> at
>>
>> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:1)
>> at
>>
>> org.qi4j.library.sql.dbcp.DBCPDataSourceServiceImporter.importService(Unknown
>> Source)
>> at
>>
>> org.qi4j.api.service.importer.ServiceInstanceImporter.importService(ServiceInstanceImporter.java:48)
>> at $Proxy22.notifyChanges(Unknown Source)
>> at
>>
>> org.qi4j.spi.entitystore.StateChangeNotificationConcern$1.commit(StateChangeNotificationConcern.java:42)
>> at
>>
>> org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern$ConcurrentCheckingEntityStoreUnitOfWork$1.commit(ConcurrentModificationCheckConcern.java:103)
>> at
>>
>> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.getConfiguration(AbstractDataSourceServiceImporterMixin.java:154)
>> at
>>
>> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:77)
>> at
>>
>> org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:1)
>> at
>>
>> org.qi4j.library.sql.dbcp.DBCPDataSourceServiceImporter.importService(Unknown
>> Source)
>> at
>>
>> org.qi4j.api.service.importer.ServiceInstanceImporter.importService(ServiceInstanceImporter.java:48)
>> at $Proxy22.notifyChanges(Unknown Source)
>>
>> Looks like as a endless loop, but I;m not able to figure out the reason.
>> Here also the assembly code
>> that produce the above exception.
>>
>>      private void assembleInfrastructureLayer( LayerAssembly
>> infrastructureLayer )
>>              throws AssemblyException
>>          {
>>
>>          // 1.) SQL Indexing
>>              ModuleAssembly indexingModule = infrastructureLayer.module(
>> "INFRASTRUCTURE-Indexing" );
>>              indexingModule
>>                  .objects(
>>                      EntityStateSerializer.class,
>>                      EntityTypeSerializer.class );
>>
>>
>>              ModuleAssembly config = indexingModule.layer().module(
>> "config"
>> );
>>              config.services( MemoryEntityStoreService.class ).visibleIn(
>> Visibility.module );
>>
>>              // EntityStore
>>              indexingModule.services( MemoryEntityStoreService.class,
>> UuidIdentityGeneratorService.class ).visibleIn( Visibility.application );
>>
>>              // DataSourceService + Index/Query's DataSource
>>              new DBCPDataSourceServiceAssembler(
>> "datasource-service-postgres",
>>                                                  Visibility.module,
>>                                                  config,
>>                                                  Visibility.layer
>> ).assemble(
>> indexingModule );
>>              DataSourceAssembler dsAssembler = new DataSourceAssembler(
>> "datasource-service-postgres",
>>
>> "datasource-postgres",
>>
>> Visibility.module,
>>
>> DataSources.newDataSourceCircuitBreaker() );
>>
>>              // Index/Query
>>              new PostgreSQLAssembler( Visibility.application, dsAssembler
>> ).assemble( indexingModule );
>>              config.entities( SQLConfiguration.class ).visibleIn(
>> Visibility.layer );
>>
>>              // Always re-index because of possible different app
>> structure
>> of multiple tests.
>>              indexingModule.services(
>> ReindexingStrategy.ReindexingStrategyService.class ).withMixins(
>> ReindexingStrategy.AlwaysNeed.class ).identifiedBy( "reindexer" );
>>              config.entities( ReindexerConfiguration.class ).visibleIn(
>> Visibility.layer );
>>
>>              // 2.) In-memory Entity Store
>>              ModuleAssembly entityStoreModule =
>> infrastructureLayer.module(
>> "INFRASTRUCTURE-EntityStore" );
>>              entityStoreModule
>>                  .services(
>>                      MemoryEntityStoreService.class,
>>                      UuidIdentityGeneratorService.class )
>>                  .instantiateOnStartup()
>>                  .visibleIn( application );
>>
>>          }
>>
>>
>> I try already many combinations - without success. Would be great if one
>> of
>> you guys
>> can give me an idea what is wrong with my code.
>>
>> Thanks,
>>
>> Cheers,
>> Jiri
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://qi4j-dev.23929.n6.nabble.com/SQL-Indexing-SQL-EntityStore-tp7140.html
>> Sent from the Qi4j-dev mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> qi4j-dev mailing list
>> [hidden email]
>> http://lists.ops4j.org/mailman/listinfo/qi4j-dev
> _______________________________________________
> qi4j-dev mailing list
> [hidden email]
> http://lists.ops4j.org/mailman/listinfo/qi4j-dev
>
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://qi4j-dev.23929.n6.nabble.com/SQL-Indexing-SQL-EntityStore-tp7140p7141.html
> To unsubscribe from SQL Indexing + SQL EntityStore, click here.
> NAML




--
View this message in context: 
http://qi4j-dev.23929.n6.nabble.com/SQL-Indexing-SQL-EntityStore-tp7140p7142.html
Sent from the Qi4j-dev mailing list archive at Nabble.com.
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to