Re: FOPException: FOP processor fails during load test

2004-01-30 Thread Subbareddy Kalakota
Hi John,
I made the Driver and factory variables as method level, its works fine now.
so it might me be thread safty issue.

Thanks for identifying that.

Subbaredd.


- Original Message -
From: Subbareddy Kalakota [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, January 27, 2004 4:01 PM
Subject: Re: FOPException: FOP processor fails during load test


 John,
 Thanks for the reply. I try making the Driver at method level and see what
 would be the out come. I also made the log level to fatal, I set it to
 warning level, it may through out some more info.

 Thanks,
 Subbareddy.
 - Original Message -
 From: John Austin [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Tuesday, January 27, 2004 3:13 PM
 Subject: Re: FOPException: FOP processor fails during load test


  On Tue, 2004-01-27 at 16:14, Subbareddy Kalakota wrote:
 
  Have replied to Subbareddy off-line to the effect that his
  problem might be one of thread-safety.
 
  He has several class variables (eventMappings, factory,
  driver and log) that must be thread-safe in order for the
  servlet to work.
 
  I suspect that the Driver class isn't thread-safe, leading to
  his problem.
 
   Hi,
   I am using FOP to generate PDF reports from servlet. I am generating
and
   storing the pdf report into file and serving that file so that I am
 avoiding
   repeating calls from browser. every thing going fine, I am able to
 generate
   pdf reports in development env(windows) and testing (AIX) but when a
 load
   test is performed on application(AIX, Websphere 5), pdf reports are
 failing
   after some time(like 20 users concurrently accessing the reports ) but
 all
   other functions of applicaiton running fine. Here is the exception I
am
   getting and followed by the pdf code segment that causing this
 exception.
  
   Please let me know if I am doing wrong any where.
  
   I am guessing ,Driver has some problem, like hanging or not getting
   destroyed.
  
   Thanks
   subbareddy.
  
  
   org.apache.fop.apps.FOPException: root must be root element
   at
  
org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java(Compiled
   Code))
   at
  

org.apache.xalan.transformer.ResultTreeHandler.flushElem(ResultTreeHandler.j
   ava(Compiled Code))
   at
  

org.apache.xalan.transformer.ResultTreeHandler.flushPending(ResultTreeHandle
   r.java(Compiled Code))
   at
  

org.apache.xalan.transformer.ResultTreeHandler.endElement(ResultTreeHandler.
   java(Compiled Code))
   at
  

org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java(
   Compiled Code))
   at
  

org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
   lyTemplates.java(Compiled Code))
   at
  

org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
   a(Compiled Code))
   at
  

org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
   erImpl.java(Compiled Code))
   at
  

org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Transformer
   Impl.java:2081)
   at
  

org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
   ava:1137)
   at
  

org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
   600)
   at
  

org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
   1054)
   at
  

org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
   1032)
   at
  

com.verizon.wbtt.components.servlet.controller.ControllerServlet.outputXML2P
   dfFile(ControllerServlet.java(Com
   piled Code))
   at
  

