新しいDb2 for i クライアント Mapepire

8月30日に、IBMは「Mapepire」というクラウド、コンテナ、OSS言語(Python、Node.js、Java)に対応したDb2 for i クライアントのTechnology Previewを発表しました。

Mapepireは「シンプルさとパフォーマンスを念頭に置いて構築された、クラウド対応の IBM i データベース アクセス レイヤー」とGitHubページに記載されています。詳しくはGitHubページのほか、下記を参照ください。

見慣れない単語ですが、Mapepireは「マイアー」? (‘mapəpɪə’ or ‘MAH-pup-ee’)と発音(動画で聞く)するらしく、ロゴは南アメリカに生息する毒マムシを表しています。


Mapepireは、一言でいうとUNIX ODBCおよびJDBCドライバーの代替です。GitHubでは下表のようにMapepireとJDBCおよびODBCを比較しています。

  JDBC ODBC Mapepire
必要なポートは1つだけ    
データは常に暗号化される    
システム出口点で管理可能
強化されたCCSIDサポート  
WatsonX.ai Jupyter Notebooksで実行    
軽量コンテナで実行  
複数のClient言語を直接サポート    


以下はざっとGitHubを眺めた個人的な感想です。

従来のDBドライバーより優れている点

  • Secure web socketsで実装しており、可搬性に優れている。
  • 動作が軽くレスポンスが高速。ODBCとのパフォーマンス比較はこちら(英文)
  • プラットフォームへの依存性が低く、クラウドでの利用やコンテナ化が容易。
  • クライアントにDBドライバー(ODBCのような)のインストールが不要。

懸念点

  • RPG(ILEを含む)からは利用できず、プランにも記載なし。
  • 現時点でTechnology Previewであり、本番業務に採用しにくい。
  • 通信を暗号化するため証明書管理が必要。自動的に自己署名証明書を生成する機能があるが、この検証は現在サポートされていない。


YouTubeの動画リスキリング資料でWebサービス・サーバーの簡易パフォーマンス調査をしたことがあります。

IBM i がサーバーの場合、TCP/IP経由で高密度のDBリクエストが発生すると、DBサーバー・ジョブであるQZDASOINITが大量に生成され、これが一定数に達するとリクエストをさばき切れなくなりました。Mapepireでこのような状況が改善される可能性があります。

RPGがネイティブでサポートされないのは残念(ILE-RPGからJavaメソッドを呼び出せば使えるかも)ですが、今後が楽しみです。