skip to main content
Corticon Server: Integration & Deployment Guide : Using Corticon Server logs : Troubleshooting Corticon Server problems
 

Try Corticon Now

Troubleshooting Corticon Server problems

When the Corticon Server has issues, the primary troubleshooting tool is the set of log files produced during Corticon Server operation, whether as Studio test server or as deployed Server.
By default, Corticon Server produces one log that records all the activities of running Decision Services at the specified log level. While higher detail levels produce a more comprehensive basis for analysis, the details of all running Decision Services will also generate detail information into the log. When diagnosing problems, you might want to use Corticon Server's ability to generate logs for each Decision Service so that you can produce detailed logs for each service.
The following procedure shows how to set the Server log to expose additional information, as well as to expand its data capture to detailed debugging mode.
Note: Consider backing up and then deleting all the log files and archives in the \logs folder so that you get only what is logged from your tests under the log settings. It is good to start with a fresh logs that record only the problematic transaction. The next time Corticon Server processes a transaction, a new log file will be created and entries recorded in it.

Setting logging content

See Configuring log content for more information.
1. Edit the installation's brms.properties file.
2. Change the loglevel to a level that should bring in the operational activities that will reveal the problem, perhaps DEBUG.
3. Change logFiltersAccept to list activity elements that you think will be relevant.
4. Save the file.
5. Stop, then restart the server.

Setting logging for each Decision Service

See Log for each Decision Service for more information.
1. Edit the brms.properties file.
2. Change the value of com.corticon.server.execution.logPerDS to true.
3. Save the file.
4. Stop, then restart the server.

Examining log files

1. Once you have restarted the server, rerun your tests.
2. In a text editor, navigate to [CORTICON_WORK_DIR]\logs to open the appropriate current logfile: Studio's is CcStudio.log, Server's is CcServer.log, and individual Decision Service (DSname) logs are Corticon-DSname.log.
3. Look for the indicators of problems that are described in the following sections.

Logs not created

Logging does not start until the server is invoked. Even though started, as viewed in its startup window, logs are not initialized until an activity occurs.
However, if you have routed a Corticon Request to the server and no log is produced, it is likely that the invocation/request is not even reaching the server. The most common causes of a non-responsive (invocation produces no log file entry) Corticon Server include:
*Incorrect Corticon Server deployment. Review your deployment procedures to confirm the deployment files and paths.
*Incorrect Corticon Server invocation
*Incorrect URL - If using a web services deployment, ensure the SOAP message is addressed correctly, and that no firewalls or port configurations prevent the SOAP message from reaching Corticon Server.
*Incorrect API - Review the Administrative APIs for details on Java APIs available for Corticon Server invocation.
See the complete Java Server JavaDocs in Studio and Java Server installations at [CORTICON_HOME]\JavaDoc.
*Even though Corticon Server may not respond to an incorrect invocation, the host server or container (app server, web server, and similar) may respond either at a command line or log level. Check to see if the host server has responded to your invocation.

Response containing errors

The most common causes of erroneous Corticon Server responses include:

Problems with a request

Invalid syntax and misnamed targets are common problems with requests:
Message payload does not conform to service contract - Compare your SOAP message to the service contract produced by the Deployment Console to ensure compliance. Many third-party tools are available that automatically validate an XML document (in this case, the SOAP message) to its schema (in this case, the WSDL service contract). Notice that if Corticon Server cannot even parse the inbound SOAP message, no entry will be made in Corticon Server's log. Instead, the error message will be displayed directly in the web server window, as shown:
Figure 318. Server Window Message Highlighting Incorrect SOAP/XML Request Structure
Poorly formed JSON request - Syntax errors in a JSON message generate an error message in the web server window, as shown:
Figure 319. Server Window Message Highlighting Incorrect JSON Request Structure
Incorrect or missing Decision Service Name - Ensure the SOAP/XML message's Decision Service Name attribute matches the name of the Decision Service as it was deployed by either a deployment descriptor file or an API method call, as shown:
Figure 320. Log Excerpt Highlighting Missing Decision Service Name in SOAP/XML Request

Review Decision Service metadata in different environments

Corticon log files add metadata on each Decision Service as it is loaded so that you can confirm consistent loading of a Decision Service instance in different environments. For example, the log header will have lines similar to the following::

