Edge Componentsを使用しているのですが、サービスアドレス(クラスターアドレス)が付加されないという問題が発生しました。

前任者からの引き継ぎ時に、たまにサービスアドレスが付加されないことがあるから、手動で追加してねと言われていました。アプリケーションサーバーの再起動は頻繁に行っているのですが、Edgeサーバーの再起動はシステムリリース後ほとんど行われていないため、あまり問題にはなっていませんでした。

dscontrolコマンドでEdge Componentsを起動中にgoActiveというスクリプトが実行されます(Edge Componentsのbinディレクトリに作成するファイルです)。このスクリプト内ではipconfigコマンドを実行して、サービスアドレスを新たに追加する様になっています(Windowsではnetshコマンドで)。このipconfigコマンドは/sbinディレクトリに配置されており、通常このディレクトリにパスの通っていない一般ユーザーは実行する事が出来ません。

オペレーターに作業手続きを全て引き継いでいますが、Edge Componentsを起動するシェルではsudoでdscontrolコマンドを実行しています。rootはもちろん/sbinディレクトリにパスが通っているのですが、sudoコマンドではパスが引き継がれない事を知らなかった為にこのような問題が発生しました(どのバージョンからかは定かではありませんが、"-i"オプションをつける事によって、sudoで遷移するユーザーのパスを引き継ぐ事が出来ます)。

sudoコマンドのバージョンが低い為"-i"オプションを使うのではなく、シェルの中に"export PATH=$PATH:/sbin"と書き加える事で解決する事になりました。

Edge Components v6.0.2での事象です。
「Load Balancer 管理ガイド バージョン6.1」の「第5章 クイック・スタート構成 - Dispatcher コンポーネントの構成 - コマンド行による構成」に『AIX、HP-UX、Linux、またはSolaris システムの場合は、dsserver コマンドをroot ユーザーとして実行します。』とあるので、ここで/sbinにもパスを通しておくようにという事を暗に意味していたのかもしれません。

類似事象として、v7.0でもパスが通っていない為にEdge Componentsを起動できない事があります。こちらも/sbinディレクトリへのパスが通っている必要があるもので、Edge Components起動中(dscontrol executor start)にException(java.util.NoSuchElementException)が出力されます。