Bookmark Topic Watch Topic
  • New Topic

Intermitttently eSS applet performance is slow

 
Sirish Kumar Gongal Reddy
Ranch Hand
Posts: 109
  • Mark post as helpful
  • send pies
  • 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 ]
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 65342
97
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • 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.
 
    Bookmark Topic Watch Topic
  • New Topic