With ICM versions 7.10.18.1, 7.10.18.2, and 7.10.19.2 the cartridges test_app_sf, testenterprise_sites, test_app_dbinit and test_app_cm introduce an additional TestEnterprise organization for all environments (development, test and production).
<dependency org="com.intershop.business" name="test_app_sf" rev="31.0.3" conf="development-cartridges, init-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.business" name="testenterprise_sites" rev="31.0.3" conf="development-cartridges, init-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.business" name="test_app_dbinit" rev="31.0.3" conf="development-cartridges, init-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.business" name="test_app_cm" rev="31.0.3" conf="development-cartridges, init-cartridges, test-cartridges" transitive="false"/>
Starting from ICM 7.10.19.3, these cartridges are no longer part of the production system and refer to development and test environments only, except the test_app_dbinit cartridge.
<dependency org="com.intershop.business" name="test_app_cm" rev="35.0.1" conf="development-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.business" name="test_app_sf" rev="35.0.1" conf="development-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.business" name="testenterprise_sites" rev="35.0.1" conf="development-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.business" name="test_app_dbinit" rev="35.0.1" conf="init-cartridges" transitive="false"/>
Starting from ICM 7.10.35.1, three more test cartridges (test_app_sf_b2b,
test_app_dbinit_b2b, and test_enterprise_sites_b2b) were introduced.
<dependency org="com.intershop.b2b" name="test_app_sf_b2b" rev="40.0.4" conf="development-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.b2b" name="testenterprise_sites_b2b" rev="40.0.4" conf="development-cartridges, test-cartridges" transitive="false"/> <dependency org="com.intershop.b2b" name="test_app_dbinit_b2b" rev="40.0.4" conf="init-cartridges" transitive="false"/>
Also starting with ICM 7.10.18.1, the commerce_management_b2c and commerce_management_b2x demo database dump adds TestEnterprise organization information to the corresponding database tables (e.g., DOMAININFORMATION
, ORGANIZATION
, etc).
For this reason, the demo database dump is no longer valid for production environments as of ICM 7.10.18.1.
The introduction of these test cartridges and the TestEnterprise domain can lead to unwanted behavior and errors. This article contains possible ways to deal with the new TestEnterprise organization and its cartridges.
Due to the new test cartridges, the server may have obsolete domain and site information of TestEnterprise in the database and shared file system. This can lead to ERROR messages, because the application type intershop.ConsumerTestSF and intershop.BusinessTestSF is not defined anymore.
Example ERROR messages:
[2020-09-10 09:00:00.000 +0200] ERROR localhost ES2 appserver0 [] [] com.intershop.beehive.core.pipelet.pipeline.ExecutePipeline [] [Unknown] [EYd_AAAB9RAAAAFzqC1KxddY] [aal_AAABQLoAAAFzFy5KxddY] "localhost-startStop-1" ISH-CORE-2490: Synchronous called pipeline 'ProcessPageletEntryPointSynchronization-PerformSynchronize' of application 'TestSalesChannel@TestEnterprise-Site (app=intershop.B2CBackoffice)' has finished with exception: com.intershop.beehive.core.internal.pipeline.PipelineCallStackException: com.intershop.beehive.core.capi.pipeline.PipelineExecutionException: com.intershop.beehive.app.capi.AppException: Application (-@TestEnterprise-TestSalesChannel-Site) references an invalid app: intershop.ConsumerTestSF at com.intershop.beehive.core.internal.pipeline.Pipeline.executePipeline(Pipeline.java:1056) at com.intershop.beehive.core.internal.pipeline.PipelineProcessorImpl.executePipeline(PipelineProcessorImpl.java:641) [...] Caused by: com.intershop.beehive.core.capi.pipeline.PipelineExecutionException: com.intershop.beehive.app.capi.AppException: Application (-@TestEnterprise-TestSalesChannel-Site) references an invalid app: intershop.ConsumerTestSF at com.intershop.beehive.core.internal.pipeline.PipelineRequest.commitTransaction(PipelineRequest.java:335) at com.intershop.beehive.core.internal.pipeline.Transition.executeTransition(Transition.java:476) [...] Caused by: com.intershop.beehive.app.capi.AppException: Application (-@TestEnterprise-TestSalesChannel-Site) references an invalid app: intershop.ConsumerTestSF at com.intershop.beehive.core.internal.domain.ApplicationPO.getApp(ApplicationPO.java:305) at com.intershop.beehive.core.internal.domain.ApplicationPO.getApplicationType(ApplicationPO.java:1293) at com.intershop.beehive.core.internal.domain.DomainMgrImpl.getCartridgeNamesList(DomainMgrImpl.java:1371) [...]
[2020-09-10 09:00:00.000 +0200] ERROR localhost ES2 appserver0 [] [] com.intershop.beehive.core.internal.job.JobMgrImpl [] [Unknown] [JobTimer] [EOl_AAABOVkAAAF0HrBaYm3o] "JobTimer1341119997" Application (-@TestEnterprise-TestSalesChannel-Site) references an invalid app: intershop.ConsumerTestSF com.intershop.beehive.app.capi.AppException: Application (-@TestEnterprise-TestSalesChannel-Site) references an invalid app: intershop.ConsumerTestSF at com.intershop.beehive.core.internal.domain.ApplicationPO.getApp(ApplicationPO.java:305) at com.intershop.beehive.core.internal.domain.ApplicationPO.getApplicationType(ApplicationPO.java:1293) at com.intershop.beehive.core.internal.domain.ApplicationContextFactoryImpl.createAppContext(ApplicationContextFactoryImpl.java:91) [...]
[2022-05-01 09:00:00.000 +0200] ERROR localhost ES1 appserver0 [] [] com.intershop.beehive.component.internal.common.ComponentContextImpl [] [] [] [] "main" Can't find declaration of instance 'intershop.BusinessTestSF' for adding fulfillments in context 'test_app_sf_b2b': [...]
All mentioned TestEnterprise Organization related cartridges can be excluded from all environments in the project assembly build.gradle file as follows:
assembly { inheritFrom('com.intershop.assembly:commerce_management_b2x') { + // Exclude test cartridges + excludeDependencies 'test_app_sf', 'test_app_cm', 'testenterprise_sites', 'test_app_dbinit', 'test_app_sf_b2b', 'testenterprise_sites_b2b', 'test_app_dbinit_b2b' } }
There are two ways in which the TestEnterprise domain information is stored in the database:
Thus, the solutions for avoiding the ERROR messages differ.
Remove the TestEnterprise information from your DB as follows:
Mark all TestEnterprise domains as STATUS_TOBEDELETED (STATUS = 4) with the following SQL statement:
select * from domaininformation where domainname like '%Test%Enterprise%'; update domain set status = 4 where domainid in (select domainid from domaininformation where domainname like '%Test%Enterprise%'); commit;
Execute the Job DeleteDomainReferences:
This job also removes the TestEnterprise sites from the shared file system.
Starting from 7.10.18.1, do not import the Commerce Management B2C/B2X demo database dump in your production DB schema, but use the DBInit process instead.
Instead of removing the TestEnterprise information from the database, it is possible to add the following cartridges to the server:
The cartridges then provide the missing application types again and prevent ERROR messages in the logs.
cartridges { include( 'com.intershop.business:test_app_sf', 'com.intershop.business:test_app_cm', in:[development, test, production]) ... }
There can be some WARN messages in the warn log due to a missing system managed pagelet2 model file, which was included in the test_app_cm cartridge.
[2020-09-08 15:35:51.214 +0200] WARN localhost ES2 appserver0 [] [] com.intershop.component.pmc.internal.synchronization.SystemPageletEntryPointSynchronizer [] [Unknown] [wx5_AAABd8wAAAF0ogldwm3u] [sRN_AAABgRMAAAF0Cwpdwm3u] "localhost-startStop-1" PageletEntryPoint 'systempage.homepage.pagelet2-Page@inSPIRED-MasterRepository' is obsolete as the defining pagelet2 file cannot be loaded 'test_app_cm:systempage.homepage.pagelet2-Page'
System managed items in the database get created by the system when:
The only trigger to do that is the existence of a system managed pagelet model element that defines it.
Such WARN messages indicate that a system managed pagelet model cannot be loaded by whatever reasons. Instead of deleting the pagelet entry points during the application server startup, a warning message is written.
To avoid having the WARN entries in the log, it is necessary to remove the related component definition in the database. This can be done during application server startup by defining the following property in the appserver.properties file:
intershop.cartridges.bc_pmc.synchAtServerStartup=true
Intershop recommends to set this property back to false
after all obsolete system managed items in the database have been successfully deleted and no further WARN messages are generated.