start_service(uri=nil, front=nil, config_or_acl=nil) -> ()
[permalink][rdoc][edit]-
dRuby のサービス(サーバ)を起動します。
これで起動したサーバはプロセスのプライマリサーバとなります。すでにプライマリサーバが存在する場合は上書きされます。
uri に URI を文字列で指定すると、それに起動したサービスを bind します。通常は 'druby://<hostname>:<port>' という形式の URI を指定します。このときは TCP が通信手段として使われます。 'drbunix:' のような他のプロトコルを指定することもできます。
front でフロントオブジェクト(URI に結び付けられるオブジェクト)を設定します。
config で Hash で設定を渡します。以下の項目が利用できます。
- :idconv
-
dRuby内部で識別子とオブジェクトを相互に変換するためのオブジェクト。デフォルトは DRb::DRbIdConv のインスタンス。
- :verbose
-
真を指定すると失敗したdRuby経由のメソッドのログを $stdout に出力します。デフォルトは false。
- :tcp_acl
-
サーバに設定する ACL(Access Control List)。詳しくは ACL を見てください。デフォルトは nil(設定しない)。
- :load_limit
-
サーバが受け付けるメッセージの最大バイト数。デフォルトは 26214400(25MB)
- :argc_limit
-
サーバが受け付けるリモートメソッド呼出の引数の最大個数。デフォルトは256。
- :auto_load
-
真に設定すると、 URIで指定されたプロトコルを取り扱うのに必要なDRbのサブライブラリが自動的にロードされます。デフォルトは true。
- :safe_level
-
リモートからのメソッド呼出しメッセージを受け取ったときに対応するローカルオブジェクトのメソッド呼出をする前にスレッドに設定されるセーフレベル($SAFE)の値。デフォルト値は0。
デフォルト値は DRb::DRbServer の以下のクラスメソッドによって変更できます。
- DRb::DRbServer.default_acl
- DRb::DRbServer.default_argc_limit
- DRb::DRbServer.default_id_conv
- DRb::DRbServer.default_load_limit
- DRb::DRbServer.default_safe_level
- DRb::DRbServer.verbose=
config に Hash以外を渡すと、ACL(Access Control List)として取り扱われます。
起動したサーバはただちに接続を待ち受けます。
- [PARAM] uri:
- 起動するサービスを bind する URI の文字列
- [PARAM] front:
- フロントオブジェクト
- [PARAM] config:
- オプション設定の Hash
- [EXCEPTION] DRb::DRbBadURI:
- URI の schema が不正(サポートされていないものである)場合に発生します
[SEE_ALSO] DRb.#primary_server, DRb::DRbServer.new