dsapp - Mobility Administration Tool

dsapp - Mobility Administration Tool

dsapp.sh 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.


Labels (2)


Some content on Community Tips & Information pages is not officially supported by Micro Focus. Please refer to our Terms of Use for more detail.
Will this still work with GMS 2.0 ?
Absolutely! It supports GMS 2.0 and is still backwards compatible with 1.2.5 and lower.
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??
version 113 doesn't like ldap passwords containing '!' when trying to fix membershipcache
Updated dsapp to v114 to fix this membershipcache issue.

Should also not display password in clear text when typing the password now.
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!
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
Added command-line switches to dsapp (v119+): see above for a screenshot. For details:
./dsapp.sh -h or ./dsapp.sh --help

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

Thank you 🙂
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?
I have one more suggestion. The user functions that are part of dsapp.sh 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.
remove user & db reference has stopped with GMS 2.0.1 😞
We have fixed both of those in v131+, the latest is on ftp.
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).
Great suggestion, thank you! I believe we can handle this so it won't matter which you enter, as it will check either case. We'll look into this.
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 dsapp.sh in /opt/novell/datasync/tools/dsapp/ You can launch dsapp anywhere by just entering the word dsapp in a terminal window.
I've made some changes dsapp so it should look for the directory id first, and if not found will then try the groupwise id.

This change has been put in v142+
Thank you 🙂
great! Are you guys in the development team of GMS?
hello, i downloaded dsapp manualy extract it in /opt/novell/... but it dont start.
Waht i did wrong?
No. We're on the support team.
This script started out small, as a method to get logs from our customers.
If you started the script with ./dsapp.sh 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
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 !

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.
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 dsapp.sh and have only one troubleshooting and maintenance tool for datasync?
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.
Thanks! We'll look into that, there are some other improvements we can make with that as well.
I would absolutely agree! Thanks for the comment. Perhaps that could happen in the future, who knows?
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 https://github.com/tdharris/dsapp/wiki
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/dsapp.sh;5440193e: cpio: lstat failed - Not a directory
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 dspp.sh that comes packed in the dsapp.tgz.
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 ftp://ftp.novell.com/outgoing/dsapp.tgz 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:
Have you preliminary support for GMS 2.1 ?
We've been playing around with GMS 2.1 and dsapp, and it seems to be working fine. Let us know if you experience any problem and we'd be glad to help. Feel free to report issues to https://github.com/tdharris/dsapp/issues
currently download link "ftp://ftp.novell.com/outgoing/dsapp.tgz" isn´t working.

Should be working fine now, thanks!
The Novell FTP download link is version 206, but I see a version 207 on the dsapp wiki page at https://github.com/tdharris/dsapp . Should Novell be FTPing out the 207 version?
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.
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
Absolutely! This link will be updated with any public release that we make:
and URL shortener: http://goo.gl/gmE5Lx
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
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.
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' "
Thanks! Fixed the lines in dsapp v222

For furture issues, would you mind creating a issue at https://github.com/tdharris/dsapp/issues
After update to latest version I get errors:
v236 (v237 available)
Updating dsapp to v237
Downloading https://github.com/snielson/dsapp_python/releases/download/latest/dsapp.zip [-]

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/threading.py", line 532, in __bootstrap_inner
File "/opt/novell/datasync/tools/dsapp/lib/spin.py", 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.
We'll take a look into it, thanks for the post. Also, if you can, please feel free to open a new issue on our github page: https://github.com/snielson/dsapp_python/issues
Issue has been opened as https://github.com/snielson/dsapp_python/issues/26
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!
I have an database problem with Groupwise Mobility 2018 on sles12. Is there a new Version for version 2018
The latest version of dsapp can be found here:
Top Contributors
Version history
Revision #:
2 of 2
Last update:
‎2020-02-20 12:31
Updated by:
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.