RDBGetコンポーネントでMySQLを検索すると処理中にメモリ不足になります

MySQLのJDBCドライバーはデフォルトですべてのレコードをクライアント側に取得するため、メモリ不足になりやすい傾向があります。
バージョン4.6からはRDBGetコンポーネントでJDBCのsetFetchSizeに値をセットできるプロパティを実装し、RDB処理の高速化とメモリ使用量削減に対応しました。バージョン4.5.1以前のフローで作成したフローでも、サーバーをバージョン4.6にバージョンアップすることで再コンパイルなどすることなくこの機能が適用されます。
詳しくは、ドキュメント「ASTERIA WARP4.6の新機能」を参照してください。

また、バージョン4.5.1以前ではRDBコネクションの「URL」プロパティで次のように値を指定することができます。

(例)フェッチサイズを1000に指定する場合
jdbc:mysql://[ホスト名]:[ポート番号]/[データベース名]?useCursorFetch=true&defaultFetchSize=1000

《注意点》
・JDBCドライバーの機能は将来のバージョンで変更される可能性がありますので、詳しくはJDBCのドキュメントを参照してください。
・defaultFetchSizeに設定する値についてはパフォーマンスやメモリ使用状況などを確認しながらチューニングしてください。

上記の対応でもまだメモリ不足が発生する場合は、ドキュメント「フローサービスでのメモリ不足について」を参照し、メモリサイズやフローのチューニングを検討してください。
また、MySQL以外のDBで発生する場合は各DBのJDBCドライバーのドキュメントを参考にして設定してください。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
    キーワード:
  • フローサービス
  • RDB
  • コネクション
  • コンポーネント
  • JDBC
  • フェッチサイズ
  • MySQL
  • FetchSize
他にご質問がございましたら、リクエストを送信してください

このセクションの記事

他のキーワードで検索する