com.verizon.wbtt.components.servlet.controller.ControllerServlet.doProcess(C
   ontrollerServlet.java(Compiled Co
   de))
  
  
   ** Code Segment ***
  
  
   public class ControllerServlet extends HttpServlet {
  
private HashMap eventMappings;
private TransformerFactory factory =null;
Driver driver=null;
private org.apache.avalon.framework.logger.Logger log= new
 ConsoleLogger
   (ConsoleLogger.LEVEL_FATAL);
  
public void init() {
String eventMappingsURL = null;
 try{
  
  factory=TransformerFactory.newInstance();
  MessageHandler.setScreenLogger(log);
  driver = new Driver();
  driver.setLogger(log);
  driver.setRenderer(Driver.RENDER_PDF);
}
protected void outputXML2PdfFile (Source xml, String xslt,
   HttpServletRequest request, HttpServletResponse response) throws
   javax.servlet.ServletException, IOException, FOPException,
   TransformerException {
 String id = getServletConfig().getServletContext().getRealPath(/);
 org.apache.fop.configuration.Configuration.put(baseDir, id);
  
 HttpSession session = request.getSession();
 CacheDir pdfDir = (CacheDir) session.getAttribute(__PDFFILEDIR__);
  
 if (pdfDir == null) {
  CacheDir tempDir = (CacheDir

FOPException: FOP processor fails during load test

2004-01-27 Thread Subbareddy Kalakota
Hi,
I am using FOP to generate PDF reports from servlet. I am generating and
storing the pdf report into file and serving that file so that I am avoiding
repeating calls from browser. every thing going fine, I am able to generate
pdf reports in development env(windows) and testing (AIX) but when a load
test is performed on application(AIX, Websphere 5), pdf reports are failing
after some time(like 20 users concurrently accessing the reports ) but all
other functions of applicaiton running fine. Here is the exception I am
getting and followed by the pdf code segment that causing this exception.

Please let me know if I am doing wrong any where.

I am guessing ,Driver has some problem, like hanging or not getting
destroyed.

Thanks
subbareddy.


org.apache.fop.apps.FOPException: root must be root element
at
org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java(Compiled
Code))
at
org.apache.xalan.transformer.ResultTreeHandler.flushElem(ResultTreeHandler.j
ava(Compiled Code))
at
org.apache.xalan.transformer.ResultTreeHandler.flushPending(ResultTreeHandle
r.java(Compiled Code))
at
org.apache.xalan.transformer.ResultTreeHandler.endElement(ResultTreeHandler.
java(Compiled Code))
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java(
Compiled Code))
at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
lyTemplates.java(Compiled Code))
at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a(Compiled Code))
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java(Compiled Code))
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Transformer
Impl.java:2081)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
ava:1137)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
600)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
1054)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
1032)
at
com.verizon.wbtt.components.servlet.controller.ControllerServlet.outputXML2P
dfFile(ControllerServlet.java(Com
piled Code))
at
com.verizon.wbtt.components.servlet.controller.ControllerServlet.doProcess(C
ontrollerServlet.java(Compiled Co
de))


** Code Segment ***


public class ControllerServlet extends HttpServlet {

 private HashMap eventMappings;
 private TransformerFactory factory =null;
 Driver driver=null;
 private org.apache.avalon.framework.logger.Logger log= new ConsoleLogger
(ConsoleLogger.LEVEL_FATAL);

