intra-mart Accel Platform 設定ファイルリファレンス 第21版 2018-12-01

resin-web 設定

概要

Resin に関する設定です。

モジュール Resin
フォーマットファイル(xsd) なし
設定場所 WEB-INF/resin-web.xml

<web-app xmlns="http://caucho.com/ns/resin" xmlns:resin="urn:java:com.caucho.resin">
  <log-handler name="" class="jp.co.intra_mart.common.platform.log.handler.JDKLoggingOverIntramartLoggerHandler"/>
  <!-- im_service(im_asynchronous) -->
  <resource jndi-name="jca/work" type="jp.co.intra_mart.system.asynchronous.impl.executor.work.resin.ResinResourceAdapter" />
  <jsp>
    <recycle-tags>false</recycle-tags>
  </jsp>
  <database jndi-name="jdbc/default">
    <driver>
      <type>org.postgresql.ds.PGConnectionPoolDataSource</type>
      <url>jdbc:postgresql://localhost:5432/iap_db</url>
      <user>imart</user>
      <password>imart</password>
      <preparedStatementCacheQueries>0</preparedStatementCacheQueries>
    </driver>
    <max-connections>20</max-connections>
    <prepared-statement-cache-size>0</prepared-statement-cache-size>
  </database>
  <session-config>
    <reuse-session-id>false</reuse-session-id>
    <session-timeout>30</session-timeout>
  </session-config>
</web-app>

リファレンス

ログハンドラ設定

タグ名 log-handler
ログハンドラに関する設定です。

【設定項目】

<web-app>
  <log-handler name="" class="jp.co.intra_mart.common.platform.log.handler.JDKLoggingOverIntramartLoggerHandler"/>
</web-app>

必須項目 ×
複数設定
設定値・設定する内容 ログハンドラに関する設定をします。
単位・型 なし
省略時のデフォルト値 なし
親タグ web-app

【属性】

属性名 説明 必須 デフォルト値
name ログハンドラの名前を指定します。 なし
class ログハンドラのクラス名を指定します。 なし

注意

この設定は変更しないでください。

リソース設定

タグ名 resource
リソースに関する設定です。

【設定項目】

<web-app>
  <resource jndi-name="jca/work" type="jp.co.intra_mart.system.asynchronous.impl.executor.work.resin.ResinResourceAdapter" />
</web-app>

必須項目 ×
複数設定
設定値・設定する内容 リソースに関する設定をします。
単位・型 なし
省略時のデフォルト値 なし
親タグ web-app

【属性】

属性名 説明 必須 デフォルト値
jndi-name リソースの JNDI 名を指定します。 なし
type リソースのタイプを指定します。 なし

注意

この設定は変更しないでください。

JSP 設定

タグ名 jsp
JSP に関する設定です。

【設定項目】

<web-app>
  <jsp>
    ...
  </jsp>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 JSP の設定をします。
単位・型 なし
省略時のデフォルト値 なし
親タグ web-app

タグ再利用設定

タグ名 recycle-tags
JSP に関する設定です。
タグクラスのインスタンスを再利用します。

【設定項目】

<web-app>
  <jsp>
    <recycle-tags>false</recycle-tags>
  </jsp>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容
true タグのインスタンスを再利用します。
false タグのインスタンスを再利用しません。
単位・型 真偽値 (true/false)
省略時のデフォルト値 なし
親タグ jsp

注意

この設定は変更しないでください。

データベース設定

タグ名 database
データベース接続に関する設定です。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    ...
  </database>
</web-app>

必須項目 ×
複数設定
設定値・設定する内容 データベース接続を行うための設定をします。
単位・型 なし
省略時のデフォルト値 なし
親タグ web-app

【属性】

属性名 説明 必須 デフォルト値
jndi-name このデータベース設定の JNDI 名を設定します。 なし

コネクション取得待ち時間設定

タグ名 connection-wait-time
データベースコネクションの取得待ち時間です。コネクション取得時にこの時間を超えて利用可能なコネクションを取得できない場合はオーバーフローコネクションとして取得を試行します。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    ...
    <connection-wait-time>30s</connection-wait-time>
    ...
  </database>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 コネクションの滞留待ち時間を設定します。
