List<IDuccProcess> jobProcessList = new ArrayList<IDuccProcess>();
long normalizedProcessMemoryRequirements = normalizeMemory(dcj.getSchedulingInfo().getShareMemorySize(),dcj.getSchedulingInfo().getShareMemoryUnits());
int shares = getShares(normalizedProcessMemoryRequirements);
long processAdjustedMemorySize = shares * shareQuantum * 1024;
ProcessMemoryAssignment pma = new ProcessMemoryAssignment();
pma.setShares(shares);
pma.setNormalizedMemoryInMBs(processAdjustedMemorySize);
// Copy job processes
for( Entry<DuccId,IDuccProcess> jpProcess : dcj.getProcessMap().getMap().entrySet()) {
jobProcessList.add(jpProcess.getValue());
}
if ( dcj.getUimaDeployableConfiguration() instanceof DuccUimaDeploymentDescriptor ) {
// Add deployment UIMA AS deployment descriptor path
((JavaCommandLine)dcj.getCommandLine()).
addArgument(((DuccUimaDeploymentDescriptor)dcj.getUimaDeployableConfiguration()).getDeploymentDescriptorPath());
}
// Calculate Process memory allocation including a fudge factor (if one is defined). The
// returned value is in terms of Megs.
// long processAdjustedMemorySize =
// calculateProcessMemoryAssignment(dcj.getSchedulingInfo().getShareMemorySize(),
// dcj.getSchedulingInfo().getShareMemoryUnits());
// add fudge factor (5% default) to adjust memory computed above
processAdjustedMemorySize += (processAdjustedMemorySize * ((double)fudgeFactor/100));
pma.setMaxMemoryWithFudge(processAdjustedMemorySize);
logger.info(methodName,dcj.getDuccId(),"--------------- User Requested Memory For Process:"+dcj.getSchedulingInfo().getShareMemorySize()+dcj.getSchedulingInfo().getShareMemoryUnits()+" PM Calculated Memory Assignment of:"+processAdjustedMemorySize);
ICommandLine driverCmdLine = null;
IDuccProcess driverProcess = null;