Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

Support for Windows 2008 R2 RDS and XenApp 6.0

Daniel Nashed  16 July 2010 09:02:43

We are currently in discussion about "Windows Server 2008 R2 RDS" and "XenApp 6.0" support.
Both platforms are not yet supported. Having XenApp 6.0 support is the logical next step but we see more and more customers who are moving to the Microsoft solution with Win 2008 R2 which has been improved a lot.
Sadly "Terminal Services" have never been supported and we are looking for customer references who would need those platforms for their environment -- specially Win 2008 R2.

Christian Henseler created two IdeaJam entries.
But if you would like to give IBM more details about your requirements (Number of Users etc) Christian and me could pass this information directly to the responsible person in IBM.

Feel free to send your information directly to info at nashcom.de

-- Daniel

Windows Server 2008 R2 RDS support
http://ideajam.net/IdeaJam/P/ij.nsf/0/C9469F9AF2A784F68625775B00348A29?OpenDocument 

XenApp 6.0 support
http://ideajam.net/IdeaJam/P/ij.nsf/0/5E8F792C067038A98625775B0033C477?OpenDocument


Extended Inbox Management via nshrun

Daniel Nashed  15 July 2010 15:02:25

Domino provides a way to reduce the number of documents in the Inbox based on the age of the documents and if they are already read or not.
All customers I explained what the feature does immediately said: "If this would move documents to a different folder ..."
So I implemented a folder move based on the age of the modified of the document to configurable folder that is automatically created.

The only extra option beside the number of days is currently that unread documents are not moved and that you get a detailed statistic about remaining entries, moved entries and unread entries that are skipped.

Before I release a new version of nshrun with those features, does someone have other ideas what could make sense in this functional area?

-- Daniel

Issue with SMTP Extension Managers in 8.5.x

Daniel Nashed  12 July 2010 22:52:05

We ran into an interesting issue on a Domino 8.5.1 FP3 Server on Linux when using SpamGeek.
SpamGeek leverages SMTP Extension Manager events which change the way the SMTP code works in the background to pass information to Extension Manager routines.
Our server crashed every couple of hours or even in shorter intervals depending on the load and after 2 weeks of debugging and hotfix code it turned out that the issue we ran into was a really bad memory overwrite occuring in some very certain situations.

If you ran into a crash situations with a similar call-stack like this, you are running into the same issue. We hope that this fix makes it into the next fixpack and 8.5.2 but it is not confirmed yet.
For reference the SPR number is #NORK86PSDM and it can hit any SMTP Extension Manager which leverages the EM_AFTER event of EM_SMTPMESSAGEACCEPT.

-- Daniel

