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 server name and port is correctly specified in the Batch.properties file’s
- 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.
- The property
- The following stack trace example indicates that the connection
to the server named fangorn, on port 2810, was refused.
- 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.
- 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
andpriority_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.