Java

ネットワークのプロパティ

ドキュメントの目次

Java のプロパティ

java.net.preferIPv4Stack (デフォルト: false)
IPv6 を利用可能なオペレーティングシステムでは、基本となるネイティブソケットは IPv6 ソケットです。 このため、Java(TM) アプリケーションは、IPv4 ホストと IPv6 ホストの両方に接続したり、その両方のホストからの接続を受け入れたりできます。

IPv4 ソケットだけを使用するよう設定されているアプリケーションでは、このプロパティを true に設定できます。 つまり、そのアプリケーションは IPv6 ホストと通信できないということです。


java.net.preferIPv6Addresses (デフォルト: false)
IPv6 を利用可能なオペレーティングシステムでは、デフォルトの設定として、IPv4 マップのアドレスを IPv6 アドレスよりも優先するようになっています。 これは、下位互換性の理由によります。たとえば、IPv4 だけのサービスへのアクセスに依存するアプリケーションや、%d.%d.%d.%d の形式で表現された IP アドレスに依存するアプリケーションとの互換性のためです。 IPv6 アドレスを IPv4 アドレスよりも優先する設定を試してみるには、このプロパティを true に設定します。 そうすれば、アプリケーションが IPv6 サービスに接続されると予想される環境でアプリケーションをテストし、そのような環境にアプリケーションを配置することができます。


networkaddress.cache.ttl (デフォルト: -1)
java.security で指定して、ネームサービスからの名前の検索に成功した場合のキャッシングポリシーを示します。 指定する値は、成功した検索結果をキャッシュする秒数を示す整数です。

-1 の値は、「ずっとキャッシュする」という意味です。


networkaddress.cache.negative.ttl (デフォルト: 10)
java.security で指定して、ネームサービスからの名前の検索に失敗した場合のキャッシングポリシーを示します。 指定する値は、失敗した検索結果をキャッシュする秒数を示す整数です。

0 の値は、「キャッシュしない」という意味です。 -1 の値は、「ずっとキャッシュする」という意味です。


http.proxyHost (デフォルト: <なし>)
http.proxyPort (デフォルト: 80 (http.proxyHost が指定された場合))
http.nonProxyHosts (デフォルト: <なし>)

ftp.proxyHost (デフォルト: <なし>)
ftp.proxyPort (デフォルト: 80 (ftp.proxyHost が指定された場合))
ftp.nonProxyHosts (デフォルト: <なし>)

http.proxyHost と http.proxyPort は、HTTP プロトコルハンドラが使用するプロキシサーバとポートを示します。

http.nonProxyHosts は、プロキシサーバ経由ではなく、直接接続すべきホストを示します。 ホストのリストを指定することもできます。その場合は、それぞれのホストを「|」で区切ります。また、ワイルドカード文字 (*) によるマッチングも指定できます。 例を示します。 -Dhttp.nonProxyHosts="*.foo.com|localhost".

ftp.proxyHost と ftp.proxyPort は、FTP プロトコルハンドラが使用するプロキシサーバとポートを示します。 ftp.nonProxyHosts は、http.nonProxyHosts と同様、プロキシサーバ経由ではなく、直接接続すべきホストを示します。


http.agent (デフォルト: Java1.4.0)

HTTP 要求に入れて送信される User-Agent 要求ヘッダを示します。


http.auth.digest.validateServer (デフォルト: false)
http.auth.digest.validateProxy (デフォルト: false)
http.auth.digest.cnonceRepeat (デフォルト: 5)
これらのシステムプロパティは、HTTP ダイジェスト認証機能の動作を変更します。 ダイジェスト認証は、サーバがユーザパスワードを認識していることをクライアントに証明することによって、サーバ自体をクライアントに認証させるための限定された機能をサーバに提供します。 しかし、すべてのサーバがこの機能をサポートするわけではありません。また、デフォルトではこのチェックはオフに設定されています。 上記の最初の 2 つのプロパティを true に設定して、オリジンサーバまたはプロキシサーバを使用した認証で、このチェック機能を使用することができます。

