There is life after Lotusphere

Everybody is talking about Lotusphere 2010 that is just around the corner. Many people from all around the world will come to Orlando, Florida and will have a great time. That’s for sure.
Well, I am not attending for several reasons. No need to discuss this as I cannot change it.
But there is a life after Lotushere 2010. If you cannot get to LS, let Lotussphere come to you!!

Volker Weber posted earlier today about the edcom Nachlese in München.

A few days later, Ron Sebastian, Ed Brill and Brent Peters will show up at the “Lotusphere Comes To You” event in Düsseldorf, Germany. And I will attend this event.  I attended in 2007 and it was great.

2 weeks later, EntwicklerCamp 2010 will start in Gelsenkirchen. And it is for sure that I will attend this event,  because I will present a session on all  things C / C++ Api.  Bob Balaban also has a session on using the API.

The agenda is not yet completed, but the team around Rudi Knegt will have no problems filling the existing gaps.

Another event in Q1/2010 is run by the Belux Lotus User Group on March, 30th 2010. According to the BLUG website, it will be a full day event with 20 sessions in 3 tracks covering Administration, Development and Business/Other topics.

I have already entered the date in my calendar. Hope to see some well known members of the Yellowsphere and some new one then.


IdeaJam: Make NotesPeek OpenSource

NotesPeek seems no longer be maintained. It is still available as version 1.53. This version supports LND 6, but also works in version 7, 8, and 8.5x. The tool is invaluable if you want to do look into each and every corner of a Notes document or da data structure.
Pls. support my idea of making this tool Open Source:



LotusScript Debugger on Linux

I wanted to debug Lotusscript on my VM Linux Box. The OS is Ubuntu 9.10 and the client is Notes 8.5.1.
When I switch on the debugger and step into the script, the debugger loses focus on every step, regardless if you use the mouse or F8.

Anyone else having the same problem? Not sure if it is a bug or if debugging is not supported or something else …


Build LSX 8.0 solutions with Visual C++ 2008 Express

This is a quick update for the article I wrote yesterday about  the “LStatus definition problem with winreg.h“.

VS 2008 Express Edition does install the Microsoft Platform SDK Version 6.1 during setup. This version conflicts with the Lotus eXtension Toolkit 8.0.

Unfortunately, there is no option to not install the SDK. So here is what I did:

  • Run setup to install VC++ 2008 with all components.
  • Remove the Platform SDK via Windows System Control ( Add / Remove software )
  • Install the Platform SDK for Windows Server 2003 SP1
  • Configure VC++ to point to the SDK

The LSX samples will now compile properly. If you get errors on linking, be sure to add uuid.lib user32.lib and Ole32.lib as additional dependencies.

I’m not sure, if there are any side effects when replacing the SDK. If anyone has some deeper knowledge on this topic, pls. feel free to leave a comment.


LStatus definition problem with winreg.h

I installed the new Lotus eXtension Toolkit on top of my VS  2008 C++ Express compiler.

The compiler works fine for code generated using the C-API toolkit. But when I try to compile the samples that come with the Lotus eXtension toolkit, the compiler throws an error when compiling lsxcomm.cpp

c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(175) : error C2371: ‘LSTATUS’ : redefinition; different basic types c:\c-api\lsx8\inc\sys\lssam.h(385) : see declaration of ‘LSTATUS’

As far as I could see from the CfgEnv.cmd file, VS2008 is a supported compiler. And I found a comment on Bob Balaban’s blog that reported exactly the same issue.

So I wonder, if anybody was able to solve the problem and can give me a hint, what to do. I’m afraid, opening a PMR would not be the most effective way to do so … but still is an option.


New Role: [GPL Committer]

I’ve been elected as a OpenNTF GLP committer by the OpenNTF Steering Committee.

Together with Declan Lynch and Rene Winkelmeyer I will review new and existing projects to be entered into the GPL catalog.

We had a short conference call together with IP manager Peter Tanner (IBM). Declan talked about some of the issues, he had seen so far when clearing GPL code.

