オフラインやクローズド環境でColdFusion 2021 アップデートを適用する際の参考情報

※本ページは、メーカーサイトの情報を部分的に抜粋して紹介していますが、参考情報としてのご紹介であり、内容の正確さや最新さ、推奨を保証するものではありません。また、本ページの内容とオリジナルの英文ページとの間に齟齬や矛盾があった場合(英文ページで情報が追加・変更された場合も含む)には、オリジナルの英文ページの情報を優先して下さい。

ColdFusion 2021 の Update は、これまでのバージョンと違い、コア(従来のUpdateのファイルに相当)とパッケージ(機能ごとにまとめられたもの)に分けられています。それにより、従来は、オフラインやクローズド環境でColdFusion のUpdateを適用する際は、対象のUpdateのファイル(hotfix-0xx-xxxxxx.jar)を別の環境でダウンロードし、そのファイルを使用して手動でUpdateを適用すれば良かったのですが、ColdFusion 2021では、各種パッケージのファイルも別の環境でダウンロードが必要となりました。

そのことを考慮すると、プロキシ設定や一時的にオンラインに接続可能な環境であれば、必要な設定を行いオンラインでつながる状態で、通常の方法にてUpdateをした方が、この記事の内容を行う必要もなくなるので最適な方法となります。そのため、プロキシ設定や一時的にオンラインに接続した上で、Updateを実施頂くことを推奨します。

▽ UpdateのProxy設定は、「パッケージマネージャー > 設定」の画面にあります

 

オフラインやクローズド環境でColdFusion のUpdateを適用する方法については、下記のオンラインマニュアルにも記載がありますが、全般的な手順を紹介しているページがないため、参考情報として次に紹介します。記事を作成した2021年3月29日時点の情報となりますため、以後のUpdateなどでは、手順等が異なったり、記事の内容通りに動作しなくなることも考えられますので、参考情報として、ご参考いただければと思います。
https://helpx.adobe.com/jp/coldfusion/using/coldfusion-package-manager.html
(「ローカルリポジトリの設定」)

 


 

Updateを行う前に準備しておくもの
  1. インターネットに接続が可能なPC(Windows 10 等)
  2. ダウンロードしたUpdateファイルやパッケージファイルを、オフライン/クローズド環境のColdFusionサーバーに配置する手段
    • ネットワーク、USBメモリ、他
  3. 軽量インストーラー(zip版)のColdFusion 2021
    • 軽量インストーラー(zip版)のColdFusion 2021は、下記のいずれから入手が可能です
      1. 無料体験版サイトより『Windows | English | 147.24MB』を選択
        https://www.adobe.com/jp/products/coldfusion/download-trial/try.html
        • ダウンロードにはAdobe IDが必要です
        • 現在、ダウンロードサイトの問題により、Internet Explorerでしかファイルがダウンロードできません。サイトが修正されるまで、Internet Explorerを使用して上記サイトにアクセスください)
      2. Adobe Licensing Website (LWS)
        • ライセンス管理者であれば、LWSサイトより、軽量インストーラーをダウンロードすることができます
        • LWSサイトにログイン後、「ライセンス」-「ダウンロード」より、ColdFusion 2021のソフトウェアの製品名のリンクをクリックし、「Adobe ColdFusion 2021 for Windows 64 Bit Installer」ダウンロードファイルのサイズ: 154391835 バイト (147  MB)をダウンロードしてください。

 


