Skip to Main Content

Java Development Tools

Loading massive data in dynamic ViewObject from custom query

Daniel B.Nov 22 2016 — edited Nov 25 2016

Hello,

I built an ADF Application (with JDev 12.2.1.1) where the user "creates" a dynamic query with filter. The result set is then displayed in a dynamic table component which works just fine.

My issue is now that they need to fetch massive data sometimes and the weblogic server will then crash with an OutOfMemory Exception obviously.

When you drag a ViewObject on a page as table and run it, the table/iterator only fetches the first like 10 rows and is loading the next ones on scroll.

Or short it uses virtualization, but my dynamic table not.. at least it looks like that.

How can I solve this issue by e.g. using virtualization with the dynamic component?

The tabel looks like this:

<af:table value="#{bindings.DynamicView1.collectionModel}" var="row"

               rows="#{bindings.DynamicView1.rangeSize}"

               emptyText="#{bindings.DynamicView1.viewable ? 'Keine Daten verfügbar.' : 'Zugriff verweigert.'}"

               rowBandingInterval="0" selectedRowKeys="#{bindings.DynamicView1.collectionModel.selectedRow}"

               selectionListener="#{bindings.DynamicView1.collectionModel.makeCurrent}"

               rowSelection="single" fetchSize="#{bindings.DynamicView1.rangeSize}" id="t1">

    <af:iterator id="i1" value="#{bindings.DynamicView1.attributesModel.attributes}" var="column"

                      rows="0">

        <af:column headerText="#{column.label}" id="c1"

                           partialTriggers=":::s2:b1 :::s2:b3">

            <af:dynamicComponent id="d1" attributeModel="#{column}" value="#{row.bindings[column.name].inputValue}"

                                                   readOnly="true"/>

        </af:column>

    </af:iterator>

</af:table>

And the method to create the ViewObject in th AppModule:

public void createDynamicView(String query) {

    ViewObject viewObjectOld = this.getDynamicView1();

    viewObjectOld.remove();

    this.createViewObjectFromQueryStmt("DynamicView1", query);

    ViewObject viewObject = this.getDynamicView1();

       

    viewObject.executeQuery();

}

Many thanks..

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 23 2016
Added on Nov 22 2016
3 comments
248 views