サービスとしてのクラウド メッセージングとハイブリッド統合を提供する Azure サービス。
こんにちは ******@cydas.com,
解像度を共有してくれてありがとうございます。
解決策:
まずは指数バックオフRetryで回避するようにして最終的には接続やクライアントを再利用するようにバッチプログラムの改修を実施するようにします。
cURL error 7: Failed to connect to xxxxxx.servicebus.windows.net port 443: Connection timed out (see
これは、PHPバッチプログラムA(メッセージを送信するもの)またはバッチプログラムB(メッセージを取得するもの)が、Azure Service Busのエンドポイントへの接続に断続的に失敗していることを指します。
- Azure Service Bus には、同時リクエストに対する制限や接続制限があります。
- バッチジョブが各メッセージごとに新しい接続を開き、接続を再利用しない場合、約20接続に達すると、スロットリングや一時的な接続の切断が発生する可能性があります。
バッチプログラムでは、メッセージごとに新しい接続を開くのではなく、接続やクライアントを再利用するようにしてください。Azure Service Bus を使用する場合は、単なる cURL 呼び出しではなく、接続プーリングをサポートする SDK を使用してください。
- 一時的なネットワークの不具合、ファイアウォールの制限、あるいはプロキシの制約により接続がタイムアウトすることがあります。また、ネットワーク経路が不安定で断続的な障害が発生している可能性もあります。
- バッチプログラムが多くの接続やCURLハンドルを適切に閉じたり再利用したりせずに開くと、ローカルシステムの一時ポートやソケットが枯渇する可能性があります。
- 時折、Azure サービス自体が一時的な問題を抱えたり、名前空間やサブスクリプションごとにクォータを適用したりすることがあります。
- タイムアウトなどの一時的な障害に対しては、指数バックオフを用いたリトライを実装します。
- ファイアウォール、プロキシ、またはVPNの設定が接続を制限したり遅延を引き起こしたりしていないことを確認します。
お役に立てれば幸いです!
「回答を承認」 をクリックし、はい を選択するのをお忘れなく。 これは他のコミュニティメンバーにも有益です。
その他のご質問がありましたら、「コメント」 にてお知らせください。喜んでお手伝いいたします。