1. AsyncTaskService

基盤内部でタスクを非同期実行するためのサービスです。

インタフェース名

org.iplass.mtp.impl.async.AsyncTaskService

実装クラス名

org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService

ThreadingAsyncTaskServiceの設定

ThreadingAsyncTaskServiceを設定します。

設定項目
項目 説明

corePoolSize

int

非同期処理のためのスレッドプールのサイズ。 アイドル状態であってもプール内に維持されるスレッドの数です。デフォルト値は4です。

threadPoolType

String

スレッドプールのタイプ。 未指定の場合、threadPoolTypeは cached に設定され、maximumPoolSize以上のリクエストがあるとRejectedExecutionExceptionが発生します。

fixed

corePoolSizeで指定された固定数のスレッドを再利用するスレッドプールを使用します。

single

単一のワーカー・スレッドを使用します。

cached

maximumPoolSizeで指定された可変数のスレッドを再利用するスレッドプールを使用します。

maximumPoolSize

int

スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。

keepAliveTime

long

threadPoolTypeが cached で、スレッドの数がcorePoolSizeよりも多い場合に、余分なアイドル状態のスレッドが終了する前に新しいタスクを立ち上げるまでに待機する最大時間(ミリ秒)です。 デフォルト値は60000(1分)です。

useResourceHolder

boolean

ResourceHolderを使用するか。デフォルト値はtrueです。

設定例
<service>
    <interface>org.iplass.mtp.impl.async.AsyncTaskService</interface>
    <class>org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService</class>
    <property name="maximumPoolSize" value="256" />
</service

2. AsyncTaskServiceForHttpMessageChannel

クラスタ通信にHttpMessageChannelを利用して非同期実行を行うサービスです。 ClusterServiceでNode間のメッセージ送信を非同期実行するためのAsyncTaskServiceの定義です。

インタフェース名

org.iplass.mtp.impl.async.AsyncTaskService

実装クラス名

org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService

ThreadingAsyncTaskServiceの設定

ThreadingAsyncTaskServiceを設定します。

設定項目
項目 説明

corePoolSize

int

非同期処理のためのスレッドプールのサイズ。 アイドル状態であってもプール内に維持されるスレッドの数です。デフォルト値は4です。

threadPoolType

String

スレッドプールのタイプ。 未指定の場合、threadPoolTypeは cached に設定され、maximumPoolSize以上のリクエストがあるとRejectedExecutionExceptionが発生します。

fixed

corePoolSizeで指定された固定数のスレッドを再利用するスレッドプールを使用します。

single

単一のワーカー・スレッドを使用します。

cached

maximumPoolSizeで指定された可変数のスレッドを再利用するスレッドプールを使用します。

maximumPoolSize

int

スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。

keepAliveTime

long

threadPoolTypeが cached で、スレッドの数がcorePoolSizeよりも多い場合に、余分なアイドル状態のスレッドが終了する前に新しいタスクを立ち上げるまでに待機する最大時間(ミリ秒)です。 デフォルト値は60000(1分)です。

useResourceHolder

boolean

ResourceHolderを使用するか。デフォルト値はtrueです。

設定例
<service name="AsyncTaskServiceForHttpMessageChannel">

    <interface>org.iplass.mtp.impl.async.AsyncTaskService</interface>
    <class>org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService</class>

    <!--
        クラスタ通信にHttpMessageChannelを利用する場合の非同期送信のためのスレッドプールの設定
        corePoolSizeを、実際のサーバ数×2程度の値に設定
     -->
    <property name="corePoolSize" value="4" />
    <!--
        スレッドプールのタイプ。未指定の場合、threadPoolTypeは"cached"に設定され、
        maximumPoolSize以上のリクエストがあると、RejectedExecutionExceptionが発生してしまう。
     -->
    <property name="threadPoolType" value="fixed" />
</service>

3. AuditLoggingService

Entityに対する登録・更新・削除を操作ログとして出力するサービスです。

インタフェース名

org.iplass.mtp.impl.entity.auditlog.AuditLoggingService

実装クラス名

ロガーを利用した操作ログ出力
org.iplass.mtp.impl.entity.auditlog.LoggerAuditLoggingService
RDBとロガーを利用した操作ログ出力
org.iplass.mtp.impl.entity.auditlog.RdbAuditLoggingService

LoggerAuditLoggingServiceの設定

ロガーへの出力内容を設定します。

設定項目
項目 説明

logCompact

boolean

LongTextなど長すぎる文字列を指定文字数でカットするか。デフォルト値はfalseです。

logQuery

boolean

クエリをロガーに出力するか。デフォルト値はfalseです。

logSelectValueWithLabel

boolean

SelectValueをログに出力する時に、ラベルで出力するか。デフォルト値はfalseです。

logReferenceWithLabel

boolean

Referenceをログに出力する時に、nameで出力するか。falseの場合、oidを出力します。デフォルト値はfalseです。

textMaxLength

int

LongTextなど長すぎる文字列をカットする文字数。デフォルト値は256です。

RdbAuditLoggingServiceの設定

RDBとロガーへの出力内容を設定します。

設定項目

LoggerAuditLoggingServiceの設定項目を参照してください。

設定例
<service>
    <interface>org.iplass.mtp.impl.entity.auditlog.AuditLoggingService</interface>
    <class>org.iplass.mtp.impl.entity.auditlog.RdbAuditLoggingService</class>

    <!-- logファイルへの出力時、LongTextなど長すぎる文字列を全部出力しない場合(デフォルト256文字まで)はtrue -->
    <property name="logCompact" value="false" />
    <!-- if log query, set to true -->
    <property name="logQuery" value="false" />

    <!-- log出力時、SelectValueのコードとラベルを出力する場合はtrue -->
    <property name="logSelectValueWithLabel" value="true" />
    <!-- log出力時、Referenceのoidとnameを出力する場合はtrue -->
    <property name="logReferenceWithLabel" value="true" />

</service>

4. AuthLoggerService

認証関連のロガーを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.auth.log.AuthLoggerService

実装クラス名

org.iplass.mtp.impl.auth.log.AuthLoggerService

AuthLoggerServiceの設定

AuthLoggerServiceを設定します。

設定項目
項目 説明

loggers

AuthLogger、複数指定可

ロガーの設定。 ロガー名(loggerName)が default のロガーが標準のロガーとなります。 未設定の場合はSlf4jAuthLoggerが標準のロガーとして使用されます。

AuthLogger

classはorg.iplass.mtp.impl.auth.log.AuthLoggerの実装クラスを指定します。

標準で、以下のAuthLoggerを提供します。

Slf4jAuthLogger

classはorg.iplass.mtp.impl.auth.log.Slf4jAuthLoggerを指定します。

SLF4Jを利用して認証のログ出力を行うロガーです。以下の項目を設定可能です。

項目 説明

loggerName

String

ロガー名。

slf4LoggerName

String

SLF4Jのロガー名。デフォルト値は mtp.auth です。

MultiAuthLogger

classはorg.iplass.mtp.impl.auth.log.MultiAuthLoggerを指定します。

複数のロガーを保持します。以下の項目を設定可能です。

項目 説明

loggerName

String

ロガー名。

logger

AuthLogger、複数指定可

標準のロガーの設定。

EnterpriseSlf4jAuthLogger

classはorg.iplass.mtp.impl.auth.log.EnterpriseSlf4jAuthLoggerを指定します。

SLF4Jを利用して認証のログ出力を行うロガーです。 設定可能はSlf4jAuthLoggerを参照してください。

設定例
<service>
    <interface>org.iplass.mtp.impl.auth.log.AuthLoggerService</interface>
    <property name="logger" class="org.iplass.mtp.impl.auth.log.EnterpriseSlf4jAuthLogger">
        <property name="loggerName" value="default" />
    </property>
</service>

5. AuthService

認証を行うためのサービスです。 認証プロバイダを切り替えることにより、様々な認証を行うことができます。

インタフェース名

org.iplass.mtp.impl.auth.AuthService

実装クラス名

コミュニティエディション版
org.iplass.mtp.impl.auth.AuthService
エンタープライズエディションエディション版
org.iplass.mtp.impl.auth.EnterpriseAuthService

AuthServiceの設定

AuthServiceを設定します。

設定項目
項目 説明

userSessionStore

UserSessionStore

ユーザのセッションを管理するストアオブジェクトの設定。

authorizationProvider

AuthorizationProvider

認可処理を行うプロバイダの設定。

authenticationProvider

AuthenticationProvider、複数指定可

認証処理を行うプロバイダの設定。

EnterpriseAuthServiceの設定

AuthServiceを設定します。

設定項目

AuthServiceの設定を参照してください。

UserSessionStore

classはorg.iplass.mtp.impl.auth.authenticate.UserSessionStoreの実装クラスを指定します。

実装クラス名
org.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStore
DefaultUserSessionStore

標準で提供しているUserSessionStoreです。

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStoreを指定します。 以下の項目を指定可能です。

項目 説明

shareLoginSession

boolean

セッションに保持するログイン情報を複数テナントで共有するか。

AuthorizationProvider

classはorg.iplass.mtp.impl.auth.authorize.AuthorizationProviderの実装クラスを指定します。

実装クラス名
org.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProvider
BuiltinAuthorizationProvider

iPLAssの標準認可プロバイダです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProviderを指定します。 以下の項目を設定可能です。

項目 説明

authorizationContextHandler

AuthorizationContextHandler、複数指定可

Permission毎の処理を表現するクラスの設定。

grantAllPermissionsToAdmin

boolean

Adminユーザに対し全権限を与えるか。 falseが設定された場合はAdminユーザに対しロール制御が適用されます。 デフォルト値はtrueです。

AuthorizationContextHandler

classはorg.iplass.mtp.impl.auth.authorize.builtin.AuthorizationContextHandlerの実装クラスを指定します。

実装クラス名
org.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandler
org.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandler
org.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandler
org.iplass.mtp.impl.auth.authorize.builtin.webapi.WebAPIAuthContextHandler
org.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandler
ActionAuthContextHandler

WebAPI権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandlerを指定します。

CubeAuthContextHandler

WebAPI権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandlerを指定します。

EntityAuthContextHandler

Entity権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandlerを指定します。 以下の項目を指定可能です。

項目 説明

useCorrelatedSubqueryOnEntityLimitCondition

boolean

Entity権限による限定条件を付与する際、相関サブクエリにするか否か。 デフォルト値はtrueです。

WebAPIAuthContextHandler

WebAPI権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.webapi.WebAPIAuthContextHandlerを指定します。

WorkflowAuthContextHandler

Workflow権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandlerを指定します。

AuthenticationProvider

classはorg.iplass.mtp.impl.auth.authenticate.AuthenticationProviderの実装クラスを指定します。

実装クラス名
org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.configfile.ConfigFileAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.jaas.JaasAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.jee.JeeContainerManagedAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.preexternal.PreExternalAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.x509.X509AuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.saml.SamlAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProvider
org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProvider
BuiltinAuthenticationProvider

iPLAssの標準認証プロバイダです。 DBに保存されたユーザ情報を元にid/password認証します。 パスワードの複雑度、ロックアウト設定など、認証ポリシーにて設定可能です。

classはorg.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

プロバイダ名称。 複数のプロバイダを設定する場合は、それぞれ一意となる名称を設定してください。 デフォルト値は default です。

updatable

boolean

アカウント管理モジュールの使用可否。 デフォルト値はtrueです。

true

アカウントの管理が可能となります。 本認証プロバイダにてユーザのパスワード更新、リセットを有効化します。 通常はtrueを設定してください。

false

アカウント管理不能となります。

passwordHashSetting

PasswordHashSetting

パスワードHashアルゴリズム。 複数定義することにより既存アルゴリズムを動作させつつ、新規のパスワード更新時には新しいバージョンのアルゴリズムにて動作させることが可能です。

PasswordHashSetting

パスワードHashアルゴリズムに関する設定です。 以下の項目を設定可能です。

項目 説明

version

String

パスワードHashアルゴリズムのバージョン値。 アルゴリズム設定を変更する場合は、世代順にインクリメントし、重複しない値を設定してください。 デフォルト値は1です。

passwordHashAlgorithm

String

設定可能なアルゴリズムについては MessageDigest アルゴリズム を参照して下さい。 デフォルト値は SHA-256 です。

systemSalt

String

システムで取り扱うソルト値。 新しいversionを追加する度に新しい値を設定することを推奨します。 デフォルト値は iPLAssSystemSalt です。

stretchCount

int

パスワードのHashを行う際のストレッチ回数。 デフォルト値は1000です。

ConfigFileAuthenticationProvider

設定ファイルに記載されたアカウント情報から認証するプロバイダです。 全テナントを管理する開発者用のadminユーザアカウントをFileに記述し、各テナントのUserエンティティにはadminユーザがなくともメタデータ管理ができるようにする、といった用途を想定しています。

以下に設定例を示します。 なお、管理者権限のユーザを設定ファイルに記述することになるので、ConfigFileAuthenticationProviderを使用する際は設定値の難読化も併せて使用してください。

<service>
  <interface>org.iplass.mtp.impl.auth.AuthService</interface>
  <property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.configfile.ConfigFileAuthenticationProvider" >
    <property name="tenantIds" value="1" />
    <property name="tenantIds" value="2" />
    <property name="tenantIds" value="5" />
    <property name="accounts">
      <property name="id" value="configUser" />
      <property name="password" value="password000" />
      <property name="admin" value="true" />
      <property name="attributeMap">
          <property name="attr1" value="xxx" />
          <property name="attr2" value="yyy" />
          <property name="attr3" value="zzz" />
      </property>
    </property>
  </property>
  :
  :
</service>

classはorg.iplass.mtp.impl.auth.authenticate.configfile.ConfigFileAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

accounts

AccountConfig、複数指定可

アカウント情報の設定。

tenantIds

int、複数指定可

accounts で指定したアカウントがログイン可能なテナント。

AccountConfig

以下の項目が設定可能です。

項目 説明

id

String

アカウントのID。

password

String

アカウントのパスワード。

admin

boolean

このアカウントが管理者権限を持つか。

attrributeMap

String

任意のキー名(name)と値(value)。 attrributeMap で指定した属性情報は、GroovyScript等でユーザ情報としてバインドした際に、ユーザの属性として参照することができます。

JaasAuthenticationProvider

JAAS(Java Authentication and Authorization Service)を利用してid/password認証するプロバイダです。 設定により、iPLAssのDB内にUserエンティティが存在していなくとも認証が可能となります。

JAAS認証モジュールの定義はログイン構成ファイル(やjavax.security.auth.login.Configuration実装)で定義されている必要があります。 JAAS認証モジュールを定義する方法としてはJVM起動時のシステム変数でログイン構成ファイルを指定する方法等があります。

例: -Djava.security.auth.login.config=/someware/conf/jaas.cfg

jaas.cfg
mtplogin {
    com.sun.security.auth.module.LdapLoginModule REQUIRED
    userProvider="ldap://example.isid.co.jp:389/dc=mtp,dc=isid,dc=co,dc=jp" (1)
    userFilter="(uid={USERNAME})"
    useSSL=false
    debug=true
    ;
};
1 userProvider、userFilterのUSERNAMEには適宜ldapサーバの情報を設定して下さい。

classはorg.iplass.mtp.impl.auth.authenticate.jaas.JaasAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

entryName

String

JAAS認証設定に定義されるentry名。 デフォルト値はmtploginです。

uniquePrincipalType

java.security.Principal

当該の認証モジュールにおける、ユニークIDを指し示すPrincipalクラス名。

例えば、com.sun.security.auth.module.LdapLoginModuleを利用する場合は、com.sun.security.auth.LdapPrincipalや、com.sun.security.auth.UserPrincipalを指定可能です。 uniquePrincipalTypeが未指定の場合は、認証時に入力されたidがユニークIDとして利用されます。

userEntityResolver

UserEntityResolver

認証成功後のユーザEntityの取得方法を設定します。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

userEntityResolverの定義エントリ自体がない場合は、ユーザEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。

DefaultUserEntityResolver

Userエンティティを検索してユーザ情報を取得します。 ユーザが検索出来ない場合ログイン失敗とします。

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。 以下の項目を設定可能です。

項目 説明

unmodifiableUniqueKeyProperty

String

Userエンティティを検索する際のキーとするプロパティ名。 このプロパティに指定された項目=[ユニークID](uniquePrincipalTypeで指定したPrincipalの値)を条件にUserエンティティを検索します。 デフォルト値はoidです。

eagerLoadReferenceProperty

String、複数指定可

ログイン後のUserエンティティ検索時に同時に取得する参照プロパティ。 デフォルトの設定では、Userの参照プロパティであるrankおよびgroupsが指定されています。

filterCondition

String

ユーザ検索時のフィルター条件を指定可能です。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

UserエンティティがDB上に存在せずともログイン可能とします。 oidにJAAS認証モジュールより返却された[ユニークID](uniquePrincipalTypeで指定したPrincipalの値)、accountId、nameに認証時に入力したidがセットされたUserエンティティを疑似的に生成します。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

JeeContainerManagedAuthenticationProvider

JavaEE(Servlet仕様)に規定される認証機構を用いて認証する認証プロバイダです。 HttpServletRequest#getUserPrincipal()で取得されるPrincipalオブジェクトにより認証します。 ログイン処理は事前にJavaEEコンテナが提供する仕組みによって、iPLAss外で行われている想定です。 設定により、iPLAssのDB内に当該Principalに該当するUserエンティティが存在していなくとも認証を可能とすることができます。

classはorg.iplass.mtp.impl.auth.authenticate.jee.JeeContainerManagedAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

validateOnlyLogin

boolean

PrincipalがiPLAssセッションで認識しているUserと一致するかをリクエストの都度確認するか否か。 デフォルト値はfalseです。

roleAsGroup

String、複数指定可

