Skip to main content

Domino transaction method testing update

 2021 is here. I hope this year will be full of better things and our lives will get to normal, where we can travel and meet each other again. For me, it started in quarantine, but all tests were negative. Another change was that I'm HCL Ambassador for the very first time in 2021. I hope it will force me to blog and speak even more about HCL products, especially about all the goodies in V12 and beyond. 

Last year, I've done a few tests of the new transaction methods. HCL checked my issues, so now it was my turn to do a few more tests.

Problem with view access after a document save

In Test 4 of my initial tests, I've found that you can no longer access views after you save a document. The problem seems to be deeper in the Domino code, so for now you must disable autoupdate on the view object. 

This, of course, means that you will not get up-to-date result, because you'll work with the old view index. An interesting fact is, that the view index is not updated even when you directly call refresh() on the view object. No error is thrown, but the results seem to use the old index. 

DQL access

The most important part that I've skipped in my initial tests was DQL. I think we all will use more and more DQL in future Domino apps, so it's important to check the behavior. 

At first, I went for a pure Form = 'Doc' query, which for whatever reason resulted in nsf scan. This worked just fine within the transaction. I wanted to check the interoperability with view indexes, so I've created another view and used 'All'.Form = 'Doc' . This forces Domino to use the view. 

The results of the tests are a bit confusing to me. The default behavior is that the DQL does not refresh the view, which leads to the same result as autoupdate set to false. So you get inconsistent results. What is more interesting is the behavior if you set refresViews to true (I've done it on code just for these queries, but you can enable this globally using QUERY_REFRESH_ALL_VIEWS=1 notes.ini parameter). The result was:

This basically means that the refreshViews had no effect while being in the transaction. I guess the reason will be the same as in the previous paragraph, where the manual refresh call had no effect, but It's up HCL to verify/explain that.

I hope a full beta package of V12, including Designer, will be released soon, so we can test this more easily than having to compile code outside and add it to Domino as a jar.







Comments

  1. One correction - autoupdate is unnecessary if you turn on inline updating of the view, which applies updates at NoteUpdate time.

    See https://jdcurtis.blog/2020/07/19/going-inline/

    ReplyDelete

Post a Comment

Popular posts from this blog

XPages Date Field Issue: Solving the One-Day Jump on Every Save

 A user reported a very strange issue - when a document with a date field is saved, it changes the value one day to the past. With every save. But only for some dates, not all. It turned out to be a mystery that goes deep into XPages and Notes/Java APIs. I've posted a sample on OpenNTF Discord and Serdar tried it on his server - no issue. But he uses the GMT zone and I have CET (Windows set to UTC+1 - Amsterdam, Berlin... to be precise). To cut it short, the issue is caused by daylight saving interpretation between Notes and Java. The date fields (because XPages have no notion of real date-only fields) are stored with 00:00 time component and for some dates the conversion back to Java Date resulted in 23:00 on the previous day. XPages that get the date component as String for the input field, which is then saved back as a previous day during document save. The app is full of date fields and I couldn't add custom logic to every save operation, so I tried to fix it at XPages conv...

HCL Domino 12.0.2, Engage 2022 and HCL Factory tour Milan

 I haven't published my recap after Engage this year and the recent HCL Factory tour in Milan is a great opportunity to write a summary about what's happening in HCL (mostly Domino) space. It's a mix of news about 12.0.2, future directions, and my impressions, so it can be a bit chaotic, but I got the impression that many people see it similarly.  Engage 2022 Engage 2022 was great (as always). I love the atmosphere in Brudges. I visited it once after Engage a few years ago and I was happy to come back. This was also the first time I had the opportunity to speak at Engage, which obviously made it a bit more stressful, but also more fun. Together with Domino Jams, HCL continued conversations with customers and partners about the future of their products at Engage. Many of these ideas were now discussed in greater detail in Milan, some of them were even demoed.  My main takeaways from Engage were: Nomad (web and mobile) are a great addition to Notes family Restyle is a great...

XPages EL/class-loader memory leak (now with solution)

 We have recently experienced OutOfMemory crashes of XPages app server. The server was recently upgraded to 12.0.1FP1, but we were getting some panic crashes in HTTP even before the upgrade (it was 9.0.1FP10). Our hopes were that the upgrade would stabilize the server, but it's not the case. At least now I start to see what's the problem.  update 8.12.2022 There were actually 3 different leaks. I have rewritten the article to be a bit more clear. I also re-run some of the tests on 9.0.1FP10, so I assume the problems are also in earlier versions. Problem 1 The server is hosting over 1000 NSF sharing the same design + some other custom apps. Not all NSFs are used via web as the app still has classic Notes UI in parallel, so it's a bit tricky to estimate the load. By using tell http xsp show modules I usually see around 350 NSFs active. We kept the default application timeout that should provide reasonable application recycling if it's not used continuously.  We started to...