 public void init() {
 String eventMappingsURL = null;
  try{

   factory=TransformerFactory.newInstance();
   MessageHandler.setScreenLogger(log);
   driver = new Driver();
   driver.setLogger(log);
   driver.setRenderer(Driver.RENDER_PDF);
 }
 protected void outputXML2PdfFile (Source xml, String xslt,
HttpServletRequest request, HttpServletResponse response) throws
javax.servlet.ServletException, IOException, FOPException,
TransformerException {
  String id = getServletConfig().getServletContext().getRealPath(/);
  org.apache.fop.configuration.Configuration.put(baseDir, id);

  HttpSession session = request.getSession();
  CacheDir pdfDir = (CacheDir) session.getAttribute(__PDFFILEDIR__);

  if (pdfDir == null) {
   CacheDir tempDir = (CacheDir)
getServletContext().getAttribute(__TEMPFILEDIR__);
   if (tempDir == null) {
//tempDir = new CacheDir (WbtsPdfDir, temp);
tempDir = new CacheDir (id, temp);
tempDir.mkdir();
getServletContext().setAttribute(__TEMPFILEDIR__, tempDir);
   }

   pdfDir = new CacheDir (tempDir, session.getId());
   pdfDir.mkdir();
   session.setAttribute(__PDFFILEDIR__, pdfDir);
  }
  // end of cache directory

  String pdfName = String.valueOf(System.currentTimeMillis()) + .pdf;
  OutputStream out = new FileOutputStream(new File(pdfDir, pdfName));
  driver.setOutputStream (out);

  TransformerFactory factory = TransformerFactory.newInstance();
  factory.setURIResolver(defaultURIResolver());
  StreamSource slt = new
StreamSource(getServletConfig().getServletContext().getResourceAsStream(xslt
));
  slt.setSystemId(id);
  Transformer transformer = factory.newTransformer(slt);

  SAXResult res = new SAXResult(driver.getContentHandler());
  res.setSystemId(id);
  xml.setSystemId(id);
  transformer.transform(xml, res);
  out.flush(); out.close();

Logger.trace(Logger.SERVLET_LOGGING,ControllerServlet().outputXML2PdfFile()
-- Forwarding to pdf file :+File.separator + pdfDir.getContextName() +
File.separator + pdfName);
  RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher(File.separator +
pdfDir.getContextName() + File.separator + pdfName);
  dispatcher.forward(request, response);


  //response.sendRedirect (File.separator + pdfDir.getContextName() +

Re: FOPException: FOP processor fails during load test

2004-01-27 Thread John Austin
On Tue, 2004-01-27 at 16:14, Subbareddy Kalakota wrote:

Have replied to Subbareddy off-line to the effect that his
problem might be one of thread-safety. 

He has several class variables (eventMappings, factory,
driver and log) that must be thread-safe in order for the 
servlet to work. 

I suspect that the Driver class isn't thread-safe, leading to
his problem.

 Hi,
 I am using FOP to generate PDF reports from servlet. I am generating and
 storing the pdf report into file and serving that file so that I am avoiding
 repeating calls from browser. every thing going fine, I am able to generate
 pdf reports in development env(windows) and testing (AIX) but when a load
 test is performed on application(AIX, Websphere 5), pdf reports are failing
 after some time(like 20 users concurrently accessing the reports ) but all
 other functions of applicaiton running fine. Here is the exception I am
 getting and followed by the pdf code segment that causing this exception.
 
 Please let me know if I am doing wrong any where.
 
 I am guessing ,Driver has some problem, like hanging or not getting
 destroyed.
 
 Thanks
 subbareddy.
 
 
 org.apache.fop.apps.FOPException: root must be root element
 at
 org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java(Compiled
 Code))
 at
 org.apache.xalan.transformer.ResultTreeHandler.flushElem(ResultTreeHandler.j
 ava(Compiled Code))
 at
 org.apache.xalan.transformer.ResultTreeHandler.flushPending(ResultTreeHandle
 r.java(Compiled Code))
 at
 org.apache.xalan.transformer.ResultTreeHandler.endElement(ResultTreeHandler.
 java(Compiled Code))
 at
 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java(
 Compiled Code))
 at
 org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
 lyTemplates.java(Compiled Code))
 at
 org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
 a(Compiled Code))
 at
 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
 erImpl.java(Compiled Code))
 at
 org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Transformer
 Impl.java:2081)
 at
 org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
 ava:1137)
 at
 org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
 600)
 at
 org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
 1054)
 at
 org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
 1032)
 at
 com.verizon.wbtt.components.servlet.controller.ControllerServlet.outputXML2P
 dfFile(ControllerServlet.java(Com
 piled Code))
 at
 com.verizon.wbtt.components.servlet.controller.ControllerServlet.doProcess(C
 ontrollerServlet.java(Compiled Co
 de))
 
 
 ** Code Segment ***
 
 
 public class ControllerServlet extends HttpServlet {
 
  private HashMap eventMappings;
  private TransformerFactory factory =null;
  Driver driver=null;
  private org.apache.avalon.framework.logger.Logger log= new ConsoleLogger
 (ConsoleLogger.LEVEL_FATAL);
 
  public void init() {
  String eventMappingsURL = null;
   try{
 
factory=TransformerFactory.newInstance();
MessageHandler.setScreenLogger(log);
driver = new Driver();
driver.setLogger(log);
driver.setRenderer(Driver.RENDER_PDF);
  }
  protected void outputXML2PdfFile (Source xml, String xslt,
 HttpServletRequest request, HttpServletResponse response) throws
 javax.servlet.ServletException, IOException, FOPException,
 TransformerException {
   String id = getServletConfig().getServletContext().getRealPath(/);
   org.apache.fop.configuration.Configuration.put(baseDir, id);
 
   HttpSession session = request.getSession();
   CacheDir pdfDir = (CacheDir) session.getAttribute(__PDFFILEDIR__);
 
   if (pdfDir == null) {
CacheDir tempDir = (CacheDir)
 getServletContext().getAttribute(__TEMPFILEDIR__);
if (tempDir == null) {
 //tempDir = new CacheDir (WbtsPdfDir, temp);
 tempDir = new CacheDir (id, temp);
 tempDir.mkdir();
 getServletContext().setAttribute(__TEMPFILEDIR__, tempDir);
}
 
pdfDir = new CacheDir (tempDir, session.getId());
pdfDir.mkdir();
session.setAttribute(__PDFFILEDIR__, pdfDir);
   }
   // end of cache directory
 
   String pdfName = String.valueOf(System.currentTimeMillis()) + .pdf;
   OutputStream out = new FileOutputStream(new File(pdfDir, pdfName));
   driver.setOutputStream (out);
 
   TransformerFactory factory = TransformerFactory.newInstance();
   factory.setURIResolver(defaultURIResolver());
   StreamSource slt = new
 StreamSource(getServletConfig().getServletContext().getResourceAsStream(xslt
 ));
   slt.setSystemId(id);
   Transformer transformer = factory.newTransformer(slt);
 
   SAXResult res = new SAXResult(driver.getContentHandler());
   res.setSystemId(id);
   xml.setSystemId(id);
   

Re: FOPException: FOP processor fails during load test

2004-01-27 Thread Subbareddy Kalakota
John,
Thanks for the reply. I try making the Driver at method level and see what
would be the out come. I also made the log level to fatal, I set it to
warning level, it may through out some more info.

Thanks,
Subbareddy.
- Original Message -
From: John Austin [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, January 27, 2004 3:13 PM
Subject: Re: FOPException: FOP processor fails during load test


 On Tue, 2004-01-27 at 16:14, Subbareddy Kalakota wrote:

 Have replied to Subbareddy off-line to the effect that his
 problem might be one of thread-safety.

 He has several class variables (eventMappings, factory,
 driver and log) that must be thread-safe in order for the
 servlet to work.

 I suspect that the Driver class isn't thread-safe, leading to
 his problem.

  Hi,
  I am using FOP to generate PDF reports from servlet. I am generating and
  storing the pdf report into file and serving that file so that I am
avoiding
  repeating calls from browser. every thing going fine, I am able to
generate
  pdf reports in development env(windows) and testing (AIX) but when a
load
  test is performed on application(AIX, Websphere 5), pdf reports are
failing
  after some time(like 20 users concurrently accessing the reports ) but
all
  other functions of applicaiton running fine. Here is the exception I am
  getting and followed by the pdf code segment that causing this
exception.
 
  Please let me know if I am doing wrong any where.
 
  I am guessing ,Driver has some problem, like hanging or not getting
  destroyed.
 
  Thanks
  subbareddy.
 
 
  org.apache.fop.apps.FOPException: root must be root element
  at
  org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java(Compiled
  Code))
  at
 
org.apache.xalan.transformer.ResultTreeHandler.flushElem(ResultTreeHandler.j
  ava(Compiled Code))
  at
 
org.apache.xalan.transformer.ResultTreeHandler.flushPending(ResultTreeHandle
  r.java(Compiled Code))
  at
 
org.apache.xalan.transformer.ResultTreeHandler.endElement(ResultTreeHandler.
  java(Compiled Code))
  at
 
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java(
  Compiled Code))
  at
 
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
  lyTemplates.java(Compiled Code))
  at
 
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
  a(Compiled Code))
  at
 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
  erImpl.java(Compiled Code))
  at
 
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Transformer
  Impl.java:2081)
  at
 
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
  ava:1137)
  at
 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
  600)
  at
 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
  1054)
  at
 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
  1032)
  at
 
