アプリ接続が失敗するのはなぜですか?
アプリケーションは、データベースなどの別のサービスに接続します。 アプリが実行されると、接続が予期せずに終了し、以下の例のようなエラーを受け取ります。
[IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "SSL".
デフォルトでは、アプリは 5 分後にタイムアウトになります。 この時間内に接続から更新を受信しない場合、アプリは接続を終了します。 詳しくは、 アプリケーションのデフォルトと制限 を参照してください。
この問題は、アプリケーションのタイムアウト値を変更することで解決できます。 アプリケーションが 10 分より長い接続時間を必要とする場合は、他のサービスへのハートビート接続を組み込むようにアプリケーションを構成します。これにより、接続がアクティブのままになります。
また、 Code Engine ジョブを実行してから、その出力をアプリに返すこともできます。 ジョブについて詳しくは、 ジョブおよびジョブ実行の処理 を参照してください。
プロキシーの使用時にアプリケーション接続が失敗した場合のトラブルシューティングについて詳しくは、 プロキシーの使用時にアプリケーション接続が失敗するのはなぜですか? を参照してください。
コンソールからのアプリ・タイムアウト値の更新
コンソールからアプリを更新するには、以下のようにします。
- Code Engine コンソールを開きます。
- アプリが含まれているプロジェクトをクリックします。
- 作業対象のアプリケーションをクリックします。 このアクションにより、アプリケーション・ページが開きます。
- 「構成」 タブをクリックをします。 「リソース」&「スケーリング」 タブで、 「要求タイムアウト (秒)」 フィールドの値を変更します。 最大値は 600 秒 (10 分) です。
- 「デプロイ」 をクリックして変更を保存し、アプリ・リビジョンをデプロイします。
CLI を使用したアプリ・タイムアウト値の更新
CLI でアプリを更新するには、 --request-timeout オプションを新しいタイムアウト値に設定して app update コマンドを実行します。 最大値は 600 秒 (10 分) です。
アプリが更新されると、 Code Engine によってアプリのリビジョンが作成されます。 アプリのリビジョンが Ready 状態に達すると、すべてのトラフィックがこの新規インスタンスにルーティングされます。