最新バージョンでの動作テストやマイグレーション作業などの過程で、複数のColdFusionバージョンを起動しようとした際にエラーが発生する場合、その原因の多くは同じポート番号を使用している事にあります。
例えば、ColdFusion 10 と ColdFusion 11の二つのバージョンで、それぞれのバージョンだけを起動した場合は正常に動作しますが、上記の図のように ColdFusion 10を起動した状態でColdFusion 11を起動しようとすると、サービス起動に失敗(コード2)する場合があります。
ColdFusionのログやOSのログに情報が掲載されていない場合は、コマンドプロンプトからColdFusionの起動バッチを実行し、エラーメッセージ等が表示されないかを確認して下さい。
例)ColdFusion 11の起動バッチを実行する場合:
エラー例)
2017.2.13 追記
別の例として、ColdFusion 11 と ColdFusion 2016の二つのバージョンを同時に起動した際、片方のバージョンの.cfmページをリクエストすると、下記のように 「Monitoring サービスを使用できません」が表示されました。
javax.servlet.ServletException: ROOT CAUSE:
coldfusion.server.ServiceFactory$ServiceNotAvailableException: Monitoring サービスを使用できません。
at coldfusion.server.ServiceFactory.getMonitoringService(ServiceFactory.java:223)
at coldfusion.CfmServlet.service(CfmServlet.java:199)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
....
これは、ColdFusion Enterprise 版で使用可能なサーバーモニターのポートの割当てが競合したために発生しています。サーバーモニターは、普段のリクエストで使用しているポート(80 や 443、開発用Webサーバーの8500など)でアクセス可能ですが、そのポートのリクエストが集中したときのために、別のポートで監視サーバーへアクセスする事が可能です。
監視サーバーの有効化・無効化は [ColdFusion サーバーの監視] - [監視設定] の 「サーバー監視/設定」で『監視サーバーを有効にする』 で設定できますが、有効・無効の設定に関わらず、監視サーバー自体は起動しています。監視サーバーのポート番号は ColdFusion 起動時に自動的に割当てを行うため、複数のColdFusionを同時に起動した時に、(タイミングによって)このエラーが発生する場合があります。
application.log には以下のようなエラーが表示されます
Information [localhost-startStop-1] - Monitoring を開始しています...
Information [localhost-startStop-1] - ポート 5500 の監視サーバーを起動しています。
Error [localhost-startStop-1] - Address already in use: bind
Error [localhost-startStop-1] - Address already in use: bind
[localhost-startStop-1] - Monitoring サービスを初期化できません : coldfusion.server.ServiceException: Address already in use: bind
このエラーが発生したときは、もう一度、エラーが発生したバージョンのColdFusionサービスを再起動して下さい。また、同時にサービスが起動しないように調整頂く(手動、もしくは、サービスの依存関係の設定)事をご検討下さい。
※別のポート番号が割り当てられた時は以下のような出力になります。
Information [localhost-startStop-1] - Monitoring を開始しています...
Error [localhost-startStop-1] - Address already in use: JVM_Bind
Information [localhost-startStop-1] - ポート 56783 の監視サーバーを起動しています。
記事公開日:2014年05月02日
最終更新日:2017年02月13日
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.
Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.