Cool Solutions

dsapp – Mobility Administration Tool


By: and

April 12, 2013 9:56 am





Created by Tyler Harris and Shane Nielson is designed to be a server-side tool aimed to help customers and engineers troubleshoot and solve common support issues for the Novell DataSync product according to KCS standards. Many of the features found in dsapp automate the processes defined in Technical Information Documents (TIDs). The purpose of this tool is to make these procedures simpler.

For installation instructions, please refer to Our Installation Guide.
For feature details, please refer to Our Wiki.
Please report any issues or enhancements to Our GitHub.

We believe this can be an extremely helpful tool when working to troubleshoot and resolve issues in GroupWise Mobility Service.


9 votes, average: 5.00 out of 59 votes, average: 5.00 out of 59 votes, average: 5.00 out of 59 votes, average: 5.00 out of 59 votes, average: 5.00 out of 5 (9 votes, average: 5.00 out of 5)
You need to be a registered member to rate this post.

Tags: , , , , , ,
Categories: Cool Tools, GroupWise, Mobility, Technical

Disclaimer: This content is not supported by Micro Focus. It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test it thoroughly before using it in a production environment.


  1. By:mconradt

    Will this still work with GMS 2.0 ?

  2. By:hpcl

    Hello, thanks for this amazing tool. it has really brought down my headache in managing mobility servers.
    With GMS 2.0 update I have seen that a lot of issues have come up, including increased server resource utilization. I wish I could go back to good old v 1.2.5 build 499.
    I have one question: can we use dsapp with command line parameters to automate vacuuming and reindexing mobility system database. I will then feed this command to crontab, to be executed every fortnight may be??

    • By:tdharris

      Great idea! We’ll start working on this. For the performance issue, take a look at TID 7013038 – Slow sync of Mobility – Master TID. That covers the most frequent causes for high utilization or low performance. I’d make sure Nightly Maintenance is completing and perhaps check disk i/o performance as a start. Again, thanks for the suggestion!

      • By:hpcl

        As far as I know Nightly maintenance restarts gms services. I have infact queued up this command to run 3 times a day on crontab! Here’s the script. And that loop is to make sure that any datasync process is killed!

        #date time stamp
        echo $(date) >> /opt/novell/datasyncrestart.log
        echo ‘\n’ >> /opt/novell/datasyncrestart.log
        #stop datasync services
        /usr/sbin/rcgms stop >> /opt/novell/datasyncrestart.log

        #loop 1
        for ((count=1; count> /opt/novell/datasyncrestart.log
        echo ‘\n’ >> /opt/novell/datasyncrestart.log

    • By:tdharris

      Added command-line switches to dsapp (v119+): see above for a screenshot. For details:
      ./ -h or ./ –help

      To run both vacuum and reindex, you can do either:
      ./dsapp -v -i OR ./dsapp –vacuum –index

  3. version 113 doesn’t like ldap passwords containing ‘!’ when trying to fix membershipcache

  4. By:aporzec

    Hi, just updated to Mobility 2.0.1
    tried to run dsapp (used it before many times) and it is now asking me to enter the database password and or datasync_user password.
    I can find the passwords in the xml files, but they are very long and cryptic. I think if I am putting them in I will not put them in correctly.

    What can I do?

    • By:tdharris

      GMS 2.0.x now encrypts password information for xml storage, so we are unable to retrieve them from the outside using the script. You must enter the db password in order to access db related functions in dsapp, you can skip that db check, but most functions won’t work properly, so we don’t suggest this. The encrpyted string won’t work when entered directly into the dsapp prompt. If you can’t remember the dsapp password, you can use the ./dsapp -db or ./dsapp –database to change the database password. This new feature works with GMS 2.0.x and only with dsapp v132+ (current is available on ftp).

  5. By:hpcl

    I have one more suggestion. The user functions that are part of accept the edirectory Id (employee number in my case) and not the groupwise Id.
    I also sometimes use mcheck.pyc, there it takes groupwise Id and not edirectory id.
    It gets so confusing at times. Why cant we have a search based on either of Groupwsie Id and edirectory id.

  6. By:hpcl

    remove user & db reference has stopped with GMS 2.0.1 🙁

  7. By:tdharris

    We added two features in v138:

    dsapp autoupdate. dsapp will check for latest version on launch and update itself if needed. By default this is set to true, but can be turned off by configuring autoUpdate variable to false.
    dsapp alias. A permanent location has been set for in /opt/novell/datasync/tools/dsapp/ You can launch dsapp anywhere by just entering the word dsapp in a terminal window.

    • By:hpcl

      great! Are you guys in the development team of GMS?

      • By:Shane

        No. We’re on the support team.
        This script started out small, as a method to get logs from our customers.

    • By:fsc64

      hello, i downloaded dsapp manualy extract it in /opt/novell/… but it dont start.
      Waht i did wrong?

      • By:Shane

        If you started the script with ./ it will actually move it to /opt/novell/datasync/tools/dsapp

        Then to run just type dsapp from any location in the terminal. It creates an alias, and adds it to /etc/profiles

  8. By:davidkrotil

    Nice, I started dsapp with autoupdate function enabled, it asked to update to new version. After accepting it I got huge amount of error messages and WOW there isn´t nothing in folder /opt/novell/, my installation of GMS is GONE !


    • By:tdharris

      Interesting… We’d like to verify the authenticity of this report. Do you remember the dsapp version that triggered the update prior to the auto update? When auto-update is configured, it shouldn’t ask to auto-update when a newer version is detected, it just does it. We haven’t ever configured it to prompt for auto-update and there isn’t any code that would remove /opt/novell/datasync. Luckily the data is held in /var/lib/datasync, so simply reinstalling the rpms from the Mobility ISO should bring back /opt/novell/datasync. Feel free to email me.

  9. By:hpcl

    Hello tdharris, I think dsapp has become umbrella solution for troubleshooting and maintenance for datasync (I hope i rightly think so).
    Going by that logic don’t you think that mcheck.pyc should be merged with and have only one troubleshooting and maintenance tool for datasync?

  10. By:acoutts

    Great app and used it recently to troubleshoot and fix two users who had moved their address books into their cabinets and as a result GMS wouldn’t sync their contacts. I have noticed however that when I run a “Check GroupWise Folder Structure” on one of the user accounts that it still reports that the contacts are in the wrong location. This is not the case and the contacts are now syncing fine. Isn’t causing me an issue I just thought I’d feed this back.

  11. By:tdharris

    We’ve introduced a Github Wiki to help explain the tool’s use and to track issues, etc. Feel free to take a look at

  12. By:Chris

    Latest version is broken!
    Just downloaded the current version and tried to install, not only does the install fail but it also breaks the existing version you may have had installed already.
    Here is the output from an RPM force install
    rpm –force -ivh dsapp-1.00-200.noarch.rpm
    Preparing… ########################################### [100%]
    1:dsapp ########################################### [100%]
    error: unpacking of archive failed on file /opt/novell/datasync/tools/dsapp/;5440193e: cpio: lstat failed – Not a directory

    • By:Shane

      I’m unable to duplicate this problem.
      Everything I can find on the “error: unpacking of archive failed on file” seems to be a bad / corrupt file. Try redownloading the dsapp.tgz

      Also what version of SLES are you running this on?

      Can you run “rpm -K dsapp-1.00-200.noarch.rpm” to make sure it checks out OK.

      I’ll be adding some extra RPM checks in the that comes packed in the dsapp.tgz.

    • By:tdharris

      After looking into the error more, it just seems that the error pretty much means the RPM file that was downloaded somehow got corrupt.

      Try removing the existing dsapp directory:
      rm -r /opt/novell/datasync/tools/dsapp/

      Then redownload and try running again.

      If that doesn’t work, try force installing the rpm from the directory you extracted dsapp.tgz from:
      rpm -ihv –force dsapp-1.00-200.noarch.rpm

      If all else fails, feel free to email me directly:

  13. By:davidkrotil

    Have you preliminary support for GMS 2.1 ?

  14. By:davidkrotil

    currently download link “” isn´t working.


  15. By:ghoman

    The Novell FTP download link is version 206, but I see a version 207 on the dsapp wiki page at . Should Novell be FTPing out the 207 version?

    • By:Shane

      At times the github page may have a different version then what we push out to the FTP. This is so we can test the changes we’ve made, or make some other minor changes, before releasing a “public build”.

      Feel free to try the github code, and let us know if there is something else we can add,fix, or change.

  16. By:davy2

    Please, please, please! Can you make a download link that is http or https? My workplace blocks ftp, and I really need this tool.
    The one I somehow managed to grab gives me a script error when checking for ldap connectivity

  17. By:bgierden

    Hi, if we do a vacuum and index on a regurlaly base with the CLI options -v -i then the GMS service is stopped. In the description there is no switch mentioned to start GMS after vacuum / index. What service / process do we have to check to automatically start the GMS after the vacuum / index ? I am a little anxious to do this time based because i do not know what happens if i start GMS ans vacuum / index ist still running? Thanks and regards, Bernd

    • By:Shane

      The -v and -i switch will set a boolean to true. Further in the code after vacuum and / or index are done, if that boolean is ‘true’, it will start GMS again.

  18. By:sysbehvechtdal

    When i try to use the “Fix targets/membershipCache” function.
    The Mobility Group is correct, but the membership list shows a error:
    “sed: -e expression #1, char 15: unknown option to ‘s’ “

  19. By:pdjongh

    After update to latest version I get errors:
    v236 (v237 available)
    Updating dsapp to v237
    Downloading [-]

    This will update to:

    Updating.. [|]
    Update complete

    Exiting dsapp..
    Exception in thread Thread-3 (most likely raised during interpreter shutdown):
    Traceback (most recent call last):
    File “/usr/lib64/python2.6/”, line 532, in __bootstrap_inner
    File “/opt/novell/datasync/tools/dsapp/lib/”, line 20, in run
    : ‘NoneType’ object has no attribute ‘stdout’
    Program seems to run fine however on one exception:
    4. Certificates
    1. Generate self-signed certificate
    It will ask for directory to store certificates instead of where the CSR and Private key are located. Options 1 and 2 (Create CSR & Private key) seem to be the same.

  20. By:Balázs

    I just want to say a huge thank you for this awesome utility! I wish I knew about it years ago 🙂 …but better late than never. It helped to clear up an error I was stuck on for days. Many thanks again!