Are your end-users complaining that Forms is slow? Ever wonder what the source of the problem is? Want to learn what are the fastest, most effective strategies to improve overall performance and end user experience?
Join us for a webinar where we will showcase best practices for application support engineers, application owners, QA engineers, Oracle Forms developers and EBS Integrators. Topics include:
Minimizing start up times and resource requirements
Improving speed of Forms rendering
Gaining visibility into the potential source of bottlenecks in Oracle components
Speakers: Mia Urman, CEO of OraPlayer Ltd. and Frank Days, VP of Marketing, Correlsense
4. Guest Speaker:
Mia Urman, CEO, Oraplayer
• Sr. Support Analyst and Product Manager
of Forms and ADF at Oracle for 7 years
• 13+ years supporting, training and
consulting for Oracle Tools
• Founder of Qesem Consulting. Clients
include: Mastercard, Bank of Israel, IBM
and Motorola
• CEO of OraPlayer, a leading provider of
Oracle Forms to SOA integration and
mobile
• Leader of OUG Oracle Developer user
group
7. Forms Complex Multi-Tier Architecture
• Hard to effectively identify the degrading element
Desktop IAS or WLS
Apache Oracle
Server DB
or OHS
Internet IAS or WLS
Apache Oracle
Server DB
or OHS
8. How Does Forms Work?
Scenario #1:Application written Entirely in Java
Download Entire
Application Logic
Application Oracle
Server
Scenario #2:Application built using Oracle Forms Server Platform
Only Download
Metadata for
Forms Oracle
Application
Server
9. String Buffering
• If a given string is used more than once in a
form:
– String is loaded once
– Referencing occurs on client Fred Fred
Fred
Event Bundling Fred
• All triggering events sent in single Network
Message
Post-Change
Post-Item
When-Validate-Item
Pre-Item
When-New-Item-Instance
11. Goals
Minimize Startup time
Minimize client resource requirements
Minimize Oracle Forms Server resource
requirements
Use the network as little as possible
Accomplish as much as possible in one
network conversation
When rendering, be as efficient as possible
12. Minimizing Start Time
• Pre-start forms applet - startup a number of
application runtime engines prior to their usage
• Perceived performance - „SPLASH‟ screen
HTML Parameter
<APPLET>
…
<PARAM NAME= splashScreen
VALUE= >
"travel.jpg"
…
</APPLET>
13. Reduce Time to Draw Initial Screen
• Time to initialize Form is heavily influenced by
the amount of meta-data required to describe all
objects on the first Form the user sees
Property sets are
downloaded to
describe visible screen
• Break up large Modules into smaller ones
• Only display required canvases
• Set raise on entry = false for canvases
and items not needed for initial screen
14. Navigation Resources: Open/Call_Form
• Original Form
– Remains open on server
– Properties are cached on client
• System Resources
– Consumes more memory on server and client.
– Less Network round trips required to reload Form UI
1
1
1
2
2
Client
15. Navigation Resources: New_Form
• Original Form
– Closed on server
– Object Properties on client are destroyed
• System Resources
– Consumes less memory on server and client.
– More Network round trips required to download form UI
(important if latency is bad)
1 1
2
2
Client
16. Promote Similarities
• Similar items handled by the Forms smart delta
messaging
– Only differences are sent across the network
• Promote similarity in the UI – OLB, Visual attributes
– Use Inheritance - Property classes and Object groups
– Use subclasses – draw multiple objects with standard settings
• Group setting of properties into like-groups
...
set_item_property(text_item1_id, FONT WEIGHT, “Bold”);
set_item_property(text_item2_id, FONT WEIGHT, “Bold”);
set_item_property(text_item3_id, FONT WEIGHT, “Bold”);
set_item_property(button_item1_id, LABEL, “Exit”);
...
17. Boilerplates and Images on Canvases
• Boilerplates are downloaded as VGS objects
– Make labels prompts when upgrading from older Forms versions
– Prompts automatically participate in message diff'ing and string
caching
• Reduce using Arcs, Circles and Polygons as
boilerplates
– Replace by rectangles and lines
text
Boilerplate Objects
18. Reduce Items on the Screen: Tab canvases
• All items of all tabs are
downloaded to client
• Use hidden stacked
canvas on each tab
to defer download
• Code changes
–WHEN-TAB-PAGE-CHANGED
trigger
–RAISE_ON_ENTRY=YES
–VISIBLE=NO
19. Save Images In JAR Files
• Iconic buttons on the Web are in gif and jpeg
formats
• Put your .GIF and PJCs files in the JAR
– Faster download
– Takes advantage of the cache
• Store all images of an application in a
single Jar
– Jar files are permanently cached on the client
20. Mouse Triggers & Network Traffic
• Dangers of mouse triggers – Increase network
traffic
• MOUSE-DOWN triggering event always generates
a second MOUSE-UP message even if trigger
hasn‟t been defined
• Mouse triggers often defined at higher level in
hierarchy or on Canvas
– causes multiple execution of trigger
Move trigger code to specific
items requiring Mouse triggers
21. Timer Trigger
• Timer Process occurs in client side code (Java
client)
• Has severe ramifications on number of network
round-trips generated
• e.g. 1 mSec timer := 60,000 round trips per minute
Forms
Client
Server
What you can do:
-Choose timer trigger delays carefully
-Use PJCs to implement “Clock”, “Progress Bar”, and
“Animation” functionalities
22. Minimize Round Trips
• Design applications that do not require a user to
navigate through fields if default values are
accepted
• Be wary of SYNCHRONIZE Built-In
– The "universal weapon" for coding problems in
client/server introduces performance hits on the Web
– Round-trip from server to client
– Overuse generates unnecessary network traffic
– Problems handled by "synchronize" on client/server may
not exist anymore
23. Summary: Optimize the Design
• Use subclasses - drawing multiple objects
with standard settings is more efficient
– Reduced messages from “message diff-ing”
• Use event bundling
• Use PLL libraries
– Concurrent users can share memory used by a library
• Minimize use of graphic items
• Use prompts
24. Summary: Other Performance Tips
• A slow server never runs applications fast
• You can't think without brains - Configure the
server with enough memory
• Make sure that your hardware can handle the
load
• Latency can be introduced by non network
components
• Locate app server close to database server
• Monitor forms performance to see where
improvements can be made
27. Track All Requests Through All Hops
• Track all user requests through all components (not
just Java and .Net)
• Track and meter single end user across entire stack
• Apache, OC4J, Forms Runtime and Oracle Database
Applet
Apache
OC4J
Forms Runtime
Specific SQLs
30. SharePath for Oracle Forms/EBS
• Goes beyond Java/.Net with Forms runtime coverage
– Broadest coverage: rich clients, Forms applet, C++, ESBs …
– Supports the most complex, heterogeneous architectures
• Dashboards for operations, support, and engineering
• No application code changes necessary
• Auto-detects transaction paths
31. Summary
• Forms environment has many performance
challenges
• Optimize Oracle Forms in design and production
– For users
– On Backend
– Monitor Forms end-to-end
• SharePath is the only APM offering
for Forms based/EBS
32. Questions?
Request a live demo:
info@correlsense.com
Frank Days
frankd@correlsense.com
www.correlsense.com
Mia Urman
miaurman@oraplayer.com
@miaurman
www.oraplayer.com
www.OracleFormsInfo.com