1. AsyncTaskService
基盤内部でタスクを非同期実行するためのサービスです。
インタフェース名
org.iplass.mtp.impl.async.AsyncTaskService
実装クラス名
org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService
ThreadingAsyncTaskServiceの設定
ThreadingAsyncTaskServiceを設定します。
設定項目
項目 | 値 | 説明 |
---|---|---|
corePoolSize |
int |
非同期処理のためのスレッドプールのサイズ。 アイドル状態であってもプール内に維持されるスレッドの数です。デフォルト値は4です。 |
threadPoolType |
String |
スレッドプールのタイプ。
未指定の場合、threadPoolTypeは
|
maximumPoolSize |
int |
スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。 |
keepAliveTime |
long |
threadPoolTypeが |
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は
|
maximumPoolSize |
int |
スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。 |
keepAliveTime |
long |
threadPoolTypeが |
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
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)が |
classはorg.iplass.mtp.impl.auth.log.AuthLoggerの実装クラスを指定します。
標準で、以下のAuthLoggerを提供します。
classはorg.iplass.mtp.impl.auth.log.Slf4jAuthLoggerを指定します。
SLF4Jを利用して認証のログ出力を行うロガーです。以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
loggerName |
String |
ロガー名。 |
slf4LoggerName |
String |
SLF4Jのロガー名。デフォルト値は |
classはorg.iplass.mtp.impl.auth.log.MultiAuthLoggerを指定します。
複数のロガーを保持します。以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
loggerName |
String |
ロガー名。 |
logger |
AuthLogger、複数指定可 |
標準のロガーの設定。 |
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 |
ユーザのセッションを管理するストアオブジェクトの設定。 |
|
authorizationProvider |
認可処理を行うプロバイダの設定。 |
|
authenticationProvider |
AuthenticationProvider、複数指定可 |
認証処理を行うプロバイダの設定。 |
EnterpriseAuthServiceの設定
AuthServiceを設定します。
設定項目
AuthServiceの設定を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.UserSessionStoreの実装クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStore
標準で提供しているUserSessionStoreです。
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStoreを指定します。 以下の項目を指定可能です。
項目 | 値 | 説明 |
---|---|---|
shareLoginSession |
boolean |
セッションに保持するログイン情報を複数テナントで共有するか。 |
classはorg.iplass.mtp.impl.auth.authorize.AuthorizationProviderの実装クラスを指定します。
org.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProvider
iPLAssの標準認可プロバイダです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProviderを指定します。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
authorizationContextHandler |
Permission毎の処理を表現するクラスの設定。 |
|
grantAllPermissionsToAdmin |
boolean |
Adminユーザに対し全権限を与えるか。 falseが設定された場合はAdminユーザに対しロール制御が適用されます。 デフォルト値はtrueです。 |
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
WebAPI権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandlerを指定します。
WebAPI権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandlerを指定します。
Entity権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandlerを指定します。 以下の項目を指定可能です。
項目 | 値 | 説明 |
---|---|---|
useCorrelatedSubqueryOnEntityLimitCondition |
boolean |
Entity権限による限定条件を付与する際、相関サブクエリにするか否か。 デフォルト値はtrueです。 |
WebAPI権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.webapi.WebAPIAuthContextHandlerを指定します。
Workflow権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandlerを指定します。
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
iPLAssの標準認証プロバイダです。 DBに保存されたユーザ情報を元にid/password認証します。 パスワードの複雑度、ロックアウト設定など、認証ポリシーにて設定可能です。
classはorg.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProviderを指定します。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
providerName |
String |
プロバイダ名称。
複数のプロバイダを設定する場合は、それぞれ一意となる名称を設定してください。
デフォルト値は |
updatable |
boolean |
アカウント管理モジュールの使用可否。 デフォルト値はtrueです。
|
passwordHashSetting |
パスワードHashアルゴリズム。 複数定義することにより既存アルゴリズムを動作させつつ、新規のパスワード更新時には新しいバージョンのアルゴリズムにて動作させることが可能です。 |
パスワードHashアルゴリズムに関する設定です。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
version |
String |
パスワードHashアルゴリズムのバージョン値。 アルゴリズム設定を変更する場合は、世代順にインクリメントし、重複しない値を設定してください。 デフォルト値は1です。 |
passwordHashAlgorithm |
String |
設定可能なアルゴリズムについては MessageDigest アルゴリズム を参照して下さい。
デフォルト値は |
systemSalt |
String |
システムで取り扱うソルト値。
新しいversionを追加する度に新しい値を設定することを推奨します。
デフォルト値は |
stretchCount |
int |
パスワードのHashを行う際のストレッチ回数。 デフォルト値は1000です。 |
設定ファイルに記載されたアカウント情報から認証するプロバイダです。 全テナントを管理する開発者用の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、複数指定可 |
|
以下の項目が設定可能です。
項目 | 値 | 説明 |
---|---|---|
id |
String |
アカウントのID。 |
password |
String |
アカウントのパスワード。 |
admin |
boolean |
このアカウントが管理者権限を持つか。 |
attrributeMap |
String |
任意のキー名(name)と値(value)。
|
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
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で検索されます。 |
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 |
ユーザ検索時のフィルター条件を指定可能です。 |
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
UserエンティティがDB上に存在せずともログイン可能とします。 oidにJAAS認証モジュールより返却された[ユニークID](uniquePrincipalTypeで指定したPrincipalの値)、accountId、nameに認証時に入力したidがセットされたUserエンティティを疑似的に生成します。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
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で検索されます。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細はJaasAuthenticationProviderを参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameにJEEコンテナが返却したPrincipalオブジェクトのnameをセットしたUserエンティティを疑似的に生成します。 roleAsGroupが指定されている場合、当該roleはグループコードとして設定されます。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
LDAPサーバ(Active Directory含む)を利用してid/password認証するプロバイダです。 設定により、iPLAssのDB内にUserエンティティが存在していなくとも認証を可能とすることができます。 その際、LDAPサーバ上で管理されているユーザの属性値、所属グループを取得することも可能です。
classはorg.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProviderを指定します。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
providerName |
String |
BuiltinAuthenticationProviderを参照してください。 |
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で検索されます。 |
設定可能な項目は、以下に説明している基本的な項目以外にも設定可能です。 詳細はこちらの内容を参照下さい。
項目 | 値 | 説明 |
---|---|---|
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 |
ユーザ検索、グループ検索が可能な管理用ユーザのパスワード。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細はJaasAuthenticationProviderを参照してください。
UserエンティティがDB上に存在せずともログイン可能とします。 LDAP認証モジュールの場合は、LDAPより返却されたユーザ属性値とUserエンティティのプロパティをマッピングすることが可能です。 attributeMappingUserエンティティのプロパティとLDAPから取得した属性とのマッピングを定義します。 プロパティ名単位に複数件の設定が可能です。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
propertyName |
String |
マッピング先のUserエンティティのプロパティ名。 |
accountAttributeName |
String |
マッピング元のLDAPから取得した属性値の名前。 LDAP上に定義される属性名の他、以下の設定値を利用可能です。
また、${属性値}形式を利用したGroovyTemplate形式で複数の属性を結合することが可能です。 ${sn ?:''} ${givenName ?:''} ※snとgivenNameをスペースで結合 |
type |
Class |
LDAPから取得した値を変換する際の型(java.lang.String、java.lang.Booleanなど)。 未指定の場合は、LDAPより返却された型のままセットします。 |
defaultValue |
Object |
LDAPより値が取得出来なかった際のデフォルト値。 未指定の場合、かつ値が取得できなかった場合はnullがセットされます。 |
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
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="(&(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="(&(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>
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 |
外部認証機構から渡されるユーザ情報が格納されている場所。 |
|
accountIdAttribute |
String |
外部認証機構から渡されるユーザ情報のうちアカウントIDが格納されているキー名。 |
uniqueKeyAttribute |
String |
外部認証機構から渡されるユーザ情報のうちユニークキー(OIDに相当)が格納されているキー名。 未指定の場合は、accoutIdAttributeに指定された値がユニークキーとして利用されます。 |
userAttribute |
String、複数指定可 |
外部認証機構から渡されるユーザ情報のうちユーザの属性として扱う値のキー名。 |
logoutUrl |
String |
外部認証機構のログアウト処理を行うURL。 iPLAssの標準画面でログアウトが呼び出された場合、当該画面へリダイレクトします。 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。 userEntityResolverの定義エントリ自体がない場合、かつuniqueKeyAttributeが未指定の場合ユーザEntityはaccountIdで検索されます。 上記以外の場合、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。 |
外部認証機構から渡されるユーザ情報が格納されている場所を指定します。
- HEADER
-
ヘッダーからgetHeader(String)にてユーザ情報を取得します
- REQUEST
-
HttpServletRequestからgetAttribute(String)にてユーザ情報を取得します
- SESSION
-
HttpSessionからgetAttribute(String)にてユーザ情報を取得します
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細はJaasAuthenticationProviderを参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
詳細はLdapAuthenticationProviderを参照してください。 外部認証機構から渡されたuserAttributeの値をUserエンティティのプロパティにマッピング可能です。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
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で検索されます。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細はJaasAuthenticationProviderを参照してください、
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameに証明書内のCNをセットしたUserエンティティを疑似的に生成します。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
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はリンク先を参照してください。 |
メタデータとして設定されたSAML定義のNameIDのマッピングに従いユーザEntityを検索します。
classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlUserEntityResolverを指定します。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
eagerLoadReferenceProperty |
String、複数指定可 |
ログイン後のUserエンティティ検索時に同時に取得する参照プロパティ。 デフォルトの設定では、Userの参照プロパティであるrankおよびgroupsが指定されています。 |
filterCondition |
String |
ユーザ検索時のフィルター条件。 |
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
詳細はLdapAuthenticationProviderを参照してください、 SAML経由で渡されたユーザ属性値をUserエンティティのプロパティにマッピング可能です。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
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モジュール提供のログイン認証処理を利用する場合 |
ワンタイムの認証コードを用いて認証を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 ワンタイムコードの生成方式は、別途OnetimeCodeGeneratorServiceにて定義します。 ワンタイムコード生成方式のうちいずれを利用するかの設定は認証ポリシーに定義します。 詳細は認証機能の2段階認証を参照してください。
OnetimeCodeAuthenticationProvider自体にて設定可能な項目はありません。
classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProviderを指定します。
ナレッジベース認証(秘密の質問に答えることで認証する)を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 Userエンティティに保持するプロパティを質問項目として利用することが可能です。 どのプロパティを質問項目とするか、質問の数などの設定は、認証ポリシーにて行います。 詳細は認証機能の2段階認証を参照してください。
KnowledgeBasedAuthenticationProvider自体にて設定可能な項目はありません。
classはorg.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProviderを指定します。
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の設定。 |
classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenStoreの実装クラスを指定します。
標準で、org.iplass.mtp.impl.auth.authenticate.token.RdbAuthTokenStoreを提供します。
RDBで認証トークンを管理します。
項目 | 値 | 説明 |
---|---|---|
name |
String |
このストアの名前。ストアを設定する際は、nameに |
classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenHandlerの実装クラスを指定します。
標準で、以下のAuthTokenHandlerを提供します。
classはorg.iplass.mtp.impl.auth.authenticate.builtin.policy.riskevals.web.CookieRiskEvaluationTokenHandlerを指定します。
Cookieにある認証成功時に付与されたトークンを取り扱います。以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
store |
String |
使用するストアの名前。 |
type |
String |
種別。未設定の場合、 |
visible |
boolean |
可視かどうか。デフォルト値はtrueです。 |
classはorg.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenHandlerを指定します。
リメンバーミートークンを取り扱います。以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
store |
String |
使用するストアの名前。 |
type |
String |
種別。未設定の場合、 |
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 |
採番タイプの名前。デフォルト値は |
CachableRdbTableCounterServiceの設定
CachableRdbTableCounterServiceを設定します。
設定項目
項目 | 値 | 説明 |
---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
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の設定。 |
|
"defaultFactory"以外の任意の文字列 |
CacheStoreFactory、複数指定可 |
個別のCacheStoreFactoryの設定。 |
classはorg.iplass.mtp.impl.cache.store.CacheStoreFactoryの実装クラスを指定します。
標準で、以下のCacheStoreFactoryを提供します。
各CacheStoreFactoryの共通の設定項目です。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
namespace |
String |
キャッシュを行う名前空間。 |
namespacePattern |
String |
キャッシュを行う名前空間のパターン。パターンは正規表現で記述します。 |
indexCount |
int |
インデックスの数。デフォルト値は0です。 |
concurrencyLevelOfCacheHandler |
int |
CacheHandlerの並列実行数。デフォルト値は4です。 |
Rdbを利用するCacheStoreFactoryです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
cacheKeyResolver |
CacheKeyResolverの設定。 |
|
cacheIndexResolver |
CacheKeyResolver、複数指定可 |
インデックスのCacheKeyResolverの設定。 |
connectionFactoryName |
String |
接続ファクトリ名。 |
rdbArapterName |
String |
RdbAdapter名。 |
tableName |
String |
キャッシュを保存するテーブル名。デフォルト値は |
retryCount |
int |
キャッシュ保存失敗時にリトライする回数。デフォルト値は0です。 |
timeToLive |
long |
キャッシュの生存時間(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。 |
内部メモリを利用する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です。 |
信頼性の低い、サーバ間のキャッシュを同期するCacheStoreFactoryです。 実ストアのtimeToLiveの設定で一定間隔でキャッシュがリフレッシュされる前提で利用してください。 他のサーバがキャッシュの更新処理中にダウンした場合などは、そのtimeToLiveの間、キャッシュと実データの間で不整合が発生する可能性あります。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
cacheKeyResolver |
CacheKeyResolverの設定。 |
|
cacheIndexResolver |
CacheKeyResolver、複数指定可 |
インデックスのCacheKeyResolverの設定。 |
store |
CacheStoreFactoryの設定。 |
|
listener |
同期メッセージ受信時に実行するリスナーの設定。 |
トランザクションが有効な間はバックエンドのCacheStoreに反映を遅延するCacheStoreFactoryです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
backendStore |
バックエンドのCacheStoreFactoryの設定。 |
Infinispanを利用するCacheStoreFactoryです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
createOnStartup |
boolean |
スタートアップ時にCacheStoreを生成するか。デフォルト値はfalseです。 |
cacheConfigrationName |
String |
キャッシュ名。 |
classにorg.iplass.mtp.impl.cache.store.keyresolver.CacheKeyResolverの実装クラスを指定します。
標準で、以下のCacheKeyResolverを提供します。
classにorg.iplass.mtp.impl.counter.CachableRdbTableCounterServicea$CounterCacheKeyResolverを指定します。
CounterKey型のCacheKeyResolverです。設定変更可能な項目はありません。
classにorg.iplass.mtp.impl.cache.store.keyresolver.IntegerCacheKeyResolverを指定します。
Integer型のCacheKeyResolverです。設定変更可能な項目はありません。
classにorg.iplass.mtp.impl.entity.cache.QueryCacheKeyResolverを指定します。
Query型のCacheKeyResolverです。設定変更可能な項目はありません。
classにorg.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolverを指定します。
文字列型のCacheKeyResolverです。設定変更可能な項目はありません。
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 |
クラスタ間の通信に利用するメッセージチャネルの設定。 |
classはorg.iplass.mtp.impl.cluster.channel.MessageChannelの実装クラスを指定します。
標準で、以下のMessageChannelを提供します。
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です。 |
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
実装クラス名
org.iplass.mtp.impl.rdb.connection.DriverManagerConnectionFactory
org.iplass.mtp.impl.rdb.connection.DataSourceConnectionFactory
DriverManagerConnectionFactoryの設定
DriverManagerを利用したデータベースの接続情報を設定します。
設定項目
項目 | 値 | 説明 |
---|---|---|
url |
String |
データベース接続文字列のURL。 |
user |
String |
ログインに使用されるユーザー名。 |
password |
String |
接続するユーザーのパスワード。 |
driver |
String |
JDBCドライバの完全修飾クラス名。 |
warnLogThreshold |
int |
警告ログを出力する処理時間(ミリ秒)の閾値。 |
warnLogBefore |
boolean |
事前警告ログを出力するか否かを指定します。 |
transactionIsolationLevel |
String |
トランザクションの分離レベル。以下が設定可能。
|
設定例
<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 |
データソース名。デフォルト値は |
jndienv.<キー名> |
String、複数指定可 |
JNDIの環境プロパティ。 |
warnLogThreshold |
int |
警告ログを出力する処理時間(ミリ秒)の閾値。 |
warnLogBefore |
boolean |
事前警告ログを出力するか否かを指定します。 |
transactionIsolationLevel |
String |
トランザクションの分離レベル。以下が設定可能。
|
設定例
<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 |
メモリへのデータロード取得時の処理方式。 |
|
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。 |
classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.LoadStrategyの実装クラスを指定します。
標準で、以下のLoadStrategyを提供します。
classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.AllPartitionDirectLoadStrategyを指定します。
直接ダイレクトにメモリに読み込む方式です。設定変更可能な項目はありません。
メモリを大量消費しますが高速です。
classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.PerPartitionLoadStrategyを指定します。
パーティション単位でデータを読み込む方式です。設定変更可能な項目はありません。
パーティションタイプがMOD,LISTの場合、またはCubeの読み込み元がCSVの場合で、あらかじめパーティション単位でデータが分けられている場合、これを指定するとメモリ消費抑えつつ高速ロードが期待できます。
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 |
データ削除、デフラグ実行時に、併せてストア内をメンテナンスする処理。 |
classはorg.iplass.mtp.entity.interceptor.EntityInterceptorの実装クラスを指定します。
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
実装クラス名
org.iplass.mtp.impl.fulltextsearch.FulltextSearchLuceneService
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 |
|
directory |
String |
Index情報(検索対象値)の保存先。 |
analyzer |
Analyzer |
利用するanalyzer。 |
analyzerSetting |
AnalyzerSetting、省略可能 |
analyzerを初期化する設定クラスです。 |
binaryParser |
BinaryReferenceParser、複数指定可 |
BinaryReference解析用のParser。 |
binaryParseLimitLength |
int |
BinaryReferenceのParse可能な最大文字数。 |
defaultOperator |
Operator |
演算子。設定可能な演算子は`AND` または |
luceneFSDirectory |
|
ファイルシステムにINDEXファイルを保存するLucene Directoryの実装クラス。 |
luceneFSDirectoryMaxChunkSizeMB |
int |
|
searcherAutoRefreshTimeMinutes |
int |
iPLAssが保持しているLuceneのIndexSearcher( ≒ IndexReader)が自動的に更新される時間間隔(分)です。 |
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
内の定義ファイルが適用されます。
apache tikaを利用してBinaryReferenceの内容を解析します。
classはorg.iplass.mtp.impl.fulltextsearch.parser.BinaryReferenceParserの実装クラスを指定します。
標準で以下のBinaryReferenceParserを提供します。
tikaのAutoDetectParserを利用して全てのタイプを対象に解析します。 ただし解析に必要となる依存ライブラリが存在しない場合はスキップします。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryAutoDetectParserを指定します。 設定変更可能な項目はありません。
HTML用Parser。 tikaのHtmlParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParserを指定します。 設定変更可能な項目はありません。
OfficeDocument(2003以前の形式)用Parser。 tikaのOfficeParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParserを指定します。 設定変更可能な項目はありません。
OfficeDocument(OOXML形式)用Parser。 tikaのOOXMLParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParserを指定します。 設定変更可能な項目はありません。
PDF用Parser。 tikaのPDFParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParserを指定します。 設定変更可能な項目はありません。
PlainText用Parser。 tikaのTXTParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParserを指定します。 設定変更可能な項目はありません。
XML用Parser。 tikaのXMLParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParserを指定します。 設定変更可能な項目はありません。
全てのバイナリファイルを対象に、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="<b style="background:aquamarine">" />
<property name="highlightPostTag" value="</b>" />
<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通信のインターセプター。 |
classはorg.iplass.mtp.command.interceptor.CommandInterceptorの実装クラスを指定します。
標準で、以下のCommandInterceptorを提供します。
classはorg.iplass.mtp.impl.webapi.interceptors.InitialInterceptorを指定します。
リクエストの初期処理として言語とプレビュー時刻を設定するインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.webapi.interceptors.AuthInterceptorを指定します。
カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.webapi.soap.interceptors.AuthInterceptorを指定します。
カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.command.interceptors.LoggingInterceptorを指定します。
コマンドの実行結果をログ出力するインターセプターです。設定変更可能な項目は有りません。
classはorg.iplass.mtp.impl.webapi.interceptors.LoggingInterceptorを指定します。
WebApiの実行結果をログ出力するインターセプターです。設定変更可能な項目は有りません。
classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。
Actionのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。
WebApiのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。
トランザクションの処理を行うインターセプターです。設定変更可能な項目はありません。
設定例
<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、複数指定可 |
各ロケールの書式の設定。 |
languageFonts |
LanguageFonts、複数指定可 |
各言語のフォントの設定。 |
classはorg.iplass.mtp.impl.i18n.EnableLanguagesを指定します。
設定可能言語です。以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
languageKey |
String |
言語キー。 |
languageName |
String |
言語名。 |
otherLanguageKey |
String、複数指定可 |
その他の言語キー。 |
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 |
苗字を先頭にするか。 |
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。 |
|
longTextStore |
LongTextのLobStore。 |
|
defaultLobStoreName |
String |
デフォルトとするLobストアの名前。デフォルト値は |
manageLobSizeOnRdb |
boolean |
LobサイズをRdb(lob_store)で管理するか。デフォルト値はfalse(管理しない)です。 |
classはorg.iplass.mtp.impl.lob.lobstore.LobStoreの実装クラスを指定します。
標準で、Rdbに保存するRdbLobStore、ファイルに保存するFileLobStore、AWS S3を利用するS3LobStore、 複数のLobStoreを合わせて単一のLobStoreと設定することが可能なAddableMultiLobStoreを提供します。 各LobStoreの設定可能な項目は以下になります。
classはorg.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStoreを指定します。
RDBに保存するLobStoreです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
lobValidator |
Lobに対するチェック処理。 |
classはorg.iplass.mtp.impl.lob.lobstore.file.FileLobStoreを指定します。
ファイルに保存するLobStoreです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
rootDir |
String |
保存先のルートディレクトリ。 |
overwriteFile |
boolean |
ファイルの上書きを行うか。デフォルト値はfalse(上書きしない)です。 |
lobValidator |
Lobに対するチェック処理。 |
classはorg.iplass.mtp.impl.aws.lobstore.s3.S3LobStoreを指定します。
S3に保存するLobStoreです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
region |
String |
S3のリージョン |
endpoint |
String |
S3のendpoint |
bucketName |
String |
S3のバケット名 |
encryption |
S3オブジェクトを暗号化する場合に指定 |
|
overwriteFile |
boolean |
既にS3オブジェクトが存在した場合に上書きを行うか否か。 |
lobValidator |
Lobに対するチェック処理。 |
classはorg.iplass.mtp.impl.aws.lobstore.s3.S3Encryptionの実装クラスを指定します。
標準で、以下のS3Encryptionを提供しています。
classはorg.iplass.mtp.impl.aws.lobstore.s3.SseS3Encryptionを設定します。
SSE-S3方式で暗号化します。設定変更可能な項目は有りません。
classはorg.iplass.mtp.impl.aws.lobstore.s3.SseKmsEncryptionを設定します。
SSE-KMS方式で暗号化します。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
awsKmsKeyId |
String |
AWS Key Management Service (KMS)S3のKey Id |
classはorg.iplass.mtp.impl.lob.lobstore.multi.AddableMultiLobStoreを指定します。
複数のLobStoreを合わせて単一のLobStoreと設定することが可能なLobStoreです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
lobStore |
LobStore、複数指定可 |
LobStoreの設定。 |
lobValidator |
Lobに対するチェック処理。 |
classにorg.iplass.mtp.impl.lob.lobstore.LobValidatorの実装クラスを設定します。
標準で、以下のLobValidatorを提供しています。
classはorg.iplass.mtp.impl.lob.lobstore.LogLobValidatorを設定します。
単純にログを出力のみを行います。設定変更可能な項目は有りません。
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
実装クラス名
org.iplass.mtp.impl.mail.MailServiceImpl
org.iplass.mtp.impl.mail.AWSMailService
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.smtp.popbeforesmtp |
boolean |
POP before SMTPにより認証する場合trueを設定します。デフォルト値はfalseです。 |
mail.pop3.auth.id |
String |
POP before SMTP認証する際のユーザのIDです。 |
mail.pop3.auth.password |
String |
POP before SMTP認証する際のユーザのパスワードです。 |
mail.smtp.auth.id |
String |
SMTP認証する際のユーザIDです。 |
mail.smtp.auth.password |
String |
SMTP認証する際のパスワードです。 |
mail.charset |
String |
メールのデフォルトのcharsetです。 |
mail.encoding |
String |
メールのデフォルトのencodingです。 |
debug |
boolean |
デバッグを有効にした場合、標準出力にトレースを出力します。 |
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
retryIntervalMillis |
long |
メール送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
メール送信失敗時のリトライ回数。 |
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です。 |
mail.encoding |
String |
メールのデフォルトのencodingです。 |
mail.aws.host |
String |
SESのendpointを指定可能です。 |
debug |
boolean |
デバッグを有効にした場合、標準出力にトレースを出力します。 |
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
retryIntervalMillis |
long |
メール送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
メール送信失敗時のリトライ回数。 |
MailServiceImplのSendMailListenerと同様です。
設定例
MailServiceImplと同様です。
SendGridMailServiceImplの設定
SendGridを利用する場合、SendGridMailServiceImplを設定します。
設定項目
項目 | 値 | 説明 |
---|---|---|
checkBounce |
boolean |
送信前にバウンスリスト、ブロックリストチェックを行うか。デフォルト値はtrueです。 |
httpClientConfig |
HTTPクライアントの設定。 |
|
httpTransport |
WebApiへのHTTPリクエストの設定。 |
|
mailApiClient |
メールクライアントの設定。 |
|
deleteBouncePattern |
String |
SendGridのバウンス、ブロックリストにアドレスが載った際にリストから削除対象とするアドレス。ドメイン.正規表現の形式で指定します。 |
bounce |
バウンスクライアント。 |
|
block |
ブロッククライアント。 |
|
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
retryIntervalMillis |
long |
送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
送信失敗時のリトライ回数。 |
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 |
プロキシサーバのポート番号。 |
classはorg.iplass.mtp.impl.sendgrid.apiclient.HttpTransportImplを指定します。
以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
apiUser |
String、必須 |
SendGridのAPIユーザー。 |
apiKey |
String、必須 |
SendGridのAPIキー。 |
webApiRoot |
String、必須 |
SendGridのAPIのURL。 |
classはorg.iplass.mtp.impl.sendgrid.apiclient.MailClientImplを指定します。
以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
charset |
String |
メールの文字コード。 |
classはorg.iplass.mtp.impl.sendgrid.apiclient.BounceClientImplを指定します。
BounceClientImplは設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.sendgrid.apiclient.BlockClientImplを指定します。
BlockClientImplは設定変更可能な項目はありません。
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の設定。 |
classはorg.iplass.mtp.impl.message.ResourceBundleConfigを指定します。
標準でorg.iplass.mtp.impl.query.QuerySyntaxRegisterを提供しています。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
baseBundleNamePattern |
String |
バンドル名のパターン。 |
formats |
String、複数指定可 |
ファイルのフォーマット。 |
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。 |
|
sharedStore |
複数のテナントで共有するメタデータを管理するためのMetaDataStore。 |
各種メタデータを管理するための仕組みを提供します。
classはorg.iplass.mtp.impl.metadata.MetaDataStoreの実装クラスを指定します。
標準で以下のMetaDataStoreを提供します。
MetaDataRepositoryのannotatedClassで指定されたJavaクラスのアノテーションからメタデータを読み込みます。
JavaクラスのアノテーションがMetaDataSeeAlsoの場合、MetaDataSeeAlsoに指定されたJavaクラスのアノテーションを読み込みます。 その他のアノテーション場合、annotatableMetaDataFactoryに指定されたクラスからアノテーションに対応するメタデータを作成します。
読み込み専用で、メタデータの登録/更新/削除は出来ません。
classにorg.iplass.mtp.impl.metadata.annotation.AnnotationMetaDataStoreを指定します。
項目 | 値 | 説明 |
---|---|---|
annotatableMetaDataFactory |
アノテーションを読み込むためのクラス。 |
MetaDataRepositoryのresourcePathで指定されたクラスパス内に存在するXMLファイルからメタデータを読み込みます。 同様にfilePathで指定されたXMLファイルからXMLファイル絡めたデータを読み込みます。
読み込み専用で、メタデータの登録/更新/削除は出来ません。
classにorg.iplass.mtp.impl.metadata.xmlresource.XmlResourceMetaDataStoreを指定します。 設定変更可能な項目はありません。
データベースを利用してメタデータを管理します。 MetaDataRepositoryのtenantLocalStoreでデフォルト設定になっており、各テナントで追加/編集したメタデータはデータベースで管理されます。
classにorg.iplass.mtp.impl.metadata.rdb.RdbMetaDataStoreを指定します。 設定変更可能な項目はありません。
メタデータを種類毎に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に指定しているクラス。 |
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」です。 |
XMLファイルベースでメタデータを管理します。 メタデータはバージョンを付与し、世代管理を行います。
classにorg.iplass.mtp.impl.metadata.xmlfile.VersioningXmlFileMetaDataStoreを指定します。
項目 | 値 | 説明 |
---|---|---|
fileStorePath |
String |
テナントメタデータの保存先。 |
versionFormat |
String |
メタデータファイル名に付与されるバージョンのフォーマット。
未指定の場合 |
suffix |
String |
メタデータファイルの拡張子。デフォルト値は「.xml」です。 |
古いモジュールなどで提供されていたメタデータを現在のモジュールに変換し、利用できるようにするための機構です。
classにorg.iplass.mtp.impl.metadata.typeconversion.TypeConversionMetaDataStoreを指定します。
項目 | 値 | 説明 |
---|---|---|
store |
変換対象のメタデータを管理しているMetaDataStore。 |
|
converters |
TypeConverter 、複数指定可 |
メタデータの型変換を行うコンバータ。 |
アノテーションからメタデータを作成します。
classにorg.iplass.mtp.impl.metadata.annotation.AnnotatableMetaDataFactoryの実装クラスを指定します。
標準で以下のAnnotatableMetaDataFactoryを提供します。
CommandからCommandClassアノテーションを読み込みます。
classにorg.iplass.mtp.impl.command.MetaCommandClassFactoryを指定します。 設定変更可能な項目はありません。
CommandからAsyncCommandアノテーションを読み込みます。
classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandFactoryを指定します。 設定変更可能な項目はありません。
CommandからAsyncCommandsアノテーションを読み込みます。
classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandsFactoryを指定します。 設定変更可能な項目はありません。
CommandからActionMappingアノテーションを読み込みます。
classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingFactoryを指定します。 設定変更可能な項目はありません。
CommandからActionMappingsアノテーションを読み込みます。
classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingsFactoryを指定します。 設定変更可能な項目はありません。
CommandからTemplateアノテーションを読み込みます。
org.iplass.mtp.impl.web.template.MetaTemplateFactoryを指定します。 設定変更可能な項目はありません。
CommandからTemplatesアノテーションを読み込みます。
org.iplass.mtp.impl.web.template.MetaTemplatesFactoryを指定します。 設定変更可能な項目はありません。
CommandからWebApiアノテーションを読み込みます。
classにorg.iplass.mtp.impl.webapi.MetaWebApiFactoryを指定します。 設定変更可能な項目はありません。
CommandからWebApisアノテーションを読み込みます。
classにorg.iplass.mtp.impl.webapi.MetaWebApisFactoryを指定します。 設定変更可能な項目はありません。
CompositeMetaDataStoreでdefaultStoreClass以外のMetaDataStoreを利用する場合に利用します。 pathPrefixで指定したメタデータとstoreで指定したMetaDataStoreをマッピングします。
classにorg.iplass.mtp.impl.metadata.composite.MetaDataStorePathMappingを指定します。
項目 | 値 | 説明 |
---|---|---|
pathPrefix |
String |
メタデータのパスのプレフィックス。 |
store |
String |
pathPrefixで指定したメタデータを管理するstoreのクラス名。 |
新旧メタデータの変換処理を実装するためのインターフェースです。
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 |
キャッシュサイズ。デフォルト値は20です。 |
採番を行う単位と採番テーブルのマッピングを設定します。 以下の項目が設定できます。
項目 | 値 | 説明 |
---|---|---|
name |
String |
採番を行う単位の名前。 |
value |
String |
RDBのシーケンス名。 |
CachableRdbTableCounterServiceの設定
CachableRdbTableCounterServiceを設定します。
設定項目
項目 | 値 | 説明 |
---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
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、複数指定可 |
ワンタイム認証コードの生成器の設定。 |
classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorの実装クラスを指定します。
標準で、外部送信するワンタイム認証コードを生成するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGeneratorを提供します。 OutOfBandOnetimeCodeGeneratorの設定可能な項目は以下になります。
外部送信するワンタイム認証コードを生成するワンタイム認証コード生成器です。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
name |
String |
ワンタイム認証コード生成器の名前。 |
maxFailureCount |
int |
最大認証失敗回数。デフォルト値は5です。 |
lifetimeSeconds |
long |
ワンタイム認証コードの有効時間。デフォルト値は180(3分)です。 |
store |
ワンタイム認証コードの保持方式。 |
|
sender |
ワンタイム認証コードの外部送信方式。 |
|
strategy |
ワンタイム認証コードの生成方式。 |
classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeStoreの実装クラスを指定します。
標準で、ワンタイム認証コードをセッションに格納するorg.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStoreを提供します。 SessionOntimeCodeStoreは設定変更可能な項目はありません。
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を提供します。
classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSenderを指定します。
以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
mailTemplate |
String |
ワンタイム認証コードを送信するメールのテンプレート。 |
fromAddress |
String |
送信元メールアドレス。 テナントのメール送信設定で設定されているFromアドレスとは別のメールアドレスを使用する場合に設定します。 |
classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSenderを指定します。
以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
smsTemplate |
String |
ワンタイム認証コードを送信するSMSのテンプレート。 |
fromPhoneNumber |
String |
送信元電話番号。SmsServiceで設定されているdefaultFromとは別の電話番号を使用する場合に設定します。 |
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 |
暗号化した際に出力される文字列。デフォルト値は |
暗号化の方式を定義します。
classはorg.iplass.mtp.impl.properties.extend.crypt.EncryptionSettingの実装クラスを指定します。
標準で以下のEncryptionSettingを提供します。
PBKDF2(Password-Based Key Drivation Function 2)を用いた暗号化を行います。
classにorg.iplass.mtp.impl.properties.extend.crypt.PBKDF2EncryptionSettingを指定します。
項目 | 値 | 説明 |
---|---|---|
version |
String |
暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。 |
keyFactoryAlgorithm |
String |
鍵生成アルゴリズム。
デフォルト値は |
keySalt |
String |
鍵生成時のSalt。 未指定の場合はシステムのデフォルト値を利用。 |
keyStretch |
int |
鍵生成時のストレッチ回数。 デフォルト値は2048。 |
cipherAlgorithm |
String |
ブロック暗号化のアルゴリズム。
デフォルト値は |
keyLength |
int |
鍵長。デフォルト値は128。 |
keyPassword |
String |
鍵生成の元となるパスワード文字列。 |
KeyStoreファイルを用いた暗号化を行います。
classにorg.iplass.mtp.impl.properties.extend.crypt.KeyStoreEncryptionSettingを指定します。
項目 | 値 | 説明 |
---|---|---|
version |
String |
暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。 |
cipherAlgorithm |
String |
ブロック暗号化のアルゴリズム。
デフォルト値は |
keyLength |
int |
鍵長。デフォルト値は128。 |
keyStoreType |
String |
秘密鍵を保存するkeyStoreのタイプ。
デフォルト値は |
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クラスのプロパティにてリトライ処理する際の 指数バックオフ の設定。 |
|
registrationIdHandler |
registrationIdが存在しなかった場合や正規のRegistrationIdが存在するとFCMから通知された場合、その通知を処理するためのRegistrationIdHandlerの実装クラス。 未指定の場合は何も処理しません。 |
|
httpClientConfig |
WebApi呼び出し時のHTTPコネクションに関する設定。 |
|
listener |
PushNotificationListener、複数指定可 |
PushNotificationを送信した際のListener。 |
dryRun |
boolean |
FCM呼び出し時、このパラメータがtrueに設定されている場合、FCMは実際にメッセージを送信せず、リクエストをテストすることができます。未指定の場合のデフォルト値はfalseです。 |
endpoint |
String |
FCM呼び出しを行うエンドポイントのURL。未指定の場合のデフォルト値は |
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分)です。 |
classはorg.iplass.mtp.pushnotification.fcm.RegistrationIdHandlerの実装クラスを指定します。
標準で、単純にログ出力を行うorg.iplass.mtp.impl.pushnotification.fcm.LoggingRegistrationIdHandlerを提供します。 LoggingRegistrationIdHandlerは設定変更可能な項目はありません。
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コネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
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文の中に@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の設定。 |
|
"adapter"以外の任意の文字列 |
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の設定可能な項目は以下になります。
Oracleを利用するRdbAdapterです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
lockTimeout |
int |
行レベルロックが解放されるまでのタイムアウト(秒)。0が設定された場合はロックの解放を待ちません(FOR UPDATE NOWAIT)。マイナスの値が設定された場合はロックが解放されるまで待機します。デフォルト値は0です。 |
timestampFunction |
String |
タイムスタンプを取得するFunction。デフォルト値は |
addMonthsFunction |
String |
月を加算するFunction。デフォルト値は |
monthsBetweenFunction |
String |
2つの日付の差を取得するFunction。デフォルト値は |
isUseSubQueryForIndexJoin |
boolean |
相関副問い合わせを使ってIndexテーブルを利用した結合を行うか。デフォルト値はtrueです。 |
optimizerHint |
String |
オプティマイザ・ヒント。デフォルト値は |
enableInPartitioning |
boolean |
IN演算子の1000件制限を緩和する変換処理を行うか。デフォルト値はfalseです。 緩和する変換処理とは、IN(1,2,…)を1000件単位で(IN(1,2,…) OR IN(1001, 1002,…))とORで分割することです。 |
escapeFullwidthWildcard |
boolean |
全角文字 |
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です。 |
MySQLを利用するRdbAdapterです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
useFractionalSecondsOnTimestamp |
boolean |
タイムスタンプにミリ秒含めるか。デフォルト値はtrueです。 |
supportOptimizerHint |
boolean |
オプティマイズヒントをサポートするか。デフォルト値はfalseです。 |
localTemporaryTableManageOutsideTransaction |
boolean |
ローカル一時テーブルをトランザクションの外で管理するかを指定します。デフォルト値はfalseです。 |
localTemporaryTableCreatedByDataSource |
boolean |
ローカル一時テーブルがデータソースで作成されるかを指定します。デフォルト値はfalseです。 |
timestampMethod |
String |
タイムスタンプ取得関数。デフォルト値は |
seqAnotherTransaction |
boolean |
oidの採番を別トランザクションで行うか。デフォルト値はtrueです。 |
enableBindHint |
boolean |
bindヒント句を有効にするか。デフォルト値はfalseです。 |
batchSize |
int |
バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。 |
thresholdCountOfUsePrepareStatement |
int |
複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は-1です。 |
maxFetchSize |
int |
フェッチする際の最大サイズ。デフォルト値は100です。 |
defaultQueryTimeout |
int |
クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
PostgresSQLを利用するRdbAdapterです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
supportOptimizerHint |
boolean |
オプティマイズヒントをサポートするか。デフォルト値はfalseです。 |
timestampFunction |
String |
タイムスタンプを取得するFunction。デフォルト値は |
escapeBackslash |
boolean |
バックスラッシュをエスケープするか。デフォルト値はfalseです。 |
enableBindHint |
boolean |
bindヒント句を有効にするか。デフォルト値はfalseです。 |
maxFetchSize |
int |
フェッチする際の最大サイズ。デフォルト値は100です。 |
defaultQueryTimeout |
int |
クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
lockTimeout |
int |
ロック時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
SQL Serverを利用するRdbAdapterです。 以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
timestampFunction |
String |
タイムスタンプを取得するFunction。デフォルト値は |
addMonthsFunction |
String |
月を加算するFunction。デフォルト値は |
monthsBetweenFunction |
String |
2つの日付の差を取得するFunction。デフォルト値は |
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 |
オプティマイザ・ヒント。デフォルト値は |
設定例
<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 |
非同期処理を実行するためのキュー。 標準で以下のキューが定義されています。
|
|||||
cleanupHistoryOnInit |
boolean |
サービス初期化時に履歴を削除するか。デフォルトはfalseです。 |
||||
historyHoldDay |
int |
履歴を削除する際に何日分の履歴を残すか。デフォルトは1です。 |
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 |
キューを処理するワーカー。 |
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です。
現状 |
trace |
boolean |
ログを出力するか。デフォルト値はtrueです。 |
local |
boolean |
タスクをローカルで処理するか、リモートで処理するか。デフォルト値はtrueです。 |
newProcessPerTask |
boolean |
新しいプロセスで実行するか。デフォルト値はfalseです。 |
javaCommand |
String |
タスクで実行するJavaコマンド。 |
vmArgs |
String、複数指定可 |
|
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。
デフォルト値は |
設定例
<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の設定。 |
|
authTokenGenerator |
認証トークン生成時に使用する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
実装クラス名
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。 |
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の設定。 |
classはorg.iplass.mtp.impl.datastore.DataStoreの実装クラスを指定します。
標準で、以下のDataStoreをを提供します。
classはorg.iplass.mtp.impl.datastore.grdb.GRdbDataStoreを指定します。 コミュニティエディション用のDataStoreです。
以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
enableWindowFunctionEmulation |
boolean |
Window関数のエミュレートを有効にするか。デフォルト値はfalseです。 |
storageSpace |
StorageSpaceMap、複数指定可 |
StorageSpaceの設定。 |
classはorg.iplass.mtp.impl.datastore.grdb.EnterpriseGRdbDataStoreを指定します。 エンタープライズエディション用のDataStoreです。
設定項目はGRdbDataStoreを参照してください。
以下の項目を設定可能です。
項目 | 値 | 説明 |
---|---|---|
storageSpaceName |
String |
Entity定義で選択する際に表示されるStorageSpace名。 |
tableNamePostfix |
String |
StorageSpace用のテーブルに付加する接尾語。
英数字のみ利用してください。
標準で、 |
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の実装クラス名。 |
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 |
採番タイプの名前。デフォルト値は |
CachableRdbTableCounterServiceの設定
CachableRdbTableCounterServiceを設定します。
設定項目
項目 | 値 | 説明 |
---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
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 |
Bean Validationの設定。 |
Bean Validationの設定を行います。
classはorg.iplass.mtp.impl.validation.bean.BeanValidationConfigを指定します。 以下の項目を指定可能です。
項目 | 値 | 説明 |
---|---|---|
providerClass |
String |
javax.validation.spi.ValidationProviderの実装クラス名。 |
messageInterpolator |
MessageInterpolatorの設定。 |
|
properties |
Properties、複数指定可 |
プロバイダ固有のプロパティ。 |
classにjavax.validation.MessageInterpolatorの実装クラスを指定します。
標準でorg.iplass.mtp.impl.validation.bean.TenantContextMessageInterpolatorを提供しています。 以下の項目を指定可能です。
項目 | 値 | 説明 |
---|---|---|
messageInterpolatorFactory |
MessageInterpolatorFactoryの実装クラス名。 |
classにorg.iplass.mtp.impl.validation.bean.MessageInterpolatorFactoryの実装クラスを指定します。
標準でorg.iplass.mtp.impl.validation.bean.hibernate.HibernateMessageInterpolatorFactoryを提供しています。 以下の項目を指定可能です。
項目 | 値 | 説明 |
---|---|---|
resourceBundleLocator |
ResourceBundleLocatorの実装クラス名。 |
|
cachingEnabled |
boolean |
キャッシュが有効か。 |
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 |
ワークフローインスタンスの管理方法。 |
|
historyLogStore |
ワークフロー履歴の管理方法。 |
|
queueForWorkflow |
String |
ワークフロー用のキュー名。 |
classにorg.iplass.mtp.impl.workflow.WorkflowInstanceStoreの実装クラスを指定します。
標準でorg.iplass.mtp.impl.workflow.store.EntityWorkflowInstanceStoreを提供します。 ワークフローインスタンスをEntityとして管理します。 設定可能な項目はありません。
classにorg.iplass.mtp.impl.workflow.HistoryLogStoreの実装クラスを指定します。
標準で以下のHistoryLogStoreを提供します。
ワークフロー履歴をログとして管理します。
classはorg.iplass.mtp.impl.workflow.store.LoggerHistoryLogStoreを指定します。 設定可能な項目はありません。
ワークフロー履歴を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>