December 17, 2007

Second Life References

Soon, Ekakan will make it public on our new virtual land and office in Second Life. We will be there in person as a company with some cool features and functions as well. Stay tuned!

This blog post will function as a references page for Second Life which, like the other reference pages for Lotus Notes/Domino and Java, is constantly updated.



Technorati tags:
, , ,

December 12, 2007

When "Recompile All LotusScript" returns an error

Recompiling all lotussript for a database returned an error today:
"<form name>: LotusScript Error - Syntax Error"

Good thing it did, but it would have been helpful knowing what was wrong. I got no hint at all other than the form name. So I looked at the modification date and by who a change was last made and tried to find the most probable change request. Still its not easy if the form is big with a lot of scripts tied to it.

I opened query save, removed a bunch of code and tried to save and there it was. The other day I had copied over a small table with some fields from another form and forgot about two buttons which were making calls to functions in a script library. This script library was not declared in Options with Use "scriptlib", but no error was raised when saving until now that is. I decided to copy the functions into another script library that was used in this form, modified them slightly and everything worked and went back to normal.

While searching for this on developerWorks I found another probable cause which might be good to know about. When defining a public class in Lotusscript named 'Picture' it can be saved without errors, but when running "Recompile All Lotusscript" the same error occurs.

Technorati tags:
, ,

December 06, 2007

Book recommendation for SCJP 5.0

It's time for a new book recommendation from me. In May earlier this year I recommended the book "Head First JAVA". I finished the book two months ago or so. The book stayed being excellent through the end and it's time for the next step in my mission to be a Java God ;-)

To really understand and remember everything I have combined my theoretical knowledge with practical work in the Domino environment as well as outside in Eclipse since experience is invaluable in the learning cycle. Of course I have oceans of information and experience to learn and teach but we all have to start somewhere.

So this mission must include a certification and therefore the natural choice for me had to be a preparation book for the certification test. I want to be a certified programmer for Java 5 so what would be better than reading a book named "Sun Certified Programmer for Java 5" with the same authors (Kathy Sierra and Bert Bates) as the previously recommended book? The book is really thick and is good exercize for my muscles carrying it around to and from work. Oh, and it is good reading as well. I have completed a chapter now and I am impressed as before. It has excellent coverage of all parts for the certification exam with tips and tricks, exercises and so on in a very structured way. It not only learns what to study but also how.

So go ahead and get this one if you want what I want. Read more on Google book search.

An interesting topic post from 2004 - Does Java certification matter?

Technorati tags:
, , , ,

December 01, 2007

Slow database performance

A database with slow performance can be caused by a lot of reasons. My last two cases were probably due to readers fields and deletion stubs.

If you have a slow view with a lot of documents in it, check if the documents have readers fields, it's a common cause and there are several suggested actions to take. If the user accessing the view only has access to a small part of all the documents it will render very slowly. A page (memory unit) will be read into memory consisting of approximately 300 documents. When scrolling down the view it will be recalculated. If you have access to all documents it will render pretty much as usual.

The other day I was troubleshooting a database which was slow to open with slow views. It had a view that it took about 2 minutes to open. The database had 50.000 documents and 129 views and this and several other views used readers fields so I figured that would be the problem.
I copied the database with all documents and accessed it with the same user and they behaved very differently. The same view that took about 2 minutes to open in the original database was opened in about 5 seconds in the copy. The only difference was the size of the database. The original was about 990MB and the copy started at 108MB.

So I figured that would be due to view indexes. An it probabaly were to some point but together with the view index it turned out that deletion stubs were part of it.

Five days a week, on each day, approximately 40.000 documents was deleted an new ones were created from an excel file (this was an old solution to update them). The purge interval was set to 120 days. So this means that there were about 40.000 * 88 (only weekdays) = 3.520.000 deletion stubs in the database. Since a deletion stub is about 100 bytes (at least it was in version 6) it means that the they used approximately 352MB of the space and the database consisted of a minimum of 352MB of deletion stubs although the count is more impressive.

The number of deletion stubs probably together with a corrupt view index caused the database to perform very slow. Fixup and Updall took a very long time as well and had to be aborted.

A copy of the database solved the problem but a long-term solution is of course to recode the agent to update the documents instead of replacing them and to make the purge interval more frequent.

Technorati tags:
,,, ,