Support Article - Introduction of the TestEnterprise Organization

Introduction

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). 

ivy.xml (ICM 7.10.18.1)
<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.

ivy.xml (Changes starting with ICM 7.10.19.3)
<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_b2btest_app_dbinit_b2b, and test_enterprise_sites_b2b) were introduced.

ivy.xml (Changes starting with ICM 7.10.35.1)
<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).

  • Commerce Management B2C Demo Database Dump: <nexus>:<port>/nexus/content/groups/components/content/com.intershop.assembly/commerce_management_b2c/7.10.18.1/dmps/database-dump-dump-7.10.18.1.dmp
  • Commerce Management B2X Demo Database Dump: <nexus>:<port>/nexus/content/groups/components/content/com.intershop.assembly/commerce_management_b2x/7.10.18.1/dmps/database-dump-dump-7.10.18.1.dmp

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.

References

Possible Error Messages

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:

Error During Application Server Startup
[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)
	[...]


Error with JobTimer
[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)
	[...]
Error during DBInit
[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': [...]

Avoid the Deployment of the TestEnterprise Organization Related Cartridges

All mentioned TestEnterprise Organization related cartridges can be excluded from all environments in the project assembly build.gradle file as follows:

<root-project>/<assembly>/build.gradle
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'
  }
}

Avoid the ERROR Entries

There are two ways in which the TestEnterprise domain information is stored in the database:

  • The TestEnterprise domain information is stored in the database by the DBInit process (of cartridge test_app_dbinit and test_app_sf) with ICM version 7.10.18.1, 7.10.18.2 or 7.10.19.2, or
  • The TestEnterprise domain information is stored in the database by the demo database dump import.

Thus, the solutions for avoiding the ERROR messages differ.

Remove TestEnterprise Information from the Database

Remove the TestEnterprise information from your DB as follows:

  1. 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;
  2. Start the application server.
  3. Execute the Job DeleteDomainReferences:

    This job also removes the TestEnterprise sites from the shared file system.

Use DBInit Instead of Demo Dump Import

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.

Add Necessary Test Cartridges to the Production Server

Instead of removing the TestEnterprise information from the database, it is possible to add the following cartridges to the server:

  • test_app_sf
  • test_app_cm

The cartridges then provide the missing application types again and prevent ERROR messages in the logs. 

<assembly>/build.gradle
cartridges {

  include(
  'com.intershop.business:test_app_sf',
  'com.intershop.business:test_app_cm',
  in:[development, test, production])

...
}

Avoid WARN Entries Due to Missing Pagelet2 Model File from test_app_cm Cartridge

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. 

WARN localhost ES2 appserver0
[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 application server starts up
  • A new organizational unit is created

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.

Solution

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:

share/system/config/cluster/appserver.properties
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.

Disclaimer
The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.
The Intershop Knowledge Portal uses only technically necessary cookies. We do not track visitors or have visitors tracked by 3rd parties. Please find further information on privacy in the Intershop Privacy Policy and Legal Notice.
Home
Knowledge Base
Product Releases
Log on to continue
This Knowledge Base document is reserved for registered customers.
Log on with your Intershop Entra ID to continue.
Write an email to supportadmin@intershop.de if you experience login issues,
or if you want to register as customer.