単位・型

文字列(数値 + 時間単位)

時間単位に利用可能な文字は以下の通りです。

ms(ミリ秒)、s(秒)、m(分)、h(時)、D(日)、W(週)、M(月)、Y(年)
省略時のデフォルト値 30s(30秒)
親タグ database

ドライバ設定

タグ名 driver
JDBC ドライバに関する設定です。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    <driver>
      ...
    </driver>
  </database>
</web-app>

必須項目
複数設定 ×
設定値・設定する内容 JDBC ドライバの設定をします。
単位・型 なし
省略時のデフォルト値 なし
親タグ database

ドライバタイプ設定

タグ名 type
JDBC ドライバのタイプに関する設定です。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    <driver>
      <type>org.postgresql.ds.PGConnectionPoolDataSource</type>
      ...
    </driver>
  </database>
</web-app>

必須項目
複数設定 ×
設定値・設定する内容 JDBC ドライバのタイプを設定をします。
単位・型 文字列
省略時のデフォルト値 なし
親タグ driver

コラム

弊社では、Resin 4.0.56 以降をご利用の場合は ConnectionPoolDataSource の利用を推奨します。
Resin 4.0.55 以前では、java.sql.Driver をご利用ください。
Resin 4.0.56 以降でも java.sql.Driver を利用することは可能です。

ドライバ URL 設定

タグ名 url
JDBC ドライバの URL に関する設定です。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    <driver>
      ...
      <url>jdbc:postgresql://localhost:5432/iap_db</url>
      ...
    </driver>
  </database>
</web-app>

必須項目
複数設定 ×
設定値・設定する内容 JDBC ドライバの URL を設定をします。
単位・型 文字列
省略時のデフォルト値 なし
親タグ driver

ユーザ設定

タグ名 user
接続するデータベースのユーザに関する設定です。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    <driver>
      ...
      <user>imart</user>
      ...
    </driver>
  </database>
</web-app>

必須項目
複数設定 ×
設定値・設定する内容 データベースのユーザを設定をします。
単位・型 文字列
省略時のデフォルト値 なし
親タグ driver

パスワード設定

タグ名 password
接続するデータベースのユーザのパスワードに関する設定です。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    <driver>
      ...
      <password>imart</password>
      ...
    </driver>
  </database>
<web-app>

必須項目
複数設定 ×
設定値・設定する内容 データベースのユーザのパスワードを設定をします。
単位・型 文字列
省略時のデフォルト値 なし
親タグ driver

暗号化パスワード設定

タグ名 resin:Password
接続するデータベースのユーザのパスワードに関する設定です。
暗号化されたパスワードを使用する場合に使用します。

このタグを使用する場合は、予めパスワードを暗号化してください。パスワードの暗号化はコマンドラインから resin.exe を実行します。
C:\resin-pro-4.x.xx>resin password-encrypt <パスワード>
password: {RESIN}WFpCuWyYSFzuOK1Gda0TxQ==
Linux 環境の場合は resinctl コマンドを使用してください。
resinctl コマンドを使用するには Resin がコンパイル、インストール済みである必要があります。
[resin-pro-4.x.xx]# bin/resinctl password-encrypt <パスワード>
password: {RESIN}WFpCuWyYSFzuOK1Gda0TxQ==
このタグを使用するには設定ファイルに以下のネームスペースが記述されている必要があります。
xmlns:resin="urn:java:com.caucho.resin"

【設定項目】

<web-app xmlns="http://caucho.com/ns/resin" xmlns:resin="urn:java:com.caucho.resin">
  ...
  <database jndi-name="jdbc/default">
    <driver>
      ...
      <password>
        <resin:Password value="{RESIN}WFpCuWyYSFzuOK1Gda0TxQ=="/>
      </password>
      ...
    </driver>
  </database>
<web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容
なし
単位・型 なし
省略時のデフォルト値 なし
親タグ password

【属性】

属性名 説明 必須 デフォルト値
value 暗号化されたパスワードを設定します。 なし

接続タイムアウト時間設定

