カテゴリー別アーカイブ: 予期していない動作について

Curlにてエラーや例外が発生した際の対処方法を紹介いたします。
 

Google Chromeのロケーションバーに独立型アプレットのurlを指定しても起動しない

【ご質問】

Google Chromeのロケーションバーに独立型アプレットのurlを指定しましたが、ブラウザ画面に次のようなエラーメッセージが表示されて
起動できません。
curl://launch/http://~/start.dcurlに一致する情報は見つかりません

検索のヒント:

キーワードに誤字・脱字がないか確認します。
別のキーワードを試してみます。
もっと一般的なキーワードに変えてみます。

【回答】

Google Chromeブラウザの画面にこのメッセージが表示される場合は、指定したURLがGoole検索の対象の文字列と見なされて、
検索結果が表示されています。

このような場合は次の手順をお試しください。

Chromeのロケーションバーに再度、独立型アプレットのURLを貼り付けます。
この際にロケーションバーの下に表示されるドロップダウンの状態により
対応方法が異なります。

  • URLの先頭に虫眼鏡のアイコンが付いた行とファイルのアイコンが付いた行が表示された場合
    faq_chrome_curl_launch_link_01.jpg
    1. ファイルアイコンの行を選択
    2. 「外部プロトコル リクエスト」ダイアログが表示される
    3. 「このようなリンクの設定をすべて保存する」にチェックを入れ、「アプリケーションの起動」ボタンを押す
      faq_chrome_curl_launch_link_02.jpg
  • URLの先頭に虫眼鏡のアイコンが付いた行のみが表示された場合

    以前に「外部プロトコル リクエスト」ダイアログが表示された際に、「このようなリンクの設定をすべて保存する」に
    チェックを入れて「何もしない」ボタンを押しているとこの状態になります。

    この場合は、下記の手順でGoogle Chromeの設定を変更することで独立型アプレットを起動することができます。

    1. Google Chromeを一旦終了する
    2. Google Chromeの設定ファイル “Local State”をテキストエディタで開く
      ※設定ファイルは下記にあります(Windowsの場合)
      <ユーザフォルダ(例:C:\Users\<ユーザ名>)>\AppData\Local\Google\Chrome\User Data\Local State
    3. Local Stateファイルの中から文字列”curl”を検索
    4. 文字列「”curl”:true, 」のtrueをfalseに書き換えてファイルを上書き保存
    5. Google Chromeを起動し、ロケーションバーに独立型アプレットのUrlを入力する

以上の手順で独立型アプレットが起動します。
Chromeを一度終了して再起動した後は、”curl://”まで入力するとアイコンがファイルアイコンに変わるようになり、上記手順は不要になります。

DELL社製PCでCurlのアプレットから印刷を行うとフリーズしてアプリケーションが動作を停止します。

【ご質問】 DELL社製PCでCurlのアプレットから印刷を行うとフリーズしてアプリケーションが動作を停止します。

【回答】
「Dell Backup and Recovery」などのDELL社製ユーティリティソフトウェアがプリインストールされている場合、
Curlのアプレットから印刷を行った際に印刷ダイアログが表示されずにアプリケーションが動作を停止するという
報告事例がございます。

Curl Pro/IDEライセンスが有効化出来ない

【ご質問】
Curl Pro/IDEライセンスの有効化を行おうとしたところ、以下の画像の様に
「無効なライセンスコード」エラーが発生します。
(ライセンスコードが間違っていないことは確認済みです。)
pro-license-error1.png

【回答】
上記メッセージはCurlコントロールパネルの「ライセンス」タブにCurl Pro/IDEライセンスを
入力した際に表示されるものです。

Curl Pro/IDEライセンスはCurl IDE又はCDEから有効化する必要があります。
Curl IDEからライセンスを有効化する際の手順は以下になります。
 1.Curl IDE を起動
 2.メニューより「ヘルプ」 – 「Curl Pro/IDE ライセンスの購入」を選択
 3.ダイアログ内の「ライセンスのアクティベート」ボタンを押下
 4.スタンドアロンライセンスの「ライセンスキー」にライセンスを入力して「OK」ボタンを押下

