Hi,
I have a multi thread batch that it doesn't matter what batch group I select to be executed in, the thread tasks are always created on the empty batch group. If affects how is processed because the batch group I want my process to run has some batch servers assigned for its processing and the empty batch group has a different set of servers for processing.
This means that any batch process I have that is multi thread will run its child tasks on the wrong servers rather than the ones defined in the batch group I selected when executing the process.
Class: CustAgingSnapshot
// Code to create the batch header
if (!hasJobBeenSplit && isRunInBatch)
{
batchHeader = BatchHeader::getCurrentBatchHeader();
if (batchHeader == null)
{
batchHeader::construct(this.parmCurrentBatch().RecId);
}
// Code to create the extra tasks
private void createSubJobs(BatchHeader _batchHeader)
{
CustAgingSnapshot custAgingSnapshot;
custAgingSnapshot = CustAgingSnapshot::construct();
custAgingSnapshot.unpack(this.pack());
custAgingSnapshot.parmHasJobBeenSplit(true);
batchInfo = custAgingSnapshot .batchInfo();
batchInfo.parmCaption(strFmt('%1 : %2', fromCustomer, toCustomer));
_batchHeader.addRuntimeTask(custAgingSnapshot, this.parmCurrentBatch().RecId);
}
End result:
The very first task that is created when the batch is created and it's assigned with the right batch group I selected when executing my process, the following tasks created with an empty batch group, hence they are executed in another servers.
How can I make sure child tasks are created with the same batch group?
Thanks,
*This post is locked for comments
I have the same question (0)

Report
All responses (
Answers (