まず、インターネット接続が可能なPCで以下の作業を行います
  1. 軽量インストーラー(zip版)のColdFusion 2021を解凍して任意の場所に配置してください
    • ColdFusion_2021_WWEJ_win64.zipを解凍すると、ColdFusion2021.zipが出てきますので、これも解凍します。
    • 解凍された「ColdFusion」フォルダを任意の場所に置きます(インストール作業は必要ありません)。
      • ここでは、例として、Cドライブの直下に配置します(C:\ColdFusion)
  2. コマンドプロンプトを管理者権限で開き、配置した「ColdFusion」フォルダ内のcfusion/binフォルダに移動します
    • コマンド例
      • cd C:\ColdFusion\cfusion\bin
  3. cfpm.batを実行します
    • コマンド例
      • cfpm.bat
  4. downloadrepo コマンドを実行して、ライブラリを任意の場所にダウンロードします
    • ここでは、例として、c:\temp内にpackagerepoというフォルダ名でダウンロードします
      • downloadrepo C:\temp\packagerepo
        • 社内プロキシ環境下など、プロキシ設定を追加しないとインターネットアクセスが行えない環境で実行する場合、事前にプロキシ設定を neo_updates.xml に追加しておく必要があります
          • テキストエディタ(メモ帳)で下記のファイルを開いてください。
            [cf_root]\cfusion\lib\neo_updates.xml(例 C:\ColdFusion\lib\neo_updates.xml)
            ファイル内の以下の項目に手動でProxy設定を追加してください
            <proxy>
            <hostname>プロキシホストのURLを追加</hostname>
            <port>プロキシのポート番号を追加</port>
            <username>プロキシへの接続ユーザーを追加</username>
            <password>接続ユーザーのパスワードを追加</password>
            </proxy>
  5. C:\temp\フォルダに packagerepoフォルダが作成され、パッケージのダウンロードが始まります。パッケージのダウンロードがすべて終わるまでしばらく待ちます
    • Update1 の時点では約344MBのパッケージファイルをダウンロードします

       
  6. 続いて、コアファイル(Update本体)のファイルをダウンロードします。以下のサイトから、最新のUpdateファイルをダウンロードします
    • https://helpx.adobe.com/coldfusion/kb/coldfusion-2021-updates.html
      • 日本語サイトも用意されていますが、英語サイトよりも更新に日数がかかる場合がありますので、英語サイトからのダウンロードをお勧めします

         
      • Update 1では、hotfix-001-325996.jarというファイル名でした(Internet Explorerでダウンロードすると、拡張子がzipに変換されます。ダウンロード後、ファイルの拡張子を zip から jar に変更してください)
  7. ダウンロードしたパッケージ(packagerepoフォルダ)と、コアファイル(hotfix-0XX-XXXXXX.jar)をオフライン/クローズドのColdFusion 2021が動いているサーバーにコピーしてください

ここからColdFusion 2021がインストールされているサーバーの操作となります

ここでは、例として、ColdFusion 2021 GUIインストーラーを使って、C:\ColdFusion2021にインストールしたことを例にして解説していきます

  1. インターネットに接続が可能なPCからコピーした「パッケージ(packagerepoフォルダ)」と「コアファイル(hotfix-0XX-XXXXXX.jar)」を下記の場所に配置します
    • 「パッケージ(packagerepoフォルダ)」は任意の場所に置きます
      • ここでは、例として、Dドライブの直下(D:\packagerepo)に置きます
    • 「コアファイル(hotfix-0XX-XXXXXX.jar)」
      • [cf_root]/cfusion/hf-updates フォルダ内に置きます。(C:\ColdFusion2021\cfusion\hf-updates)
        • 始めてのUpdateの際は、手動で hf-updates フォルダを作成してください
  2. Updateを実行する前に一つ設定を変更します
    • 先にUpdateを実行した場合は、Update適用後にAdministratorに接続できなくなる場合があります。その場合の対応方法は、このページ下部の「その他のケース①」に進んでください
  3. ColdFusion Administratorにログインします
  4. 「パッケージマネージャー > 設定」画面に移動します
  5. 『パッケージサイト』のサイト URL を以下のように「パッケージ(packagerepoフォルダ)」内のbundlesdependency.jsonファイルに対するローカルパスに変更します
    • D:\packagerepo\bundlesdependency.json
      • 本来、ここはURLを指定する項目ですが、Update1適用後にColdFusionが起動しないトラブルが確認された(ページ下部の「その他のケース②」)ため、今回は回避のため、ローカルパスで指定しています
        • 今後のUpdateではこの方法ではうまくいかない可能性もあります。あくまで現在の一時的な回避方法として参考にしてください。
  6. [変更を送信]ボタンを押して変更を反映します。「サーバーの更新に成功しました」が表示されることを確認してください
    • 「パッケージマネージャー > パッケージ」画面に移動すると、『インストール済みのパッケージ』の項目に Updateを示す数字やアイコンが表示されますが、パッケージはUpdateを適用した後に自動で更新されますので、ここでは何も操作しません。次のステップに進んでください
  7. Updateを適用する準備が終わりました。続いて Update を手動でインストールします
    • 手動でUpdateを適用する方法は、長くなってしまうので別の記事で紹介しています。
      https://cfassociates.samuraiz.co.jp/index.cfm/faq/cftech/cfupd-manually/
      • ColdFusion 2021も上記の手順で適用が可能ですが、インストール後にサービス起動ではなくコマンドで起動されるため、Updateの適用が完了した後は、一旦、ColdFusion 2021を下記の方法で止めてから、改めてサービスで起動し直してください
        • 【参考手順】
          a. コマンドプロンプトを管理者権限で開きます
          b.[cf_root]/cfusion/bin に移動します
          c.cfstop.bat を実行すると、Stopping the server ...と表示されますので、
          しばらく待ち、再びコマンドが入力可能状態になれば、停止は終了です
          d.サービス一覧から「ColdFusion 2021 Application Server」サービスを起動します
  8. 手動でUpdateをインストールした後、パッケージも所定のパスからダウンロード・更新されます。再びColdFusion Administratorに再ログインし、「パッケージマネージャー > パッケージ」画面に遷移して、『コアサーバー』『インストール済みのパッケージ』ともにUpdateが適用されたことを確認してください
    • 例えば、Update 1を適用すると、adminapi、Administratorなど24個のパッケージが更新されます
  9. ColdFusion をもう一度再起動して、正常に起動するかを確認してください
    • ColdFusion の再起動がエラーとなって起動できない場合は、下記の「その他のケース②」をご確認ください

 


