-
1. Re: Arquillian persistence-dbunit performance issues on Oracle
tim.kutz Jan 2, 2014 1:14 PM (in response to tim.kutz)Hoping very much that with the holidays over, this item can get at least a basic response. The problem gets worse as the project grows, and the schema matures. More foreign keys results in greater slow-down. Also, the use of this filter prevents us from having any foreign keys that cross schema boundaries, as that runs us into the OracleSdoGeometry bug in DBUnit. All we really need is the ability to specify the DBUnit Table Filter class, rather than having it hard-coded.
-
2. Re: Arquillian persistence-dbunit performance issues on Oracle
realcnbs Jan 2, 2014 2:00 PM (in response to tim.kutz)Not sure if this will help you, but still.
I faced the same performance problems when running ~20 CRUD tests took 12 mins, and that is on only a third of planned schema size.
Digging into related code and turning on debug i realized that it is doing just TOO much things e.g. reading metadata from DB everytime and many other "magic" things.
So i decided to not use this extension but rather write very thin and simple/dumb dataset loader which would use the yaml files I already had, and the @UsingDataSet annotations (had to replace it with my own).
I'm sure it is buggy and stupid, but it works for me.
https://drive.google.com/file/d/0ByjfhBeHbyL1UTJaV3dqTUtBVnc/edit?usp=sharing
-
3. Re: Arquillian persistence-dbunit performance issues on Oracle
bmajsak Jan 2, 2014 8:24 PM (in response to tim.kutz)Hi Tim,
sorry for being silent that long. As you have pointed out, this is about filtering, but also related to this issue (consequence of this).
That said, in the spirit of new year, I'm on that. I will keep you posted during next days.
Cheers,
Bartosz
-
4. Re: Arquillian persistence-dbunit performance issues on Oracle
bmajsak Jan 2, 2014 8:25 PM (in response to realcnbs)@Vitali if you have any hints how to simplify "the magic" please let me know and I will work on that. Thanks!
-
5. Re: Arquillian persistence-dbunit performance issues on Oracle
realcnbs Jan 2, 2014 8:34 PM (in response to bmajsak)No need to simplify anything, I just decided to not use it. I mean why do i have to poll the db metadata for every test execution? I know my db, just need it be filled.
Don't get me wrong the extension is really good, i will keep my eye on it in hope that performance issues will be resolved and will be very happy to use it again.
update:
And one more reason for me to not use it yet is that it could never find my @createschema and @dropschema files whatever paths and names combinations i tried.
-
6. Re: Arquillian persistence-dbunit performance issues on Oracle
tim.kutz Jan 2, 2014 9:28 PM (in response to bmajsak)Hi Bartosz -
Thanks, good to know someone is on the case. The connection re-use surely aggravates the problem, but the real root issue, is that Filter class. If I set up a test class that uses DBUnit directly, without Arquillian, and use SequenceFilter, where I can specify the table order explicitly, the tests speed up dramatically. I believe that as of 1.0.0.alpha-4, Arquillian used only an ExcludeTableFilter, and thus didn't have the same issue. My sugestion here would be to either provide a configuration switch such as the shouldResolveFK() metioned in this post, or to allow an annotation-based explicit definition of what filter or filters to use for each class. The second option is clearly more flexible, but is also going to be more complicated. For our purposes here, we'd be happy with a simple configurable switch in arquillian.xml.
-
7. Re: Arquillian persistence-dbunit performance issues on Oracle
tim.kutz Jan 24, 2014 9:51 AM (in response to tim.kutz)I forked the arquillian-persistence-extension yesterday, with the intent of adding the switch so we could avoid the Filter, and discovered that the switch had already been implemented (filterForeignKeysEnabled). By moving up to 1.0.0.Final-SNAPSHOT, I am able to get what I need from this. My only outstanding question would be, when will this move into a non-SNAPSHOT version, for general use?
For anyone else who may be having the same issue, the steps I followed to get it working were as follows:
- Upgrade the dependencies on arquillian-persistence-api and arquillian-persistence-impl to use version 1.0.0.Final-SNAPSHOT.
- Add the following config property to arquillian.xml, in the persistence-dbunit extension section:
<property name="filterForeignKeysEnabled">false</property> - Ensure that all tests specify the database entries in correct insertion order. You could do this by putting all entries for a test in one file, and ordering the rows as you want them inserted. In our case, we re-use test data across multiple tests, so we organize the data by having a file per table to be populated. In this case, the order the files are specified within the @UsingDataSet annotation matters. So if you have table PARENT, and table CHILD, which references PARENT, and the data you want in them for your test is stored in parent.xml and child.xml, respectively, you can use the following annotation, and it will work reliably.
@UsingDataSet( { "parent.xml", "child.xml" })
-
8. Re: Arquillian persistence-dbunit performance issues on Oracle
bmajsak Feb 26, 2014 3:43 PM (in response to tim.kutz)I created JIRA ticket for custom table filtering. It's almost done. I will push it to master tomorrow. Just few more things to go and there will be a new release with bunch of cool features in. Thank you all for the patience and all the priceless feedback.
-
9. Re: Arquillian persistence-dbunit performance issues on Oracle
bmajsak Jul 11, 2014 10:26 AM (in response to tim.kutz)Is it any better with the 1.0.0.Alpha7 release?
-
10. Re: Re: Arquillian persistence-dbunit performance issues on Oracle
kwintesencja Jul 11, 2014 6:17 PM (in response to bmajsak)Hi @Bartosz,
Im working with oracle and having issues for clearing a medium sized database(50 tables), if i use @Cleanup annotation my test time goes from 45sec to almost 3minutes here is my persistence related arquillian.xml config:
<extension qualifier="persistence-dbunit"> <property name="schema">TR_DETRAN_RED_AD</property> <!-- <property name="datatypeFactory">org.dbunit.ext.oracle.Oracle10DataTypeFactory</property>--> <property name="filterTables">true</property> <!--<property name="filterForeignKeysEnabled">false</property>--> <!--<property name="customTableFilter">org.jboss.arquillian.persistence.dbunit.filter.OracleDatabaseSequenceFilterProvider</property>--> </extension> <extension qualifier="persistence"> <property name="defaultDataSource">java:jboss/datasources/RedTesteDS</property> <property name="defaultDataSeedStrategy">CLEAN_INSERT</property> <property name="defaultCleanupPhase">NONE</property> <property name="dumpData">false</property> </extension> <extension qualifier="persistence-script"> <property name="sqlStatementDelimiter">;</property> </extension> <extension qualifier="transaction"> <property name="manager">java:jboss/UserTransaction</property> </extension>
So for now im deploying a singleton EJB with statup annotation to clean DB during deployment in combination with CLEAN_INSER defaultDataSeedStrategy to clean database.
Here is the debug output with @Cleanup:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.procergs.test.integration.RedIt
(E) ManagerProcessing
(O) LoadableExtensionLoader.load
(E) ServiceRegistryLoader
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
(E) ManagerStarted
(O) ConfigurationRegistrar.loadConfiguration
(E) ArquillianDescriptorImpl
(O) ScriptingConfigurationClientSideProducer.observe
(E) ScriptingConfiguration
(O) ProtocolRegistryCreator.createRegistry
(E) ProtocolRegistry
(O) ContainerRegistryCreator.createRegistry
(E) LocalContainerRegistry
(O) TransactionConfigurationProducer.loadConfiguration
(E) TransactionConfiguration
(O) PersistenceConfigurationClientSideProducer.observe
(E) PersistenceConfiguration
(O) DBUnitConfigurationClientSideProducer.observe
(E) DBUnitConfiguration
(E) BeforeSuite
(I) TestContextHandler.createSuiteContext
(O) DroneRegistrar.register
(E) DroneRegistryImpl
(O) DroneExecutorService.register
(E) DroneExecutorService
(O) BrowserCapabilitiesRegistrar.register
(E) BrowserCapabilitiesRegistryImpl
(O) ContainerEventController.execute
(E) SetupContainers
(O) ClientDeployerCreator.createClientSideDeployer
(E) ClientDeployer
(O) ClientContainerControllerCreator.createClientSideContainerController
(E) ClientContainerController
(O) ContainerLifecycleController.setupContainers
(E) SetupContainer
(I) ContainerDeploymentContextHandler.createContainerContext
(O) ContainerLifecycleController.setupContainer
(E) BeforeSetup
(E) ContainerImpl
(E) AfterSetup
(E) StartSuiteContainers
(O) ContainerLifecycleController.startSuiteContainers
(E) StartContainer
(I) ContainerDeploymentContextHandler.createContainerContext
(O) ContainerLifecycleController.startContainer
(E) BeforeStart
(E) ManagementClient
(E) ArchiveDeployer
(E) InitialContext
(E) AfterStart
(O) ViewResourcesUnpacker.extractResources
(O) ReusableRemoteWebDriverExtension.initialize
(E) ReusedSessionPermanentFileStorage
Jul 11, 2014 6:36:04 PM org.jboss.arquillian.drone.webdriver.factory.remote.reusable.ReusedSessionPermanentFileStorage readStore
Informações: Reused session store is not available at C:\Users\rafael-pestano\.drone-webdriver-session-store, a new one will be created.
(E) ReusedSessionStoreImpl
(E) InitializationParametersMap
(O) GrapheneRuntimeInitializer.injectGrapheneRuntime
(E) BeforeClass
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(O) GrapheneConfigurator.configureGraphene
(E) GrapheneConfiguration
(E) GrapheneConfigured
(O) DroneConfigurator.prepareGlobalDroneConfiguration
(E) DroneContextImpl
(E) BeforeDroneConfigured
(E) AfterDroneConfigured
(O) DroneCallableCreator.createDroneCallable
(E) BeforeDroneCallableCreated
(E) AfterDroneCallableCreated
(O) ContainerEventController.execute
(E) StartClassContainers
(O) ContainerLifecycleController.startClassContainers
(E) GenerateDeployment
(O) DeploymentGenerator.generateDeployment
ade06b86-8ff5-4336-8c5f-82533a09ad88.war:
(E) DeploymentScenario
(E) DeployManagedDeployments
(O) ContainerDeployController.deployManaged
(E) DeployDeployment
(I) ContainerDeploymentContextHandler.createContainerContext
(I) ContainerDeploymentContextHandler.createDeploymentContext
(I) DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy
(O) ContainerDeployController.deploy
(E) DeploymentDescription
(E) Deployment
(E) BeforeDeploy
(O) ArchiveDeploymentToolingExporter.export
(O) ServerSetupObserver.handleBeforeDeployment
(O) ArchiveDeploymentExporter.callback
(O) ArquillianServiceDeployer.doServiceDeploy
(E) ProtocolMetaData
(E) AfterDeploy
(O) DroneConfigurator.prepareDroneConfiguration
(O) ContainerRestarter.restart
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Before
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) StepEnricherProvider.enrich
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) ContainerEventController.createAfterContext
(I) CreationalContextDestroyer.destory
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) Before
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) StepEnricherProvider.enrich
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) ContainerEventController.createAfterContext
(I) CreationalContextDestroyer.destory
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) Before
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) StepEnricherProvider.enrich
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) ContainerEventController.createAfterContext
(I) CreationalContextDestroyer.destory
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) Before
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) StepEnricherProvider.enrich
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) ContainerEventController.createAfterContext
(I) CreationalContextDestroyer.destory
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) AfterClass
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createSuiteContext
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) ServerSetupObserver.afterTestClass
(O) ContainerEventController.execute
(E) UnDeployManagedDeployments
(O) ContainerDeployController.undeployManaged
(E) UnDeployDeployment
(I) ContainerDeploymentContextHandler.createContainerContext
(I) ContainerDeploymentContextHandler.createDeploymentContext
(O) ContainerDeployController.undeploy
(E) BeforeUnDeploy
(E) AfterUnDeploy
(O) ServerSetupObserver.handleAfterUndeploy
(E) StopManualContainers
(O) ContainerLifecycleController.stopManualContainers
(E) StopClassContainers
(O) ContainerLifecycleController.stopClassContainers
(O) DroneDestructor.destroyClassScopedDrone
(O) GrapheneConfigurator.unconfigureGraphene
(E) GrapheneUnconfigured
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 145.297 sec - in com.procergs.test.integration.RedIt
(E) AfterSuite
(I) TestContextHandler.createSuiteContext
(O) ContainerEventController.execute
(E) StopSuiteContainers
(O) ContainerLifecycleController.stopSuiteContainers
(E) StopContainer
(I) ContainerDeploymentContextHandler.createContainerContext
(O) ContainerLifecycleController.stopContainer
(E) BeforeStop
(O) ArquillianServiceDeployer.undeploy
(E) AfterStop
(O) GrapheneRuntimeInitializer.cleanGrapheneRuntime
(E) ManagerStopping
(O) DroneExecutorService.shutdown
Results :
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:35 min
[INFO] Finished at: 2014-07-11T18:38:27-03:00
[INFO] Final Memory: 43M/425M
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0
and here is the utput without @Cleanup, using the singleton EJB with @starup to clean db before tests. The arquillian.xml remais the same:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.procergs.test.integration.RedIt
(E) ManagerProcessing
(O) LoadableExtensionLoader.load
(E) ServiceRegistryLoader
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
(E) ManagerStarted
(O) ConfigurationRegistrar.loadConfiguration
(E) ArquillianDescriptorImpl
(O) ProtocolRegistryCreator.createRegistry
(E) ProtocolRegistry
(O) ContainerRegistryCreator.createRegistry
(E) LocalContainerRegistry
(O) ScriptingConfigurationClientSideProducer.observe
(E) ScriptingConfiguration
(O) TransactionConfigurationProducer.loadConfiguration
(E) TransactionConfiguration
(O) PersistenceConfigurationClientSideProducer.observe
(E) PersistenceConfiguration
(O) DBUnitConfigurationClientSideProducer.observe
(E) DBUnitConfiguration
(E) BeforeSuite
(I) TestContextHandler.createSuiteContext
(O) GrapheneRuntimeInitializer.injectGrapheneRuntime
(O) ViewResourcesUnpacker.extractResources
(O) DroneRegistrar.register
(E) DroneRegistryImpl
(O) DroneExecutorService.register
(E) DroneExecutorService
(O) ContainerEventController.execute
(E) SetupContainers
(O) ClientDeployerCreator.createClientSideDeployer
(E) ClientDeployer
(O) ContainerLifecycleController.setupContainers
(E) SetupContainer
(I) ContainerDeploymentContextHandler.createContainerContext
(O) ContainerLifecycleController.setupContainer
(E) BeforeSetup
(E) ContainerImpl
(E) AfterSetup
(O) ClientContainerControllerCreator.createClientSideContainerController
(E) ClientContainerController
(E) StartSuiteContainers
(O) ContainerLifecycleController.startSuiteContainers
(E) StartContainer
(I) ContainerDeploymentContextHandler.createContainerContext
(O) ContainerLifecycleController.startContainer
(E) BeforeStart
(E) ManagementClient
(E) ArchiveDeployer
(E) InitialContext
(E) AfterStart
(O) BrowserCapabilitiesRegistrar.register
(E) BrowserCapabilitiesRegistryImpl
(O) ReusableRemoteWebDriverExtension.initialize
(E) ReusedSessionPermanentFileStorage
Jul 11, 2014 7:15:03 PM org.jboss.arquillian.drone.webdriver.factory.remote.reusable.ReusedSessionPermanentFileStorage readStore
Informações: Reused session store is not available at C:\Users\rafael-pestano\.drone-webdriver-session-store, a new one will be created.
(E) ReusedSessionStoreImpl
(E) InitializationParametersMap
(E) BeforeClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(O) GrapheneConfigurator.configureGraphene
(E) GrapheneConfiguration
(E) GrapheneConfigured
(O) DroneConfigurator.prepareGlobalDroneConfiguration
(E) DroneContextImpl
(E) BeforeDroneConfigured
(E) AfterDroneConfigured
(O) DroneCallableCreator.createDroneCallable
(E) BeforeDroneCallableCreated
(E) AfterDroneCallableCreated
(O) DroneConfigurator.prepareDroneConfiguration
(O) ContainerRestarter.restart
(O) ContainerEventController.execute
(E) StartClassContainers
(O) ContainerLifecycleController.startClassContainers
(E) GenerateDeployment
(O) DeploymentGenerator.generateDeployment
d8515216-cc7e-4f8f-b06e-dacfff5210a4.war:
(E) DeploymentScenario
(E) DeployManagedDeployments
(O) ContainerDeployController.deployManaged
(E) DeployDeployment
(I) DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy
(I) ContainerDeploymentContextHandler.createContainerContext
(I) ContainerDeploymentContextHandler.createDeploymentContext
(O) ContainerDeployController.deploy
(E) DeploymentDescription
(E) Deployment
(E) BeforeDeploy
(O) ServerSetupObserver.handleBeforeDeployment
(O) ArchiveDeploymentExporter.callback
(O) ArquillianServiceDeployer.doServiceDeploy
(O) ArchiveDeploymentToolingExporter.export
(E) ProtocolMetaData
(E) AfterDeploy
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Before
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) StepEnricherProvider.enrich
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) CreationalContextDestroyer.destory
(I) ContainerEventController.createAfterContext
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) Before
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) StepEnricherProvider.enrich
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) CreationalContextDestroyer.destory
(I) ContainerEventController.createAfterContext
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) Before
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) StepEnricherProvider.enrich
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) CreationalContextDestroyer.destory
(I) ContainerEventController.createAfterContext
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) Before
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createBeforeContext
(O) TransactionHandler.startTransactionBeforeTest
(O) TestInstanceEnricher.enrich
(O) DroneConfigurator.configureDrone
(O) StepEnricherProvider.enrich
(O) ClientBeforeAfterLifecycleEventExecuter.on
(E) Test
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) ContainerEventController.createTestContext
(O) ClientTestExecuter.execute
(E) RemoteExecutionEvent
(O) RemoteTestExecuter.execute
(E) TestResult
(E) After
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(I) TestContextHandler.createTestContext
(I) UpdateTestResultBeforeAfter.update
(I) CreationalContextDestroyer.destory
(I) ContainerEventController.createAfterContext
(I) TransactionHandler.endTransactionAfterTest
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyMethodScopedDrone
(E) AfterClass
(I) TestContextHandler.createSuiteContext
(I) TestContextHandler.createClassContext
(E) TestClass
(O) ClientBeforeAfterLifecycleEventExecuter.on
(O) DroneDestructor.destroyClassScopedDrone
(O) ServerSetupObserver.afterTestClass
(O) ContainerEventController.execute
(E) UnDeployManagedDeployments
(O) ContainerDeployController.undeployManaged
(E) UnDeployDeployment
(I) ContainerDeploymentContextHandler.createContainerContext
(I) ContainerDeploymentContextHandler.createDeploymentContext
(O) ContainerDeployController.undeploy
(E) BeforeUnDeploy
(E) AfterUnDeploy
(O) ServerSetupObserver.handleAfterUndeploy
(E) StopManualContainers
(O) ContainerLifecycleController.stopManualContainers
(E) StopClassContainers
(O) ContainerLifecycleController.stopClassContainers
(O) GrapheneConfigurator.unconfigureGraphene
(E) GrapheneUnconfigured
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 54.049 sec - in com.procergs.test.integration.RedIt
(E) AfterSuite
(I) TestContextHandler.createSuiteContext
(O) GrapheneRuntimeInitializer.cleanGrapheneRuntime
(O) ContainerEventController.execute
(E) StopSuiteContainers
(O) ContainerLifecycleController.stopSuiteContainers
(E) StopContainer
(I) ContainerDeploymentContextHandler.createContainerContext
(O) ContainerLifecycleController.stopContainer
(E) BeforeStop
(O) ArquillianServiceDeployer.undeploy
(E) AfterStop
(E) ManagerStopping
(O) DroneExecutorService.shutdown
Results :
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:04 min
[INFO] Finished at: 2014-07-11T19:15:55-03:00
[INFO] Final Memory: 43M/426M
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0
Im using eap 6.2 remote adapter.
If you need any more info just tell.
thanks in advance
-
11. Re: Arquillian persistence-dbunit performance issues on Oracle
kwintesencja Jul 29, 2014 11:04 AM (in response to kwintesencja)I've workaround this issue with oracle by using @CleanupUsingScript in my tests and disabling clean strategy in arquillian.xml
<extension qualifier="persistence">
<property name="defaultDataSource">java:jboss/datasources/RedTesteDS</property>
<property name="defaultDataSeedStrategy">INSERT</property>
<property name="defaultCleanupPhase">NONE</property>
<property name="dumpData">false</property>
</extension>
<extension qualifier="persistence-script">
<property name="sqlStatementDelimiter">;</property>
<property name="sqlDialect">oracle</property>
</extension>
Also becareful with the oracle delimiter problem: [ARQ-1444] Oracle does not support query delimiter inside statements - JBoss Issue Tracker
I hope it helps someone
-
12. Re: Arquillian persistence-dbunit performance issues on Oracle
bmajsak Aug 29, 2014 5:06 AM (in response to kwintesencja)Cleanup issue is b/c of the way how sequences are handled for Oracle. Since Alpha7 we have a way to define new one, but apparently it fails on Wildfly... https://issues.jboss.org/browse/ARQ-1815