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
Houdiniパス内のどこにでもhserver.opt
オプションファイルを配置することができます。
このパスには、デフォルトでユーザープリファレンスディレクトリ($HOUDINI_USER_PREF_DIR)が含まれているので、そのディレクトリが使用可能です。
Windows
C:\Program Files\Side Effects Software\Houdini Server\
内にhserver.ini
オプションファイルを配置してください。
Linux
Houdiniパス内のどこにでもhserver.opt
オプションファイルを配置することができます。
このパスには、デフォルトでユーザープリファレンスディレクトリ($HOUDINI_USER_PREF_DIR)が含まれているので、そのディレクトリが使用可能です。
オプションファイルには以下の行を記述することができます。#
で始まる行がコメント扱いになって無視されます。
ログオプション ¶
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を参照してください。