wrapper.backend.type プロパティ

対応バージョン :3.5.8
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

Wrapper プロセスと JVM 内部で動作しているクラスとの間で、Wrapper は常に通信の維持が必要です。 従来からの方式で、その通信はループバックデバイス(localhost)越しにソケットを利用して行われます。 これは安全で信頼性があるのですが、一部のユーザーから 「セキュリティやその他の問題のために、何か代替え案が欲しい」とのリクエストをいただきました。

2つ知られたインスタンスで、ユーザーから 「Windows 2003上で動作中、外部プロセスによってバックエンドソケットが閉じられていた」という報告を受けています。 その閉じられた原因を決して発見することはできませんでしたが、 パイプを利用した代替え通信メソッドを実装するキッカケになりました。

これは、[wrapper.debug]プロパティで デバッグ出力が有効になっている状態で、「ソケットが閉じた」現象が起きたときのログです:

DEBUG  | wrapperp | socket send failed.  An existing connection was forcibly closed by the remote host. (0x2746)
DEBUG  | wrapperp | closing backend socket.
INFO   | jvm 1    | WrapperManager Debug: Closed socket: java.net.SocketException: Connection reset
INFO   | jvm 1    | WrapperManager Debug: Returned from socket handler.
INFO   | jvm 1    | WrapperManager Debug: Closing backend socket.
INFO   | jvm 1    | WrapperManager Error: The backend socket was closed unexpectedly.  Restart to resync with the Wrapper.

「ソケットが閉じた」現象が発生すると、Wrapper は他に問題を起こすことなく JVM を再起動しますが、 一部のアプリケーションでは、JVM 再起動で JVM に問題を引き起こすことがあるため、再起動を避けるのが一番好ましいです。

デフォルト値は「AUTO」です。

可能な値は次のとおり:

  • AUTO:SOCKET を使用。エラー発生時に PIPE へフォールバック
  • SOCKET:SOCKET_IPv4 を使用。エラー発生時に SOCKET_IPv6 へフォールバック
  • SOCKET_IPv4:IPv4 ソケットを使用
  • SOCKET_IPv6:IPv6 ソケットを使用
  • PIPE:パイプバックエンドを使用
設定例:
wrapper.backend.type=SOCKET

参照: ポート