タグ名 max-active-time
コネクションを取得してからの利用可能時間を設定します。この時間を超えたコネクションはクローズされます。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    ...
    <max-active-time>6h</max-active-time>
    ...
  </database>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 接続タイムアウト時間設定
単位・型

文字列(数値 + 時間単位)

時間単位に利用可能な文字は以下の通りです。

ms(ミリ秒)、s(秒)、m(分)、h(時)、D(日)、W(週)、M(月)、Y(年)
省略時のデフォルト値 6h(6時間)
親タグ database

最大コネクション数設定

タグ名 max-connections
データベースプールで利用可能なコネクションの最大数を設定します。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    ...
    <max-connections>20</max-connections>
    ...
  </database>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 コネクションの最大数
単位・型 数値
省略時のデフォルト値 1024
親タグ database

最大アイドル時間設定

タグ名 max-idle-time
データベースプールでアイドル状態のコネクションを保持する最大時間を設定します。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    ...
    <max-idle-time>60s</max-idle-time>
    ...
  </database>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 最大アイドル時間
単位・型

文字列(数値 + 時間単位)

時間単位に利用可能な文字は以下の通りです。

ms(ミリ秒)、s(秒)、m(分)、h(時)、D(日)、W(週)、M(月)、Y(年)
省略時のデフォルト値 60s
親タグ database

最大オーバーフローコネクション数設定

タグ名 max-overflow-connections
コネクション取得待ち時間設定 の設定時間を超越してコネクションをデータベースプールから取得できなかった場合に利用可能となるコネクションの数です。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    ...
    <max-overflow-connections>1024</max-overflow-connections>
    ...
  </database>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 オーバーフローコネクションの最大数
単位・型 数値
省略時のデフォルト値 1024
親タグ database

最大プール内生存時間設定

タグ名 max-pool-time
データベースコネクションプールで扱うコネクションの最大生存時間を設定します。

【設定項目】

<web-app>
  <database jndi-name="jdbc/default">
    ...
    <max-pool-time>24h</max-pool-time>
    ...
  </database>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 最大プール内生存時間
単位・型

文字列(数値 + 時間単位)

時間単位に利用可能な文字は以下の通りです。

ms(ミリ秒)、s(秒)、m(分)、h(時)、D(日)、W(週)、M(月)、Y(年)
省略時のデフォルト値 24h
親タグ database

プリペアドステートメントキャッシュ設定

タグ名
prepared-statement-cache-size
Postgresql Driver, Version 9.4-1202 以降の場合、または Postgresql Driver で ConnectionPoolDataSource を利用する場合は JDBC ドライバの初期化パラメータに設定
PreparedStatement を使用して SQL を発行すると、作成されたステートメントはメモリ上にキャッシュされます。
次回、同じ SQL が発行された場合、キャッシュされたステートメントが再利用され、レスポンスの向上を図ることができます。
prepared-statement-cache-size は、キャッシュを行うステートメントの個数を設定します。
intra-mart Accel Platform では、機能により SQL の発行や内容が回数が異なります。
その為、8, 16 程度の個数が設定されている場合キャッシュにヒットせずこの仕組みが有効に機能しない可能性があります。
プリペアドステートメントのキャッシュが適切にヒットするよう設定する場合、128 等ある程度の個数をキャッシュするよう設定する必要があります。

【設定項目】

以下の JDBC ドライバを使用する場合は prepared-statement-cache-size タグを設定してください。
  • Oracle
  • Microsoft SQLServer
  • Postgresql Driver, Version 9.4-1201 以前
<web-app
  <database jndi-name="jdbc/default">
    ...
    <prepared-statement-cache-size>0</prepared-statement-cache-size>
  </database>
</web-app>
Postgresql Driver, Version 9.4-1202 以降を使用する場合は JDBC ドライバの仕様変更により、prepared-statement-cache-size タグの設定は適用されません。
JDBC 1.0 の設定方法で、初期化パラメータに preparedStatementCacheQueries を設定する必要があります。
<web-app
  <database jndi-name="jdbc/default">
    <driver>
      ...
      <init-param>
        <param-name>preparedStatementCacheQueries</param-name>
        <param-value>0</param-value>
      </init-param>
    </driver>
  </database>