com.verizon.wbtt.components.servlet.controller.ControllerServlet.outputXML2P
  dfFile(ControllerServlet.java(Com
  piled Code))
  at
 
com.verizon.wbtt.components.servlet.controller.ControllerServlet.doProcess(C
  ontrollerServlet.java(Compiled Co
  de))
 
 
  ** Code Segment ***
 
 
  public class ControllerServlet extends HttpServlet {
 
   private HashMap eventMappings;
   private TransformerFactory factory =null;
   Driver driver=null;
   private org.apache.avalon.framework.logger.Logger log= new
ConsoleLogger
  (ConsoleLogger.LEVEL_FATAL);
 
   public void init() {
   String eventMappingsURL = null;
try{
 
 factory=TransformerFactory.newInstance();
 MessageHandler.setScreenLogger(log);
 driver = new Driver();
 driver.setLogger(log);
 driver.setRenderer(Driver.RENDER_PDF);
   }
   protected void outputXML2PdfFile (Source xml, String xslt,
  HttpServletRequest request, HttpServletResponse response) throws
  javax.servlet.ServletException, IOException, FOPException,
  TransformerException {
String id = getServletConfig().getServletContext().getRealPath(/);
org.apache.fop.configuration.Configuration.put(baseDir, id);
 
HttpSession session = request.getSession();
CacheDir pdfDir = (CacheDir) session.getAttribute(__PDFFILEDIR__);
 
if (pdfDir == null) {
 CacheDir tempDir = (CacheDir)
  getServletContext().getAttribute(__TEMPFILEDIR__);
 if (tempDir == null) {
  //tempDir = new CacheDir (WbtsPdfDir, temp);
  tempDir = new CacheDir (id, temp);
  tempDir.mkdir();
  getServletContext().setAttribute(__TEMPFILEDIR__, tempDir);
 }
 
 pdfDir = new CacheDir (tempDir, session.getId());
 pdfDir.mkdir();
 session.setAttribute(__PDFFILEDIR__, pdfDir);
}
// end of cache directory
 
String pdfName = String.valueOf(System.currentTimeMillis()) + .pdf