CApp is a self contained project. So you cant update part of the project as
every artifact in the CApp is part of it. If any update needed, it should
be to whole CApp project and it should come through the process starting
from DevStudio -> Update Artifact -> Repack CApp -> Update CApp in Server.
This is our recommendation.

Other ways to update an artifact in CApp is not recommended. We need to
update the docs.


On Wed, Jan 22, 2014 at 11:10 AM, Asanka Vithanage <asan...@wso2.com> wrote:

> Hi All,
>
> If some user try to update a artifact deployed through an CApp as
> described in below scenario, What should be the our answer to an user?
>
> *Scenario:*
> 1. User have created a CApp which include all the artifacts need to try
> out MS and MP on ESB [Attached a such artifact].
> 2. Start the ESB server and Deploys the created CApp on ESB server
> 3. Due to some reason user wants to just change an one Message Processor
> parameter like "Maximum delivery attempts", So using admin console UI he
> changes the parameter value {[UI is the easiest way to do such a small
> change]
> 4. Once user restart the server, he will experience the below listed
> exception on stack-trace due to artifact duplication.
>
> *Note*:
> With current CApp deploy architecture all artifacts deployed through a
> CApp keep on a temporarily location
> [wso2esb-4.8.1/repository/carbonapps/work/] and At every restart CApp will
> redeploy again.
> But if user edits one of capp deployed artifacts It will duplicate same
> artifact inside wso2esb-4.8.1/repository/deployment/server folder hierarchy
> as well.So artifact duplication happen at server restart time.
>
>
> So whats our stand on this kind of situation?
> May be we can say we are not allow to update CApp deployed artifacts
> through Admin console UI.
> But we do have real usability issue here, since users tend to use admin
> console UI to make a small changes on an artifact.
> Further our docs [1] does not say anything about this as well.
>
> [This concern is valid for all the wso2 products which supports CApp
> deployment]
>
>
> *Observed following Error:*
>
> [2014-01-21 18:17:55,517] ERROR - MessageProcessorDeployer Message
> Processor Deployment from the file :
> /home/asankav/servers/releasetest/ESB481/wso2esb-4.8.1/repository/carbonapps/work/1390308470104ESB_MSandMP_WSO2MB_Schenario_TestPack_O_CApp_1.0.0.car/MessageProcessorO1_1.0.0/MessageProcessorO1-1.0.0.xml
> : Failed.
> org.apache.synapse.SynapseException: Error scheduling job : JobDetail
> 'synapse.message.processor.quartz.MessageProcessorO1-job':  jobClass:
> 'org.apache.synapse.message.processor.impl.forwarder.ForwardingService
> concurrentExectionDisallowed: false persistJobDataAfterExecution: false
> isDurable: false requestsRecovers: false with trigger Trigger
> 'DEFAULT.MessageProcessorO1-trigger':  triggerClass:
> 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null'
> misfireInstruction: 4 nextFireTime: Tue Jan 21 18:17:55 IST 2014
>     at
> org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:153)
>     at
> org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.init(ScheduledMessageProcessor.java:108)
>     at
> org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor.init(ScheduledMessageForwardingProcessor.java:43)
>     at
> org.apache.synapse.deployers.MessageProcessorDeployer.deploySynapseArtifact(MessageProcessorDeployer.java:52)
>     at
> org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:190)
>     at
> org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifacts(SynapseAppDeployer.java:140)
>     at
> org.wso2.carbon.application.deployer.internal.ApplicationManager.deployCarbonApp(ApplicationManager.java:251)
>     at
> org.wso2.carbon.application.deployer.CappAxis2Deployer.deploy(CappAxis2Deployer.java:114)
>     at
> org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
>     at
> org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807)
>     at
> org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
>     at
> org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377)
>     at
> org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254)
>     at
> org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371)
>     at
> org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59)
>     at
> org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67)
>     at
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:79)
>     at
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:124)
>     at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>     at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>     at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>     at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
>     at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>     at java.lang.Thread.run(Thread.java:662)
> Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job :
> 'synapse.message.processor.quartz.MessageProcessorO1-job', because one
> already exists with this identification.
>     at org.quartz.simpl.RAMJobStore.storeJob(RAMJobStore.java:277)
>     at
> org.quartz.simpl.RAMJobStore.storeJobAndTrigger(RAMJobStore.java:249)
>     at
> org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:840)
>     at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:250)
>     at
> org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:151)
>     ... 26 more
> [2014-01-21 18:17:55,575] ERROR - AbstractSynapseArtifactDeployer
> Deployment of the Synapse Artifact from file :
> /home/asankav/servers/releasetest/ESB481/wso2esb-4.8.1/repository/carbonapps/work/1390308470104ESB_MSandMP_WSO2MB_Schenario_TestPack_O_CApp_1.0.0.car/MessageProcessorO1_1.0.0/MessageProcessorO1-1.0.0.xml
> : Failed!
> org.apache.synapse.deployers.SynapseArtifactDeploymentException: Message
> Processor Deployment from the file :
> /home/asankav/servers/releasetest/ESB481/wso2esb-4.8.1/repository/carbonapps/work/1390308470104ESB_MSandMP_WSO2MB_Schenario_TestPack_O_CApp_1.0.0.car/MessageProcessorO1_1.0.0/MessageProcessorO1-1.0.0.xml
> : Failed.
>     at
> org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.handleSynapseArtifactDeploymentError(AbstractSynapseArtifactDeployer.java:471)
>     at
> org.apache.synapse.deployers.MessageProcessorDeployer.deploySynapseArtifact(MessageProcessorDeployer.java:71)
>     at
> org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:190)
>     at
> org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifacts(SynapseAppDeployer.java:140)
>     at
> org.wso2.carbon.application.deployer.internal.ApplicationManager.deployCarbonApp(ApplicationManager.java:251)
>     at
> org.wso2.carbon.application.deployer.CappAxis2Deployer.deploy(CappAxis2Deployer.java:114)
>     at
> org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
>     at
> org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807)
>     at
> org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
>     at
> org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377)
>     at
> org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254)
>     at
> org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371)
>     at
> org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59)
>     at
> org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67)
>     at
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:79)
>     at
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:124)
>     at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>     at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>     at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>     at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
>     at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>     at java.lang.Thread.run(Thread.java:662)
> Caused by: org.apache.synapse.SynapseException: Error scheduling job :
> JobDetail 'synapse.message.processor.quartz.MessageProcessorO1-job':
> jobClass:
> 'org.apache.synapse.message.processor.impl.forwarder.ForwardingService
> concurrentExectionDisallowed: false persistJobDataAfterExecution: false
> isDurable: false requestsRecovers: false with trigger Trigger
> 'DEFAULT.MessageProcessorO1-trigger':  triggerClass:
> 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null'
> misfireInstruction: 4 nextFireTime: Tue Jan 21 18:17:55 IST 2014
>     at
> org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:153)
>     at
> org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.init(ScheduledMessageProcessor.java:108)
>     at
> org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor.init(ScheduledMessageForwardingProcessor.java:43)
>     at
> org.apache.synapse.deployers.MessageProcessorDeployer.deploySynapseArtifact(MessageProcessorDeployer.java:52)
>     ... 23 more
> Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job :
> 'synapse.message.processor.quartz.MessageProcessorO1-job', because one
> already exists with this identification.
>     at org.quartz.simpl.RAMJobStore.storeJob(RAMJobStore.java:277)
>     at
> org.quartz.simpl.RAMJobStore.storeJobAndTrigger(RAMJobStore.java:249)
>     at
> org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:840)
>     at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:250)
>     at
> org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:151)
>     ... 26 more
>
>
> [1] http://docs.wso2.org/display/Carbon420/C-App+Deployment+Process
>
> --
> Asanka Vithanage
> Senior Software Engineer -QA
> Mobile: +94 0716286708
> Email: asan...@wso2.com
> WSO2 Inc. www.wso2.com
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Kishanthan Thangarajah*
Senior Software Engineer,
Platform Technologies Team,
WSO2, Inc.
lean.enterprise.middleware

Mobile - +94773426635
Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>*
Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to