BUG - BEA Users\' Group, Jan16 2003


Published on

Experience of embedding Weblogic server into a management server

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

BUG - BEA Users\' Group, Jan16 2003

  1. 1. Keeping E-Business Open for Business™ BEA Users Group January 16, 2003 Embedding WLS Server – Experience of Building a J2EE-based Management Server Sanjeev Kumar skumar@resonate.com Management Server Team Resonate Inc. www.resonate.com1 Resonate_presentation title
  2. 2. Experience of Building a J2EE-based Management Server • Basic Control Flows & Characteristics • Development Issues • Installation & Packaging Issues • Operational & Performance IssuesResonate_presentation title
  3. 3. Commander Solutions – “Moving Parts” Test Engine Management Watchdog Configured Backup Server Management Server Node PTA Pass-through WLS Server Backup Pass- Agent through Agent AA AA cm_wls cm_solaris signifies a node (machine) boundary signifies “ping” or heartbeat traffic signifies configured (primary) connections signifies configured backup connections Resonate_presentation title
  4. 4. Management Server – Code Layers GUI SLO Manager Servlets Rules Engine Scheduler Stateless Session Beans JMS Failover Manager Tests & Actions Singletons (Entity Beans) Statistics & Events Data Subscription DB Interface Discovery Weblogic Server Communication HubResonate_presentation title
  5. 5. Management Server: Characteristics • J2EE Technologies Used – Servlets, JSP’s, Struts Framework – Session Beans, and (partially) Entity Beans – BMP, JDBC, and DB Connection Pool – (In-memory) JMS – XML Parsers • WLS HTTP Listener • WLS Startup/Shutdown Hooks • Different from an In-house, Traditional Application – Packaging & Installation – Resource planning for varying scales of deployment Resonate_presentation title
  6. 6. Management Server: Characteristics • Design Patterns Used – Singletons: key functional components – Value Objects: persistent data – Session Bean per Singleton – Publish & Subscribe (JMS) for Asynchronous Communication • Rules Engine – Events combined with AND’s and OR’s – Event correlation w.r.t. time and occurrences • Agent Communication – Persistent and non-persistent message channel – Thread pool created and managed by the server Resonate_presentation title
  7. 7. Development – Servlet Container Servlet Container – Application level authorization filter – Use of JSP’s, servlets, struts framework, and bean shell – Management of HTTP sessions for server failbackHTTP Request Stateless JDBC Java Auth. Session Singleton/ GET/POST Servlets Beans Value ObjectsHTTP Response Java Server Page Stateless Session Beans JDBC (Service Object Model) Web Container Enterprise Java Beans Container Resonate_presentation title
  8. 8. Development – EJB Container• Session Beans – <session-type> - stateless; <transaction-type> - bean – <isolation_level> - TRANSACTION_READ_COMMITTED, for all methods• Entity Beans – Persistence: <db-is-shared> - true; use of is_modified as “dirty” bit – Entity-cache: <concurrency-strategy> - database – db_is_shared = false; Caused transaction timeouts – db_is_shared = true; Excessive ejbLoad()’s and ejbStore()’s – Seen intermittent reentrancy exceptions; possible bug in WLS61sp1 Moved functionality from entity beans to singletons and value objects Resonate_presentation title
  9. 9. Development – “Backend”• Blocking vs. Non-blocking Operations – Use of request queues for op’s with high latency (e.g. writes to DB) – Decoupling of components via JMS server thread-pool• Error Handling – Logging of application level errors, with varying levels of severity – Map most WLS and DB errors to user-consumable errors• Debugging – Synchronization of entries across log files in the control flow chain• Throughput – Data intensive, DB and disk I/O bound – Parallelization of disk I/O across as many disks as possible Resonate_presentation title
  10. 10. Installation & Packaging • Usage – Silent Install of WLS – Install of WLS as a service – Embedded WLS (ISV) License • Issues Discovered (“Nits”) – WLS uninstall is not silent – WLS uninstall is not "cumulative", i.e. uninstall of WLS61sp1 requires uninstall of WLS61 – Uninstall does not remove BEA directory completely0 Resonate_presentation title
  11. 11. Operational Issues: Config. & Startup • Server Startup & Shutdown – Startup and shutdown class hooks via config.xml – Ordered startup of server state – Orderly shutdown in the case of failback to primary • Management Server (App Level) Config File – Setting singleton and thread states at startup time – User-visible vs. hidden parameters • Log Generation – Application level log file – Cyclical set of log files1 Resonate_presentation title
  12. 12. Operational Issues: Performance Related • Thread-pool Sizes – Strict control of application-spawned threads & execute queue – Lack of control of JMS server thread pool size (WLS6.1) • Java Heap Sizing – Guidelines to specify typical and max on heap size – Min & Max for heap and new-space set equal at startup – Experimentation required for survivor-ratio and min/max of heap- free ratios • Database Throughput – Control over database and disk I/O throughput – Indirectly impacts GC performance2 Resonate_presentation title
  13. 13. Summary-I • Things that worked – EJB Container: Stateless session beans – In-memory JMS message propagation (pub/sub) – Weblogic Server, Rel 6.1sp1, in general – Online docs (edocs.bea.com) – BEA’s consulting services • Things that “kind of” worked – Silent install, uninstall & release upgrades of WLS – Use of debuggers to step through application code3 Resonate_presentation title
  14. 14. Summary-II • Things that did not work – Full GC & network connections – Predictability (and outcome) of full GC – Network I/O (as supported in JDK 1.3.1) – Entity beans & application spawned threads4 Resonate_presentation title
  15. 15. Questions? Q&A5 Resonate_presentation title