If you are a project chef or you want submit a new project to the GPL catalog, pls. read this article.  There are some requirements listed, when submitting GPL code to OpenNTF. Following a few guidelines would help the GPL committers to speed up the process of reviewing the code.

Legal things are not very popular, I know. And I predict that you might “hate” us sometimes for being obstrusive should we find any IP issues in your code.


OpenNTF: Lotus Notes CMS Client Utility

Chris Toohey has recently released ( or better, is about to release ) his Lotus Notes CMS Client Utility on OpenNTF.

Once he will find out, how to upload the tool, you’ll be able to download it.

I am and always will be a friend of simple tools. This is one of these tools. It is a good alternative for web site owners who do not have the possibility of running a Domino server or do not have enough money to get a blog or website hosted.

You are able to create and maintain your content using the Lotus Notes Client. After you have created your content, simply press a button and do a FileZilla sync with your webspace.

Job well done, Chris!


Calendar Cleanup – undocumented LS functions

I am researching the Calendar Cleanup action in the Lotus Notes Calendar view.
The action executes a LotusScript agent that has two undocumented db calls CreateArchiveSettings and ArchiveNowByPolicy. The functions are used since the feature was introduced in Notes 7.

Obviously nobody ever looked into the code as there are no Google search results except this post on LDD that is still unanswered.


“Installation failed” when upgrading WordPress

After a few hours of trying to find a solution to the “Installation failed” error message, when using the automatic upgrade feature in WordPress, I finally found the/my solution.

The problem:

I’v tried to perform a WordPress 2.8 to WordPress 2.8.6 upgrade with WordPress installed in the website’s root folder.
Another installation of the same version located in a subfolder and used as a sandbox before updating the production installation, automatically updated without any error.

The solution:

The FTP account, used for the automatic upgrades, did in this case have the WordPress installation folder as it’s root folder.

Moving the wordpress installation to a subfolder and reconfiguring the domain settings solved the problem.


A valid file name cannot contain any of the following characters: \ / :*?”<> |

Prior to 8.5.1 you could add file resources to your application. To have a better overwiew, you could rename your file resources and add slashes to the filename.

rename1

In DDE 8.51 this seems no longer to be possible. When you try to rename the recource directly in the view, a friendly message tells you that you are not allowed to use characters like slashes and things loke that.

rename2

The same error message occurs, when you do a rename via the “Rename” dialog ( press F2 or right-click the resource in the outline and select the rename option )

rename3

All your changes are discarded after you close the message boxes.

But there is still a “backdoor” to accomplish the aim. Renaming the file in the properties also raises the error.

rename4

But when you close the message box, your changes are accepted.


Get Logical / physical size and DAOS size with LotusScript

The admin client shows information about logical / physical size as well as DAOS size for a database.

Sizes1

But how to get this information via LotusScript? For the logical size you can use db.size. For the physical size there is no property in the NotesDatabase Class. But C-API to the rescue.

Put the following piece of code into the declaration section of a button or script library

Declare Function NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen" (Byval dbName As String, hDb As Long) As Integer
Declare Function NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" (hDb As Long) As Integer
Declare Function NSFDbSpaceUsage Lib "nnotes.dll" Alias "NSFDbSpaceUsage" (Byval hDB As Long, retAllocatedBytes As Long, retFreeBytes As Long) As Integer

Now you can call the functions to retrieve the data

Sub Click(Source As Button)
Dim dbHandle As Long
Dim usedBytes As Long
Dim freeBytes As Long
Dim ServerName As String
Dim dbName As String
ServerName = "YourServerHere"
dbName = "YourDatabaseHere.nsf"
Dim db As New NotesDatabase ( ServerName, dbName )
Call NSFDbOpen ( ServerName +"!!" + dbName, dbHandle)
If dbHandle <> 0 Then
Call NSFDbSpaceUsage(dbHandle, usedBytes, freeBytes)
Msgbox  "Logical Size: " & Cstr(db.Size) & " Bytes || Physical Size: " & Cstr(usedBytes + freeBytes) & " Bytes" & " || DAOS: " + Cstr(db.Size -(usedBytes + freeBytes))
End If
NSFDbClose dbHandle
End Sub

