1479430 - InfoView crashes when using SWF Loader component to view SWF created by XCelsius

SAP Knowledge Base Article - Public

1479430 - InfoView crashes when using SWF Loader component to view SWF created by XCelsius

Symptom

  • Flash player crashes along with the browser while loading a new child SWF
  • Memory is not released when loading a new child SWF in the SWF Loader component of the parent SWF
  • The memory consumption depends on the complexity of the child SWF

Environment

  • Xcelsius 2008 Enterprise SP3

Reproducing the Issue

  1. Create 2 complex Xcelsius dashboards (child) and export them as SWF
  2. Copy the SWFs to web application server (for example for Tomcat ..\webapps\ROOT)
  3. Create another Xcelsius dashboard (main) containing a List Box component
  4. In the excel store the children’s' SWF URLs
  5. Configure the List Box to copy the URLs to a destination cell
  6. Add SWF Loader component (available from Xcelsius SP3) and configure the Source URL with the destination cell mentioned earlier
  7. Upload the dashboard to BOE
  8. Log on to InfoView and open the dashboard
  9. Keep selecting different values in the List Box (appropriate child SWF will be loaded) and monitor the memory usage
  10. At certain point the browser becomes unresponsive and crashes

Cause

Due to the complexity of the dashboard, it cost a pretty long time for Flash Player to finish the Garbage Collection (GC). The increased memory issue (and final browser crash) is because the Flash Player GC is slower than new SWF Loader component is loaded.

Resolution

  • Reduce the children XLF complexity/ components and only put the actual dynamic contents to SWF Loader
  • If the children SWFs are very similar, use a generic one with formula to show different data and components
  • Using XCelsius SDK to create an iFrame XCelsius Add-On component, which can inject JavaScript to create an HTML iFrame element. This iFrame should load the children’s SWF (ExternalInterface or FlashVars could be used to communicate with children SWF in the iFrame). In this way children SWFs are loaded in another Flash Player VM, when reload the SWF, the VM is wholly destroyed and will not cause memory leak

NOTE: Using the iFrame solution might degrade the performance due the complex child SWFs being used, and the need to create and destroy the Flash Players' VMs

The iFrame component does not currently exist in the product. An Enhancement Request has been logged under ID ADAPT01436164. The Enhancement Request (ER) will be considered in terms of future product development when considering possible new features in the next major release. Please note that the ER may or may not be included depending on various factors

Keywords

memory leak; SWF memory leak; SWF Loader; Crystal Xcelsius 2008; 01436164; 1436164 , KBA , BI-RA-XL-SVR , Dashboards, view time, refresh, scalability, BOE/NW Int' , BI-RA-XL-SDK , Dashboards, add-on manager, SDK, batch utility , Problem

Product

SAP BusinessObjects Xcelsius Enterprise 2008