dll/so/dylib issue windows XP 64bit

2012-03-29
2013-03-16
  • Frank Klitzing

    Frank Klitzing - 2012-03-29

    Hi,

    I have enjoyed using LNGS 2.1 for a couple months now.  However, my work has just upgraded my computer to a Windows XP 64bit and now I am having problems with the sync.  I am running Lotus Notes 6.5.4.  Here is the error I am receiving:

    Automatic sync-on-startup is enabled. Starting sync - 3/29/12 5:15:00 PM
    Date range: 3/22/12 thru 5/28/12 (-7 to +60 days)
    Getting Lotus Notes calendar entries

    === ERROR ===
    There was an error synchronizing.
    java.lang.Exception: There was a problem initializing the Lotus Notes thread.
    Make sure the Lotus dll/so/dylib directory is in your path.
    Also look at the Troubleshooting section of the Help file.
    at lngs.lotus.LotusNotesManager.getCalendarEntries(LotusNotesManager.java:308)
    at lngs.MainGUI.doSync(MainGUI.java:289)
    at lngs.MainGUI$SyncSwingWorker.doInBackground(MainGUI.java:394)
    at lngs.MainGUI$SyncSwingWorker.doInBackground(MainGUI.java:384)
    at javax.swing.SwingWorker$1.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at javax.swing.SwingWorker.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Finished sync (0.0 s total) - 3/29/12 5:15:00 PM

    I have also run the connectivity test with the following results:

    Automatic sync-on-startup is enabled. Starting sync - 3/29/12 5:15:00 PM
    Date range: 3/22/12 thru 5/28/12 (-7 to +60 days)
    Getting Lotus Notes calendar entries

    === ERROR ===
    There was an error synchronizing.
    java.lang.Exception: There was a problem initializing the Lotus Notes thread.
    Make sure the Lotus dll/so/dylib directory is in your path.
    Also look at the Troubleshooting section of the Help file.
    at lngs.lotus.LotusNotesManager.getCalendarEntries(LotusNotesManager.java:308)
    at lngs.MainGUI.doSync(MainGUI.java:289)
    at lngs.MainGUI$SyncSwingWorker.doInBackground(MainGUI.java:394)
    at lngs.MainGUI$SyncSwingWorker.doInBackground(MainGUI.java:384)
    at javax.swing.SwingWorker$1.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at javax.swing.SwingWorker.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Finished sync (0.0 s total) - 3/29/12 5:15:00 PM

    Can you help me fix this issue?

    Thanks!

     
  • Dean Hill

    Dean Hill - 2012-04-01

    Make sure the Windows environment PATH contains the directory that contains nlsxbe.dll.
    So, do a search for nlsxbe.dll on your C: drive, then add the directory where it was found to your PATH.

    Some basic instructions for changing the Windows PATH are here:
    http://www.computerhope.com/issues/ch000549.htm

     
  • Axel Doerr

    Axel Doerr - 2012-05-21

    Hi Dean,

    i'm having exactly the same problems. After switching to Win 7 64bit i get the dll/so/dylib error. I tried meanwhile everything i found in this forum however nothing worked for me.

    Any suggestions?

    Thanks
    Axel

     
  • Dean Hill

    Dean Hill - 2012-05-21

    Try this:
    1. Edit lngsync.vbs.
    2. Near the top of the script, change the useLotusJVM value from 0 to 1.
    3. Try a sync again.

     
  • Axel Doerr

    Axel Doerr - 2012-05-21

    Unfortunately this does not work for me as the Java version coming with our notes Installation is 1.4 . I also tried already to point to a 1.6 32 Bit java version but no success.

     
  • Dean Hill

    Dean Hill - 2012-05-21

    In HelpFile.html, the Troubleshooting section has the following tips for diagnosing this problem.
    Tell me what you've tried so far.
    If you haven't already, run the test app and post or email me (deanhill1971@gmail.com) the output.

    o Run the separate utility named LNConnectivityTest to help diagnose any of these problems. Download LNConnectivityTest.zip from:
    http://lngooglecalsync.svn.sourceforge.net/viewvc/lngooglecalsync/lngooglecalsync

    o For the dll error, make sure the environment PATH contains the directory that contains nlsxbe.dll (on Windows), lsxbe.so or liblsxbe.so (Linux), or lsxbe.dylib (OS X). Instructions for changing the Windows PATH:
    http://www.computerhope.com/issues/ch000549.htm

    o For errors like "java.lang.UnsatisfiedLinkError: C:\Program Files\Notes\nlsxbe.dll: The specified procedure could not be found", you can use a tool like Dependency Walker to see if a supporting dll is missing. It is also possible the Windows PATH is finding other dlls before the ones you want. Put the Lotus path at the beginning of your PATH line and try again.

    o For the ID file error, make sure there is only one Notes.ini file in your path. LNConnectivityTest will give a warning if more than one Notes.ini is found. Also, the next bullet item discusses MultiUser values. Even if your system doesn’t have MultiUser set to 1, you might try creating the NotesIniPath in the Registy (as described below). Finally, try editing your Notes.ini file and make sure the KeyFileName value refers to your ID file, e.g. KeyFileName=dhill.id.

    o If HKEY_LOCAL_MACHINE\Software\Lotus\Notes\MultiUser has a value of 1, then you have a multi-user installation (even if you are the only user of Lotus). Find the location of Notes.ini, probably somewhere like C:\Documents and Settings\(username)\Lotus.
    Edit or create the string value below and set it to your Notes.ini directory.
    HKEY_CURRENT_USER\Software\Lotus\Notes\(optional-version)\NotesIniPath

    o If you get a dll/so/dylib error under a 64-bit OS, then specify the full path to the version of Java that was installed with Lotus Notes (see green below for the OS X example). You may also have to tell Java to run in 32-bit mode by using the -d32 flag (see orange below).
    For 64-bit Windows, there is an easy way to use the version of Java installed with Lotus Notes. Edit lngsync.vbs. Near the top of the script, change the useLotusJVM value from 0 to 1.
    /Applications/Notes.app/Contents/MacOS/jvm/bin/java -d32 -cp $NOTES_PATH/jvm/lib/ext/Notes.jar:$SCRIPT_PATH/icalbridge.jar LotusNotesGoogleCalendarBridge.mainGUI

     
  • Axel Doerr

    Axel Doerr - 2012-05-22

    Hi Dean,

    after working through the connectivity test, i finally got it to work. The magic was the path to the notes.ini file as well as pointing to a 32bit java.

    I have modified the lngsync.vbs in the following way (just a suggestion):

    In the top area i added two additional variables and conditions:

    dim useLotusJVM
    ' If set to 1, then the JVM installed with Lotus Notes is used instead
    ' of the version of Java found in the PATH.
    useLotusJVM = 0

    'If you want to use your own java path set useOwnJavaPath to 1
    'and specify the path to the javaw executable in ownJavaPath
    'This can be used for 64bit windows 7 systems to point to a 32bit java
    dim useOwnJavaPath
    dim ownJavaPath
    useOwnJavaPath = 1
    ownJavaPath = "D:\Axel\Java\jre6\bin"

    'If your notes.ini is not localized in the default Path you can set useOwnNotesIniPath to 1
    'and set the notesIniPath to the location of the file notes.ini
    dim useOwnNotesIniPath
    dim notesIniPath
    useOwnNotesIniPath=1
    notesIniPath = "d:\notes"

    dim appParm, silentMode

    This allows setting an own java and notes.ini path.

    To use the variables i modified this code:

    processPath = oEnv.Item("PATH")
    ' Update the Process PATH because this is what 'javaw' will read
    if useOwnNotesIniPath then
        ' Add the notesIniPath if desired
    oEnv("PATH") = notesIniPath & ";" & lotusPath & ";" & lotusDataPath & ";" & processPath 
    else
    oEnv("PATH") = lotusPath & ";" & lotusDataPath & ";" & processPath 
    end if
    processPath = oEnv.Item("PATH")

    ' Set the classpath so Notes.jar can be found
    classPath = """" & notesJarPath & """;.\lngsync.jar"

    ' Get the path to the version of Java installed with Lotus Notes.
    ' It is safest to use the Lotus Java for compatibility with Notes.jar.
    dim javaPath
    if useLotusJVM then
    javaPath = lotusPath & "\jvm\bin\javaw.exe"
    else
    ' Use own java Path
    if useOwnJavaPath then
    javaPath = ownJavaPath & "\javaw.exe"
    else
    ' Let the OS find Java via the PATH
    javaPath = "javaw.exe"
    end if
    end if


    So far so good - i'm back to normal operation.

    Axel

     
  • Dean Hill

    Dean Hill - 2012-05-24

    Axel,

    Thanks for the suggestions. I'll look them over to see what to include in the next release.

     
  • Karl-Koenig Koenigsson

    I added the following to the top of lngsync.vbs, juet between the "option explicit" and "dim useLotusJVM":

    ' Check for 64bit environment and relaunch as 32bit if necessary
    'If InStr(LCase(WScript.FullName),"system32") Then
    '   CreateObject("WScript.Shell").Run """%systemroot%\syswow64\wscript.exe"" """ & WScript.ScriptFullName & """"
    '   WScript.Quit
    'End If
    Dim WshShell, OsType
    Set WshShell = CreateObject("WScript.Shell")
    OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")
    If OsType <> "x86" Then
      If InStr(LCase(WScript.FullName),"system32") Then 
        CreateObject("WScript.Shell").Run """%systemroot%\SysWOW64\wscript.exe"" """ & WScript.ScriptFullName & """" 
        Wscript.Quit
      End If 
    end if
    

    Works like a charm

     
  • Dean Hill

    Dean Hill - 2012-06-01

    Thanks for the tip Karl. I'll plan on incorporating that change also.

     

Log in to post a comment.