Floating Licencing
Congratulations on your purchase of a floating licence for Ragdoll Dynamics!
Overview
This page will help you get set-up with a licence server, on-premise, and instruct Ragdoll to "lease" a licence from it. The server itself can run on any machine and any platform, including Windows, Linux and MacOS, so long as it is accessible from the machine running Ragdoll.
Windows, Linux and MacOS
The server can run on a different operating system than your workstations. For example, a common scenario is having the server running on Linux and workstations run on a combination of Windows, MacOS and Linux.
On each platform, the procedure is the same.
- Download the server software
- Optionally edit the configuration file
- Activate the server with your
Product Key
- Start it up
The server will need to remain running in order for Ragdoll to lease licences.
Linux
Here's a typical series of commands for an x64 system, look inside the .zip for alternative Linux-based platforms.
Requirements
Make sure you have unzip
and wget
at the ready, or use alternatives like curl
and tar
at your own leisure.
mkdir turbofloat
cd turbofloat
wget https://files.ragdolldynamics.com/api/public/dl/hAlavAOP/TurboFloat-Server-Linux.zip
wget https://files.ragdolldynamics.com/api/public/dl/6lMDDMdn/TurboActivate.dat
unzip TurboFloat-Server-Linux.zip
mv bin-linux/x64/turbofloatserver ./
chmod +x turbofloatserver
./turbofloatserver -a="YOUR-SERIAL-NUMBER"
./turbofloatserver -x
# Floating license server for Ragdoll Dynamics (TFS v4.4.4.0)
You can optionally pass
-silent
after-x
for less verbosity.
From here, you'll likely want turbofloatserver -x
called automatically on reboot, such that Ragdoll and Maya can lease licences from it. The exact procedure varies between Linux distributions and company preferences, see the systemd section for tips on the most common approach.
More Details
Windows
Here's what you need to do in order to run the licence server on the Windows platform.
Download
Inside of this file you will find this.
Edit the .xml
file with a port
you would like to use.
Port number
Make note of this port number as you will need it later when connecting to it from Maya.
64-bit Server
If you need a 32-bit version of the server, find the appropriate TurboFloat
binaries here.
Activate
Next we'll need to activate the server. Open a cmd.exe
or PowerShell prompt and type in the following.
TurboFloatServer.exe -a="YOUR-SERIAL-NUMBER"
There should be no output from the command, unless there's a problem.
Now you're ready to launch the server!
Start
This next command will launch the server.
TurboFloatServer.exe -x
# Floating license server for Ragdoll Dynamics (TFS v4.4.3.0)
Test
This is a good place to test Ragdoll from within Maya, so scroll to the Maya section, test it out and then come back here to finish things up.
All good? Great.
Optional
At this point, you can optionally have the server restart itself and run in the background by installing it as a "service".
TurboFloatServer.exe -i
# 2021-05-12, 07:47:26 <error>: OpenSCManager failed (5)
To do that, you'll need to launch PowerShell/cmd as Administrator.
# As Administrator
TurboFloatServer.exe -i
# 2021-05-12, 07:48:40 <notification>: Service installed successfully.
From here you can try launching Ragdoll Dynamics in Maya to see whether it manages to successfully lease a licence.
More Details
Maya
With a licence server running, your next step is having Ragdoll connect to it.
On each platform, the procedure is the same.
- Set
RAGDOLL_FLOATING
- Load plug-in
Example
# From Python
os.environ["RAGDOLL_FLOATING"] = "127.0.0.1:13"
cmds.loadPlugin("ragdoll")
# From an environment like bash
export RAGDOLL_FLOATING=127.0.0.1:13
maya
The format of RAGDOLL_FLOATING
is <ip-address>:<port-number>
.
Everything ok?
Failed to initialise floating licence
If this message appears in your Script Editor upon loading the plug-in, take a closer look at your Output Window on Windows or terminal on Unix.
# Error: ragdoll._install_floating() - Failed to initialise floating licence, error code '1' #
Could not load ragdollfloat.dll
Windows users may experience this issue, which indicates a broken install. In your distribution, you should have seen both a ragdoll.mll
and ragdollfloat.dll
. Make sure this file exists, else contact us and we'll help you sort it.
Python
Just like with a node-locked licence, you can control the leasing of licences via Python.
from ragdoll import licence
# Activate this machine
licence.request_lease()
# Deactivate this machine
licence.drop_lease()
Troubleshooting
Let's have a look at a few common errors and how to solve them.
Failed to Save Activation Request
This can happen when attempting to generate an activation request for offline activation.
./turbofloatserver -a="KWVT-U5RS-..." -areq="/bad/path/request.xml"
# <error>: Failed to save the activation request file.
# <error>: Error code 0x1. Contact support or your system administrator.
The path given, in this case /bad/path/request.xml
might not be writable. Try a different path.
Failed to Load Product Details
This can happen when attempting to activate a floating licence
./turbofloatserver -a="KWVT-U5RS-..."
# <error>: Failed to load the product details file.
# <error>: Failed to load the settings.
The turbofloatserver
executable wasn't able to find the TurboActivate.dat
file. This file should reside in the same folder as turbofloatserver
and can be downloaded from here.
FAQ
Let's cover some common scenarios.
How can I test connectivity between my machines?
To test whether machine A is accessible from machine B, try ping
.
ping 10.0.0.13
# Reply from 10.0.0.13: bytes=32 time=1ms TTL=117
Can I limit the internet access of my licence server?
If you're in a secure network, you may want to limit the licence server to the least amount of external access. You can do so by "whitelisting" it in your firewall, using this URL and port number.
- url:
https://wyday.com
- port:
443
More details here: https://wyday.com/limelm/help/turbofloat-server/
Can I activate my server offline?
Lifetime licences, yes. Monthly licences, no.
Like node-locked licences, the floating licence server can be activated without an internet connection to the machine running the server.
The procedure is the same on each platform.
- Generate an activation request from the computer running the licence server
- Go to https://ragdolldynamics.com/offline
- Activate using the response from the same computer
Here's how to generate the request.
./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="YOUR-SERIAL-NUMBER"
And here's how to apply the response.
./turbofloatserver -aresp="/path/to/ActivationResponse.xml" -a
Absolute Path
Take care to replace the path in the above commands, and use an absolute path rather than anything relative or special such as ~/
. The turbofloatserver
command can get a little cranky about those things.
How do I reactivate my licence offline?
If you are offline and changes has been made to your licence on our end, such as the number of seats changing or a new expiry date has been set, here is what you need to do.
1. Deactivate locally and remotely
Run the following command, replacing the path with one that can be written to.
./turbofloatserver -deact="/path/to/DeactivationRequest.xml"
This should generate the file DeactivationRequest.xml
that should look something like this.
<DeactivationRequest>blablabla</DeactivationRequest>
Now paste the contents of this file into to https://ragdolldynamics.com/offline along with your serial and press Deactivate.
Your licence is now deactivated both on locally and remotely.
Warning
If you forget to pass the DeactivationRequest.xml
into the offline deactivation page, Ragdoll will not know about your deactivation. It will continue to believe that your licence remains activated, and may prevent you from activating it twice.
If this happens, contact us such that we can manually deactivate your licence on our end.
2. Activate
Next, follow the steps in Can I activate my server offline as usual.
How do I reactivate my licence online?
If your licence has been activated online and has been updated on our end, you may need to reactivate your licence.
./turbofloatserver -deact
./turbofloatserver -a="KWVT-U5RS-..."
This will refresh your local licence with whatever changes occured on our end.
Failed to Deactivate Old Product Key
Can happen during offline activation if your local machine is activated twice.
./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
# Failed to deactivate old product key.
If this happens, locally deactivate your machine and try again.
./turbofloatserver -deact
./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
Failed to Parse the Configuration XML File
Can happen if the activation request is passed in as a response.
- Activation Request is provided by
turbofloatserver
and is uploaded to https://ragdolldynamics.com/offline - Activation Response is provided by https://ragdolldynamics.com/offline and passed to
turbofloatserver
./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
Should instead be:
./turbofloatserver -areq="/path/to/ActivationResponse.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
Note the "Response" and not "Request"
What happens when my server is offline?
Leasing will attempt to connect for about 2 seconds until giving up. During that time, Maya may appear frozen.
What happens when my server goes offline?
Leasing is re-done once every 30 minutes.
30 minutes is the default value (see below), which means that if the server goes down whilst an artist is using it, the solver will be disabled within 30 minutes.
The duration can be adjusted, however it is a balance since the time is also how long it takes for the server to free a lease as a result of a Maya crash.
Can I change the port used by the server?
Yes.
The default port is 13
and can be edited via the TurboFloatServer-config.xml
file residing in the same directory as the server executable.
<?xml version="1.0" encoding="utf-8"?>
<config>
...
<bind port="13"/>
...
</config>
Can I move my licence server to a different machine?
Yes.
To move a licence, you can deactivate it and then activate it again someplace else.
TurboFloatServer -deact
This will deactivate the server. The same can be done if your licence server is offline, by passing a filename to the command.
TurboFloatServer -deact="deactivation_request.xml"
Open this file and paste the contents of it into the offline deactivation wizard here.
What if I have multiple serial numbers?
Complete, Unlimited and Batch have their own serial numbers and each serial number needs its own server.
- Each server needs to be a physical machine, but can under certain circumstances be allowed to run within a virtual machine; contact us if this is you.
- Each server needs their own unique address; they cannot run on the same machine.
From there, provide each of your clients with the full server address to the pool it should lease licences from.
For example.
# Render farm
RAGDOLL_FLOATING=10.0.0.4:601
# Artist workstations
RAGDOLL_FLOATING=10.0.0.5:601
Can I disable the splash screen?
Yes.
Consumers of floating licences generally won't need to manage licenses themselves, and so the startup dialog can be avoided altogether for a smoother experience when inside of Maya.
export RAGDOLL_NO_STARTUP_DIALOG=1
maya
- See Environment Variables for details
Can I use Ragdoll with cloud workstations like AWS and GCP?
Yes.
Cloud workstations can pick up licences from your locally hosted licence server. It is not recommended nor supported to run your licence server on a virtual machine.
# Cloud workstation example
export RAGDOLL_FLOATING=local.server:8001
maya
In this example, the cloud workstation is referencing your locally hosted licence server via an IP on your VPN.
What happens to a lease when Maya crashes?
A lease is automatically dropped upon unloading the plug-in or shutting down Maya. In the event of a Maya crash, a lease will automatically drop after 30 minutes per default.
The time can be edited via the configuration file; a lower time means more compute and file resources are consumed on the server, the lowest value is 30 seconds.
<?xml version="1.0" encoding="utf-8"?>
<config>
...
<lease length="30"/><!-- seconds -->
...
</config>
Can I fall back to a node-locked licence?
Yes.
Remove the RAGDOLL_FLOATING
environment variable and reload the plug-in or restart Maya to attempt activation of a node-locked licence.
Can I activate my server on a Virtual Machine?
No.
The server cannot distinguish between two virtual machines which would make it possible to activate an endless amount of them with their own duplicate pools of licences.
Although the server cannot run on a VM, clients can. E.g. running Docker for testing in a continous-integration environment or automation for simulation baking or rendering etc.
Can I monitor my licence server?
Yes.
With a logging level set to "notification", you'll get real-time output from the server whenever a lease is requested and dropped, including..
- Time of event
- Expiry time
- IP
- Username
- PID (Process ID)
The expiry is when the lease will be renewed. Normally not something you need to worry about, unless Maya crashes. This is then the time it'll take the server to realise the lease has been freed.
<?xml version="1.0" encoding="utf-8"?>
<config>
...
<log file="tfs-log.txt" level="notification"/>
...
</config>
2021-05-12, 11:58:47 <notification>: New connection from IP: ::ffff:127.0.0.1
2021-05-12, 11:58:47 <notification>: New lease assigned (marcus, 1, IP=::ffff:127.0.0.1, PID=14328). Expires: 2021-05-12 11:28:47 (in UTC). Used / Total leases: 1 / 1
2021-05-12, 11:58:51 <notification>: New connection from IP: ::ffff:127.0.0.1
2021-05-12, 11:58:51 <notification>: Lease was released by client (marcus, 1, IP=::ffff:127.0.0.1, PID=14328). Used / Total leases: 0 / 1
The tfs-log.txt
file is dynamically updated as users lease and drop licences, and includes mention of how many licences are in use and remaining. You can monitor the tail of this file for real-time updates, and use any tooling to parse these notifications into your own infrastructure.
See Also
What does the server say when a lease request is rejected?
With level="notification"
it'll say this.
2021-05-16, 14:52:50 <notification>: License lease request rejected because no more free slots, numTotalLics=9, pkey=YOUR-SERIAL-NUMBER
How do I run my server in the background using systemd?
systemd is a common option for running background processes on Linux. Here's a quick run-down how to get turbofloatserver
running with it.
Prerequisities
- Make sure you can run
turbofloatserver -x
already - Make note of the full path to your
turbofloatserver
, here we will assume/turbofloat
Ok, with that out of the way, create a new file called /etc/systemd/system/turbofloat.service
with the content below.
turbofloat.service
[Unit]
Description=TurboFloat server for CI
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/turbofloat/turbofloatserver -x -s
Restart=on-failure
[Install]
WantedBy=multi-user.target
Replace with your Path
Here we use /turbofloat/turbofloatserver -x -s
but your path will likely be different!
Now let's start it.
systemctl start turbofloat
You may need sudo
Unless you are logged in as a root/administrator user, you may need to use sudo
with this command. E.g. sudo systemctl
If there are no complaints, we're set to have this automatically run in the background whenever the computer restarts.
systemctl enable turbofloat
And that's it. You should now have access to this server in the exact same way as you did when calling turbofloatserver -x
manually.
To check the status of your server, try this.
~/turbofloat$ systemctl status turbofloat
● turbofloat.service - TurboFloat server for CI
Loaded: loaded (/etc/systemd/system/turbofloat.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-10-18 13:31:21 BST; 37s ago
Main PID: 81594 (turbofloatserve)
Tasks: 17 (limit: 35692)
Memory: 1.1M
CPU: 18ms
CGroup: /system.slice/turbofloat.service
└─81594 /home/marcus/turbofloat/turbofloatserver -x -s
Oct 18 13:31:21 minilinux systemd[1]: Started TurboFloat server for CI.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: 2023-10-18, 13:31:21 <notification>: Auto-detected 16 CPU cores; creating a thread pool that large.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: Floating license server for Ragdoll Dynamics (TFS v4.4.4.0)
You can also use journalctl
to follow the log interactively, as though it was running in the local terminal.
~/turbofloat$ journalctl --follow --unit turbofloat
Oct 18 13:31:21 minilinux systemd[1]: Started TurboFloat server for CI.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: 2023-10-18, 13:31:21 <notification>: Auto-detected 16 CPU cores; creating a thread pool that large.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: Floating license server for Ragdoll Dynamics (TFS v4.4.4.0)