インストール後の「設定の移行ウィザード」でODBCを経由するデータソースが正しく移行されない

前のバージョンのColdFusionがインストールされている環境に新しいバージョンのColdFusionのインストールを行った際、インストール後の「設定ウィザード」の「設定の移行ウィザード」を利用して、前のバージョンで設定されている各種設定(データソースやカスタムタグ)を新しいバージョンのColdFusionに反映させることができます。

「設定の移行ウィザード」を使うことによって、ColdFusion Administratorの設定を一から設定し直す必要がなくなり、移行の作業の手間を減らすことができますが、ODBC接続を行っているデータソースについては、移行後の新しいバージョンでエラーが発生してそのままでは使用できない問題が確認されています。

開発元の情報や、ColdFusion  Bugbaseの情報から、この問題の原因はODBC接続の際に使用されている中継サーバー(SecureLink)のポート番号が新しいColdFusionで使用しているポート番号に正しく移行できていない、とのことでした。

 

 

この問題の対応については、新しくインストールしたColdFusionのバージョンの「ColdFusion ODBC Service」の『ポート番号』に合わせて、手動でODBC接続のデータソースの設定を変更する事をお試し下さい。

今回の作業はColdFusion Administrator のデータソースの設定では触ることができない内部値となりますので、データソースの設定が保存されている「neo-datasource.xmlファイル」をメモ帳やテキストエディタで開いて手動で値を変更します。

 

 

[作業内容]

  1. ColdFusionのサービスを停止します。
  2. エクスプローラーを開き、以下のフォルダに置かれているneo-datasource.xmlファイルをメモ帳やテキストエディタで開きます。
    1. ColdFusion 8, 9 のサーバー設定(単一のスタンドアロン構成)の場合
      • [cf_root]\lib 内
    2. ColdFusion 8, 9 のマルチサーバー設定(マルチインスタンス構成)の場合
      • [jrun_root]\JRun4\servers\coldfusion\cfusion-ear\cfusion-war\WEB-INF\cfusion\lib 内
    3. ColdFusion 10 の場合
      • [cf_root]\cfusion\lib 内
  3. ODBC接続を行っているデータソース(Microsoft Access ドライバ、ODBC Socket)を検索し、ポート番号を変更します。
    • 一行に書かれていますので、途中で改行を挟まないように注意してポート番号を変更下さい。
    • 事前にneo-datasource.xmlファイルをバックアップされておく事をお勧めします。
    • 変更例:
      • ​<var name="url"><string>jdbc:sequelink:msaccess://localhost:20000;serverDatasource=acfd600_lab;MaxPooledStatements=1000</string></var>

        <var name="url"><string>jdbc:sequelink:msaccess://localhost:20002;serverDatasource=acfd600_lab;MaxPooledStatements=1000</string></var>
      • <var name="PORT"><number>20000.0</number></var>

        <var name="PORT"><number>20002.0</number></var>
      • <var name="port"><number>20000.0</number></var>

        <var name="port"><number>20000.2</number></var>
      • <var name="_port"><number>20000.0</number></var>

        <var name="_port"><number>20000.2</number></var>
  4. ファイルを保存して、ColdFusionサービスを再起動します。

 

 

尚、「ColdFusion ODBC Service」の『ポート番号』は、こちらで確認した限りでは

  • ColdFusion 8 は 19998
  • ColdFusion 9 は 20000
  • ColdFusion 10 は 20002

ですが、もしも何らかの条件によってポート番号が上記と異なる場合は、どのポートを使用しているかを確認下さい。

[ポート番号の確認方法]

  1. エクスプローラーを開き、以下のフォルダに置かれているswandm.ini ファイルをメモ帳やテキストエディタで開きます。
    1. ColdFusion 8, 9 のサーバー設定(単一のスタンドアロン構成)の場合
      • [cf_root]\db\slserver54\cfg 内
    2. ColdFusion 8, 9 のマルチサーバー設定(マルチインスタンス構成)の場合
      • [jrun_root]\servers\coldfusion\cfusion-ear\cfusion-war\WEB-INF\cfusion\db\slserver54\cfg 内
    3. ColdFusion 10 の場合
      • [cf10_root]\cfusion\db\slserver54\cfg 内
  2. ファイル下部の[Service_1]([Service_0]ではありません)の項目を検索します。[Service_1]のServiceNameが「ColdFusion X ODBC Server」であることを確認し、ServiceConnectInfoのポート番号を確認します。下記の例では「tcp://LOCALHOST.20002」ですので、使用ポートは 20002となります。
    • [Service_0]
      Type=2
      ServiceHost=LOCALHOST
      ServiceType=0
      ServiceIdentification=SL5_Agent
      ServiceDescription=[SequeLink 5.4] Agent service
      ServiceDebugLogPath=C:\ColdFusion10\cfusion\db\slserver54\logging
      ServiceDebugLogLevel=3
      ServiceEventTraceSize=1000000
      ServiceAdminAuthMethods=1
      ServiceAdminAuthMethods0=integrated_nt
      ServiceMinThreads=8
      ServiceMaxThreads=64
      ServiceExecPath=C:\ColdFusion10\cfusion\db\slserver54\bin\swagent.exe
      ServiceEvQShmMonitorSize=32000
      ServiceMessageFile=C:\ColdFusion10\cfusion\db\slserver54\bin\swagentmsg.dll
      ServiceEventTraceLocation=C:\ColdFusion10\cfusion\db\slserver54\tracing
      ServiceAdministrator=1
      ServiceAdministrator0=authenticated
      ServiceRegisterTCPPort=1
      ServiceName=ColdFusion 10 ODBC Agent
      ServiceConnectInfo=tcp://LOCALHOST.20001
      ;
      [Service_1]
      Type=2
      ServiceCodePage=Default
      ServiceHost=LOCALHOST
      ServiceType=1
      ServiceIdentification=SL5_Socket
      ServiceDescription=[SequeLink 5.4] Socket service (enhanced code page support)
      ServiceDebugLogPath=C:\ColdFusion10\cfusion\db\slserver54\logging
      ServiceDebugLogLevel=3
      ServiceEventTraceSize=1000000
      ServiceAuthMethods=1
      ServiceAuthMethods0=Anonymous
      ServiceMinThreads=8
      ServiceMaxThreads=64
      ServiceExecPath=C:\ColdFusion10\cfusion\db\slserver54\bin\swstrtr.exe
      ServiceEvQShmMonitorSize=32000
      ServiceMessageFile=C:\ColdFusion10\cfusion\db\slserver54\bin\swsocmsg.dll
      ServiceEventTraceLocation=C:\ColdFusion10\cfusion\db\slserver54\tracing
      ServiceUser=1
      ServiceUser0=everyone
      ServiceExecPath2=C:\ColdFusion10\cfusion\db\slserver54\bin\swsoc.exe
      ServiceName=ColdFusion 10 ODBC Server
      ServiceConnectInfo=tcp://LOCALHOST.20002
      ;
 
 



記事公開日:2013年04月03日
最終更新日:2013年04月03日

 


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.