<Loggers>
...
<AsyncLogger name="com.mulesoft.connectors.workday" level="DEBUG"/>
...
</Loggers>
Troubleshooting Workday Connector 15.0 - Mule 4
To troubleshoot Anypoint Connector for Workday (Workday Connector), become familiar with the information about addressing specific common errors and interpreting commonly thrown exception messages.
Enable SSL Logging
Enable SSL logs to investigate an issue related to TLS communications.
Set your SSL log level depending on your required level of detail:
-
Enable only SSL log details:
javax.net.debug=ssl
-
Enable only handshaking details. (The handshake protocol is a series of messages exchanged over the record protocol.)
javax.net.debug=ssl:handshake
-
Enable handshaking details and SSL details at the same time:
javax.net.debug=ssl, handshake
-
Enable the dumping of all details and traffic data:
javax.net.debug=all
This option is very verbose and under normal circumstances is not necessary.
SSL logging results in a performance impact for HTTPS or other TLS connections. Enable SSL logging only to troubleshoot a specific issue and do not enable it for extended periods. SSL logging produces a significant amount of log messages and can inundate your log file if it is left enabled and unattended. |
To enable SSL logs:
Set the debug parameter as an argument in the runtime configuration for the application.
-
In Studio, right-click on the project and select Run > Run Configurations.
-
Go to the Arguments tab and add
-M-Djavax.net.debug=ssl
in the VM arguments section.
Enable Verbose Exception Logging
Enable verbose exception logs to show a complete stack trace of the error instead of the default truncated output:
-
In Studio, right-click on the project and select Run > Run Configurations.
-
Go to the Arguments tab and append the arguments in the VM arguments section to add the
mule.verbose.exceptions
property. For example:-XX:PermSize=128M -XX:MaxPermSize=256M -Dmule.verbose.exceptions=true
Enable Verbose Logging
To get a better understanding of why an application’s interaction with Workday Connector is failing, temporarily enable verbose logging for the connector.
Remember to always disable enhanced verbosity after troubleshooting, because it can affect your Mule application’s performance.
To enable verbose logging in the configuration file:
-
Access Anypoint Studio and navigate to the Package Explorer view.
-
Open your application’s project name.
-
Open the
src/main/resources
folder. -
Open the
log4j2.xml
file inside the folder. -
Add an
<AsyncLogger>
tag inside the<Loggers>
tag: -
Save your application changes.
-
Click the project name in Package Explorer and then click Run > Run As > Mule Application.
Troubleshoot Common Errors
Here is a list of the common Workday Connector errors and how to resolve them:
Connectivity Errors
The connector throws CONNECTIVITY
errors to trigger the reconnection process. If the connector throws a CONNECTIVITY
error and reconnection is configured for the configuration that throws the error, the connector recreates the session and retries the operation automatically.
The reconnection process is handled by Mule runtime and comes with some exceptions, for example, if a CONNECTIVITY
error is thrown during the connection creation process, then the reconnection is not triggered even if reconnection is configured. This is because the CONNECTIVITY
error occurs while connecting to the third-party system, so the CONNECTIVITY
error (usually caused by expired credentials or misconfiguration) is likely to occur every time, which retries the reconnection as many times as the reconnection is configured. It is the user’s responsibility to handle CONNECTIVITY
errors if they are thrown during connection creation.
Remove the Warning on Every HTTP Call
Workday Connector logs the following warning message on every HTTP call:
WARN 2020-11-10 10:51:57,494 [[MuleRuntime].uber.12: [workday].workdayFlow.BLOCKING @766054e8] [processor: ; event: 5ec7a670-233a-11eb-a099-f018989d247f] com.ning.http.client.RequestBuilderBase: Value was null, set to ""
To remove this warning from the Anypoint Studio console, update src/main/resources/log4j2.xml
with the following line:
<AsyncLogger name="com.ning.http.client.RequestBuilderBase" level="ERROR"/>
Timeout in Studio
Due to connectivity issues, you might experience a timeout while obtaining metadata from Workday Connector and receive one of the following errors:
-
Error While Retrieving SOAP Client ID
org.mule.runtime.api.exception.MuleRuntimeException: Error while retrieving soap client id [Absence_Management] org.mule.runtime.api.exception.MuleRuntimeException: Error while retrieving soap client id [Absence_Management] Caused by: java.util.concurrent.ExecutionException: org.mule.wsdl.parser.exception.WsdlParsingException: Error processing WSDL file [https://wd3-impl-services1.workday.com/ccx/service/deakin_amu1/Absence_Management/v29.1?wsdl]: Unable to locate document at 'https://wd3-impl-services1.workday.com/ccx/service/deakin_amu1/Absence_Management/v29.1?wsdl'.
-
Mule Agent REST Service Timed Out
org.mule.tooling.client.api.exception.TimeoutException: Mule Agent REST service timed out org.mule.tooling.client.api.exception.TimeoutException: Mule Agent REST service timed out javax.ws.rs.ProcessingException: java.net.SocketTimeoutException: Read timed out at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:244) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:245) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:671) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:668) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:668) at
To resolve this error:
Increase the timeout values in Anypoint Studio:
-
In Anypoint Studio, go to Preferences > Anypoint Studio > Tooling.
-
Increase the values to double the default value for
Default Connection Timeout
andDefault Read Timeout
. -
Click Apply and restart Studio.
Get Degrees Error When Testing the Connection
When validating connectivity using the Test Connection button, you might encounter an error regarding the Get_Degrees
operation:
org.mule.runtime.api.exception.MuleRuntimeException: java.lang.RuntimeException: Unexpected error while consuming the web service operation [Get_Degrees]
To validate connectivity using the Test Connection button, Workday Connector uses a Performance_Management
service with the Get_Degrees
operation. You must ensure that your service account has the required permissions to operate on that service. To resolve this error, grant permissions for the Get_Degrees
operation in the Performance_Management
web service.
Understand Commonly Thrown Exceptions
Here is a list of commonly thrown exception messages and how to interpret them:
-
WORKDAY:CONNECTIVITY
A connection cannot be established.
-
WORKDAY:PROCESSING_ERROR
A processing error occurs, for example, the connector cannot read from the inbound message.
-
WORKDAY:RETRY_EXHAUSTED
The maximum number of retries for the operation is reached.
-
WORKDAY:VALIDATION_ERROR
A validation error occurs, for example, an inactive organization includes an active organization.