ライセンス有効化手順に関してはこちらもご参照ください。

参考情報:
誤ったライセンスコードを使用してCurl IDEからライセンス有効化を行った際には
以下の様なメッセージが表示されます。
pro-license-error2.png

「Could not contact ‘Surge.exe’」というエラーについて

【ご質問】
Curlアプリケーションを起動しようとしたところ、
「Could not contact ‘Surge.exe’」
というエラーが発生して起動出来ません。

この現象の原因と対処法を教えて頂けますでしょうか?

【回答】
「Could not contact ‘Surge.exe’」というエラーが発生する要因としては
過去の事例からは以下のことが考えられます。

1.インストールに失敗している
なんらかの原因でインストールに失敗している可能性があります。
例.administrator以外の権限でインストールを行った。
→Curlを一度アンインストールした後、再度インストールを行うことで
  現象が解消することがあります。
  アンインストールが正常に実行できない場合は以下のページを参考に
  手動アンインストールを実行してください。
  http://developers.curlap.com/faq/50-faq-not-expectation/790-manual-uninstall-winxp.html
  http://developers.curlap.com/faq/50-faq-not-expectation/789-manual-uninstall-win7.html

  その他インストール時の注意点に関しては、下記のページをご参照ください。
  http://www.curlap.com/download/rte/installation.html

2.セキュリティソフトの影響を受けている
ウイルス対策ソフト・パーソナルファイアーウォールなどのセキュリティソフトの
影響を受けている可能性があります。
例.セキュリティソフトがCurlを起動するために必要なファイルをロックしている。
→セキュリティソフトを無効化して現象が解消しないか確認することで切り分けできます。
  セキュリティソフトのログなどを確認することで結うような情報が得られる場合もあります。

3.古いバージョンのCurlを動かそうとしている場合
複数バージョンのCurlがインストールされている環境において、
明示的に古いバージョンのCurlを起動しようとすると上記エラーが発生する可能性があります。
→過去の事例では、一度手動アンインストールを行った後で再インストールを行うことで
  現象が改善しています。

4.(WindowsVista・7・8)UACの影響を受けている
WindowsOSのUAC(ユーザーアカウント制御)の影響を受けている可能性があります。
→UACを無効化して現象が解消しないか確認することで切り分けできます。

起動が遅い

【ご質問】

 起動が遅く、キャッシュファイル作成の処理に時間がかかっているようです。

【回答】

 クライアントのウイルスチェックソフトにより、
  OCURLファイルのチェックが異常に負荷がかかり、
  ウイルスチェックソフトに 記録があった事例があります。

キャッシュが毎回作成される

【ご質問】

 起動速度が遅く、調べてみると パッケージキャッシュが毎回作成されているようです。

【回答】

 ロードバランサの先に複数台のAPサーバが存在する状態で、
  Curlモジュールのタイムスタンプがずれている場合、
  アプレット起動時に接続先APサーバが変わると、
  キャッシュ再作成が発生するなどの事例があります。

手動アンインストール(WindowsXP)

手動アンインストールの方法(WindowsXP)

なんらかの理由で手動でアンインストールをせざるを得ない事象が発生した場合の手順を説明します。

手動アンインストール手順

●下記フォルダを削除して下さい。
(インストールドライブとしてはCドライブを想定しています)
 ・C:\Program Files\Curl Corporation フォルダ
 ・%USER_HOME%\Application Data\Curl Corporation フォルダ
 (%USER_HOME%は通常C:\Documents and Settings\[ユーザーID] になります。)
 ・%USER_HOME%\Local Settings\Application Data\Curl Corporation フォルダ
 
●下記レジストリキーを削除して下さい。
 ・マイ コンピュータ\HKEY_LOCAL_MACHINE\SOFTWARE\Curl Corporation
 ・マイ コンピュータ\HKEY_LOCAL_MACHINE\SOFTWARE\
        Microsoft\Windows\CurrentVersion\Uninstall\Curl RTE X.X.X
  (※「Curl RTE X.X.X」は、インストールされているCurlのバージョンなどによって異なります。)

