ILUG2008 – Gooood Morning, Dublin!

It’s 7:00 am and I’m sitting in the lobby of the Stauntons on the Green hotel waiting for breakfast . I arrived yesterday and after checking in, I walked to the venue.

Paul and the gang were preparing the bags for the attendees. The weather is great, so we could sit outside the building on the terace og Griffith Colege for a Guiness or two.

You can see, Paul Mooney, Sean Burgess, Charles Robinson, Jamie Magee, Tom Duff , ‘Mad GreenHaired Scotsman’ Bill Buchan and others on the picture.

Later on, more and more well known Bloggers, Geeks and Gurus appeared.


The LS Editor Won’t Make It Into 8.5

After installing the Lotus Notes / Domino 8.5 Beta 1, I could not find any Lotusscript Class browser in the new Eclipse based Designer.

Then I found this blog entry by Julian Buss

There is no new LotusScript editor. And the new, Eclipse based and class browsing LotusScript editor will NOT make it in 8.5

Julians post links to another post by John Head in the IBM Lotus Notes/Domino 8.5 Public Beta Forum

… this was announced at Admin 2008. It just did not make it in time. It will come in a future release after 8.5 … not sure which they have targeted


Restart Task HTTP – Unable To Open Notes Message Queue”

Just a quick hint for those running Lotus Notes Travel(l)er. When you try to restart the HTTP task on the Domino, you have to stop Travel(l)er prior to restarting the HTTP task ( restart task HTTP )

Otherwise you will see the following message on the server console

Restart Task HTTP
and the HTTP task will not restart.

UPDATE: The problem does not occur when you type “tell http quit” followed by “load http” at the server console.


ILUG2008 Is Just Around The Corner

ILUG 2008 is just a few days away. The agenda is (almost) ready and according to Paul Mooney, there are still some seats available. Did YOU already register ? If you attend ILUG 2008, don’t forget to confirm your attendence, as Paul kindly requested in his mail.

For more information listen to the Taking Notes Episode 82: 2008.05.25 – ILUG 2008!.

Vince Shuurman will present his session: 999 Code samples and 250 Notes&Domino Applications, FREE!!. If you attend this session, maybe Vince will say a few words about the latest news in OpenNTF’s project !!HELP!!.

Looking forward to seeing you in Dublin!!


Notes Cannot Do This? Client Defined Delivery Schedule

I found this idea on IdeaJam today. There have been several questions regarding scheduled mails in almost all Lotus Notes related forums in the past years and as far as I recall, Breaking Par has had a solution for this.


Although I do not see any business case for this feature, I like the idea. And yes, Notes cannot do this out of the box. But let’s see, if we can find a solution. As I commented, you can use Trigger Happy to achieve the goal. The solution only needs minor changes on the mail template.
I use Notes and Domino 8.0.1 but the agent code and the modification might work on every other Notes version. I assume that you already have Trigger Happy installed on your server.

Create two new fields in the DelOptions subform. DeliveryDate and DeliveryTime.

and save the subform.

Create an new agent in the triggerhappy.nsf and copy the following code into the agent:

'Agent ScheduledMails
'++Options

Option Public
Option Explicit

'++ Declarations

Const SCHEDULED_MAILS = {@IsAvailable("DeliveryDate") & RoutingState="HOLD"}

Sub Initialize
	On Error Goto processError
	Dim session As New NotesSession
	Dim doc As NotesDocument
	Dim item As NotesItem
	Dim Scheduled As String
	Dim dtNow As New NotesDateTime(Now)
	Dim mailbox As New NotesDatabase ( "Serv01/singultus","mail.box" )
	Dim col As NotesDocumentCollection
	Dim i As Integer

	'** make sure we don't mess up the rich text fields stored as MIME
	session.ConvertMime = False
	Set doc = session.DocumentContext

	'** check new mails
	If doc.HasItem("DeliveryDate") And (Not doc.HasItem("RoutingState" )) Then
		If Trim(doc.DeliveryDate(0)) <> "" Then
			Scheduled = _
			"Message delivery scheduled: " _
			& Cstr(doc.DeliveryDate(0)) & " " & Cstr(doc.DeliveryTime(0))
			Print scheduled
			doc.RoutingState = "HOLD"
			doc.FailureReason = Scheduled
			Call doc.save(False,False)
		End If
	End If

	'** scheduled mails to deliver ?
	If mailbox.IsOpen() Then
		Set col = mailbox.Search(SCHEDULED_MAILS,Nothing,0)
		Set doc = col.GetFirstDocument
		While ( Not doc Is Nothing )
			Dim dtSched As New NotesDateTime _
			( Cstr(doc.DeliveryDate(0)) & " " & Cstr(doc.DeliveryTime(0)) )
			If dtSched.localtime <= dtNow.LocalTime Then
				Call doc.RemoveItem ("RoutingState")
				Call doc.RemoveItem ("FailureReason")
				Call doc.Save(False,False)
			End If
			Set doc = col.GetNextDocument(doc)
		Wend

	End If

	session.ConvertMime = True
	Exit Sub

