Jump to content
  • How to Handle 20+ sub reports


    varadaraja.kharvi
    Assigned User teodord
    CategoryBug report
    PriorityUrgent
    ReproducibilityAlways
    ResolutionNo Change Required
    SeverityMajor
    StatusClosed
    Versionv6.3

     

    I am using jasper report v6.3,

     

    I have created report with 20+ subreports, While generating/Exporting PDF report getting error like java.lang.OutOfMemoryError: GC overhead limit exceeded.

    Even though increased ram size 4gb into this application, still having same issue, I am using linux system even though error is the in window also.

     

    Please provide solution for this error, I am struck from long back.



    User Feedback

    Recommended Comments

    // ********** Java code

    JasperDesign jasperDesign = JRXmlLoader.load(absolutePath);

    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, param, connection);

    JasperExportManager.exportReportToPDFFile(jasperPrint, pdfFilePath);

     

     

    ******************************************************************************************************************************

    //Jasper reportfile -> JRXML FILE

     

    <?xml version="1.0" encoding="UTF-8"?>

    0

    "E:\\raj\\workspace\\Wkbnch\\src\\reports\\"

    sELECT ea.eventName,ea.eventgoal,ea.clientname,ea.id, ea.profileId,</p><p> (SELECT DISTINCT(nickname) FROM eventparticipant ep WHERE ep.profileId = ea.profileId AND ep.eventId = ea.id) AS profileName,</p><p> (SELECT GROUP_CONCAT(eventphysicallocation.`conferenceRoom` separator ', ')</p><p> FROM</p><p> `eventphysicallocation` eventphysicallocation WHERE ea.id=eventphysicallocation.eventid)</p><p> AS locations,</p><p> (SELECT GROUP_CONCAT(nickName separator ', ') FROM `eventparticipant`</p><p> WHERE FIND_IN_SET('6', REPLACE(`participantroleIds`,'$',',')) AND eventId=ea.id) AS scribes,</p><p> (SELECT GROUP_CONCAT(nickName separator ', ') FROM `eventparticipant` WHERE eventId=ea.id) AS copyiesTo</p><p> FROM</p><p> event ea WHERE ea.id =$P{eventId}

    ]]></fieldDescription></p><p> </field></p><p> <field name="eventgoal" class="java.lang.String"></p><p> <fieldDescription><![CDATA[

    ]]></fieldDescription></p><p> </field></p><p> <field name="id" class="java.lang.Long"></p><p> <fieldDescription><![CDATA[

    ]]></fieldDescription></p><p> </field></p><p> <field name="profileName" class="java.lang.String"/></p><p> <field name="locations" class="java.lang.String"/></p><p> <field name="scribes" class="java.lang.String"/></p><p> <field name="copyiesTo" class="java.lang.String"/></p><p> <variable name="isDetailOrLight" class="java.lang.String"></p><p> <variableExpression><![CDATA[

    $V{PAGE_NUMBER} != 1

    $F{eventName}

    Minutes of Meeting

    $F{eventName}

    $P{meetingTime}

    Meeting Time

    $P{meetingDate}

    Meeting Date

    $P{meetingDuration}

    Meeting Duration

    $P{eventId}>=0

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "eventDetail.jasper"

    $P{isAgenda} == 1

    $P{eventId}

    $P{isAgenda}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "templateAgenda.jasper"

    $P{isAttendeeList} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "templatePeople.jasper"

    ($P{isMeetingcapDetail} == 1 || $P{isMeetingcapLight} == 1)&& $P{isMeetingcapByTag} == 1

    $P{eventId}

    $P{isMeetingcapDetail}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "MeetingCapture1.jasper"

    ($P{isMeetingcapDetail} == 1 || $P{isMeetingcapLight} == 1) && $P{isMeetingcapRaw} == 1

    $P{eventId}

    $P{isMeetingcapDetail}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "MeetingCaptureLt.jasper"

    ($P{isMeetingcapDetail} == 1 || $P{isMeetingcapLight} == 1)

    ($P{isMeetingcapDetail} == 1 || $P{isMeetingcapLight} == 1)

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "MetCapActionItems.jasper"

    $P{isMeetingcapDetail} == 1

    $P{isMeetingcapDetail} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "MeetingCapture3.jasper"

    $P{isCapOutcome} == 1

    $P{isCapOutcome} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "MeetingCapture4.jasper"

    $P{isPhysicalLoc} == 1

    $P{isPhysicalLoc} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "templatePhyLoc.jasper"

    $P{isVirtualLoc} == 1

    $P{isVirtualLoc} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "LogVirtual.jasper"

    $P{isOutcomeMgmt} == 1

    $P{isOutcomeMgmt} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "MomOutcome.jasper"

    ($P{isEmotionalMgmt}== 1)

    $P{isEmotionalMgmt}== 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "EmotionalMgmt.jasper"

    $P{isEmotionalMgmt}== 1

    $P{isEmotionalMgmt}== 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InhibitEmotion.jasper"

    $P{IsInfoBasic} == 1

    $P{isOutcomeMgmt} == 1 && $P{IsInfoBasic} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InfoBasicLaunch.jasper"

    $P{IsInfoAdvance} == 1

    $P{isOutcomeMgmt} == 1 && $P{IsInfoAdvance} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InfoAdvLaunch.jasper"

    $P{IsInfoBasic} == 1

    ($P{isOutcomeMgmt} == 1 && $P{IsInfoBasic} == 1) || $P{isOutcomeMgmt} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InfoBasicBody.jasper"

    $P{IsInfoAdvance} == 1

    $P{isOutcomeMgmt} == 1 && $P{IsInfoAdvance} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InfoAdvBody.jasper"

    $P{IsInfoBasic} == 1

    ($P{isOutcomeMgmt} == 1 && $P{IsInfoBasic} == 1)

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InfoBasicClose.jasper"

    $P{IsInfoAdvance} == 1

    $P{isOutcomeMgmt} == 1 && $P{IsInfoAdvance} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InfoAdvClose.jasper"

    $P{IsInfoAdvance} == 1

    $P{isOutcomeMgmt} == 1 && $P{IsInfoAdvance} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "InfoAdvGuidance.jasper"

    $P{isResourceMgmt} == 1

    $P{isOutcomeMgmt} == 1

    $P{eventId}

    $P{REPORT_CONNECTION}

    $P{SUBREPORT_DIR} + "ResMngRes.jasper"

    $V{PAGE_NUMBER} == 1

    Note: The contents of this document are published on the basis of latest information present for the corresponding meeting in Engage. Please contact the Meeting Owner or Scribe for any clarification.

    .

     

    Link to comment
    Share on other sites

    Changed Status from New to Feedback Requested

    Changed Assigned User from - to @teodord


    Hi,If you never saw this report complete, maybe there is an inconsistency in the design that cause it to create new pages indefinitely and enter this infinite loop that eventually exhaust your memory.This can only be identified by looking at all JRXML templates involved, including the 20 subreports.If it just happens that you fill this report with a huge amount of records, then you should consider using a virtualizer to avoid consuming memory while generating the big JasperPrint document.You can see how to use a virtualizer in the /demo/samples/virtualizer sample of the JR distro and there is also documentation about this feature:http://jasperreports.sourceforge.net/sample.reference/virtualizer/index.html#virtualizerI hope this helps.Teodor
    Link to comment
    Share on other sites



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...