Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Liutauras Vilda
  • Jeanne Boyarsky
  • paul wheaton
Sheriffs:
  • Ron McLeod
  • Devaka Cooray
  • Henry Wong
Saloon Keepers:
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Frits Walraven

Intermitttently eSS applet performance is slow

 
Ranch Hand
Posts: 109
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Hi Friends,



We have One IBM web sphere app server with 2 processors and 8 GB ram and three instances are running on this server. All the instances are connected to separate DB instances.





Application: whenever the page loads the applet is downloading on the page (which contains half part is jsp and half part is applet as shown in the below screen)

Here my problem is whenever the page loading more than five users applet loading is very slow compare to accessing two or three users.



Note: Whatever the applet I am talking is actuate spread sheet engines (Product from actuate company) we can implement excel like functionalities using this api.



I looked into different parts of code and found some places where it was taking time

1) Whenever the java script is trying to download actuate product jar

2) Creating jbook object on applet class INIT() method.



I would like to explain you my simple architecture of loading applet, at this situation the involved files are jsp, JavaScript, applet class, servlet class



In the Jsp



<html>

<body leftmargin=0 topmargin=0 scroll=no>

<script src="<%=RBCConstants.APP_JSP_PATH%>/javascript/load_BPapplet.js"></script>

</body>

</html>





In the load_BPapplet.js Java Script // This part is taking time



document.write('<OBJECT classid = "clsid:CAFEEFAC-0014-0002-0010-ABCDEFFEDCBA" codebase ="/RockWorld/Download_jre/j2re-1_4_2_10-windows-i586-p.exe" NAME = "FrontEndApplet" WIDTH ="100%" HEIGHT ="70.5%" > ');

document.write('<PARAM NAME="type" VALUE="application/x-java-applet;version=1.4">');

document.write('<PARAM NAME="scriptable" VALUE="false">');

document.write('<PARAM NAME = CODEBASE VALUE ="/RockWorld/AssortPlan">');

document.write('<PARAM NAME = CODE VALUE = "com/imageinfo/common/FrontEndApplet.class" >');

document.write('<PARAM NAME = ARCHIVE VALUE = "f1j11swing.jar" >'); // this jar placed in the same folder where jsp and JavaScript files are placed

document.write('<PARAM NAME = NAME VALUE = "f1" >');

document.write('<PARAM NAME = workbook VALUE = "InlineNewWkOrderDtl"> </OBJECT> ');



In the FrontEndApplet applet class (Attached for reference)

I have added the new method called destroy as below, this method is executing automatically by IE whenever the user leaves the applet, but still the performance looks same as existing.



public void destroy() {

System.out.println("**destroy method:");

if (m_jBook != null){

System.out.println("**destroy method: if executed");

m_jBook.destroy();

}

}



As per current implementation in the INIT () method

Step 1: creating jbook object (which is used in entire class, this object is also used after the applet is loaded for other functionalities like ActionListener,

HyperlinkListener, KeyListener, UpdateListener, MouseListener

Step 2: Add jbook object to required listeners

Step 3: Preparing URL connection to make call to servlet. (Servlet functionalities are mentioned below)

Step 4: Calculating formulas



In the Servlet Class (Attached for reference)



if (szAction.equals("GETEXCEL"))

{

con = RequestDBConnection();

BookModelImpl book = null;

ExcelDataObject ExcelObject = null;

String eviewId;

String escreenName;

String etokenValue;

String esessionId;

String sheetName;

try {

HttpSession session = req.getSession(true);

ExcelObject = (ExcelDataObject) session.getValue("dataEcel");

eviewId = ExcelObject.getViewId();

eowner = ExcelObject.getOwner();

eNumber = ExcelObject.getNumber();

escreenName = ExcelObject.getScreenName();

etokenValue = ExcelObject.getTokenValue();

esessionId = ExcelObject.getSessionId();

sheetName = ExcelObject.getSheetName();

BuildPlanExcel bex = new BuildPlanExcel();

book = bex.buildPlanExcel(con, eviewId, eowner, eNumber,

escreenName, etokenValue, esessionId, sheetName); // This Class is used To set required data on sheet

by executing database queries

hmSTDRvMap = bex.getLocMap();

session.setAttribute("FormMap", hmSTDRvMap);

ServletOutputStream out = res.getOutputStream();

//writes out the book to an excel file

WriteParams wp = new WriteParams();

wp.setFileType(BookModelImpl.eFileCurrentFormat);

book.write(out, wp);

out.close();

} catch (com.f1j.util.F1Exception f1j) {

f1j.printStackTrace();

} catch (java.io.IOException ioe) {

ioe.printStackTrace();

} finally {

book.releaseLock();

book.destroy();

try {

if (con != null) {

ReleaseDBConnection(con);

}

} catch (Exception e) {

}

}

}





Please review and advice, this is a production problem, I really appreciate all your efforts.







Thanks & Regards

Gopi
[ August 02, 2007: Message edited by: Bear Bibeault ]
 
Sheriff
Posts: 67752
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Please do not cross-post the same question in multiple forums. It wastes people's time when multiple redundant conversations take place.
 
this llama doesn't want your drama, he just wants this tiny ad for his mama
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
    Bookmark Topic Watch Topic
  • New Topic