14 Deploying, Testing, and Debugging Inline Services

This chapter describes how to deploy, test, and debug Inline Services.

This chapter contains the following topics:

14.1 Deploying Inline Services

After you have configured your Inline Service, you deploy it locally or to a test environment for testing.

Note:

For Inline Services to be deployed on Oracle RTD systems under WebSphere, you must have disabled parent class loading both in the Inline Service and at the WebSphere administrative level.

In the Inline Service, the application parameter Parent first class loading must not be selected. For details, see Section 13.4.1.1, "Using Debugging Options."

For the setting required at the WebSphere administrative level, see "Disabling Parent Class Loading" in Oracle Fusion Middleware Third-Party Application Server Guide.

You can deploy an Inline Service in three different states: Development, QA, and Production.

You can deploy in the QA state during your testing cycle, and then, after testing, into Production state. When you deploy to Production state, select Release Inline Service locks. After the Inline Service is deployed to business users, they can also update and redeploy the Inline Service.

Note:

Inline Services can be deployed both through Decision Studio and through a command line deployment tool.

This section describes deployment from Decision Studio. For information about command line deployment, see the chapter "Command Line Deployment of Inline Services" in Oracle Fusion Middleware Administrator's Guide for Oracle Real-Time Decisions.

Deploy the Inline Service using the Project > Deploy menu item, or click the Deploy icon on the task bar:

The Deploy icon is an arrow pointing to a server.

The Deploy dialog box appears. The options in the Deploy dialog box are shown in Figure 14-1.

Figure 14-1 Deploy Dialog Box

Description of Figure 14-1 follows
Description of "Figure 14-1 Deploy Dialog Box"

Note:

You must have the proper permissions on the server cluster to deploy an Inline Service. See Oracle Fusion Middleware Administrator's Guide for Oracle Real-Time Decisions for more information about cluster permissions.

Table 14-1 describes the options shown in the Deploy dialog box.

Table 14-1 Options in the Deploy Dialog Box

Option Name Description

Project

Choose the project that you will deploy to Real-Time Decision Server.

Inline Service

The Inline Service contained in this project.

Study Name

Enter a study name for this Inline Service. Each Inline Service's learnings are associated with a study name. If you want to redeploy an Inline service and restart its learnings, deploy it with a new study name. Different study names can be used for Development, QA, and Production.

Deployment State

The default deployment states of Inline Services are Development, QA, or Production. Deployment state marks an Inline Service that is in development, testing, or production so that others are aware of its state.

Your system administrator may have created custom deployment states.

Server

Click this option to enter the server and port to which you want to deploy. In the Server dialog box, provide a valid username and password that has deployment authorization on the server cluster to which you are deploying. Cluster authorization is granted through JConsole by your administrator.

Release Inline Service lock

A deployed Inline Service is automatically locked, and only the user who deployed it is able to redeploy the Inline Service. Once you have completed development and testing and are deploying the Inline Service for production, select Release Inline Service lock to allow Decision Center users to make changes and redeploy the Inline Service.

Terminate Active Sessions

If the Inline Service you are deploying is in production, there may be active sessions. If a new version of the Inline service is deployed while there are active sessions, the older version will be maintained to service those sessions. Select Terminate Active Sessions to terminate the active sessions if you are in testing. For a production Inline Service, keep this option deselected so that any active sessions will continue to run on the production version of the Inline Service. New sessions will be routed to the new version, and the old version will terminate when all active sessions have completed.

Do not activate after deployment

Use this option to deploy the Inline Service to the server, but not start the process. If you would like to activate the Inline Service at a later date, use Fusion Middleware Control. For more information about Fusion Middleware Control, see Oracle Fusion Middleware Administrator's Guide for Oracle Real-Time Decisions.


Note:

After an Inline Service with custom pages is deployed to a certain deployment state, for example Development, the list of custom pages for this state will override the list of custom pages for the same Inline Service previously deployed to any deployment state.

For general information on managing Inline Services, including how to remove an already deployed Inline Service, see "Post-Deployment Management of Inline Services" in Oracle Fusion Middleware Administrator's Guide for Oracle Real-Time Decisions.

14.2 Connecting to Real-Time Decision Server

When deploying or downloading Inline Services or importing data sources, you connect to Real-Time Decision Server. To connect, use the username and password you created on installation, or consult your Administrator for your username and password. To connect in a secure manner using https, select Secure connection.

Figure 14-2 shows the Connect to a Server dialog box.

Figure 14-2 Connect to a Server Dialog Box

Description of Figure 14-2 follows
Description of "Figure 14-2 Connect to a Server Dialog Box"

14.3 Redeploying Inline Services

