【intra-mart スクリプト開発】DatabaseManagerは非推奨です。 | 株式会社アースリンク

Engineer Blog開発者ブログ

2017.7.28

【intra-mart スクリプト開発】DatabaseManagerは非推奨です。

 

 

 

(画像参照元:intra-mart FAQ)

 

 

みなさんこんにちは。自称エリート(見習い)です。

 

 

intra-mart開発をしているページの保守対応を行う中で、

DatabaseManagerオブジェクト(非推奨)を使用しサーバーエラーを発生させているページを見つけました。

 

今まで研修ではTenantDatabaseしか使用したことがなく、

また実業務に入って初めてSharedDatabaseを知った程度だったのですが、

DatabaseManagerを知り、さらに理解が複雑になってきてしまいました。

そこで今回はDatabaseManagerとその代替メソッドであるTenantDatabaseとSharedDatabaseについて整理するつもりで書いていきたいと思います。

 

 

まずこれらのオブジェクトを知る前にIAPで使用される3種類のデータソースの違いを理解する必要があります。

・システムデータベース – システムの保存を行うデータベース(アプリケーションの接続先には非推奨)

・テナントデータベース – テナント内で利用するデータを保存するデータベース

・シェアードデータベース – IAP外のデータを保存するデータベース

 

■DatabaseManager

DatabaseManagerは現在では、

DatabaseManager.execStoredFuncを除き代替メソッドが用意されています。

※ストアドファンクションが実行できるメソッドです。

 

DatabaseManagerは引数名に接続名を指定すると、

同じ接続名のシステムデータベース(現シェアードデータベース)<shared-data-source>へ接続されます。

(指定しない場合、現在ログインしているログイングループのテナントデータベース<tenant-data-source>へ接続されます。)

 

■TenantDatabase

TenantDatabaseはその名の通り、

WEB-INF/conf/data-source-mapping-config.xmlの

<tenant-data-source>で指定したテナントデータベースに接続を行うことができます。

 

 

■SharedDatabase

SharedDatabaseは、

WEB-INF/conf/data-source-mapping-config.xmlの

<shared-data-source>で指定したシェアードデータベースに接続を行うことができます。

TenantDatabaseと違いデータソースを引数に指定する必要があります。

 

 

DatabaseManagerが非推奨になったことにより、

それぞれのオブジェクトでテナントデータベースとシェアードデータベースの使い分けができるようになったみたいです。

また、現在ではよほど古いコードを使いまわす機会がない限りは使うことはないようです。

 

現在では使用していないとはいえ、

勉強のつもりで調べてみたら意外と面白いですね!

Contact
お問い合わせ

電話番号0120 - 889 - 236

受付時間:平日 9:00-18:00