手動アンインストール(WindowsVista・7・8)

手動アンインストールの方法(WindowsVista・7・8)

なんらかの理由で手動でアンインストールをせざるを得ない事象が発生した場合の手順を説明します。

手動アンインストール手順

●下記フォルダを削除して下さい。
(インストールドライブとしてはCドライブを想定しています)
 ・C:\Program Files\Curl Corporation フォルダ
 ・%USER_HOME%\AppData\Local\Curl Corporation フォルダ
  (通常はC:\Users\[ユーザーID]\AppData\Local\Curl Corporation)
 ・%USER_HOME%\AppData\Roaming\Curl Corporation フォルダ
  (通常はC:\Users\[ユーザーID]\AppData\Roaming\Curl Corporation)

●下記レジストリキーを削除して下さい。
 ・コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Curl Corporation
 ・コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE
           \Microsoft\Windows\CurrentVersion\Uninstall\CurlRTE X.X.X
  (※「Curl RTE X.X.X」は、インストールされているCurlのバージョンなどによって異なります。)

通信関連のトラブルシューティング

【ご質問】

パケットキャプチャにてトラブルシューティングするコツを教えてください。

【回答】

 Fiddlerなどのパケットキャプチャツールを用いて通信関連のトラブルシューティングする際に確認するポイントです。

・通信先ホスト名
・リクエストの種類(HEADリクエスト/GETリクエストなど)
・Webサーバが返却するHTTPステータスコード
・パケットの中身
・通信時間

通信内容に不正がある際にツールにてパケットの中身を確認する場合がありますが、
ツールそのものがパケット(通信内容)を画面に表示する際に制御(加工)していることもありますのでご注意ください。

 

CurlRTEインストーラ実行時にプロセスが残る

【ご質問】

Curl RTE のインストールを実施すると、正常に終了するように見えるが、Windowsタスクマネージャには、curl-rte-X.X.X-ja.exeが残ったままになっている。

【回答】

クライアントの監視ソフトの監視対象にCurlが使用するプロセスが含まれており
それが原因でタスクマネージャからsurge-do.exeが消えないことがございます。

無効または認識されない応答をサーバーが返しました (12152)

【ご質問】

以下のエラーが発生しております。

Error: HttpException: https://servername.com/start.dcurl の送信に失敗しました
:無効または認識されない応答をサーバーが返しました (12152)。

 

【回答】

このエラーはCurlが発生させているものではなく、
Windowsの通信モジュールが検知・発生させそれを
Curlが表示させたものになります。

このエラーは
 ERROR_HTTP_INVALID_SERVER_RESPONSE
 The server response could not be parsed.
と定義されているものです。
http://support.microsoft.com/kb/193625/ja

MS社のホームページにて発生原因について記載がございますので
ご確認頂きますようお願い致します。
http://support.microsoft.com/kb/187650/ja

 

BadEnumExceptionについて

【ご質問】

https://xxx.xxx.xxx.xxx/xxxxxx/をブラウザ上から開こうとした際に、
ログイン画面が表示されず、「予期していないアプレット例外」が発生します。

[エラー詳細]
BadEnumException: xxxx の要素に値 xxx がありません。

[エラーポップアップ]
次で説明されている予期されていない例外が、アプレットからスローされます。

その例外がスローされる(または例外が無視される)のを許可するには、
「継続」をクリックしてください。または、「アプレットの終了」をクリックし、アプレットを終了してください。
BadEnumException: xxxx の要素に値 xxx がありません。

【回答】
BadEnumExceptionの詳細に関しては、APIリファレンスの
[CURL.RUNTIME.COMPILER-SUPPORT]-[BadEnumException]
の項をご参照ください。
「列挙値の構築での実行時エラーを示します。」
と記述しております。

原因の1つとして、
列挙型として定義した要素以外の値を参照した場合に、
BadEnumExceptionが発生します。