If you are going to make changes to a deployed Inline Service, it is important to follow these practices in order to preserve both your changes and the potential changes that have been made by the business user. If you are making changes to a deployed Inline Service, you can download it from Real-Time Decision Server using the Download icon on the toolbar. Use the following method:

  1. Make sure that no business users are editing the deployed Inline Service.

  2. Always lock an Inline Service when you download it, so that additional changes cannot be made by business users while you are enhancing it.

  3. Make enhancements in Decision Studio.

  4. Redeploy the Inline Service, releasing the locks.

During the period that you have the Inline Service locked, business users will be able to view, but not edit, the deployed Inline Service.

Note:

While you must use Decision Studio for Inline Service enhancement, you can redeploy the Inline Service either in Decision Studio or by using a command line deployment tool. For more information, see the chapter "Command Line Deployment of Inline Services" in Oracle Fusion Middleware Administrator's Guide for Oracle Real-Time Decisions.

14.4 Testing and Debugging Inline Services

To enable you to test and debug Inline Services, Oracle RTD provides the following facilities and features:

  • Problems and Test Views in Decision Studio

  • System Logs

  • Load Generator

This section contains the following topics:

Load Generator is a tool used for debugging and benchmarking Inline Services by simulating users. Load Generator is used both for testing the Inline Service, and for performance characterization.

For more information about Load Generator, see Chapter 15, "About the Load Generator."

14.4.1 About the Problems View

The Problems view identifies compilation errors and validation errors as the Inline service is built. Double-click a compilation error to display the Java perspective with the error highlighted.

Double-click a validation error to display the Inline Service perspective with the element editor for the element that has validation errors.

14.4.2 Using the Test View

Decision Studio includes a Test view where you can test individual Integration Points. The Test view allows you to simulate the operational systems that will call the Integration Points. The Test view has a drop-down list of all Integration Points in the Inline Service. To test the Integration Point, insert values for the session key and request data and click the run icon to run. Three subtabs provide information about the Integration Point: Results, Trace, and Log.

The Results tab shows the results of calling an Advisor Integration Point. Only Advisors return results. For testing Informants and for debugging both kinds of Integration Points, use logInfo().

You can use the statement logInfo() at various points in your code as a debugging device. This statement is helpful to use in elements such as Advisors or Informants, Decisions, functions, and so on. Insert the statement into the logic pane of the element and use it as a device to display in the log data at different stages.

This section contains the following topics:

14.4.2.1 Using logInfo()

The Log tab gives a view of all logInfo() statements.

The logInfo method is part of the logging API described in the Decision Studio online help. The class com.sigmadynamics.supportClass SDOBase contains methods for logging messages at the informational, debug, warning, and error levels. These logging methods generally accept a string and another argument as parameters.

Two examples of using logInfo are as follows:

logInfo("Installation date = " + DateUtil.toString(session().getCustomer().
getInstallationDate());

logInfo("Customer age = " + session().getCustomer().getAge() );

Note:

For information on how to output to the Oracle RTD log the value of all session entity attributes or of a specified entity and its attributes, see Section 13.6.21, "Enhanced Entity Attribute Logging."

14.4.2.2 Testing for Incoming Request Data

When testing an Integration Point, you can check for the incoming request data using the following methods. If the incoming parameter is mapped to a session attribute, there is a get method for the parameter:

request.get$()

where $ is the parameter name with the first letter capitalized.

If the attribute is not mapped, there are methods to achieve the same results using the field name of the parameter:

String request.getStringValue(fieldName)
SDStringArray request.getStringArrayValue(fieldName)
boolean request.isArgPresent(fieldName)

Outgoing response data is always stored in a SDChoiceArray:

SDChoiceArray choices = null;

The Decision is executed by the Integration Point, and the Choice is stored:

if (session().isControlGroup()) {
  choices = RandomChoice.execute();
} else {
  choices = SelectOffer.execute();
}

To find out what the Choice is, you can get them from the array and use getSDOId or getSDOLabel.

if (choices.size() > 0) {
  Choice ch = choices.get(0);
  ch.getSDOId();
}

The best place to do this is in the Post Selection Logic of the Decision. After the Decision executes, the post selection logic will run.

14.4.3 Using System Logs for Testing and Debugging Inline Services

You can use system logs to help you test and debug Inline Services, and also for performance monitoring and tuning.

The Oracle RTD runtime log files have the general name:

  • RTD_RUNTIME_HOME\log\server_name-diagnostic[-<n>].log

where server_name is the WebLogic Server on which Oracle RTD is running.

For more information, see "System Log and Configuration Files" in Oracle Fusion Middleware Administrator's Guide for Oracle Real-Time Decisions.