| On this page |
Warning
バージョン18.5の HoudiniServer では、接続されているすべてのライセンスサーバーがバージョン 18.0.287 以降である必要があります。
hserverは、同じコンピュータ上でHoudini,Engine,Mantra,Karma,その他の製品の起動を走らせるサービスです。
これは、sesinetdサーバーのプロキシとして機能し、コンピュータ上で起動されている同一プロダクトの複数コピーがsesintedからそのタイプのライセンスを1本だけチェックアウトされるように保証します。
常にバックグラウンドで実行されるsesinetdとは違い、Linux/OSXだと最初にHoudiniを起動した時に“必要に応じて”hserverが実行され、Windowsだとhserverがサービスとして実行されます。
このhserverプロセスは、実行された後はバックグラウンドで実行を継続することができます(Houdiniを再起動する時にhserverを停止して起動する必要がありません)。
異なるバージョンのHoudiniを起動させたいのであれば、どれかのアプリケーションを起動する前に、その起動させたい一番新しいバージョンのHoudiniを使用してhserverを開始させることを推奨します。
Windowsでは、hserverが完全にサービスになっているので、手動でhserverを起動する必要はありません。
Houdiniコマンドライン環境からHoudiniを立ち上げている場合、hserverはそのコマンドパス上にあります。
新しいコマンドラインオプションを使って手動でhserverを再起動することができます。
または、hserverインスタンスが既に実行されている時にhserverを実行すると、既存のインスタンスと通信されます(以下のコマンドラインからhserverを制御する方法を参照してください)。
New
hserverは新しいコマンドラインと構成ファイルシステムを使用しています。
この新しいコマンドラインでは、(以前のバージョンと同じ)短い文字キーだけでなく、よりわかりやすい英語システム(例えば、–user-group=“Beta”)も使用できるようになりました。
新しい構成ファイルは適切なiniファイルになり、これによりすべて従来の構文が適用されるようになりました。
つまり、どのオプションも必ずname=valueで指定しなければならなくなりました。
一部の古いオプションファイルはこの構文に準拠できていない場合があるので、hserverはそのようなオプションを取得しなくなることに注意してください。
Windows: Houdini19以降のhserverは、Linux/OSXのhserverと同様に非サービスアプリケーションとして実行することができます。 この機能はオプトイン(任意選択)で、サービスがインストールされているかどうか、hserverをサービスとして実行するように設定されているかどうかで判断されます。
-
Houdiniからhserverを再起動させるのは、HTTP(S)でのみ対応しています。
-
.sesi_licenses.prefファイルはC:\Users\<username>\AppData\Localにあります。 -
ログファイルの場所は、Houdiniアプリケーションが使用するHOUDINI_TEMPフォルダと同じ場所になります。
用途に合わせたライセンスセットアップの方法の詳細は、インストールとライセンス設定のガイドを参照してください。
オプションファイル ¶
オプションファイルでhserverオプションを指定することができます。
このファイルは、オペレーティングシステム別にファイル名やファイルの場所が異なります。
Mac
hserver.iniオプションファイルを/Library/Preferences/sesi/hserver/に配置してください。
hserverをサービスとして実行しない場合は、hserver.iniオプションファイルを$HOME/Library/Application Support/sidefx/に配置してください。
Windows
hserver.iniオプションファイルを%SystemDrive%\ProgramData\SideFX\に配置してください。
hserverをサービスとして実行しない場合は、hserver.iniオプションファイルを%USERPROFILE%\AppData\Roaming\SideFX\に配置してください。
Linux
hserver.iniオプションファイルを/usr/lib/sesi/hserver/に配置してください。
hserverをサービスとして実行しない場合は、hserver.iniオプションファイルを$HOME/.local/share/sidefx/に配置してください。
オプションファイルには以下の行を記述することができます。#で始まる行がコメント扱いになって無視されます。
ログオプション ¶
logfile=‹path›
ログの書き込み先となるファイルパス。
enableConsole=‹0|1›
hserverがコンソールにログを書き出すかどうかを指定します。
Windowsでは、このオプションに対応しておらず、すべてのログがログファイルに書き出されます。
disableColor=‹0|1›
コンソールにログを書き出す際にhserverがカラーを使用しないようにするかどうかを指定します。
minLogLevel=‹level›
このオプションはコマンドラインの-uオプションと同じです。
ログレベルの値のリストは-uを参照してください。
minConsoleLogLevel=‹level›
このオプションはコマンドラインの-Uオプションと同じです。
ログレベルの値のリストは-Uを参照してください。
logToSystem=‹0|1›
システムログファイルにログを書き出します。 hseverログへの書き出しは、このオプションの影響を受けません。
サーバーオプション ¶
maxThreads=‹max›
このサーバーが内部で使用するスレッドの最大数。
ここには、同時にhserverと通信させたいプロセスの最大数よりも多い数を指定してください。
デフォルトは6です。6未満の値は無視されます。
readIPMask=‹ip_mask›
このマスクに合致したIP4アドレスを持つクライアントのみがhseverから情報を要求することができます。 デフォルトでは、すべてのクライアントがhseverに接続できるように空っぽになっています。
writeIPMask=‹ip_mask›
このマスクに合致したIP4アドレスを持つクライアントのみが、hseverの起動、hserverのシャットダウン、レンダリングの一時停止/再開/強制終了、ライセンスサーバーの変更をすることができます。 デフォルトでは、すべてのクライアントがhseverに接続できるように空っぽになっています。
debugMode=‹0|1›
hserverをデバッグモードにするかどうかを指定します。
これは、SideFX開発者がバグの原因を絞り込むのに役立ちます。
useExperimental=‹0|1›
ライセンスを要求する時に、一度に1ライセンスだけ送信するのではなくて、試行してチェックアウトしたいプロダクトのリストを送信します。
これには、18.5以降のライセンスサーバーへの接続が必要です。
disableFastFDSet=‹0|1›
遅いレガシーのサーバー実装を使用します。
このオプションは次のリリースで削除される予定です。
storageLocation=‹file location›
hserverで使用される永続的な情報が格納されるカスタムファイルの場所。
ネットワークレンダー ¶
maxRenders=‹max›
使用可能なレンダラープロセスの最大数。 デフォルトは、マシンのプロセッサ数です。マシンに搭載されている物理プロセッサよりも多いレンダラープロセッサの数を指定すると、パフォーマンスに影響が出ます。
maxUsage=‹pct›
CPUの最大使用率(パーセント記号を含めないでください)。
ホストマシンに対するサーバープロセスの平均負荷がこの使用率を超えると、サーバーはレンダリングの受け入れを停止します。
100より大きい値を指定すると、このチェックが無効になります。デフォルトは101(無効)です。
このオプションの使用には注意してください。 これは 負荷を時間で割った平均 に基づいているので、この平均が閾値以内に収まる前にサーバーが複数のレンダリングの受け入れを拒否することがあります。
renderOnly=‹0|1›
これを1に設定すると、非グラフィカルライセンスのみが使用可能になります(これとgraphicsOnlyの両方を1に設定すると、両方とも無視されます)。
これによって、“グラフィカル”アプリケーション(インターフェースを持ったアプリケーションのことで、例えばHoudini)がこのホストを使用しないように制限することができます。
graphicsOnly=‹0|1›
これを1に設定すると、グラフィカルライセンスのみが使用可能になります(これとrenderOnlyの両方を1に設定すると、両方とも無視されます)。
これによって、コマンドラインアプリケーション(例えばhbatch)がこのホストを使用しないように制限することができます。
relaxNonGraphics=‹0|1›
これを1に設定すると、たとえrenderOnlyが1でも、非グラフィカルアプリケーションがグラフィカルライセンスを使用することができます。
ただし、非グラフィカルアプリケーション(hbatch)はグラフィカルライセンスを使用することはできません。
hold=‹license› ‹secs›
hserverがアプリケーションのライセンスをチェックアウトする時に、使用後にそのライセンスを返却せずに“保持”するように指定することができます。
これにより、同じマシンでのライセンスの再取得が非常に高速になりますが、ライセンスが縛られます。
この2つの引数は、ライセンスタイプとそのタイプの各ライセンスを保持する秒数です。
この秒数に-1を指定すると、サーバーはそのタイプのライセンスを無期限に保持します。デフォルトは次のようになっています:
hold Houdini-Master 3600 hold Render -1
(つまり、FXライセンスを1時間保持し、Renderライセンスを無期限に保持します。Renderライセンスは無料なので、今後ずっと使用するために無期限に保持するのが妥当です。)
mantra=version=X.X command="‹command›"
特定のバージョンのMantraレンダラーでリモートレンダーを開始する時にレンダーコマンドを指定します。 これによって、同じホスト上で複数バージョンのレンダラーに対応することができます。
vmantra=version=X.X command="‹command›"
上記のmantraオプションと同じです。
APIオプション ¶
readTimeoutMs=‹milliseconds›
このサーバーがsesinetdライセンスサーバーからの応答を待つ最大時間(ミリ秒)。
デフォルトは5分です。
この時間を過ぎるとAPIコールが行なわれなくなります。
この値を変更しないことを推奨します。
(hserverが複数のライセンスサーバーを使用するように設定されている場合、これは、リスト内の1つのサーバーからの応答を諦めて次のサーバーに移動するまでの時間です。)
connectTimeoutMs=‹milliseconds›
接続タイムアウトを指定します。
これは、hserverが接続を諦めるまでエンドポイントへの接続を試みるミリ秒数です。
デフォルトは30秒です。
ClientID=‹value›
APIキーを用意するのに必要となるクライアントID。 ClientSecretも用意する必要があります。
ClientSecret=‹value›
APIキーを用意するのに必要となるクライアントシークレット。 ClientIDも用意する必要があります。
enableIPv6=‹value›
IPv6対応を有効にします。
APIKey=‹client id› ‹client secret›
APIキー情報のクライアントIDとクライアントシークレットを指定します。 詳細は、APIキーによるライセンス認証を参照してください。
APIKeyFile=‹file location›
hserverで使用するAPIキー情報を指定したファイルの場所。 詳細は、hkeyを参照してください。
ライセンスのパーティション化 ¶
userGroup=‹group_name›
ライセンスサーバーにライセンスを要求する時に使用するユーザグループ。
コマンドラインからhserverを制御する方法 ¶
情報 ¶
--help
このヘルプを表示します。
--ini-help
iniヘルプを表示します。
--version
hserverバージョン文字列をプリントします。
ログオプション ¶
-u/--min-logfile-level
ログファイルの最低エラーログレベルを指定します。
-
0: なし
-
1: メッセージ(デフォルト)
-
2: プロンプト
-
3: 警告
-
4: エラー
-
5: 致命
-U/--min-console-log-level
コンソールの最低エラーログレベルを指定します。
-
0: なし
-
1: メッセージ
-
2: プロンプト(デフォルト)
-
3: 警告
-
4: エラー
-
5: 致命
-B/--enable-console
コンソールのログを有効にします。
-b/--disable-console-colors
デバッグコンソールカラーを無効にします。
-Y/--log-to-system
オプションファイル内のlogToSystemと同じです。
サーバーオプション ¶
-L/--logfile ‹file›
logfileオプションを設定します。
詳細は、ログセクションを参照してください。
-D/--debug-mode
サーバーをデバッグモードにします。
-d/--run-in-foreground
hserverをバックグラウンドで実行しないようにします。
このオプションは、Linux/OSXで利用可能で、WindowsではhserverがWindowsサービスとして実行されていない時にのみ利用可能です。
-t/--max-threads ‹count›
maxThreadsオプションを設定します。
デフォルトは6です。
-m/--read-mask ‹ip_mask›
readIPMaskオプションを設定します。
デフォルトは+.+.+.*です。
-M/--write-mask ‹ip_mask›
writeIPMaskオプションを設定します。
デフォルトは+.+.+.*です。
-E/--enable-experimental
これは、オプションファイル内のuseExperimentalと同じです。
-C/--force-http
接続URLに関係なくhttp通信を使用し、レガシーの通信プロトコルを代用しません。
ネットワークレンダーオプション ¶
-n/--render-only
renderOnlyオプションを有効にします(非グラフィカルレンダリングのみを許可します)。これと-Gの両方を設定すると、両方とも無視されます。
-G/--graphics-only
graphicsOnlyオプションを有効にします(グラフィカルレンダリングのみを許可します)。これと-nの両方を設定すると、両方とも無視されます。
-g/--relax-non-graphical
relaxNonGraphicsオプションを有効にします。
-r/--max-renders ‹max›
maxRendersオプションを設定します。
-a/--max-usage ‹pct›
maxUsageオプションを設定します。
クライアントオプション ¶
-h/--host ‹host›
オプションで、照会/制御するリモートホストを指定することができます。
-l/--info
起動中のhserverの情報を取得します。
-V/--mantra-commands
すべてのバージョン固有のMantraコマンドをリストします。
-q/--quit
起動中のhserverを閉じます。
-Q/--blocking-quit
起動中のhserverを閉じます。
クライアントに応答する前に、サーバーはすべてのライセンスと実行中のタスクを放棄します。
これは、Dockerなどの物理的にシャットダウンができないシステムのためだけに設計された事実上の阻止型のシャットダウンです。
-p/--reload-options
起動中のhserverにオプションファイルをリロードさせます。
-P/--pause-pid ‹pid›
pidで指定されたhserverのタスクを一時停止します。
-R/--resume-pid ‹pid›
pidで指定されたhserverのタスクを再開します。
-S/--server ‹servers›
使用するライセンスサーバーをサーバー名で選択します。
-K/--kill-pid ‹pid›
Killするhserverのタスクをpidで指定します。
-H/--hold-license ‹license› ‹time›
プロセスで不要になった後でも保持したいライセンスとその時間を指定します。
APIオプション ¶
-T/--read-timeout-ms ‹millis›
readTimeoutオプションを設定します。
デフォルトは15秒です。
--connect-timeout-ms ‹millis›
サーバーへの接続を試みる最大ミリ秒数。
--clientid ‹value›
APIキーを用意するのに必要となるクライアントID。 ClientSecretも用意する必要があります。
--clientsecret ‹value›
APIキーを用意するのに必要となるクライアントシークレット。 ClientIDも用意する必要があります。
ライセンスのパーティション化 ¶
--user-group ‹group name›
ライセンスサーバーにライセンスを要求する時に使用するユーザグループ。
サーバーのリストを変更する ¶
クライアントマシンのライセンスセットアップを設定する時、サーバーリストがリモートのライセンスサーバーを指すように変更する必要があることが多いです。
ライセンスサーバーの変更は、 Hkey ▸ File ▸ Change License Server またはhserver -S <hostname>から行なうことができます。
どちらの方法でも、普段スタジオ環境のセットアップに関わっていない人の介入が必要になります。
スタジオ環境のセットアップの観点においてHoudiniインストールの自動化の望ましい方法は、DNS SRVエントリを使用することです。
DNS SRVエントリを使用するメリットは、IT部署がスクリプトを更新したり、手動で各クライアントマシンを更新することなく、サーバーリストを更新することができるという点です。
さらに、DNS SRVを使用することで、スタジオ環境で冗長サーバーのセットアップを上手く統合することができます。
アプリケーションがサーバーリストを決める順番は以下のとおりです:
-
アプリケーションがhserver でない 場合、hserverからサーバーリストを照会します。
-
アプリケーションがhserverでWindowsサービスとして適切に起動している場合、レジストリキーがチェックされます。このレジストリキーは
hklm\software\Side Effects Software\Houdini内にあるLicenseServerという変数です。 -
アプリケーションがLinux/OSX上で起動している場合、または、Windowsサービスとして適切に 起動していない 場合、
SESI_LMHOSTという名前の環境変数がチェックされます。Windows
hserverはシステムアカウントで実行されるので、この環境変数はユーザーアカウントだけでなくシステムアカウントからもアクセスできる必要があります。
-
アプリケーションがLinux/OSX上で起動している場合、または、Windowsサービスとして適切に 起動していない 場合、
.sesi_licenses.prefが使用されます。Windows
このファイルの場所は
%USERPROFILE%/AppData/Local/.sesi_licenses.prefです。 hserverはシステムアカウントで実行されるので、hserverが適切なサービスとして起動されている場合には、このファイルの場所は異なります。 そのため、このファイルを手動で調整することは推奨しません。ライセンス管理ソフトウェアがこれを自動で調整してくれます。Linux
このファイルの場所は
$HOME/.sesi_licenses.prefです。Mac
このファイルの場所は
$HOME/.sesi_licenses.prefです。 -
DNS SRVエントリがチェックされます。アプリケーションは
_sesi-lmを検索します。 -
mDNSエントリがチェックされます。sesinetdは、それができるようにこのエントリをセットアップします。ユーザー側で何もアクションする必要はありません。
-
上記の選択肢がどれもサーバーリストの検索に失敗したら、
localhostが使用されます。これは、新規マシン上に新しくHoudiniをインストールする場合が当てはまります。
ライセンスサーバーのチェーン化 ¶
この構成によって、ライセンスサーバー(sesinetd)をチェーン化することができます。
これは、仕様(例えば、ライセンスプロダクトタイプ)に基づいてライセンスサーバーを分けることができます。
この構成の時、Houdiniはsesinetdサーバーリストの最初のsesinetdサーバーからライセンスのチェックアウトを試みて、ライセンスが空いていなければ次のサーバーからライセンスのチェックアウトを試みます。
この構成リストをセットアップするには、接続先となるライセンスサーバーを単一のsesinetdを指定するのではなくて、セミコロンで区切ったライセンスサーバーのセットを指定します。
このリスト内の1番目のsesinetdがコマンドの実行(つまり、チェックアウト)を試みて、何かしらの理由(接続できない、コマンドが失敗など)で失敗すると、次のsesinetdを試みます。
“hserver -S”を使ってこのリストを指定する時は、この接続先のリストを引用符で閉じてください。例えば、hserver -S “sesinetd1;sesinetd2”です。
セミコロンの代わりにカンマが使用されていれば(以前の対応していない構成を使用した場合)、このアプリケーションはエラーをログに書き出し、内部的にカンマをセミコロンと想定してその構成を使用します。 以前のバージョンのHoudiniと完全に互換性を持てるように、このアプリケーションはそのキャッシュ化されたサーバー情報の場所を更新しません。
この構成を使用するには、最低でもバージョン18.0のHoudini License Server(hserver)が必要になります。
現在のところ、sesinetdとHoudiniのバージョンは、この構成ではそのバージョンに合わせる必要性はありません。
HTTP通信に対応 ¶
HoudiniServer 側でhttp通信を有効にするには、接続URLのプロトコルを指定する(例えばhserver -S http://licenseserver)、または、コマンドラインに-Cを追加する、または、 HoudiniServer オプションファイルにenableHttp 1を追加します。
Houdini18.5以降では、すべてのアプリケーションでhttp通信がデフォルトで有効になっています。
http通信に対応する前のHoudiniでは、従来sesiプロトコルと呼ばれる独自のフォーマットを使用していました。 このプロトコルは非常に雑な作りで、何か問題が起きた時にクライアントに知らせるのが恐ろしく困難でした。 それに対して、httpは非常に上手く作られたプロトコルで、サードパーティ製アプリケーションで広く対応しています。
|
≤ 17.5 |
18.0 |
18.5 |
19.0 |
|
|
hserver(サーバーとして) |
No |
Yes(最小サポート) |
Yes |
Yes(フルHTTPSサポート) |
|
hserver(クライアントとして) |
No |
Yes |
Yes |
Yes |
|
sesinetd |
No |
Yes (最小サポート) |
Yes |
Yes (フルHTTPSサポート) |
|
sesictrl/hkey |
No |
Yes |
Yes |
Yes |
ログファイル ¶
ログファイルは、サーバーが健康状態に関する情報、接続情報、他に役立つ情報を出力する場所です。
各ログのエントリの書式はYYYY-MM-DD HH:MM::SS: SYSTEM - MESSAGEです。
-
HTTP Clientは、curlコマンドからのメッセージ、または、接続/クライアントシステム関連のメッセージです。
Note
curlコマンドのverboseオプションが有効になっていれば、その出力がこのシステム下でログに書き出されるようになります。
これらのログエントリの詳細は、curlのウェブページを参照してください。
-
Sqliteは、Sqlite自体から送られてくるメッセージです。SqliteはCookieの保存や他の永続的なストレージの需要でよく使用されています。 -
Network Managerは、ログファイル内で最もよく見かけるメッセージです。このメッセージは通常ではサーバー自体から送られてきます。たいていの場合、これは受信した接続に関する情報またはリクエストへの応答をログに書き出す際に使用します。 -
Stats Managerは、統計マネージャから送られてくるメッセージです。これは通常では起動中のサーバーに関する統計情報関連のメッセージです(例えば、リクエストの最大処理時間)。 -
Error with api responseは、API応答のエラーの結果を示したメッセージです。 -
Access Tokenは、APIキーから送られてくるメッセージです。これは通常では無効なAPIトークンに関するメッセージまたはAPIトークンの更新ができない旨のメッセージです。 -
Serviceは、サービス自体から送られてくるメッセージです。 -
Applicationは、アプリケーション関連のメッセージです。このエラーメッセージは非常に珍しいです。
Starting release server v18.5.296 at http://127.0.1.1.:1714というログエントリは、そのサーバーが開発サーバーかリリースサーバーのどちらなのか、サーバーのバージョン、サーバーが起動しているIPアドレスとポートを示しています。
これは、起動しているサーバーのバージョンを知る必要がある場合に役立ちます。
他にも、複数のサーバーのバージョンが含まれているログファイル内でどのバージョンが何を生成したのかを確認しやすいです。
Using fast fd set configuration...というログエントリは、ソケットで利用可能なデータを検出するためにサーバーが使用している仕組みを示した単なるエントリです。
サーバーが高速なFD(File Descriptor)セット構成を使用している場合、サーバーはLinuxだとepoll、OSXだとkqueueを使用します(現在のところ、Windowsはこのような構成に対応していません)。
サーバーがデフォルトのFD(File Descriptor)セット構成を使用している場合、どのプラットフォームでもpoll()が使用されます。
HTTP応答ログエントリ ¶
通常のHTTP応答ログエントリの書式はMETHOD ROUTE HTTP/VERSION" CODE CODE_MESSAGE COMMAND RESPONSE_TIMEです。
エントリの例: 2020-06-17 19:48:02: Network Manager - "POST /api HTTP/1.1" 200 Ok cmd_ping 0.0022450001s
-
METHOD: POST, GET, HEADなど
-
ROUTE: /api, /login, /
-
VERSION: 1.1, 1.0, 0.9
-
CODE: 200, 400, 404
-
CODE_MESSAGE: Ok, Bad Request, Not Found
-
COMMAND: cmd_ping
-
RESPONSE_TIME: 0.001s
Statistics Managerログエントリ ¶
Process Timeエントリは、平均処理時間とサーバーが起動してから現在までのすべてのリクエストのうちの最大処理時間を示します。 これは、リクエストが処理を開始してからその処理が応答するまでの時間で測定されます。
エントリの例: 2020-06-17 19:46:51: Stats Manager - Process Time: avg 0.010118s, max 0.020763s
Queue Wait Timeログエントリは、すべてのリクエストがキュー内でワーカースレッドで処理されるのを待機した平均時間と最大時間を示します。 これらの時間は、サーバーが起動してから現在までの期間における値です。
エントリの例: 2020-06-17 19:46:51: Stats Manager - Queue Wait Time: avg 3.6666667e-05s, max 6.5e-05s
Queue Sizeログエントリは、現在のキューサイズとこれまでのキューの最大サイズを示します。 これらのサイズは、サーバーが起動してから現在までの期間における値です。
エントリの例: 2020-06-17 19:46:51: Stats Manager - Queue Size: current 0, max 1
Connection Countログエントリは、現在サーバーが繋げている接続数を示します。 例えば、サーバーが接続を再使用すると、この数はその再使用した接続数を示すようになります。
エントリの例: 2020-06-17 19:46:51: Stats Manager - Connection Count: 0
APIキーによるライセンス認証 ¶
hserver向けのAPIキーを追加するには、APIKeyオプションを使って個々のAPIキーを追加するのか、または、APIKeyFileを使ってAPIキーファイルを使用します。
APIKeyFileオプションでは、HOUDINI_API_KEY_FILEで使用されているのと同じファイルを指すことができます。
新しいAPIキーを生成するには、sidefx.comに進んでから、Register a new applicationを選択してください。
APIキーは、電子メールアドレス/パスワードによる認証と同じレベルの注意と安全性を確保して扱ってください。
hkeyとsesictrlに対してAPIキーをセットアップする方法の詳細は、hkeyを参照してください。