JMS Broker サービスが起動しない

[OS] ALL
[リリース] 9.4
[キーワード] JMS EPHEMERAL PORT

[質問]

サーバーの再起動を行ったところ他のプロセスにポートを先に使用されてしまいJMS Broker サービス(標準ポート 61616)を起動することができないことがありました。
恒久的な対応として、ポートの重複を避けるような方法は無いでしょうか。

[回答]

ポート番号が先に使用されるのを防ぐには、固定で使用したいポートを他のサービスに取得されないようにOS上で予約するか、自動で使用される空きポート番号(Ephemeral Port:エフェメラルポート)の範囲で調整いただくことになります。

ご利用のOSによって対応可能な内容が代わります。
正確なポート範囲の調整については、ご利用のOSのマニュアルにてご確認をお願いします。

以下はWindowsとLinuxについて記載します。

Windows Server:
Windows2008 以降のOSでは個別にポートを予約する操作はできません。
空きポートとして利用可能な範囲を定義できるだけとなりますので、対応としてはこのポートの空き範囲を定義して他のプロセスから割り当てされないようにすることが考えられます。

しかしながら広範囲にポートの制限をすることは他の利用可能なポートの範囲を狭めることにもなりますので、対応については十分に検討されることをお勧めします。

以下のUsage Noteを公開しており、このリンクから実際の変更コマンドの例が記載されているMicrosoftのサイト情報が確認できるようになっています。

Usage Note 43946: Ephemeral port range
 http://support.sas.com/kb/43/946.html

※青字でリンクされている KB929851が参照先になります。

Linux Server:
ご利用になるディストリビューションによっては指定が異なります。
正規手順はご利用のディストリビューションに合わせてご対応ねがいます。
固定(範囲含む)で予約することと、Windowsのように動的ポートの範囲を指定する方法が利用可能です。
一定の範囲を定めながら、特定のポートを予約可能です。

例) Red Hatでの指定

net.ipv4.ip_local_port_range = 49152 61000 (範囲指定)
net.ipv4.ip_local_reserved_ports = 61616,41415,nnnnn-nnnnn (固定指定)