例を示します。

{define-enum Bear
    polar = “endangered”,
    grizzly = “threatened”,
    panda,
    pooh = “abundant”
}

{value {Bear value=“aaa”}.name}

“aaa”は列挙型Bearの要素として定義されていないため
このコードを実行するとBadEnumExceptionが発生します。
 
  

列挙型として定義した要素を使用することで、
本現象を回避することが可能です。

デバッグができない

◆ご質問◆
IDEにてデバッグを行うことができません。
どのような場合にデバッグが行えないのでしょうか?

◆回答◆
以下の場合、デバッグを行うことが出来ませんので、ご注意ください。

 ・デバッグ対象ソースコードのバージョンと同じバージョンのIDEがインストールされていない場合
 ・Curlコントロールパネルのデバッガタブにロケーションが追加されていない場合
 ・マップするURLのパスとソースコードのディレクトリが一致していない場合
 ・サーバに配置されているソースコードがpcurl化されている場合

Power User権限でのRTEインストール

【ご質問】
Power Userでインストールしようとしたところ失敗したため、
Administraorでインストールしたところ成功しました。
但しその後Power UserでCurlアプリケーションを開始しようとしたところ
エラーが表示されてしまいます。
一度アンインストールを行い再インストールをしても状況は変わりません。
他のPCで最初からAdmin権限でインストールしたところ、
どのユーザでもCurlアプリケーションを実行できるようです。
原因として何が考えられるか、教えていただけますか。

【回答】
前提として、お気づきかとは思いますが、
Curl RTEのインストールはAdministrator権限をもつユーザで行なわなければなりません。

状況としては以下のようになるかと思います。
PowerUserでのインストール

インストール失敗 - ①
Administratorでインストール

インストール成功 - ②
PowerUserでCurlアプリ起動(開始)

アプリ起動失敗

上記①のインストール失敗後に、アンインストールは行ないましたでしょうか。
また、②で成功とありますが、これは本当に成功していたのでしょうか。
PowerUserで行なったインストール作業が影響してAdministratorで行なったインストール作業が
正常に行なわれていない可能性があります。
(②で成功とありますが、成功したように見えていただけかもしれません。)

“Administrator権限を持つユーザ”で一度、完全にCurl RTEをアンインストールして
再度インストールをお試し下さい。
なお、既にインストール/アンインストールを行なったとのことですがアンインストール自体も
正常に行なえていない可能性があります。
この場合、手動でアンインストールを行い、再度インストールを行なって頂けます様お願いいたします。

手動アンインストール方法(WindowsXPの場合)
 1. C:\Program Files\Curl Corporationディレクトリを削除
 2. %USER_HOME%(C:\Documents and Settings\userid)curl-client-data
   ディレクトリを削除
 3. %USER_HOME%\Application Data\Curl Corporationディレクトリを削除
 4. %USER_HOME%\Local Settings\Application Data\Curl Corporation
   ディレクトリを削除
 5. 次のレジストリキーを削除
   ①コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Curl Corporation
   ②コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\
     Microsoft\Windows\CurrentVersion\Uninstall\Curl RTE X.X.X
     (※X.X.Xはインストールされたバージョンで異なります)

一部の端末で部品が正しく参照できない

◆ご質問◆

 1.
 Curlコントロールパネルの「全般」タブ、
 「強制再同期設定」のラジオボタンを、
 「全てのアプレットの再同期を強制する。」を選択しております。
 resync-as-ofを使用しない場合、クライアントの強制再同期設定だけでは不完全とういことでしょうか?

 2.
 独立型アプレットで発生しているのですが、
 ブラウザを使用したresync-as-ofの指定がないアプレットでは発生報告はありません。
 ブラウザを使用した場合はブラウザの再同期設定に依存する可能性が あるということでしょうか?

◆回答◆

1. について
 「全てのアプレットの再同期を強制する。」を選択した場合は、
