yes until the default 10MB.... i already said that.
On Fri, Jan 30, 2009 at 09:58, Jürgen Lind <[email protected]> wrote:
> Thank you for pointing me to the means to tune the DiskPagestore size.
> The only question that remains is whether it is normal that it keeps
> growing
> and by what extend.
>
> J.
>
>
>
> Johan Compagner wrote:
>
>> yes it grows until a max
>>
>> public DiskPageStore()
>> {
>> this((int)Bytes.megabytes(10).bytes(),
>> (int)Bytes.megabytes(100).bytes(), 50);
>> }
>>
>> (10MB for one pagemap and 100MB for a complete session over multiply
>> pagemaps)
>>
>> On Fri, Jan 30, 2009 at 09:44, Jürgen Lind <[email protected]>
>> wrote:
>>
>> Probably I was a bit unclear, I was talking about the serialized session
>>> on disk. Does the "should not grow" aspect apply there, too?
>>>
>>> J.
>>>
>>>
>>> Igor Vaynberg wrote:
>>>
>>> considering wicket only keeps last-accessed page in session your
>>>> session shouldnt just keep growing...
>>>>
>>>> -igor
>>>>
>>>> On Thu, Jan 29, 2009 at 11:20 PM, Jürgen Lind <[email protected]
>>>> >
>>>> wrote:
>>>>
>>>> One more thing: just as a rule of thumb, what would be a reasonable
>>>>> amount of data that gets added to the session for a single request?
>>>>> 20k? 100k?
>>>>>
>>>>> Regards,
>>>>>
>>>>> J.
>>>>>
>>>>>
>>>>>
>>>>> Michael Sparer wrote:
>>>>>
>>>>> I took a cursory glance over your code and saw
>>>>>>
>>>>>> item.add(new Link("update", new Model(auftrag))
>>>>>>
>>>>>> this way the "auftrag" gets into your session, you should say
>>>>>> item.getModel() there instead of new Model(auftrag)
>>>>>>
>>>>>> check your code if there is similar stuff in it - spotting those
>>>>>> things
>>>>>> might be quite tedious, but you could e.g. temporarily remove the
>>>>>> "Serializable" from your model-classes and go spotting nonserializable
>>>>>> exceptions until they don't ocurr anymore.
>>>>>> hope that helps a bit - and thanks for beating leverkusen in 2000 ;-)
>>>>>>
>>>>>> regards,
>>>>>> Michael
>>>>>>
>>>>>> Jürgen Lind-2 wrote:
>>>>>>
>>>>>> After some twiddling I found that the PagingNavigator seems to be the
>>>>>>> culprit.
>>>>>>> If I leave it out, the session grows only moderately, when I put it
>>>>>>> in,
>>>>>>> the
>>>>>>> domain objects end up in the session... Anyway here is the code:
>>>>>>>
>>>>>>> public class AuftragUebersicht extends MasterLayout {
>>>>>>>
>>>>>>> @SpringBean
>>>>>>> private AuftragBA auftragBA;
>>>>>>>
>>>>>>> public AuftragUebersicht() {
>>>>>>> this.initComponents();
>>>>>>> }
>>>>>>>
>>>>>>> private void initComponents() {
>>>>>>>
>>>>>>> final AuftragDataView auftragDataView = new
>>>>>>> AuftragDataView("resultList",
>>>>>>> new AuftragDataProvider(AuftragUebersicht.this.auftragBA), 10);
>>>>>>>
>>>>>>> Form form = new Form("searchForm") {
>>>>>>>
>>>>>>> public Form initComponents() {
>>>>>>> final TextField auftragsnummerField = new
>>>>>>> TextField("auftragsnummer",
>>>>>>> new
>>>>>>> Model(""));
>>>>>>> add(auftragsnummerField);
>>>>>>>
>>>>>>> Button searchButton = new Button("search") {
>>>>>>> public void onSubmit() {
>>>>>>> String auftragsnummer =
>>>>>>> auftragsnummerField.getModelObjectAsString();
>>>>>>>
>>>>>>> AuftragDataProvider p = (AuftragDataProvider)
>>>>>>> auftragDataView.getDataProvider();
>>>>>>> p.setQuery(new AuftragUebersichtQuery(auftragsnummer));
>>>>>>>
>>>>>>> if (auftragDataView.getDataProvider().size() == 0) {
>>>>>>> AuftragUebersicht.this.info("No results found!");
>>>>>>> }
>>>>>>> }
>>>>>>> };
>>>>>>> add(searchButton);
>>>>>>>
>>>>>>> return this;
>>>>>>> }
>>>>>>>
>>>>>>> }.initComponents();
>>>>>>>
>>>>>>> WebMarkupContainer resultListContainer = new
>>>>>>> WebMarkupContainer("resultListContainer") {
>>>>>>> public boolean isVisible() {
>>>>>>> return auftragDataView.getDataProvider().size() > 0;
>>>>>>> }
>>>>>>> };
>>>>>>>
>>>>>>> CheckGroup group = new CheckGroup("group", new
>>>>>>> ArrayList<PartnerAuftrag>());
>>>>>>>
>>>>>>> group.add(new CheckGroupSelector("groupselector"));
>>>>>>>
>>>>>>> group.add(auftragDataView);
>>>>>>>
>>>>>>> resultListContainer.add(new PagingNavigator("navigator",
>>>>>>> auftragDataView));
>>>>>>>
>>>>>>> resultListContainer.add(group);
>>>>>>>
>>>>>>> form.add(resultListContainer);
>>>>>>>
>>>>>>> this.add(form);
>>>>>>>
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> public class AuftragDataView extends DataView {
>>>>>>>
>>>>>>> public AuftragDataView(String id, IDataProvider dataProvider, int
>>>>>>> itemsPerPage) {
>>>>>>> super(id, dataProvider, itemsPerPage);
>>>>>>> }
>>>>>>>
>>>>>>> @Override
>>>>>>> protected void populateItem(final Item item) {
>>>>>>>
>>>>>>> final PartnerAuftrag auftrag = (PartnerAuftrag)
>>>>>>> item.getModelObject();
>>>>>>> item.add(new Label("auftragsnummer", auftrag.getAuftragsnummer()));
>>>>>>> ...
>>>>>>>
>>>>>>> item.add(new Link("update", new Model(auftrag)) {
>>>>>>> public void onClick() {
>>>>>>> AuftragBearbeiten page = new AuftragBearbeiten((PartnerAuftrag)
>>>>>>> getModelObject());
>>>>>>> setResponsePage(page);
>>>>>>> }
>>>>>>> });
>>>>>>>
>>>>>>> item.add(new AttributeModifier("class", true, new
>>>>>>> AbstractReadOnlyModel() {
>>>>>>> public Object getObject() {
>>>>>>> return (item.getIndex() % 2 == 1) ? "even" : "odd";
>>>>>>> }
>>>>>>> }));
>>>>>>> }
>>>>>>>
>>>>>>> @Override
>>>>>>> protected void onDetach() {
>>>>>>> super.onDetach();
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> public class AuftragDataProvider implements IDataProvider {
>>>>>>>
>>>>>>> private AuftragBA auftragBA;
>>>>>>> private AuftragUebersichtQuery query;
>>>>>>>
>>>>>>> private Collection<PartnerAuftrag> result;
>>>>>>>
>>>>>>> public AuftragDataProvider(AuftragUebersichtQuery query, AuftragBA
>>>>>>> auftragBA) {
>>>>>>> this.query = query;
>>>>>>> this.auftragBA = auftragBA;
>>>>>>> }
>>>>>>>
>>>>>>> public AuftragUebersichtQuery getQuery() {
>>>>>>> return this.query;
>>>>>>> }
>>>>>>>
>>>>>>> public void setQuery(AuftragUebersichtQuery query) {
>>>>>>> this.query = query;
>>>>>>> this.result = null;
>>>>>>> }
>>>>>>>
>>>>>>> public Iterator<PartnerAuftrag> iterator(int first, int count) {
>>>>>>> if (this.result == null) {
>>>>>>> this.performQuery();
>>>>>>> }
>>>>>>> return new ArrayList<PartnerAuftrag>(this.result).subList(first,
>>>>>>> first + count).iterator();
>>>>>>> }
>>>>>>>
>>>>>>> public IModel model(final Object object) {
>>>>>>> return new DetachablePartnerAuftragModel((PartnerAuftrag) object,
>>>>>>> this.auftragBA);
>>>>>>> }
>>>>>>>
>>>>>>> public int size() {
>>>>>>> if (this.result == null) {
>>>>>>> this.performQuery();
>>>>>>> }
>>>>>>> return this.result.size();
>>>>>>> }
>>>>>>>
>>>>>>> public void detach() {
>>>>>>> this.result = null;
>>>>>>> }
>>>>>>>
>>>>>>> private void performQuery() {
>>>>>>> ...
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> public class DetachablePartnerAuftragModel extends
>>>>>>> LoadableDetachableModel
>>>>>>> {
>>>>>>>
>>>>>>> private Long id;
>>>>>>> private AuftragBA auftragBA;
>>>>>>>
>>>>>>> public DetachablePartnerAuftragModel(PartnerAuftrag auftrag,
>>>>>>> AuftragBA
>>>>>>> auftragBA) {
>>>>>>> this(auftrag.getAuftragsId(), auftragBA);
>>>>>>> }
>>>>>>>
>>>>>>> public DetachablePartnerAuftragModel(Long id, AuftragBA auftragBA) {
>>>>>>> this.id = id;
>>>>>>> this.auftragBA = auftragBA;
>>>>>>> }
>>>>>>>
>>>>>>> @Override
>>>>>>> protected Object load() {
>>>>>>> return this.auftragBA.findAuftragByAuftragsId(this.id);
>>>>>>> }
>>>>>>>
>>>>>>> @Override
>>>>>>> protected void onDetach() {
>>>>>>> super.onDetach();
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> Michael Sparer wrote:
>>>>>>> > the objects shouldn't be serialized into the session if you're
>>>>>>> using
>>>>>>> > loadabledetachable models, please show us some code
>>>>>>> >
>>>>>>> > regards,
>>>>>>> > Michael
>>>>>>> >
>>>>>>> >
>>>>>>> > Jürgen Lind-2 wrote:
>>>>>>> >> Hi,
>>>>>>> >>
>>>>>>> >> I have a question on how the DataView component is supposed to
>>>>>>> work.
>>>>>>> In my
>>>>>>> >> application, I have to show quite large list of entities and so I
>>>>>>> am
>>>>>>> using
>>>>>>> >> a DataView together with LoadableDetachableModels to read the
>>>>>>> data
>>>>>>> on
>>>>>>> >> demand.
>>>>>>> >> However, when looking at the serialized sessions, I can observe
>>>>>>> that
>>>>>>> the
>>>>>>> >> session size constantly increases by a fairly large amount
>>>>>>> although
>>>>>>> I
>>>>>>> am
>>>>>>> >> just using the navigator to page through the list. Also, when
>>>>>>> looking
>>>>>>> into
>>>>>>> >> the serialized session, I can see that the objects that are
>>>>>>> supposed
>>>>>>> to
>>>>>>> >> be reloaded on demand are serialized into the session as well.
>>>>>>> >>
>>>>>>> >> Is this the behavior that I would expect from the DataView or am
>>>>>>> I
>>>>>>> making
>>>>>>> >> some mistake here?
>>>>>>> >>
>>>>>>> >> Regards,
>>>>>>> >>
>>>>>>> >> J.
>>>>>>> >>
>>>>>>> >> --
>>>>>>> >> Dr. Jürgen Lind
>>>>>>> >> iteratec GmbH Fon: +49 (0)89 614551-44
>>>>>>> >> Inselkammerstrasse 4 Fax: +49 (0)89 614551-10
>>>>>>> >> 82008 Unterhaching Web: www.iteratec.de
>>>>>>> >>
>>>>>>> >> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>>>>>>> >> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke,
>>>>>>> Ralf
>>>>>>> Menzel
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> >> To unsubscribe, e-mail: [email protected]
>>>>>>> >> For additional commands, e-mail: [email protected]
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >
>>>>>>> >
>>>>>>> > -----
>>>>>>> > Michael Sparer
>>>>>>> > http://talk-on-tech.blogspot.com
>>>>>>>
>>>>>>> --
>>>>>>> Mit freundlichen Grüßen,
>>>>>>>
>>>>>>> Jürgen Lind
>>>>>>>
>>>>>>> --
>>>>>>> Dr. Jürgen Lind
>>>>>>> iteratec GmbH Fon: +49 (0)89 614551-44
>>>>>>> Inselkammerstrasse 4 Fax: +49 (0)89 614551-10
>>>>>>> 82008 Unterhaching Web: www.iteratec.de
>>>>>>>
>>>>>>> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>>>>>>> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf
>>>>>>> Menzel
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -----
>>>>>> Michael Sparer
>>>>>> http://talk-on-tech.blogspot.com
>>>>>>
>>>>>> --
>>>>> Mit freundlichen Grüßen,
>>>>>
>>>>> Jürgen Lind
>>>>>
>>>>> --
>>>>> Dr. Jürgen Lind
>>>>> iteratec GmbH Fon: +49 (0)89 614551-44
>>>>> Inselkammerstrasse 4 Fax: +49 (0)89 614551-10
>>>>> 82008 Unterhaching Web: www.iteratec.de
>>>>>
>>>>> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>>>>> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf
>>>>> Menzel
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>> --
>>> Mit freundlichen Grüßen,
>>>
>>> Jürgen Lind
>>>
>>> --
>>> Dr. Jürgen Lind
>>> iteratec GmbH Fon: +49 (0)89 614551-44
>>> Inselkammerstrasse 4 Fax: +49 (0)89 614551-10
>>> 82008 Unterhaching Web: www.iteratec.de
>>>
>>> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>>> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
>>
> --
> Mit freundlichen Grüßen,
>
> Jürgen Lind
>
> --
> Dr. Jürgen Lind
> iteratec GmbH Fon: +49 (0)89 614551-44
> Inselkammerstrasse 4 Fax: +49 (0)89 614551-10
> 82008 Unterhaching Web: www.iteratec.de
>
> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>