2015-08-20 14:39:52.784 INFO DIAGNOSTIC [localhost-startStop-1] Cc com.corticon.eclipse.server.core.impl.CcServerPool -
ADD DECISION SERVICE ::: DecisionServiceName=Cargo,Version=1.0,CompiledVersionNumber=5.5.1,
CompiledBuildNumber=7300,EDSTimestamp=08/03/15 4:04:03 PM,
RuleCount=2,MaxPoolSize=1,AutoReload=true,CddPath=C:/_55x_install_dir/work_dir/Server/cdd/Cargo.cdd,
DatabaseAccessMode=null,ReturnEntities=ALL,ContainsServiceCallouts=false
...
2015-08-20 14:39:52.815 INFO DIAGNOSTIC [localhost-startStop-1] Cc com.corticon.eclipse.server.core.impl.CcServerPool -
ADD DECISION SERVICE ::: DecisionServiceName=ProcessOrder,Version=1.10,CompiledVersionNumber=5.5.1,
CompiledBuildNumber=7300,EDSTimestamp=08/03/15 4:04:07 PM,
RuleCount=6,MaxPoolSize=1,AutoReload=true,CddPath=C:/_55x_install_dir/work_dir/Server/cdd/OrderProcessing.cdd,
DatabaseAccessMode=null,ReturnEntities=ALL,ContainsServiceCallouts=false
The metadata is recorded in the log for each Decision Service at every server startup, at every log rollover, and whenever a Decision Service is added, updated, or deleted.

Corticon Server license problem

The basic license issues are as follows:
License not installed - The CcLicense.jar license file must be located in the same directory as your server installation's CcServer.jar file. In the default installation, CcServer.jar is located in [CORTICON_WORK_DIR]\Server\pas\server\webapps\axis\WEB-INF\lib, so ensure your valid license file is there.
See the topic Updating your Corticon Server license for more information.
Note: If you are using one of the .war or .ear packages, then be sure that those packages also include valid copies of CcLicense.jar.
License expired - If your license indicates that it has expired, contact your Progress Corticon representative to obtain an updated license file.
Corticon Server logs this information as:
This Product is licensed to: {name} - {use}
Progress Corticon Server license has expired.
Please contact Customer Support to receive a valid Key.
Corticon Studio alerts the user at startup, and then limits functionality:
Figure 321. License Expiration alert at Studio startup
License Invalid - If your license indicates that it is invalid, contact your Progress Corticon representative to obtain a valid license file.
Figure 322. Log Excerpt Highlighting License Invalid Message
License capacity exceeded - License capacity is measured in several ways:
*Number of unique Decision Services that may run concurrently in Corticon Server. Make sure your license can support the total number of unique .erf files referenced by deployed .cdd files.
*Number of rules allowed for all Decision Services deployed. Make sure your license can support the total number of rules contained in all the deployed .erf files.

Deployment Descriptor (.cdd) file problems

The following items are common Deployment Descriptor file problems:
Missing Ruleflow (.erf)file - The .erf file has been moved and is no longer located in the directory referenced by the .cdd file. For example, the log might record:
Failed -> Cdd C:\Users\Admin\Progress\CorticonWork5.5\OrderProcessing.cdd
Could not find a valid Ruleflow located at
C:/Users/Admin/Progress/Samples/Rule Projects/OrderProcessing/Order.erf
Missing Deployment Descriptor (.cdd) file - The .cdd file is missing from the \cdd directory, or the taskname contained in the SOAP request message does not match any of the tasknames in any of the .cdd files deployed to Corticon Server. For example, the log might record:
... |ERROR|com.corticon.service.ccserver.exception.CcServerDecisionService.notRegisteredException:
CcServerDecisionService.lookupCcServerPoolForExecution () Decision Service:
OrderProcess is not registered. Update failed. (Missing pool manager)
Missing \cdd directory - The default location of the cdd directory in a server installation is [CORTICON_WORK_DIR]\cdd. For example, the log might record:
java.rmi.RemoteException: Unexpected Error; nested exception is:
com.corticon.service.ccserver.exception.CcServerInvalidArgumnentException:
CcServer.loadDromCddDir (String) Directory does not exist.

Object translation errors due to incorrect Vocabulary external name mappings

*External names mapped incorrectly
*External data types specified incorrectly
*ALL entities must be mapped, even those where all attributes are transient.