Troubleshooting batch processor issues

Many of the most common issues that occur during batch job processing have simple solutions.

This topic lists some of these common errors and the corresponding resolutions. This is not intended to be a comprehensive list of all of the issues that you might encounter while working with the batch processor.

Failed to initialize the current time utility

If the batch processor instance is not correctly configured, then this is the most common problem that is likely to occur. When the batch processor starts, it attempts to connect to the InfoSphere® MDM operational server to determine the server’s time zone settings as part of initializing the current time. If this connection fails, then the message Failed to initialize the current time utility is returned. This indicates that there is a server connection problem. The batch processor will display the stack trace, which you can then use to find the root cause of the issue.

For example:

  • The following stack trace example indicates that the connection to the server named fangorn, on port 2810, was refused.
    Exception in thread "P=618430:O=0:CT" java.lang.RuntimeException: Failed to initialize the current time utility...
    ...
    Caused by: org.omg.CORBA.TRANSIENT: java.net.ConnectException: Connection refused: connect:host=fangorn,port=2810
    ...

    To address this issue, ensure that:

    • The server name and port is correctly specified in the Batch.properties file’s ServerConfiguration.provider_url property.
    • The server is up and running.
  • The following stack trace indicates that the batch processor user defaultWIMFileBasedRealm/userA does not have the required ServiceConsumer role to run batch transactions.
    Exception in thread "P=618430:O=0:CT" java.lang.RuntimeException: Failed to initialize the current time utility...
    ….
    Caused by: java.rmi.AccessException: CORBA NO_PERMISSION 0x0 No; nested exception is:
            org.omg.CORBA.NO_PERMISSION:
            >> SERVER (id=4773e3aa, host=fangorn) TRACE START:
    
    com.ibm.websphere.csi.CSIAccessException: SECJ0053E: Authorization failed for defaultWIMFileBasedRealm/userA while invoking ... ... #DWLServiceController create::2 is not granted any of the required roles: ServiceConsumer ServiceProvider...

    To address this issue, ensure that the user specified by the property com.ibm.CORBA.loginUserid in the $home/properties/sas.client.props has the required security roles.

  • The following stack trace indicates that the system cannot authenticate the user who is running batch transactions.
    Exception in thread "P=618430:O=0:CT" java.lang.RuntimeException: Failed to initialize the current time utility….
    ...
    Caused by: javax.naming.NoPermissionException: NO_PERMISSION exception caught: Authentication Failed.
    ...

    To address this issue, ensure that the user name and password specified by the properties com.ibm.CORBA.loginUserid and com.ibm.CORBA.loginPassword in the $home/properties/sas.client.props file are correct.

  • The following stack trace indicates that the system cannot set up the SSL subsystem.
    Exception in thread "P=618432:O=0:CT" java.lang.RuntimeException: Failed to initialize the current time utility...
    ...
    Caused by: org.omg.CORBA.COMM_FAILURE: CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL_CLIENT_SOCKET: JSSL0120E: javax.net.ssl.SSLException: Indicates some kind of error detected by an SSL subsystem.  Reason: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty  vmcid: 0x49421000  minor code: 70  completed: No
    ...

    To address this issue, ensure that:

    • The property user.root in the $home/properties/ssl.client.props file correctly points to the batch processor’s home folder.
    • There is a subfolder in the batch processor home folder named etc.
Failed to create the task due to a security violation
The user account for WebSphere® Application Server and application authentication must belong to at least one user group that is specified in the /IBM/DWLCommonServices/Security/TrustedClientMode/Batch/roles configuration item. If this is not the case, then this error will occur.
ERROR     - java.lang.Exception: Failed to create the task. <?xml version="1.0" encoding="UTF-8"?>
...
<TxResponse>
  <RequestType>addTask</RequestType>
  <TxResult>
    <ResultCode>FATAL</ResultCode>
    <DWLError>
      <ComponentType>108</ComponentType>
      <ErrorMessage>Security violation occurred.</ErrorMessage>
      <ErrorType>DIERR</ErrorType>
      <LanguageCode>100</LanguageCode>
      <ReasonCode>4934</ReasonCode>
      <Severity>0</Severity>
    </DWLError>
  </TxResult>