processError:
	'** use your favorite error logging routine here

	Exit Sub

End Sub

Create a trigger in the configuration database.

and save it. Every time, a new mail arrives in the mail.box, the agent is invoked. It checks the new mail, if it has a DeliveryDate item and if the item contains a value.
If so, the RoutingState is set to HOLD. The router will stop to deliver the mail. The second step is to check if the the delivery date and time is reached. If so, the agent removes the RoutingState field from the document and the router will process the document and deliver it.

The FailureReason column contains a hint that the mail is scheduled.


Information About Server Mail Rules

While server rules are accessed only from the Configuration document, the individual rule entries themselves do each have their own document.

In the individual rule document when a server rule is created, it is assigned an OrderNum. The first rule created is assigned 0, with each subsequently created rule being incremented by 1. The actual rule formula is stored in an entry $FilterFormula, which is a @Function formula representation of the rule.

In the Configuration document, the $FilterFormulaCount field is a counter that is created with registering the first rule and counts one up with every new rule that is created. When a rule is enabled, the individual rule document’s $FilterFormula field is written to a $FilterFormula_n field in the Configuration document. The n value is dependent on the OrderNum field value from the individual rule document.

Note: Because the n value for the $FilterFormula_n initially starts at 0 and the $FilterFormulaCount starts at 1, the highest $FilterFormula_n n value is expected to be 1 lower than the $FitlerFormualCount value. It is also possible that the $FilterFormulaCount value is not decremented when rules are deleted. This behavior will have no effect on the proper execution of server rules.

Another important field stored in the Configuration document is $FilterSeqNo. This field contains a numeric text value that is incremented when any rule is updated, enabled, or disabled. The Router, which executes server rules, checks this value to see if it has been incremented. If the value has been incremented. then the rules are reloaded from the Configuration document.

If you issue the Domino console command “set rules”, Domino will register the active rules. You will see a status message similar to the following:

Successfully registered 2 system filters.

The amount of system filters returned is the amount of active server rules.

Because enabled server rules are stored in Configuration documents, and there are other server specific fields in the Configuration documents, it is critical that you do not make a copy of a Configuration document as the basis of a Configuration document for a second server. For example, you want to create a Configuration document for Server B, so you copy the document from Server A and modify the necessary changes. This action can cause unexpected server rule execution, which may not be resolved by simply disabling or deleting the rules from the copied server document.
If this issue should occur, then the following instructions can be used to ‘clean up’ the stored server rules in the Configuration document:

1. Disable all rules using the configuration user interface.
2. Delete any undesired rules using the configuration user interface.
3. Create a LotusScript agent with the code below. The agent should be designed to act on a collection of “None” or Selected Documents.

Dim s As New notessession
Dim doc As notesdocument
set doc=s.documentcontext
Forall ff In doc.Items
    If ff.type = 1536 And Lcase(Left(ff.name,15)) = "$filterformula_" Then
        Call ff.remove
    End If
End Forall
doc.~$FiltersSeqNo= Cstr(Cint(doc.~$FiltersSeqNo(0))+1)
Call doc.Save(True, True)

4. Open the Configuration document, and execute the agent.
5. From the server console issue the command: set rules
6. Enable rules as desired from the configuration user interface.

{Source Lotus Software KnowledgeBase}


Mail Rules Extended

I recently posted an idea on IdeaJam to enhance the mail rules dialog on a Domino server to overcome the restriction of only use the “hard coded” conditions. There have been several attemps to enhance the dialog in the past ( Chris Linfoot for example ), but none of them adresses the use of a formula as a condition.

I’ve modified Chris’s sample db and added the requested functionality. You can download it here. To use it in your environment, replace the (RulesDlg) form and the Rules Script Lib in your names.nsf with the according design elements in the download.
Keep in mind that modifying the Domino Directory is dangerous if you are not sure of what your doing.


RemoteDesktop And Service Pack 3 For Windows XP

Uninstall FolderAfter installing Service Pack 3 for Windows XP my Remote Desktop does no longer work but throws a warning that “The pre-release version of Remote Desktop Connection has expired. To download the full version of Remote Desktop Connection. go to Windows Update or contact your system Administrator.”.

