Title: SOA13: Advanced AppServer Topics
1SOA-13 Advanced AppServer Topics
Pat Bonser
2Advanced AppServer Topics
Agenda
- Architecture Components
- Connection Management
- Session Managed Model
- Session-Free Model
- Diagnostics, Logging Debugging
- Migration Steps for Deployed Applications
This presentation includes annotations with
additional, complementary information
3Distributed Applications Architecture
Clients
4Application Server Architecture
Any Client
OpenEdge Application Server
Application Code
AppServer
Data
Web service Client
5Application Server Architecture
WebSpeed is a Client too!
OpenEdge Application Server
WebSpeed Transaction Server
Application Code
AppServer
Data
Web service Client
6Application Server Components
AppServer Architecture
AppServer
AppServer Agents
Clients
Application Broker
ABL Business Logic
NameServer
Data
7Application Server Components
AppServer Broker
- Manages pools of re-usable AppServer Agents
- Manages client connections and requests for
AppServer Agents to execute ABL
8Application Server Components
AppServer Agents
- Executes OpenEdge ABL procedures
- Reuse of AppServer Agents
- Determined by Operating mode
9Application Server Components
NameServer
Location transparency
Inventory (A and B)
Clients
NameServer
10Application Server Components
AppServer Internet Adapter
- ALL Clients to OpenEdge AppServer Applications
- Can connect remotely
- Tunneling
- HTTP (AIA)
- HTTPS (AIA/S)
- Java Servlet
- Runs on Web Server with Java Servlet Engine
Included with OpenEdge Application Servers
11Advanced AppServer Topics
Agenda
- Architecture Components
- Connection Management
- Session Managed Model
- Session-Free Model
- Diagnostics, Logging Debugging
- Migration Steps for Deployed Applications
12Session Models Operating Modes
Connection management
- Session managed model
- Client sends requests over persistent connection
- Requests handled sequentially
- Operating Modes
- State-reset
- State-aware
- Stateless
- Session-free model
- Client send requests on any available connection
- Requests handled in parallel
- Operating Mode
- State-free
OpenEdge 10.0
13Session Models Operating Modes
Connection management
- Specified when AppServer is configured
- Determines how client requests dispatched to
individual Application Server Agents - Design time considerations
- Design development of application
- Application context
- Performance Goals
- System resources, network response
- Request throughput and response time
14Session Managed Model
Operating Modes
- State-reset
- One client per Application Server Agent
- Session state is reset on disconnect
- State-aware
- One client per Application Server Agent
- Session state is maintained across connections
- Stateless
- Connection managed by AppServer Broker
- Many clients per application server agent
- Context must be managed externally
15Session Managed Model
state-aware state-reset Operating Modes
AppServer
AppServer Agents
Client 1
Client 2
Application Broker
NameServer
Data
Client 3
Client 4
16Session Managed Model
Stateless Operating Mode
AppServer
AppServer Agents
Client 1
Client 2
Application Broker
NameServer
Data
Client 3
Client 4
17Advanced AppServer Topics
Agenda
- Architecture Components
- Connection Management
- Session Managed Model
- Session-Free Model
- Diagnostics, Logging Debugging
- Migration Steps for Deployed Applications
18Session-free Model
State-free Operating Mode
ABL Clients
AppServer
AppServer Agents
Client 1
Open Clients
Client 2
Application Broker
Web Service Client
Web Services Adapter
Client 3
19Session-free Model
State-free Operating Mode
- Logical Connection
- No connection maintained between Client and
Application Server Agent - Pooled Connections
- ABL requests on the server handle
- Web service requests on the WSA
- Open Client requests on the AppObject
- Requests dispatched similar to stateless except
- Multiple requests from one client run in parallel
- Each request runs independently
- Context must be managed externally
20Session-free Model
Design Considerations
- Avoid dependency on other calls!
- Procedures can execute concurrently
- Order of completion NOT predictable
- Context Management
- Session or task level
- Client or Server
- When to delete
21Why When to use Session-free Model
- Some applications inherently NOT connection
oriented - Requests executed regardless of other requests
- Should not be tied to one AppServer Connection
- i.e. standalone request for information
- Efficiency and Performance
- Parallel execution on any AppServer
- Efficient use of resources
- Performance gains
- Scalability
22What about ASYNC Calls?
Does Async mean parallel execution?
RUN proc ON server ASYNCHRONOUS . . . .
- Session-managed Model
- Allow multiple remote procedures to be executed
- Run serially on same AppServer
- Session-free Model
- Will allow procedures to execute concurrently
23Coding Example RUN ASYNCHRONOUS
Session-free Model
- Internal procedure run in procedure handle
- Each call to internal procedure queued on the
client
RUN bl.p ON SERVER hAppSrv ASYNCHRONOUS SET
hRq2 EVENT-PROCEDURE bl-evt-proc IN
THIS-PROCEDURE (INPUT-OUTPUT TABLE
order-table,OUTPUT iCount).
PROCEDURE bl-evt-proc DEFINE INPUT PARAMETER
TABLE FOR order-table. DEFINE INPUT PARAMETER
iCount as INT NO-UNDO.
24Enhanced Syntax to support to Session-free
- CONNECT()
- Method
- Properties
- CANCEL-REQUESTS() method
- CLIENT-CONNECTION-ID attribute
25CONNECT() method
- -sessionModel
- Default Session-managed
- Set to Session-free to use the session-free model
fOk hAppSrvCONNECT( -URL AppServer//hostpor
t/servicename -sessionModel Session-free).
- Model and mode must match
- Session-free Client
- can only connect to
- State-free AppServer
26CONNECT()
- Session-free connection
- Pool of re-usable socket connections
- AppServer handle points to pool
- Managed transparently by Client
- Connections allocated as needed
- Tunable using CONNECT() properties
27CANCEL-REQUESTS() method
- Session managed Model
- Raises STOP for request currently running
- Purges send request queue of pending requests
- Session-free Model
- Raises STOP for ALL requests currently running
- Purges queued requests
28CLIENT-CONNECTION-ID attribute
- Character attribute on a server handle associated
with session-managed applications - Session-managed
- Returns connection ID string for the AppServer
connection associated with the server handle - Session-free
- Logical connection to the AppServer is
represented by a pool of AppServer connections - Returns the unknown value
29NameServer Load Balancing
- Session managed Model
- On Client connection to the AppServer
- Same AppServer serves all requests from a client
- Session-free Model
- On each request
30Persistent Procedures in a Session-free Model
- A context is created for the internal procedures
- All internal procedures on a remote procedure
- Will execute on the same AppServer
- Will execute serially
- Losing parallel advantage
- Reducing scalability
31Advanced AppServer Topics
Agenda
- Architecture Components
- Connection Management
- Session Managed Model
- Session-Free Model
- Diagnostics, Logging Debugging
- Migration Steps for Deployed Applications
32Logging Infrastructure
- Log Files
- Unified Format
- Log Entry Types
- Logging Levels
- Log size threshold
- LOG-MANAGER
- Log File Analysis
- LogRead Utility
33Diagnostics, Logging Debugging
Where to look for an AppServer Application
- What about the Client?
- -clientlog logfilename
34Log Entry Types
- Server/Client Executables
- 4GLMessages1
- 4GLTrace
- DB.Connects
- DynObjects.
- QryInfo
- SAX
- ProEvents.
- Other
- AIA
- ASPlumbing
- ASDefault
- NSPlumbing
- UBroker.
- WSADefault
- MsgrTrace
1Client only
35Logging Levels
- Setting logginglevel
- StartUp Parameter
- LOG-MANAGER system handle
- Ubroker.properties file
- Logginglevel Values
- 0 None
- 1 Errors
- 2 Basic
- 3 Verbose
- 4 - Extended
36LOG-MANAGER
System handle attributes methods
- Attributes
- ENTRY-TYPES-LIST
- LOG-ENTRY-TYPES
- LOGFILE-NAME
- LOGGING-LEVEL
- LOG-THRESHOLD
- NUM-LOG-FILES
- TYPE
- Methods (OpenEdge 10.1A)
- CLOSE-LOG
- CLEAR-LOG
- WRITE-MESSAGE
37Log File Analysis LogRead Utility
PSDN.progress.com
- GUI Utility
- View, filter, sort, merge,
translate log files
38Log File Analysis LogRead Utility
- Browse, Filter or Query Log
39Log File Analysis LogRead Utility
PSDN.progress.com
40Log File Analysis LogRead Utility
PSDN.progress.com
?
41Debugging AppServer Code
Application Debugger Debug Modes
- Application Mode, supports distributed
- Step into AppServer code from Client session
- Attachable Mode
- Attach to remote process
- Debug attached process only
- No access to calling process
- Can be used when
- Server not local
- No monitor attached
- Easier to debug from where you are
42Enabling Debugging
Debugging is NOT enabled by default
- Client
- Start ?Programs ? OpenEdge ? Proenv
- AppServer
43Attachable Mode
Debugging Code Remotely
- Ready the AppServer Agent for debugging
- -debugReady port-number
- proDebugConfig
- Start Attachable Debugger
- Start ? Programs ? OpenEdge ? Debugger
44Attachable Debugger
45Attachable Debugger
46Remote Code is Available
Debug as usual
47Detach from Process
48Advanced AppServer Topics
Agenda
- Architecture Components
- Connection Management
- Session Managed Model
- Session-Free Model
- Diagnostics, Logging Debugging
- Migration Steps for Deployed Applications
49Migrating a Deployed Application
Planning an Upgrade
- Considerations
- Whatss New?
- Enhanced Capabilities
- Operating Modes
- Configurations - Fault Tolerance
- Steps before deployment
- Upgrade Licenses
- Convert/Migrate Database
- Migrate Code
50Migrating a Deployed Application
Deploying the Upgrade
51Migrating a Deployed Application
Deploying the Upgrade
- Register New AppServer(s)
- With existing NameServer
- Configure new NameServer
- Shutdown Clients
- Upgrade Client (license application)
- Reconnect clients to new AppServer(s)
- Shutdown old AppServer(s)
- Shutdown old NameServer
52For More Information, go to
- PSDN
- LogRead Utility
- White Papers Presentations
- Relevant Exchange Sessions
- ARCH3 Context Management in the OpenEdge
Reference Architecture - SOA-5 Accessing the AppServer from Anywhere
Everywhere - SOA10 Application Servers, Web Services and
Integration Info Exchange
53Documentation Education
- OpenEdge Documentation
- Getting Started Application and Integration
Services - Application Server Administration
- Application Server Developing AppServer Apps
- Development Debugging and Troubleshooting
- OpenEdge Education
- Developing Distributed AppServer Applications
- Distributed AppServer Application Administration
- Distributed AppServer Application Development
54Advanced AppServer Topics
Questions?
55Thank you foryour time
56(No Transcript)