Server Reference Guide
Introduction
The OpenROAD Server
Intended Audience
OpenROAD Documentation
Path Notation in This Guide
Your Support Options
OpenROAD Server Architecture Overview
OpenROAD Architectural Overview
OpenROAD Server Overview
OpenROAD Server
OpenROAD Server Clients
JSON Configuration File
SPO Log
Ingres or Enterprise Access Servers
OpenROAD Server Components
OpenROAD Server Pooler (SPO)
OpenROAD Application Slave (ASO)
OpenROAD Server Controller
OpenROAD Server Pooler Internals
CSPO (Client Surrogate)
DispatcherMgr (Dispatcher Manager)
Controller (Server Pooler Controller Surrogate)
Configurator (Configuration Parameter Access)
Event Log (SPO Logging)
Dispatcher (Application Signature Dispatcher)
Slave (ASO Slave Manager)
OpenROAD Server Components
Components
COM Objects
Remote Server Object (RSO)
Parameter Data Object (PDO)
4GL Remote Procedure Calls
Automation Types
Private and Shared Servers
Private Server
Shared Server
Name Server
OpenROAD Server Library (ASOLib)
Business Policy Manager
OpenROAD Server Manager (Server Manager)
Object Factory Methodology
How You Can Use Object Factory Methodology
Designing and Writing OpenROAD Server Applications
Application Design
Stateless Design
Stateful Design
Persistent Session Context
OpenROAD Application Container
OpenROAD Application Requirements
Application Image
Ghost Frame
OpenROAD Server StartGhost: Sample Script
Session Tracing
Non-interactive 4GL Procedures
How You Can Manage State in Private and Shared Servers
ORSPO.EXE: Configuration Options
Shutdown Notification
COM Data Types and Data Mappings
Data Types
Data Mappings
Scalar Type Mappings
Pseudo-scalar Type Mappings
Structured Type Mappings
Special Type Mappings
How You Can Drive the OpenROAD Server from a Client
OpenROAD Client 4GL RemoteServer System Class
Methods
Attributes
Initiate Method
Call4GL Method
JsonRpcRequest Method
Release Method
ServerType Attribute
Flags Attribute
Location Attribute
Routing Attribute
Image Attribute
Errorcode Attribute
Errortext Attribute
COM (Non-OpenROAD) Client Remote Server Object
Initiate Method
Connect Method
GetInitiateParameters Method
CallProc Method
Disconnect Method
JsonRpcRequest Method
Terminate Method
AkaName Property
ImageFile Property
CmdFlags Property
Location Property
Routing Property
UseASOLib Property
PrivateOrShared Property
Options Property
OpenROAD Parameter Data COM Object
DeclareAttribute Method
SetAttribute Method
GetAttribute Method
SetEmpty, SetNull, IsEmpty, IsNull Methods
SetBlankDate, IsBlankDate, SetDateWithoutTime, IsDateWithoutTime Methods
LastRow Method
COM (Non-OpenROAD) Client ASO Session Object
Connect Method
AttachRSO Method
DefineBPM Method
Callproc Method
Disconnect Method
RSO Property
i_error_no Property
i_error_type Property
v_msg_txt Property
i_client_type Property
i_user_id Property
v_user_name Property
v_ip_address Property
Configuring the OpenROAD Server
Server Executables
DCOM Security
Basic DCOM Security
Enhanced DCOM Security
Unauthenticated DCOM Access
DCOM Configuration
Global Settings
Default Properties Tab Page
COM Security Tab Page
Application-specific Settings
General Tab Page: Authentication Level
Location Tab Page
Security Tab Page: Launch and Activation Permissions
Security Tab Page: Access Permissions
Security Tab Page--Configuration Permissions
Endpoints Tab Page
Identity Tab Page
Windows Firewall
SPO Configuration
Security Options
Run Authorized Apps Only
Restricted ASO Log Path
Server Component and Gatekeeper Configuration
Configure the OpenROAD 32-bit Server Components
Configure the OpenROAD 64-bit Server Components
How You Configure the OpenROAD Server ASP .NET Gatekeeper2
OpenROAD ASP .NET Gatekeeper2
Configuration Options
Frequenty Asked Questions
How You Can Configure the OpenROAD Server Java Gatekeeper2
Prepare for Tomcat
How You Configure Tomcat
Frequenty Asked Questions
How You Can Configure the OpenROAD Java Gatekeeper3
Prepare for Tomcat
How You Configure Tomcat
Frequently Asked Questions
Managing and Monitoring the OpenROAD Server
Overview of the OpenROAD Server Manager
The Server Manager and ASOLib
How You Can Set Up an Initialization File for the Server Manager
Start the Server Manager
The Server Manager Portlet
Hierarchy of Nodes
How You Can Explore the Server Neighborhood
Name Server Node
Display Name Server Details
SPO Fields
Summary Snapshot Fields
How You Can Configure Name Servers
Connection Balancing
Remote Application Registration
Remote Application Registration Icons
Remote Application Details
Local Application Registration
Local Application Registration Icons
ASO Details Tab
Local Application Details: Ping Tab
Local Application Details: Bong Tab
Local Application Details: Bong - Application Server Details
Local Application Details: Bong - Database Session Details
Local Application Details: Bong - Database Details
Local Application Details: Housekeeping Log Tab
Local Application Details: Global Tracing Tab
Display Client Session Details
Session Details
Display a Session Summary
Session Summary Details Pane
Specify the Tracing Level
How You Can Expose Published Application Interfaces
How You Can Configure the Server Pooler (SPO)
Dispatcher
SPO Configuration Options
Image File Name as JSON Configuration File Entry
How You Can Use the Slave ID in a Log File Name
Manage the Installation with orserveradm.py Script
ASOLib--OpenROAD Server Library
Overview of ASOLib
How Interaction Between a TCA and an Application Using ASOLib Works
Sample OpenROAD Client Code Fragments
How You Can Use ASOLib Within an OpenROAD Server Application
Step 1: Create an OpenROAD Application
Step 2: Create a Start Ghost Frame
Step 3: Create or Amend a User Class Whose Methods Will Be Exposed
Step 4: Generate GSCPs
Step 5: Generate SCP Metadata (Optional)
Step 6: Make the Image
Step 7: How You Can Register the Application
OpenROAD Server Transaction Design
OpenROAD Server Session Timeouts
How You Can Use ASOLib from a Non-OpenROAD Thin Client
Sample VBScript COM Client Code Fragments
Sample ASP Client Code Fragments
XML Parameters for Use with GSCPs
XML and 4GL Data
Example: How You Can Map 4GL Parameter Data to XML
How You Can Pass XML into a GSCP
How You Can Retrieve XML from a GSCP
Tag Structure
Selective Output
How You Can Preprocess and Postprocess the XML
XML Preprocessing
XML Postprocessing
Example: Preprocessing
Example: Postprocessing
How an Application Container Works
Entry Processing
Exit Processing
Error Processing
ASOLib User Classes
uc_client_info Class
i_client_type Attribute
i_user_id Attribute
v_ip_address Attribute
v_user_name Attribute
uc_name_server_client Class
Rs Attribute
UCAkaDetail Attribute
UCOSCA Attribute
v_name Attribute
Connect Method
GetConnectionDetails Method
uc_osca (OpenROAD Client)
uc_osca (OpenROAD Server)
v_msg_txt Attribute
CheckAndHandleError Method (OpenROAD Client)
GetErrorNo Method (OpenROAD Client)
GetErrorType Method (OpenROAD Client)
ReturnWithUserError Method (OpenROAD Server)
ReturnWithFatalError Method (OpenROAD Server)
Info Method (OpenROAD Server)
System Variables
ASONameServer
CurRemoteServer
OSCA
System Service Call Procedures
CreateASOSession System Service Call Procedure
DestroyASOSession System Service Call Procedure
DefineBPM System Service Call Procedure
Ping System Service Call Procedure
Java Interface
Intended Audience
Java Conventions
Datatype Conversions
Objects and Null Values
Plain Scalars
Dates
Java Classes
com.ca.openroad.COMException
com.ca.openroad.ParameterData
Java ParameterData Accessor Methods
getBigDecimal
com.ca.openroad.RemoteServer
com.ca.openroad.ASOSession
Example
.NET Interface
Intended Audience
Differences between .NET and Java Interfaces
Treatment of Data Values
Representation of Null Values
Exception Mapping
IDisposable Interface
Data Type Conversions
No RSO Property Accessor on ASOSession
Classes
Thread Safety
Ca.OpenROAD.ParameterData
Ca.OpenROAD.RemoteServer
Ca.OpenROAD.ASOSession
Example
How Installation Works
HTTP Routing
Intended Audience
How HTTP Routing Works
Clients
Gatekeeper
Security
Authentication
Web Server
How You Can Pass Credentials
Authorization
SSL
SerialRemoteServer
.NET SerialRemoteServer Interface
Ca.OpenROAD.SerialRemoteServer
Helper Classes for SerialRemoteServer
Java SerialRemoteServer Interface
com.ca.openroad.SerialRemoteServer
Helper Classes for SerialRemoteServer
Limitations
JSON-RPC 2.0 Interface
Overview of the JSON-RPC Interface
Intended Audience
Sending JSON-RPC Requests to the Server Application
OpenROADJSONRPC Servlet
Sending an HTTP POST Request Containing the JSON-RPC Request
Using the JsonRpcRequest Method of the RemoteServer Class
JSON-RPC Request Named Parameters
Returning Values to the Caller
Return Nothing
Using Return Values
Using a JsonValue as a Return Value
Defining BYREF Parameters
JSON-RPC Notifications
JSON-RPC Errors
JSON-RPC Batch Requests
JSON-RPC Configuration File
JsonConfig4App Utility
Starting the JsonConfig4App Utility
Using the JsonConfig4App Utility
jsonrpcservertest Application
Creating a Sample OpenROAD Server Application with JSON-RPC Support
Loadnrun
Introduction to Loadnrun
Before You Use Loadnrun
Getting Started with Loadnrun
Set Up the Loadnrun Client
Set Up the Loadnrun Server
Step 1: Install OpenROAD 11.2
Step 2: Configure the OpenROAD 11.2 Server
Step 3: Set Up the OpenROAD Gatekeepers
Step 4: Install the Loadnrun 11.2 Server
Step 5: Configure the Loadnrun OpenROAD Server Application
Step 6: Host Loadnrun eClient Applications
Test the Loadnrun Client or Server
Configuration File for Loadnrun 4GL Applications (Install4gl.txt)
Loadnrun Command Reference
Loadnrun Command Usage (Loadnrun112.bat)
Display Loadnrun112.bat Summary Usage
Display Loadnrun112.bat Advanced Usage
Display Loadnrun112.bat Detailed Usage
Loadnrun Command Parameters
Client Commands
/listcache Command
Launcher Command
/listrun Command
/clearcache Command
Server Commands
/listserver Command
Launcher Command
/listcache Command
How to Run Applications Using the w4glapp loadnrun Utility
w4glapp loadnrun Command--Run a Loadnrun Application
Modules Supported
A. Error Codes and Messages
Overview of Error Codes and Messages
OpenROAD Server Errors
Procedure Name Errors
Parameter Descriptor Errors
Parameter Data Input Errors
Parameter Data Output Errors
General Errors
Parameter Data Object Errors
Remote Server Object-specific Errors
ASOSession-specific Errors
Server Pooler Object-specific Errors
HTTP Routing Errors
Internal Fatal Errors
B. Troubleshooting the OpenROAD Server
Considerations for Ingres and 4GL Runtime Errors
Considerations for COM and DCOM Errors
Common Problems and Possible Solutions
Error: 0x800706BA "The RPC server is unavailable"
Error: 0x800706D3 "The authentication service is unknown"
Error: 0x80040155 "Interface not registered" Error: 0x80040154 "Class not registered"
Error: 0x80070005 "Access is denied"
Error: 0x800706BE "The remote procedure call failed"
C. ParamDesc and Params Structures
Call4GL Method
Call4GL Parameter Descriptors
Call4GL Parameter Array
D. OpenROAD Server Pooler Event Log
Overview of the SPO Event Log
SPO Log Description
CREATING: DispatcherMgr
CREATING: Dispatcher
CREATING: Slave
DESTROYING: Dispatcher
DESTROYING: Slave
DISABLING: DispatcherMgr
DISABLING: Dispatcher
DISABLING: Slave
STARTING: Slave
STOPPING: Slave (Error Description)
CONTROLLER: Connected
CONTROLLER: Connection Refused
CONTROLLER: Disconnect
SNAPSHOT: DispatcherMgr
SNAPSHOT: Dispatcher
SNAPSHOT: Slave
Dispatcher Limit Exceeded
Insufficient Slave Quota
SPO Error Reporting
SPO Log Example Output
Example 1: OpenROAD Server Pooler Startup
Example 2: Creating the DispatcherMgr
Example 3: Creating a Dispatcher
Example 4: Creating a Slave
Example 5: Controller Connection
Example 6: Controller Connection Refused
Example 7: Slave Startup
Example 8: Snapshots
Example 9: Stopping a Slave
Example 10: Destroying Slaves and Dispatchers
Example 11: Error Logging
Example 12: SPO Shutdown
OpenROAD Server Configuration Management
View Server Configuration Information
SPO Section
Summary Snapshot
E. Server Component Installation Locations
OpenROAD Server 32-bit Components
OpenROAD Server 64-bit Components
OpenROAD Server ASP .NET Gatekeeper2 Components
OpenROAD Server Java Gatekeeper2 Components
OpenROAD Server Java Gatekeeper3 Components
F. Contents of the 112demo Application Directories
Subdirectories Under the 112demo Directory
Comtestclient Application
Connect_example1 Application
Connect_example2 Application
Httptest Application
Intertask1 Application
Intertask2 Application
Jigfall Application
Launcher Application
Minesweeper Application
Qt Application
G. Installing Tomcat
Install Tomcat for Windows
Install Tomcat for Linux and UNIX
Glossary
Server Reference Guide
Glossary