その他のケース①

上記の手順9~12.で Updateを実行する前に、ColdFusion Administratorの「パッケージマネージャー」のパスを変更していますが、このパスを変更せずにUpdate 1を先に適用した場合、Update 1適用後に Administratorに接続できなくなったり、一部の機能が動作しなくなります


これは、Update 1の更新が行われた後、対象のパッケージの更新をするため、一旦対象のパッケージが削除されますが、その後、Update 1のパッケージをオフライン/クローズド環境ではダウンロードできないために、パッケージの追加が行えず、この状態となります。この状態になった際は、ColdFusion2021のcfpm.batを実行して、手動でパッケージを追加することが可能です。続いて、その方法を紹介します

  1. ColdFusion 2021を停止します。Windowsを例にすると、下記のサービスを停止しま
    • ColdFusion 2021 .NET Service
    • ColdFusion 2021 Add-onServices
    • ColdFusion 2021 Application Server
    • ColdFusion 2021 ODBC Agent
    • ColdFusion 2021 ODBC Server
  2. コマンドプロンプトを管理者権限で開き、[cf_root]/cfusion/binフォルダに移動します
    • コマンド例
      • cd D:\ColdFusion2021\cfusion\bin
  3. cfpm.batを実行します
    • コマンド例
      • cfpm.bat
  4. updaterepopath コマンドを実行します。以下のように配置したフォルダに対して、絶対パスを指定して記載します
    • コマンド例
      • updaterepopath D:\packagerepo\bundlesdependency.json
        • 環境によって、updaterepopathコマンドが実行できない(コマンドが認識されない)場合があるようです。このコマンドが実行できない場合は、テキストエディタ(メモ帳)等にて、[cf_root]\cfusion\lib\neo_updates.xmlファイルを開き、以下のエントリを手動で変更してください
          <packagesurl>https://www.adobe.com/go/coldfusion-packages</packagesurl>
             ↓
          <packagesurl>D:\packagerepo\bundlesdependency.json</packagesurl>
  5. cfpm.batはそのままにして、a.で停止したColdFusion 2021のサービスを起動します
  6. cfpm.batに戻り、下記のコマンドを実行します。
    • install administrator
      • 以下のように出力されたら、正しくadministratorが追加されています

        次のパッケージがインストールされます : administrator:2021.0.01.325996
        パッケージ administrator-2021.0.01.325996.zip をダウンロードしています
        パッケージ administrator-2021.0.01.325996.jar をダウンロードしています
        administrator (2021.0.01.325996) パッケージとその依存関係が正常にダウンロードされました。
        administrator パッケージがサーバーにインストールされました

      • 「パッケージリポジトリ d:\packagerepo\bundlesdependency.json にアクセスできません。C:\ColdFusion2021\bundles ディレクトリ にあるローカルで使用可能なパッケージのみロードできます。」と表示された場合は、指定したパスのbundlesdependency.jsonファイルへのアクセスに失敗しています。手順d.のパスの指定をもう一度見直してください
  7. 残りのパッケージも同様にインストールします。Update 1では、下記をコピー&ペーストして貼り付けると、順にパッケージのインストールが実行されます
    install awslambda
    install awss3
    install awss3legacy
    install axis
    install azureservicebus
    install caching
    install chart
    install document
    install htmltopdf
    install orm
    install ormsearch
    install pdf
    install pmtagent
    install presentation
    install print
    install redissessionstorage
    install report
    install saml
    install scheduler
    install sharepoint
    install spreadsheet
    install websocket
    install zip
    • cfpm には install all や update all コマンドも用意されていますが、現時点でこれらはコマンド実行時に adobeサイトに接続してパッケージを取りに行く動作となるため、オフライン/クローズドの環境ではこれらコマンドを実行してもエラーとなり、正しく動作しません。そのため、個々に該当するパッケージをinstallしてください。
    • install administratorを実行すると、ColdFusion Administratorにログインできるようになりますので、install administratorのみコマンドから実行して残りのパッケージを Administratorのパッケージマネージャから追加することもできます(上記と同様、現時点では[すべてをインストール」はオフライン/クローズドの環境では実行できません)
  8. ColdFusion Administratorにログインできるかを確認してください。ログインができましたら、パッケージマネージャーの画面や、プログラムの動作をご確認ください。
  9. ColdFusion 2021 Application Serverサービスを再起動して、サービスが正常に起動するかを確認してください。

その他のケース②

最初に紹介したオンラインマニュアルの記載では、「パッケージ(packagerepoフォルダ)」をリポジトリーをダウンロードして Web サーバー上でホストしますと書かれています。そこで、「パッケージ(packagerepoフォルダ)」を ColdFusion 2021の内部WebサーバーのWebルート内に配置し、ColdFusion Administratorの「パッケージマネージャー > 設定」の『パッケージサイト』の URL に http://127.0.0.1:8500/packagerepo/bundlesdependency.json と指定したところ、パッケージは問題なくインストールを行えたものの、その後のColdFusionの再起動時に起動できなくなる問題が発生しました。

このエラーが発生した時、起動時に必要なパッケージをColdFusion内に読み込む処理で、応答が固まっていることを確認しました。

cfpm-audit.log
...
"Information","pool-13-thread-1","03/29/21","18:41:49","","Installing the package : C:/ColdFusion2021/bundles/repo/SparseBitSet-1.2.jar"
"Information","pool-13-thread-1","03/29/21","18:41:49","","Installing the package : C:/ColdFusion2021/bundles/repo/poi-4.1.2.jar"
"Information","main","03/29/21","18:41:49","","Installing the package : C:/ColdFusion2021/bundles/spreadsheet-2021.0.01.325996.jar"
"Information","main","03/29/21","18:41:49","","Deploying bundle : axis"

調査をしたところ、Axisパッケージ(Webサービス)やSharepoint(レガシーのSharepoint機能内でAxisを使用)をインストールしていると、起動時に『パッケージサイト』の URL にアクセスを行っていることを確認しました。つまり ColdFusion サービスの起動途中(内部のWebサーバーも起動途中)に、ColdFusion内部Webサーバーにアクセスしているために、応答待ちでフリーズしていたことになります。

回避として、今回はローカルパスを指定する方法をご紹介しましたが、今後、ローカルパスの指定が行えなくなった場合は、そのサーバー内の IIS や Apache のWebルートに「パッケージ(packagerepoフォルダ)」を配置して、そこにアクセスするなどの対応が必要となる模様です。

その際は、Updateを適用する時だけWebルート内に「パッケージ(packagerepoフォルダ)」を配置するか、Updateを適用する時だけ仮想ディレクトリ(またはエイリアス)を設定するかなどを行うことが良いかと思われます。
この場合、次回起動時にAxisパッケージが『パッケージサイト』のURLにアクセスしてもエラーが発生することになりますが、エラーになる以外には(パッケージは更新されているため)問題が無い模様ですので、Updateの時だけIIS/Apacheに「パッケージ」を読み込める状態にして、それ以外は、リクエストエラーが発生する状況にするというのも有効である模様です(ただしすべての環境でテストをしたわけではないため、現時点での仮定となります)

 


記事公開日:2021年03月29日
最終更新日:2021年04月06日


x

Sample Modal Window

This is just a sample…

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.