通常は、3 つ目のプロパティ (http.auth.digest.cnonceRepeat) を設定する必要はありません。 このプロパティは、cnonce 値を再使用する回数を決定します。 このプロパティは、MD5-sess アルゴリズムを使用する場合に役に立ちます。 この値を増やすと、各 HTTP 要求のためにハッシュしなければならない情報の量が減るので、クライアントとサーバの両方で計算のオーバーヘッドが減少します。


http.keepAlive (デフォルト: true)
キープアライブ (持続) 接続をサポートすべきかどうかを示します。 持続接続を使用すると、複数の HTTP 要求に対して再利用される基本となるのソケット接続を許可することによって、パフォーマンスが改善されます。

デフォルトは true で、HTTP 1.1 サーバで持続接続が使用されます。 持続接続の使用を無効にするには、false を設定します。


SOCKS プロトコルサポートの設定

socksProxyHost
socksProxyPort (デフォルト: 1080)
SOCKS プロトコル層で使用される SOCKS プロキシサーバの名前とポート番号を示します。 socksProxyHost を指定した場合、すべての TCP ソケットは、接続を確立したり受け入れたりする際にその SOCKS プロキシサーバを使用します。 SOCKS プロキシサーバとしては SOCKS v4 または v5 サーバのどちらも使用可能で、認証されない接続も可能である必要があります


Sun の実装に固有のプロパティ

ここに列挙するプロパティは、将来のリリースでサポートされなくなる可能性があります。
sun.net.inetaddr.ttl
これは、Sun に固有のシステムプロパティで、networkaddress.cache.ttl に対応します。 プロパティの値と意味は同じですが、コマンド行オプションとして設定できる点が異なります。 ただし、望ましいのは、前述の説明にあるセキュリティプロパティを使用する方法です。


sun.net.inetaddr.negative.ttl
これは、Sun に固有のシステムプロパティで、networkaddress.cache.negative.ttl に対応します。 プロパティの値と意味は同じですが、コマンド行オプションとして設定できる点が異なります。 ただし、望ましいのは、前述の説明にあるセキュリティプロパティを使用する方法です。


sun.net.client.defaultConnectTimeout (デフォルト: -1)
sun.net.client.defaultReadTimeout (デフォルト: -1)
これらのプロパティでは、java.net.URLConnection で使用されるプロトコルハンドラに対して、デフォルトの接続および読み取りタイムアウト (応答) を指定します。

sun.net.client.defaultConnectTimeout は、ホストへの接続を確立する際のタイムアウト (ミリ秒) を指定します。 たとえば、HTTP 接続の場合は、HTTP サーバへの接続を確立する際のタイムアウトのことです。 FTP 接続の場合は、FTP サーバへの接続を確立する際のタイムアウトのことです。

sun.net.client.defaultReadTimeout は、リソースへの接続が確立されているときの、入力ストリームから読み取る際のタイムアウト (ミリ秒) を指定します。


JNDI DNS サービスプロバイダの設定

ここに列挙するプロパティは、将来のリリースでサポートされなくなる可能性があります。
sun.net.spi.nameservice.provider.<n>=<default|dns,sun|...>
使用できるネームサービスプロバイダを指定します。 デフォルトでは、Java は、システムに構成された名前検索機構を使用します (file、nis など)。 このオプションを設定すると、独自の名前サービスプロバイダを指定できます。 <n> には、正の数値を指定します。この数値は優先順位を示しており、小さい値ほど優先順位が高くなります。 J2SETM 1.4 では、JNDI を使用して 1 つの DNS ネームサービスプロバイダが提供されており、その名前は「dns,sun」です。


sun.net.spi.nameservice.nameservers=<server1_ipaddr,server2_ipaddr ...>
使用する DNS サーバを指す IP アドレスを、コンマで区切ったリストとして指定できます。


sun.net.spi.nameservice.domain=<domainname>
このプロパティでは、デフォルトの DNS ドメイン名 (たとえば、eng.sun.com) を指定します。


Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.

 Sun Microsystems, Inc