JavaEEに規定されるrole(HttpServletRequest#isUserInRole(String))をグループコードとして扱いたい場合、グループコードとして扱いたいrole名。

userEntityResolver

UserEntityResolver

認証成功後のユーザEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

userEntityResolverの定義エントリ自体がない場合は、ユーザEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameにJEEコンテナが返却したPrincipalオブジェクトのnameをセットしたUserエンティティを疑似的に生成します。 roleAsGroupが指定されている場合、当該roleはグループコードとして設定されます。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

LdapAuthenticationProvider

LDAPサーバ(Active Directory含む)を利用してid/password認証するプロバイダです。 設定により、iPLAssのDB内にUserエンティティが存在していなくとも認証を可能とすることができます。 その際、LDAPサーバ上で管理されているユーザの属性値、所属グループを取得することも可能です。

classはorg.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

BuiltinAuthenticationProviderを参照してください。

jndiEnv

JNDIEnv

LDAP接続用のJNDI環境プロパティ。

userDn

String

認証時のユーザのDNのパターン。 認証要求されたユーザのID、テナント名はそれぞれ${userName}、${tenantName}で埋め込まれます。

cn=${userName},cn=Users,ou=${tenantName}

${userName}@example.isid.co.jp ※Active Directoryの場合

未指定の場合は、認証処理の前にユーザDNを取得するため、userFilterの設定値を利用してユーザを検索、DNを取得し、その取得したユーザDNを用いて認証します。 認証要求時のユーザID、テナント名からユーザDNが一意に導き出せる場合は、この値を設定することを推奨します。

getUser

boolean

ユーザ認証成功後、LDAP上のユーザの属性値を取得するか否か。 userFilterが設定されている場合、それを利用してユーザを検索します。 userFilterが未設定の場合、ユーザDNを用いてユーザを取得します。 デフォルト値はfalseです。

userBaseDn

String

ユーザ検索の際のbaseDN(のパターン)。 テナント単位にユーザのbaseDNが分かれる場合、${tenantName}でテナント名を埋め込むことが可能です。

cn=Users,ou=${tenantName}

userBaseDnが指定されない場合、java.naming.provider.urlで指定されたルートDN以下から検索します。

userFilter

String

ユーザ検索の際のfilterのパターン。 認証要求されたユーザのID、テナント名はそれぞれ${userName}、${tenantName}で埋め込まれます。

(&(objectClass=user)(userPrincipalName=${userName}@local))

userDn指定がされていない場合は、userFilterの設定は必須です。

uniqueKeyAttribute

String

LDAPから取得するユーザ属性のうち、ユーザを一意に特定するための属性名。 未指定の場合は、認証要求時のユーザIDの値がユニークキーとして設定されます。 userAttributeLDAPから取得するユーザ属性名。複数の設定が可能です。 未指定の場合は、すべての属性をLDAPより取得します。

getGroup

boolean

ユーザ認証成功後、ユーザが所属するLDAP上のグループ情報を取得するか否か。 取得したグループ情報はiPLAssでのロール定義にて利用可能となります。 デフォルト値はfalseです。

groupBaseDn

String

グループ検索の際のbaseDN(のパターン)。 テナント単位にグループのbaseDNが分かれる場合、${tenantName}でテナント名を埋め込むことが可能です。

cn=Groups,ou=${tenantName}

groupBaseDnが指定されない場合、java.naming.provider.urlで指定されたルートDN以下から検索します。

groupFilter

String

グループ検索の際のfilterのパターン。 所属検索対象のユーザのDN、テナント名はそれぞれ${userDn}、${tenantName}で埋め込まれます。

(&(objectClass=groupOfNames)(member=${userDn}))

getGroupがtrueの場合は、groupFilterの設定は必須です。

groupCodeAttribute

String

グループコードとして取得するLDAP上の属性名(例:cn)。 getGroupがtrueの場合は、groupCodeAttributeの設定は必須です。

groupAsTenant

boolean

ユーザが認証対象のテナントに所属しているか否かをLDAP上のグループで判別するか。 デフォルト値はfalseです。

tenantGroupCode

String

groupAsTenantがtrueの場合、tenantGroupCodeに設定されるパターンにグループコードが一致した場合、テナントに所属していると判断し、認証成功とします。 ${tenantName}でテナント名を埋め込むことが可能です。

T-${tenantName}

テナント判断用のグループはgroupFilterで検索される結果に含まれている必要があります。

userEntityResolver

UserEntityResolver

認証成功後のユーザEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

userEntityResolverの定義エントリ自体がない場合は、ユーザEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。

JNDIEnv

設定可能な項目は、以下に説明している基本的な項目以外にも設定可能です。 詳細はこちらの内容を参照下さい。

項目 説明

java.naming.factory.initial

String

JNDIのInitialContextFactoryの指定です。 デフォルト値はcom.sun.jndi.ldap.LdapCtxFactoryです。

java.naming.provider.url

String

LDAP接続先を指し示すURL。URLには検索ルートとなるbaseDNを含むことも可能です。

ldap://example.isid.co.jp:389/dc=mtp,dc=isid,dc=co,dc=jp

java.naming.security.principal

String

ユーザ検索、グループ検索が可能な管理用ユーザのID。 未設定の場合、ユーザ検索、グループ検索の際には、認証時のユーザアカウントを利用します。 認証ユーザに検索権限がない場合は設定してください。

java.naming.security.credentials

String

ユーザ検索、グループ検索が可能な管理用ユーザのパスワード。

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください。

AccountBaseUserEntityResolver

UserエンティティがDB上に存在せずともログイン可能とします。 LDAP認証モジュールの場合は、LDAPより返却されたユーザ属性値とUserエンティティのプロパティをマッピングすることが可能です。 attributeMappingUserエンティティのプロパティとLDAPから取得した属性とのマッピングを定義します。 プロパティ名単位に複数件の設定が可能です。

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。 以下の項目を設定可能です。

項目 説明

propertyName

String

マッピング先のUserエンティティのプロパティ名。

accountAttributeName

String

マッピング元のLDAPから取得した属性値の名前。 LDAP上に定義される属性名の他、以下の設定値を利用可能です。

id

ユーザ認証時に入力されたユーザIDです

unmodifiableUniqueKey

上記uniqueKeyAttribute定義で設定した属性値です

また、${属性値}形式を利用したGroovyTemplate形式で複数の属性を結合することが可能です。

${sn ?:''} ${givenName ?:''} ※snとgivenNameをスペースで結合

type

Class

LDAPから取得した値を変換する際の型(java.lang.String、java.lang.Booleanなど)。 未指定の場合は、LDAPより返却された型のままセットします。

defaultValue

Object

LDAPより値が取得出来なかった際のデフォルト値。 未指定の場合、かつ値が取得できなかった場合はnullがセットされます。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

Active Directoryで認証する際の注意点

Active Directoryに対してLdapAuthenticationProviderを利用する場合、ユーザ認証時のuserDnは次の形式となる点を注意してください。

[userID]@[domainName]

また、Active Directory上でユーザオブジェクトを一意に識別可能なobjectGUIDの値をuniqueKeyAttributeとして利用する場合、objectGUIDはバイナリで格納されている点注意が必要となります。 バイナリの属性を正しくハンドリングするためにはJNDI環境プロパティ(java.naming.ldap.attributes.binary)を正しく設定する必要があります。

以下にActive Directoryを利用する際の設定例を示します。

<service>
  <interface>org.iplass.mtp.impl.auth.AuthService</interface>
  <property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProvider" >
    <property name="providerName" value="ad" />
    <property name="jndiEnv">
      <property name="java.naming.provider.url" value="ldap://example.isid.co.jp:389/DC=example,DC=isid,DC=co,DC=jp" />
      <property name="java.naming.ldap.attributes.binary" value="objectGUID" /><!-- objectGUIDはバイナリと宣言 -->
    </property>
    <property name="getUser" value="true" />
    <property name="userBaseDn" value="CN=Users" />
    <property name="userDn" value="${userName}@example.isid.co.jp" />
    <property name="userFilter" value="(&amp;(objectClass=user)(userPrincipalName=${userName}@example.isid.co.jp))" />
    <property name="uniqueKeyAttribute" value="objectGUID" />
    <property name="userAttribute" value="name" />
    <property name="userAttribute" value="sn" />
    <property name="userAttribute" value="givenName" />
    <property name="getGroup" value="true" />
    <property name="groupBaseDn" value="CN=Groups" />
    <property name="groupFilter" value="(&amp;(objectClass=groupOfNames)(member=${userDn}))" />
    <property name="groupCodeAttribute" value="cn" />
    <property name="groupAsTenant" value="true" />
    <property name="tenantGroupCode" value="T-${tenantName}" />

    <property name="userEntityResolver" class="org.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolver">
      <property name="attributeMapping">
        <property name="propertyName" value="oid" />
        <property name="accountAttributeName" value="objectGUID" />
        <property name="type" value="java.lang.String" /><!-- byte[]で取得されるので、文字列に変換 -->
      </property>
      <property name="attributeMapping">
        <property name="propertyName" value="name" />
        <property name="accountAttributeName" value="${sn ?:''} ${givenName ?:''}" />
        <property name="type" value="java.lang.String" />
      </property>
      <property name="attributeMapping">
        <property name="propertyName" value="firstName" />
        <property name="accountAttributeName" value="givenName" />
      </property>
      <property name="attributeMapping">
        <property name="propertyName" value="lastName" />
        <property name="accountAttributeName" value="sn" />
      </property>
      <property name="attributeMapping">
        <property name="propertyName" value="admin" />
        <property name="defaultValue" value="false" class="java.lang.Boolean"/>
      </property>
    </property>
  </property>
  :
  :
</service>
PreExternalAuthenticationProvider

OpenAM、IceWallなどのSSO製品(またはそれに類する独自認証基盤)におけるエージェント型、リバースプロキシ型での認証機構に対応するための認証プロバイダです。 通常これらのSSO製品を利用した場合、認証情報はHTTPヘッダーやHttpServletRequestのattribute、HttpSessionのattributeとしてアプリケーション側に連携されます。 当認証プロバイダにおいては、これら外部認証機構から連携された情報を元にiPLAss上での認証処理を行います。 ログイン画面、またログイン処理は外部認証機構側で提供され、iPLAss外で行われている想定です。 設定により、iPLAssのDB内に当該ユーザに該当するUserエンティティが存在していなくとも認証を可能とすることができます。

classはorg.iplass.mtp.impl.auth.authenticate.preexternal.PreExternalAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

validateOnlyLogin

boolean

連携されるユーザ情報がiPLAssセッションで認識しているUserと一致するかをリクエストの都度確認するか否か。 デフォルト値はfalseです。

sourceType

SourceType

外部認証機構から渡されるユーザ情報が格納されている場所。

accountIdAttribute

String

外部認証機構から渡されるユーザ情報のうちアカウントIDが格納されているキー名。

uniqueKeyAttribute

String

外部認証機構から渡されるユーザ情報のうちユニークキー(OIDに相当)が格納されているキー名。 未指定の場合は、accoutIdAttributeに指定された値がユニークキーとして利用されます。

userAttribute

String、複数指定可

外部認証機構から渡されるユーザ情報のうちユーザの属性として扱う値のキー名。

logoutUrl

String

外部認証機構のログアウト処理を行うURL。 iPLAssの標準画面でログアウトが呼び出された場合、当該画面へリダイレクトします。

userEntityResolver

UserEntityResolver

認証成功後のユーザEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

userEntityResolverの定義エントリ自体がない場合、かつuniqueKeyAttributeが未指定の場合ユーザEntityはaccountIdで検索されます。 上記以外の場合、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。

SourceType

外部認証機構から渡されるユーザ情報が格納されている場所を指定します。

HEADER

ヘッダーからgetHeader(String)にてユーザ情報を取得します

REQUEST

HttpServletRequestからgetAttribute(String)にてユーザ情報を取得します

SESSION

HttpSessionからgetAttribute(String)にてユーザ情報を取得します

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

詳細はLdapAuthenticationProviderを参照してください。 外部認証機構から渡されたuserAttributeの値をUserエンティティのプロパティにマッピング可能です。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

X509AuthenticationProvider

X509クライアント証明書を用いて認証する認証プロバイダです。 X509クライアント証明書自体の正当性はSSL/TLSレイヤーで検証されているものとして処理します(iPLAss内で再検証は行いません)。

X509AuthenticationProviderは単独で認証プロバイダとして利用される他、TwoStepAuthenticationProviderのセカンダリの認証要素としての利用も可能です。 単独の認証プロバイダとして利用する場合、証明書内のCNがaccountIdと一致している必要がありますが、TwoStepAuthenticationProviderのセカンダリの認証要素として利用する場合は、CNとaccountIdの一致は必須ではありません。

また、単独の認証プロバイダとして利用する場合、クライアント証明書の性質上、ログアウト処理を行ったとしても、それに引き続くリクエストですぐに再認証されてしまいます。

設定により、iPLAssのDB内に当該ユーザに該当するUserエンティティが存在していなくとも認証を可能とすることができます。

classはorg.iplass.mtp.impl.auth.authenticate.x509.X509AuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

validateOnlyLogin

boolean

連携されるユーザ情報がiPLAssセッションで認識しているUserと一致するかをリクエストの都度確認するか否か。 デフォルト値はfalseです。

twoStep2ndFactor

boolean

TwoStepAuthenticationProviderのセカンダリの認証要素としての設定の場合、trueに設定する必要があります。 デフォルト値はfalseです。

userEntityResolver

UserEntityResolver

認証成功後のユーザEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

userEntityResolverの定義エントリ自体がない場合は、ユーザEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください、

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameに証明書内のCNをセットしたUserエンティティを疑似的に生成します。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

SamlAuthenticationProvider

SAML2.0ベースでSSO/SLOを行う認証プロバイダです。 iPLAssはSAML2.0仕様のSPモードをサポートします。 外部のIdPにて認証された認証情報を連携し、iPLAssにログイン可能です。 SamlAuthenticationProviderを利用する際は、別途 AuthenticationPolicyでのSAML有効化の設定が必要です。

classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

userEntityResolver

UserEntityResolver

認証成功後のユーザEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

SamlUserEntityResolver

メタデータとして設定されたSAML定義のNameIDのマッピングに従いユーザEntityを検索します。

classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlUserEntityResolverを指定します。 以下の項目を設定可能です。

項目 説明

eagerLoadReferenceProperty

String、複数指定可

ログイン後のUserエンティティ検索時に同時に取得する参照プロパティ。 デフォルトの設定では、Userの参照プロパティであるrankおよびgroupsが指定されています。

filterCondition

String

ユーザ検索時のフィルター条件。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

詳細はLdapAuthenticationProviderを参照してください、 SAML経由で渡されたユーザ属性値をUserエンティティのプロパティにマッピング可能です。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

TwoStepAuthenticationProvider

2step認証を行う認証プロバイダです。 プライマリの認証プロバイダを1つ、セカンダリの認証プロバイダを1つ以上設定します。 設定された認証プロバイダ、および認証ポリシーにおける設定により、2ステップ認証処理が実行されます。 認証ポリシーの詳細については[ユーザ-管理]シートを参照下さい。

TwoStepAuthenticationProviderの設定では、以下の例のようにプライマリ、セカンダリのAuthenticationProviderを内包する形で定義します。

<service>
  <interface>org.iplass.mtp.impl.auth.AuthService</interface>
  <property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProvider">
    <property name="primary" class="org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider">
      <property name="updatable" value="true" />
      <property name="providerName" value="default" />
      <property name="passwordHashSettings">
        <property name="version" value="1" />
        <property name="passwordHashAlgorithm" value="SHA-256" />
        <property name="systemSalt" value="salt" />
        <property name="stretchCount" value="3000" />
      </property>
    </property>

    <property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProvider" />
    <property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProvider">
  </property>
  :
  :
</service>

classはorg.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

BuiltinAuthenticationProvider参照。 未指定の場合は、primaryに定義されるproviderNameが適用されます。

primary

AuthenticationProvider

プライマリのAuthenticationProvider。 指定可能(※)なAuthenticationProviderは認証時のCredentialとしてIdPasswordCredentialを利用する次の認証プロバイダ、もしくはカスタムの認証プロバイダです。

※ iPLAss gemモジュール提供のログイン認証処理を利用する場合

secondary

AuthenticationProvider

セカンダリのAuthenticationProviderを指定します。 secondaryは複数指定可能です。 次のいずれかの認証プロバイダを指定可能(※)です。

※ iPLAss gemモジュール提供のログイン認証処理を利用する場合

OnetimeCodeAuthenticationProvider

ワンタイムの認証コードを用いて認証を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 ワンタイムコードの生成方式は、別途OnetimeCodeGeneratorServiceにて定義します。 ワンタイムコード生成方式のうちいずれを利用するかの設定は認証ポリシーに定義します。 詳細は認証機能の2段階認証を参照してください。

OnetimeCodeAuthenticationProvider自体にて設定可能な項目はありません。

classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProviderを指定します。

KnowledgeBasedAuthenticationProvider

ナレッジベース認証(秘密の質問に答えることで認証する)を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 Userエンティティに保持するプロパティを質問項目として利用することが可能です。 どのプロパティを質問項目とするか、質問の数などの設定は、認証ポリシーにて行います。 詳細は認証機能の2段階認証を参照してください。

KnowledgeBasedAuthenticationProvider自体にて設定可能な項目はありません。

classはorg.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProviderを指定します。

RememberMeTokenAuthenticationProvider

RememberMe機能(ログインしたままにする機能)を実現する認証プロバイダです。 前回ログイン時にブラウザCookie(永続Cookie)に保存されたトークンによって認証を行うプロバイダです。 ログインしたままにする有効期間の設定などは、認証ポリシーにいて行います。 詳細は認証機能のRemember Meを参照してください。

RememberMeTokenAuthenticationProviderは、実際の各種AuthenticationProviderにRememberMe機能を付与するラッパーとして動作します。 設定ファイルにはRememberMe機能を付与したいAuthenticationProviderを内包する形で定義します。

設定例を以下に示します。

<service>
  <interface>org.iplass.mtp.impl.auth.AuthService</interface>
  <property name="authenticationProvider"
        class="org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProvider">
    <property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider">
      <property name="updatable" value="true" />
      <property name="providerName" value="default" />
      :
      :
    </property>
  </property>
  :
  :
</service>

classはorg.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

BuiltinAuthenticationProvider参照 未指定の場合は、内包するauthenticationProviderに定義されるproviderNameが適用されます。

authenticationProvider

AuthenticationProvider

実際の認証処理を行うAuthenticationProvider。

設定例
<service>
    <interface>org.iplass.mtp.impl.auth.AuthService</interface>
    <class>org.iplass.mtp.impl.auth.EnterpriseAuthService</class>
        <property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProvider">
        <property name="deleteTokenOnFailure" value="true" />
        <property name="clientStore" class="org.iplass.mtp.impl.auth.authenticate.token.web.AuthTokenCookieStore">
            <property name="cookieName" value="iprmtkn" />
        </property>

        <property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProvider">
            <property name="primary" class="org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider">
                <property name="updatable" value="true" />
                <property name="providerName" value="default" />

                <!-- if load custom reference property at login, set userEntityResolver.eagerLoadReferenceProperty -->
                <!--
                <property name="userEntityResolver" class="org.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolver">
                    <property name="eagerLoadReferenceProperty" value="rank" />
                    <property name="eagerLoadReferenceProperty" value="groups" />
                    <property name="eagerLoadReferenceProperty" value="yourCustomReference" />
                </property>
                -->

                <property name="passwordHashSettings">
                    <property name="version" value="1" />
                    <property name="passwordHashAlgorithm" value="SHA-256" />
                    <property name="systemSalt" value="yourSystemSalt" />
                    <property name="stretchCount" value="1000" />
                </property>
            </property>
            <property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProvider">
            </property>
            <property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProvider">
            </property>
            <property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.x509.X509AuthenticationProvider">
                <property name="twoStep2ndFactor" value="true" />
            </property>
        </property>
    </property>
    <property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.saml.SamlAuthenticationProvider">
         <property name="updatable" value="false" />
         <property name="providerName" value="saml" />
    </property>

    <property name="authorizationProvider" class="org.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProvider">
        <property name="grantAllPermissionsToAdmin" value="true" />

        <property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandler" />
        <property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.webapi.WebApiAuthContextHandler" />
        <property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandler" />
        <property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandler">
            <property name="useCorrelatedSubqueryOnEntityLimitCondition" value="true" />
        </property>
        <property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandler" />
    </property>
</service>

6. AuthTokenService

認証トークンを管理するためのサービスです。

インタフェース名

org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService

実装クラス名

org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService

AuthTokenServiceの設定

AuthTokenServiceを設定します。

設定項目
項目 説明

storeMap

AuthTokenStore、複数指定可

AuthTokenStoreの設定。

handler

AuthTokenHandler、複数指定可

AuthTokenHandlerの設定。

AuthTokenStore

classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenStoreの実装クラスを指定します。

標準で、org.iplass.mtp.impl.auth.authenticate.token.RdbAuthTokenStoreを提供します。

RDBで認証トークンを管理します。

項目 説明

name

String

このストアの名前。ストアを設定する際は、nameに default を設定したストアを必ず設定してください。

AuthTokenHandler

classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenHandlerの実装クラスを指定します。

標準で、以下のAuthTokenHandlerを提供します。

CookieRiskEvaluationTokenHandler

classはorg.iplass.mtp.impl.auth.authenticate.builtin.policy.riskevals.web.CookieRiskEvaluationTokenHandlerを指定します。

Cookieにある認証成功時に付与されたトークンを取り扱います。以下の項目を設定可能です。

項目 説明

store

String

使用するストアの名前。

type

String

種別。未設定の場合、 RBA となります。

visible

boolean

可視かどうか。デフォルト値はtrueです。

RememberMeTokenHandler

classはorg.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenHandlerを指定します。

リメンバーミートークンを取り扱います。以下の項目を設定可能です。

項目 説明

store

String

使用するストアの名前。

type

String

種別。未設定の場合、 REMME となります。

visible

boolean

可視かどうか。デフォルト値はtrueです。

設定例
<service>
    <interface>org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService</interface>
    <property name="storeMap">
        <property name="default" class="org.iplass.mtp.impl.auth.authenticate.token.RdbAuthTokenStore" />
    </property>
    <property name="handler" class="org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenHandler">
        <property name="type" value="REMME" />
        <property name="store" value="default" />
    </property>
</service>

7. AutoNumberTypeCounter

AutoNumber型の採番を行うサービスです。 EntityのプロパティとしてAutoNumber型を利用する場合のCounterServiceの定義です。 採番時に飛び番を許容するかどうかで利用する設定が変わります。 許容する場合は AutoNumberTypeCounterAcceptSkip の設定を、 許容しない場合は AutoNumberTypeCounterNoSkip の設定を利用します。

インタフェース名

org.iplass.mtp.impl.counter.CounterService

実装クラス名

キャッシュなし
org.iplass.mtp.impl.counter.RdbTableCounterService
キャッシュあり
org.iplass.mtp.impl.counter.CachableRdbTableCounterService

RdbTableCounterServiceの設定

RdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

CachableRdbTableCounterServiceの設定

CachableRdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

cacheSize

int

キャッシュサイズ。デフォルト値は20です。

設定例
<service name="AutoNumberTypeCounterAcceptSkip">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <!-- without cache RdbTableCounterService -->
    <!--
    <class>org.iplass.mtp.impl.counter.RdbTableCounterService</class>
    <property name="counterTypeName" value="AutoNumberTypeCounter" />
    <property name="separateTransaction" value="true" />
    <property name="retryCount" value="3" />
     -->
    <!-- with cache RdbTableCounterService -->
    <class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
    <property name="counterTypeName" value="AutoNumberTypeCounter" />
    <property name="cacheSize" value="20" />
    <property name="retryCount" value="3" />
</service>
<service name="AutoNumberTypeCounterNoSkip">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.RdbTableCounterService</class>
    <property name="counterTypeName" value="AutoNumberTypeCounter" />
    <property name="separateTransaction" value="false" />
</service>

8. BinaryMetaDataService

バイナリ形式のメタデータをバイト配列でメモリ内に保持しない仕組みを提供する為のサービスです。

インタフェース名

org.iplass.mtp.impl.metadata.binary.BinaryMetaDataService

実装クラス名

org.iplass.mtp.impl.metadata.binary.BinaryMetaDataService

BinaryMetaDataServiceの設定

バイナリ形式のメタデータの保持に関する動作について設定します。

設定項目
項目 説明

keepInMemoryThreshold

int

メモリ内に保持するサイズの閾値(バイト)。 サイズが閾値を超える場合は一時ファイルとして保持されます。デフォルト値は65536(64KiB)です。

cacheMemoryThreshold

int

メモリにキャッシュするサイズの閾値(バイト)。 サイズが閾値以下の場合はメモリにキャッシュされます。デフォルト値は1048576(1024KiB)です。

xmlBinaryChunkSize

int

メタデータのXMLにマーシャルまたはアンマーシャルする際のチャンクサイズ(バイト)。 デフォルト値は262144(256KiB)です。

deleteTempFileOnDestroy

boolean

サービスが破棄される、あるいは仮想マシン(VM)がシャットダウンされる際に一時ファイルを削除するか。デフォルト値はtrueです。

tempFileDir

String

一時ファイルが保存されるディレクトリのパス。 設定しない場合は"java.io.tmpdir"のディレクトリパスが使用されます。

設定例
<service>
    <interface>org.iplass.mtp.impl.metadata.binary.BinaryMetaDataService</interface>
    <property name="keepInMemoryThreshold" value="65536" />
    <property name="cacheMemoryThreshold" value="1048576" />
    <property name="xmlBinaryChunkSize" value="262144" />
    <property name="deleteTempFileOnDestroy" value="true" />
    <!-- if temp dir not specified, use "java.io.tmpdir"'s dir -->
    <!--
    <property name="tempFileDirPath" value="/tmp" />
    -->
</service>

9. CacheService

キャッシュストアを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.cache.CacheService

実装クラス名

org.iplass.mtp.impl.cache.CacheService

CacheServiceの設定

CacheServiceを設定します。

設定項目
項目 説明

defaultFactory

CacheStoreFactory

標準のCacheStoreFactoryの設定。

"defaultFactory"以外の任意の文字列

CacheStoreFactory、複数指定可

個別のCacheStoreFactoryの設定。

CacheStoreFactory

classはorg.iplass.mtp.impl.cache.store.CacheStoreFactoryの実装クラスを指定します。

標準で、以下のCacheStoreFactoryを提供します。

共通設定

各CacheStoreFactoryの共通の設定項目です。 以下の項目を設定可能です。

項目 説明

namespace

String

キャッシュを行う名前空間。

namespacePattern

String

キャッシュを行う名前空間のパターン。パターンは正規表現で記述します。

indexCount

int

インデックスの数。デフォルト値は0です。

concurrencyLevelOfCacheHandler

int

CacheHandlerの並列実行数。デフォルト値は4です。

RdbCacheStoreFactory

Rdbを利用するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

cacheKeyResolver

CacheKeyResolver

CacheKeyResolverの設定。

cacheIndexResolver

CacheKeyResolver、複数指定可

インデックスのCacheKeyResolverの設定。

connectionFactoryName

String

接続ファクトリ名。

rdbArapterName

String

RdbAdapter名。

tableName

String

キャッシュを保存するテーブル名。デフォルト値は CACHE_STORE です。

retryCount

int

キャッシュ保存失敗時にリトライする回数。デフォルト値は0です。

timeToLive

long

キャッシュの生存時間(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。

SimpleCacheStoreFactory

内部メモリを利用するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

initialCapacity

int

キャッシュの初期容量。デフォルト値は16です。

loadFactor

float

負荷係数。初期値は0.75です。

concurrencyLevel

int

並行して更新しているスレッドの推定数。デフォルト値は16です。

timeToLive

int

キャッシュの生存時間(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。

size

int

キャッシュのサイズ。-1が設定された場合は無制限となります。デフォルト値は-1です。

multiThreaded

boolean

マルチスレッドに対応するか。デフォルト値はtrueです。

evictionInterval

long

キャッシュの有効期限(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。

SyncServerCacheStoreFactory

信頼性の低い、サーバ間のキャッシュを同期するCacheStoreFactoryです。 実ストアのtimeToLiveの設定で一定間隔でキャッシュがリフレッシュされる前提で利用してください。 他のサーバがキャッシュの更新処理中にダウンした場合などは、そのtimeToLiveの間、キャッシュと実データの間で不整合が発生する可能性あります。 以下の項目を設定可能です。

項目 説明

cacheKeyResolver

CacheKeyResolver

CacheKeyResolverの設定。

cacheIndexResolver

CacheKeyResolver、複数指定可

インデックスのCacheKeyResolverの設定。

store

CacheStoreFactory

CacheStoreFactoryの設定。

listener

SyncServerCacheEventListener

同期メッセージ受信時に実行するリスナーの設定。

TransactionLocalCacheStoreFactory

トランザクションが有効な間はバックエンドのCacheStoreに反映を遅延するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

backendStore

CacheStoreFactory

バックエンドのCacheStoreFactoryの設定。

InfinispanCacheStoreFactory

Infinispanを利用するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

createOnStartup

boolean

スタートアップ時にCacheStoreを生成するか。デフォルト値はfalseです。

cacheConfigrationName

String

キャッシュ名。

CacheKeyResolver

classにorg.iplass.mtp.impl.cache.store.keyresolver.CacheKeyResolverの実装クラスを指定します。

標準で、以下のCacheKeyResolverを提供します。

CounterCacheKeyResolver

classにorg.iplass.mtp.impl.counter.CachableRdbTableCounterServicea$CounterCacheKeyResolverを指定します。

CounterKey型のCacheKeyResolverです。設定変更可能な項目はありません。

IntegerCacheKeyResolver

classにorg.iplass.mtp.impl.cache.store.keyresolver.IntegerCacheKeyResolverを指定します。

Integer型のCacheKeyResolverです。設定変更可能な項目はありません。

QueryCacheKeyResolver

classにorg.iplass.mtp.impl.entity.cache.QueryCacheKeyResolverを指定します。

Query型のCacheKeyResolverです。設定変更可能な項目はありません。

StringCacheKeyResolver

classにorg.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolverを指定します。

文字列型のCacheKeyResolverです。設定変更可能な項目はありません。

SyncServerCacheEventListener

classにorg.iplass.mtp.impl.metadata.MetaDataSyncServerCacheListenerを指定します。

メタデータの同期を行います。設定変更可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.cache.CacheService</interface>

    <!-- Entityのトランザクションローカル用キャッシュ(非共有) -->
    <property name="entityTransactionLocal" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
        <property name="namespace" value="mtp.entity.transactionLocalCache" />
        <property name="multiThreaded" value="false" />
        <property name="size" value="32" />
    </property>

    <!-- Queryのトランザクションローカル用キャッシュ(非共有) -->
    <property name="queryTransactionLocal" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
        <property name="namespace" value="mtp.entity.transactionLocalQueryCache" />
        <property name="indexCount" value="1" /><!-- index:defName -->
        <property name="multiThreaded" value="false" />
        <property name="size" value="32" />
    </property>

    <!-- 権限チェック結果のキャッシュ(非共有) -->
    <property name="permissionLocal" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
        <property name="namespace" value="mtp.auth.permissionCache" />
        <property name="multiThreaded" value="false" />
        <property name="size" value="16" />

    </property>

    <!-- TenantContextキャッシュ -->
    <property name="tenantContext" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
        <property name="namespace" value="mtp.tenant.tenantContext" />
        <property name="indexCount" value="1" /><!-- index:tenantUrl -->
        <property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
        </property>
    </property>

    <!-- CounterServiceのカウンタキャッシュ -->
    <property name="rdbTableCounter" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
        <property name="namespace" value="mtp.counter.rdbTableCounter" />
        <property name="cacheKeyResolver" class="org.iplass.mtp.impl.counter.CachableRdbTableCounterService$CounterCacheKeyResolver" />
        <property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
            <property name="timeToLive" value="-1" />
            <property name="size" value="1024" />
        </property>
    </property>

    <!-- 権限系Entityのキャッシュ -->
    <property name="authBuiltin" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
        <property name="namespacePattern" value="mtp[.]auth[.]builtin[.].*" />
        <property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
            <property name="cacheKeyResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
            <property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
                <!-- 6時間有効 -->
                <property name="timeToLive" value="21600000" />
            </property>
        </property>
    </property>

    <!-- メタデータ(本体)キャッシュ -->
    <property name="metadata" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
        <property name="namespacePattern" value="mtp[.]metadata[.]metaData/.*" />
        <property name="indexCount" value="1" /><!-- index:path -->
        <property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
            <property name="cacheKeyResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
            <property name="cacheIndexResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
            <property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
                <!-- 12時間有効 -->
                <property name="timeToLive" value="43200000" />
            </property>
            <property name="listener" class="org.iplass.mtp.impl.metadata.MetaDataSyncServerCacheListener" />
        </property>
    </property>

    <!-- メタデータ(パスに対するリスト)キャッシュ(サーバローカルキャッシュ。メタデータ本体キャッシュのサーバ通知経由でデータの同期) -->
    <property name="metadataList" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
        <property name="namespacePattern" value="mtp[.]metadata[.]metaDataDefList/.*" />
        <property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
                <!-- 12時間有効 -->
                <property name="timeToLive" value="43200000" />
        </property>
    </property>

    <!-- cubeのキャッシュ -->
    <property name="cubeStatus" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
        <property name="namespace" value="mtp.aggregation.cube.status" />
    </property>
    <property name="cubeFactData" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
        <property name="namespace" value="mtp.aggregation.cube.factPartition" />
        <property name="concurrencyLevelOfCacheHandler" value="4" />
    </property>

    <!-- Queryキャッシュ -->
    <property name="query" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
        <property name="namespacePattern" value="mtp[.]entity[.]queryCache/.*" />
        <property name="indexCount" value="1" /><!-- index:defName -->
        <property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
            <property name="cacheKeyResolver" class="org.iplass.mtp.impl.entity.cache.QueryCacheKeyResolver" />
            <property name="cacheIndexResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
            <property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
                <!-- 12時間有効 -->
                <property name="timeToLive" value="43200000" />
                <!-- 最大128 -->
                <property name="size" value="128" />
            </property>
        </property>
    </property>

    <!-- 上記namespace以外の場合のデフォルトキャッシュ -->
    <property name="defaultFactory" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
        <property name="namespacePattern" value=".*" />
        <property name="indexCount" value="5" />
    </property>
</service>

10. ClusterService

クラスタ間通信を行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.cluster.ClusterService

実装クラス名

org.iplass.mtp.impl.cluster.ClusterService

ClusterServiceの設定

ClusterServiceを設定します。

設定項目
項目 説明

messageChannel

MessageChannel

クラスタ間の通信に利用するメッセージチャネルの設定。

MessageChannel

classはorg.iplass.mtp.impl.cluster.channel.MessageChannelの実装クラスを指定します。

標準で、以下のMessageChannelを提供します。

HttpMessageChannel

classはorg.iplass.mtp.impl.cluster.channel.http.HttpMessageChannelを指定します。

Httpを介してメッセージ送受信するメッセージチャネルです。以下の項目を設定可能です。

項目 説明

serverUrl

String、複数指定可

他のクラスタメンバの通信用URL。自分も含めることも可能です。

certKey

String

通信時の認証用のキー。クラスタメンバで同一のものを定義します。

connectionTimeout

int

http通信確立時のConnectionTimeout値(ミリ秒)。デフォルト値は30000(30秒)です。

soTimeout

int

http通信確立時のSoTimeout値(ミリ秒)。デフォルト値は30000(30秒)です。

proxyHost

String

http通信する際のproxyHost。

proxyPort

int

http通信する際のproxyPort。

poolingMaxTotal

int

httpコネクションのプールの最大数。デフォルト値は20です。

poolingDefaultMaxPerRoute

int

ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。

poolingTimeToLive

int

プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。

retryCount

int

メッセージ送信失敗時のリトライ回数。デフォルト値は3です。

retryDelay

int

メッセージ送信失敗時のリトライ間隔(ms)。デフォルト値は3です。

InfinispanMessageChannel

classはorg.iplass.mtp.impl.infinispan.cluster.channel.InfinispanMessageChannelを指定します。

Infinispanを利用してメッセージの送受信を行うメッセージチャネルです。以下の項目を設定可能です。

項目 説明

sync

boolean

メッセージの送信を同期して行うかを設定します。

設定例
<service>
    <interface>org.iplass.mtp.impl.cluster.ClusterService</interface>
    <property name="messageChannel"
        class="org.iplass.mtp.impl.cluster.channel.http.HttpMessageChannel">
        <!--
            serverUrl:他のクラスタメンバの通信用URLを指定(自分も含めることも可)
            certKey:通信時の認証用のキー。クラスタメンバで同一のものを定義。
            connectionTimeout:http通信確立時のConnectionTimeout値(ms)。省略時デフォルト30000ms。
            soTimeout:http通信確立時のSoTimeout値(ms)。省略時デフォルト30000ms。
            proxyHost:http通信する際のproxyHost。省略可。
            proxyPort:http通信する際のproxyPort。省略可。

            ※serverUrlに自分を含めた場合、次の形で自身のサーバと判断する形になる

            1.システムプロパティに以下が設定されていた場合、その値を自身のサーバ名、ポートと判断する
                mtp.cluster.http.myservername = [server名]
                mtp.cluster.http.myportno = [portNo]
                ※クラスタ設定のserverUrlで同一サーバ名のURLが複数ある場合、ポート指定が必要

            2.動作環境から自身のサーバ名を自動解決する
                以下のいずれかの方法でネットワークインタフェースを特定する
                (1) 明示的にネットワークインタフェースを指定する場合
                    システムプロパティでネットワークインタフェースを指定する
                    mtp.cluster.http.myinterfacename = [networkInterface名]

                (2) 最初に定義されている(LoopBackでなく現在利用可能な)ネットワークインタフェースを利用

                    特定されたネットワークインタフェースに定義されているサーバ名(FQDN/サーバ名)/IPAdressを自身のサーバ名と判断する。
                    もしそれでも見つからない場合は、LoopBackを自身のサーバ名と判断する。 

                ※1.と同様、クラスタ設定のserverUrlで同一サーバ名のURLが複数ある場合、ポート指定が必要

            また、必要にあわせてhttp通信非同期実行用スレッドの最適化の設定をする。
            下記の
         -->
        <!--
        <property name="serverUrl" value="http://xxx1.xxx.xxx/app/cmcs" />
        <property name="serverUrl" value="http://xxx2.xxx.xxx/app/cmcs" />
        <property name="certKey" value="yourOwnCertKey" />
        <property name="connectionTimeout" value="30000" />
        <property name="soTimeout" value="30000" />
        <property name="proxyHost" value="proxy.xxx.xxx" />
        <property name="proxyPort" value="8080" />
         -->
    </property>
</service>

11. ConnectionFactory

データベース接続を行うためのサービスです。 データベース接続の実装として、DriverManagerを利用した接続と、DataSourceを利用した接続のモジュールを標準提供します。

インタフェース名

org.iplass.mtp.impl.rdb.connection.ConnectionFactory

実装クラス名

DriverManagerを利用した接続
org.iplass.mtp.impl.rdb.connection.DriverManagerConnectionFactory
DataSourceを利用した接続
org.iplass.mtp.impl.rdb.connection.DataSourceConnectionFactory

DriverManagerConnectionFactoryの設定

DriverManagerを利用したデータベースの接続情報を設定します。

設定項目
項目 説明

url

String

データベース接続文字列のURL。

user

String

ログインに使用されるユーザー名。

password

String

接続するユーザーのパスワード。

driver

String

JDBCドライバの完全修飾クラス名。

warnLogThreshold

int

警告ログを出力する処理時間(ミリ秒)の閾値。
デフォルト値は0です。
閾値を越えるスロークエリーが実行された場合、ログ出力されます。

warnLogBefore

boolean

事前警告ログを出力するか否かを指定します。
デフォルトはtrueです。
現状、当該フラグがtrueの場合は、INDEXを利用しないEQLクエリーが発行される場合に、事前警告ログが出力されます。

transactionIsolationLevel

String

トランザクションの分離レベル。以下が設定可能。

NONE

ConnectionのTRANSACTION_NONEに対応

READ_UNCOMMITTED

ConnectionのTRANSACTION_READ_UNCOMMITTEDに対応

READ_COMMITTED

ConnectionのTRANSACTION_READ_COMMITTEDに対応

REPEATABLE_READ

ConnectionのTRANSACTION_REPEATABLE_READに対応

SERIALIZABLE

ConnectionのTRANSACTION_SERIALIZABLEに対応

設定例
<service>
    <interface>org.iplass.mtp.impl.rdb.connection.ConnectionFactory</interface>
    <class>org.iplass.mtp.impl.rdb.connection.DriverManagerConnectionFactory</class>

    <property name="url" value="jdbc:oracle:thin:ADDRESS:PORT:DB" />
    <property name="user" value="yourName" />
    <property name="password" value="yourPassword" />
    <property name="driver" value="oracle.jdbc.driver.OracleDriver" />

    <property name="warnLogThreshold" value="0" />
</service>

DataSourceConnectionFactoryの設定

DataSourceを利用したデータベースの接続情報を設定します。

設定項目
項目 説明

dataSourceName

String

データソース名。デフォルト値は java:comp/env/jdbc/defaultDS です。

jndienv.<キー名>

String、複数指定可

JNDIの環境プロパティ。

warnLogThreshold

int

警告ログを出力する処理時間(ミリ秒)の閾値。
デフォルト値は0です。
閾値を越えるスロークエリーが実行された場合、ログ出力されます。

warnLogBefore

boolean

事前警告ログを出力するか否かを指定します。
デフォルトはtrueです。
現状、当該フラグがtrueの場合は、INDEXを利用しないEQLクエリーが発行される場合に、事前警告ログが出力されます。

transactionIsolationLevel

String

トランザクションの分離レベル。以下が設定可能。

NONE

ConnectionのTRANSACTION_NONEに対応

READ_UNCOMMITTED

ConnectionのTRANSACTION_READ_UNCOMMITTEDに対応

READ_COMMITTED

ConnectionのTRANSACTION_READ_COMMITTEDに対応

REPEATABLE_READ

ConnectionのTRANSACTION_REPEATABLE_READに対応

SERIALIZABLE

ConnectionのTRANSACTION_SERIALIZABLEに対応

設定例
<service>
    <interface>org.iplass.mtp.impl.rdb.connection.ConnectionFactory</interface>
    <class>org.iplass.mtp.impl.rdb.connection.DataSourceConnectionFactory</class>

    <property name="dataSourceName" value="java:comp/env/jdbc/sampleDS" />
    <property name="jndienv.java.naming.factory.initial"
        value="oracle.j2ee.server.ApplicationClientInitialContextFactory" />
    <property name="jndienv.java.naming.provider.url"
        value="opmn:ormi://opmnhost:6004:oc4j_inst1/ejbsamples" />

    <property name="warnLogThreshold" value="0" />
</service>

12. CubeService

Cubeの定義(メタデータ)を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.aggregation.cube.CubeService

実装クラス名

org.iplass.mtp.impl.aggregation.cube.CubeService

CubeServiceの設定

CubeServiceを設定します。

設定項目
項目 説明

enablePhysicalResourceLoading

boolean

ファイルやJDBCといった物理リソースへのアクセスを許可するか。デフォルト値はfalseです。

useDataCompression

boolean

メモリ内に展開したデータを圧縮するか。デフォルト値はtrueです。

useFlyweightListOnBitSetColData

boolean

BitMap形式でデータ格納する際、Listとして実データを保持するか。trueにした場合、集計速度は速くなりますがメモリ使用量は増えます。デフォルト値はfalseです。

useHashIndexOnListColData

boolean

ObjectPool形式でデータ格納する際、HashIndexを生成するか。trueにした場合、集計速度は速くなりますがメモリ使用量は増えます。デフォルト値はfalseです。

hashIndexSegmentSize

int

HashIndex利用時のHashのセグメントサイズ。設定された値は2の累乗に自動的に補正されます。デフォルト値は16です。

maxRowsOfDimension

int

集計時の最大ディメンジョン数(Clientへの返却可能な行数)。デフォルト値は10000です。

maxRowsOfDimensionInternal

int

集計時の最大ディメンジョン数(内部処理での)。デフォルト値は100000です。

transferredRawDataInMemoryThreshold

int

ローデータ取得時に分散環境下において、他Nodeから実データが転送されてきますが、それをメモリ内で扱う閾値。これより大きい場合は、一旦ファイルに落とします。デフォルト値は16384(16K)です。

joinBufferSize

int

Cubeのjoinを行う際のバッファーサイズ(行数)。大きくするとロード速度は上がりますがメモリ使用量が増えます。デフォルト値は1000です。

enableDistinctRows

boolean

ローデータ取得時にdistinctRow指定を許可するか。distinct操作には重複チェックのため取得する行数に応じてメモリを消費します。デフォルト値はtrueです。

inMemoryRowThresholdOfDistinctRows

int

ローデータ取得時のdistinct処理において、メモリ内で処理する最大行数。これ以上の行を処理する場合はファイルにスワップします(速度は低下します)。-1はすべてをメモリ内で処理します。0はすべてをファイルで処理します。デフォルト値は10000です。

loadStrategy

LoadStrategy

メモリへのデータロード取得時の処理方式。

useForkJoin

boolean

fork-join frameworkベースのコードで処理するか。複数Nodeでの分散実行の際にtrue設定すると高速化が望めます。デフォルト値はfalseです。

gapFillLimit

int

ディメンジョンのギャップを埋める場合のカテゴリ数の最大値。これ以上のカテゴリとなる場合はギャップ埋めしません。デフォルト値は100です。

queryTimeoutOfWaitLoading

long

クエリ実行から読み込みを待機するタイムアウト期間(ms)。デフォルト値は3000です。

maxRowsOfDerivedCube

int

DerivedCube利用時のローデータの最大行数。メモリ内で処理するため行数を制限する。

innerCubeLoadTimeoutSec

long

Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合の待機の最大時間(秒)。

innerCubeLoadIntervalSec

int

Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合のロードが完了したかをチェックする間隔(秒)。

rawDataDimensionResolverBufferSize

int

ReferenceやSelectValueをラベル表示する際のバッファーサイズ。デフォルト値は100。

LoadStrategy

classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.LoadStrategyの実装クラスを指定します。

標準で、以下のLoadStrategyを提供します。

AllPartitionDirectLoadStrategy

classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.AllPartitionDirectLoadStrategyを指定します。

直接ダイレクトにメモリに読み込む方式です。設定変更可能な項目はありません。
メモリを大量消費しますが高速です。

PerPartitionLoadStrategy

classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.PerPartitionLoadStrategyを指定します。

パーティション単位でデータを読み込む方式です。設定変更可能な項目はありません。
パーティションタイプがMOD,LISTの場合、またはCubeの読み込み元がCSVの場合で、あらかじめパーティション単位でデータが分けられている場合、これを指定するとメモリ消費抑えつつ高速ロードが期待できます。

SaveMemoryLoadStrategy

classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.SaveMemoryLoadStrategyを指定します。

ファイルへデータをスワップしながらなるべくメモリ消費を抑えながらロードする方式です。設定変更可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.aggregation.cube.CubeService</interface>
    <class>org.iplass.mtp.impl.aggregation.cube.CubeService</class>
    <!-- ファイルやJDBCといった物理リソースへのアクセスを許可するかどうか -->
    <property name="enablePhysicalResourceLoading" value="false"/>
    <!-- メモリ内に展開したデータを圧縮するかどうか(圧縮しない場合は、メモリ使用量は増える。ただ、GC後の初回集計時に集計速度が多少遅くなることはない) -->
    <property name="useDataCompression" value="true"/>
    <!-- BitMap形式でデータ格納する際、Listとして実データを保持するかどうか。(trueにした場合、集計速度は速くなるが、メモリ使用量は増える) -->
    <property name="useFlyweightListOnBitSetColData" value="false"/>
    <!-- ObjectPool形式でデータ格納する際、HashIndexを生成するかどうか。(trueにした場合、集計速度は速くなるが、メモリ使用量は増える) -->
    <property name="useHashIndexOnListColData" value="false"/>
    <!-- HashIndex利用時のHashのセグメントサイズ。(2の累乗に自動的に補正される) -->
    <property name="hashIndexSegmentSize" value="16"/>
    <!-- 集計時の最大ディメンジョン数(Clientへの返却可能な行数) -->
    <property name="maxRowsOfDimension" value="10000"/>
    <!-- 集計時の最大ディメンジョン数(内部処理での) -->
    <property name="maxRowsOfDimensionInternal" value="100000"/>
    <!-- ローデータ取得時に分散環境下において、他Nodeから実データが転送されてくるが、それをメモリ内で扱う閾値。これより大きい場合は、一旦ファイルに落とす。デフォルト16K。 -->
    <property name="transferredRawDataInMemoryThreshold" value="16384"/>
    <!-- Cubeのjoinを行う際のバッファーサイズ(行数)。大きくするとロード速度は上がるが、メモリ使用量が増える。 -->
    <property name="joinBufferSize" value="1000"/>
    <!-- ローデータ取得時にdistinctRow指定を許可するかどうか。distinct操作には重複チェックのため、取得する行数に応じて、メモリを消費する。 -->
    <property name="enableDistinctRows" value="true"/>
    <!-- ローデータ取得時のdistinct処理において、メモリ内で処理する最大行数。これ以上の行を処理する場合はファイルにスワップする(速度は低下する)。-1はすべてをメモリ内で処理。0はすべてをファイルで処理。 -->
    <property name="inMemoryRowThresholdOfDistinctRows" value="10000"/>
    <!-- メモリへのデータロード取得時の処理方式
            SaveMemoryLoadStrategy:         ファイルへデータをスワップしながらなるべくメモリ消費を抑えながらロードする方式。
            AllPartitionDirectLoadStrategy: 直接ダイレクトにメモリに読み込む方式。メモリを大量消費するが、高速。
            PerPartitionLoadStrategy:       パーティション単位でデータを読み込む方式。
                                            パーティションタイプがMOD,LISTの場合、またはCubeの読み込み元がCSVの場合で、
                                            あらかじめパーティション単位でデータが分けられている場合、これを指定するとメモリ消費抑えつつ高速ロードが期待できる。

            ※いずれもパッケージはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load
     -->
    <property name="loadStrategy" class="org.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.SaveMemoryLoadStrategy"/>
    <!-- fork-join frameworkベースのコードで処理するか否か。複数Nodeでの分散実行の際にtrue設定すると高速化が望める -->
    <property name="useForkJoin" value="false"/>
    <!-- ディメンジョンのギャップを埋める場合のカテゴリ数の最大値。これ以上のカテゴリとなる場合は、ギャップ埋めしない -->
    <property name="gapFillLimit" value="100"/>
    <!-- DerivedCube利用時のローデータの最大行数。メモリ内で処理するため行数を制限する。 -->
    <property name="maxRowsOfDerivedCube" value="10000"/>
    <!-- Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合の待機の最大時間(秒)。 -->
    <property name="innerCubeLoadTimeoutSec" value="1800"/>
    <!-- Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合のロードが完了したかをチェックする間隔(秒)。 -->
    <property name="innerCubeLoadIntervalSec" value="10"/>
</service>

13. DefaultQueueBaseAsyncTaskService

RDBによるキューを利用した標準の非同期実行のサービスです。
非同期実行するためのAsyncTaskServiceの定義です。

インタフェース名

org.iplass.mtp.impl.async.AsyncTaskService

実装クラス名

org.iplass.mtp.impl.async.rdb.RdbAsyncTaskService

RdbAsyncTaskServiceの設定

RdbAsyncTaskServiceを設定します。

設定項目
項目 説明

defaultGetResultTimeoutMillis

long

標準の結果取得のタイムアウト時間(ミリ秒)。デフォルト値は60000(1分)です。

initialGetResultIntervalMillis

long

初期の結果取得のインターバル時間(ミリ秒)。デフォルト値は100です。

設定例
<service name="DefaultQueueBaseAsyncTaskService">
    <interface>org.iplass.mtp.impl.async.AsyncTaskService</interface>
    <class>org.iplass.mtp.impl.async.rdb.RdbAsyncTaskService</class>
    <property name="defaultGetResultTimeoutMillis" value="60000" />
    <property name="initialGetResultIntervalMillis" value="100" />
</service>

14. EntityService

エンティティを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.entity.EntityService

実装クラス名

org.iplass.mtp.impl.entity.EntityService

EntityServiceの設定

エンティティハンドラを設定します。

設定項目
項目 説明

limitOfReferences

int

エンティティの参照数の制限値。デフォルト値は1000です。

purgeTargetDate

int

ごみ箱データのクリーナー対象日数。クリーナー対象日数よりも前にごみ箱へ削除されたデータが物理削除されます。

interceptor

EntityInterceptor、複数指定可

エンティティに対する操作の前に挿む処理。

additionalStoreMaintainer

AdditionalStoreMaintainer、複数指定可

データ削除、デフラグ実行時に、併せてストア内をメンテナンスする処理。

EntityInterceptor

classはorg.iplass.mtp.entity.interceptor.EntityInterceptorの実装クラスを指定します。

AdditionalStoreMaintainer

classはorg.iplass.mtp.impl.entity.AdditionalStoreMaintainerの実装クラスを指定します。

設定例
<service>
    <interface>org.iplass.mtp.impl.entity.EntityService</interface>
    <property name="limitOfReferences" value="1000" />

    <!--
        ごみ箱データのクリーナー用日付です。日数を指定して下さい。
        下記の場合、実行時より30日前の日付がクリーナー対象日となります。
        クリーナー対象日よりも前にごみ箱へ削除されたデータが物理削除されます。
    <property name="purgeTargetDate" value="30" />
    -->

    <property name="interceptor" class="org.iplass.mtp.impl.entity.contentcache.ContentCacheInterceptor" />
    <property name="interceptor" class="org.iplass.mtp.impl.entity.auth.EntityAuthInterceptor" />
    <property name="interceptor" class="org.iplass.mtp.impl.entity.available.EntityReadOnlyInterceptor" />
    <property name="interceptor" class="org.iplass.mtp.impl.entity.auditlog.AuditLogInterceptor" />
    <property name="interceptor" class="org.iplass.mtp.impl.entity.listener.EntityEventListenerInterceptor" />
    <property name="interceptor" class="org.iplass.mtp.impl.entity.l10n.EntityLocalizationInterceptor" />
    <property name="interceptor" class="org.iplass.mtp.impl.entity.cache.EntityCacheInterceptor" />
    <property name="interceptor" class="org.iplass.mtp.impl.entity.fulltextsearch.FulltextSearchInterceptor" />

    <property name="additionalStoreMaintainer" class="org.iplass.mtp.impl.entity.auditlog.AuditLogStoreMaintainer" />
    <property name="additionalStoreMaintainer" class="org.iplass.mtp.impl.entity.fulltextsearch.FulltextSearchStoreMaintainer" />
    <property name="additionalStoreMaintainer" class="org.iplass.mtp.impl.lob.LobStoreMaintainer" />

    <property name="extendPropertyAdapterFactory" class="org.iplass.mtp.impl.entity.EnterpriseExtendPropertyAdapterFactory" />

</service>

15. FulltextSearchService

全文検索のサービスです。 全文検索の実装として、Luceneを利用した全文検索と、Solrを利用した全文検索を標準提供します。

インタフェース名

org.iplass.mtp.impl.fulltextsearch.FulltextSearchService

実装クラス名

Luceneを利用した全文検索
org.iplass.mtp.impl.fulltextsearch.FulltextSearchLuceneService
Solrを利用した全文検索
org.iplass.mtp.impl.fulltextsearch.FulltextSearchSolrService

FulltextSearchServiceの設定

全文検索の共通項目を設定します。

設定項目
項目 説明

useFulltextSearch

boolean

全文検索を利用するか。デフォルト値はfalseです。

maxRows

int

全文検索の結果件数の上限。デフォルト値は1000です。

throwExceptionWhenOverLimit

boolean

maxRows以上の件数がヒットした場合の挙動。 trueの場合、件数以上取得できたことのメッセージを表示し、検索結果は出しません。 falseの場合、件数以上取得できたことのメッセージを表示し、検索結果も出します。デフォルト値はtrueです。

FulltextSearchLuceneServiceの設定

Luceneを利用した全文検索の項目を設定します。

設定項目
項目 説明

indexWriterRAMBufferSizeMB

double

Index作成時のメモリのキャッシュサイズ。デフォルト値は64.0です。

indexWriterCommitLimit

int

Index作成時のコミット単位。

redundantTimeMinutes

long

前回Index更新日時-redundantTimeMinutes より後のデータに対してIndexの処理を行います。デフォルト値は10です。

directory

String

Index情報(検索対象値)の保存先。

analyzer

Analyzer

利用するanalyzer。

analyzerSetting

AnalyzerSetting、省略可能

analyzerを初期化する設定クラスです。

binaryParser

BinaryReferenceParser、複数指定可

BinaryReference解析用のParser。

binaryParseLimitLength

int

BinaryReferenceのParse可能な最大文字数。

defaultOperator

Operator

演算子。設定可能な演算子は`AND` または OR です。

luceneFSDirectory

org.apache.lucene.store.SimpleFSDirectoryorg.apache.lucene.store.MMapDirectoryorg.apache.lucene.store.NIOFSDirectory

ファイルシステムにINDEXファイルを保存するLucene Directoryの実装クラス。
LuceneのドキュメントによりWindowsの環境で NIOFSDirectory の利用は推薦しません。
※ 未設定の場合、org.apache.lucene.store.SimpleFSDirectory をデフォルト値として利用されます。

luceneFSDirectoryMaxChunkSizeMB

int

org.apache.lucene.store.MMapDirectory クラスが利用するメモリマッピング用maxChunkSizeです。
未設定の場合、maximum chunk size (default is 1 GiBytes for 64 bit JVMs and 256 MiBytes for 32 bit JVMs) used for memory mapping.
org.apache.lucene.store.MMapDirectory 以外が選択されている場合、この設定値は無視されます。

searcherAutoRefreshTimeMinutes

int

iPLAssが保持しているLuceneのIndexSearcher( ≒ IndexReader)が自動的に更新される時間間隔(分)です。
デフォルト値が「-1」となっています、「0」以下の値を設定している場合、自動更新処理は実行されません。

AnalyzerSetting

analyzerを初期化する設定クラスです。

classはorg.iplass.mtp.impl.fulltextsearch.AnalyzerSettingの実装クラスを指定します。

標準で以下のAnalyzerSettingを提供します。

JapaneseAnalyzerSetting

日本語用アナライザーを初期化する設定クラス。
org.iplass.mtp.impl.fulltextsearch.JapaneseAnalyzerSetting を利用することで、org.apache.lucene.analysis.ja.JapaneseAnalyzer を初期化する時に、 以下の初期化項目が設定可能です。

userDictionary

ユーザ定義辞書。クラスパス上に配置する必要があります。
未設定の場合、ユーザ定義辞書を利用しないと同じようになります。

mode

トークナイゼーションモード。org.apache.lucene.analysis.ja.JapaneseTokenizer.Mode を参照してください。
未設定の場合、デフォルト値 SEARCH が適用されます。

stopwords

ストップワード定義ファイル。クラスパス上に配置する必要があります。
未設定の場合、lucene-analyzers-kuromoji-XXX.jar 内の定義ファイルが適用されます。

stoptags

ストップタグ定義ファイル。クラスパス上に配置する必要があります。
未設定の場合、lucene-analyzers-kuromoji-XXX.jar 内の定義ファイルが適用されます。

BinaryReferenceParser

apache tikaを利用してBinaryReferenceの内容を解析します。

classはorg.iplass.mtp.impl.fulltextsearch.parser.BinaryReferenceParserの実装クラスを指定します。

標準で以下のBinaryReferenceParserを提供します。

BinaryAutoDetectParser

tikaのAutoDetectParserを利用して全てのタイプを対象に解析します。 ただし解析に必要となる依存ライブラリが存在しない場合はスキップします。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryAutoDetectParserを指定します。 設定変更可能な項目はありません。

BinaryHtmlParser

HTML用Parser。 tikaのHtmlParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParserを指定します。 設定変更可能な項目はありません。

BinaryOfficeParser

OfficeDocument(2003以前の形式)用Parser。 tikaのOfficeParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParserを指定します。 設定変更可能な項目はありません。

BinaryOOXMLParser

OfficeDocument(OOXML形式)用Parser。 tikaのOOXMLParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParserを指定します。 設定変更可能な項目はありません。

BinaryPDFParser

PDF用Parser。 tikaのPDFParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParserを指定します。 設定変更可能な項目はありません。

BinaryTextParser

PlainText用Parser。 tikaのTXTParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParserを指定します。 設定変更可能な項目はありません。

BinaryXMLParser

XML用Parser。 tikaのXMLParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParserを指定します。 設定変更可能な項目はありません。

BinaryNameTypeParser

全てのバイナリファイルを対象に、nameとtypeを返します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParserを指定します。 設定変更可能な項目はありません。

FulltextSearchSolrServiceの設定

Solrを利用した全文検索の項目を設定します。

設定項目
項目 説明

solrUrl

String、複数指定可

用意したsolrサーバのURL。

solrMasterUrl

String

レプリケーション機能利用時のマスターサーバのURL。

highlightPreTag

String

ハイライト用の開始タグ。

highlightPostTag

String

ハイライト用の終了タグ。

設定例
<!--
    ■全文検索で利用するService

    useFulltextSearch:              全文検索を利用する場合は、tureへ変更してください。
    maxRows:                        全文検索の結果件数の上限を設定してください。
    throwExceptionWhenOverLimit:    maxRows以上の件数がヒットした場合の挙動を切り替えます。
                                    true  -> 件数以上取得できたことのメッセージを表示し、検索結果は出さない。
                                    false -> 件数以上取得できたことのメッセージを表示し、検索結果も出す。
    indexWriterRAMBufferSizeMB: Index作成時のメモリのキャッシュサイズを設定します。
    redundantTimeMinutes:           「前回Index更新日時-redundantTimeMinutes」より後のデータに対してIndexの処理を行います。

    □ solr利用の場合
    solrUrl:
        用意したsolrサーバのURLを指定してください。

    □ lunece利用の場合
    directory:
        Index情報(検索対象値)の保存先を指定してください。
    analyzer:
        利用するanalyzerを指定してください。


    ■use to fulltext search service

    useFulltextSearch:              If use fulltext search, change to true.
    maxRows:                        Setting max rows of fulltext search result.
    throwExceptionWhenOverLimit:    If maxRows or more of the search result is hit, set one of the operations.
                                    true  -> Display a message that was able to get maxRows or more, and not display search result.
                                    false -> Display a message that was able to get maxRows or more, and display search result.
    indexWriterRAMBufferSizeMB: Setting the memory cache size when creating a index.
    redundantTimeMinutes:           do the processing of the Index for the data after the "previous Index update date -redundantTimeMinutes".

    □ use to solr
    solrUrl:
        Set url of solr server.

    □ use to lunece
    directory:
        Set save directory of the index information.
    analyzer:
        Set the analyzer to use
-->
<service>
    <interface>org.iplass.mtp.impl.fulltextsearch.FulltextSearchService</interface>
    <property name="useFulltextSearch" value="false" />
    <property name="maxRows" value="1000" />
    <property name="highlightPreTag" value="&lt;b style=&quot;background:aquamarine&quot;&gt;" />
    <property name="highlightPostTag" value="&lt;/b&gt;" />
    <property name="throwExceptionWhenOverLimit" value="true"/>

    <!-- solr利用 -->
    <!--
    <class>org.iplass.mtp.impl.fulltextsearch.FulltextSearchSolrService</class>
    <property name="solrUrl" value="http://ADDRESS:PORT/solr/coreName/" />
     -->

    <!-- lucene利用 -->
    <class>org.iplass.mtp.impl.fulltextsearch.FulltextSearchLuceneService</class>
    <property name="directory" value="D:\tmp\lucene" />
    <property name="defaultOperator" value="AND" />
    <property name="analyzer" value="org.apache.lucene.analysis.ja.JapaneseAnalyzer" />
    <!-- JapaneseAnalyzerを初期化する設定。
    <property name="analyzerSetting" class="org.iplass.mtp.impl.fulltextsearch.JapaneseAnalyzerSetting">
        <property name="userDictionary" value="/lucene/userdict.txt" />
        <property name="mode" value="SEARCH" />
        <property name="stopwords" value="/lucene/stopwords.txt" />
        <property name="stoptags" value="/lucene/stoptags.txt" />
    </property>
    -->
    <property name="indexWriterRAMBufferSizeMB" value="64.0"/>
    <property name="redundantTimeMinutes" value="10"/>
    <property name="indexWriterCommitLimit" value="-1"/>

    <!-- BinaryReferenceのParse可能な最大文字数 -->
    <property name="binaryParseLimitLength" value="100000"/>

    <!--
        BinaryReference用Parser設定。
        org.iplass.mtp.impl.fulltextsearch.parser.BinaryReferenceParser
        を実装したParserを設定可能。
        BinaryReferenceのタイプに対して対応されているParserを上から順にチェックする。
     -->

    <!-- PDF用Parser。tikaのPDFParserを利用して解析する -->
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParser" />
    <!-- OfficeDocument(OOXML形式)用Parser。tikaのOOXMLParserを利用して解析する -->
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParser" />
    <!-- OfficeDocument(2003以前の形式)用Parser。tikaのOfficeParserを利用して解析する -->
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParser" />
    <!-- HTML用Parser。tikaのHtmlParserを利用して解析する -->
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParser" />
    <!-- PlainText用Parser。tikaのTXTParserを利用して解析する -->
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParser" />
    <!-- XML用Parser。tikaのXMLParserを利用して解析する -->
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParser" />

    <!-- tikaのAutoDetectParserを利用して全てのタイプを対象に解析する。
        ただし解析に必要となる依存ライブラリが存在しない場合はスキップされる -->
    <!--
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryAutoDetectParser" />
    -->

    <!-- 全てのバイナリファイルを対象に、nameとtypeのみ返す -->
    <property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParser" />

</service>

16. InterceptorService

コマンド実行時に呼び出されるインターセプターを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.command.InterceptorService

実装クラス名

org.iplass.mtp.impl.command.InterceptorService

InterceptorServiceの設定

コマンドを実行する機能単位で呼び出すインターセプターを設定します。

設定項目
項目 説明

invoker

CommandInterceptor、複数指定可

コマンドのインターセプター。

web

CommandInterceptor、複数指定可

Actionのインターセプター。

webApi

CommandInterceptor、複数指定可

WebApiのインターセプター。

soap

CommandInterceptor、複数指定可

SOAP通信のインターセプター。

CommandInterceptor

classはorg.iplass.mtp.command.interceptor.CommandInterceptorの実装クラスを指定します。

標準で、以下のCommandInterceptorを提供します。

InitialInterceptor

classはorg.iplass.mtp.impl.webapi.interceptors.InitialInterceptorを指定します。

リクエストの初期処理として言語とプレビュー時刻を設定するインターセプターです。設定変更可能な項目はありません。

AuthInterceptor(WebApi)

classはorg.iplass.mtp.impl.webapi.interceptors.AuthInterceptorを指定します。

カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。

AuthInterceptor(SOAP)

classはorg.iplass.mtp.impl.webapi.soap.interceptors.AuthInterceptorを指定します。

カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。

LoggingInterceptor(Command)

classはorg.iplass.mtp.impl.command.interceptors.LoggingInterceptorを指定します。

コマンドの実行結果をログ出力するインターセプターです。設定変更可能な項目は有りません。

LoggingInterceptor(WebApi)

classはorg.iplass.mtp.impl.webapi.interceptors.LoggingInterceptorを指定します。

WebApiの実行結果をログ出力するインターセプターです。設定変更可能な項目は有りません。

TokenInterceptor(Web)

classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。

Actionのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。

TokenInterceptor(WebApi)

classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。

WebApiのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。

UnavailableInterceptor

classはorg.iplass.mtp.impl.webapi.interceptors.UnavailableInterceptorを指定します。

トランザクションの処理を行うインターセプターです。設定変更可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.command.InterceptorService</interface>
    <class>org.iplass.mtp.impl.command.InterceptorService</class>

    <property name="invoker" class="org.iplass.mtp.impl.command.interceptors.LoggingInterceptor" />
    <property name="invoker" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />

    <property name="web" class="org.iplass.mtp.impl.command.interceptors.LoggingInterceptor" />
    <property name="web" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />
    <property name="web" class="org.iplass.mtp.impl.web.interceptors.TokenInterceptor" />

    <property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.InitialInterceptor" />
    <property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.AuthInterceptor" />
    <property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.UnavailableInterceptor" />
    <property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.LoggingInterceptor" />
    <property name="webApi" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />
    <property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.TokenInterceptor" />

    <property name="soap" class="org.iplass.mtp.impl.webapi.interceptors.InitialInterceptor" />
    <property name="soap" class="org.iplass.mtp.impl.webapi.soap.interceptors.AuthInterceptor" />
    <property name="soap" class="org.iplass.mtp.impl.webapi.interceptors.UnavailableInterceptor" />
    <property name="soap" class="org.iplass.mtp.impl.command.interceptors.LoggingInterceptor" />
    <property name="soap" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />

</service>
<service>
    <interface>org.iplass.mtp.impl.command.InterceptorService</interface>
    <class>org.iplass.mtp.impl.command.InterceptorService</class>

    <property name="invoker" class="org.iplass.mtp.impl.command.interceptors.LoggingInterceptor" />
    <property name="invoker" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />

</service>

17. I18nService

国際化の設定を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.i18n.I18nService

実装クラス名

org.iplass.mtp.impl.i18n.I18nService

I18nServiceの設定

I18nServiceを設定します。

設定項目
項目 説明

enableLanguages

EnableLanguages、複数指定可

利用可能言語の設定。

defaultLocaleFormat

LocaleFormat

標準のロケール書式の設定。

localeFormat

LocaleFormat、複数指定可

各ロケールの書式の設定。

languageFonts

LanguageFonts、複数指定可

各言語のフォントの設定。

EnableLanguages

classはorg.iplass.mtp.impl.i18n.EnableLanguagesを指定します。

設定可能言語です。以下の項目を設定可能です。

項目 説明

languageKey

String

言語キー。

languageName

String

言語名。

otherLanguageKey

String、複数指定可

その他の言語キー。

LocaleFormat

classはorg.iplass.mtp.impl.i18n.LocaleFormatを指定します。

ロケール書式です。以下の項目を設定可能です。

項目 説明

locale

String、複数指定可

ロケール。

serverDateFormat

String

サーバ上でのDate型形式。

serverTimeFormat

String

サーバ上でのTime型形式。

browserInputDateFormat

String

ブラウザ上でのDate型入力形式。

browserInputTimeSecFormat

String

ブラウザ上でのTime型入力形式(秒)。

browserInputTimeMinFormat

String

ブラウザ上でのTime型入力形式(分)。

browserInputTimeHourFormat

String

ブラウザ上でのTime型入力形式(時)。

outputDateFormat

String

Entity検索結果、CSV出力結果などのDate型出力形式。

outputDateWeekdayFormat

String

Entity検索結果、CSV出力結果などのDate型出力形式(曜日付)。

excelDateFormat

String

ExcelでのDate型形式。

excelTimeFormat

String

ExcelでのTime型形式。

outputTimeSecFormat

String

Entity検索結果、CSV出力結果などのDate型出力形式(秒)。

outputTimeMinFormat

String

Entity検索結果、CSV出力結果などのDate型出力形式(分)。

outputTimeHourFormat

String

Entity検索結果、CSV出力結果などのDate型出力形式(時)。

lastNameIsFirst

boolean

苗字を先頭にするか。

LanguageFonts

classはorg.iplass.mtp.impl.i18n.LanguageFontsを指定します。

言語のフォントです。以下の項目を設定可能です。

項目 説明

language

String

言語。

fonts

String、複数指定可

フォント。

設定例
<service>
    <interface>org.iplass.mtp.impl.i18n.I18nService</interface>
    <class>org.iplass.mtp.impl.i18n.I18nService</class>

    <!-- 設定可能言語 -->
    <property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
        <property name="languageKey" value="ja" />
        <property name="languageName" value="日本語" />
    </property>
    <property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
        <property name="languageKey" value="en" />
        <property name="otherLanguageKey" value="en-US" />
        <property name="languageName" value="English" />
    </property>
    <property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
        <property name="languageKey" value="zh-CN" />
        <property name="otherLanguageKey" value="zh" />
        <property name="otherLanguageKey" value="zh-SG" />
        <property name="languageName" value="简体中文" />
    </property>
    <property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
        <property name="languageKey" value="zh-TW" />
        <property name="otherLanguageKey" value="zh-HK" />
        <property name="languageName" value="繁體中文" />
    </property>
    <property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
        <property name="languageKey" value="th" />
        <property name="otherLanguageKey" value="th-TH" />
        <property name="languageName" value="ภาษาไทย" />
    </property>

    <!-- locale format -->
    <property name="defaultLocaleFormat" class="org.iplass.mtp.impl.i18n.LocaleFormat">
        <property name="locale" value="ja" />
        <property name="locale" value="ja_JP" />
        <property name="locale" value="zh" />
        <property name="locale" value="zh_CN" />
        <property name="locale" value="zh_TW" />
        <property name="locale" value="zh_HK" />

        <!--
            Formatに指定可能な書式
                yyyy : full year (four digit)
                MM   : day of year (two digit)
                dd   : day of month (two digit)
                MMM  : month name short (ex. Jan)
                MMMM : month name long (ex. January)
                HH   : hour (two digit)
                mm   : minute (two digit)
                ss   : second (two digit)
                SSS  : millisecond (three digit)

            ※MMM、MMMMはoutputXXXでのみ利用可能。browserInputDateFormatでは利用不可。
             またロケールがen、en_XXの場合のみ正常に動作します。

            ※Server系のフォーマットは内部制御があるため変更しないでください。
            ※Time系の入力フォーマットはRange制御があるため変更しないでください。
         -->

        <!-- Server側でDateの入力値として受け取る形式(変更不可) -->
        <property name="serverDateFormat" value="yyyyMMdd" />
        <!-- Server側でTimeの入力値として受け取る形式(変更不可) -->
        <property name="serverTimeFormat" value="HHmmssSSS" />

        <!-- ブラウザ上でのDateの入力形式(テナントで個別指定可能) -->
        <property name="browserInputDateFormat" value="yyyyMMdd" />

        <!-- ブラウザ上でのTimeの入力形式(TimeはRange制御があるので変更不可) -->
        <property name="browserInputTimeSecFormat" value="HH:mm:ss" />
        <property name="browserInputTimeMinFormat" value="HH:mm" />
        <property name="browserInputTimeHourFormat" value="HH" />

        <!-- Date型の出力形式(検索結果やCSVなど。テナントで個別指定可能) -->
        <property name="outputDateFormat" value="yyyy/MM/dd" />
        <property name="outputDateWeekdayFormat" value="yyyy/MM/dd EEEE" />
        <!-- Excelでの日付出力形式 -->
        <property name="excelDateFormat" value="yyyy/M/d" />
        <property name="excelTimeFormat" value="H:mm" />

        <!-- Time型の出力形式(検索結果やCSVなど。現状テナントで個別指定不可) -->
        <property name="outputTimeSecFormat" value="HH:mm:ss" />
        <property name="outputTimeMinFormat" value="HH:mm" />
        <property name="outputTimeHourFormat" value="HH" />

        <property name="lastNameIsFirst" value="true" />
    </property>
    <property name="localeFormat" class="org.iplass.mtp.impl.i18n.LocaleFormat">
        <property name="locale" value="en_US" />
        <property name="locale" value="en" />

        <property name="serverDateFormat" value="yyyyMMdd" />
        <property name="serverTimeFormat" value="HHmmssSSS" />

        <property name="browserInputDateFormat" value="MM/dd/yyyy" />
        <property name="browserInputTimeSecFormat" value="HH:mm:ss" />
        <property name="browserInputTimeMinFormat" value="HH:mm" />
        <property name="browserInputTimeHourFormat" value="HH" />

        <property name="outputDateFormat" value="MM/dd/yyyy" />
        <property name="outputDateWeekdayFormat" value="EEEE, MM/dd/yyyy" />
        <property name="excelDateFormat" value="M/d/yyyy" />
        <property name="excelTimeFormat" value="H:mm" />
        <property name="outputTimeSecFormat" value="HH:mm:ss" />
        <property name="outputTimeMinFormat" value="HH:mm" />
        <property name="outputTimeHourFormat" value="HH" />

        <property name="lastNameIsFirst" value="false" />
    </property>
    <property name="localeFormat" class="org.iplass.mtp.impl.i18n.LocaleFormat">
        <property name="locale" value="en_SG" />
        <property name="locale" value="th" />
        <property name="locale" value="th_TH" />

        <property name="serverDateFormat" value="yyyyMMdd" />
        <property name="serverTimeFormat" value="HHmmssSSS" />

        <property name="browserInputDateFormat" value="dd/MM/yyyy" />
        <property name="browserInputTimeSecFormat" value="HH:mm:ss" />
        <property name="browserInputTimeMinFormat" value="HH:mm" />
        <property name="browserInputTimeHourFormat" value="HH" />

        <property name="outputDateFormat" value="dd/MM/yyyy" />
        <property name="outputDateWeekdayFormat" value="EEEE dd/MM/yyyy" />
        <property name="excelDateFormat" value="d/M/yyyy" />
        <property name="excelTimeFormat" value="H:mm" />
        <property name="outputTimeSecFormat" value="HH:mm:ss" />
        <property name="outputTimeMinFormat" value="HH:mm" />
        <property name="outputTimeHourFormat" value="HH" />

        <property name="lastNameIsFirst" value="false" />
    </property>

    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="ja" />
        <property name="fonts" value="Meiryo" />
        <property name="fonts" value="MS PGothic" />
        <property name="fonts" value="Hiragino Kaku Gothic Pro" />
        <property name="fonts" value="ヒラギノ角ゴ Pro W3" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="en" />
        <property name="fonts" value="Segoe UI" />
        <property name="fonts" value="Helvetica Neue" />
        <property name="fonts" value="Arial" />
        <property name="fonts" value="Helvetica" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="zh-CN" />
        <property name="fonts" value="Microsoft Yahei" />
        <property name="fonts" value="PingHei" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="zh-TW" />
        <property name="fonts" value="Microsoft Yahei" />
        <property name="fonts" value="PingHei" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="th" />
        <property name="fonts" value="Leelawadee" />
        <property name="fonts" value="Tahoma" />
        <property name="fonts" value="sans-serif" />
    </property>
</service>

18. LobStoreService

LOBデータの永続化を行うサービスです。

インタフェース名

org.iplass.mtp.impl.lob.LobStoreService

実装クラス名

org.iplass.mtp.impl.lob.LobStoreService

LobStoreServiceの設定

LobStoreServiceを設定します。

設定項目
項目 説明

binaryStore

LobStore

バイナリデータのLobStore。

longTextStore

LobStore

LongTextのLobStore。

defaultLobStoreName

String

デフォルトとするLobストアの名前。デフォルト値は default です。

manageLobSizeOnRdb

boolean

LobサイズをRdb(lob_store)で管理するか。デフォルト値はfalse(管理しない)です。

LobStore

classはorg.iplass.mtp.impl.lob.lobstore.LobStoreの実装クラスを指定します。

標準で、Rdbに保存するRdbLobStore、ファイルに保存するFileLobStore、AWS S3を利用するS3LobStore、 複数のLobStoreを合わせて単一のLobStoreと設定することが可能なAddableMultiLobStoreを提供します。 各LobStoreの設定可能な項目は以下になります。

RdbLobStore

classはorg.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStoreを指定します。

RDBに保存するLobStoreです。 以下の項目を設定可能です。

項目 説明

lobValidator

LobValidator

Lobに対するチェック処理。

FileLobStore

classはorg.iplass.mtp.impl.lob.lobstore.file.FileLobStoreを指定します。

ファイルに保存するLobStoreです。 以下の項目を設定可能です。

項目 説明

rootDir

String

保存先のルートディレクトリ。

overwriteFile

boolean

ファイルの上書きを行うか。デフォルト値はfalse(上書きしない)です。

lobValidator

LobValidator

Lobに対するチェック処理。

S3LobStore

classはorg.iplass.mtp.impl.aws.lobstore.s3.S3LobStoreを指定します。

S3に保存するLobStoreです。 以下の項目を設定可能です。

項目 説明

region

String

S3のリージョン

endpoint

String

S3のendpoint

bucketName

String

S3のバケット名

encryption

S3Encryption

S3オブジェクトを暗号化する場合に指定

overwriteFile

boolean

既にS3オブジェクトが存在した場合に上書きを行うか否か。
デフォルト値はfalse(上書きしない)です。

lobValidator

LobValidator

Lobに対するチェック処理。

S3Encryption

classはorg.iplass.mtp.impl.aws.lobstore.s3.S3Encryptionの実装クラスを指定します。

標準で、以下のS3Encryptionを提供しています。

SseS3Encryption

classはorg.iplass.mtp.impl.aws.lobstore.s3.SseS3Encryptionを設定します。

SSE-S3方式で暗号化します。設定変更可能な項目は有りません。

SseKmsEncryption

classはorg.iplass.mtp.impl.aws.lobstore.s3.SseKmsEncryptionを設定します。

SSE-KMS方式で暗号化します。 以下の項目を設定可能です。

項目 説明

awsKmsKeyId

String

AWS Key Management Service (KMS)S3のKey Id

AddableMultiLobStore

classはorg.iplass.mtp.impl.lob.lobstore.multi.AddableMultiLobStoreを指定します。

複数のLobStoreを合わせて単一のLobStoreと設定することが可能なLobStoreです。 以下の項目を設定可能です。

項目 説明

lobStore

LobStore、複数指定可

LobStoreの設定。

lobValidator

LobValidator

Lobに対するチェック処理。

LobValidator

classにorg.iplass.mtp.impl.lob.lobstore.LobValidatorの実装クラスを設定します。

標準で、以下のLobValidatorを提供しています。

LogLobValidator

classはorg.iplass.mtp.impl.lob.lobstore.LogLobValidatorを設定します。

単純にログを出力のみを行います。設定変更可能な項目は有りません。

ProcessLobValidator

classはorg.iplass.mtp.impl.lob.lobstore.ProcessLobValidatorを設定します。

外部プロセスを起動します。 以下の項目を設定可能です。

項目 説明

command

String、複数指定可

外部プロセスとパラメータを指定します。

checksumAlgorithm

String

checksumのアルゴリズムを指定します。 Adler-32/CRC-32/MD5/SHA-1/SHA-256のいずれかを指定してください。

設定例
<service>
    <interface>org.iplass.mtp.impl.lob.LobStoreService</interface>
    <property name="lobDao" class="org.iplass.mtp.impl.lob.EncryptLobDao" />

    <property name="defaultLobStoreName" value="defaultStore" />
    <property name="defaultStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore">
    </property>
    <!--
    <property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
        <property name="rootDir" value="D:\tmp\fileLobStore" />
        <property name="overwriteFile" value="false" />
    </property>
    <property name="longTextStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore">
    </property>
     -->

    <!--
        複数のLobStoreを合わせて単一のLobStoreと設定することが可能。
        新規追加は先頭に定義されているlobStoreに対して行われる。
        参照はすべてのlobStoreにから検索する。
        削除もすべてのlobStoreに対して実行される。
     -->
    <!--
    <property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.multi.AddableMultiLobStore">
        <property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
            <property name="rootDir" value="D:\tmp\fls2" />
        </property>
        <property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
            <property name="rootDir" value="D:\tmp\fls1" />
        </property>
        <property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore" />
    </property>
     -->

     <!--
        LobサイズをRdb(lob_store)で管理するかを指定する。
        ver1.5.2でサイズ管理制御のためにlob_storeテーブルのレイアウトを変更。
        既存システムでlob_storeテーブルが変更できない場合は、falseを指定することで回避可能。 -->
    <property name="manageLobSizeOnRdb" value="false" />
</service>

19. MailService

メールテンプレートの定義(メタデータ)の管理と、メール送信を行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.mail.MailService

実装クラス名

JavaMailを利用したメール送信
org.iplass.mtp.impl.mail.MailServiceImpl
Amazon SESを利用したメール送信
org.iplass.mtp.impl.mail.AWSMailService
SendGridを利用したメール送信
org.iplass.mtp.impl.sendgrid.SendGridMailServiceImpl

MailServiceImplの設定

標準のメール送信(JavaMail)を利用する場合、MailServiceImplを設定します。
JavaMailで定義される標準のプロパティ、各プロバイダ実装のプロパティ、およびiPLAssで拡張したプロパティを設定可能です。

設定項目
項目 説明

mail.smtp.host

String、必須

SMTPサーバのホスト名。

mail.smtp.port

int

SMTPサーバのポート番号。デフォルト値は25です。

mail.smtp.connectiontimeout

int

SMTPコネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.smtp.timeout

int

SMTP通信時のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.pop3.connectiontimeout

int

POP3コネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.pop3.timeout

int

POP3通信時のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.*

-

その他JavaMailで定義される標準のプロパティ、各プロバイダ実装のプロパティを設定可能です。

mail.host
mail.smtp.from
mail.smtp.auth
mail.transport.protocol
など

mail.smtp.popbeforesmtp

boolean

POP before SMTPにより認証する場合trueを設定します。デフォルト値はfalseです。
iPLAssにて拡張されたプロパティです。

mail.pop3.auth.id

String

POP before SMTP認証する際のユーザのIDです。
この設定はmail.smtp.popbeforesmtpがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.pop3.auth.password

String

POP before SMTP認証する際のユーザのパスワードです。
この設定はmail.smtp.popbeforesmtpがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.smtp.auth.id

String

SMTP認証する際のユーザIDです。
この設定はmail.smtp.authがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.smtp.auth.password

String

SMTP認証する際のパスワードです。
この設定はmail.smtp.authがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.charset

String

メールのデフォルトのcharsetです。
例えば ISO-2022-JP を指定します。
iPLAssにて拡張されたプロパティです。

mail.encoding

String

メールのデフォルトのencodingです。
例えば 7bit を指定します。
iPLAssにて拡張されたプロパティです。

debug

boolean

デバッグを有効にした場合、標準出力にトレースを出力します。

listener

SendMailListener、複数指定可

メール送信時のListener。

retryIntervalMillis

long

メール送信失敗時のリトライ間隔(ミリ秒)。

retryCount

int

メール送信失敗時のリトライ回数。

SendMailListener

classはorg.iplass.mtp.mail.SendMailListenerの実装クラスを指定します。

標準で送信メールのログ出力を行うorg.iplass.mtp.dev.mail.LoggingSendMailListenerを提供します。 LoggingSendMailListenerは設定変更可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.mail.MailService</interface>
    <class>org.iplass.mtp.impl.mail.MailServiceImpl</class>

    <!-- SMTP設定  -->
    <!-- SMTPサーバホスト -->
    <property name="mail.smtp.host" value="XXXXXXXX"/>
    <!-- SMTPサーバポート  通常:25 / サブミッションポート:587 / SSL:465 -->
    <property name="mail.smtp.port" value="25"/>
    <!-- タイムアウト設定 -->
    <property name="mail.smtp.connectiontimeout" value="60000"/>
    <property name="mail.smtp.timeout" value="60000"/>

    <!--
        mail.smtp.hostプロパティはmail.hostプロパティに優先して認識されるため、2つの値が同一ならば、
        mail.smtp.hostプロパティを設定するだけでもメール送信は可能です。
        しかし、mail.hostプロパティは内部的にMessage-ID ヘッダを生成するのに利用されます。
        mail.hostプロパティを明示的に指定していない場合、Message-IDヘッダが正しく生成できない可能性があります。
     -->
    <property name="mail.host" value="XXXXXXXX"/>

    <!-- デフォルトCharset -->
    <property name="mail.charset" value="ISO-2022-JP"/>

    <!--
        Content-Transfer-Encoding
        これは、一部のケータイメールが quoted-printable を処理できないことへの対策となります。
     -->
    <property name="mail.encoding" value="7bit"/>

    <!-- ■ for develop only (additional="true) ■ -->
    <!-- 送信メールをデバッグ出力する場合、以下を有効にしてください。 -->
    <!--
    <property name="listener" class="org.iplass.mtp.mail.listeners.LoggingSendMailListener" additional="true"/>
     -->
</service>

AWSMailServiceの設定

Amazon SESを利用する場合、AWSMailServiceを設定します。
AWSMailServiceを利用する場合、AWSSettingにてAWSの認証設定が行われている必要があります。

設定項目
項目 説明

mail.charset

String

メールのデフォルトのcharsetです。
例えば ISO-2022-JP を指定します。

mail.encoding

String

メールのデフォルトのencodingです。
例えば 7bit を指定します。

mail.aws.host

String

SESのendpointを指定可能です。
未指定の場合はデフォルトのendpointが利用されます。

debug

boolean

デバッグを有効にした場合、標準出力にトレースを出力します。

listener

SendMailListener、複数指定可

メール送信時のListener。

retryIntervalMillis

long

メール送信失敗時のリトライ間隔(ミリ秒)。

retryCount

int

メール送信失敗時のリトライ回数。

SendMailListener

MailServiceImplのSendMailListenerと同様です。

設定例

MailServiceImplと同様です。

SendGridMailServiceImplの設定

SendGridを利用する場合、SendGridMailServiceImplを設定します。

設定項目
項目 説明

checkBounce

boolean

送信前にバウンスリスト、ブロックリストチェックを行うか。デフォルト値はtrueです。

httpClientConfig

HttpClientConfig

HTTPクライアントの設定。

httpTransport

HttpTransport

WebApiへのHTTPリクエストの設定。

mailApiClient

MailClient

メールクライアントの設定。

deleteBouncePattern

String

SendGridのバウンス、ブロックリストにアドレスが載った際にリストから削除対象とするアドレス。ドメイン.正規表現の形式で指定します。

bounce

BounceClient

バウンスクライアント。

block

BlockClient

ブロッククライアント。

listener

SendMailListener、複数指定可

メール送信時のListener。

retryIntervalMillis

long

送信失敗時のリトライ間隔(ミリ秒)。

retryCount

int

送信失敗時のリトライ回数。

HttpClientConfig

classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。

以下の項目を設定可能です。

項目 説明

connectionTimeout

int

HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。

soTimeout

int

HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。デフォルト値は30000(30秒)です。

poolingMaxTotal

int

httpコネクションのプールの最大数。デフォルト値は20です。

poolingDefaultMaxPerRoute

int

ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。

poolingTimeToLive

int

プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。

proxyHost

String

プロキシサーバのホスト。

proxyPort

int

プロキシサーバのポート番号。

HttpTransport

classはorg.iplass.mtp.impl.sendgrid.apiclient.HttpTransportImplを指定します。

以下の項目を設定可能です。

項目 説明

apiUser

String、必須

SendGridのAPIユーザー。

apiKey

String、必須

SendGridのAPIキー。

webApiRoot

String、必須

SendGridのAPIのURL。

MailClient

classはorg.iplass.mtp.impl.sendgrid.apiclient.MailClientImplを指定します。

以下の項目を設定可能です。

項目 説明

charset

String

メールの文字コード。

BounceClient

classはorg.iplass.mtp.impl.sendgrid.apiclient.BounceClientImplを指定します。

BounceClientImplは設定変更可能な項目はありません。

BlockClient

classはorg.iplass.mtp.impl.sendgrid.apiclient.BlockClientImplを指定します。

BlockClientImplは設定変更可能な項目はありません。

SendMailListener

MailServiceImplのSendMailListenerと同様です。

設定例
<service>
    <interface>org.iplass.mtp.impl.mail.MailService</interface>
    <class>org.iplass.mtp.impl.sendgrid.SendGridMailServiceImpl</class>
    <!-- 送信前にバウンスリスト、ブロックリストチェックを行わない場合、checkBounceをfalseに設定 -->
    <!--
    <property name="checkBounce" value="false" />
    -->
    <property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
        <property name="connectionTimeout" value="30000" />
        <property name="soTimeout" value="30000" />
        <!-- ■ for develop only ■ -->
        <!--
        <property name="proxyHost" value="proxyhost.isid.co.jp" />
        <property name="proxyPort" value="8080" />
         -->
    </property>
    <property name="httpTransport" class="org.iplass.mtp.impl.sendgrid.apiclient.HttpTransportImpl">
        <!-- SendGridの認証用キー -->
        <property name="apiUser" value="yourOwnApiUser" />
        <property name="apiKey" value="yourOwnApiKey" />
        <!-- SendGridエンドポイント -->
        <property name="webApiRoot" value="https://api.sendgrid.com/api" />
    </property>

    <property name="mailApiClient" class="org.iplass.mtp.impl.sendgrid.apiclient.MailClientImpl">
        <!-- メールの文字コード -->
        <property name="charset" value="UTF-8" />
    </property>

    <!-- SendGridのバウンス、ブロックリストにアドレスが載った際、リストから削除対象とするドメイン.正規表現で指定. -->
    <property name="deleteBouncePattern" value=".*@ldap.isid.jp|.*@contract.isid.co.jp" />

    <property name="bounce" class="org.iplass.mtp.impl.sendgrid.apiclient.BounceClientImpl" />
    <property name="block" class="org.iplass.mtp.impl.sendgrid.apiclient.BlockClientImpl" />

    <!-- ■ for develop only (additional="true") ■ -->
    <!--
    <property name="listener" class="org.iplass.mtp.dev.mail.LoggingSendMailListener" additional="true"/>
     -->
</service>

20. MessageService

リソースバンドルを管理するためのサービスです。

インタフェース名

org.iplass.mtp.impl.message.MessageService

実装クラス名

org.iplass.mtp.impl.message.MessageService

MessageServiceの設定

MessageServiceを設定します。

設定項目
項目 説明

resourceBundle

ResourceBundleConfig、複数指定可

ResourceBundleConfigの設定。

ResourceBundleConfig

classはorg.iplass.mtp.impl.message.ResourceBundleConfigを指定します。

標準でorg.iplass.mtp.impl.query.QuerySyntaxRegisterを提供しています。 以下の項目を設定可能です。

項目 説明

baseBundleNamePattern

String

バンドル名のパターン。

formats

String、複数指定可

ファイルのフォーマット。mtp.message を指定した場合はMessage定義をリソースバンドルとして扱います。

fallbackToSystemLocale

boolean

リソースバンドルを検索する際にシステムロケールをフォールバックするか。

設定例

<service>
    <interface>org.iplass.mtp.impl.message.MessageService</interface>
    <class>org.iplass.mtp.impl.message.MessageService</class>
    <property name="resourceBundle">
        <property name="baseBundleNamePattern" value="^org/iplass/.*$" />
        <property name="formats" value="java.class" />
        <property name="formats" value="java.properties" />
        <property name="fallbackToSystemLocale" value="false" />
    </property>
    <property name="resourceBundle">
        <property name="formats" value="mtp.message" />
        <property name="formats" value="java.class" />
        <property name="formats" value="java.properties" />
        <property name="fallbackToSystemLocale" value="false" />
    </property>
</service>

21. MetaDataRepository

メタデータの管理を行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.metadata.MetaDataRepository

実装クラス名

org.iplass.mtp.impl.metadata.MetaDataRepository

MetaDataRepositoryの設定

メタデータの管理方法を設定します。

設定項目
項目 説明

resourcePath

String、複数指定可

メタデータをXMLで定義したリソースファイルのパス。

filePath

String、複数指定可

メタデータをXMLで定義したファイルのパス。

annotatedClass

String、複数指定可

メタデータをアノテーションで定義したJavaクラス。 MetaDataSeeAlso、CommandClass、AsyncCommand、AsyncCommands、ActionMapping、ActionMappings、Template、Templates、WebApi、WebApisの各アノテーションが対象です。

tenantLocalStore

MetaDataStore

テナントのローカルメタデータを管理するためのMetaDataStore。

sharedStore

MetaDataStore

複数のテナントで共有するメタデータを管理するためのMetaDataStore。

MetaDataStore

各種メタデータを管理するための仕組みを提供します。

classはorg.iplass.mtp.impl.metadata.MetaDataStoreの実装クラスを指定します。

標準で以下のMetaDataStoreを提供します。

AnnotationMetaDataStore

MetaDataRepositoryのannotatedClassで指定されたJavaクラスのアノテーションからメタデータを読み込みます。

JavaクラスのアノテーションがMetaDataSeeAlsoの場合、MetaDataSeeAlsoに指定されたJavaクラスのアノテーションを読み込みます。 その他のアノテーション場合、annotatableMetaDataFactoryに指定されたクラスからアノテーションに対応するメタデータを作成します。

読み込み専用で、メタデータの登録/更新/削除は出来ません。

classにorg.iplass.mtp.impl.metadata.annotation.AnnotationMetaDataStoreを指定します。

項目 説明

annotatableMetaDataFactory

AnnotatableMetaDataFactory、複数指定可

アノテーションを読み込むためのクラス。

XmlResourceMetaDataStore

MetaDataRepositoryのresourcePathで指定されたクラスパス内に存在するXMLファイルからメタデータを読み込みます。 同様にfilePathで指定されたXMLファイルからXMLファイル絡めたデータを読み込みます。

読み込み専用で、メタデータの登録/更新/削除は出来ません。

classにorg.iplass.mtp.impl.metadata.xmlresource.XmlResourceMetaDataStoreを指定します。 設定変更可能な項目はありません。

RdbMetaDataStore

データベースを利用してメタデータを管理します。 MetaDataRepositoryのtenantLocalStoreでデフォルト設定になっており、各テナントで追加/編集したメタデータはデータベースで管理されます。

classにorg.iplass.mtp.impl.metadata.rdb.RdbMetaDataStoreを指定します。 設定変更可能な項目はありません。

CompositeMetaDataStore

メタデータを種類毎にMetaDataStoreを切り替えて管理します。

ブランクプロジェクトのservice-configにコメント化された状態で定義されています。 メタデータのバージョン管理をソース管理サーバで行う場合はコメント化を解除してください。 一部のメタデータを除いて、ローカルファイルとして管理できるようになります。

classにorg.iplass.mtp.impl.metadata.composite.CompositeMetaDataStoreを指定します。

項目 説明

defaultStoreClass

String

デフォルトのMetaDataStoreクラスのクラス名。 pathMappingで指定されたメタデータ以外のメタデータを管理するstoreになります。

pathMapping

MetaDataStorePathMapping、複数指定可

defaultStoreClassとは別のMetaDataStoreで管理するメタデータ。

store

MetaDataStore、複数指定可

defaultStoreClass及びpathMappingのstoreに指定しているクラス。

XmlFileMetaDataStore

XMLファイルベースでメタデータを管理します。

相対パスを指定する場合、EclipseのTomcat起動構成の引数タブで、作業ディレクトリをプロジェクトのルートディレクトリにしてください。

${workspace_loc:mtp-blank}

classにorg.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStoreを指定します。

項目 説明

rootPath

String

メタデータの保存先のルートパス。

fileStorePath

String

テナントメタデータの保存先。

groovySourceStorePath

String

UtilityClassのGroovyソースファイルの保存先。 未指定の場合はfileStorePathに保存されます。

localTenantId

int

管理対象のテナントID。

suffix

String

メタデータファイルの拡張子。デフォルト値は「.xml」です。

VersioningXmlFileMetaDataStore

XMLファイルベースでメタデータを管理します。 メタデータはバージョンを付与し、世代管理を行います。

classにorg.iplass.mtp.impl.metadata.xmlfile.VersioningXmlFileMetaDataStoreを指定します。

項目 説明

fileStorePath

String

テナントメタデータの保存先。

versionFormat

String

メタデータファイル名に付与されるバージョンのフォーマット。 未指定の場合 000 形式になります。

suffix

String

メタデータファイルの拡張子。デフォルト値は「.xml」です。

TypeConversionMetaDataStore

古いモジュールなどで提供されていたメタデータを現在のモジュールに変換し、利用できるようにするための機構です。

classにorg.iplass.mtp.impl.metadata.typeconversion.TypeConversionMetaDataStoreを指定します。

項目 説明

store

MetaDataStore

変換対象のメタデータを管理しているMetaDataStore。

converters

TypeConverter 、複数指定可

メタデータの型変換を行うコンバータ。

AnnotatableMetaDataFactory

アノテーションからメタデータを作成します。

classにorg.iplass.mtp.impl.metadata.annotation.AnnotatableMetaDataFactoryの実装クラスを指定します。

標準で以下のAnnotatableMetaDataFactoryを提供します。

MetaCommandClassFactory

CommandからCommandClassアノテーションを読み込みます。

classにorg.iplass.mtp.impl.command.MetaCommandClassFactoryを指定します。 設定変更可能な項目はありません。

MetaAsyncCommandFactory

CommandからAsyncCommandアノテーションを読み込みます。

classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandFactoryを指定します。 設定変更可能な項目はありません。

MetaAsyncCommandsFactory

CommandからAsyncCommandsアノテーションを読み込みます。

classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandsFactoryを指定します。 設定変更可能な項目はありません。

MetaActionMappingFactory

CommandからActionMappingアノテーションを読み込みます。

classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingFactoryを指定します。 設定変更可能な項目はありません。

MetaActionMappingsFactory

CommandからActionMappingsアノテーションを読み込みます。

classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingsFactoryを指定します。 設定変更可能な項目はありません。

MetaTemplateFactory

CommandからTemplateアノテーションを読み込みます。

org.iplass.mtp.impl.web.template.MetaTemplateFactoryを指定します。 設定変更可能な項目はありません。

MetaTemplatesFactory

CommandからTemplatesアノテーションを読み込みます。

org.iplass.mtp.impl.web.template.MetaTemplatesFactoryを指定します。 設定変更可能な項目はありません。

MetaWebApiFactory

CommandからWebApiアノテーションを読み込みます。

classにorg.iplass.mtp.impl.webapi.MetaWebApiFactoryを指定します。 設定変更可能な項目はありません。

MetaWebApisFactory

CommandからWebApisアノテーションを読み込みます。

classにorg.iplass.mtp.impl.webapi.MetaWebApisFactoryを指定します。 設定変更可能な項目はありません。

MetaDataStorePathMapping

CompositeMetaDataStoreでdefaultStoreClass以外のMetaDataStoreを利用する場合に利用します。 pathPrefixで指定したメタデータとstoreで指定したMetaDataStoreをマッピングします。

classにorg.iplass.mtp.impl.metadata.composite.MetaDataStorePathMappingを指定します。

項目 説明

pathPrefix

String

メタデータのパスのプレフィックス。

store

String

pathPrefixで指定したメタデータを管理するstoreのクラス名。

TypeConverter

新旧メタデータの変換処理を実装するためのインターフェースです。

classにorg.iplass.mtp.impl.metadata.typeconversion.TypeConverterの実装クラスを指定してください。

設定例
<service>
    <interface>org.iplass.mtp.impl.metadata.MetaDataRepository</interface>

    <!-- ■ your app metadata xml file name (additional="true) ■ -->
    <!--
    <property name="resourcePath" value="/xxx-metadata.xml" additional="true" />
     -->

    <!-- ■ your app command list class (additional="true) ■ -->
    <!--
    <property name="annotatedClass" value="xxx.command.CommandList" additional="true" />
     -->

    <!-- ■ your tenantLocalStore ■ -->
    <!--
        テナントメタデータの保存先を指定します。 UtilityClassのGroovyソースファイルは別の保存先を指定できます。
        相対パスを指定する場合、EclipseのTomcat起動構成で作業ディレクトリをプロジェクトのルートディレクトリにしてください。
        (例: ${workspace_loc:mtp-blank})
    -->
    <!--
    <property name="tenantLocalStore" class="org.iplass.mtp.impl.metadata.composite.CompositeMetaDataStore" >
        <property name="pathMapping" class="org.iplass.mtp.impl.metadata.composite.MetaDataStorePathMapping">
            <property name="pathPrefix" value="/entity/"/>
            <property name="store" value="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore"/>
        </property>
        <property name="pathMapping" class="org.iplass.mtp.impl.metadata.composite.MetaDataStorePathMapping">
            <property name="pathPrefix" value="/staticresource/"/>
            <property name="store" value="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore"/>
        </property>

        <property name="store" class="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore" />
        <property name="store" class="org.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStore" >
            <property name="fileStorePath" value="src/main/tenantLocalStore/" />
            <property name="groovySourceStorePath" value="src/main/groovy/" />
            <property name="localTenantId" value="XXX"/>
        </property>
        <property name="defaultStoreClass" value="org.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStore"/>
    </property>
     -->

    <!-- WebAPI(旧メタデータ)をWebApi(新メタデータ)として利用します。 -->
    <!--
    <property name="tenantLocalStore" class="org.iplass.mtp.impl.metadata.typeconversion.TypeConversionMetaDataStore">
        <property name="store" class="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore" />
        <property name="converters" class="org.iplass.mtp.impl.webapi.classic.metadata.MetaWebAPITypeConverter" />
        <property name="converters" class="org.iplass.mtp.impl.webapi.classic.metadata.MetaEntityWebApiDefinitionTypeConverter" />
    </property>
    -->
</service>

22. OidCounter

oidの採番を行うサービスです。 採番を行うCounterServiceを利用します。 RDBのシーケンス採番機能の有無で設定を変える必要があります。 シーケンス機能が有る場合(デフォルト設定)は RdbSequenceCounterService を、 無い場合(MySQL)は CachableRdbTableCounterService を利用します。

インタフェース名

org.iplass.mtp.impl.counter.CounterService

実装クラス名

シーケンス機能が有る
org.iplass.mtp.impl.counter.RdbSequenceCounterService
シーケンス機能が無い
org.iplass.mtp.impl.counter.CachableRdbTableCounterService

RdbSequenceCounterService

RdbSequenceCounterServiceを設定します。

設定項目
項目 説明

sequenceNameMap

SequenceNameMap

キャッシュサイズ。デフォルト値は20です。

SequenceNameMap

採番を行う単位と採番テーブルのマッピングを設定します。 以下の項目が設定できます。

項目 説明

name

String

採番を行う単位の名前。

value

String

RDBのシーケンス名。

CachableRdbTableCounterServiceの設定

CachableRdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

cacheSize

int

キャッシュサイズ。デフォルト値は20です。

設定例
<!-- デフォルト設定 -->
<service name="OidCounter">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.RdbSequenceCounterService</class>
    <property name="sequenceNameMap">
        <property name="oid" value="SEQ_OBJ_ID" />
        <property name="rbid" value="SEQ_RB_ID" />
        <property name="lobid" value="SEQ_LOB_ID" />
        <property name="logid" value="SEQ_LOG_ID" />
    </property>
</service>

<!-- MySQL -->
<service name="OidCounter">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
    <property name="counterTypeName" value="OidCounter" />
    <property name="cacheSize" value="20" />
    <property name="retryCount" value="3" />
</service>

23. OnetimeCodeGeneratorService

二段階認証のワンタイム認証コードを生成するサービスです。

インタフェース名

org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService

実装クラス名

org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService

OnetimeCodeGeneratorServiceの設定

ワンタイム認証コードの生成について設定します。

設定項目
項目 説明

generator

OnetimeCodeGenerator、複数指定可

ワンタイム認証コードの生成器の設定。

OnetimeCodeGenerator

classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorの実装クラスを指定します。

標準で、外部送信するワンタイム認証コードを生成するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGeneratorを提供します。 OutOfBandOnetimeCodeGeneratorの設定可能な項目は以下になります。

OutOfBandOnetimeCodeGenerator

外部送信するワンタイム認証コードを生成するワンタイム認証コード生成器です。 以下の項目を設定可能です。

項目 説明

name

String

ワンタイム認証コード生成器の名前。

maxFailureCount

int

最大認証失敗回数。デフォルト値は5です。

lifetimeSeconds

long

ワンタイム認証コードの有効時間。デフォルト値は180(3分)です。

store

OnetimeCodeStore

ワンタイム認証コードの保持方式。

sender

OutOfBandSender

ワンタイム認証コードの外部送信方式。

strategy

GenerateStrategy

ワンタイム認証コードの生成方式。

OnetimeCodeStore

classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeStoreの実装クラスを指定します。

標準で、ワンタイム認証コードをセッションに格納するorg.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStoreを提供します。 SessionOntimeCodeStoreは設定変更可能な項目はありません。

OutOfBandSender

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandSenderの実装クラスを指定します。

標準で、ワンタイム認証コードをメール送信するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSenderと、 SMS送信するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSenderを提供します。

MailOutOfBandSender

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSenderを指定します。

以下の項目を設定可能です。

項目 説明

mailTemplate

String

ワンタイム認証コードを送信するメールのテンプレート。

fromAddress

String

送信元メールアドレス。 テナントのメール送信設定で設定されているFromアドレスとは別のメールアドレスを使用する場合に設定します。

SmsOutOfBandSender

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSenderを指定します。

以下の項目を設定可能です。

項目 説明

smsTemplate

String

ワンタイム認証コードを送信するSMSのテンプレート。

fromPhoneNumber

String

送信元電話番号。SmsServiceで設定されているdefaultFromとは別の電話番号を使用する場合に設定します。

GenerateStrategy

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.GenerateStrategyの実装クラスを指定します。

標準で、数値のワンタイム認証コードを生成するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategyを提供します。 NumberGenerateStrategyは以下の項目を設定可能です。

項目 説明

numberOfDigits

int

数値の桁数。デフォルト値は6です。

設定例
<service>
    <interface>org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService</interface>
    <property name="generator"
       class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGenerator">
        <property name="name" value="outOfBandByMail" />
        <property name="maxFailureCount" value="5" />
        <property name="lifetimeSeconds" value="180" />
        <property name="store"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStore" />
        <property name="sender"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSender">
            <property name="mailTemplate" value="mtp/auth/onetime/SendCode" />
            <!-- if use another "from address" instead of tenant default "from address".
            <property name="fromAddress" value="noreply@xxx.isid.co.jp" />
             -->
        </property>
        <property name="strategy"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategy">
            <property name="numberOfDigits" value="6" />
        </property>
    </property>
    <property name="generator"
        class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGenerator">
        <property name="name" value="outOfBandBySms" />
        <property name="maxFailureCount" value="5" />
        <property name="lifetimeSeconds" value="180" />
        <property name="store"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStore" />
        <property name="sender"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSender">
            <property name="smsTemplate" value="mtp/auth/onetime/SendCodeSms" />
            <!-- if use another "from phone number" instead of SMSService's defaultFrom.
            <property name="fromPhoneNumber" value="+1234..." />
             -->
        </property>
        <property name="strategy"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategy">
            <property name="numberOfDigits" value="6" />
        </property>
    </property>
</service>

24. PropertyEncryptionService

プロパティ単位の暗号化を行うサービスです。

インタフェース名

org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService

実装クラス名

org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService

PropertyEncryptionServiceの設定

PropertyEncryptionServiceを設定します。

設定項目
項目 説明

encryptionSettings

EncryptionSetting、複数指定可

暗号化の方式。 標準で提供するクラス、もしくはEncryptionSettingインタフェースを実装するカスタムのEncryptionSetting。 異なるversionのencryptionSettingsを複数定義することにより、暗号化ロジックのロールオーバーが可能です。 新規に保存される値は最後に定義されたencryptionSettingsを利用して暗号化されます。

cachePrivateKeyInMemory

boolean

シークレットキーをメモリにキャッシュするか。デフォルト値はfalseです。

logEncryptProperty

boolean

暗号化したプロパティを暗号化前の値でログ出力するか。デフォルト値はtrueです。

encryptValueLogExpression

String

暗号化した際に出力される文字列。デフォルト値は "***" です。

EncryptionSetting

暗号化の方式を定義します。

classはorg.iplass.mtp.impl.properties.extend.crypt.EncryptionSettingの実装クラスを指定します。

標準で以下のEncryptionSettingを提供します。

PBKDF2EncryptionSetting

PBKDF2(Password-Based Key Drivation Function 2)を用いた暗号化を行います。

classにorg.iplass.mtp.impl.properties.extend.crypt.PBKDF2EncryptionSettingを指定します。

項目 説明

version

String

暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。

keyFactoryAlgorithm

String

鍵生成アルゴリズム。 デフォルト値は PBKDF2WithHmacSHA256

keySalt

String

鍵生成時のSalt。 未指定の場合はシステムのデフォルト値を利用。

keyStretch

int

鍵生成時のストレッチ回数。 デフォルト値は2048。

cipherAlgorithm

String

ブロック暗号化のアルゴリズム。 デフォルト値は AES

keyLength

int

鍵長。デフォルト値は128。

keyPassword

String

鍵生成の元となるパスワード文字列。

KeyStoreEncryptionSetting

KeyStoreファイルを用いた暗号化を行います。

classにorg.iplass.mtp.impl.properties.extend.crypt.KeyStoreEncryptionSettingを指定します。

項目 説明

version

String

暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。

cipherAlgorithm

String

ブロック暗号化のアルゴリズム。 デフォルト値は AES

keyLength

int

鍵長。デフォルト値は128。

keyStoreType

String

秘密鍵を保存するkeyStoreのタイプ。 デフォルト値は JCEKS

keyStoreFilePath

String

keyStoreファイルのファイルパス。

keyStorePassword

String

keyStoreのパスワード。

keyAlias

String

keyStore内に格納されている秘密鍵のエイリアス名。

keyPassword

String

keyStore内に格納されている秘密鍵取得のためのパスワード。

設定例
<service>
    <interface>org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService</interface>
    <property name="encryptionSettings" class="org.iplass.mtp.impl.properties.extend.crypt.PBKDF2EncryptionSetting">
        <property name="version" value="1" />
        <property name="keyPassword" value="yourOwnPass" />
    </property>
    <property name="encryptionSettings" class="org.iplass.mtp.impl.properties.extend.crypt.KeyStoreEncryptionSetting">
        <property name="version" value="2" />
        <property name="keyStoreFilePath" value="yourOwnKeyStoreFilePass" />
        <property name="keyStorePassword" value="yourOwnKeyStorePassword" />
        <property name="keyAlias" value="yourOwnKeyAliasName" />
        <property name="keyPassword" value="yourOwnKeyPassword" />
    </property>
    <!--
        By default the secret key is cached in memory.
        For enhanced security,
        set cachePrivateKeyInMemory to false if you do not want to cache secret keys in memory.
     -->
    <property name="cachePrivateKeyInMemory" value="true" />
</service>

keyPassword、keyStorePasswordは秘匿情報なので、取り扱いに注意してください。 設定ファイルのアクセス権を厳重にする、または設定ファイルの難読化を施すなどの対策をしてください。

25. PropertyService

プロパティを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.entity.property.PropertyService

実装クラス名

org.iplass.mtp.impl.entity.property.PropertyService

PropertyServiceの設定

PropertyServiceを設定します。

設定項目
項目 説明

longTextInlineStoreMaxLength

int

LongText型の文字列を内部で保持する場合の最大サイズ(バイト)。デフォルト値は1024です。文字列の先頭から設定された最大サイズ分が内部に保持されます。

remainInlineText

boolean

LongText型の文字列を内部で保持するか。デフォルト値はfalseです。内部で保持された文字列は検索に使用出来ます。

設定例
<service>
    <interface>org.iplass.mtp.impl.entity.property.PropertyService</interface>

    <!-- if longtext property value length is over this byte, offstorage to LOB -->
    <property name="longTextInlineStoreMaxLength" value="1024" />
    <!-- To enable search long text property, this flag set to true. note:Search text limit is longTextInlineStoreMaxLength. And storage space more consume. -->
    <property name="remainInlineText" value="false" />
</service>

26. PushNotificationService

プッシュ通知テンプレートの定義(メタデータ)の管理と、モバイル端末へのプッシュ通知を行うためのサービスです。 プッシュ通知サービスの実装としてFirebase Cloud Messaging(FCM)を利用したモジュールを標準提供します。

インタフェース名

org.iplass.mtp.impl.pushnotification.PushNotificationService

実装クラス名

org.iplass.mtp.impl.pushnotification.fcm.FCMPushNotificationService

FCMPushNotificationServiceの設定

FCMを利用する場合、FCMPushNotificationServiceを設定します。

設定項目
項目 説明

authorizationKey

String、必須

FCMで発行される認証のためのサーバキー。

enableRetry

boolean

FCM呼び出しに失敗しリトライ可能なエラーであった場合、リトライするかどうか。 未指定の場合のデフォルト値はtrueです。

exponentialBackoff

ExponentialBackoff

ExponentialBackoffクラスのプロパティにてリトライ処理する際の 指数バックオフ の設定。

registrationIdHandler

RegistrationIdHandler

registrationIdが存在しなかった場合や正規のRegistrationIdが存在するとFCMから通知された場合、その通知を処理するためのRegistrationIdHandlerの実装クラス。 未指定の場合は何も処理しません。

httpClientConfig

HttpClientConfig

WebApi呼び出し時のHTTPコネクションに関する設定。

listener

PushNotificationListener、複数指定可

PushNotificationを送信した際のListener。

dryRun

boolean

FCM呼び出し時、このパラメータがtrueに設定されている場合、FCMは実際にメッセージを送信せず、リクエストをテストすることができます。未指定の場合のデフォルト値はfalseです。

endpoint

String

FCM呼び出しを行うエンドポイントのURL。未指定の場合のデフォルト値は https://fcm.googleapis.com/fcm/send です。

ExponentialBackoff

classはorg.iplass.mtp.impl.pushnotification.fcm.ExponentialBackoffを指定します。 以下の項目を設定可能です。

項目 説明

retryIntervalMillis

int

リトライ間隔をミリ秒で指定します。デフォルト値は500です。

randomizationFactor

double

リトライ時のランダム要素。 0.5の場合、retryIntervalMillisに指定した値が上下25%の範囲で変動します。デフォルト値は0.5です。

multiplier

double

リトライ時のリトライ間隔の指数要素。 1.5の、retryIntervalMillisが500の場合、2回目のリトライは750ms、3回目のリトライは1125msのリトライ間隔で行われます。デフォルト値は1.5です。

maxIntervalMillis

int

最大リトライ間隔です。 デフォルト値は60000(1分)です。

maxElapsedTimeMillis

int

最大のリトライ実行時間。 この時間の間にリトライ処理が成功しなかった場合は、リトライ処理を完了し、アプリケーション側にその時点までの結果を返却します。 デフォルト値は300000(5分)です。

RegistrationIdHandler

classはorg.iplass.mtp.pushnotification.fcm.RegistrationIdHandlerの実装クラスを指定します。

標準で、単純にログ出力を行うorg.iplass.mtp.impl.pushnotification.fcm.LoggingRegistrationIdHandlerを提供します。 LoggingRegistrationIdHandlerは設定変更可能な項目はありません。

HttpClientConfig

classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。 以下の項目を設定可能です。

項目 説明

proxyHost

String

proxyを利用する場合のHost名。

proxyPort

int

proxyを利用する場合のport。

connectionTimeout

int

HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。

soTimeout

int

HTTP通信時のsocket timeout (SO_TIMEOUT)をミリ秒で指定します。デフォルト値は30000(30秒)です。

poolingMaxTotal

int

httpコネクションのプールの最大数。デフォルト値は20です。

poolingDefaultMaxPerRoute

int

ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。

poolingTimeToLive

int

プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。

PushNotificationListener

classはorg.iplass.mtp.pushnotification.PushNotificationListenerの実装クラスを指定します。

設定例
<service>
    <interface>org.iplass.mtp.impl.pushnotification.PushNotificationService</interface>
    <class>org.iplass.mtp.impl.pushnotification.fcm.FCMPushNotificationService</class>
    <property name="authorizationKey" value="AA...." />
    <property name="enableRetry" value="true" />
    <property name="exponentialBackoff"
            class="org.iplass.mtp.impl.pushnotification.fcm.ExponentialBackoff">
        <property name="retryIntervalMillis" value="500" />
        <property name="randomizationFactor" value="0.5" />
        <property name="multiplier" value="1.5" />
        <property name="maxIntervalMillis" value="60000" />
        <property name="maxElapsedTimeMillis" value="300000" />
    </property>
    <property name="registrationIdHandler"
            class="org.iplass.mtp.impl.pushnotification.fcm.LoggingRegistrationIdHandler" />
    <property name="httpClientConfig"
            class="org.iplass.mtp.impl.http.HttpClientConfig">
        <property name="proxyHost" value="xxxxxx.isid.co.jp" />
        <property name="proxyPort" value="8080" />
    </property>
    <property name="listener"
            class="org.iplass.mtp.sample.SampleCustomListener1" />
    <property name="listener"
            class="org.iplass.mtp.sample.SampleCustomListener2">
        <property name="customConfigVal" value="test" />
    </property>
</service>

27. QueryService

EQLの外部ヒント句を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.query.QueryService

実装クラス名

org.iplass.mtp.impl.query.QueryService

QueryServiceの設定

QueryServiceを設定します。

設定項目
項目 説明

externalHintFile

String

ヒント句の外だし機能を利用する場合、ヒント句を設定するプロパティファイルのパス(もしくはclasspath上のリソースパス)。

externalHints

HintComment、複数指定可

nameに外部ヒント名、valueにヒント句。

externalHintFileにプロパティファイルのパスを設定した場合、キー名と対応するヒント句を指定します。

hint1=native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_3)')
hint2=native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_1)')
:
:

EQLにて外部ヒントを利用するには、EQL文で@hint(keyName)を指定することで、プロパティファイルやexternalHintsで指定したヒント句を読み込めます。

EQL例

以下のようにEQL文の中に@hintを指定します。

select /*+ @hint(hint1) */ propA, propB, refX.name from HogeEntity where refX.propFuga='piyo'

内部では@hintの内容が展開され、以下のようになります。

select /*+ native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_3)') */ propA, propB, refX.name from HogeEntity where refX.propFuga='piyo'

また、org.iplass.mtp.entity.query.hint.Hint#externalHint(String key)メソッドを呼び出すことで、Hint句をJavaインスタンスとして取得できます。

設定例
<service>
    <interface>org.iplass.mtp.impl.query.QueryService</interface>
        <!--
            if use external hint, set propertyFile path(file path or classpath's resource path) or add inline.
         -->
         <!--
        <property name="externalHintFile" value="/externalHint.properties" />

        <property name="externalHints">
            <property name="hint1" value="native(...)" />
            <property name="hint2" value="index(...)" />
        </property>
          -->
</service>

28. RdbAdapterService

各種RDBとのインターフェースとなるRdbAdapterを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.rdb.adapter.RdbAdapterService

実装クラス名

org.iplass.mtp.impl.rdb.adapter.RdbAdapterService

RdbAdapterServiceの設定

RdbAdapterを設定します。

設定項目
項目 説明

adapter

RdbAdapter

標準のRdbAdapterの設定。

"adapter"以外の任意の文字列

RdbAdapter、複数指定可

RdbAdapterの設定。

RdbAdapter

classはorg.iplass.mtp.impl.rdb.adapter.RdbAdapterの実装クラスを指定します。

標準で

  • Oracleを利用するorg.iplass.mtp.impl.rdb.oracle.OracleRdbAdapter

  • MySQLを利用するorg.iplass.mtp.impl.rdb.mysql.MysqlRdbAdapter

  • PostgreSQLを利用するorg.iplass.mtp.impl.rdb.postgresql.PostgreSQLRdbAdapter

  • SQL Serverを利用するorg.iplass.mtp.impl.rdb.sqlserver.SqlServerRdbAdapter

を提供します。各々のRdbAdapterの設定可能な項目は以下になります。

OracleRdbAdapter

Oracleを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

lockTimeout

int

行レベルロックが解放されるまでのタイムアウト(秒)。0が設定された場合はロックの解放を待ちません(FOR UPDATE NOWAIT)。マイナスの値が設定された場合はロックが解放されるまで待機します。デフォルト値は0です。

timestampFunction

String

タイムスタンプを取得するFunction。デフォルト値は CURRENT_TIMESTAMP(3) です。

addMonthsFunction

String

月を加算するFunction。デフォルト値は ADD_MONTHS です。

monthsBetweenFunction

String

2つの日付の差を取得するFunction。デフォルト値は MONTHS_BETWEEN です。

isUseSubQueryForIndexJoin

boolean

相関副問い合わせを使ってIndexテーブルを利用した結合を行うか。デフォルト値はtrueです。

optimizerHint

String

オプティマイザ・ヒント。デフォルト値は FIRST_ROWS(100) です。

enableInPartitioning

boolean

IN演算子の1000件制限を緩和する変換処理を行うか。デフォルト値はfalseです。 緩和する変換処理とは、IN(1,2,…​)を1000件単位で(IN(1,2,…​) OR IN(1001, 1002,…​))とORで分割することです。

escapeFullwidthWildcard

boolean

全角文字 _ をエスケープ処理するか。デフォルト値はfalseです。 利用するバージョンが11gR2patch2以前の場合はワイルドカードとして扱われるためtrueを設定してください。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はtrueです。

alwaysBind

boolean

EQLをSQLに変換する際に常にバインド変数化するか。デフォルト値はtrueです。

thresholdCountOfUsePrepareStatement

int

複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は50です。

batchSize

int

バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

useFetchFirstClause

boolean

Oracle 12cから利用可能なFETCH FIRST句を使うか。デフォルト値はfalseです。

MysqlRdbAdapter

MySQLを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

useFractionalSecondsOnTimestamp

boolean

タイムスタンプにミリ秒含めるか。デフォルト値はtrueです。

supportOptimizerHint

boolean

オプティマイズヒントをサポートするか。デフォルト値はfalseです。

localTemporaryTableManageOutsideTransaction

boolean

ローカル一時テーブルをトランザクションの外で管理するかを指定します。デフォルト値はfalseです。

localTemporaryTableCreatedByDataSource

boolean

ローカル一時テーブルがデータソースで作成されるかを指定します。デフォルト値はfalseです。

timestampMethod

String

タイムスタンプ取得関数。デフォルト値は NOW(3) です。

seqAnotherTransaction

boolean

oidの採番を別トランザクションで行うか。デフォルト値はtrueです。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はfalseです。

batchSize

int

バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。

thresholdCountOfUsePrepareStatement

int

複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は-1です。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

PostgreSQLRdbAdapter

PostgresSQLを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

supportOptimizerHint

boolean

オプティマイズヒントをサポートするか。デフォルト値はfalseです。

timestampFunction

String

タイムスタンプを取得するFunction。デフォルト値は CURRENT_TIMESTAMP(3) です。

escapeBackslash

boolean

バックスラッシュをエスケープするか。デフォルト値はfalseです。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はfalseです。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

lockTimeout

int

ロック時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

SQLServerRdbAdapter

SQL Serverを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

timestampFunction

String

タイムスタンプを取得するFunction。デフォルト値は GETDATE() です。

addMonthsFunction

String

月を加算するFunction。デフォルト値は DATEADD です。

monthsBetweenFunction

String

2つの日付の差を取得するFunction。デフォルト値は DATEDIFF です。

isUseSubQueryForIndexJoin

boolean

相関副問い合わせを使ってIndexテーブルを利用した結合を行うか。デフォルト値はtrueです。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はfalseです。

alwaysBind

boolean

EQLをSQLに変換する際に常にバインド変数化するか。デフォルトはfalseです。 SQL Serverではプロシージャが持つことのできるパラメーター数の最大が2,100個のためtrueに設定する場合はこの最大数を超えないようにしてください。

batchSize

int

バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。

thresholdCountOfUsePrepareStatement

int

複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は50です。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

lockTimeout

int

行レベルロックが解放されるまでのタイムアウト(秒)。0が設定された場合はロックの解放を待ちません(NOWAIT)。 マイナスの値が設定された場合はロックが解放されるまで待機します。デフォルト値は0です。

optimizerHint

String

オプティマイザ・ヒント。デフォルト値は FAST 100 です。

設定例
<service>
    <interface>org.iplass.mtp.impl.rdb.adapter.RdbAdapterService</interface>

    <!--
        for oracle
        ::configable property::
            lockTimeout :
                (seconds), 0=for update no wait, -1=for update
            enableInPartitioning :
                enables IN clause's limitation avoidance (do partition IN clause by 1000 items unit).
            escapeFullwidthWildcard :
                when use oracle11gR2patch2(11.2.0.2.0) or before, set true this property
            optimizerHint :
                default hint clause of SQL generated by EQL.
            useFetchFirstClause :
                use FETCH FIRST clause rather than use ROWNUM (on oracle 12c).
    -->
    <property name="adapter" class="org.iplass.mtp.impl.rdb.oracle.OracleRdbAdapter" inherit="false">
        <property name="lockTimeout" value="0" />
        <property name="enableInPartitioning" value="false" />
        <property name="escapeFullwidthWildcard" value="false" />
        <property name="optimizerHint" value="FIRST_ROWS(100)" />
        <property name="alwaysBind" value="true" />
        <property name="thresholdCountOfUsePrepareStatement" value="50" />
        <property name="batchSize" value="100" />
        <property name="defaultQueryTimeout" value="0" />
        <property name="useFetchFirstClause" value="false" />
    </property>

    <!--
        for mysql
        ::configable property::
            timestampMethod :
                 タイムスタンプ取得関数。(Aws RDSインスタンスの場合 日付がUTC固定のため変換処理を組み込む)
                 設定例
                <property name="timestampMethod" value="CONVERT_TZ(NOW(),'+00:00','+09:00')" />
            seqAnotherTransaction :
                oidの採番を別トランザクションで行うか
                設定例
                <property name="seqAnotherTransaction" value="true" />
            supportOptimizerHint :
                mysql5.7から利用可能なOptimizer Hintsを利用する場合trueを設定
    -->
    <property name="adapter" class="org.iplass.mtp.impl.rdb.mysql.MysqlRdbAdaptor" inherit="false">
        <property name="timestampMethod" value="NOW(3)" />
        <property name="seqAnotherTransaction" value="true" />
        <property name="defaultQueryTimeout" value="0" />
        <property name="supportOptimizerHint" value="false" />
    </property>

    <!-- for postgresql -->
    <property name="postgresql"
        class="org.iplass.mtp.impl.rdb.postgresql.PostgreSQLRdbAdapter" inherit="false" />

    <!--
        for sqlserver
        ::configable property::
            lockTimeout :
                (seconds), 0=for update no wait, -1=for update
            optimizerHint :
                default hint clause of SQL generated by EQL.
    -->
    <property name="adapter" class="org.iplass.mtp.impl.rdb.sqlserver.SqlServerRdbAdapter" inherit="false">
        <property name="alwaysBind" value="false" />
        <property name="defaultQueryTimeout" value="0" />
        <property name="lockTimeout" value="0" />
        <property name="optimizerHint" value="FAST 100" />
    </property>
</service>

29. RdbQueueService

RDBを利用したキューのサービスです。

インタフェース名

org.iplass.mtp.impl.async.rdb.RdbQueueService

実装クラス名

org.iplass.mtp.impl.async.rdb.RdbQueueService

RdbQueueServiceの設定

RdbQueueServiceを設定します。

設定項目
項目 説明

useQueue

boolean

キューを使用するか。デフォルトはfalseです。

queue

QueueConfig

非同期処理を実行するためのキュー。 標準で以下のキューが定義されています。

default

非同期タスク側でキューを指定しない場合に利用されるキュー

csvupload

汎用画面のCSVアップロードで利用するキュー

cleanupHistoryOnInit

boolean

サービス初期化時に履歴を削除するか。デフォルトはfalseです。

historyHoldDay

int

履歴を削除する際に何日分の履歴を残すか。デフォルトは1です。

QueueConfig

classはorg.iplass.mtp.impl.async.rdb.QueueConfigを指定します。

項目 説明

id

int

一意なID。 0、1は既に定義されているのでそれ以外を設定してください。

name

String

キューの名前。 非同期タスクがキューを選択する際に表示されます。

resultRemainingTime

long

タスクを履歴に移動する時間(ミリ秒)。現在から設定した時間より以前のタスクが移動の対象になります。デフォルト値は86400000(1日)です。

strictSequence

boolean

タスクにGroupingKeyが設定され、strictSequenceがtrueの場合、タスクIDはグループ毎にシーケンシャルに設定されます。

selectWorkerOnSubmit

boolean

GroupingKeyが未設定のタスクにワーカーを割り振るか。デフォルト値はfalseです。

worker

WorkerConfig

キューを処理するワーカー。

WorkerConfig

classはorg.iplass.mtp.impl.async.rdb.WorkerConfigを指定します。

項目 説明

pollingInterval

long

キューをポーリングする間隔(ミリ秒)。デフォルト値は30000です。

actualWorkerSize

int

キューを並列で処理するワーカーの数。デフォルト値は1です。

virtualWorkerSize

int

キューに割り当てるワーカーの数。デフォルト値は16です。

executionTimeout

long

処理のタイムアウト時間(ミリ秒)。デフォルト値は180000です。

restartDelay

long

タスクのリトライ間隔(ミリ秒)。デフォルト値は30000です。

maxRetryCount

int

タスクのリトライ回数。デフォルトは100です。

wakeupOnSubmit

boolean

タスクがサブミットされた後、即座に次のタスクを起動するか。デフォルト値はtrueです。 現状 local をtrueにした場合のみ有効です。

trace

boolean

ログを出力するか。デフォルト値はtrueです。

local

boolean

タスクをローカルで処理するか、リモートで処理するか。デフォルト値はtrueです。

newProcessPerTask

boolean

新しいプロセスで実行するか。デフォルト値はfalseです。

javaCommand

String

タスクで実行するJavaコマンド。

vmArgs

String、複数指定可

javaCommand に渡すVM引数。

redirectFile

String

プロセスの標準出力先、標準エラー出力先となるファイル。

設定例
<service>
    <interface>org.iplass.mtp.impl.async.rdb.RdbQueueService</interface>
    <!-- if use async rdb service set to true -->
    <property name="useQueue" value="true" />

    <property name="queue" class="org.iplass.mtp.impl.async.rdb.QueueConfig" additional="true">
        <property name="id" value="2" />
        <property name="name" value="customQueue" />
        <property name="worker" class="org.iplass.mtp.impl.async.rdb.WorkerConfig">
            <property name="pollingInterval" value="60000" />
            <property name="actualWorkerSize" value="1" />
        </property>
    </property>
</service>

30. ScheduleService

スケジュールタスクの定義(メタデータ)を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.scheduling.ScheduleService

実装クラス名

org.iplass.mtp.impl.scheduling.ScheduleService

ScheduleServiceの設定

ScheduleServiceを設定します。

設定項目
項目 説明

systemUserId

String

スケジュールタスクを実行するシステムユーザのID。 デフォルト値は scheduler です。

設定例
<service>
    <interface>org.iplass.mtp.impl.scheduling.ScheduleService</interface>
    <class>org.iplass.mtp.impl.scheduling.ScheduleService</class>
    <property name="systemUserId" value="id000001" />
</service>

31. ScriptService

動的スクリプトの実行を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.script.ScriptService

実装クラス名

org.iplass.mtp.impl.script.GroovyScriptService

ScriptServiceの設定

ScriptServiceを設定します。

設定項目
項目 説明

debug

boolean

スクリプトのデバッグログの出力可否。

initScript

String、複数指定可

初期化用のGroovyScript。

staticImport

String、複数指定可

GroovyScriptにstaticインポートするメソッド。

設定例
<service>
    <interface>org.iplass.mtp.impl.script.ScriptService</interface>
    <class>org.iplass.mtp.impl.script.GroovyScriptService</class>
    <property name="initScript" value="/org/iplass/mtp/impl/script/InitScript.gr" />
    <property name="initScript" value="/org/iplass/mtp/impl/script/EnterpriseInitScript.gr" />
</service>

32. SecureRandomService

ランダム文字列を生成するための設定を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.util.random.SecureRandomService

実装クラス名

org.iplass.mtp.impl.util.random.SecureRandomService

SecureRandomServiceの設定

SecureRandomServiceを設定します。

設定項目
項目 説明

default

SecureRandomGeneratorConfig

標準のSecureRandomGeneratorConfigの設定。

authTokenGenerator

SecureRandomGeneratorConfig

認証トークン生成時に使用するSecureRandomGeneratorConfigの設定。

SecureRandomGeneratorConfig

ランダム文字列を生成するための設定です。

項目 説明

numBitsOfSecureRandomToken

int

ランダム文字列のbit。デフォルトは128(bit)です。

radixOfSecureRandomToken

int

ランダム文字列化する際の基数。デフォルトは16です。 maxはCharacter.MAX_RADIXです。

useStrongSecureRandom

boolean

ランダム生成時のSecureRandomをSecureRandom.getInstanceStrong()するか否か。 デフォルトはfalseです。algorithm指定ある場合は、そちらを優先します。

algorithm

String

SecureRandom生成時のalgorithm。デフォルトは未指定です。

provider

String

SecureRandom生成時のprovider。デフォルトは未指定です。

設定例
<service>
    <interface>org.iplass.mtp.impl.util.random.SecureRandomService</interface>
    <class>org.iplass.mtp.impl.util.random.SecureRandomService</class>
    <property name="default">
        <property name="numBitsOfSecureRandomToken" value="128" />
        <property name="radixOfSecureRandomToken" value="16" />
        <property name="useStrongSecureRandom" value="false" />
    </property>
    <property name="authTokenGenerator">
        <property name="numBitsOfSecureRandomToken" value="192" />
        <property name="radixOfSecureRandomToken" value="32" />
        <property name="useStrongSecureRandom" value="false" />
    </property>
</service>

33. SmsService

SMSテンプレートの定義(メタデータ)の管理と、SMS送信を行うためのサービスです。 SMS送信の実装として、Twilioを利用したSMS送信のモジュールを標準提供します。

インタフェース名

org.iplass.mtp.impl.sms.SmsService

実装クラス名

Twilioを利用したSMS送信
org.iplass.mtp.impl.sms.twilio.TwilioSmsService

TwilioSmsServiceの設定

TwilioによるSMS送信を利用する場合、TwilioSmsServiceを設定します。

設定項目
項目 説明

accountSid

String、必須

ACCOUNT SID。

authToken

String、必須

AUTH TOKEN。

defaultFrom

String

デフォルトの送信元アドレス。

httpClientConfig

HttpClientConfig

HTTPクライアントに関する設定。

listener

SendSmsMailListener、複数指定可

SMS送信時のListener。

SendSmsMailListener

classはorg.iplass.mtp.sms.SendSmsMailListenerの実装クラスを指定します。

SendSmsMailListenerの実装クラスの標準提供はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.sms.SmsService</interface>
    <class>org.iplass.mtp.impl.sms.twilio.TwilioSmsService</class>
    <property name="accountSid" value="yourOwnAccountSid"/>
    <property name="authToken" value="yourOwnAuthToken"/>
    <property name="defaultFrom" value="+1234......."/>

    <!-- Development
    <property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
        <property name="connectionTimeout" value="30000" />
        <property name="soTimeout" value="30000" />
        <property name="proxyHost" value="proxyhost.isid.co.jp" />
        <property name="proxyPort" value="8080" />
    </property>
    -->
</service>

34. StoreService

Entityデータの永続化を行うサービスです。

インタフェース名

org.iplass.mtp.impl.datastore.StoreService

実装クラス名

org.iplass.mtp.impl.datastore.StoreService

StoreServiceの設定

StoreServiceを設定します。

設定項目
項目 説明

dataStore

DataStore

DataStoreの設定。

DataStore

classはorg.iplass.mtp.impl.datastore.DataStoreの実装クラスを指定します。

標準で、以下のDataStoreをを提供します。

GRdbDataStore

classはorg.iplass.mtp.impl.datastore.grdb.GRdbDataStoreを指定します。 コミュニティエディション用のDataStoreです。

以下の項目を設定可能です。

項目 説明

enableWindowFunctionEmulation

boolean

Window関数のエミュレートを有効にするか。デフォルト値はfalseです。

storageSpace

StorageSpaceMap、複数指定可

StorageSpaceの設定。

EnterpriseGRdbDataStore

classはorg.iplass.mtp.impl.datastore.grdb.EnterpriseGRdbDataStoreを指定します。 エンタープライズエディション用のDataStoreです。

設定項目はGRdbDataStoreを参照してください。

StorageSpaceMap

以下の項目を設定可能です。

項目 説明

storageSpaceName

String

Entity定義で選択する際に表示されるStorageSpace名。

tableNamePostfix

String

StorageSpace用のテーブルに付加する接尾語。 英数字のみ利用してください。 標準で、 MTPUSER が定義されているので、それ以外の名前を設定してください。

tableCount

int

物理的に格納テーブルを分割し、擬似パーティショニングする場合に0より大きい値を設定。デフォルト値は0です。

varcharColumns

int

文字列型のプロパティを格納するための列数。

decimalColumns

int

Decimal型のプロパティを格納するための列数。

timestampColumns

int

Timestamp型のプロパティを格納するための列数。

doubleColumns

int

浮動小数点型のプロパティを格納するための列数。

indexedVarcharColumns

int

Index指定された文字列型のプロパティを格納するための列数。

indexedDecimalColumns

int

Index指定されたDecimal型のプロパティを格納するための列数。

indexedTimestampColumns

int

Index指定されたTimestamp型のプロパティを格納するための列数。

indexedDoubleColumns

int

Index指定された浮動小数点型のプロパティを格納するための列数。

uniqueIndexedVarcharColumns

int

Unique Index指定された文字列型のプロパティを格納するための列数。

uniqueIndexedDecimalColumns

int

Unique Index指定されたDecimal型のプロパティを格納するための列数。

uniqueIndexedTimestampColumns

int

Unique Index指定されたTimestamp型のプロパティを格納するための列数。

uniqueIndexedDoubleColumns

int

Unique Index指定された浮動小数点型のプロパティを格納するための列数。

customPartition

boolean

Partitionを利用する場合に、標準のPartitionと異なるPartitionを利用するか。デフォルト値はfalse(利用しない)です。

設定例
<service>
    <interface>org.iplass.mtp.impl.datastore.StoreService</interface>

    <property name="dataStore" class="org.iplass.mtp.impl.datastore.grdb.GRdbDataStore">
        <property name="storageSpace" additional="true">
            <property name="storageSpaceName" value="XXXXX" />
            <property name="tableNamePostfix" value="XXXXX" />
            <property name="varcharColumns" value="128" />
            <property name="decimalColumns" value="32" />
            <property name="timestampColumns" value="32" />
            <property name="doubleColumns" value="32" />
            <property name="indexedVarcharColumns" value="8" />
            <property name="indexedDecimalColumns" value="4" />
            <property name="indexedTimestampColumns" value="4" />
            <property name="indexedDoubleColumns" value="4" />
            <property name="uniqueIndexedVarcharColumns" value="2" />
            <property name="uniqueIndexedDecimalColumns" value="2" />
            <property name="uniqueIndexedTimestampColumns" value="2" />
            <property name="uniqueIndexedDoubleColumns" value="2" />
            <property name="customPartition" value="false" />
        </property>
    </property>
</service>

35. SyntaxService

構文解析のためのサービスです。

インタフェース名

org.iplass.mtp.impl.parser.SyntaxService

実装クラス名

org.iplass.mtp.impl.parser.SyntaxService

SyntaxServiceの設定

SyntaxServiceを設定します。

設定項目
項目 説明

syntaxRegister

SyntaxRegister、複数指定可

SyntaxRegisterの実装クラス名。

SyntaxRegister

classはorg.iplass.mtp.impl.parser.SyntaxRegisterの実装クラスを指定します。

標準でorg.iplass.mtp.impl.query.QuerySyntaxRegisterを提供しています。 設定可能な項目はありません。

設定例
<service final="true">
    <interface>org.iplass.mtp.impl.parser.SyntaxService</interface>
    <class>org.iplass.mtp.impl.parser.SyntaxService</class>
    <property name="syntaxRegister" value="org.iplass.mtp.impl.query.QuerySyntaxRegister" />
 </service>

36. TaskIdCounter

RdbQueueServiceを利用する場合にタスクIDの採番を行うサービスです。 タスクのグループ化の設定により、利用する設定が変わります。 グループ化の指定が無い場合は TaskIdCounter の設定を、指定がある場合は TaskIdCounterGrouping の設定を利用します。

インタフェース名

org.iplass.mtp.impl.counter.CounterService

実装クラス名

キャッシュなし
org.iplass.mtp.impl.counter.RdbTableCounterService
キャッシュあり
org.iplass.mtp.impl.counter.CachableRdbTableCounterService

RdbTableCounterServiceの設定

RdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

CachableRdbTableCounterServiceの設定

CachableRdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

cacheSize

int

キャッシュサイズ。デフォルト値は20です。

設定例
<service name="TaskIdCounter">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
    <property name="counterTypeName" value="TaskIdCounter" />
    <property name="cacheSize" value="20" />
    <property name="retryCount" value="3" />
</service>
<service name="TaskIdCounterGrouping">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.RdbTableCounterService</class>
    <property name="counterTypeName" value="TaskIdCounter" />
    <property name="separateTransaction" value="true" />
    <property name="retryCount" value="3" />
</service>

37. TenantContextService

テナント全体の振る舞いを設定するサービスです。

インタフェース名

org.iplass.mtp.impl.core.TenantContextService

実装クラス名

org.iplass.mtp.impl.core.TenantContextService

TenantContextServiceの設定

テナント全体の振る舞いを設定します。

設定項目
項目 説明

defaultTenantName

String

デフォルトのテナント名。

defaultPasswordPatternErrorMessage

String

デフォルトのパスワード形式エラーメッセージ。

defaultMailFrom

String

デフォルトのメール送信Fromアドレス。テナント設定でFromアドレスが指定されていない場合に利用されます。

defaultMailFromName

String

デフォルトのメール送信Fromアドレス個人名。

sharedTenantId

int

共有テナントのID。RDBの場合、このテナントが共有テナントとして利用されます。-1は共有テナントなしとみなし動作します。デフォルト値は-1です。

localTenantIds

int、複数指定可

共有テナントを有効にした際の、共有テナントの配下の個別テナント。設定されていない場合は、DBに登録されているすべてのテナント(共有テナント除く)を個別テナントとみなし動作します。

設定例
<service>
    <interface>org.iplass.mtp.impl.core.TenantContextService</interface>
    <property name="defaultTenantName" value="iPLAss" />
    <property name="defaultMailFrom" value="notenant@nomail.iplass.org" />

    <!-- ■ if use shared tenant, set shared tenant id.(value:-1 for no use of shared tenant) -->
    <!--
    <property name ="sharedTenantId" value="-1" />
    -->
    <!--
        共有テナントを有効にした際、その共有テナントの配下の個別テナントを定義可能。
        定義されていない場合は、DBに登録されているすべてのテナント(共有テナント除く)を個別テナントとみなし動作します。
    -->
    <!--
    <property name ="localTenantIds" value="148" />
    <property name ="localTenantIds" value="149" />
    -->
</service>

38. ValidationService

入力チェックを行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.validation.ValidationService

実装クラス名

org.iplass.mtp.impl.validation.ValidationService

ValidationService

ValidationServiceを設定します。

設定項目
項目 説明

beanValidation

BeanValidationConfig

Bean Validationの設定。

BeanValidationConfig

Bean Validationの設定を行います。

classはorg.iplass.mtp.impl.validation.bean.BeanValidationConfigを指定します。 以下の項目を指定可能です。

項目 説明

providerClass

String

javax.validation.spi.ValidationProviderの実装クラス名。

messageInterpolator

MessageInterpolator

MessageInterpolatorの設定。

properties

Properties、複数指定可

プロバイダ固有のプロパティ。

MessageInterpolator

classにjavax.validation.MessageInterpolatorの実装クラスを指定します。

標準でorg.iplass.mtp.impl.validation.bean.TenantContextMessageInterpolatorを提供しています。 以下の項目を指定可能です。

項目 説明

messageInterpolatorFactory

MessageInterpolatorFactory

MessageInterpolatorFactoryの実装クラス名。

MessageInterpolatorFactory

classにorg.iplass.mtp.impl.validation.bean.MessageInterpolatorFactoryの実装クラスを指定します。

標準でorg.iplass.mtp.impl.validation.bean.hibernate.HibernateMessageInterpolatorFactoryを提供しています。 以下の項目を指定可能です。

項目 説明

resourceBundleLocator

ResourceBundleLocator

ResourceBundleLocatorの実装クラス名。

cachingEnabled

boolean

キャッシュが有効か。

ResourceBundleLocator

classにorg.hibernate.validator.spi.resourceloading.ResourceBundleLocatorの実装クラスを指定します。

標準でorg.iplass.mtp.impl.validation.bean.hibernate.MessageResourceBundleLocatorを提供しています。 設定可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.validation.ValidationService</interface>
    <class>org.iplass.mtp.impl.validation.ValidationService</class>
    <property name="beanValidation">
        <property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
        <property name="messageInterpolator" class="org.iplass.mtp.impl.validation.bean.TenantContextMessageInterpolator">
            <property name="messageInterpolatorFactory" class="org.iplass.mtp.impl.validation.bean.hibernate.HibernateMessageInterpolatorFactory">
                <property name="resourceBundleLocator" class="org.iplass.mtp.impl.validation.bean.hibernate.MessageResourceBundleLocator" />
                <property name="cachingEnabled" null="true" />
            </property>
        </property>
    </property>
</service>

39. WorkflowService

ワークフローの動作を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.workflow.WorkflowService

実装クラス名

org.iplass.mtp.impl.workflow.WorkflowService

WorkflowServiceの設定

WorkflowServiceを設定します。

設定項目
項目 説明

workflowInstanceStore

WorkflowInstanceStore

ワークフローインスタンスの管理方法。

historyLogStore

HistoryLogStore

ワークフロー履歴の管理方法。

queueForWorkflow

String

ワークフロー用のキュー名。

WorkflowInstanceStore

classにorg.iplass.mtp.impl.workflow.WorkflowInstanceStoreの実装クラスを指定します。

標準でorg.iplass.mtp.impl.workflow.store.EntityWorkflowInstanceStoreを提供します。 ワークフローインスタンスをEntityとして管理します。 設定可能な項目はありません。

HistoryLogStore

classにorg.iplass.mtp.impl.workflow.HistoryLogStoreの実装クラスを指定します。

標準で以下のHistoryLogStoreを提供します。

LoggerHistoryLogStore

ワークフロー履歴をログとして管理します。

classはorg.iplass.mtp.impl.workflow.store.LoggerHistoryLogStoreを指定します。 設定可能な項目はありません。

EntityHistoryLogStore

ワークフロー履歴をEntityとして管理します。

classはorg.iplass.mtp.impl.workflow.store.EntityHistoryLogStoreを指定します。 設定可能な項目はありません。

設定例
<service final="true">
    <interface>org.iplass.mtp.impl.workflow.WorkflowService</interface>
    <class>org.iplass.mtp.impl.workflow.WorkflowService</class>
    <property name="workflowInstanceStore" class="org.iplass.mtp.impl.workflow.store.EntityWorkflowInstanceStore" />
    <property name="historyLogStore" class="org.iplass.mtp.impl.workflow.store.EntityHistoryLogStore" />
</service>
{doctitle}