use of org.apache.ode.bpel.engine.BpelServerImpl in project carbon-business-process by wso2.
the class BPELServerImpl method initBPELServer.
/**
* Init ODE BpelServer.
*
* @param eprContext endpoint reference context.
*/
private void initBPELServer(EndpointReferenceContext eprContext) {
initExecutorService(createThreadFactory());
odeBpelServer = new BpelServerImpl();
setupJobScheduler();
setupCronScheduler();
odeBpelServer.setDaoConnectionFactory(daoConnectionFactory);
odeBpelServer.setInMemDaoConnectionFactory(new BpelDAOConnectionFactoryImpl(scheduler, odeConfigurationProperties.getInMemMexTtl()));
odeBpelServer.setEndpointReferenceContext(eprContext);
odeBpelServer.setMessageExchangeContext(new BPELMessageExchangeContextImpl());
odeBpelServer.setBindingContext(new BPELBindingContextImpl(this));
odeBpelServer.setScheduler(scheduler);
// TODO: Analyze a way of integrating with lazy loading
activateDehydration();
odeBpelServer.setMigrationTransactionTimeout(odeConfigurationProperties.getMigrationTransactionTimeout());
odeBpelServer.setConfigProperties(odeConfigurationProperties.getProperties());
odeBpelServer.init();
odeBpelServer.setInstanceThrottledMaximumCount(odeConfigurationProperties.getInstanceThrottledMaximumCount());
odeBpelServer.setProcessThrottledMaximumCount(odeConfigurationProperties.getProcessThrottledMaximumCount());
odeBpelServer.setProcessThrottledMaximumSize(odeConfigurationProperties.getProcessThrottledMaximumSize());
odeBpelServer.setHydrationLazy(odeConfigurationProperties.isHydrationLazy());
odeBpelServer.setHydrationLazyMinimumSize(odeConfigurationProperties.getHydrationLazyMinimumSize());
}
use of org.apache.ode.bpel.engine.BpelServerImpl in project carbon-business-process by wso2.
the class TenantProcessStoreImpl method handleUndeployOnSlaveNode.
/**
* Undeployment scenario in a worker node( Slave ) in the clustered setup
* When the BPELDeployer get called for undeploying the bpel package, following has already taken place.
* The package information stored in the registry as well as the zip archive is deleted
* Process, Instance information have been removed from the ODE database
* However, on the slave node, the bpel process and the web services associated with the bpel process
* is still in memory. We need to unload the bpel process and the associated web services
*
* @param bpelPackageName bpel package name
* @return
*/
private int handleUndeployOnSlaveNode(String bpelPackageName) {
List<String> packageList = findMatchingProcessByPackageName(bpelPackageName);
if (packageList.size() < 1) {
log.debug("Handling un-deploy operation on salve (worker) node : package list is empty");
return -1;
}
for (String packageName : packageList) {
// location for extracted BPEL package
String bpelPackageLocation = parentProcessStore.getLocalDeploymentUnitRepo().getAbsolutePath() + File.separator + tenantId + File.separator + packageName;
File bpelPackage = new File(bpelPackageLocation);
// removing extracted bpel package at repository/bpel/tenantID/
deleteBpelPackageFromRepo(bpelPackage);
for (QName pid : getProcessesInPackage(packageName)) {
ProcessConfigurationImpl processConf = (ProcessConfigurationImpl) getProcessConfiguration(pid);
// This property is read when we removing the axis service for this process.
// So that we can decide whether we should persist service QOS configs
processConf.setUndeploying(true);
}
}
Collection<QName> undeployedProcesses = new ArrayList<QName>();
for (String nameWithVersion : packageList) {
undeploySpecificVersionOfBPELPackage(nameWithVersion, undeployedProcesses);
}
BPELServerImpl instance = BPELServerImpl.getInstance();
BpelServerImpl odeBpelServer = instance.getODEBPELServer();
for (QName pid : undeployedProcesses) {
odeBpelServer.unregister(pid);
ProcessConf pConf = parentProcessStore.getProcessConfiguration(pid);
if (pConf != null) {
if (log.isDebugEnabled()) {
log.debug("Cancelling all cron scheduled jobs for process " + pid);
}
odeBpelServer.getContexts().cronScheduler.cancelProcessCronJobs(pid, true);
}
log.info("Process " + pid + " un-deployed.");
}
parentProcessStore.updateProcessAndDUMapsForSalve(tenantId, bpelPackageName, undeployedProcesses);
return 0;
}
Aggregations