This code snippet produces the following output.

Sizes

The DAOS size simply calculates as the difference between logical and physical size.


DAOS: Problem with SoftDeletion

One of our servers had the following error message in log.nsf

“The database F:\data\mail\xxxxxxxxx.nsf has the incorrect DAOS object count, you should run fixup on this database. Using this database in this condition will cause the DAOS catalog to go into the ‘Needs Resync’ state.”

The database already had DAOS enabled but the logical and physical filesize were almost the same. So I ran a load compact -c on the server console and the message immediately appeard on the console and in the log.

A fixup did not change anything. After some investigation I found that soft deletion was the cause for this issue.

I unchecked the option in the database properties and ran fixup again.

“Informational, rebuild view needed – collection object was deleted (reading F:\data\mail\xxxxxxxx.nsf view note Title:'($SoftDeletions)|($SoftDeletion’)”

After the fixup had finished, I enabled the option again. Another compact -c now transferred all attachments to the DAOS repository without errors.


DISABLE_LOG_DBGROUP

Found this in my inbox today:

“Thanks to help from the IBM development team and support the issue some customers have been experiencing when running custom server tasks and Extension Manager on Domino 8.5.1. has been resolved.

The root cause of this issue was that IBM has introduced some I/O performance improvements for logging with 8.5.1, which unfortunately had the sideeffect that servers were haulting when running custom server tasks … .

But the good news is that IBM introduced a way of turning this new logging off and reverting to the way logging was done in 8.5.0.

So all you have to do is put in an extra line in the notes.ini of the server.

DISABLE_LOG_DBGROUP=1

After that everything works again.This has already been validated. The only adverse effect of this change is that logging will not be faster than it was in 8.5.0. We expect the issue to be fully resolved in the next service release of Domino.”


HTTP_MaxActiveThreads and Lotus Notes Traveler

Scott O’Keefe recently released new rules for the Domino Configuration Tuner. One of this rules watches the “Max Active Threads” setting in the server document.

The HTTP_MaxActiveThreads setting, found on the Internet Protocols/HTTP tab of the server document should be set to keep the CPU sufficiently busy and by default, it has a value of 40. DCT recommends to set this value between 40 and 80.

I ran a scan against my test server and DCT reported that HTTP_MaxActiveThreads has a value of 100 which is not a recommended setting.  So I edited the server document and changed the value to the default value.

After saving the document, I restarted the server for the changes to take effect.

This is the point, where Lotus Notes Traveler enters the scene. I looked at the console and saw the following:

serverDocHTTP3

Aha, Lotus Traveler is restarting the HTTP task. Well, nothing strange about this. In the end both, Traveler and HTTP worked as usual.

I ran the DCT scan again and was very surprised that once again the HTTP_MaxActiveThreads rule reports a not recommended value of 100.

I opened the server doc to verify the value and indeed, the value had changed from 40 to 100 again.

I once again changed the setting and restarted the server. Same result.

I reconfigured the server to not start traveler at server startup. This time, the setting did not change automatically.

Does anybody know something about this behaviour? Is this a bug or a feature? Maybe it is documented somewhere. Any hint is appreciated.

Edit: Forgot to mention that the server and Lotus Traveler are  8.5.1


From my inbox

Michael de Haas wrote:
Always wanted an easy way to copy/paste selected databases from the admin client’s files tab:
By chance, I tried edit-copy on Notes Admin 851 client and it works (never worked before, I retested in V7, 8 and 85, the Edit-Copy is greyed out). The paste into a spreadsheet works as you would want it to.


Upgrading Notes Client to 8.5.1

I upgraded my 2 Laptops to Notes 8.5.1 today. Both machines already had 8.5.1 BETA CD 8 installed.

Upgrading from 8.5.1 Beta CD8 to 8.5.1 Gold took about 95 minutes on one machine. There was a lot of disk activity during the upgrade process. The progress bar moved slowly but steady.

On the other machine, I decided to uninstall the client prior to upgrading. On this machine, it took only 15 minutes to install the client.