アプリ接続が失敗するのはなぜですか?

アプリケーションは、データベースなどの別のサービスに接続します。 アプリが実行されると、接続が予期せずに終了し、以下の例のようなエラーを受け取ります。

[IBM][CLI Driver] SQL30081N  A communication error has been detected. Communication protocol being used: "SSL".

デフォルトでは、アプリは 5 分後にタイムアウトになります。 この時間内に接続から更新を受信しない場合、アプリは接続を終了します。 詳しくは、 アプリケーションのデフォルトと制限 を参照してください。

この問題は、アプリケーションのタイムアウト値を変更することで解決できます。 アプリケーションが 10 分より長い接続時間を必要とする場合は、他のサービスへのハートビート接続を組み込むようにアプリケーションを構成します。これにより、接続がアクティブのままになります。

また、 Code Engine ジョブを実行してから、その出力をアプリに返すこともできます。 ジョブについて詳しくは、 ジョブおよびジョブ実行の処理 を参照してください。

プロキシーの使用時にアプリケーション接続が失敗した場合のトラブルシューティングについて詳しくは、 プロキシーの使用時にアプリケーション接続が失敗するのはなぜですか? を参照してください。

コンソールからのアプリ・タイムアウト値の更新

コンソールからアプリを更新するには、以下のようにします。

  1. Code Engine コンソールを開きます。
  2. アプリが含まれているプロジェクトをクリックします。
  3. 作業対象のアプリケーションをクリックします。 このアクションにより、アプリケーション・ページが開きます。
  4. 「構成」 タブをクリックをします。 「リソース」&「スケーリング」 タブで、 「要求タイムアウト (秒)」 フィールドの値を変更します。 最大値は 600 秒 (10 分) です。
  5. 「デプロイ」 をクリックして変更を保存し、アプリ・リビジョンをデプロイします。

CLI を使用したアプリ・タイムアウト値の更新

CLI でアプリを更新するには、 --request-timeout オプションを新しいタイムアウト値に設定して app update コマンドを実行します。 最大値は 600 秒 (10 分) です。

アプリが更新されると、 Code Engine によってアプリのリビジョンが作成されます。 アプリのリビジョンが Ready 状態に達すると、すべてのトラフィックがこの新規インスタンスにルーティングされます。