アクセスする全てのパッケージファイルにおいて、まず、
HEADリクエストでWebサーバ上のパッケージファイルの最終更新日時を
確認し、ローカルのパッケージキャッシュよりも新しければGETリクエストで
新しいパッケージファイルを取得します。
(そうでない場合はローカルのパッケージキャッシュを使います。)

ただ、これはクライアントのCurlの挙動であり、Curlより”外の”環境については
影響を及ぼすことは出来ません。
つまり、例えばWebサーバとの間にプロキシサーバが存在し、プロキシサーバに
もキャッシュがある場合、CurlがWebサーバから新しいパッケージファイルを
取得しようとしてもプロキシサーバが古いパッケージファイルを返してしまう事が
考えられます。これはCurlの設定では回避できません。プロキシサーバ内に存在する
古いキャッシュを削除したり、そのファイルのみキャッシュに残さないように設定しなければなりません。

また、ブラウザのキャッシュの存在も考えられます。
CurlがWebサーバから新しいパッケージファイルを取得しようとしても
ブラウザのキャッシュから古いパッケージファイルが返されるということも考えられます。
この場合は、パッケージファイルをブラウザにキャッシュさせない様にWebサーバの設定を行わなければなりません。

実際にどこのデータを取得しているのかを追及するためには、
パケットのログを取得し、解析しなければ断定することは出来ません。

2. について
ブラウザを使用したアプレットでも、独立型アプレットでも使用する
通信モジュール(WinInet.dll)は同じであるため、同様の現象が
発生する可能性はあります。
独立型アプレットだけにこのような問題が発生するわけではありません。

オフライン実行(OCC)時にエラーが発生する

【ご質問】
Curlプログラムをオフライン実行(OCC)できるように設定しようとしておりま
すが、エラーとなってしまいます。

 【構成】
 Directry_1
 │ File_1.scurl (←マニュフェストには含まれていません)
 │
 └─Directry_2
     manifest.mcurl
     StartUpFile_1.curl
     File_2.scurl
     curl-archive.car
     curl-timestamp.txt

 【起動ファイル】
 StartUpFile_1.curl
 《指定方法》
 curl://occ/http://・・・/StartUpFile_1.curl

 【起動ファイル内容】
 {curl 7.0 applet}
 {curl-file-attributes character-encoding = “shift-jis”} {applet manifest = manifest.mcurl”,
     curl-root = “.”
 }
 {do {occ-install-or-update occ-root-installer}}

 {include “../File_1.scurl”}

    ↓↓↓
 【エラー内容】
 《StartUpFile_1.curl の時》
 「<エラー> – このアプレットをロード中にエラーが発生しました。
 SyntaxError: file:///c:/・・・
 /Directry_1/Directry_2/StartUpFile_1.curl:29[1]: ‘MissingFileException: モー
 ド ‘r’ でファイル ‘c:\・・・\Directry_1\File_1.scurl’ を開くことに失敗しまし
 た: 指定されたファイルが見つかりません。 (2)’ が原因で、’../File_1.scurl’を
 読み取ることができません」

【回答】
OCCはクライアントにダウンロードさたファイルを使うことになりますが、
今回の現象は、クライアントにFile_1.scurlファイルが存在しないために
発生しているものでございます。

OCCのデプロイの仕様として、外部フォルダ(親フォルダや兄弟フォルダ)を
対象にすることができません。
File_1.scurlは外部フォルダ上にございますので、対象に含めることができません。
そのため、クライアントにも配置されず、今回の現象が発生しております。

同じ階層にある、もしくはサブフォルダであればデプロイ対象となりますので、
回避する方法として、
 File_1.scurlファイルをDirectry2フォルダに配置する、もしくは
 Directry2フォルダ以下にサブフォルダDirectry1を配置し、
 該当のファイルをマニフェストファイルに追加する必要がございます。

尚、File_1.scurlファイルがどうしても親フォルダに存在している
必要があるのであれば、
クライアント端末にFile_1.scurlファイルを配置していただければ稼動致しますので
こちらも併せてご検討頂ければと思います。
 

