このページは?
IBM Db2 on Cloud は、Lite プランの場合、5 simultaneous connections
という制限があります。通常利用する場合は、特に気になることでもないのですが、Node-RED フローの作り方によっては、下のようなエラーが発生してしまうことがあります。
このエラーが 起こりにくく
する Tips です。
目標
[exceeded maximum limit of 5 connections] という風に怒られにくくする
知識材料
利用環境
検証する画面仕様
- データの検索・登録・更新 する Webページ
問題が起きるパターン
どうやら、フローに接続された dashDBノード
は、一回でも実行するとセッションを張りっぱなしにする模様。
下のようなフローの場合、
- 「検索時」に一番上の dashDBノード が実行され
- 「新規登録時」に真ん中の dashDB ノードが実行され
- 「更新時」に一番下の dashDB ノードが実行され
気がつくと、3つのセッションが常時接続状態になります。
このまま何も考えずに dashDBノード
を新しく増やしてフローに接続していくと
[exceeded maximum limit of 5 connections] というエラーが発生し、アプリケーションが思ったように動かなくなります。
また、IBM Cloud の DashDB Console からもアクセスできなくなります。
(当ページ上部のエラー画像)
現在の接続数確認
現在の IBM Db2 on Cloud への接続数は、画面左上の「ハンバーガーメニュー」から
「MONITOR」→「Connections」から確認できます
接続数を増やさない
下のフローのように、dashDB を操作するための API を自分で公開します。
「検索」「新規登録」「更新」の各処理は、[dashDB 処理 API]を呼び出すようにします。
dashDB ノード
の数は1つになるため、IBM Db2 on Cloud への接続数は 「1」になります。
「検索」「新規登録」「更新」の処理フローは、dashDBノード
から http Request ノード
に接続を切り替えるだけです。
ただし、セキュリティを考慮していないので、実際に使用する場合はなんらかの対策が必要かもしれません。