</web-app>
Postgresql Driver で ConnectionPoolDataSource を利用する場合は、JDBC 2.0 の設定方法で初期化パラメータとして設定する必要があります。
<web-app
  <database jndi-name="jdbc/default">
    <driver>
      ...
      <preparedStatementCacheQueries>0</preparedStatementCacheQueries>
    </driver>
  </database>
</web-app>
必須項目 ×
複数設定 ×
設定値・設定する内容 プリペアドステートメントのキャッシュ数
単位・型 数値
省略時のデフォルト値 0
親タグ
database
Postgresql Driver, Version 9.4-1202 以降の場合は driver
Postgresql Driver で ConnectionPoolDataSource を利用する場合は driver

セッション設定

タグ名 session-config
セッションに関する設定です。

【設定項目】

<web-app>
  <session-config>
    ...
  </session-config>
</web-app>

必須項目 ×
複数設定
設定値・設定する内容 セッションに関する設定をします。
単位・型 なし
省略時のデフォルト値 なし
親タグ web-app

セッションIDの再利用設定

タグ名 reuse-session-id
HTTP セッションの ID を再利用するかどうかを設定します。
true を設定した場合、過去に利用されたセッション ID を再利用します。
再利用されるのは ID のみで、過去に保管されていたセッションの情報は引き継ぎません。
ログイン、ログアウトにおいて、セッションを再作成しますが、その時に異なるセッション ID を利用する場合は、false を設定してください。

【設定項目】

<web-app>
  <session-config>
    <reuse-session-id>false</reuse-session-id>
  </session-config>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 HTTP セッションの ID を再利用するかどうかを設定します。
単位・型 真偽値(true/false)
省略時のデフォルト値 true
親タグ session-config

セッションタイムアウト設定

タグ名 session-timeout
HTTP セッションのタイムアウト時間です。指定した時間セッションを維持します。

【設定項目】

<web-app>
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
</web-app>

必須項目 ×
複数設定 ×
設定値・設定する内容 HTTP セッションがタイムアウトされるまでの時間を設定をします。単位は分です。
単位・型 数値
省略時のデフォルト値 30
親タグ session-config

注意

セッションタイムアウトは、設定された時間に対して、最大 1 分間のずれが発生します。
例えば、セッションタイムアウトを 30 分に設定した場合、セッションタイムアウトが発生する時間は最終アクセス後、30 分から 31 分の間です。

JSPプリコンパイル設定

Web アプリケーションに含まれる JSP をサーバ起動時にプリコンパイルを行う設定です。
通常 JSP はページがアクセスされた時にコンパイルされますが、JSP プリコンパイル設定を行うことで事前にコンパイルを行うことが可能です。
JSPプリコンパイル設定を行うには、com.caucho.jsp.JspPrecompileListener を resin-web.xml の ServletContextListener に設定してください。
<web-app>
  <listener>
    <listener-class>com.caucho.jsp.JspPrecompileListener</listener-class>
    <init>
      <extension>jsp</extension>
    </init>
  </listener>
</web-app>
<extension> タグにはプリコンパイルを行うファイルの拡張子を指定してください。
上記の例では Web アプリケーションに含まれるすべての jsp ファイルをプリコンパイルを行う対象としています。
さらに詳細にプリコンパイル対象を指定する場合は <fileset> タグを指定します。
<web-app>
  <listener>
    <listener-class>com.caucho.jsp.JspPrecompileListener</listener-class>
    <init>
      <fileset>
        <include>**/*.jsp</include>
        <exclude>/a.jsp</exclude>
        <exclude>/foo/c.jsp</exclude>
      </fileset>
    </init>
  </listener>
</web-app>
<include> タグはプリコンパイルの対象とするファイル名、<exclude> タグにはプリコンパイルの対象から除外するファイル名を指定します。
上記の例で Web アプリケーション内に含まれるすべてのパスの jsp ファイルをプリコンパイルの対象とし、/a.jsp と /foo/c.jsp のみプリコンパイルの対象から除外しています。