SCC設定中にIDEがフリーズする現象

【ご質問】
SCC設定中にIDEがフリーズする現象が発生します。

 [フリーズするタイミング]
 『SCC』-『設定』-『ソースコード管理タブ』
 1. 『ソースコード管理を有効にする』をチェック
 2. 『プロバイダー』を”Microsoft Visual SourceSafe”へ選択
 3. OKボタンを押下

【回答】
2、3実行時の Curl IDEの挙動について説明します。

・2のタイミングで押下不可となる現象について
 『プロバイダー』を選択したタイミングで、
 Curlより Microsoft Visual SourceSafe(以下、VSS)に通信を試みます。
 この通信の際、VSSより応答があった場合に
 Curlにてボタンを押下可能になるよう制御しております。
 (応答がない場合は押下可能にしません)

 押下不可能となるとのことですので、VSSより応答がなかったことが
 原因であると考えられます。

・3のタイミングでフリーズする現象について
 OKボタン押下により、Curlより、VSSに対し通信を行い処理をパスします。
 Curlとしてはその段階でVSSに処理が移管されるため、
 VSS側の制御となりCurlは処理が完了するのを待ちます。

今回の事象に関しては、Curlに閉じた問題ではなく、
複数のツールが関連している複雑な問題です。

VSS側の情報として以下のような情報もありますので参考にして下さい。
 http://support.microsoft.com/kb/932874/ja

シャットダウン時のエラーについて

◆ご質問◆

アプレットのロードが完了する前にブラウザを閉じると”一時停止中”のまま
フリーズする場合があります。

 

◆回答◆

“終了中”とはCurlを終了しようとしている状態のことを指します。
通常は一瞬しか表示されません。
推測ではありますが、今回のように表示時間が長い場合は、
「OSがCurl終了プロセスをロックしている」ことや
「CPU使用率が異常に高いためCurl終了処理に時間を要している」ことが考えられます。

アプレットのロード完了の確認についてですが、
確認はアプレットマネージャーで行うことができます。
ロードが完了すると状態欄が”アクティブ”に変化しますので、
状態欄に表示される内容で判断をしてください。

OpaqueSecurityExceptionというセキュリティーエラー

【ご質問】
OpaqueSecurityExceptionというセキュリティーエラーが出ます。なぜでしょうか?
 
【回答】    
特権が設定されていない場合に、アプレットがWebサイトへアクセスすることを許可する
curl-access.txtを配置する必要があります。一般公開のWebサイトの場合、curl-access.txtは次のようになります。

version: 2.0
allow-all:

作成したcurl-access.txtは、状況に応じて次のどちらかに置いて下さい。

①Webサイト上の全ファイルを同じアクセスルールの対象にする場合
Webサイトのルートのみに配置
(例 http://www.example.com/curl-access.txt
②ディレクトリによってアクセスルールを変えたい場合
Curlのアプレットがアクセスしうる全ディレクトリに配置

詳細は、Curl開発者ガイドの
[Webサーバーの構成]-[アプレットがWebサイトのファイルへアクセスする許可]
の項をご参照ください。

このアプレットをロード中にエラーが発生しました

【ご質問】
次のエラーが発生した場合、何が原因だと考えられますか?<エラー> – このアプレットをロード中にエラーが発生しました。SyntaxError:http://www.yourserver.com/start.curl:3[1]:既定のマニフェストをインポートできません:Error:¥’http://www.yourserver.com/start.curl’ アプレットはライセンスキーを取得できません。ZlibException:inflateの入力データが壊れています。
 
【回答】    
次の可能性が考えられます。
①ライセンスファイルの中身が壊れている可能性があります。
対処方法 : 新しいライセンスキーを申請してください。
②ライセンスファイルのリクエストに対してライセンスファイルが返ってきていません。
対処方法 : サーバ及びネットワークの設定を確認してください。
③サーバの設定でMIMEタイプなどで、「datファイルの場合はバイナリデータを書き換える」といった設定になっている可能性があります。
対処方法 : サーバの設定を確認してください。