If you have the same problem after upgrading your Windows XP, here is how I worked around this issue:

Copy mstsc.exe and mstscax.dll from “C:\WINDOWS\$NtServicePackUninstall$” to “C:\WINDOWS\System32”.

That’s it

Update: John Willemse of Badkey Corner posted more information regarding RDP

Release Notes for Windows XP Service Pack 3. Remote Desktop Client 6.1 (KB 937468)
RDP and Windows XP Service Pack 3 console option is replaced. Use mstsc /admin


White House e-mails

On Tuesday, February 26,2008, at 10:00 a.m., in rcom2l54 of the Rayburn House Off,rce Building, the full Committee will hold a hearing entitled “Electronic Records Preservation at the White House.” This memo provides supplemental information for members regarding the status of the Committee’s investisation into the loss of official e-mail.

According to Theresa Payton, the White House’s current Chief Information Officer, most White House employees used the Lotus Notes e-mail system when the Bush Administration took office in January 2001. E-mails from this system were archived through the Automatic Records Management System (ARMS), which had been in place since the previous administration. In 2002, however, the White House decided to switch (or “migrate”) from the Lotus Notes e-mail system to the Microsoft Exchange e-mail system.


Service Pack Hell

John Willemse of Badkey Corner posted that Microsoft has released Service Pack 3 for Windows XP. I downloaded the file and installed the service pack on a virtual machine. Worked without problems …

Then I decided to install SP3 on my laptop. The Installation stuck with a hint that the product key is going to be verified. … After one hour still no progress. And, YES, I do have a valid product key!

I googled and found a hint that the same problem has been encountered with SP 2 already.
To avoid checking of product key do the following steps:

  • Extract the exe file with windowsxp-kb936929-sp3-x86-deu.exe -x
  • Start the update from the commandline with …\sp2\i386\update\update.exe -o

Now the installation completes.


Ghost Devices

I moved a couple of machines from ESX 2.53 to ESX 3.5 and encountered problems with network settings.

Actually, I attached the vmdk file to a new virtual machine. When I started the VM and tried to change the IP address on the virtual network adapter from DHCP to static IP, an error occured, saying that the IP is already in use by another adapter on this machine.

Unfortunately I could not see any additional adapter in the device manager or in the network configuration. Even activating “Show hidden devices” in the menu had no effect.

To solve the puzzle, open the Advanced tab in the System Properties dialog and switch to the Environmental Variables sub-window.

Then create a new “system variabledevmgr_show_nonpresent_devices and assign it a value 1.

You should see the ghost device in the device manager and can uninstall the device and change the settings on the active adapter now.


Lotus Notes Traveler – Knowledge Collection

MustGather: Email/PIM synchronization problems with Lotus Notes Traveler
MustGather: Server startup/runtime problems with Lotus Notes Traveler
MustGather: Installation problems with Lotus Notes Traveler
MustGather: Lotus Notes Traveler Specific Documents
Detailed system requirements – IBM Lotus Notes Traveler 8.0.1
Configuring IBM Lotus Notes Traveler and Domino Web Services on the same server
Which TCPIP ports does Lotus Notes Traveler use?
Can Lotus Notes Traveler and HTTP ports be consolidated to the same port?
Lotus Notes Traveler 8.0.1 does not support Apple iPhone
Steps for installing and configuring Lotus Notes Traveler on Domino server 8.0.1 or later that is currently running Lotus Sametime 8
Can the Lotus® Notes® Traveler client be installed on a storage card?
Changing the web server homepage after Lotus Notes Traveler installation

Search the IBM Software Knowledgebase for more links on Lotus Notes Traveler.


Domino Clustering Support required for proper function of IBM Lotus Notes Traveler Server

When installing Lotus Notes Traveler on a single domino server, you would normally not install the Clustering Support feature on the Domino server.

The result is that you will see a lot of “unable to find replicas for ‘database name’ on ‘server name’ ” errors ( and other Lotus Notes Traveler related errors ) in the server log.

According to an IBM Technote ( # 1303737 ) this is normal behaviour. To solve the problem, add the Clustering Support feature to your Domino installation.

UPDATE 28-May-2008: This issue has been addressed in APAR LO29715 which can be found on the Lotus Notes support site here.

However if a customer wishes to resolve before the maintenance release is available they can copy cldbdir4.ntf from the data directory of a Domino Enterprise Server to the data directory of the Domino Messaging server and restart Lotus Notes Traveler.