TechSelect 2006 - PowerPoint PPT Presentation

1 / 55
About This Presentation
Title:

TechSelect 2006

Description:

Improved Quality. Reduced Size. Backwards Compatibility. API Compatibility (e. ... Batched forwarding may be useful for high performance in peer-to-peer or grid ... – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 56
Provided by: graha53
Category:
Tags: techselect

less

Transcript and Presenter's Notes

Title: TechSelect 2006


1
TechSelect 2006
  • Whats New in EAServer 6.0
  • Evan Ireland
  • Director of Engineering
  • Information Technology and Solutions Group
  • Sybase, Inc.
  • eireland_at_sybase.com

2
Whats New in EAServer 6.0?
  • J2EE 1.4 Certification
  • New Server Architecture
  • Web Management Console
  • New Command Line Tools
  • New Configuration Features
  • New Monitoring Features
  • New Performance Features
  • New Client Features
  • New Clustering Features
  • New Messaging Features
  • New Security Features

3
J2EE 1.4 Certification
  • Major Additions
  • JSR 88 J2EE Deployment API.
  • JSR 77 J2EE Management API.
  • JSR 115 Java Authorization Contract for
    Containers.
  • EJB Timer Service.
  • EJB Web Services.

4
Old Server Architecture (5.X)
libjdispatch (Server Kernel)Request
Dispatcher CORBA Container Jaguar/Management Jagua
r/Monitoring Jaguar C API
DB Connection Manager(C/C, Java)
Message Service(Java)
TDSHandler(Open Server)
TDS / MASPClients(Open Client)
HTTPHandler (C/C)
SecurityManager(C/C)
NameService(Java)
HTTPClients(XML, WS)
IIOPHandler (C/C)
Transaction Manager(C/C, Java)
JaguarRepository(Java)
Java Clientsfor CORBA, EJB JMS
libjcc CORBA Clients(C, PB)
CORBA Components (with generated or dynamic
skeletons)
C
Java
EJB 2.0
COM
PB NVO
jagproxy COMClients(VB, ASP)
Jaguar API(Java)
IIOP Clients(CORBA 2.2)
5
New Server Architecture (6.0)
DB Connection Manager(Java)
Message Service(Java)
TDSClients(Open Client)
ServerStartupClass
6.1 TDSHandler(jTDS)
WebContainer(Java)
SecurityManager(Java)
NameService(Java)
HTTPClients(XML, WS)
DJC / Web Components
IIOPHandler(Java)
Transaction Manager(Java)
TaskScheduler(Java)
Java Clientsfor CORBA, EJB JMS
DJC / EJBComponents
libjcc CORBA Clients(C, PB)
CORBA Components wrapped as EJBs
EJB 2.1Components
EJB wrappers
6.1? .NETComponents
C
Java
PB NVO
6.1 .NETClients(C, VB, )
Jaguar C API(libjdispatch)
Jaguar API(Java)
JNICCRuntime
IIOP Clients(CORBA 2.2)
6
What does DJC stand for?
  • DJC Dynamic Java Components.
  • Patent-pending lightweight component technology.
  • Attribute-based code generation framework.

7
What does JNICC stand for?
  • The Sybase JNI Compiler (JNICC) is a command line
    tool which can generate
  • C proxies for accessing Java classes and
    interfaces.
  • C classes for implementing Java native methods.
  • The tool is Java-centric, and does not in any way
    rely on CORBA IDL.

8
Why are CORBA componentswrapped as EJBs?
  • Simplifies configuration
  • One set of Ant configuration tasks can be used
    for both EJB and CORBA components
  • Simplifies access from web tier
  • Servlets, JSP and JSF pages can all use ejb-refs
    or ejb-local-refs to access components.
  • PowerBuilder NVOs in EAServer will be treated
    just as they are in third party application
    servers with the new PowerBuilder Application
    Server Plugin.

9
Advantages of New Architecture
  • Improved Extensibility
  • Easier for Sybase and/or partners to add new
    features
  • Improved Modularity
  • Allows more deployment options (e.g. JMS-only)
  • Improved Monitoring
  • To help with tuning and troubleshooting
  • Improved Performance
  • Improved Quality
  • Reduced Size

10
Backwards Compatibility
  • API Compatibility (e.g. JagGetUserName)
  • Script Compatibility (e.g. jagant, jagtool)
  • Some administrative tasks will be different from
    EAS 5.X, most configuration tasks should be
    simpler.
  • Issues of API or script incompatibility should be
    considered as bugs, unless they are documented.
  • If we removed something that you were depending
    on, let us know (open a case), and well see what
    we can do.

11
Web Management Console
  • Web Application with Sybase Central style
    tree-view navigation.
  • http//myhost8000/console

12
New Command Line Tools
  • configure runs configure target in specified
    Ant script changes property files in
    repository.
  • recompile runs recompile target in specified
    Ant script regenerates code for lightweight
    component classes.
  • wlogin, wlogout single sign on for remote
    server administrative access.
  • wfs transfers file to or from remote server.
  • wsh runs command on remote server.

13
New Configuration Features
  • Ant Configuration Scripts
  • Automatic Database Startup
  • Export Configurations
  • Named Class Loaders
  • Repository Branches

14
Ant Configuration Scripts
  • When a component package (e.g. EJB-JAR) is
    deployed, an Ant configuration script is
    automatically generated.
  • Like a EAServer 5.X jagant script, configuration
    is achieved with simple setProperties tasks. No
    complex XML DTD or schema is required.
  • The generated script can be edited directly, or a
    user-defined script can be included in the
    deployment archive or created after deployment.
  • The generated script calls the user-defined
    script, to merge the default and user-defined
    properties.
  • Editing and running configuration scripts is
    supported from the web management console.
  • See html/help/en/index.html for configuration
    reference.

15
Automatic Database Startup
  • The default Data Source is preconfigured to
    automatically start SQL Anywhere if it is not
    already running.
  • It will create the database file first if no
    database file exists.
  • This behaviour can be configured for other
    databases by using an Ant script.

16
Export Configurations
  • An export configuration is a named collection
    of classes, files and deployed modules.
  • Build operation allows creation of a JAR or ZIP
    file containing the configuration.
  • Synchronize operation allows synchronization of
    a configuration to one or more servers or
    clusters.
  • New configurations can be defined from scratch or
    by composition of existing configurations.
  • An export configuration can include server
    infrastructure as well as deployed modules, so
    for example a JMS-only server configuration
    could be created.

17
Named Class Loaders
  • EAServer 5.X has Server, Application, Package and
    Component level class loaders.
  • EAServer 6.0 generalizes this to named class
    loaders, which specify
  • Class path.
  • Optional parent class loader.
  • Names of shared classes or packages which must be
    loaded by the parent first.
  • Names of shared classes or packages which must be
    loaded by the system first.
  • Loading strategy (loader or parent first).
  • (Some of this capability has been ported back to
    5.X.)

18
Repository Branches
  • The setProperties Ant task can be applied at
    server, cluster or global scope, e.g.

ltsetProperties dataSourcedefault
serverBranchabcgt ltproperty
namedatabaseType valueSybase_ASA/gt
ltproperty nameserverName valuedb-host1/gt
ltproperty nameportNumber value2638/gtlt/setPr
opertiesgt ltsetProperties dataSourcedefault
clusterBranchxyzgt ltproperty
namedatabaseType valueSybase_ASE/gt
ltproperty nameserverName valuedb-host2/gt
ltproperty nameportNumber value5000/gtlt/setPr
opertiesgt ltsetProperties dataSourcedefaultgt
lt! global --gt ltproperty namedatabaseType
valueSybase_ASA/gt ltproperty
nameserverName valuelocalhost/gt ltproperty
nameportNumber value2638/gtlt/setPropertiesgt
19
Scheduled Tasks
  • With console or configure, you can configure
    tasks for execution at server startup, shutdown,
    or according to a schedule (like at or cron).
  • Possible task actions include
  • Check File, Run Application Client, Run Component
    Method, Run Database Command, Run System Command
  • Command output can be optionally sent via email
    or JMS.
  • Tasks have been predefined to check the server
    log for various types of messages. To activate
    them, set servers scheduledTasks property.

20
New Monitoring Features
  • Browse Name Bindings
  • Client Tracing Options
  • Server Tracing Options
  • Component Tracing
  • Component Profiling
  • Runtime Monitoring
  • Improved Exception Logging
  • Exception Cross Reference
  • Transaction Cross Reference
  • Thread Monitors

21
Browse Name Bindings
  • In Web Console, under Name Bindings node.
  • Shows all registered name bindings, with their
    binding scope.
  • Indicates which of the registered bindings are
    currently active.
  • Might be helpful if your client is getting
    lookup failures.

22
Client Tracing Options
  • RMI-IIOP Trace for Java clients
  • Enable by setting Java system property
    djc.rmiTracetrue on command line when starting
    client application.
  • Use djc.logFile system property to determine log
    file.
  • Set djc.echoLogtrue to echo log messages to
    console.

23
Server Tracing Options
  • Enabled through Web Console or configuration
    script.
  • RMI-IIOP Trace
  • For tracing remote calls from clients and
    intercomponent calls that use stubs (in-memory
    IIOP).
  • EJB Trace
  • For tracing the execution of EJB (and CORBA)
    components.
  • Web Trace
  • For tracing the execution of Java Server Pages
    and servlets.
  • JMS Trace
  • For tracing and troubleshooting message
    processing when using the Message Service.
  • SQL Trace
  • For tracing SQL Data Source access. Particularly
    useful for EJB entity beans with CMP.

24
Component Tracing
  • Code for component tracing is generated by
    default.
  • See property ejb.enableTracing or
    web.enableTracing in generated Ant configuration
    script
  • At server startup, enable tracing code to be
    active with command line option (or server
    properties)
  • -traceejb.components.mypackage
  • -traceweb.components.mypackage
  • Or, enable for all packages with command line
    options
  • -ejbTrace
  • -webTrace
  • View trace messages in server log.

25
Component Profiling
  • Code for component profiling is generated by
    default.
  • See property ejb.enableProfiling or
    web.enableProfiling in generated Ant
    configuration script
  • Ensure that statistics are enabled at the server
    level (they are enabled by default).
  • View statistics using Web Console or
    (recommended) access them via a Web Query from
    your spreadsheet.
  • http//myhost8000/wsh/run?commandget-statistics

26
Runtime Monitoring
  • Replaced by Statistics viewable in the Web
    Console.
  • The Jaguar CORBA APIs are still supported for
    backwards compatibility.
  • JaguarManagement
  • JaguarMonitoring
  • JMX MBean API is also available.
  • Using your spreadsheet software access the
    statistics is highly recommended.
  • http//myhost8000/wsh/run?commandget-statistics
  • Or, capture 60 second or 60 minute summaries by
    enabling the Dump60SecondStatistics or
    Dump60MinuteStatistics scheduled task. Output
    file location
  • logs/statistics/myserver-YYYY-MM-DD-HH-MM.statisti
    cs

27
Improved Exception Logging
  • Logging of application exceptions can be
    enabled/disabled at the server level.
  • Were not logged in EAServer 5.X.
  • Logging of system exceptions can be
    enabled/disabled at the server level.
  • Could not be disabled in EAServer 5.X.
  • Messages appear in the server log file.

28
Exception Cross Reference
  • Server Property Generate Exception Cross
    Reference.
  • Attempts to filter out repeat exceptions and
    create a log file listing all of the distinct
    exceptions that are present in the server log.
  • Output file location
  • logs/my-server-name.exceptions
  • If your log contains many exceptions, enabling
    this feature may cause performance problems.
  • On the other hand, it may make it easier for you
    to find a needle in a haystack.
  • Give it a try!

29
Transaction Cross Reference
  • Server Property Generate Transaction Cross
    Reference.
  • For each distinct transaction (business method
    that initiates a transaction), prints information
    about SQL statements and JMS operations that were
    executed in the transaction.
  • Output file location
  • logs/transactions/myserver-YYYY-MM-DD-HH-MM.transa
    ctions

30
Thread Monitors
  • Full replacement for HTTP and IIOP flow control.
  • Available for web components and EJB components.
  • (And CORBA / PB components, remember that they
    are now wrapped as EJBs).
  • Can limit the number of threads executing under
    each named monitor. Or leave limit unspecified,
    if you just want to see what your threads are
    doing.
  • Named monitors can be associated with components
    by using Ant configuration scripts.
  • View Active Threads and Waiting Threads in
    Web Console.

31
Thread Monitors - Continued
  • Thread Monitors are also useful for
  • Avoiding lock (synchronization) contention with
    shared data structures.
  • Reducing resource utilization, e.g. limiting the
    number of threads concurrently accessing a data
    source.

32
New Performance Features
  • Query Batching
  • Object and Query Cache with Parent Versioning
  • Result Caching
  • Transaction Batching

33
Query Batching (for EJB CMP)
  • Consider the algorithm
  • Runs many queries per transaction, many round
    trips between application server and database.
  • Query Batching creates a prefetch theory for
    each transaction and uses it to create optimized
    stored procedures which avoid multiple round
    trips.
  • See html/help/en/com.sybase.djc.ant.TransactionPro
    perty.htmlprefetch

double total 0.0 Customer c
ch.findByName(My Customer) for (Order o
c.getOrders()) for (OrderLine ol
o.getOrderLines()) total
ol.getItem().getPrice() ol.getQuantity()
34
Parent Versioning (for EJB CMP)
  • Same problem, different solution.
  • Enable the use of object or query caching to
    reduce database queries, using parent version
    check to ensure serializability.
  • Seehtml/help/en/com.sybase.djc.ant.PersistentObj
    ect.htmlparentVersion, html/help/en/com.sybase.dj
    c.ant.QueryMethod.htmlparentVersion
  • Best used with Sybase databases ?
  • Sorry but Oracle doesnt support SQL syntax for
    acquiring shared locks, so if you use it for
    read-only transactions you may get forced
    rollbacks as we must use exclusive locks to
    ensure serializability ?

35
Result Caching (for Stateless Components)
  • Any business method of a session bean (or CORBA
    component) can be enabled for result caching
    using an Ant configuration script, e.g.
  • ltcacheResult cacheTimeout120/gt
  • Table version (updated by database trigger) can
    be used instead of timeout to ensure
    transactional consistency of cached results.
  • ltcacheResult tableVersionref_tv.tv/gt

36
Transaction Batching
  • Allows transactions from separate threads to be
    merged together to reduce round-trips to database
    server.
  • See html/help/en/com.sybase.djc.ant.TransactionPro
    perty.htmlbatch

37
New Client Features
  • Automatic Server Startup
  • Dynamic Stub Generation
  • IIOP Data Compression

38
Automatic Server Startup
  • EJB and JMS clients can use special provider URLs
    to automatically start the application server if
    it isnt already running
  • run-servermy-server-name
  • Run server in-process with the client
  • start-servermy-server-name
  • Start server in separate process
  • This is quite handy for testing!

39
Dynamic Stub Generation (for Java)
  • Stub generation has two parts
  • generation of remote interfaces
  • for EJB, the developer creates these interfaces
  • for CORBA, the IDL compiler generates these
  • generation of stub classes
  • for EJB, the deployment tool generates these
  • for CORBA, the stub-compiler tool generates these
  • If your client has the interfaces but not the
    stub classes, they will be generated and compiled
    at runtime.
  • Your client must be using a JDK (with javac) to
    compile stubs at runtime.
  • If your client has only a JRE, you must generate
    stub classes in advance (with deployment tool or
    stub-compiler).

40
IIOP Data Compression
  • For EJB / JMS / CORBA Java clients.
  • Enable using InitialContext or ORB property
  • props.put(dataCompression, true)
  • Or specify in provider URL
  • iiop//myhost2000?dataCompressiontrue
  • Uses GZIP algorithm
  • (from package java.util.zip)
  • To use from PowerBuilder clients, use the
    EJBConnection object to connect to EAServer.

41
New Clustering Features
  • Automatic Failover
  • Request and Response Logging
  • Cluster Partitions

42
Automatic Failover - Request and Response Logging
  • Automatic failover can result in repeated method
    execution. If business methods are not
    idempotent, this can cause problems with data
    integrity.
  • Any void business method of a session bean can
    be enabled for request logging, to ignore
    duplicate calls during failover.
  • See html/help/en/com.sybase.djc.ant.RequestLogProp
    erty.html
  • Any non-void business method of a session bean
    can be enabled for response logging, to ignore
    duplicate calls during failover.
  • See html/help/en/com.sybase.djc.ant.ResponseLogPro
    perty.html
  • Request logging is slightly more efficient, since
    it doesnt need to log any result data (only a
    request key).
  • Logging uses a database. Log records are
    automatically deleted unless automatic failover
    occurs, in which case the log records must be
    retained to enable duplicate detection.

43
Cluster Partitions
  • A cluster may include one or more named
    partitions.
  • Each partition identifies
  • Preferred servers
  • Alternate servers
  • Components can be assigned to run in particular
    partitions, e.g.
  • ltclusterPartition nameMyPartition/gt
  • A Java client will communicate with one or more
    of a partitions preferred servers, unless all
    are unavailable, in which case it will try the
    alternate servers. This provides an effective way
    to perform load balancing while not sacrificing
    high availability.
  • libjcc-based clients (C, PB) are currently
    unaware of the distinction between preferred and
    alternate servers.
  • Can be used as a replacement for the EAServer
    5.XHot Standby licensing option.

44
New Messaging Features
  • New Java Implementation
  • Asynchronous Business Methods
  • In-Order Message Processing
  • Duplicate Message Detection
  • Fast IN Expression Evaluation
  • Message Store And Forward

45
New JMS Implementation
  • EAServer 5.X Message Service is a CORBA / Java
    component.
  • EAServer 6.0 Message Service is a lightweight
    Java component.
  • Faster for both persistent and non-persistent
    messages.
  • 5 10 times faster for most things!
  • Large cluster scalability has been improved.

46
Asynchronous Business Methods
  • Were going to be included in 6.0, but the Ant
    configuration tasks were not completed in time
    for GA.
  • Should be in EAServer 6.1.

47
In-Order Message Processing
  • In-order message processing is supported (when
    requested) even when multiple servers or threads
    are listening on the same queue or topic.
  • Set the processMessagesInOrder message queue
    property in the Web Console (or using an Ant
    script).

48
Duplicate Message Detection
  • A queue or topic can be configured to ignore
    duplicate messages.
  • Duplicate message detection requires a unique key
    which can be taken from one of a messages header
    properties.
  • Set the ignoreDuplicateMessages message queue or
    topic properties in the Web Console (or using an
    Ant script).

49
Fast IN Expression Evaluation
  • Optimized evaluation of IN expressions to
    improve performance of ticker-style JMS
    publish/subscribe applications, e.g.
  • Topic Name
  • StockQuote
  • Message Selector
  • symbol in (SY, AB, CD, EF, )
  • Each client could use their own customized
    message selector expression, with many different
    stock symbols.
  • Publishers can still efficiently evaluate the
    selector expressions.

50
Message Store And Forward
  • Consider the scenario server S1 with queue Q1,
    server S2 with queue Q2, server S3 with queue Q3.
  • Pull forwarding is supported from S2 to S1
  • ltproperty namepullMessagesFrom valueQ2_at_S1/gt
  • Push forwarding is supported from S1 to S3
  • ltproperty namepushMessagesTo valueQ2_at_S3/gt
  • The target server must be defined as a JMS
    Provider using the Web Console or an Ant
    configuration script.
  • Two-phase forwarding protocol guarantees
    exactly-once propagation of messages, without
    using XA / 2PC.
  • Can pull from and push to third-party JMS
    providers.
  • Must use a Resource Adapter (XA) for exactly-once
    propagation.
  • Batched forwarding may be useful for high
    performance in peer-to-peer or grid-style server
    networks.

51
Content Based Routing
  • Header and system properties can be used in
    construction of source or target queue addresses
  • ltproperty namepullMessagesFrom valueMyQueue.
    mySystemProperty_at_S1/gt
  • ltproperty namepushMessagesTo valueMyQueue.
    myHeaderProperty_at_S1/gt
  • Note for pullMessagesFrom, only system
    properties can be used.

52
New Security Features
  • IIOP Single Sign On scripts are provided for
    login/logout to EJB and JMS providers
  • ejb-login, ejb-logout
  • jms-login, jms-logout
  • per-machine, per-user secure storage of client
    credentials, (uses DPAPI on Windows), credentials
    are maintained after restart of client computer.
  • Useful for standalone EJB / JMS clients.

53
New Security Features - Continued
  • Many delegation options for password checking.
  • cts-auth, ftp, http, jaas, jdbc, jndi,
    local-hash, none, os-auth
  • Mapping of client certificates to usernames.
  • Can limit component callers to co-located clients
    using the local role. This prevents remote
    clients accessing sensitive components, but
    allows them to be called by other components in
    the same server.
  • Support for port-based access control.
  • Support for role hierarchies.
  • Multiple security domains.
  • Can use e-mail addresses as usernames.
  • New simplified APIs for custom AuthService and
    RoleService
  • (if you implement them in Java)
  • Support for JACC access control policy (part of
    J2EE 1.4)

54
What will we be looking at next?(EAServer 6.1
and later)
  • Support for MASP clients(MASP Methods As
    Stored Procedures)
  • Support for .NET clients (to call EJB and
    JMS)including support for .NET Compact Framework
  • Support for .NET components
  • Support for PB.NET clients (to call EJB and JMS)
  • Support for PB.NET components
  • Java Enterprise Edition 5.0
  • Please advise product management of your
    priorities for
  • these and other features.

55
Questions?
Write a Comment
User Comments (0)
About PowerShow.com