Server Reference Guide
1. Introduction
The OpenROAD Server
Intended Audience
OpenROAD Documentation
Path Notation in This Guide
Your Support Options
2. OpenROAD Server Architecture Overview
OpenROAD Architectural Overview
OpenROAD Server Overview
OpenROAD Server
OpenROAD Server Clients
Registry
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)
3. OpenROAD Server Components
Overview
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
4. Designing and Writing OpenROAD Server Applications
Overview
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
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
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
5. Configuring the OpenROAD Server
Overview
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 Can Configure the OpenROAD Server .NET Client Gatekeeper
ORDOTNET Directory
OpenROAD .NET Interface
ASP.NET HTTP Gatekeeper
Security Customizations
SSL Is Required
How You Configure the OpenROAD Server .NET Client Gatekeeper2
OpenROAD ASP.NET Gatekeeper2
Configuration Options
Frequenty Asked Questions
How You Configure the OpenROAD Server Java Client Gatekeeper
Java Classes
Conventions
Exceptions
How You Can Configure the OpenROAD Server Java Client Gatekeeper2
Prepare for Tomcat
How You Configure Tomcat
Frequenty Asked Questions
6. 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
Sessions—Displays a summary of all sessions (Display a Session Summary (see Display a Session Summary)). Its child node displays the details for a specific session (see Session Details (see Session Details)).
Interfaces—Exposes an OpenROAD Server application's external interface groups, including SCPs and exposed user classes. For more information, see How You Can Expose Published Application Interfaces (see How You Can Expose Published Application Interfaces).
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 Registry Key
How You Can Use the Slave ID in a Log File Name
7. ASOLib—OpenROAD Server Library
Overview
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
8. Java Interface
Overview
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
9. .NET Interface
Overview
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
10. HTTP Routing
Overview
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
A. Error Codes and Messages
Overview
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 Oobject-specific Errors
ASOSession-specific Errors
Server Pooler Object-specific Errors
HTTP Routing Errors
Internal Fatal Errors
B. Troubleshooting the OpenROAD Server
Overview
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
Overview
Call4GL Method
ProcName
Call4GL Parameter Descriptors
Call4GL Parameter Array
D. OpenROAD Server Pooler Event Log
Overview
SPO Log Description
CREATING: DispatcherMgr
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
CREATING: Dispatcher
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Did
ImageFile
CmdFlags
ASOLocation
MaxSlaves
ASOTrxLimit
ASOTimeOut
CREATING: Slave
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Sid
Did
DESTROYING: Dispatcher
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Did
DUseCount
DDepthMax
DDepthAvg
DWaitMax
DWaitAvg
DCurrSlaves
DClientRefs
DESTROYING: Slave
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Sid
SUseCount
SDepthMax
SDepthAvg
SWaitMax
SDWaitAvg
SInitCnt
SInitMin
SInitMax
SInitAvg
Call4GLCnt
Call4GLMin
Call4GLMax
Call4GLAvg
SASOTrxCnt
DISABLING: DispatcherMgr
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
DISABLING: Dispatcher
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Did
DISABLING: Slave
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Sid
STARTING: Slave
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Sid
STOPPING: Slave (Error Description)
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Sid
SUseCount
SDepthMax
SDepthAvg
SWaitMax
SDWaitAvg
Call4GLCnt
Call4GLMin
Call4GLMax
Call4GLAvg
SASOTrxCnt
Error Description
CONTROLLER: Connected
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
CONTROLLER: Connection Refused
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
CONTROLLER: Disconnect
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
SNAPSHOT: DispatcherMgr
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
MTotalClients
MCurDispatchers
MReservedQuota
MTotalSlaves
SNAPSHOT: Dispatcher
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Did
DUseCount
DDepthMax
DDepthAvg
DWaitMax
DWaitAvg
DCurrSlaves
DClientRefs
SNAPSHOT: Slave
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
Sid
SUseCount
SDepthMax
SDepthAvg
SWaitMax
SDWaitAvg
Call4GLCnt
Call4GLMin
Call4GLMax
Call4GLAvg
SASOTrxCnt
Dispatcher Limit Exceeded
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
ImageFile
CmdFlags
Insufficient Slave Quota
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
ImageFile
CmdFlags
MaxSlaves
SPO Error Reporting
Timestamp
yyyy
mo
dd
hh
mi
ss
fff
HResult
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
Overview
OpenROAD Server 32-bit Components
OpenROAD Server 64-bit Components
OpenROAD Server .NET Client Gatekeeper Components
OpenROAD Server ASP .NET Client Gatekeeper2 Components
OpenROAD Server Java Client Gatekeeper Components
OpenROAD Server Java Client Gatekeeper2 Components
Glossary
OpenROAD 6.0
Glossary