Search in sources :

Example 1 with BpelServerImpl

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());
}
Also used : BpelServerImpl(org.apache.ode.bpel.engine.BpelServerImpl) BpelDAOConnectionFactoryImpl(org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl)

Example 2 with BpelServerImpl

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;
}
Also used : BpelServerImpl(org.apache.ode.bpel.engine.BpelServerImpl) QName(javax.xml.namespace.QName) BPELServerImpl(org.wso2.carbon.bpel.core.ode.integration.BPELServerImpl) ProcessConf(org.apache.ode.bpel.iapi.ProcessConf) ArrayList(java.util.ArrayList) File(java.io.File)

Aggregations

BpelServerImpl (org.apache.ode.bpel.engine.BpelServerImpl)2 File (java.io.File)1 ArrayList (java.util.ArrayList)1 QName (javax.xml.namespace.QName)1 ProcessConf (org.apache.ode.bpel.iapi.ProcessConf)1 BpelDAOConnectionFactoryImpl (org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl)1 BPELServerImpl (org.wso2.carbon.bpel.core.ode.integration.BPELServerImpl)1