TM1Kill

Disconnect all your users before the nightly chores

TM1Kill is a small executable that cancels ALL running threads or disconnects ALL users connected to TM1.

The program is written using C# and runs on the .NET framework 2.0 or later. All communication with TM1 is through the C API, if you are interested in understanding how the C API works in TM1 this is a good example.

The main reason to use TM1Kill is to run it before your nightly chores, so you make sure that there is no other threads running and no users logged in before the nightly chores start.

Setup

For the program to run, it must know the location of tm1api.dll (64 bit), you can either:

  • Add tm1kill.exe to the TM1 64 bit bin directory, i.e. C:\Program Files\ibm\cognos\tm1_64\bin64
  • Add the TM1 64 bit bin directory (C:\Program Files\ibm\cognos\tm1_64\bin64) to your PATH system variable.
  • Add the TM1 64 bit bin directory (C:\Program Files\ibm\cognos\tm1_64\bin64) to your PATH in a batch file.

Sample Batch File:

set PATH=C:\Program Files\ibm\cognos\tm1_64\bin64 tm1kill.exe -adminhost “localhost” -server “CXMD” -username “admin” -password “” -cancel -disconnect

You must pass -CANCEL or -DISCONNECT or both. If you pass both arguments tm1kill will cancel all running threads and then disconnect all users.

The command line options (case-insensitive) are as follows:

  • USERNAME: The user name to log into TM1.
  • PASSWORD: The password to use log into TM1.
  • CAMNAMESPACE (Optional): The CAM Namespace to use to log into TM1. This is only required when using CAM security (mode 4 and 5).
  • SERVER: The name of the TM1 server you are connecting to.
  • ADMINHOST: The name or IP address of the admin host for the TM1 server.
  • CANCEL: Cancels all running TM1 threads.
  • DISCONNECT: Disconnects all users from TM1.

Warranties

All of the code, documents and information in TM1Kill are to be deemed without warranty.

Contributions

The source code is hosted at github.com/cubewise-code/tm1kill. If you find a bug or feel like you can contribute please fork the repository, update the code and then create a pull request so we can merge in the changes.