Thread 4 (Thread -1405572192 (LWP 1938)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb5e64d11 in ___newselect_nocancel () from /lib/libc.so.6
#2 0xb6178720 in FRDoSleep ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#3 0xb6179925 in OSRunExternalScript ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#4 0xb617afcc in OSFaultCleanupExt ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#5 0xb617b0b6 in OSFaultCleanup ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#6 0xb6146bd7 in fatal_error ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#7 <signal handler called>
#8 0xffffe410 in __kernel_vsyscall ()
#9 0xb5ff7661 in raise () from /lib/libpthread.so.0
#10 0xb61949f3 in Panic () from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#11 0xb615b951 in LockHandleExt ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#12 0xb615bac3 in LockHandle ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#13 0xb615c47c in OSUnlockObject ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#14 0xb61c9f26 in OSUnlockPool ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#15 0xb671e5ef in NSFNoteGetInfo ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#16 0xb6720176 in NSFNoteClose ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#17 0x080640d8 in CSMTPProtocol::~CSMTPProtocol ()
#18 0x0805aa6e in CSMTPTask::~CSMTPTask ()
#19 0x0805acea in CSMTPSrv::OnDisconnect ()
#20 0x0805c0be in CSMTPSrv::OnConnect ()
#21 0x08076fc7 in CIServ::ServerTaskProtocolMachine ()
#22 0x0807d9e4 in CIServ::ServerTaskIOCP ()
#23 0x0807f0f2 in ServerThread ()
#24 0xb61701a6 in ThreadWrapper ()
from /opt/ibm/lotus/notes/latest/linux/libnotes.so
#25 0xb5ff034b in start_thread () from /lib/libpthread.so.0
#26 0xb5e6b65e in clone () from /lib/libc.so.6

Domino on Win2008 Hotfix Needed for Performance / Hang Issue

Daniel Nashed  8 July 2010 08:39:43

There is a hang and/or performance issue running Domino on Win2008 when you shutdown the server or the dbache is flushed.
This might affect your server also in other situations. We have customers running into performance issues and the fix helped to get it resolved.

Here is a brand new technote describing the problem in detail

http://www.ibm.com/support/docview.wss?uid=swg21427348

And here is the referenced Microsoft technote providing detailed information about the hotfix on Microsoft side

http://support.microsoft.com/kb/974609

If you are running Domino on Win 2008 you have to apply this hotfix

-- Daniel

Apple Device Version Numbers and iOS Version

Daniel Nashed  2 July 2010 12:10:46

In the comments of my last Traveler posting Bhavesh asked me for a way to figure out the OS version of an Apple device when still running on an earlier Traveler version.
Traveler only knows the codes for iOS releases which are available when that particular Traveler release shipped.
In some of the earlier 8.5.2 beta builds iOS4 is also not mapped. But you can figure out from the Apple codes what iOS you are running.

There is an internal code and a code that is used in the User-Agent. Traveler uses the code in the user agent to map it to the iOS version.

So even your Traveler Server might not know about the latest code, you can see from the codes what iOS version an user is running.

In general User Agent codes of 500s are OS 2, 700s are OS 3, and 800s are OS 4

Bhavesh looked into his Traveler server and checked the User Agent codes and matched them with iOS release and the internal code.
Here is a quick list he created based on his findings.


-- Daniel

iOSApple CodeUser Agent
Code
3.07A341701.341
3.0.17A400701.400
iPad 3.27B367702.367
3.17C144703.144
3.1.27D11704.11
3.1.37E18705.18
4.08A293801.293

Moving a Traveler Server to a new box

Daniel Nashed  1 July 2010 09:17:55

I have been running my productive Traveler installation on a small PC in a VMware Server environment. The box was quite old and had not much resources.
So I decided to finally get a real server hardware (Lenovo TS200 -- a very nice and not really expensive piece of hardware which is ESXi 4.0 supported).

I was surprised how smooth the migration went. I first thought about migrating the VMware image but the installation was on XP.
So I installed a Win2003 R2 64bit Server, installed the Domino Server and the Traveler server in the same path I had on my old box.

after I shutting down the Domino server I just copied the following files to the new machine:

*.nsf files (system databases including LotusTraveler.nsf)
server.id
notes.ini
keyring files
traveler/ntsdb (couldscape based state database)

Than I gave the VMware instance the IP of the previous instance and started the server.

So the key point here is the cloudscape based state database. without copying the database all devices would have needed a complete re-sync.
Also I decided to not copy any of the changed Traveler configuration that I did over the last couple of weeks and started with a clean install.
Depending on your changes you might need to copy also data/traveler/cfg/NTSConfig.xml.

This is really not much more complicated than moving a normal Domino server.

-- Daniel



Update on iOS 4.0 Traveler Timing

Daniel Nashed  29 June 2010 02:20:35


I blogged about the changed timing for iOS 4.0 last week --> http://blog.nashcom.de/nashcomblog.nsf/dx/traveler-with-iphone-ios4-timing-issues.htm
The information I have posted was darft and the first approach. But it turned out that the short timeout interval does not work well with ActiveSync or at least with Traveler.

IBM requested from Apple information how to change the timeout values back to the pre-iOS4 settings.
There is a profile that can be used to push the changed sync timeout values to the iOS4 device.

You should switch to this approach because it works better for iOS 4 devices and you should change the settings from the last posting back to the original.
On 8.5.1 you can keep the default as it was before the recommended change. On 8.5.2 you also have to revert to the previous settings.

To update your iPhone running iOS4 you need to download a profile in an upcoming Technote #4027190 "Recommendations if using an Apple iOS 4 device with Lotus Notes Traveler" and follow the instructions.to install it. You have to restart your iPhone and in some cases even remove the ActiveSync profile.

The technote is about to be released shortly.


Update 29.06.2010, 9:30
Apple has a brand new support technote describing the same issue and they also published the profile to change the settings.
See this Apple technote for details --> http://support.apple.com/kb/TS3398


-- Daniel


Enhanced PDF Output in Lotus Symphony 3.0

Daniel Nashed  28 June 2010 09:46:00

The PDF Export functionality in Lotus Symphony was quite limited and specially when exporting presentations with screen-prints we ran into quality issues because the images have been always scaled down.
Now with Symphony 3.0 we have a very flexible and powerful new export option which allows you to keep the full quality of the screen prints in your presentation (lossless compression or set the quality to 100%). And we also got PDF/A-1a converting ...

Thanks to the Symphony team!

-- Daniel





Traveler with iPhone iOS4 timing issues

Daniel Nashed  24 June 2010 23:32:22


Update 29.06.2010, 9:30
The information described here is not the final solution. See this blog entry for the current info http://blog.nashcom.de/nashcomblog.nsf/dx/update-on-ios-4.0-traveler-timing.htm
You should not use this change any more but instead have the timing on the iOS4 device changed to the previous behavior

See this brand new Apple technote for details --> http://support.apple.com/kb/TS3398

-- Daniel


When we first tested the final version of the new iOS4 with Traveler I ran into some issues.
After you install the new OS you have to do a complete resync because the data synced over ActiveSync is not backed up in your iTunes backup (works as designed and makes sense).

My first resync ran into a lot of timeouts and I was wondering what was going wrong.

It turned out that different iPhone OS releases have different sync timeout values.

There is some documentation how to tune for older OS versions in the 8.5.1 Traveler Admin guide.
But those settings need to be changed again for iOS4.

OS2 has 1 minute timeout
OS3 has 4 minutes timeout
OS4 has 30 seconds timeout

In Traveler 8.5.1 there is only one timeout setting that needs to fit all devices . In Traveler 8.5.2 (current beta already has it) there is a setting for each iPhone OS that will be correct once 8.5.2 ships.

There is still testing going on with the new iOS4 with 8.5.1 and 8.5.2. IBM is working on a TN to clarify some details about those settings for 8.5.1
Some details in the current beta about how to configure those timeouts might change in 8.5.2. So some detail I am posting about might be obsolete or already out of the box tuned in the right way.

So what you need to change in 8.5.2 (in case you are a beta user) is the following in data/traveler/cfg/NTSConfig.xml

you clone the existing line for AS_REQUEST_TIME_LIMIT_APPLE_3X devices and change the setting to 20 seconds like this

Traveler 8.5.2

<PROPERTY NAME="AS_REQUEST_TIME_LIMIT_APPLE_4X" VALUE="20"/>

This will only change the timeout values for the new iOS4 and this will be set already when 8.5.2 ships.

In 8.5.1 you can only tune the value for all devices. So you have to take the smallest interval of all releases and have to change the value like this

Traveler 8.5.1

<PROPERTY NAME="AS_REQUEST_TIME_LIMIT" VALUE="20"/>

For 8.5.1 you need to change another parameter to the same value as described in the admin help in the data/servlet.properties file.
This setting has been already autotuned in 8.5.2 and has been removed. So you don't need it in 8.5.2.
But for 8.5.1 you should still set the value according to documentation. The value is in milliseconds!

servlet.traveler.initArgs=ntstimeoutsyncas=20000


There is a second parameter you have to set. This parameter and value is the same in 8.5.1 and 8.5.2 but it might be removed later and could potentially be autotuned.
For now you have to set the parameter to the following value

<PROPERTY NAME="SYNCML_SHORTCIRCUIT_TIME_LIMIT" VALUE="15"/>

After changing the configuration you need to restart the Traveler server task and also the HTTP task in case you changed the servlet properties (restart task traveler & restart task http)


This should give you better response time for your iOS4 devices and it should still work fine with your OS 3.x devices.
There might more HTTP(S) requests for OS 3.x devices but this is still less problematic than a wrong timeout value for iOS4.

I hope this info is helpful. It's the current state of the info we got from IBM about the changed needed.
As soon we get an official TN I will post an update.

-- Daniel


Avoiding disk fragmentation via nshrun

Daniel Nashed  25 May 2010 06:52:44

Some of my customers are already running optimized compact operations to avoid fragmentation of their data disks with NSF.
They use a combination of compact -B and -b with the -S option to avoid recovering small amount of space from databases.

My tool nshrun already has an option to decide which compact to use based on the free space in a database.
If just a bit of space is free no compact is invoked. If just some space is free a compact -b is used if much space is free a compact -B is used.
Already in previous versions you could specify those options using -S and -s in nshrun.

But this does only reduce fragmentation to some extend. I would wish there would be an option for compact to keep some free space in the database.
There is currently no way to keep some space in the database. But I found a way to allocate some bulk space in the database in one piece which could avoid smaller allocations in the NSF would create many smaller disk fragments to be allocated. So you now can specify an amount of free space that should be in the database after compact finishes and frees space in the database.
This amount of free space is allocated in one step and would only result in at most one more fragment.

The new option is currently under test but if you are a nshrun user I am happy to send you a new version with this option to check if this helps to reduce your NSF disk fragmentation.
It will also not completely resolve all fragmentation but could potentially reduce the fragmentation a lot.

I would be also very interested to get your feedback about disk fragmentation thru NSF. I personally think there is huge potential in avoiding fragmentation.
This is not primary for Domino run-time performance but more for backup performance.

-- Daniel