

If you run multiple instances of Arnold on a computer, they will all share a single license. Arnold licenses are per-computer, not per-CPU or per-core or per-user.
In the license file, the share= attribute (line 3) controls how the licenses are shared. Arnold uses share=h, which means all processes running on the same host (aka computer) will share the same license.
HOST localhost 0000DEADBEEF 5053 ISV solidangle LICENSE solidangle arnold 400 permanent 1 share=h min_timeout=120 start=17-oct-2012 issuer=JB customer=blair issued=17-oct-2012 replace _ck=00d67b16fa sig="x2M232yijKbUFZ=Mx7MdfzVGiYqz5Vgk6ih1gUt vGn1IJyDxwv7FFDrynQwJ3N"
If you see the “Port 5053 in use, waiting…” message in your debug log (or on the console), that means there’s already an RLM license server running on that port.
C:\Program Files\RLM>rlm -c test.lic 12/05 11:44 (rlm) RLM License Server Version 9.4BL2 Copyright (C) 2006-2012, Reprise Software, Inc. All rights reserved. 12/05 11:44 (rlm) License server started on SOLIDANGLE-PC 12/05 11:44 (rlm) Server architecture: x86_w1 12/05 11:44 (rlm) License files: 12/05 11:44 (rlm) test.lic 12/05 11:44 (rlm) 12/05 11:44 (rlm) Web server starting on port 5054 12/05 11:44 (rlm) Port 5053 in use, waiting... 12/05 11:44 (rlm) Port 5053 in use, waiting... 12/05 11:45 (rlm) Port 5053 in use, waiting... 12/05 11:45 (rlm) Port 5053 in use, waiting... 12/05 11:45 (rlm) Port 5053 in use, waiting...
5053 is the default port for RLM licenses, so if you already have a RLM-licensed product (for example, from the Foundry or from Exocortex), then port 5053 is already in use.
The solution is simple: edit your .lic file and change the port number on the HOST line to something like 5052 or 5060. Do not use port 5054. 5054 is used for the RLM Web Server, and you’ll get a “Cannot bind Web Server port 5054, exiting” error if you try to use it for the license server.
HOST localhost 0000DEADBEEF 5060 ISV solidangle LICENSE solidangle arnold 400 permanent 1 share=h min_timeout=120 start=30-nov-2012 issuer=sb customer=sb issued=30-nov-2012 replace _ck=00d68b14f9 sig="c2N2558b3XHN7k+6bEYb0BhzLSCYu6aS0ih75*sy8kZUTCj Rf76V1ThsffjhJN"
In this case, a customer reported that the license server wasn’t releasing licenses when a render node crashed.
Why did this happen? Because the customer had an older version of the license server that didn’t have a license TIMEOUT.
Since early 2012, the Solid Angle license server ships with a default TIMEOUT of 120 seconds. That means if a workstation stops sending heartbeats to the license server, then after two minutes the license server takes back the license. So, for example, if a workstation crashes or disconnects from the network, then the license server will take back the license after a couple of minutes.
The TIMEOUT is specified in a solidangle.opt file located in the RLM folder, along with rlm.exe and solidangle.set. Newer versions of the Solid Angle license server ship with this options file, but if you don’t have it, you can either upgrade your RLM or create the file yourself. Here’s what it should look like:
TIMEOUT 120 arnold
You’ll need to restart the server to read the new options.
What are heartbeats? Heartbeats are messages sent from a licensed application to the license server while the application has one or more licenses checked out from the server. You can see them with Process Monitor. In this screenshot, you can see that XSI.exe is sending a heartbeat every one minute to the license server.
If you need to free a checked out license, you can “remove” it (that’s RLM-speak for taking back a checked out license).
To remove a license in rlm admin (localhost:5054):
If you’re doing technical support like me, you gotta love things like kick -licensecheck. I wish we’d had something like this at Softimage. This license check will tell you:
In this example, I’m running Maya and the license server on the same computer. That’s why none of the environment variables are set, but the licensecheck still shows that there’s a license available. By default, Arnold will connect to 5053@localhost to get a license.
Setting up the environment right is what often goes wrong. Running kick -licensecheck from inside Softimage is a quick way to check that you set up the environment variables correctly.
Here’s two lines of Python that will open a command prompt and run kick -licensecheck (on Windows).
#Python from subprocess import Popen Popen(["cmd", "/K", XSIUtils.BuildPath( Application.Plugins('Arnold Render').OriginPath, 'kick.exe' ), "-licensecheck"])
Here’s the same thing, but broken down a bit for legibility:
#Python si = Application p = si.Plugins('Arnold Render') sKick = XSIUtils.BuildPath( p.OriginPath, 'kick.exe' ) from subprocess import Popen Popen(["cmd", "/K", sKick, "-licensecheck"])
Hat tip: Andy Jones on the Softimage mailing list
You can use xsibatch -processing to render scenes with Arnold. With -processing, xsibatch uses a Processing token instead of a Batch license, so you’re not limited by the number of Batch licenses you happen to have. Back in the days before third-party renderers, -processing for was for non-rendering tasks. Now it’s for non-mental ray tasks!
I was sure I tested this long ago, but obviously I must have made a mistake on my command line.
xsibatch -processing -render //server/project/Scenes/example.scn ======================================================= Autodesk Softimage 11.1.57.0 ======================================================= License information: using [Processing] # INFO : [sitoa] SItoA 2.7.1 win loaded. # INFO : [sitoa] Arnold 4.0.12.1 detected.
Here’s actual proof in the form of a screenshot
If you want to double-check what license servers Arnold is trying to connect with, set the log verbosity level to the maximum, and you’ll get something like this:
' INFO : [arnold] 00:00:00 438mb [rlm] checking connection to license servers ... ' INFO : [arnold] 00:00:05 438mb [rlm] 5053@STEPHEN-PC ... DOWN ' INFO : [arnold] 00:00:05 438mb [rlm] 5053@SOLIDANGLE-PC ... UP ' INFO : [arnold] 00:00:05 438mb [rlm] found 1 license servers ' INFO : [arnold] 00:00:15 438mb [rlm] checkout of arnold (version 400) from SOLIDANGLE-PC OK ' INFO : [arnold] 00:00:15 438mb [rlm] expiration date: 31-dec-2013 (190 days left)
If you want the RLM license server to automatically start everytime you restart or turn on your Mac, you need to create a launch daemon. Don’t worry, it’s not as scary as it sounds
First, you need create a launchd property list (.plist) for RLM. It will look something like this:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.solidangle.rlm</string> <key>ProgramArguments</key> <array> <string>/PATH/TO/RLM/rlm</string> <string>-c</string> <string>/PATH/TO/RLM/arnold.lic</string> <string>-dlog</string> <string>/PATH/TO/RLM/solidangle.dlog</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
This plist file basically tells the system to start rlm with the -c and -dlog flags, like this:
/Users/stblair/solidangle/RLM/rlm -c /Users/stblair/solidangle/RLM/rlm/arnold.lic -dlog /Users/stblair/solidangle/RLM/rlm/solidangle.dlog
The -c flag isn’t necessary if the license file is in the same folder as the RLM binary executable.
Here’s an example com.solidangle.rlm.plist. Download it, and use TextEdit to change the paths to match the RLM location on your computer, and then save the RLM plist file in /Library/LaunchDaemons/. Note that this download plist assumes that the license file is in the same folder, and therefore omits the -c flag.
For example:
sudo cp com.solidangle.rlm.plist /Library/LaunchDaemons
Note: The plist file needs to be owned by root, otherwise you won’t be able to load the plist. If necessary, you can change the owner like this:
sudo chown root /Library/LaunchDaemon/com.solidangle.rlm.plist
Finally, you need to load the plist:
sudo launchctl load -w /Library/LaunchDaemon/com.solidangle.rlm.plist
The license server will now automatically start, even after a restart or power down of the machine.
You can check the license server by opening a Web browser and going to localhost:5054.
There are several ways you can do it.
In your Maya.env file, add this line:
solidangle_LICENSE=XXXX@SERVER
where XXXX is the port number, and SERVER is the name or IP address of the computer.
Maya.env is located in your user Library. For example: /Users/steve/Library/Preferences/Autodesk/maya/2014.
By default, the Library folder is a hidden folder, so you may need to un-hide the Library folder.
sudo nano /etc/launchd.conf
setenv solidangle_LICENSE XXXX@SERVER
If you don’t want to restart your Mac just yet, you can try setting the environment variable like this (it will last until you restart your machine):
launchctl setenv solidangle_LICENSE XXXX@SERVER
A five-minute walk through of the RLM Web Administration web page. Covers all you need to know to manage your license, from checking the license server status, stopping and re-starting servers, to gathering diagnostics to send to support.
In this case, I got a debug log from a customer, but there weren’t any rlm entries in the log. As I’ve mentioned before, the Arnold log can include entries for licensing. At the Warning + Info level, you’ll get [rlm] log entries like these, if something goes wrong:
00:00:10 444MB WARNING | [rlm] could not connect to any license server
or
00:00:00 444MB WARNING | [rlm] wrong license version for arnold 20140305, found licenses for: 00:00:00 444MB WARNING | [rlm] arnold 20140206 (20 licenses) 00:00:00 444MB WARNING | [rlm] arnold 20140206 (20 licenses) 00:00:00 444MB WARNING | [rlm] please contact licensing@solidangle.com
or
00:00:03 749MB WARNING | [rlm] error checking out license for arnold (version 20140113): 00:00:03 749MB WARNING | [rlm] * Communications error with license server (-17) 00:00:03 749MB WARNING | [rlm] * Connection refused at server (-111)
And if you move the verbosity level up to Debug, then you’ll get some information about where Arnold is trying to get a license:
00:00:00 444MB | [rlm] checking connection to license servers ... 00:00:05 444MB | [rlm] 5055@LICSERVER1 ... DOWN 00:00:10 444MB | [rlm] 5053@localhost ... DOWN
So why didn’t the customer’s log show any rlm entries? He was getting watermarks, so something must be wrong, right? Well, something was wrong: Skip License Check was enabled in the Render Settings.
No rlm log entries = Skip License Check
If you render a scene that has Skip License Check enabled, you’ll get the Arnold watermark. One way to make sure this doesn’t happen is to turn off Skip License Check from the command line:
render -r arnold -ai:slc off some_scene.mb
kick -set options.skip_license_check off -dp -dw some.ass
You might also want to enable Abort on License Fail (-ai:alf for render, -set options.abort_on_license_fail for kick).
The latest Arnold version number is 4.2.0.5, but that’s not the version number we use for licensing. Arnold licensing uses the Arnold release date (yyyymmdd) as the version number. For example, if you have a license for version 20140512, you can any version of Arnold released before 12 May 2014.
If you’re seeing watermarks on some machines but not on others, there’s usually a simple explanation: those machines cannot connect to the license server. The first thing you should do is check the RLM diagnostics on the license server. In particular, look for the solidangle Statistics, which will show you whether or not licenses are being denied. For example:
solidangle Statistics --- Since Start --- Since Midnight --- Recent --- Start time 03/29 18:40:20 04/01 00:00:24 04/01 12:41:30 Messages: 39398 ( 0/sec) 7755 ( 0/sec) 20 ( 0/sec) Connections: 4874 ( 0/sec) 1073 ( 0/sec) 4 ( 0/sec) Checkouts: 4844 ( 0/sec) 1050 ( 0/sec) 3 ( 0/sec) Denials: 0 ( 0/sec) 0 ( 0/sec) 0 ( 0/sec) License removals: 0 ( 0/sec) 0 ( 0/sec) 0 ( 0/sec)
More here…
Yeah, this isn’t about a Solid Angle product, but about one of the DCCs that host our plugins (HtoA in this case).
So, I installed Houdini 13.0.476 the other day, and I got this “License Error: Unable to connect to hserver for license acquisition” when I tried to start HoudiniFX. I thought that was strange, because I had been running 13.0.401 moments before.
According to the licensing FAQ, that error means that the hserver service isn’t running. And, in fact, neither hserver nor sesinetd were running: they were both Disabled and marked for deletion, so I couldn’t start them from the Services console. After closing down Process Explorer, Task Manager, and the Services console, I was able to delete the services from the command line with sc delete.
At this point, I could have tried creating the services with sc create, but I was curious to see if the Houdini installer would do it for me. So I uninstalled and reinstalled. The installer asked me if I wanted to replace the newer version of sesinetd that was already on my system (huh???), and I clicked Yes. After the install finished, I had a running sesinetd service but no hserver, so I had to create it myself:
sc create HoudiniServer binPath= C:\windows\system32\hserver.exe
After that, I was able to start HoudiniFX and acquire a license.
If you’ve already have an RLM license server up and running, it’s easy to add your Arnold license to that server. Just download the Solid Angle RLM package, extract the solidangle.set and solidangle.opt files from the download, and copy them to your RLM folder. Then do a reread/restart of the server to pick up the Arnold licenses.
Just make sure you’re not running an older version of RLM. The Solid Angle license server (solidangle.set) requires RLM v10.1BL2 or later.
RLM is backwards compatible, which means you can always use a newer version of RLM with an older solidangle.set.
But RLM is not forwards compatible. You cannot use an older RLM with a newer solidangle.set. For example, you cannot use the current solidangle.set ISV server with RLM v9.4BL2.
If you use a newer solidangle.set with an older RLM, you’ll see something like this in the RLM log:
08/22 14:23 (rlm) RLM License Server Version 9.4BL2 Copyright (C) 2006-2012, Reprise Software, Inc. All rights reserved. 08/22 14:23 (rlm) License server started on SOLIDANGLE-PC 08/22 14:23 (rlm) Server architecture: x86_w1 08/22 14:23 (rlm) License files: 08/22 14:23 (rlm) arnold.lic 08/22 14:23 (rlm) 08/22 14:23 (rlm) Web server starting on port 5054 08/22 14:23 (rlm) Using TCP/IP port 5053 08/22 14:23 (rlm) Starting ISV servers: 08/22 14:23 (rlm) ... solidangle on port 60008 08/22 14:23 (rlm) New thread created to watch ISV solidangle (solidangle) Server settings (version 10) incompatible with RLM v9 software (solidangle) This settings file must be used with RLM v10 (or later) software 08/22 14:23 (rlm) 08/22 14:23 (rlm) solidangle initialization error: 1, not restarting 08/22 14:23 (rlm) 08/22 14:23 (rlm) Server initialization error. 08/22 14:23 (rlm) 08/22 14:23 (rlm) This indicates either: 08/22 14:23 (rlm) A settings file incompatible with this RLM version 08/22 14:23 (rlm) - or - 08/22 14:23 (rlm) The ISV server is built with an incorrect RLM license 08/22 14:23 (rlm) - or - 08/22 14:23 (rlm) The ISV server encountered an error processing its options fi le. 08/22 14:23 (rlm)
I like the log to be in append mode so it isn’t overwritten every time the license server restarts. This is especially handy for troubleshooting license server problems (otherwise, you lose information that might explain the problem when you restart the server).
You’ll need to Run as administrator when you open a command prompt for this.
First, add a plus sign (+) to the log file name (you can use sc qc to query the config and get the current binPath, or you could just look it up in the Services console).
sc config "RLM SolidAngle" binPath= "C:\Program Files\RLM\rlm.exe -dlog \"+C:\Program Files\RLM\solidangle.log\" -service" [SC] ChangeServiceConfig SUCCESS
Then restart the service. You could also do this in the Services console.
C:\Windows\system32>sc stop "RLM SolidAngle" SERVICE_NAME: RLM SolidAngle TYPE : 10 WIN32_OWN_PROCESS STATE : 1 STOPPED WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 C:\Windows\system32>sc start "RLM SolidAngle" SERVICE_NAME: RLM SolidAngle TYPE : 10 WIN32_OWN_PROCESS STATE : 2 START_PENDING (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x1388 PID : 9008 FLAGS :
And finally, check that it really started:
C:\Windows\system32>sc query “RLM SolidAngle”
SERVICE_NAME: RLM SolidAngle TYPE : 10 WIN32_OWN_PROCESS STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
It’s always a good idea to confirm basic facts before moving on to more complicated testing, especially when it comes to licensing problems. For example, I’ve had several cases of “watermarks on the render farm” where it turned out the actual number of licenses was rather less than the expected number.
Fortunately, it’s easy to check the number of available licenses (aka the “license pool status”) with the RLM Web Admin page.