</TxResponse>

This error also occurs if InfoSphere MDM application security is enabled and the task management user does not have proper permission to run the addTask transaction.

To address this issue, ensure that the user security roles and permissions are correctly configured.

The property must be specified for running multiple files
When you run the $home/bin/runbatch.sh script without providing any parameters, the batch processor assumes that you are attempting to start a batch job with multiple input files. For this usage of the script, you must provide valid values for the following properties in the Batch.properties file:
  • SIF_INPUT_PATH
  • SIF_OUTPUT_PATH
  • SIF_INPUT_FILE_NAMES

If these properties are not set, then the batch processor will return a message, such as the following, and then exit:

The property must be specified for running multiple input files: SIF_INPUT_FILE_NAMES

For help on syntax, run the program with argument -?

To address this issue:

  • If you wish to run the script with multiple input files, ensure that the SIF_INPUT_PATH, SIF_OUTPUT_PATH, and SIF_INPUT_FILE_NAMES properties are correctly configured.
  • If you do not intend to run the script with multiple input files, run the runbatch.sh script with the argument -? to view the supported usages and syntax of the command, and then use the correct syntax for the usage of the script that you wish to run.
The number of tasks that require priority to be assigned cannot be greater than the number in a task chain
When you start a batch to run with multiple input files or multiple job templates, you may encounter an error if the number of input files or job templates that require a priority level is greater than the number of priority levels available for a batch activity. If so, a message such as the following displays:
ERROR     - java.lang.Exception: The number of tasks that require priority to be assigned cannot be greater than 20 in a task chain.

The range of available priorities is defined in the Batch.properties file using the priority_min and priority_max properties. All of the priorities within this range (inclusive) must be defined in the code table CDPRIORITYTP. By default, the priorities 10001-10020 are defined. This should be sufficient for most scenarios.

To address this issue:

  • Validate whether you need this amount of input files or job templates, and also whether they all need to have different priorities.
  • For job templates, you can manually control the PriorityType that is used, so these may not require a priority to be assigned by the batch processor.
  • If necessary, define additional priorities in the CDPRIORITYTP code table and then adjust the range of available priorities in the Batch.properties file.
Failed to create the task chain due to an incorrect PriorityType
When the batch processor implicitly creates task chains, it replaces the placeholder <<PriorityType>> in the job templates with priority values within the range defined in the Batch.properties file using the priority_min and priority_max properties. If any priority within this range (inclusive) does not exist in the CDPRIORITYTP code table, you can encounter an error similar to the following:
ERROR     - java.lang.Exception: Failed to create the task chain. . <?xml version="1.0" encoding="UTF-8"?>
...
<TxResponse>
  <RequestType>addTask</RequestType>
  <TxResult>
    <ResultCode>FATAL</ResultCode>
    <DWLError>
      <ComponentType>4076</ComponentType>
      <ErrorMessage>The following is not correct: PriorityType</ErrorMessage>
      <ErrorType>DIERR</ErrorType>
      <LanguageCode>100</LanguageCode>
      <ReasonCode>39915</ReasonCode>
      <Severity>0</Severity>
      <Throwable>com.dwl.base.exception.DWLDataInvalidException: [4076 DIERR 39915 The following is not correct: PriorityType]</Throwable>
    </DWLError>
  </TxResult>
</TxResponse>

This issue can also occur if you are manually controlling the priority using job templates, but have specified a priority that does not exist in the CDPRIORITYTP code table.

To address this issue, ensure that all priority levels in the defined range are configured in the CDPRIORITYTP code table.

High CPU usage when running the batch processor in the background or through a third party scheduler
If the system shows a CPU usage when the batch processor is running as a background process, and the same issue does not occur when it is running as a foreground process, then it is likely that you did not specify the argument </dev/null when you started the runbatch.sh script.