Comments
Description
Transcript
チューニングガイド - ソフトウェア
Interstage Business Application Server V9.2.0 チューニングガイド Windows/Solaris/Linux J2X1-6030-08Z0(00) 2009年10月 まえがき ■本書の目的 本書は、“Interstage Business Application Server チューニングガイド”です。 本書は、Interstage Business Application Serverの環境構築、運用形態の変更およびシステム規模を変更する場合などに必要な環境 設定のチューニングについて説明しています。 本書は、以下の方を対象にしています。 ・ Interstage Business Application Serverの環境構築をする方 ・ Interstage Business Application Serverの運用管理をする方 ■前提知識 本書を読む場合、以下の知識が必要です。 ・ 使用するOSに関する基本的な知識 ・ C言語に関する基本的な知識 ・ COBOLに関する基本的な知識 ・ Javaに関する基本的な知識 ・ J2EEに関する基本的な知識 ・ インターネットに関する基本的な知識 ・ リレーショナルデータベースに関する基本的な知識 ■本書の構成 本書は、以下のように構成されています。 第1部 共通編 第1章 必要資源 運用時に必要な資源について説明します。 第2章 データベースアクセス資源のチューニング データベースアクセス資源のチューニングについて説明します。 第3章 高信頼性ログ機能の資源の見積り式 高信頼性ログ機能の資源の見積り式について説明します。 第4章 高信頼性ログ機能のメモリの見積り式 高信頼性ログ機能のメモリの見積り式について説明します。 第2部 非同期アプリケーション連携実行基盤編 第5章 システム・チューニング 非同期アプリケーション連携実行基盤における、システムのカスタマイズによる最適化について説明します。 第6章 パフォーマンス・チューニング 非同期アプリケーション連携実行基盤における、パフォーマンスのカスタマイズによる最適化について説明します。 第7章 タイムアウト値のチューニング 非同期アプリケーション連携実行基盤における、タイムアウト値のチューニングについて説明します。 第3部 同期アプリケーション連携実行基盤編 第8章 システム・チューニング 同期アプリケーション連携実行基盤における、システムのカスタマイズによる最適化について説明します。 第9章 パフォーマンス・チューニング 同期アプリケーション連携実行基盤における、パフォーマンスのカスタマイズによる最適化について説明します。 -i- 第10章 タイムアウト値のチューニング 同期アプリケーション連携実行基盤における、タイムアウト値のチューニングについて説明します。 ■製品名称 本書では、以下の製品名称を略称で表記しています。 製品名称 略称 Microsoft(R) Windows(R) 2000 Professional、 Microsoft(R) Windows(R) 2000 Server、 Microsoft(R) Windows(R) 2000 Advanced Server、 Microsoft(R) Windows Server(R) 2003, Standard Edition、 Microsoft(R) Windows Server(R) 2003 R2, Standard Edition、 Microsoft(R) Windows Server(R) 2003, Enterprise Edition、 Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition、 Microsoft(R) Windows Server(R) 2003, Standard x64 Edition、 Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition、 Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition、 Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition、 Microsoft(R) Windows Server(R) 2008 Standard、 Microsoft(R) Windows Server(R) 2008 Standard without Hyper-V、 Microsoft(R) Windows Server(R) 2008 Enterprise、 Microsoft(R) Windows Server(R) 2008 Enterprise without Hyper-V、 Microsoft(R) Windows Server(R) 2008 Datacenter、 Microsoft(R) Windows Server(R) 2008 Datacenter without Hyper-V、 Microsoft(R) Windows(R) XP Professional x64 Edition、 Microsoft(R) Windows(R) XP Home Edition、 Microsoft(R) Windows(R) XP Professional、 Microsoft(R) Windows Vista(R) Ultimate、 Microsoft(R) Windows Vista(R) Business、 Microsoft(R) Windows Vista(R) Home Premium、 Microsoft(R) Windows Vista(R) Home Basic、および Microsoft(R) Windows Vista(R) Enterprise Windows Microsoft(R) Windows(R) 2000 Advanced Server、 Microsoft(R) Windows(R) 2000 Server、および Microsoft(R) Windows(R) 2000 Professional Windows 2000 Microsoft(R) Windows(R) XP Professional x64 Edition、 Microsoft(R) Windows(R) XP Professional、および Microsoft(R) Windows(R) XP Home Edition Windows XP Microsoft(R) Windows Vista(R) Ultimate、 Microsoft(R) Windows Vista(R) Business、 Microsoft(R) Windows Vista(R) Home Premium、 Microsoft(R) Windows Vista(R) Home Basic、および Microsoft(R) Windows Vista(R) Enterprise Windows Vista Microsoft(R) Windows Server(R) 2003, Standard Edition、 Microsoft(R) Windows Server(R) 2003 R2, Standard Edition、 Microsoft(R) Windows Server(R) 2003, Enterprise Edition、 Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition、 Microsoft(R) Windows Server(R) 2003, Standard x64 Edition、 Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition、 Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition、および Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition、 Windows Server 2003またはWindows Server Microsoft(R) Windows Server(R) 2008 Standard、 Microsoft(R) Windows Server(R) 2008 Standard without Hyper-V、 Microsoft(R) Windows Server(R) 2008 Enterprise、 Windows Server 2008またはWindows Server - ii - 製品名称 略称 Microsoft(R) Windows Server(R) 2008 Enterprise without Hyper-V、 Microsoft(R) Windows Server(R) 2008 Datacenter、および Microsoft(R) Windows Server(R) 2008 Datacenter without Hyper-V Solaris(TM) オペレーティングシステム Solaris Solaris(TM) 9 オペレーティングシステム Solaris 9 Solaris(TM) 10 オペレーティングシステム Solaris 10 Red Hat Enterprise Linux AS v.4、および Red Hat Enterprise Linux 5 Linux Java 2 SDK, Standard Edition、および Java Development Kit JDK Java 2 Runtime Environment, Standard Edition、および Java Runtime Environment JRE Oracle Database 10g Standard Edition、および Oracle Database 10g Enterprise Edition Oracle、 またはOracle10g Oracle Database 11g Standard Edition、および Oracle Database 11g Enterprise Edition Oracle、 またはOracle11g Symfoware Server(注) Symfoware Server Enterprise Edition 8.0/9.0/9.1、および Symfoware Server Enterprise Extended Edition 8.0/9.0/9.1 Symfoware Server Enterprise Edition 8.0/9.0/9.1、および Symfoware Server Enterprise Extended Edition 8.0/9.0/9.1 Symfoware Server Enterprise Edition 8.0/9.1 Interstage Studio Enterprise Edition 9.0/9.1/9.2 Interstage Studio NetCOBOL Enterprise Edition 開発パッケージ V9.0/V10.0、 NetCOBOL Base Edition 開発パッケージ for Windows V8.0/V9.0/V10.0、 NetCOBOL Standard Edition 開発パッケージ for Windows V8.0/V9.0/V10.0、およ び NetCOBOL Professional Edition 開発パッケージ for Windows V8.0/V9.0/V10.0 NetCOBOL NetCOBOL Enterprise Edition 運用パッケージ V9.0/V9.1、および NetCOBOL Enterprise Edition 開発・運用パッケージ V9.0/V9.1 (32ビット) NetCOBOL Enterprise Edition 運用パッケージ V7.3、および NetCOBOL Enterprise Edition 開発・運用パッケージ V7.3 (64ビット) NetCOBOL Enterprise Edition 運用パッケージ V9.0/V9.1、および NetCOBOL Enterprise Edition 開発・運用パッケージ V9.0/V9.1 NetCOBOL Enterprise Edition サーバ運用パッケージ V9.0/V10.0 Xerces 2.6.2 Xerces 注) Symfoware Serverと、Interstage Business Application Serverに同梱しているSymfoware/RDBとを総称する場合、Symfowareと表記 します。 - iii - ■著作権 Copyright 2009 FUJITSU LIMITED 2009年10月 第7版 - iv - 目 次 第1部 共通編.............................................................................................................................................................................1 第1章 必要資源.........................................................................................................................................................................2 1.1 運用時に必要なディスク容量.............................................................................................................................................................2 1.1.1 非同期アプリケーション連携実行基盤を使用する場合.............................................................................................................3 1.1.1.1 メッセージ長の見積り式........................................................................................................................................................3 1.2 メモリ容量.............................................................................................................................................................................................5 1.3 スワップ容量........................................................................................................................................................................................5 1.4 IPC資源...............................................................................................................................................................................................5 1.4.1 ログ機能を使用する場合のチューニング....................................................................................................................................5 1.4.1.1 IPCパラメタの見積もり式(Solarisの場合)............................................................................................................................5 1.4.1.2 IPCパラメタの見積り式(Linuxの場合)..................................................................................................................................7 1.4.2 非同期アプリケーション連携実行基盤のチューニング..............................................................................................................8 1.4.2.1 IPCパラメタの見積もり式(Solarisの場合)............................................................................................................................8 1.4.2.2 IPCパラメタの見積もり式(Linuxの場合)..............................................................................................................................9 1.5 Interstageのチューニング..................................................................................................................................................................10 第2章 データベースアクセス資源のチューニング.......................................................................................................................11 2.1 アプリケーション(C/COBOL)の場合................................................................................................................................................11 2.1.1 DBへの事前コネクト数のチューニング.....................................................................................................................................11 2.1.2 データベースのボトルネック(Symfowareを使う場合)..............................................................................................................12 2.1.2.1 データベース接続環境のボトルネック................................................................................................................................12 2.1.3 データベースのボトルネック(Oracleを使う場合)......................................................................................................................12 2.1.3.1 データベース接続環境のボトルネック................................................................................................................................12 2.1.4 データベースの性能測定とチューニング(Symfowareを使う場合).........................................................................................12 2.1.4.1 データベース接続環境のチューニング..............................................................................................................................12 2.1.5 データベースの性能測定とチューニング(Oracleを使う場合).................................................................................................15 2.1.5.1 データベース接続環境のチューニング..............................................................................................................................15 2.2 アプリケーション(Java)の場合..........................................................................................................................................................16 2.2.1 DBへの事前コネクト数のチューニング.....................................................................................................................................16 2.2.2 データベースのボトルネック(Symfowareを使う場合)..............................................................................................................18 2.2.2.1 JDBCのボトルネック............................................................................................................................................................18 2.2.3 データベースのボトルネック(Oracleを使う場合)......................................................................................................................19 2.2.3.1 JDBCのボトルネック............................................................................................................................................................19 2.2.4 データベースの性能測定とチューニング(Symfowareを使う場合).........................................................................................20 2.2.4.1 JDBCのチューニング..........................................................................................................................................................20 2.2.5 データベースの性能測定とチューニング(Oracleを使う場合).................................................................................................22 2.2.5.1 JDBCのチューニング..........................................................................................................................................................22 第3章 高信頼性ログ機能の資源の見積り式............................................................................................................................. 24 3.1 ユーザログテーブルの容量見積り式...............................................................................................................................................24 3.1.1 エントリサイズの見積り式............................................................................................................................................................24 3.1.2 エントリの個数の見積り式..........................................................................................................................................................24 3.1.3 データベーススペース量の見積り式.........................................................................................................................................24 3.2 RDBディクショナリの容量見積り式...................................................................................................................................................29 3.3 RDBディレクトリファイルの見積り式..................................................................................................................................................30 3.3.1 RDBディレクトリファイルの見積り式...........................................................................................................................................30 3.3.2 運用別RDBディレクトリファイルの見積り式...............................................................................................................................30 3.4 ログ量の見積り式..............................................................................................................................................................................31 3.5 ログ管理ファイルの見積り式.............................................................................................................................................................32 3.6 テンポラリログファイルの見積り式.....................................................................................................................................................32 3.7 アーカイブログファイルの見積り式...................................................................................................................................................35 3.8 作業域の見積り式.............................................................................................................................................................................36 第4章 高信頼性ログ機能のメモリの見積り式............................................................................................................................38 -v- 4.1 初期量...............................................................................................................................................................................................38 4.2 RDB構成パラメタファイルの指定で変動するメモリ量.....................................................................................................................38 4.3 RDBシステムの構成で変動するメモリ量..........................................................................................................................................39 4.4 共用メモリサイズ................................................................................................................................................................................43 4.5 デフォルトバッファサイズ...................................................................................................................................................................44 4.6 データベースアクセスの使用メモリ量...............................................................................................................................................44 第2部 非同期アプリケーション連携実行基盤編.........................................................................................................................46 第5章 システム・チューニング...................................................................................................................................................47 5.1 データベースのチューニング............................................................................................................................................................47 5.1.1 データベースの設定(Symfoware/RDBを使う場合).................................................................................................................47 5.1.1.1 RDB構成パラメタ................................................................................................................................................................47 5.1.1.2 システム用の動作環境ファイル..........................................................................................................................................47 5.1.1.3 テンポラリログファイルの見積り式.......................................................................................................................................48 5.1.1.4 RDBディクショナリの見積り式.............................................................................................................................................49 5.1.1.5 アーカイブログファイルの見積り式.....................................................................................................................................49 5.1.1.6 データベーススペース(フロー定義DB)の見積り式...........................................................................................................49 5.1.1.7 データベーススペース(メッセージトラッキングDB)の見積り式..........................................................................................51 5.1.1.8 データベーススペース(メッセージ格納DBのシステム固有部)の見積り式.......................................................................52 5.1.1.9 データベーススペース(メッセージ格納DBのユーザ指定部)の見積り式..........................................................................53 5.1.1.10 JDBCデータソースの見積り式..........................................................................................................................................55 5.1.2 データベースの設定(Oracleを使う場合)..................................................................................................................................57 5.1.2.1 システムパラメタの見積り式(Solarisの場合).....................................................................................................................57 5.1.2.2 初期化パラメタファイルの見積り式.....................................................................................................................................58 5.1.2.3 リスナーファイルの見積り式................................................................................................................................................59 5.1.2.4 UNDO表領域の見積り式....................................................................................................................................................59 5.1.2.5 制御ファイルの見積り式......................................................................................................................................................59 5.1.2.6 REDOログ・ファイルの見積り式..........................................................................................................................................59 5.1.2.7 テーブルスペース(フロー定義DB)の見積り式..................................................................................................................59 5.1.2.8 テーブルスペース(メッセージトラッキングDB)の見積り式.................................................................................................62 5.1.2.9 テーブルスペース(メッセージ格納DBシステム固有部)の見積り式..................................................................................65 5.1.2.10 テーブルスペース(メッセージ格納DBユーザ指定部)の見積り式..................................................................................67 5.2 同時処理数のチューニング..............................................................................................................................................................70 5.2.1 アプリケーション(COBOL)の場合............................................................................................................................................70 5.2.1.1 非同期アプリケーション連携実行基盤-同時処理数の設定...........................................................................................70 5.2.2 アプリケーション(Java)の場合...................................................................................................................................................70 5.2.2.1 EJBコンテナ-同時処理数の設定........................................................................................................................................70 5.2.2.1.1 同時処理数..................................................................................................................................................................71 5.2.2.1.2 Session Bean.................................................................................................................................................................71 5.2.2.1.3 Entity Bean...................................................................................................................................................................72 5.2.2.1.4 Message-driven Bean....................................................................................................................................................73 5.2.2.1.5 JNDI..............................................................................................................................................................................73 5.2.3 イベントチャネルの設定.............................................................................................................................................................74 5.3 Java VMのヒープ領域サイズのチューニング...................................................................................................................................77 5.3.1 Java VMのヒープ領域サイズの設定.........................................................................................................................................77 第6章 パフォーマンス・チューニング..........................................................................................................................................78 6.1 チューニング計画..............................................................................................................................................................................78 6.1.1 問題の整理と課題の設定..........................................................................................................................................................78 6.1.2 目標値とスケジュールの設定....................................................................................................................................................78 6.1.3 チューニングの実施手順...........................................................................................................................................................78 6.2 ボトルネックの特定............................................................................................................................................................................78 6.2.1 アプリケーション同時処理数のボトルネック..............................................................................................................................79 6.2.1.1 非同期アプリケーション連携実行基盤-同時処理数のボトルネック(COBOL)..............................................................79 6.2.1.2 EJBコンテナ-同時処理数のボトルネック.........................................................................................................................79 6.2.2 Java VMのヒープ領域サイズのボトルネック..............................................................................................................................80 6.3 性能測定とチューニング...................................................................................................................................................................80 - vi - 6.3.1 同時処理数のチューニング.......................................................................................................................................................80 6.3.1.1 非同期アプリケーション連携実行基盤-同時処理数の設定(COBOL).........................................................................80 6.3.1.2 EJBコンテナ-同時処理数の場合.....................................................................................................................................80 6.3.2 Java VMのヒープ領域サイズの場合.........................................................................................................................................81 第7章 タイムアウト値のチューニング.........................................................................................................................................83 7.1 タイマ監視.........................................................................................................................................................................................83 7.1.1 非同期アプリケーション連携実行基盤のタイマ監視................................................................................................................83 7.1.2 Interstage Application Serverおよびデータベース製品のタイマ監視......................................................................................87 7.2 タイムアウト値の関係.........................................................................................................................................................................93 7.2.1 アプリケーション連携フローに関するタイムアウト.....................................................................................................................93 7.2.2 業務処理開始アプリケーションに関するタイムアウト................................................................................................................94 7.2.3 業務処理実行アプリケーションに関するタイムアウト................................................................................................................94 7.2.4 各タイムアウト値の関係..............................................................................................................................................................95 第3部 同期アプリケーション連携実行基盤編............................................................................................................................96 第8章 システム・チューニング...................................................................................................................................................97 8.1 CORBAワークユニットのチューニング.............................................................................................................................................97 8.1.1 同期アプリケーション連携実行基盤-同時処理数の設定.........................................................................................................97 第9章 パフォーマンス・チューニング..........................................................................................................................................98 9.1 チューニング計画..............................................................................................................................................................................98 9.1.1 問題の整理と課題の設定..........................................................................................................................................................98 9.1.2 目標値とスケジュールの設定....................................................................................................................................................98 9.1.3 チューニングの実施手順...........................................................................................................................................................98 9.2 ボトルネックの特定............................................................................................................................................................................98 9.2.1 同期アプリケーション連携実行基盤-同時処理数のボトルネック(C言語またはCOBOL)......................................................99 9.3 性能測定とチューニング...................................................................................................................................................................99 9.3.1 同時処理数のチューニング.......................................................................................................................................................99 第10章 タイムアウト値のチューニング.....................................................................................................................................100 10.1 同期アプリケーション連携実行基盤のタイムアウト設定..............................................................................................................100 10.1.1 タイムアウト時間の種類..........................................................................................................................................................100 10.1.2 タイムアウト時間の設定の目安..............................................................................................................................................100 10.2 データベース製品のタイムアウト設定..........................................................................................................................................101 10.2.1 タイムアウト時間の種類..........................................................................................................................................................101 10.2.2 タイムアウト時間の設定の目安..............................................................................................................................................103 - vii - 第1部 共通編 第1章 必要資源.................................................................................................................................................2 第2章 データベースアクセス資源のチューニング...............................................................................................11 第3章 高信頼性ログ機能の資源の見積り式.....................................................................................................24 第4章 高信頼性ログ機能のメモリの見積り式....................................................................................................38 -1- 第1章 必要資源 1.1 運用時に必要なディスク容量 運用時に必要なディスク容量は次のとおりです。 項番 機能 1 Interstage Business Application Server動作環 境 2 ディレクトリ (デフォルト) ディスク容量 (単位:Mバイト) 備考(用途) 最大104 コマンド実行時のオペレーションログ 内部トレース 運用の内容により、必要 とするサイズを検討してく ださい。(注1) 標準ログ RDBディクショナリの格納ディレク トリ(注2)(注3) 100 高信頼性ログ機能の動作環境作成時 RDBディレクトリファイルの格納 ディレクトリ(注3) 2以上 運用の内容により、必要 とするサイズを検討してく ださい。(注4) /opt/FJSVibs/var/trc [Interstageのインストールディレク トリ]\BAS\var\trc 標準ログ機能 J2EE共通ディレクトリ/ijserver/ IJServer名/log J2EE共通ディレクトリ\ijserver \IJServer名\log 3 高信頼性ログ 機能 /var/opt/FSUNrdb2b/RDBシステ ム名/rdbdir /var/opt/FJSVrdb2b/RDBシステ ム名/rdbdir ユーザ指定のディレクトリ(初期値 は“D:\RDB\DICTIONARY”) 4 ログ管理ファイルの格納ディレク トリ(注2)(注3) 0.1以上 テンポラリログファイルの格納ディ レクトリ(注2)(注3) 81以上 運用の内容により、必要 とするサイズを検討してく ださい。(注4) アーカイブログファイルの格納ディ レクトリ(注2)(注3) 運用の内容により、必要 とするサイズを検討してく ださい。(注4) ユーザログテーブルの格納ディレ クトリ(注2)(注3) 運用の内容により、必要 とするサイズを検討してく ださい。(注4) 高信頼性ログ取得用データベース 運用の内容により、必要 とするサイズを検討してく ださい。(注5) シリアライズファイル 異常処理出口 /opt/FJSVibs/var/ser -2- 項番 機能 ディレクトリ (デフォルト) ディスク容量 (単位:Mバイト) 備考(用途) [Interstageのインストールディレク トリ]\BAS\var\ser 5 データベース 環境作成コマ ンド 100 内部ログファイル 0.02 100(注6) 簡易セットアップから内部コマンドを呼ぶとき に使用しています。 正常終了後削除されます。 /opt/FJSVibs/var/log シェル実行ディレクトリ [Interstageのインストールディレク トリ]\BAS\var\log 6 簡易セットアッ プ /opt/FJSVibs/var/trc /opt/FJSVibs/var/log [Interstageのインストールディレク トリ]\BAS\var\trc [Interstageのインストールディレク トリ]\BAS\var\log (注6) 注1) 出力先をファイルとする場合には、ログを出力する先に、必要なディスク容量があることを確認してください。 注2) 格納ディレクトリとは、ローデバイスおよびファイルを含んで表現しています。 注3) フェイルオーバ運用の場合は、ローデバイスとなります。 Linuxでフェイルオーバ運用を使用できるのは、64ビットOSの場合だけです。 注4) 詳細は、“第3章 高信頼性ログ機能の資源の見積り式”を参照して見積もってください。 注5) ディスク所要量の算出方法は、メッセージ長の見積もりと同じです。 詳細は、“1.1.1.1 メッセージ長の見積り式”を参照してください。 注6) データベースの容量を見積もる場合、およびデータベース環境を作成する場合に必要になります。 1.1.1 非同期アプリケーション連携実行基盤を使用する場合 非同期アプリケーション連携実行基盤を使用する場合の運用時に必要なディスク容量について、説明します。 1.1.1.1 メッセージ長の見積り式 メッセージ長は、以下のように計算します。 業務データの設定サイズ(注1) + フロー定義のサイズ(注2) + 制御情報のサイズ(注3) + エラー情報のサイズ(注4) -3- 注1)業務データの設定サイズは、以下の計算式を用いて算出してください。 業務データの設定サイズ = 使用する業務データ型の総サイズ 業務データ型のサイズについては、以下の表を参考に見積もりを行ってください。 業務データ型 サイズ(単位はバイト) String 16 + 文字列データ長(注5) String配列 20 + ( 4 + 文字列データ長(注5)) × 要素数 Byte 12(注6) Byte配列 20 + 要素数(注6) Short 12(注6) Short配列 20 + 要素数 × 2(注6) Integer 16 Integer配列 20 + 要素数 × 4(注6) Long 24 Long配列 20 + 要素数 × 8 Float 16 Float配列 20 + 要素数 × 4(注6) Double 24 Double配列 20 + 要素数 × 8 Boolean 12(注6) Boolean配列 20 + 要素数(注6) ユーザ定義型情報 ユーザ任意で計算してください。 なお、ユーザ定義型情報のサイズを正確に算出する ためには、ユーザ定義型クラスをいったんバイト配列 に変換するなどして、サイズを算出してください。 バイナリ 20 + 実データ長 注5)一文字2バイトで算出してください。 注6)アライメント調整により切り上げられたサイズがデータ長となります。 注2)以下の計算式を用いて算出(単位はバイト)してください。 フロー定義のサイズ = ( フロー定義ファイル(注7)のサイズ + 業務データ数 × 63 ) 注7)フロー定義のサイズは、“Interstage Business Application Server アプリケーション開発ガイド”の“フロー定義ファイルの操作” で保存されたフロー定義ファイルのサイズとなります。 注3)制御情報のサイズは、以下の計算式を用いて算出(単位はバイト)してください。 制御情報のサイズ = ( 1064 + 786 × アクティビティ数) 注4)エラー情報のサイズは、以下の計算式を用いて算出(単位はバイト)してください。 エラー情報のサイズ = 例外情報のサイズ(注8)+ 1024 注8)サーバアプリケーションがCOBOLの場合、エラー情報として、非同期アプリケーション連携実行基盤に返却する例外情報の サイズを指定してください。サーバアプリケーションがJavaの場合、0で算出してください。例外情報については、“Interstage Business Application Server アプリケーション開発ガイド”の“サーバアプリケーションの開発(COBOL)”を参照してください。 -4- 1.2 メモリ容量 本ソフトウェアを動作させるために必要なメモリ容量は以下のとおりです。 項番 機能 メモリ所要量 (単位:Mバイト) 1 Interstage Business Application Server動作環境 運用の内容により、必要とするサイズを 検討してください。(注1) 2 高信頼性ログ機能 68.5【参考値】 運用の内容により、必要とするサイズを 検討してください。(注2) 備考 以下の運用を行う場合の参考値です。 ・ Symfoware/RDBの起動 ・ ユーザログテーブルの作成 ・ 高信頼性ログの取得 ・ Symfoware/RDBの停止 3 ルーティング機能 業務データの内容により、メッセージ長 (注3)を算出し、必要とするメモリ容量 を検討してください。 注1) Interstage Business Application Server動作環境のメモリ使用量は、IJServerのJava VMのヒープ領域サイズで設定できます。 IJServerが動作するJava VMのヒープ領域サイズは、Interstage管理コンソールを使用して、ワークユニット設定のJava VMオプショ ンを指定することで変更が可能です。 詳細は、“5.3.1 Java VMのヒープ領域サイズの設定”を参照してください。 注2) 詳細は、“第4章 高信頼性ログ機能のメモリの見積り式”を参照して見積もってください。 注3) メッセージ長の算出方法は、“1.1.1.1 メッセージ長の見積り式”を参照してください。 1.3 スワップ容量 必要なスワップ容量は、メモリ容量と同等になります。“1.2 メモリ容量”を参照してください。 1.4 IPC資源 アプリケーション連携実行基盤のIPC資源チューニングについて説明します。 アプリケーション連携実行基盤およびInterstage Application ServerのIPC資源チューニングは、システム構築シートを使用して算出す ることができます。 システムパラメタの見積り式を以下に説明します。 以下に示す設定値について、他の見積もりIPCパラメタより小さい場合、または現在の設定値より小さい場合、一番大きい値を設定し てください。 なお、InterstageのIPC資源については、“1.5 Interstageのチューニング”を参照してください。 1.4.1 ログ機能を使用する場合のチューニング ログ機能を使用する場合のチューニング方法について記載します。 1.4.1.1 IPCパラメタの見積もり式(Solarisの場合) Solaris 10オペレーティングシステムの資源制御を使用してプロセス間通信機能(共用メモリ、セマフォ、メッセージキュー)の動作を定 -5- 義する場合、Solaris 10のprojectデータベースおよびprctlコマンドを使用してください。定義する際には本節を参照して設定値を見積 もってください。 ・ Solaris 10の資源制御の詳細は、システムのドキュメントを参照してください。 ・ カーネル構成ファイル内のパラメタの詳細は、使用しているシステムのドキュメントを参照してください。 ■共用メモリ Solaris 9では、カーネル構成ファイル内のパラメタに以下の値を設定、または加算してください。 パラメタ shmsys:shminfo_shmmax 種類 設定値 必要数 以下の値のうち、最大値を指 定 備考 共用メモリセグメントの最大サイズ 起動するログ出力サービス数 * (1100 + (maxMsgSize + 33) * maxMsgCount) (注) 9500708 shmsys:shminfo_shmmni 加算値 5 + 起動するログ出力サービス 数 共用メモリIDの数 shmsys:shminfo_shmseg 加算値 5 プロセスごとの共用メモリセグメント数 Solaris 10では、資源制御によって以下の値を設定、または加算してください。 資源制御 種類 必要数 備考 project.max-shm-memory 加算値 起動するログ出力サービス数 * (1100 + (maxMsgSize + 33) * maxMsgCount) + 15167344 (注) 共用メモリセグメントの最大サイズ project.max-shm-ids 加算値 5 + 起動するログ出力サービ ス数 共用メモリIDの数 注)maxMsgSize、およびmaxMsgCountの値は、ログ出力サービス定義ファイルに設定されている値を参照してください。 ■セマフォ Solaris 9では、カーネル構成ファイル内のパラメタに以下の値を設定、または加算してください。 パラメタ 種類 必要数 備考 semsys:seminfo_semmni 加算値 起動するログ出力サービス数 + 2 セマフォIDの数 semsys:seminfo_semmns 加算値 起動するログ出力サービス数 + 2 システム全体のセマフォ数 semsys:seminfo_semmnu 加算値 起動するログ出力サービス数 + 2 システム全体のセマフォ操作の取消記録 グループ数 semsys:seminfo_semmsl 設定値 起動するログ出力サービス数 + 2 セマフォIDごとの最大セマフォ数 Solaris 10では、資源制御によって以下の値を設定、または加算してください。 -6- 資源制御 種類 必要数 備考 project.max-sem-ids 加算値 起動するログ出力サービス数 + 2 セマフォIDの数 process.max-sem-nsems 設定値 起動するログ出力サービス数 + 2 セマフォIDごとの最大セマフォ数 ■メッセージキュー Solaris 9では、カーネル構成ファイル内のパラメタに以下の値を設定、または加算してください。 パラメタ 種類 必要数 備考 msgsys:msginfo_msgmax 設定値 128 メッセージの最大サイズ msgsys:msginfo_msgmnb 設定値 4096 待ち行列上の最大バイト数 msgsys:msginfo_msgmni 加算値 3 メッセージキューIDの数 msgsys:msginfo_msgtql 加算値 3 システムメッセージのヘッダ数 Solaris 10では、資源制御によって以下の値を設定、または加算してください。 資源制御 種類 必要数 備考 process.max-msg-qbyte 設定値 65536 待ち行列上の最大バイト数 project.max-msg-ids 加算値 3 メッセージキューIDの数 process.max-msg-messages 設定値 3 システムメッセージのヘッダ数 1.4.1.2 IPCパラメタの見積り式(Linuxの場合) ■共用メモリ パラメタ kernel.shmmax 種類 設定値 必要数 以下の値のうち、最大値を指定 起動するログ出力サービス数 * (4200 + (maxMsgSize + 33) * maxMsgCount) (注 1) 備考 共用メモリセグメントの最大サイ ズ 14380872 kernel.msgmni 加算値 共用メモリIDの数 5 注1)maxMsgSize、およびmaxMsgCountの値は、ログ出力サービス定義ファイルに設定されている値を参照してください。 ■セマフォ パラメタ 種類 必要数 備考 kernel.sem (semmsl) 設定値 起動するログ出力サービス数 + 2 セマフォIDごとの最大セマフォ 数 kernel.sem (semmns) 加算値 起動するログ出力サービス数 + 2 システム全体のセマフォ数 kernel.sem (semmni) 加算値 見積もり結果が、1024より小さい 場合は、1024を指定します。 起動するログ出力サービス数 + 2 -7- セマフォIDの数 ■メッセージキュー パラメタ 種類 必要数 備考 kernel.msgmax 設定値 128 メッセージの最大サイズ kernel.msgmnb 設定値 4096 待ち行列上の最大バイト数 kernel.msgmni 加算値 3 メッセージキューIDの数 1.4.2 非同期アプリケーション連携実行基盤のチューニング 非同期アプリケーション連携実行基盤のチューニング方法について記載します。 1.4.2.1 IPCパラメタの見積もり式(Solarisの場合) システムパラメタの見積もり式を以下に示します。 なお、以下に示す設定値について、他の見積もりIPCパラメタより小さい場合、または、現在の設定値より小さい場合は、一番大きい値 を採用するようにして下さい。 Solaris 10オペレーティングシステムの資源制御を使用してプロセス間通信機能(共用メモリ、セマフォ、メッセージキュー)の動作を定 義する場合、Solaris 10のprojectデータベースおよびprctlコマンドを使用してください。定義する際には本節を参照して設定値を見積 もってください。 ・ Solaris 10の資源制御の詳細は、システムのドキュメントを参照してください。 ・ カーネル構成ファイル内のパラメタの詳細は、使用しているシステムのドキュメントを参照してください。 ■共用メモリ Solaris 9では、カーネル構成ファイル内のパラメタに以下の値を設定、または加算してください。 パラメタ 種類 必要数 備考 shmsys:shminfo_shmmax 設定値 262144 共用メモリセグメントの最大サイズ shmsys:shminfo_shmmni 加算値 1 共用メモリIDの数 shmsys:shminfo_shmseg 加算値 1 プロセスごとの共用メモリセグメント数 Solaris 10では、資源制御によって以下の値を設定、または加算してください。 資源制御 種類 必要数 備考 project.max-shm-memory 加算値 262144 共用メモリセグメントの最大サイズ project.max-shm-ids 加算値 1 共用メモリIDの数 ■セマフォ Solaris 9では、カーネル構成ファイル内のパラメタに以下の値を設定、または加算してください。 パラメタ semsys:seminfo_semmni 種類 加算値 必要数 備考 セマフォIDの数 1 -8- パラメタ 種類 必要数 備考 semsys:seminfo_semmns 加算値 7 システム全体のセマフォ数 semsys:seminfo_semmnu 加算値 1 システム全体のセマフォ操作の取消記録グループ 数 semsys:seminfo_semmsl 設定値 7 セマフォIDごとの最大セマフォ数 Solaris 10では、資源制御によって以下の値を設定、または加算してください。 資源制御 種類 必要数 備考 project.max-sem-ids 加算値 1 セマフォIDの数 process.max-sem-nsems 設定値 7 セマフォIDごとの最大セマフォ数 ■メッセージキュー Solaris 9では、カーネル構成ファイル内のパラメタに以下の値を設定、または加算してください。 パラメタ 種類 必要数 備考 msgsys:msginfo_msgmax 設定値 128 メッセージの最大サイズ msgsys:msginfo_msgmnb 設定値 4096 待ち行列上の最大バイト数 msgsys:msginfo_msgmni 加算値 1 メッセージキューIDの数 msgsys:msginfo_msgtql 加算値 1 システムメッセージのヘッダ数 Solaris 10では、資源制御によって以下の値を設定、または加算してください。 資源制御 種類 必要数 備考 process.max-msg-qbyte 設定値 65536 待ち行列上の最大バイト数 project.max-msg-ids 加算値 1 メッセージキューIDの数 process.max-msg-messages 設定値 1 システムメッセージのヘッダ数 1.4.2.2 IPCパラメタの見積もり式(Linuxの場合) システムパラメタの見積もり式を以下に示します。 なお、以下に示す設定値について、他の見積もりIPCパラメタより小さい場合、または、現在の設定値より小さい場合は、一番大きい値 を採用するようにして下さい。 ■共用メモリ パラメタ 種類 必要数 備考 kernel.shmmax 設定値 262144 共用メモリセグメントの最大サイズ kernel.shmmni 加算値 1 共用メモリIDの数 ■セマフォ パラメタ 種類 必要数 備考 kernel.sem (第一パラメタ:semmsl) 設定値 7 セマフォIDごとの最大セマフォ数 kernel.sem (第二パラメタ:semmns) 加算値 7 システム全体のセマフォ数 -9- パラメタ kernel.sem (第四パラメタ:semmni) 種類 必要数 加算値 備考 セマフォIDの数 1 ■メッセージキュー パラメタ 種類 必要数 備考 kernel.msgmax 設定値 128 メッセージの最大サイズ kernel.msgmnb 設定値 4096 待ち行列上の最大バイト数 kernel.msgmni 加算値 1 メッセージキューIDの数 1.5 Interstageのチューニング Interstage Appliction Serverをチューニングしたい場合は、Interstage Application Serverチューニングガイドの“Interstageのチューニン グ”を参照してください。システム構築シートは、この記事をベースに作成しています。 - 10 - 第2章 データベースアクセス資源のチューニング ここでは、データベースアクセス管理機能を利用する場合のチューニングについて説明します。 2.1 アプリケーション(C/COBOL)の場合 2.1.1 DBへの事前コネクト数のチューニング DBへの事前コネクト数を指定することで、ワークユニット(非同期ワークユニットまたは、CORBAワークユニット)の起動時にDBへの接 続が自動的に行われ、データベースへの初回接続の性能が改善されます。事前コネクト数が少ない場合、業務運用中にデータベー ス接続処理が実行される可能性が高くなり、処理性能が低下する場合があります。一方、事前コネクト数が多い場合、データベースや アプリケーション連携実行基盤での消費資源が増加します。目安値を基準に、処理性能や消費資源のバランスが最適となるようチュー ニングしてください。 以下に使用するデータベースリソースの一覧を示します。作成したアプリケーションの種別を考慮し、事前コネクト数のチューニングを 実施してください。 表2.1 非同期アプリケーション連携実行基盤で動作する業務アプリケーション アプリケーション 業務処理実行アプリ ケーション フロー定義DB用データ メッセージトラッキング用 メッセージ格納用データ データベースリソース ベースリソース ベースリソース 業務用データベース用 データベースリソース × △(注3) △(注1) △(注2) 注1)メッセージトラッキング機能を使用する場合に使用します。 注2)メッセージとDBの整合性保証機能を使用する場合に使用します。 注3)アプリケーションで業務用データベースを使用する場合に使用します。 表2.2 同期アプリケーション連携実行基盤で動作する業務アプリケーション アプリケーション サーバアプリケーション フロー定義DB用データ メッセージトラッキング用 メッセージ格納用データ データベースリソース ベースリソース ベースリソース 業務用データベース用 データベースリソース × △(注4) × × 注4) アプリケーションで業務用データベースを使用する場合に使用します。 以下に、事前コネクト数へ設定する値の目安を示します。 ・ フロー定義DB用データベースリソース 業務処理開始アプリケーションを運用する場合、フロー定義DBのデータベースリソースについて、配備している業務処理開始ア プリケーションの同時処理数と同じ数を、事前コネクト数として設定します。同時処理数については、“表2.3 事前コネクト数設定で 利用するアプリケーションの同時処理数の設定値”を参照してください。 ・ メッセージトラッキングDB用データベースリソース メッセージトラッキングを行うアプリケーション連携フローに関係するワークユニットでは、使用するメッセージトラッキングDBのデー タベースリソースについて、配備している業務処理実行アプリケーションの同時処理数と同じ数を、事前コネクト数として設定しま す。同時処理数については、“表2.3 事前コネクト数設定で利用するアプリケーションの同時処理数の設定値”を参照してください。 ・ メッセージ格納DB用データベースリソース メッセージとDBの整合性保証機能を利用し、ワークユニット上で、業務処理開始アプリケーションのみを運用する場合、メッセージ格納 DBのデータベースリソースについて、ワークユニットに配備している業務処理開始アプリケーションの同時処理数と同じ数を、事 前コネクト数として設定します。 メッセージとDBの整合性保証機能を利用し、ワークユニット上で業務処理実行アプリケーションのみを運用する場合、メッセージ格納 DB用のデータベースリソースについて、ワークユニットに配備している業務処理実行アプリケーションの同時処理数と同じ数を、 事前コネクト数として設定します。 同一のワークユニット上で業務処理開始アプリケーションと業務処理実行アプリケーションを運用する場合、ワークユニットに配備 - 11 - している業務処理開始アプリケーションの同時処理数と業務処理実行アプリケーションの同時処理数の合計値を設定します。同 時処理数については、“表2.3 事前コネクト数設定で利用するアプリケーションの同時処理数の設定値”を参照してください。 ・ 業務用データベース用データベースリソース ワークユニット上のアプリケーションで使用する業務用データベースのデータベースリソースを、必要な分だけ事前コネクトします。 メッセージとDBの整合性保証機能を利用する場合は、メッセージ格納DBと業務用データベースが同一になるため、メッセージ格納 DBの設定を利用します。メッセージとDBの整合性保証機能を利用しない場合は、アプリケーションの都合に合わせ、必要な分だ け事前コネクト数を設定してください。 表2.3 事前コネクト数設定で利用するアプリケーションの同時処理数の設定値 アプリケーション連携実行 基盤の種類 アプリケーションの種類 同時処理数の設定値 非同期アプリケーション連 業務処理実行アプリケー ション システム構築シートの「ワークユニット設定とアプリケーション情報の入 力」シートで、プロセス数および1プロセスあたりのスレッド数を設定しま す。 サーバアプリケーション システム構築シートの「ワークユニット設定とアプリケーション情報の入 力」シートで、プロセス数および最大のスレッド数を設定します。 携実行基盤 同期アプリケーション連携 実行基盤 2.1.2 データベースのボトルネック(Symfowareを使う場合) 2.1.2.1 データベース接続環境のボトルネック データベースシステムにSymfoware Serverを利用する場合、業務アプリケーションが動作するプロセスにおいて、クライアント用の動作 環境ファイルが必要になります。このクライアント用の動作環境ファイルには、業務アプリケーションがデータベースを操作するための 各種パラメタを指定することが可能ですが、業務内容にあわせて適切な値を設定しなければボトルネックになる可能性があります。 “2.1.4.1 データベース接続環境のチューニング”を参照して、クライアント動作環境ファイルに適切な値を設定してください。 2.1.3 データベースのボトルネック(Oracleを使う場合) 2.1.3.1 データベース接続環境のボトルネック データベースシステムにOracleを利用する場合、Oracleの環境設定ファイルを用意する必要があります。また、環境設定ファイルに指 定するパラメタにはボトルネックが発生しないよう利用者の環境にあわせて適切な値を設定する必要があります。 “2.1.5.1 データベース接続環境のチューニング”を参照して、適切な値を設定してください。 2.1.4 データベースの性能測定とチューニング(Symfowareを使う場合) 2.1.4.1 データベース接続環境のチューニング データベースシステムにSymfoware Serverを利用する場合、業務アプリケーションが動作するプロセスにおいて、クライアント用の動作 環境ファイルが必要になります。このクライアント用の動作環境ファイルには、業務アプリケーションがデータベースを操作するための 各種パラメタを指定することが可能です。 以下に、チューニングに関する主なパラメタについて説明します。 ■MAX_SQL 同一トランザクション内で指定できるSQL文の数を指定します。、2~32000の範囲で指定します。省略した場合は、32が指定されたと みなします。 指定形式 MAX_SQL = (SQL文の数) パラメタの意味 SQL文の数: 2~32000の範囲で指定します。省略した場合は、32が指定されたとみなします。 なお、非同期アプリケーション連携実行基盤で、メッセージとDBの整合性保証機能を使用する場合には、非同期アプリケーショ - 12 - ン連携実行基盤の制御として30のSQL文を利用します。業務アプリケーションが利用するSQL文を計算する場合には、30を足 して算出してください。 ■BUFFER_SIZE 通信に利用するバッファサイズを指定します。 単位はキロバイトです。 指定形式 BUFFER_SIZE=([初期量][,拡張量]) パラメタの意味 初期量: バッファの初期量を1~10240で指定します。 省略した場合、1になります。 拡張量: 拡張量を1~10240で指定します。 省略した場合、32になります。 ■OPL_BUFFER_SIZE 同一SQL文を複数回実行するときに、最初の実行で作成した処理手順を使用することによって処理効率の向上を図っています。本パ ラメタは、このSQLの処理手順を格納するバッファのサイズを1~1280000で指定します。単位はキロバイトです。省略した場合は、256 が指定されたとみなします。この領域は、サーバ側で獲得されます。 指定形式 OPL_BUFFER_SIZE=(バッファサイズ) パラメタの意味 バッファサイズ: SQLの処理手順を格納するバッファのサイズを1~10240で指定します。 単位はキロバイトです。 省略した場合、256になります。 ■MAX_PARALELL SQL文でデータベースを並列に検索する場合の多重度です。 SQL文でデータベースを並列に検索できるのは、単一行SELECT文またはカーソル宣言で並列指定を指定した場合です。表のDSIの 数が、指定した多重度よりも少ない場合は、DSIの数を多重度として並列検索を行います。 指定形式 MAX_PARALELL=(多重度) 省略時 省略した場合は、システム用の動作環境ファイルにおけるMAX_PARALELLの指定に従って並列検索(並列クエリ)を行います。 パラメタの意味 多重度: 2~100の範囲で指定します。 ■PARALELL_SCAN アプリケーション単位またはコネクション単位に、データベースを並列に検索する(並列クエリ)かどうかを指定します。並列クエリは、以 下の場合に利用できます。 ・ Symfoware Server Enterprise Extended Editionの場合 - 13 - ・ Symfoware Server Enterprise Editionの場合 ・ Symfoware Server Standard Editionの場合 ・ Symfoware Server Enterprise Extended Editionの場合 ・ Symfoware Server Enterprise Editionの場合 指定形式 PARALELL_SCAN=({YES | NO}) 省略時 PARALELL_SCAN=(NO) パラメタの意味 YES: データベースを並列に検索します。この場合、そのアプリケーションの単一行SELECT文およびOPEN文を並列検索で実行で きます。 ただし、以下のどれかの条件を満たす場合、並列検索は実行されず従来のアクセス手順でデータベースにアクセスします。 - 表がDSI分割されていない、または1つのDSIに対するアクセスの場合 - クラスタキーを利用したデータベースアクセスが可能な場合 - 探索条件にROW_IDを指定した検索の場合 - インデックスを利用したデータベースアクセスが可能な場合 NO: データベースを並列に検索しません。 ■R_LOCK 占有の単位を行にするかどうかを指定します。 R_LOCKにYESが指定された場合、以下の指定はできません。 ・ クライアント用の動作環境ファイルのDSO_LOCK ・ サーバ用の動作環境ファイルのDSO_LOCK 指定形式 R_LOCK=({YES | NO}) 省略時 システム用の動作環境ファイルの、R_LOCKの指定値 パラメタの意味 YES: 占有の単位を行にします。 NO: 占有の単位は、DSO_LOCKの指定に従います。 このパラメタを指定し、かつDSO_LOCKが指定されていない場合は、Symfowareによって自動的に占有の単位が選択されま す。非同期アプリケーション連携実行基盤を利用する場合には、“NO”は指定しないでください。 ■RESULT_BUFFER FETCH文によってデータを取り出すときの性能を良くするため、複数の行を一度に取り出します。この行を格納するバッファの数とサ イズを指定します。バッファサイズを大きくするほど、FETCHの性能が良くなります。また、1つのカーソルが1つのバッファを使用するの - 14 - で、複数のバッファを用意すれば、複数のカーソルの操作の性能を良くすることができます。バッファを使用しない場合は、個数に0を 指定します。単位はキロバイトです。この領域は、クライアント側とサーバ側で獲得されます。 指定形式 RESULT_BUFFER=(個数,サイズ) パラメタの意味 個数 使用するバッファの個数を0~255で指定します。 省略した場合、2になります。 サイズ 使用するバッファのサイズを1~10240で指定します。 単位はキロバイトです。 省略した場合は、32になります。 2.1.5 データベースの性能測定とチューニング(Oracleを使う場合) 2.1.5.1 データベース接続環境のチューニング データベースシステムにOracle databaseを利用する場合、Oracle databaseの環境設定ファイルを用意する必要があります。また、環境 設定ファイルに指定するパラメタにはボトルネックが発生しないよう利用者の環境にあわせて適切な値を設定する必要があります。 以下に、チューニングに関する主なパラメタについて説明します。詳細については、Oracle databaseのマニュアルを参照してください。 ■同時接続要求数の設定 設定箇所:listener.ora→QUEUESIZE=整数値 サ ー バ へ の 同 時 接 続 要 求 数 が 必 要 な 場 合 、 QUEUESIZE パ ラ メ タ を 設 定 (Solaris Default:5) し ま す 。 た だ し 、 ndd /dev/tcp tcp_conn_req_max_qで取得できた値以下である必要があります。 サーバへの同時接続要求数が必要な場合、QUEUESIZEパラメタを設定します。ただし、ndd /dev/tcp tcp_conn_req_max_qで取得で きた値以下である必要があります。 サーバへの同時接続要求数が必要な場合、QUEUESIZEパラメタを設定します。同時接続要求数の上限値はシステムに依存します。 Windows 2000の場合、同時接続要求数の上限はありません。 Windows Server 2003 SP1の場合、同時接続要求数の上限値は10です。 ■マルチスレッド接続 設定箇所:sqlnet.ora→USE_DEDICATED_SERVER=on|off 初期化パラメタ→DISPATCHERS クライアントがマルチスレッド接続を要求するようになります。ただし、本記述を有効とするためには、初期化パラメタ内のDISPATCHERS 項目の設定が必要となります。以下にDISPATCHERS項目の設定例を示します。 【初期化パラメタ設定例】 - 15 - dispatchers=(PROTOCOL=TCP)(DISPATCHERS=10)(CONNECTIONS=200) shared_servers=5 local_listener=(ADDRESS=(PROTOCOL=TCP)(HOST=Server-Name)(PORT=1521)) DISPATCHERSパラメタはクライアントからの接続要求を受け付けるディスパッチャプロセスです。 本例では、以下の設定となります。 ・ TCP/IPを使用 ・ 10個のディスパッチャプロセスを起動 ・ 各ディスパッチャプロセスがクライアントからの接続要求を受け付ける数を200 ■接続プーリング数設定(マルチスレッド接続時) 設定箇所: 初期化パラメタ→DISPATCHERS=POOL属性 マルチスレッド接続の場合に限り、接続プーリング数が設定できます。 以下に例を示します。 【初期化パラメタ設定例】 dispatchers=(PROTOCOL=TCP)(DISPATCHERS=1)(POOL=on)(CONNECTIONS=100)(SESSIONS=400) 本例では、以下の設定となります。 ・ TCP/IPを使用 ・ 1個のディスパッチャプロセスを起動 ・ 接続プーリング機能ON ・ 接続数100 ・ セッション数400 これによりプロトコルあたりの構成が1ディスパッチャに削減可能です。 ■接続可能な端末制限 設定箇所: sqlnet.ora → TCP.VALIDNODE_CHECKING=yes|no TCP.INVITED_NODES=接続許可ホスト名|IPアドレス TCP.EXCLUDED_NODES=接続拒否ホスト名|IPアドレス TCP.INVITED_NODESにカンマ区切りでホスト名またはIPアドレスを指定することにより、データベースに接続可能な端末を限定しま す。 TCP.EXCLUDED_NODESにカンマ区切りでホスト名またはIPアドレスを指定することにより、データベースに接続を拒否する端末を指 定します。 上記は、TCP.VALIDNODE_CHECKINGに“yes”が指定されている場合のみ有効です。 2.2 アプリケーション(Java)の場合 2.2.1 DBへの事前コネクト数のチューニング DBへの事前コネクト数を指定することで、IJServer起動時にDBへの接続が自動的に行われ、データベースへの初回接続の性能が改 善されます。事前コネクト数が少ない場合、業務運用中にデータベース接続処理が実行される可能性が高くなり、処理性能が低下す る場合があります。一方、事前コネクト数が多い場合、データベースやIJServerでの消費資源が増加します。目安値を基準に、処理性 能や消費資源のバランスが最適となるようチューニングしてください。 - 16 - 以下に業務処理開始アプリケーション、および業務処理実行アプリケーション別に使用するデータソースの一覧を示します。作成した IJServer上で動作するアプリケーションが業務処理開始アプリケーションなのか業務処理実行アプリケーションなのかを考慮し事前コ ネクト数のチューニングを実施してください。 アプリケーション フロー定義DB用 データソース メッセージトラッキン メッセージ格納DB 業務用データベース 用データソース 用データソース グDB用データソー ス 業務処理開始アプリケーション ○ × △(注1) △(注2) 業務処理実行アプリケーション × △(注3) △(注1) △(注2) ○:使用する、△:任意で使用する、×:使用しない 注1)メッセージ格納DB用データソースは、メッセージとDBの整合性保証機能を使用する場合に使用します。 注2)アプリケーションで業務用データベースを使用する場合に使用します。 注3)メッセージトラッキング機能を使用する場合に使用します。 以下に、事前コネクト数へ設定する値の目安を示します。 ・ フロー定義DB用データソース IJServer上で業務処理開始アプリケーションを運用する場合、フロー定義DBのデータソースについて、IJServerに配備している業 務処理開始アプリケーションの同時処理数と同じ数を、事前コネクト数として設定します。同時処理数については、“表2.4 事前コ ネクト数設定で利用するアプリケーションの同時処理数の設定値”を参照してください。 ・ メッセージトラッキングDB用データソース メッセージトラッキングを行うアプリケーション連携フローに関係するIJServerでは、使用するメッセージトラッキングDBのデータソー スについて、IJServerに配備している業務処理実行アプリケーションの同時処理数と同じ数を、事前コネクト数として設定します。 同時処理数については、“表2.4 事前コネクト数設定で利用するアプリケーションの同時処理数の設定値”を参照してください。 ・ メッセージ格納DB用データソース メッセージとDBの整合性保証機能を利用し、IJServer上で業務処理開始アプリケーションのみを運用する場合、メッセージ格納DB のデータソースについて、IJServerに配備している業務処理開始アプリケーションの同時処理数と同じ数を、事前コネクト数として 設定します。 メッセージとDBの整合性保証機能を利用し、IJServer上で業務処理実行アプリケーションのみを運用する場合、メッセージ格納DB 用のデータソースについて、IJServerに配備している業務処理実行アプリケーションの同時処理数と同じ数を、事前コネクト数とし て設定します。 同一のIJServer上で業務処理開始アプリケーションと業務処理実行アプリケーションを運用する場合、IJServerに配備している業 務処理開始アプリケーションの同時処理数と業務処理実行アプリケーションの同時処理数の合計値を設定します。 同時処理数については、“表2.4 事前コネクト数設定で利用するアプリケーションの同時処理数の設定値”を参照してください。 ・ 業務用データベース用データソース IJServer上のアプリケーションで使用する業務用データベースのデータソースを、必要な分だけ事前コネクトします。メッセージとDB の整合性保証機能を利用する場合は、メッセージ格納DBと業務用データベースが同一になるため、メッセージ格納DBの設定を 利用します。メッセージとDBの整合性保証機能を利用しない場合は、アプリケーションの都合に合わせ、必要な分だけ事前コネク ト数を設定してください。 表2.4 事前コネクト数設定で利用するアプリケーションの同時処理数の設定値 アプリケーションの種類 同時処理数の設定値 業務処理実行アプリケーション Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “ワークユニット名” > “モジュー ル名” > “EJBアプリケーション名” > [アプリケーション環境定 義]タブ画面の[初期起動インスタンス数]の設定値 業務処理開始アプリケーション(Message-driven Beanとして実装 している場合) Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “ワークユニット名” > “モジュー ル名” > “EJBアプリケーション名” > [アプリケーション環境定 義]タブ画面の[初期起動インスタンス数]の設定値 業務処理開始アプリケーション(Message-driven Bean以外のEJB として実装している場合) Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “ワークユニット名” > [環境設 定]タブ画面の[EJBコンテナ設定]の[同時処理数]の最小設 定値 - 17 - アプリケーションの種類 同時処理数の設定値 業務処理開始アプリケーション(Servletとして実装している場合) Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “ワークユニット名” > [環境設 定]タブ画面の[Servletコンテナ設定]の[同時処理数]の設定値 (注) 注)Servletコンテナ設定の同時処理数には、Interstage管理コンソールの[Interstage Application Server] > [システム] > [サービ ス] > [Webサーバ] > [環境設定]タブ > [詳細設定] > [クライアントの同時接続数]で指定した値以上の数値を設定する必要が あります。 2.2.2 データベースのボトルネック(Symfowareを使う場合) 2.2.2.1 JDBCのボトルネック JDBCデータソース単位に以下を設定します。 ■最大コネクション数 データソースごとに、同時に接続可能なコネクション数の上限を指定します。 1~2147483647の範囲で指定します。 デフォルトは4です。 ■最大プールコネクション数 再利用可能なコネクション数の上限を指定します。0~2147483647の範囲で指定します。デフォルトは 4です。このオプションに 0を指 定した場合、コネクションは再利用されずに切断されます。1以上を指定した場合、Connectionインタフェースのcloseメソッドを実行して もデータベースとの接続は切断されず、コネクションは再利用可能な状態になります。ただし、指定値を超えるコネクションは切断され ます。また、“最大コネクション数”を超える値は指定できません。 ■ステートメントキャッシュ数 ステートメントキャッシュ機能でキャッシュする、文の上限を指定します。0~32000の範囲で指定します。デフォルトは32です。このオプ ションに 0を指定した場合、ステートメントキャッシュ機能は無効になります。キャッシュする文の数の見積りは、以下となります。 キャッシュする文の数 = prepareStatementメソッドまたは prepareCallメソッドで指定するSQL文の数(注) 注)同じSQL文でも以下の場合は別のSQL文として計算してください。 ・ 大文字と小文字の違いがある場合 ・ 結果セットのタイプが異なる場合 ・ 結果セットの並行処理のタイプが異なる場合 ■ステートメント自動クローズ ステートメントキャッシュ機能の使用時に、PreparedStatementおよびCallableStatementのクローズをJDBCドライバが自動的に行うかどう かを指定します。自動的に行う場合には、[ステートメント自動クローズ]チェックボックスをチェックします。デフォルトでは、自動クローズ は行われません。このオプションは、ステートメントキャッシュ数に1~32000が指定された場合に指定可能です。実行した文の数が、ス テートメントキャッシュ数で設定されたキャッシュ数に達した場合、以降実行される文はキャッシュしませんが、自動クローズの対象にも なりません。 ■ctuneparamオプションについて ctuneparamオプションには、Symfowareのクライアント用の動作環境ファイルに相当する指定をすることができます。なお、ctuneparam オプションで設定できるパラメタ名の先頭文字“CLI_”を削除したパラメタが、Symfowareのクライアント用の動作環境ファイルで設定す るパラメタと一致しています。 - 18 - 2.2.3 データベースのボトルネック(Oracleを使う場合) 2.2.3.1 JDBCのボトルネック ■JDBCとデータベース間の通信速度向上 設定箇所:sqlnet.ora→SDU=整数値 サーバ側sqlnet.oraへSDUパラメタ(Default:2048)を設定することで、512~32767の範囲で変更することが可能です。Java側では、接続 URLのdescriptionの記述でSDUを指定することでサーバ・クライアント間の通信速度の向上が図ることができます。 ■同時接続要求数の設定 設定箇所:listener.ora→QUEUESIZE=整数値 サ ー バ へ の 同 時 接 続 要 求 数 が 必 要 な 場 合 、 QUEUESIZE パ ラ メ タ を 設 定 (Solaris Default:5) し ま す 。 た だ し 、 ndd /dev/tcp tcp_conn_req_max_qで取得できた値以下である必要があります。 サーバへの同時接続要求数が必要な場合、QUEUESIZEパラメタを設定します。ただし、ndd /dev/tcp tcp_conn_req_max_qで取得で きた値以下である必要があります。 ■マルチスレッド接続 設定箇所:sqlnet.ora→USE_DEDICATED_SERVER=on|off 初期化パラメタ→DISPATCHERS クライアントがマルチスレッド接続を要求するようになります。ただし、本記述を有効とするためには、初期化パラメタ内のDISPATCHERS 項目の設定が必要となります。以下にDISPATCHERS項目の設定例を示します。 【初期化パラメタ設定例】 dispatchers=(PROTOCOL=TCP)(DISPATCHERS=10)(CONNECTIONS=200) shared_servers=5 local_listener=(ADDRESS=(PROTOCOL=TCP)(HOST=Server-Name)(PORT=1521)) DISPATCHERSパラメタは、クライアントからの接続要求を受け付けるディスパッチャプロセスです。 本例では、以下の設定となります。 ・ TCP/IPを使用 ・ 10個のディスパッチャプロセスを起動 ・ 各ディスパッチャプロセスがクライアントからの接続要求を受け付ける数を200 ■接続プーリング数設定(マルチスレッド接続時) 設定箇所:初期化パラメタ→DISPATCHERS=POOL属性 マルチスレッド接続の場合に限り、接続プーリング数が設定できます。 以下に例を示します。 【初期化パラメタ設定例】 dispatchers=(PROTOCOL=TCP)(DISPATCHERS=1)(POOL=on)(CONNECTIONS=100)(SESSIONS=400) 本例では、以下の設定となります。 - 19 - ・ TCP/IPを使用 ・ 1個のディスパッチャプロセスを起動 ・ 接続プーリング機能ON ・ 接続数100 ・ セッション数400 これによりプロトコルあたりの構成が1ディスパッチャに削減可能 2.2.4 データベースの性能測定とチューニング(Symfowareを使う場合) 2.2.4.1 JDBCのチューニング ■CLI_BUFFER_SIZE 通信に利用するバッファサイズを指定します。 単位はキロバイトです。 指定形式 CLI_BUFFER_SIZE=([初期量][,拡張量]) パラメタの意味 初期量: バッファの初期量を1~10240で指定します。 省略した場合、1になります。 拡張量: 拡張量を1~10240で指定します。 省略した場合、32になります。 ■CLI_OPL_BUFFER_SIZE Statementインタフェース、PreparedStatementインタフェース、CallableStatementインタフェースを使用して、同一SQL文を複数回実行す るときに、最初の実行で作成した処理手順を使用することによって処理効率の向上を図っています。この領域は、サーバ側で獲得さ れます。 指定形式 CLI_OPL_BUFFER_SIZE=(バッファサイズ) パラメタの意味 バッファサイズ: SQLの処理手順を格納するバッファのサイズを1~10240で指定します。 単位はキロバイトです。 省略した場合、256になります。 ■CLI_MAX_PARALELL SQL文でデータベースを並列に検索する場合の多重度です。 SQL文でデータベースを並列に検索できるのは、単一行SELECT文またはカーソル宣言で並列指定を指定した場合です。表のDSIの 数が、指定した多重度よりも少ない場合は、DSIの数を多重度として並列検索を行います。 指定形式 CLI_MAX_PARALELL=(多重度) 省略時 省略した場合は、システム用の動作環境ファイルにおけるMAX_PARALELLの指定に従って並列検索(並列クエリ)を行います。 - 20 - パラメタの意味 多重度: 2~100の範囲で指定します。 ■CLI_PARALELL_SCAN アプリケーション単位またはコネクション単位に、データベースを並列に検索する(並列クエリ)かどうかを指定します。並列クエリは、以 下の場合に利用できます。 ・ Symfoware Server Enterprise Extended Editionの場合 ・ Symfoware Server Enterprise Editionの場合 ・ Symfoware Server Standard Editionの場合 ・ Symfoware Server Enterprise Extended Editionの場合 ・ Symfoware Server Enterprise Editionの場合 指定形式 CLI_PARALELL_SCAN=({YES | NO}) 省略時 CLI_PARALELL_SCAN=(NO) パラメタの意味 YES: データベースを並列に検索します。この場合、そのアプリケーションの単一行SELECT文およびOPEN文を並列検索で実行で きます。 ただし、以下のどれかの条件を満たす場合、並列検索は実行されず従来のアクセス手順でデータベースにアクセスします。 - 表がDSI分割されていない、または1つのDSIに対するアクセスの場合 - クラスタキーを利用したデータベースアクセスが可能な場合 - 探索条件にROW_IDを指定した検索の場合 - インデックスを利用したデータベースアクセスが可能な場合 NO: データベースを並列に検索しません。 ■CLI_R_LOCK 占有の単位を行にするかどうかを指定します。 CLI_R_LOCKにYESが指定された場合、以下の指定はできません。 ・ クライアント用の動作環境ファイルのDSO_LOCK ・ サーバ用の動作環境ファイルのDSO_LOCK ・ ctuneparamオプションのCLI_DSO_LOCK 指定形式 CLI_R_LOCK=({YES | NO}) 省略時 システム用の動作環境ファイルの、R_LOCKの指定値 - 21 - パラメタの意味 YES: 占有の単位を行にします。 NO: 占有の単位は、CLI_DSO_LOCKの指定に従います。 このパラメタを指定し、かつDSO_LOCKが指定されていない場合は、Symfowareによって自動的に占有の単位が選択されま す。システム用の動作環境ファイルで“R_LOCK=YES”を指定させるので、特に指定する必要はありません。“NO”は指定しな いでください。 ■CLI_RESULT_BUFFER JDBCドライバは、データを取り出すときの性能を良くするため、複数の行を一度に取り出し、JDBCドライバ内部に格納することができ ます。この行を格納するバッファの数とサイズを指定します。単位はキロバイトです。また、1つのカーソルが1つのバッファを使用するの で、複数のバッファを用意すれば、複数カーソルの操作の性能を良くすることができます。バッファを使用しない場合、個数に0を指定 します。この領域は、クライアント側とサーバ側で獲得されます。バッファサイズを大きくするほど性能は良くなりますが、メモリが圧迫さ れ、他のアプリケーションの実行に支障が発生する場合があります。バッファサイズを大きくする場合、メモリの空き容量に注意してくだ さい。 指定形式 CLI_RESULT_BUFFER=(個数,サイズ) 個数 使用するバッファの個数を0~255で指定します。 省略した場合、2になります。 サイズ 使用するバッファのサイズを1~10240で指定します。 単位はキロバイトです。 省略した場合は、32になります。 2.2.5 データベースの性能測定とチューニング(Oracleを使う場合) 2.2.5.1 JDBCのチューニング ■JDBCとデータベース間の通信速度向上 設定箇所:sqlnet.ora→SDU=整数値 サーバ側sqlnet.oraへSDUパラメタ(Default:2048)を設定することで、512~32767の範囲で変更することが可能です。Java側では、接続 URLのdescriptionの記述でSDUを指定することでサーバ・クライアント間の通信速度の向上を図ることができます。 ■同時接続要求数の設定 設定箇所:listener.ora→QUEUESIZE=整数値 サ ー バ へ の 同 時 接 続 要 求 数 が 必 要 な 場 合 、 QUEUESIZE パ ラ メ タ を 設 定 (Solaris Default:5) し ま す 。 た だ し 、 ndd /dev/tcp tcp_conn_req_max_qで取得できた値以下である必要があります。 サーバへの同時接続要求数が必要な場合、QUEUESIZEパラメタを設定します。ただし、ndd /dev/tcp tcp_conn_req_max_qで取得で きた値以下である必要があります。 ■マルチスレッド接続 設定箇所:sqlnet.ora→USE_DEDICATED_SERVER=on|off 初期化パラメタ→DISPATCHERS - 22 - クライアントがマルチスレッド接続を要求するようになります。ただし、本記述を有効とするためには、初期化パラメタ内のDISPATCHERS 項目の設定が必要となります。以下にDISPATCHERS項目の設定例を示します。 【初期化パラメタ設定例】 dispatchers=(PROTOCOL=TCP)(DISPATCHERS=10)(CONNECTIONS=200) shared_servers=5 local_listener=(ADDRESS=(PROTOCOL=TCP)(HOST=Server-Name)(PORT=1521)) DISPATCHERSパラメタはクライアントからの接続要求を受け付けるディスパッチャプロセスです。 本例では、以下の設定となります。 ・ TCP/IPを使用 ・ 10個のディスパッチャプロセスを起動 ・ 各ディスパッチャプロセスがクライアントからの接続要求を受け付ける数を200 ■接続プーリング数設定(マルチスレッド接続時) 設定箇所: 初期化パラメタ→DISPATCHERS=POOL属性 マルチスレッド接続の場合に限り、接続プーリング数が設定できます。 以下に例を示します。 【初期化パラメタ設定例】 dispatchers=(PROTOCOL=TCP)(DISPATCHERS=1)(POOL=on)(CONNECTIONS=100)(SESSIONS=400) 本例では、以下の設定となります。 ・ TCP/IPを使用 ・ 1個のディスパッチャプロセスを起動 ・ 接続プーリング機能ON ・ 接続数100 ・ セッション数400 これによりプロトコルあたりの構成が1ディスパッチャに削減可能です。 ■接続可能な端末制限 設定箇所: sqlnet.ora → TCP.VALIDNODE_CHECKING=yes|no TCP.INVITED_NODES=接続許可ホスト名|IPアドレス TCP.EXCLUDED_NODES=接続拒否ホスト名|IPアドレス TCP.INVITED_NODESにカンマ区切りでホスト名またはIPアドレスを指定することにより、データベースに接続可能な端末を限定しま す。 TCP.EXCLUDED_NODESにカンマ区切りでホスト名またはIPアドレスを指定することにより、データベースに接続を拒否する端末を指 定します。 上記は、TCP.VALIDNODE_CHECKINGに“yes”が指定されている場合のみ有効です。 - 23 - 第3章 高信頼性ログ機能の資源の見積り式 Symfoware/RDBで使用する各資源の見積り式について説明します。 3.1 ユーザログテーブルの容量見積り式 ユーザログテーブルの見積り式について以下に示します。 3.1.1 エントリサイズの見積り式 エントリの退避間隔内に発生する最大データ量(件数)からエントリサイズを見積もります。エントリの退避間隔は、ディスク容量やデータ の最新性などの業務要件から設計してください。 ・ 退避間隔内に切り替えが発生する運用の場合は、エントリの退避間隔内の最大データ量を退避間隔内の切り替え回数で割った値 (以上)が1個のエントリサイズとなります。 ・ 退避したデータの最新性を求められる運用の場合、1つのエントリサイズを小さく、エントリ数を多くして、退避間隔を短く設計しま す。 ・ エントリサイズはトランザクションで出力するログが複数のエントリにまたがらないように見積もってください。 ・ 運用を効率的に行うために、エントリサイズは小さすぎる容量にはしないでください。以下を最小値として検討されることをお勧め します。 エントリサイズ > 最大トランザクション内に発生するログ量 最大トランザクション内に発生するログ量:業務で最も長いトランザクション内で発生する全アプリケーションのログ件数 × 出力す るログ長 ・ 退避間隔内に発生する最大データ量分の退避領域の見積りが必要です。 3.1.2 エントリの個数の見積り式 エントリの個数は、以下のように見積もります。 エントリの個数 = 交替運用で必要な個数 + 安全な個数 ・ 交替運用で必要な最低個数 最低個数(2個)以上の運用で、必要な交替数で見積もります。 ・ 安全な個数 容量不足に備えた安全値+1(エントリ切り替え時にカレントエントリが2個になるため)とします。 3.1.3 データベーススペース量の見積り式 CYCLIC構造のエントリに必要なデータベーススペースの見積りは、以下のように計算します。 (1) ユーザログレコード 長 固定部 + 可変長データ制御部 + 可変長部 + NULL指示部 + 26 固定部 :固定長列の長さの総和 可変長データ制御部:可変長列の数 × 4 + 2 可変長部 :可変長列の長さの総和 NULL指示部 :対象実表のNOT NULL指定なしの列の数 (2) トランザクション情 報レコード長 固定部 + 可変長データ制御部 + 可変長部 + NULL指示部 + 26 - 24 - 固定部 :固定長列の長さの総和 可変長データ制御部 :可変長列の数×4+2 可変長部 :可変長列の長さの総和 NULL指示部 :対象実表のNOT NULL指定なしの列の数 可変長部には、ユーザログ本文は含めません。 (3) 制御情報レコード 長 固定部 + 可変長データ制御部 + NULL指示部 + 26 固定部 :固定長列の長さの総和 可変長データ制御部:可変長列の数 × 4 + 2 NULL指示部 :対象実表のNOT NULL指定なしの列の数 制御情報レコードには、可変長列の長さは加えません。 (4) ページ内格納域長 ページ長 - 110 (5) ページ越えレコー ドの判断 「(4) ページ内格納域長≧(1)ユーザログレコード長」の場合は、(6)(7)を用いてスペース量を計算します。 「(4) ページ内格納域長<(1)ユーザログレコード長」の場合は、(8)(9)を用いてスペース量を計算します。 (2)トランザクション情報レコード、または(3)制御情報レコードについては、(6)(7)を用いてスペース量を計 算します。 (6) ページ内レコード 数 トランザクション情報レコードのスペース量を求める場合は、(1)ユーザログレコード長を(2)トランザクション 情報レコード長に置き換えてください。 制御情報レコードのスペース量を求める場合は、(1)ユーザログレコード長を(3)制御情報レコード長に置 き換えてください。 (7) スペース量 安全率については、1.3以上を指定し、見積もります。 算出されたスペース量は、ページ長の整数倍になるように補正してください。 (6)で算出したレコードの種類により、(7)の値は以下のいずれかを表します。 ユーザログレコードのスペース量 トランザクション情報レコードのスペース量 制御情報レコードのスペース量 - 25 - (8) レコード格納に必 要なページ数 (9) スペース量 {(8) レコード格納に必要なページ数 × 総レコード数(注) + CPU数 + 1} × ページ長 × 安全率 安全率については、1.3以上を指定し、見積もります。 算出されたスペース量は、ページ長の整数倍になるよう補正してください。 (10) エントリスペース量 ユーザログレコードのスペース量+トランザクション情報レコードのスペース量+制御情報レコードのスペー ス量 (7)または(9)でそれぞれ算出 (11) 総スペース量 (10)エントリスペース量 × エントリ数 注)総レコード数の目安は、以下のとおりです。 ・ ユーザログレコード(1)の場合 並列して実行するトランザクションで取得する予定の総レコード数以上 ・ トランザクション情報レコード(2)の場合 “並列して実行するトランザクションの総数以上”× 2 ・ 制御情報レコード(3)の場合 RDBシステムの起動・再起動数 例 CYCLIC構造のスペース量の見積りの例を示します。見積もる業務ログ表の構造は、以下のとおりです。 - システム数:1 (起動・再起動をそれぞれ1回) - エントリあたりの並列実行するトランザクション数:64 - 1つのトランザクションで取得するレコード件数:100件 - CPU数:1 - 所要スペース量:7エントリ CREATE TABLE ULOG.業務ログ表 ( LOG_TYPE CHAR(1) DEFAULT LOG_TYPE, SEQUENCE_NO CHAR(30) DEFAULT ULOG_SEQUENCE, TRANSACTION_ID CHAR(20) DEFAULT TRANSACTION_ID, SYSTEM_NAME CHAR(8) DEFAULT SYSTEM_NAME, CONTEXT_ID VARCHAR(1024), 分割キー CHAR(5) NOT NULL, 任意列 INTEGER, ユーザログ本文 BLOB(50K) ); なお、以下の条件で計算します。 - 格納構造:CYCLIC構造 - ページ長:32K - 安全率 :1.3 ユーザログレコード長 =( LOG_TYPE + SEQUENCE_NO + TRANSACTION_ID + SYSTEM_NAME ) + ( 可変長列の数(注1) × 4 + 2 ) + ( 分割キー + 任意列 )(注2) + ( CONTEXT_ID + ユーザログ本文 ) + NULL指示数 + 26 - 26 - =( 1 + 30 + 20 + 8 ) + ( 2 × 4 + 2 ) + ( 5 + 4 ) + ( 1024 + 51200 ) + 7 + 26 = 52335 ユーザログレコードのページ内レコード数 = ユーザログレコード長 / ( ページ内格納域長 - 66 ) = 52335 / ( 32768 - 110 -66 ) = 1.6057621 ・・・ = 2 (注3) ユーザログレコードのスペース量 = ( レコード格納に必要なページ数 × 総レコード数 + CPU数 + 1 ) × ページ長 × 安全率 = ( 2 × ( 64 × 100 ) + 1 + 1 ) × 32768 × 1.3 = 545344716.8 ( バイト ) = 532576 ( Kバイト ) (注4) トランザクション情報レコード長 = ( LOG_TYPE + SEQUENCE_NO + TRANSACTION_ID + SYSTEM_NAME ) + ( 可変長列の数(注1) × 4 + 2 ) + CONTEXT_ID + NULL指示数 + 26 = ( 1 + 30 + 20 + 8 ) + ( 2 × 4 + 2 ) + 1024 + 6 + 26 = 1125 トランザクション情報レコードのページ内レコード数 = ( ページ長 - 110 ) / トランザクション情報レコード長 = ( 32768 - 110 ) / 1125 = 29.029333 ・・・ = 29 (注5) トランザクション情報レコードのスペース量 = ( トランザクション情報レコード数 / トランザクション情報レコードのページ内レコード数 + CPU数 + 1 ) × ページ長 × 安全率 = ( ( 64 × 2 ) / 29 + 1 + 1 ) × 32768 × 1.3 = ( 5 + 1 + 1 ) × 32768 × 1.3 (注6) = 298188.8 ( バイト ) = 320 ( Kバイト ) (注4) 制御情報レコード長 = ( LOG_TYPE + SEQUENCE_NO + TRANSACTION_ID + SYSTEM_NAME ) + ( 可変長列の数(注1) × 4 + 2 ) + NULL指示数 + 26 = ( 1 + 30 + 20 + 8 ) + ( 2 × 4 + 2 ) + 6 + 26 = 101 制御情報レコードのページ内レコード数 = ( ページ長 - 110 ) / 制御情報レコード長 = ( 32768 - 110 ) / 101 = 323.346534 ・・・ = 323 (注5) 制御情報レコードのスペース量 = ( 総制御情報レコード数 / 制御情報レコードのページ内レコード数 + CPU数 + 1 ) × ページ長 × 安全率 = ( 2 / 323 + 1 + 1 ) × 32768 × 1.3 = ( 1 + 1 + 1 ) × 32768 × 1.3 (注6) = 127795.2 ( バイト ) = 128 ( Kバイト ) (注4) 総スペース量 = (ユーザログレコードのスペース量 + トランザクション情報レコードのスペース量 + 制御情報レコードのスペース量) × エントリ数 = ( 532576 + 320 + 128 ) × 7 = 3731168 ( Kバイト ) = 3644 ( Mバイト ) (注3) - 27 - 注1) 可変長列の数は、CONTEXT_ID、ユーザログ本文の数 注2) 分割キーと任意列の列の長さは、以下の表を元に計算してください。 注3) 小数点切上げ 注4) スペース量をページ長の整数倍に補正 注5) 小数点切捨て 注6) 5は(128/29)を、1は(2/323)を、それぞれ小数点切上げで計算 列のデータ属性 固定長 可変長 長さ(バイト) CHARACTER(n) n NATIONAL CHARACTER(n) n×2 NUMERIC(p,q) j (注1) DECIMAL(p,q) j (注1) SMALLINT 2 INTEGER 4 TIMESTAMP 7 DATE 4 TIME 3 INTERVAL YEAR(p) [ TO MONTH ] m (注2) m+1 (注2) INTERVAL MONTH(p) m (注2) INTERVAL DAY(p) [{ TO HOUR | TO MINUTE | TO SECOND }] m (注2) m+1 (注2) m+2 (注2) m+3 (注2) INTERVAL HOUR(p) [{ TO MINUTE | TO SECOND }] m (注2) m+1 (注2) m+2 (注2) INTERVAL MINUTE(p) [ TO SECOND ] m (注2) m+1 (注2) INTERVAL SECOND(p) m (注2) CHARACTER VARYING(n) a (注3) NATIONAL CHARACTER VARYING(n) a × 2 (注3) BLOB(nk) b × 1024 + 6(注4) 注1) jはpの値に依存して以下の値になります。 pの値(精度) j 1~2 1 3~4 2 5~6 3 7~9 4 10 ~11 5 12 ~14 6 15 ~16 7 - 28 - pの値(精度) j 17 ~18 8 注2) mはpの値に依存して以下の値になります。 pの値 m 1 ~2 2 3 ~4 3 5 ~9 5 注3) aは平均文字数です。最大n文字となります。 注4) bは平均データ長(バイト)です。最大nキロバイトとなります。 3.2 RDBディクショナリの容量見積り式 RDBディクショナリの容量見積り式を以下に示します。 初期値は、RDBディクショナリの作成直後の容量です。 基礎値は、ユーザログテーブルを追加するごとに必要となる容量です。 RDBディクショナリの容量は、20メガバイト以上を指定してください。 容量不足が発生した場合は、基礎値をもとに容量を算出し、容量拡張などを行ってください。 ■初期値 563200バイト ■基礎値 定義単位 変動要因 サイズ(バイト) ユーザログテーブル 固定 7000 データベーススペース 固定 2000 スキーマ 注釈定義に指定した文字列長 : cmバイト 2000 + (100 + cm) Symfoware/ RDBの文字 コードとユーザ ログテーブルの 文字コードが一 致している場合 列数 : c個 DEFAULT句に指定した文字列長 : dlバイト 表の注釈定義に指定した文字列長 : cmバイト 列の注釈定義に指定した文字列長 : ccmバイト 4000 + 200 × c (注1) + 200 + 2 × Σdl (注2) + (100 + cm) + Σ(100 + ccm) (注3) Symfoware/ RDBの文字 コードとユーザ ログテーブルの 文字コードが異 なる場合 列数 : c個 DEFAULT句に指定した文字列長 : dlバイト 表の注釈定義に指定した文字列長 : cmバイト 列の注釈定義に指定した文字列長 : ccmバイト 4000 + 600 × c (注1) + 600 + 2 × Σdl (注2) + (100 + cm) + Σ(100 + ccm) (注3) 表のDSO (CYCLIC構造) 表定義に指定した列の数 : c個 700 × (30 × c / 512) + 720 表のDSI 固定 1500 権限 GRANT文実行回数 : g回 700 × (140 × g / 512) + 400 × g テーブル 注1) ユーザログテーブルのときは6個 - 29 - 注2) 表内のすべての省略値について足した値 注3) 表内のすべての列について注釈情報定義の文字列長を足した値 備考. 割り算の結果はすべて小数点以下切上げ 3.3 RDBディレクトリファイルの見積り式 RDBディレクトリファイルの見積り式について説明します。 3.3.1 RDBディレクトリファイルの見積り式 RDBディレクトリファイルの見積り式について以下に示します。 ・ ■ユーザログテーブル用のRDBディレクトリファイル ・ ■RDBディクショナリ用のRDBディレクトリファイル それぞれのファイルの見積り式について説明します。 除算結果の小数点以下は、整数に切り上げてください。 ■ユーザログテーブル用のRDBディレクトリファイル ユーザログテーブル用のRDBディレクトリファイル = ((4 + 2.1 × B + 1.1 × S + 1.5 × D + P) / 256) × λ (メガバイト) B : RDBシステム内のユーザログテーブルのデータベース数 S : RDBシステム内のデータベーススペース数 D : RDBシステム内のDSI数 P : ページ管理域 λ : 安全率(1.3以上) (注1) 注1) 1.3を推奨しています。 ページ管理域 = ΣDSIのページ数 / 8704 ページ管理域の計算結果が、RDBシステム内のDSI数未満の場合は、RDBシステム内のDSI数に切り上げてください。 ΣDSIのページ数 RDBシステム内のDSI単位にページ数を求め、それらを合計します。 DSIのページ数 = DSIのスペース割付け量 / DSIのページ長 DSIのスペース割付け量およびDSIのページ長はキロバイト単位で指定してください。 DSIのページ長は、CREATE DSO文で指定するページ長です。 ■RDBディクショナリ用のRDBディレクトリファイル RDBディクショナリ用のRDBディレクトリファイル = 1メガバイト 3.3.2 運用別RDBディレクトリファイルの見積り式 フェイルオーバ運用の場合のRDBディレクトリファイルの見積り式について、以下に示します。 除算結果の小数点以下は、整数に切り上げてください。 ■フェイルオーバ運用の場合 フェイルオーバ運用の場合の見積り式を以下に示します。 - 30 - ◆RDBディレクトリファイル RDBディレクトリファイル = A + B + 1 (メガバイト) A : ユーザログテーブル用のRDBディレクトリファイルの見積り値 B : RDBディクショナリ用のRDBディレクトリファイルの見積り値 ユーザログテーブル用のRDBディレクトリファイルの見積り値およびRDBディクショナリ用のRDBディレクトリファイルの見積り値につい ては、“3.3.1 RDBディレクトリファイルの見積り式”を参照してください。 Linuxでフェイルオーバ運用を使用できるのは、64ビットOSの場合だけです。 3.4 ログ量の見積り式 ログ量の見積り式について以下に示します。 ・ ■BIログ量 ・ ■AIログ量 ・ ■アーカイブログ量 ・ ■レコード長 ここで見積もるログ量は、アプリケーションによるユーザログテーブル更新で出力されるログ量です。ログ量は、テンポラリログファイル およびアーカイブログファイルを見積もるための基礎値となります。 ログ量は、“レコード長”をベースに求めます。 厳密には、ユーザログテーブルの更新以外(ユーザログテーブルの定義、DSIの動的容量拡張など)にもログが取得されますが、概算 としては“レコード長”と“更新回数”から求めることができます。 ■BIログ量 トランザクション単位のBIログ量は、以下の式で見積もります。 なお、算出したトランザクションのBIログ量に、安全率(1.3)を乗算することをお勧めします。 トランザクションのBIログ量 = トランザクション情報レコードのBIログ量 = 256バイト ■AIログ量 トランザクション単位のAIログ量は、以下の式で見積もります。 なお、算出したトランザクションのAIログ量に、安全率(1.3)を乗算することをお勧めします。 トランザクションのAIログ量 = ΣユーザログレコードのAIログ量 + (トランザクション情報レコードのAIログ量 × 2) ※トランザクション情報レコードは、トランザクション単位に2回 レコード長を“UL”(ユーザログ)、および、“CL”(トランザクション情報)とすると、AIログ量は以下の値となります。 ユーザログレコードのAIログ量 = UL + 100バイト トランザクション情報レコードのAIログ量 = CL + 256バイト ULは“3.1.3 データベーススペース量の見積り式”で示す「(1)ユーザログレコード長」を、CLは「(2)トランザクション情報レコード長」を参 照してください。 ■アーカイブログ量 トランザクション単位のアーカイブログ量は、AIログ量と同じです。 - 31 - ■レコード長 レコード長は以下の式で見積もります。詳細は、“3.1.3 データベーススペース量の見積り式”を参照してください。 ユーザログレコード長、トランザクション情報レコード長 レコード長 = 固定長部 + 可変長データ制御部 + 可変長部 + NULL指示部 + 26 固定長部 : 固定長列の長さの総和 可変長データ制御部 : 可変長列の数 × 4 + 2 可変長部 : 可変長列の長さの総和 NULL指示部 : NOT NULL指定なしの列の数 3.5 ログ管理ファイルの見積り式 ログ管理ファイルは、以下の値より大きくなるように見積もります。 ログ管理ファイル = 100キロバイト 3.6 テンポラリログファイルの見積り式 テンポラリログファイルの見積り式について説明します。 テンポラリログファイルとは、テンポラリログインデックス、BIログ域、AIログ域の総称であり、物理的に1つのファイルを指していないので 注意してください。 ただし、rdblogコマンドによってテンポラリログ域を作成する場合、互いに同一のファイル、またはローデバイスを指定することも可能で す。その場合のファイルサイズ、またはローデバイス上の占有サイズについては、同一のファイル、またはローデバイスを指定したテン ポラリログインデックス、BIログ域、AIログ域の合計となります。 また、rdbsetupコマンドによって作成する場合は、すべて同一パーティション、またはファイルに作成されます。 - 32 - 以下にしたがって、それぞれの領域の見積もりを行ってください。 最初に同時実行アプリケーション数や更新BIログ量などにあわせて以下の項目を見積もります。 ・ ■トランザクションエントリ数 ・ ■トランザクション単位の更新ログ量と多重度 ・ ■BIログ域サイズ 次にBIログ域サイズやユーザログテーブル復旧処理時間(ダウンリカバリ時間)の目標値にあわせて以下の項目を見積もります。 ・ ■ダウンリカバリ時間 ・ ■AIログ域サイズ ・ ■リカバリログ量 - 33 - ■トランザクションエントリ数 トランザクションエントリ数の見積り式を以下に示します。 ユーザログを取得する場合は、トランザクションエントリ数は、同時に実行するトランザクションの最大多重度を示します。 トランザクションエントリ数 = Mt × (1 + S) × λ Mt: 同時に実行するトランザクション数の最大値(最大の多重度) S : コマンドキャンセル(SQL文単位のキャンセル)を含む コミットトランザクションの割合(0~1) λ : 安全率(1.5以上) (注) 注) 2以上を推奨しています。 トランザクションエントリ数によって、テンポラリログインデックス域のサイズが決まります。以下の式によってログインデックス部のサイズ を見積もってください。 高信頼性ログ機能のインストール時に、メモリ空間に64bitを指定した場合 テンポラリログインデックス域のサイズ = ブロック長 + 2 × BLOCK(248 × T + 304) (バイト) T : ブロック長 : BLOCK( ) : トランザクションエントリ数 テンポラリログ域のブロック長です。 テンポラリログファイル作成時にioオプションで 指定する値です。 特に指定しない場合は、512バイトです。 カッコ内の式を、ブロック長の整数倍に切り上げます。 高信頼性ログ機能のインストール時に、メモリ空間に32bitを指定した場合 テンポラリログインデックス域のサイズ = ブロック長 + 2 × BLOCK(240 × T + 304) (バイト) T : ブロック長 : BLOCK( ) : トランザクションエントリ数 テンポラリログ域のブロック長です。 テンポラリログファイル作成時にioオプションで 指定する値です。 特に指定しない場合は、512バイトです。 カッコ内の式を、ブロック長の整数倍に切り上げます。 例 64ビットでブロック長が512(バイト)、トランザクションエントリ数が20の場合 テンポラリログインデックス域のサイズ = 512 + 2 × BLOCK(248 × 20 + 304) = 512 + 2 × 5632 = 11776 (バイト) ■トランザクション単位の更新ログ量と多重度 トランザクションの更新ログ量は、“3.4 ログ量の見積り式”を参照し、見積もってください。 トランザクションの多重度は、同時に実行するトランザクション数の最大値をもとに、見積もってください。 なお、テンポラリログファイルは、16ギガバイト未満で作成してください。 トランザクションが収集するログにトランザクション間でばらつきが大きい場合は、本見積り式の誤差が大きくなるため、実際に動作させ て、必要ならテンポラリログファイルを変更してください。 運用を続けているうちにテンポラリログファイルの容量を変更しなければならなくなった場合は、rdblogコマンドで変更することができま す。 - 34 - ■BIログ域サイズ BIログ域は、トランザクション多重度およびそのトランザクションが出力するBIログ量を観点にして見積もります。トランザクションが収集 するログにトランザクション間でばらつきが大きい場合は、本見積り式の誤差が大きくなるため、実際に動作させて、必要ならテンポラリ ログファイルを変更してください。 BIログ域のサイズ = Lb × トランザクションエントリ数 Lb : トランザクションの更新ログ量の最大値(バイト数) ■ダウンリカバリ時間 ユーザログテーブル運用中にシステムダウンが発生したときに、Symfoware/RDBの再起動または切り替えの延長で行うユーザログテー ブルの復旧処理の時間です。 システムダウン発生後の再起動時間の目標値(お客さまの要件など)から、ダウンリカバリ時間を検討する必要があります。 ■AIログ域サイズ AIログ域のサイズは、原則としてリカバリログ量を基準に決定します。AIログ域全体サイズは、リカバリログ量のおよそ2倍程度を目安に します。 ただし、リカバリ時間を抑えたい場合でも、AIの全体サイズが少なすぎると、トランザクション実行中に枯渇が発生する危険があります ので全体サイズは、BIサイズ以下とならない容量が必要となります。 α = リカバリログ量 × 2 β = BIログ域サイズ AIログ域のサイズ = MAX(α、β) … α、βいずれかの多い方を選択してください。 ■リカバリログ量 リカバリログ量は、定常性能およびダウンリカバリ時間に影響を与えます。RDBシステムは、リカバリログ量を一定に保つように、一定間 隔で、ユーザログテーブルのバッファからディスクへの書込みを行います。 リカバリログ量が少ない場合は、ユーザログテーブルのバッファの書込み頻度が増えるため、定常性能に悪い影響を与える可能性が あります。 リカバリログ量が多い場合は、ダウンリカバリ時間が長くなります。 したがって定常性能を重視する場合は、ダウンリカバリ時間が運用に問題ない程度までリカバリログ量を多くとるようにしてください。 リカバリログ量の指定を省略した場合、デフォルト値は、AIログ域サイズが1.25メガバイト以上では512キロバイトが設定され、1.25メガバ イト以下ではAIログ域サイズの40%が設定されます。その場合のダウンリカバリの時間は、およそ1~2秒です。リカバリログ量10メガバ イトごとに5秒から15秒程度のダウンリカバリ時間がかかるとみて初期設定します。 ただし、リカバリログ量と、ダウンリカバリ時間の関係は、ディスク性能、バッファのサイズにより大きく影響を受けます。したがって、より精 度の高いリカバリログ量とするためには、実際の運用に沿った環境下でダウンリカバリ時間を実測し、rdblogコマンドのUオプション、tオ プションおよびcオプションで、リカバリログ量を再設定してください。 3.7 アーカイブログファイルの見積り式 アーカイブログファイルの見積りについて以下に示します。 ・ ■アーカイブログのバックアップを取る運用の場合 ・ ■アーカイブログのバックアップを取らない運用の場合 アーカイブログファイルの容量は、運用形態と、ユーザログテーブルの更新量、資源のバックアップ周期が関係します。バックアップが 必要な資源は次のとおりです。 ・ RDBディクショナリ(rdbdmpdicコマンドでバックアップします) アーカイブログファイルには、上記資源のバックアップおよびユーザログテーブルをエクスポートした取得した時点から、次のバックアッ プまたはユーザログテーブルのエクスポートを取得するまでの間の更新ログを保持する必要があります。 上記期間をバックアップ周期とします。バックアップ周期内における発生するログの見積もりは、以下のようになります。保持するログ量 に応じて、必要なアーカイブログファイルサイズを定義してください。 - 35 - アーカイブログファイルサイズ = バックアップ周期内に発生するトランザクション × トランザクション単位のAIログ量 トランザクション単位のAIログ量については、“3.4 ログ量の見積り式”を参照してください。 ■アーカイブログのバックアップを取る運用の場合 アーカイブログファイルのバックアップを取得した時点から、次のアーカイブログファイルのバックアップを取得するまでの更新データを 保存する容量が必要です。アーカイブログファイルのバックアップは、ユーザログテーブルなどの差分バックアップと考えてください。 たとえば、アーカイブログファイルのバックアップを毎日行うとした場合、アーカイブログファイルの容量は、最低でも1日分の更新デー タを保存する容量が必要です。この運用の場合でも、ユーザログテーブルなどを定期的にバックアップする必要があります。ユーザロ グテーブルなどを定期的にバックアップして、古いアーカイブログを破棄しないと、ユーザログテーブルを復旧するためのアーカイブロ グが膨大になり、ユーザログテーブルの復旧時間が長時間になる可能性があります。 ■アーカイブログのバックアップを取らない運用の場合 ユーザログテーブルなどのバックアップを取得した時点から、次のバックアップを取得するまでの更新データを保存する容量が必要で す。たとえば、ユーザログテーブルなどのバックアップを1回/週行うとした場合、アーカイブログファイルの容量は、最低でも1週間分の 更新データを保存する容量が必要です。 3.8 作業域の見積り式 ユーザログテーブル運用・操作では、以下の場合に作業用のディスクが必要になります。 ・ ■RDBコマンドやアプリケーションの入力ファイルおよび出力ファイル ・ ■RDBコマンドやSQL文の処理内部で使用する作業域 ユーザログテーブルの運用・操作において必要な作業域(ディスク容量)は、次の合計値となります。多重で実行するRDBコマンドやア プリケーションで使用する入力ファイル、出力ファイル、および、多重で実行するRDBコマンドやSQL文の処理が内部で使用する作業 域をすべて合計したものと考えてください。 作業域サイズ=( Σ(RDBコマンドやアプリケーションの入力ファイル) +Σ(RDBコマンドやアプリケーションの出力ファイル) +Σ(RDBコマンドやSQL文の処理内部で使用する 作業域サイズ))×λ λ:安全率(1.5以上) ■RDBコマンドやアプリケーションの入力ファイルおよび出力ファイル 以下の入力ファイルと出力ファイルのサイズを見積もってください。 ・ ユーザログテーブルからの抽出データファイル(退避ファイル) ・ リカバリのためのアーカイブログファイル ・ Symfoware/RDBがダウンしたときのコアファイル ・ Symfoware/RDBがメッセージ出力するRDBレポートファイル ・ アプリケーションが使用するファイル 入出力ファイル 見積り内容 退避ファイル エントリサイズで見積もってください。 作業域サイズは、退避ファイルをディスクにどれだけ保持するかによります。 アーカイブログファイル メディアリカバリを実施する前に、アーカイブログファイルをすべてディスクに保持す ることが必要です。したがって、アーカイブログファイルをテープ装置などにバックアッ プして運用している場合、そのアーカイブログファイルのサイズのディスク容量が必 要になります。 - 36 - 入出力ファイル 見積り内容 コアファイル Symfoware/RDBが異常となってダウンしたときに出力される調査用のコアファイルで す。Symfoware/RDBやコマンドが使用するメモリ量で見積もることができます。最大 量は、マシンに実装されるメモリ量とスワップ域サイズの合計になります。 RDBレポートファイル Symfoware/RDBが出力するエラーメッセージやインフォメーションメッセージのファイ ルです。RDB構成パラメタファイルのRDBREPORTSIZEに指定したサイズの2倍が 使用量になります。 rdbsetupコマンドでセットアップすると、20971520になります。 アプリケーションの入出力ファイル アプリケーションごとに入出力ファイルのサイズを見積もってください。 ■RDBコマンドやSQL文の処理内部で使用する作業域 RDBコマンドの処理やSQL文の処理は、処理するデータ量に応じて内部で使用する作業域のサイズが変わります。作業域のサイズが 少量の場合はメモリのみ使って処理されますが、作業域のサイズが大量になると自動的にディスクが使用されます。使用される作業域 のサイズは、以下のように見積もってください。 見積り内容 Symfoware/RDBの処理 RDBディクショナリの再編成コマンド ・ rdbgcdic RDBディクショナリの容量で見積もってください。 ユーザログテーブルのメディアリカバリ ・ rdbrcv AIログ域の容量で見積もってください。なお、rdbadjrcvは、AIログ域の容量の2倍で 計算してください。 多重に実行する場合は、各作業域サイズを加算してください。 ・ rdbrcvdic など AIログ域のサイズの見積り式については、“3.6 テンポラリログファイルの見積り式”を参照してください。 ・ RDBコマンドが使用する作業域サイズの詳細な見積り式は、“Interstage Business Application Server リファレンス”の各RDBコマン ドを参照してください。 ・ また、DSI容量の見積り式については、“3.1.3 データベーススペース量の見積り式”を参照してください。 - 37 - 第4章 高信頼性ログ機能のメモリの見積り式 RDBシステムで使用するメモリの見積り式について説明します。 RDBシステムの使用メモリ量の概算は、以下の式で見積もってください。 RDBシステムの使用メモリ量 (注1) = 初期量 + RDB構成パラメタファイルの指定で変動するメモリ量 + RDBシステムの構成で変動するメモリ量 + 共用メモリサイズ + デフォルトバッファサイズ + データベースアクセスの使用メモリ量 注1) フェイルオーバ運用の場合、待機インスタンスを配置しているノードのメモリ見積り量は、運用インスタンスを配置しているノードの 見積り量の合計と同じ分だけ必要です。 Linuxでフェイルオーバ運用を使用できるのは、64ビットOSの場合だけです。 備考. “KB(キロバイト)”および“MB(メガバイト)”の指定がない場合は、“B(バイト)”を意味します。 4.1 初期量 初期量 = 2150KB + 200KB × 搭載CPU数 + 1KB 搭載CPU数 処理装置に搭載している論理CPU数です。 4.2 RDB構成パラメタファイルの指定で変動するメモリ量 RDB構成パラメタファイルの各種パラメタの指定により変動するメモリ量です。 RDB構成パラメタファイルの指定で変動するメモリ量の概算は、以下の式で見積もってください。 RDB構成パラメタファイルの指定で変動するメモリ量 = ログバッファの使用メモリ量 + データベーススペースのI/O方式の使用メモリ量 + ネットワーク上のデータベーススペース用のリーダ/ライタの使用メモリ量 ログバッファの使用メモリ量 =2048KB + ログバッファサイズ ログバッファサイズ =(BIログバッファ数 + AIログバッファ数)× ブロック長 データベーススペースのI/O方式の使用メモリ量 = N × 搭載CPU数 × 200KB + (1 - N) × データベーススペース用のリーダ/ライタ数 × 500KB ネットワーク上のデータベーススペース用のリーダ/ライタの使用メモリ量 = ネットワーク上のデータベーススペース用のリーダ/ライタ数 × 500KB BIログバッファ数、AIログバッファ数 - 38 - RDB構成パラメタファイルのRDBLOGで指定するテンポラリログファイルのログバッファ数です。 ブロック長 テンポラリログファイル作成時に指定するブロック長です。 ブロック長は、rdblogコマンドのioオプションで指定します。ioオプションを省略する場合は512です。 rdblogコマンドの指定方法の詳細は、“Interstage Business Application Server リファレンス”を参照してください。 データベーススペースのI/O方式の使用メモリ量 RDB構成パラメタファイルのRDBASYNCIOでYESを指定する場合は、Nは1です。 RDB構成パラメタファイルのRDBASYNCIOでNOを指定する場合は、Nは0です。この場合、データベーススペース用のリーダ/ライタ 数は、RDB構成パラメタファイルのRDBDBSNUMで指定するリーダ/ライタ数です。 データベーススペース用のリーダ/ライタ数 RDB構成パラメタファイルのRDBDBSNUMで指定するリーダ/ライタ数です。 ネットワーク上のデータベーススペース用のリーダ/ライタ数 RDB構成パラメタファイルのRDBNETDBSNUMで指定するリーダ/ライタ数です。 RDBディクショナリの容量 RDBディクショナリ作成時に指定する割り付け量(バイト)です。 RDBディクショナリを配置するローデバイスのサイズではありません。 rdbcrdicコマンドのaオプションで指定する割り付け量です。 rdbcrdicコマンドの指定方法の詳細は、“Interstage Business Application Server リファレンス”を参照してください。 4.3 RDBシステムの構成で変動するメモリ量 RDBシステムの構成(ログ環境、ユーザログテーブル定義数、ユーザログテーブル容量など)で変動するメモリ量です。 RDBシステムの構成で変動するメモリ量の概算は、以下の式で見積もってください。 RDBシステムの構成で変動するメモリ量 = ログ環境で変動するメモリ量 + ユーザログテーブル構成で変動するメモリ量 ログ環境で変動するメモリ量 = ログインデックスの使用メモリ量 + ロールバック用バッファ ログインデックスの使用メモリ量 = ブロック長 + 2 × BLK[248 × トランザクションエントリ数 + 304] ロールバック用バッファ = 100KB × min (トランザクションエントリ数 ÷ 2, 100) ユーザログテーブル構成で変動するメモリ量 = RDBディクショナリのオブジェクト情報の使用メモリ量 + RDBディレクトリファイル情報の使用メモリ量 ブロック長 - 39 - ・・・ (A) ・・・ (B) テンポラリログファイル作成時に指定するブロック長です。 ブロック長は、rdblogコマンドのioオプションで指定します。ioオプションを省略する場合は512です。 rdblogコマンドの指定方法の詳細は、“Interstage Business Application Server リファレンス”を参照してください。 トランザクションエントリ数 当該ロググループのテンポラリログファイル作成時に指定するトランザクションエントリ数です。 BLK[ ] テンポラリログファイルのブロック長(512バイト)バウンダリで括弧“[ ]”内を切り上げます。 min() 列挙した引数のなかの最小値を表現します。 ■(A) RDBディクショナリのオブジェクト情報の使用メモリ量 RDBディクショナリのオブジェクト情報で使用するメモリ量です。 概算は、以下の式で見積もってください。 RDBディクショナリのオブジェクト情報の使用メモリ量 = 基礎値 (2458KB) + オブジェクト管理情報の使用メモリ量 + ユーザログテーブルのオブジェクト情報の使用メモリ量 + スキーマのオブジェクト情報の使用メモリ量 + 表のオブジェクト情報の使用メモリ量 ‥ (1) ユーザログテーブルのオブジェクト情報の使用メモリ量 = ユーザログテーブルのデータベース数 × 4KB スキーマのオブジェクト情報の使用メモリ量 = スキーマ数 × 4KB 表のオブジェクト情報の使用メモリ量 = Σ表単位のオブジェクト情報の使用メモリ量 ‥ (2) ユーザログテーブルのデータベース数 定義するユーザログテーブルのデータベースの数です。 スキーマ数 定義するスキーマの数です。 Σ表単位のオブジェクト情報の使用メモリ量 表単位のオブジェクト情報の使用メモリ量の総和です。 定義する表単位にオブジェクト情報の使用メモリ量を求め、それらを合計します。 ◆(1) オブジェクト管理情報の使用メモリ量 オブジェクト管理情報の使用メモリ量(概算)は、以下の式で見積もってください。 オブジェクト管理情報の使用メモリ量 = ユーザログテーブルのデータベース数 × 1024 + スキーマ数 × 1024 + 表数 × 10240 + 表DSO数 × 1024 + 表DSI数 × 512 ユーザログテーブルのデータベース数 - 40 - 定義するユーザログテーブルのデータベースの数です。 スキーマ数 定義するスキーマの数です。 表数 定義する表の数です。 表DSO数 定義する表のDSOの数です。 表DSI数 定義する表のすべてのDSIの数です。 ◆(2) 表単位のオブジェクト情報の使用メモリ量 表単位のオブジェクト情報の使用メモリ量(概算)は、以下の式で見積もってください。 表単位のオブジェクト情報の使用メモリ量 = 4KB[10240 + DSO情報 + 表DSI情報 + デフォルト値情報] + 8KB DSO情報 =(表DSO数 ) ×(1024 + 40 ) 表DSO数 = 1 表DSI情報 = Σ表DSI単位の情報 表DSI単位の情報 = 512 デフォルト値情報 = ΣDEFAULT句を指定する列単位の情報 DEFAULT句を指定する列単位の情報 = 省略値のデータ長 4KB[ ] 4KB(4096バイト)バウンダリで括弧“[ ]”内を切り上げます。 Σ表DSI単位の情報 表DSI単位の情報量の総和です。 当該表の表DSI単位に情報量を求め、それらを合計します。 ΣDEFAULT句を指定する列単位の情報 DEFAULT句を指定する列単位の情報量の総和です。 当該表のDEFAULT句を指定する列単位に情報量を求め、それらを合計します。 省略値のデータ長 当該列のDEFAULT句で指定する省略値のデータ長です。 省略値のデータ長は、以下のとおりです。 ・ データ型が文字列型、各国語文字列型の場合 省略値のデータ長 = 16バイト + 文字列の長さ(バイト) × 2 - 41 - ■(B) RDBディレクトリファイル情報の使用メモリ量 RDBディレクトリファイル情報で使用するメモリ量は、以下の式で見積もってください。 RDBディレクトリファイル情報の使用メモリ量 = RDBディクショナリ用のRDBディレクトリファイル情報の使用メモリ量 + ユーザログテーブル用のRDBディレクトリファイル情報の使用メモリ量 + メモリ管理情報の使用メモリ量 ‥ (1) ‥ (2) ‥ (3) ◆(1) RDBディクショナリ用のRDBディレクトリファイル情報の使用メモリ量 RDBディクショナリ用RDBディレクトリファイル情報の使用メモリ量は、以下のようになります。 RDBディクショナリ用のRDBディレクトリファイル情報の使用メモリ量 =1(メガバイト) ◆(2) ユーザログテーブル用のRDBディレクトリファイル情報の使用メモリ量 ユーザログテーブル用のRDBディレクトリファイル情報の使用メモリ量は、以下の式で見積もってください。割り算の結果の小数点以下 は、整数に切り上げます。 ユーザログテーブル用のRDBディレクトリファイル情報の使用メモリ量 =(4 (メガバイト) +ユーザログテーブルのデータベース数 × 2.1 +データベーススペース数 × 1.1 +(CYCLIC構造のDSI数) × 1.4 +ページ管理域)÷ 256 ページ管理域 =(ΣDSI単位のページ数)÷ 8704 DSI単位のページ数 = Σ(スペース割り付け量 ÷ ページ長) ユーザログテーブルのデータベース数 定義するすべてのユーザログテーブルデータベースの数です。 データベーススペース数 定義するすべてのデータベーススペースの数です。 DSI数 定義するすべてのDSIの数です。 ページ管理域 ページ管理域の計算(割り算)結果の小数点以下は、整数に切り上げます。さらに、ページ管理域の計算(割り算)結果が、定義する全 DSI数未満の場合は、DSI数に切り上げます。 ΣDSI単位のページ数 定義するDSI単位にページ数を求め、それらを合計した値です。 DSI単位のページ数 各ページ長に対する割り付け量から算出したページ数を合計した値です。格納構造により次のように算出します。なお、単位はすべ てキロバイトです。 CYCLIC構造の場合: “DATA部の割り付け量÷ページ長”の値です。 ◆(3) メモリ管理情報の使用メモリ量 メモリ管理情報の使用メモリ量は、次の式で見積もってください。 - 42 - 割り算の結果の小数点以下は、整数に切り上げます。 メモリ上管理情報の使用メモリ量(メガバイト) =(7.3 + ユーザログテーブルのデータベース数 × 0.1 + データベーススペース数 ×0.1 + (CYCLIC構造のDSI数) × 3.1 )÷ 256 + ローデバイス制御情報の使用メモリ量 (注) ローデバイス制御情報の使用メモリ量(メガバイト) =1.1+バッファ領域の使用メモリ量 バッファ領域の使用メモリ量(メガバイト) = (2)のメモリ量が16メガバイト以下の場合:(2)の値 (2)のメモリ量が16メガバイト以上の場合:16メガバイト 注) RDBディレクトリファイルをローデバイスに配置している場合(RDB構成パラメタファイルにRDBDIRSPACEを指定)にだけ見積もっ てください。 ユーザログテーブルのデータベース数 定義するすべてのユーザログテーブルのデータベースの数です。 データベーススペース数 定義するすべてのデータベーススペースの数です。 DSI数 定義するすべてのDSIの数です。 ローデバイス制御情報の使用メモリ量 RDBディレクトリファイルをローデバイスに配置している場合(RDB構成パラメタファイルにRDBDIRSPACEを指定)、ローデバイス制御 情報のメモリ量を追加します。RDBディレクトリファイルをUNIX系ファイルに配置している場合は、メモリ量は0です。 バッファ領域の使用メモリ量(メガバイト) RDBディレクトリファイルをローデバイスに配置している場合、RDBシステムはバッファ領域を介してローデバイス上のRDBディレクトリ ファイルを参照・更新しています。 バッファ領域の使用メモリ量は、“◆(2) ユーザログテーブル用のRDBディレクトリファイル情報の使用メモリ量”によって変わります。 (2)のメモリ量が16メガバイト以上となる場合 : バッファ領域は16メガバイト固定となります。 (2)のメモリ量が16メガバイト以下となる場合 : バッファ領域は(2)のメモリ量となります。 4.4 共用メモリサイズ Symfoware/RDBプロセスが、プロセス外との情報交換のために使用する共用メモリのサイズです。 ■共用メモリサイズ 共用メモリサイズは、以下の式で見積もってください。 共用メモリサイズ = 1024KB + 可変サイズ 可変サイズ = MAX_CONNECT_SYS ×(COMMUNICATION_BUFFER + 7KB) + 同時に実行するRDBコマンド数 × 11KB MAX_CONNECT_SYS(省略値=20) - 43 - ローカルから接続できるコネクションの最大数です。 MAX_CONNECT_SYSは、システム用の動作環境ファイルで指定します。 COMMUNICATION_BUFFER(省略値=1KB) ローカルアクセスを利用した場合に、1つのアプリケーションがRDBシステムと通信するために使用するバッファのサイズです。 COMMUNICATION_BUFFERは、システム用の動作環境ファイルで指定します。 4.5 デフォルトバッファサイズ デフォルトの共用バッファのサイズです。 デフォルトバッファに関する情報は、RDB構成パラメタファイルのRDBSYSBUFで指定するディレクトリ配下のテキストファイルrdbbufに 定義します。 デフォルトバッファは、次のDSIのアクセスで使用します。 ・ RDBディクショナリ(システム表のDSI) ・ rdbconbfコマンドによる共用バッファとの対応関係を登録していないDSI デフォルトバッファサイズは、以下の式で見積もってください。 デフォルトバッファサイズ =(1024 + 512)× BUFFER1Kで指定するバッファ枚数 +(2048 +512) +(2048 + 512)× BUFFER2Kで指定するバッファ枚数 +(2048 +512) +(4096 + 512)× BUFFER4Kで指定するバッファ枚数 +(2048 +512) +(8192 + 512)× BUFFER8Kで指定するバッファ枚数 +(2048 +512) +(16384 + 512)× BUFFER16Kで指定するバッファ枚数 +(2048 +512) +(32768 + 512)× BUFFER32Kで指定するバッファ枚数 +(2048 +512 ) 4.6 データベースアクセスの使用メモリ量 アプリケーションからのデータベースアクセスに伴い、Symfoware/RDBプロセス内に獲得するメモリ量です。 データベースアクセスの使用メモリ量の見積り対象は、アクセス対象の表を構成するDSIのうち、当該RDBシステムに偏在するDSIで す。(当該RDBシステム配下に定義する表DSIが対象) データベースアクセスの使用メモリ量の概算は、以下の式で見積もってください。 データベースアクセスの使用メモリ量 = 排他情報の使用メモリ量 ‥ (A) ■(A) 排他情報の使用メモリ量 ユーザログテーブルの排他制御で使用するメモリ量です。 排他情報の使用メモリ量の概算は、以下の式で見積もってください。 排他情報の使用メモリ量 = ΣDSI単位の排他を使用するトランザクション単位の使用メモリ量 + Σページ単位の排他を使用するトランザクション単位の使用メモリ量 + Σ行単位の排他を使用するトランザクション単位の使用メモリ量 DSI単位の排他を使用するトランザクション単位の使用メモリ量 = アクセス対象のDSI数 × 128 ページ単位の排他を使用するトランザクション単位の使用メモリ量 = アクセス対象のページ数 × 256 - 44 - 行単位の排他を使用するトランザクション単位の使用メモリ量 = アクセス対象のレコード数 × 256 + キー排他情報の使用メモリ量 ΣDSI単位の排他を使用するトランザクション単位の使用メモリ量 DSI単位の排他を使用するトランザクション単位の使用メモリ量の総和です。 該当するトランザクション単位ごとに使用メモリ量を求め、それらを合計します。 Σページ単位の排他を使用するトランザクション単位の使用メモリ量 ページ単位の排他を使用するトランザクション単位の使用メモリ量の総和です。 該当するトランザクション単位ごとに使用メモリ量を求め、それらを合計します。 Σ行単位の排他を使用するトランザクション単位の使用メモリ量 行単位の排他を使用するトランザクション単位の使用メモリ量の総和です。 該当するトランザクション単位ごとに使用メモリ量を求め、それらを合計します。 アクセス対象のDSI数 トランザクション内でアクセスするDSI数です。(表のDSI数の合計) アクセス対象のページ数 トランザクション内でアクセスするページ数です。(表のページ数の合計) アクセスするページ数を見積もることは困難ですので、ページ単位の排他であっても、行単位の排他としてメモリを見積もることをお勧 めします。ページ単位の排他より、行単位の排他の方が見積り結果が大きくなることが予想されますが、多めに見積もる方が安全で す。 アクセス対象のレコード数 トランザクション内でアクセスするレコード(行)数です。(表のレコード(行)数) - 45 - 第2部 非同期アプリケーション連携実行基盤編 第5章 システム・チューニング...........................................................................................................................47 第6章 パフォーマンス・チューニング..................................................................................................................78 第7章 タイムアウト値のチューニング.................................................................................................................83 - 46 - 第5章 システム・チューニング 本章では、データベース、同時処理数、およびJava VMのヒープ領域サイズのチューニングについて説明します。 5.1 データベースのチューニング データベースのチューニング方法について記載します。 5.1.1 データベースの設定(Symfoware/RDBを使う場合) アプリケーション連携実行基盤のデータベース環境をSymfoware/RDBを使用して作成する場合のチューニングパラメタについて説明 します。 なお、製品版のSymfoware Serverを使用している場合、チューニング項目については、Symfoware Serverの最新のマニュアルと照ら し合わせ、差異がある場合は、Symfoware Serverのマニュアルを元に算出してください。 5.1.1.1 RDB構成パラメタ RDB構成パラメタの見積り式を以下に説明します。 定義種別 必要数 備考 RDBLOG 128,128 BIログ書き出しのためのログバッファの枚数とAI ログ書き出しのためのログバッファの枚数 RDBEXTMEM MAX_CONNECT_TCP × 39 + 1728 (注 1) Symfoware Serverが情報交換として使用する 共用メモリの大きさ RDBCNTNUM MAX_CONNECT_TCP × 2 + 64 (注1) RDBデーモンの要求の最大多重度 RDBASYNCIONUMR 0 データベーススペースへアクセスする際のI/ O(read)多重度 RDBASYNCIONUMW 1 データベーススペースへアクセスする際のI/ O(write)多重度 RDBREPORTSIZE 10485760 メッセージログファイルのファイルサイズ 注1) MAX_CONNECT_TCPの値は、“5.1.1.2 システム用の動作環境ファイル”を参照してください。 共用バッファプールの定義ファイルに定義するパラメタを以下に示します。 パラメタ 必要数 備考 BUFFER1K 1040 ページ長が1Kのページ数 BUFFER2K 1040 ページ長が2Kのページ数 BUFFER4K 1040 ページ長が4Kのページ数 BUFFER8K 1040 ページ長が8Kのページ数 BUFFER16K 1040 ページ長が16Kのページ数 BUFFER32K 1040 ページ長が32Kのページ数 5.1.1.2 システム用の動作環境ファイル システム用の動作環境ファイルの見積り式を以下に説明します。 実行パラメタ 必要数 備考 COMMUNICATION_BUFFE R 32 ローカルアクセスの場合に、サーバ側で使用す るバッファのサイズ MAX_CONNECT_SYS 20 ローカルで接続できるコネクションの数の最大値 - 47 - 実行パラメタ MAX_CONNECT_TCP 必要数 備考 (Σa(DB_Num + 1) × mt1) + Σb(DB_Num × mt2)) × 1.2 1つのSymfoware/RDB環境に対しRDB2_TCP で接続できるコネクションの数の最大値 [可変項目の説明] ・Σa: 業務処理開始アプリケーションの総和 ・mt1: 業務処理実行アプリケーションの多重度 の最大値 ・Σb: 業務処理実行アプリケーションの総和 ・DB_Num: メッセージトラッキングDBまたはメッ セージ格納DBを使用する場合“1”、両方を使用 する場合“2” ・mt2: 業務処理実行アプリケーションの多重度 ([ワークユニット名] > [モジュール名] > [EJBア プリケーション名] > [アプリケーション環境定義] > [Message-driven Bean拡張情報] > 初期起動 インスタンス数) SORT_MEM_SIZE 2112 作業用ソート領域として使うメモリサイズ WORK_MEM_SIZE 128 作業用テーブルとして使うメモリサイズ 5.1.1.3 テンポラリログファイルの見積り式 テンポラリログファイルの見積り式を以下に説明します。 要素 必要数 備考 トランザクションエントリ数 MAX_CONNECT_TCPの値 (注1) 同時に実行するトランザクションの最大多重度 BIログ域サイズ ・トランザクションエントリ数が512より少ない場 合 MAX_CONNECT_TCPの値 [MB] (注1) BIログデータを書き出すためのテンポラリログファ イルの領域のサイズ。 ・トランザクションエントリ数が512以上の場合 MAX_CONNECT_TCPの値 ÷ 2 [MB] (注1) なお、メッセージとDBの整合性保証機能を使用 する場合は、上記に下記の計算結果を加算す る。 (8K + a) × b × 5 [バイト] a: アプリケーションで使用するメッセージ長。メッ セージ長は、“1.1.1.1 メッセージ長の見積り式” で算出してください。 b: メッセージとDBの整合性保証機能を使用す るアプリケーションのスレッド数 AIログ域サイズ ・トランザクションエントリ数が512より少ない場 合 MAX_CONNECT_TCPの値 [MB] (注1) ・トランザクションエントリ数が512以上の場合 MAX_CONNECT_TCPの値 ÷ 2 [MB] (注1) なお、メッセージとDBの整合性保証機能を使用 する場合は、上記に下記の計算結果を加算す る。 (8K + a) × b × 5 [バイト] a: アプリケーションで使用するメッセージ長。メッ セージ長は、“1.1.1.1 メッセージ長の見積り式” で算出してください。 - 48 - AIログデータを書き出すためのテンポラリログ ファイルの領域のサイズ。 要素 必要数 備考 b: メッセージとDBの整合性保証機能を使用す るアプリケーションのスレッド数 リカバリログ量 ・トランザクションエントリ数が512以下の場合 AIログ域サイズ ÷ 8 [MB] ・トランザクションエントリ数が512より多い場合 AIログ域サイズ ÷ 16 [MB] Symfoware/RDBがダウンした場合に Symfoware/RDBが再起動時に実施するリカバリ 処理を行うためのAIログ域中のAIログのサイズ 注1) MAX_CONNECT_TCPの値は、“5.1.1.2 システム用の動作環境ファイル”を参照してください。 5.1.1.4 RDBディクショナリの見積り式 RDBディクショナリの見積り式を以下に説明します。 要素 必要数 備考 フロー定義DB 基礎値: 987K × 1.2 ≒ 1200K [バイト] フロー定義DBのRDBディクショナリの必要量 メッセージトラッキングDB 基礎値: 734K × 1.2 ≒ 900K [バイト] メッセージトラッキングDBのRDBディクショナリの 必要量 メッセージ格納DB 基礎値: (1143K + イベントチャネル数 × 1030K) × 1.2 [バイト] (注1) メッセージ格納DBのRDBディクショナリの必要 量 注1) イベントチャネル数には、メッセージとDBの整合性保証機能で使用するイベントチャネル数を指定します。 5.1.1.5 アーカイブログファイルの見積り式 アーカイブログファイルの見積り式を以下に説明します。 要素 アーカイブログ量 必要数 備考 バックアップ周期内に発生するトランザクショ ン × ((64K + msg) × 1.3) [バイト] msg: メッセージとDBの整合性保証機能を使 用する場合、8K + アプリケーションで使用 するメッセージ長を指定します。メッセージ 長については、“1.1.1.1 メッセージ長の見積 り式”を参照してください。 アプリケーション連携実行基盤で使用するアー カイブログ量 5.1.1.6 データベーススペース(フロー定義DB)の見積り式 フロー定義DBのデータベーススペースの見積り式を以下に説明します。 実際に必要なデータベーススペースの容量は、以下の表容量と索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 要素 表容量 必要数 備考 CEIL(((CEIL(flow_def_max / 57) + 1) × 32,768 × 1.3) / 32,768) × 32,768 + CEIL(((CEIL(flow_def_max / 24) + 1) × 32,768 × 1.3) / 32,768) × 32,768 + CEIL(((CEIL(3×activity_max + 5) × flow_def_max) / 1) + 1) × 32,768 × 1.3) / 32,768) × 32,768 + CEIL(((CEIL(((3×activity_max + 5) × flow_def_max) / 1) + 1) × 32,768 × 1.3) / 32,768) × 32,768 + CEIL((( α ) / 32,768) × 32,768 フロー定義DBで使用 する表容量 - 49 - 要素 必要数 備考 +6,144 [バイト] 計算式内に表記されているα部分は、下記の基準に従って計算してください。 32,674≧β の場合(A)を採用 32,674<βの場合(B)を採用 β=299 + (CEIL(1.88×(activity_max × 340 + 750)) + 17,257)×flow_def_max ) (A) {CEIL(flow_def_max / FLOOR(32,674 /β)) + 1} × 32,768 × 1.3 (B) {CEIL(β/ 32,616) × flow_def_max + 1} × 32,768 × 1.3 索引容量 ( (CEIL(((CEIL(flow_def_max / 700) + 1) × 32,768 × 1.3) / 32,768) × 32,768) × 2 + (CEIL(((CEIL(flow_def_max / 80) + 1) × 32,768× 1.3) / 32,768) × 32,768) × 3 + (CEIL(((CEIL(((3 × activity_max + 5) ×flow_def_max) / 700) + 1) × 32,768 × 1.3) / 32,768) × 32,768) × 2 +6,144 )+( ×2+ ×2+ + - 50 - フロー定義DBで使用 する索引容量 要素 必要数 備考 ×2 + 3,072 ) [バイト] ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - activity_max:配置アクティビティの最大予測数 - flow_def_max:運用で登録されるフロー定義の最大予測数 ・ CEIL:計算結果が整数になるように切り上げます。 5.1.1.7 データベーススペース(メッセージトラッキングDB)の見積り式 メッセージトラッキングDBのデータベーススペースの見積り式を以下に説明します。 実際に必要なデータベーススペースの容量は、以下の表容量と索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 要素 表容量 必要数 備考 メッセージトラッキング DBで使用する表容量 CEIL(( α ) / 32,768 ) × 32,768 + 6,144 [バイト] 計算式内に表記されているα部分は、下記の基準に従って計算してください。 32,674≧β の場合(A)を採用 32,674<βの場合(B)を採用 β=58,223 + (activity_pass_total× 1024 )+ message_len message_lenはByte変換しておくこと (A) {CEIL(track_cycle_max / FLOOR(32,674 /β)) +1} × 32,768 × 1.3 (B) {CEIL(β/ 32,616) × track_cycle_max + 1} × 32,768 × 1.3 索引容量 ( CEIL(((CEIL(track_cycle_max / 350) + 1) × 16,384 × 1.3) / 16,384) × 16,384 + CEIL(((CEIL(track_cycle_max / 5) + 1) × 8,192 × 1.3) / 8,192) × 8,192 + 6,144 )+ ( - 51 - メッセージトラッキング DBで使用する索引容 量 要素 必要数 備考 + + 3,072) [バイト] ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - activity_pass_total:総アクティビティ通過最大数 - message_len:メッセージ長 - track_cycle_max:メッセージトラッキング情報保有最大件数 ・ message_lenはバイトに変換しておく必要があります。 ・ CEIL:計算結果が整数になるように切り上げます。 ・ メッセージ長については、“1.1.1.1 メッセージ長の見積り式”を参照してください。 5.1.1.8 データベーススペース(メッセージ格納DBのシステム固有部)の見積り式 メッセージ格納DBのシステム固有部のデータベーススペースの見積り式を以下に説明します。 実際に必要なデータベーススペースの容量は、以下の表容量と索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 要素 表容量 必要数 110,592 + CEIL(((CEIL(evtchl_total / 90) + 1 ) × 32,768 × 1.3) / 32,768 ) × 32,768 [バイト] - 52 - 備考 メッセージ格納DBのシ ステム固有部で使用す る表容量 要素 索引容量 必要数 備考 ( (CEIL(((CEIL((message_max × 2) / 350) + 1) × 16,384 × 1.3) / 16,384) × 16,384) × 2 + CEIL(((CEIL(message_max / 350) + 1) × 16,384 × 1.3) / 16,384) × 16,384 + CEIL(((CEIL(message_max / 365) + 1) × 16,384 × 1.3) / 16,384) × 16,384 + CEIL(((CEIL(message_max / 160) + 1) × 8,192 × 1.3) / 8,192) × 8,192 )+( 150,528 + メッセージ格納DBのシ ステム固有部で使用す る索引容量 + ) [バイト] ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - evtchl_total:総イベントチャネル数 - message_max:メッセージトラッキング情報保有最大件数 ・ CEIL:計算結果が整数になるように切り上げます。 5.1.1.9 データベーススペース(メッセージ格納DBのユーザ指定部)の見積り式 メッセージ格納DBのユーザ指定部のデータベーススペースの見積り式を以下に説明します。 実際に必要なデータベーススペースの容量は、以下の表容量と索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 - 53 - 要素 表容量 必要数 備考 evtchl_max × ( CEIL(((CEIL((message_max × 2) / 378) + 1) × 16,384 × 1.3 ) / 16,384) × 16,384 + CEIL(( ( α ) / 32,768) ×32,768 ) [バイト] メッセージ格納DBの ユーザ指定部で使用 する表容量 計算式内に表記されているα部分は、下記の基準に従って計算してください。 32,674≧β の場合(A)を採用 32,674<βの場合(B)を採用 β=8072 +( ( ( ((issuesroot_avg×128)+(apl_method_avg × 166) +2,048) × activity_max + 10,240 + message_len) / 1024) * 1024) message_lenはByte変換しておくこと (A) {CEIL(message_max / FLOOR(32,674 /β)) + 1} × 32,768 × 1.3 (B) {CEIL(β/ 32,616) × message_max + 1} × 32,768 × 1.3 索引容量 ( ((CEIL ((((message_max × 2) / 350) + 1) × 16,384 × 1.3) / 16,384) × 16,384) × 2 + (CEIL (((message_max / 350) + 1) × 16,384 × 1.3) / 16,384) × 16,384 + (CEIL (((message_max / 365) + 1) × 16,384 × 1.3) / 16,384) × 16,384 + (CEIL (((message_max / 160) + 1) × 16,384 × 1.3) / 16,384) × 16,384 )+( evtchl_max × ( ×2+ + - 54 - メッセージ格納DBの ユーザ指定部で使用 する索引容量 要素 必要数 備考 + )) [バイト] ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - activity_max:配置アクティビティの最大予測数 - apl_method_avg:ユーザアプリケーション定義で指定されたメソッドの平均数 - evtchl_max:イベントチャネル最大数 - issuesroot_avg:平均補償ルート情報数 - message_max:メッセージトラッキング情報保有最大件数 - message_len:メッセージ長 ・ message_lenはバイトに変換しておく必要があります。 ・ CEIL:計算結果が整数になるように切り上げます。 ・ メッセージ長については、“1.1.1.1 メッセージ長の見積り式”を参照してください。 5.1.1.10 JDBCデータソースの見積り式 JDBCデータソースの各種パラメタの見積り式を以下に説明します。 各パラメタの詳細については、同梱のSymfoware/RDBを利用する場合は“Interstage Business Application Server セットアップガイド” の“SymfowareのJDBC環境の設定”の“データソースのオプション情報設定画面”および“ctuneparamオプションについて”を参照して ください。製品版のSymfoware Serverを利用する場合は“Symfoware Server アプリケーション開発ガイド(JDBCドライバ編)”の“データ ソースのオプション情報設定画面”および“ctuneparamオプションについて”を参照してください。 - 55 - ■最大コネクション数 最大コネクション数の設定値の目安を示します。apfwcrtdbenvコマンドを使用してデータベース環境を作成した場合、設定値 は、“Interstage Business Application Server トラブルシューティング”の“symjddefdsコマンド実行時の説明”に示す値となっています。 アプリケーションの多重度により、apfwcrtdbenvコマンドで設定した値が下記見積りより小さい場合、必要量を計算し、最大コネクション 数に適切な値を設定してください。 データソース 設定値の目安 フロー定義DB用データソース 業務処理開始アプリケーションの多重度の総和 × 1.2 メッセージトラッキングDB用データソース (メッセージトラッキングDBを使用する業務処理開始アプ リケーションの多重度の総和 + メッセージトラッキングDB を使用する業務処理実行アプリケーションの多重度の総 和) × 1.2 メッセージ格納DB用データソース (メッセージ格納DBを使用する業務処理開始アプリケー ションの多重度の総和 + メッセージ格納DBを使用する 業務処理実行アプリケーションの多重度の総和) × 1.2 ■最大プールコネクション数 最大プールコネクション数の設定値の目安を示します。apfwcrtdbenvコマンドを使用してデータベース環境を作成した場合、設定値 は、“Interstage Business Application Server トラブルシューティング”の“symjddefdsコマンド実行時の説明”に示す値となっています。 アプリケーションの多重度により、apfwcrtdbenvコマンドで設定した値が下記見積りより小さい場合、必要量を計算し、最大プールコネ クション数に適切な値を設定してください。 データソース 設定値の目安 フロー定義DB用データソース 業務処理開始アプリケーションの多重度の総和 × 1.2 メッセージトラッキングDB用データソース (メッセージトラッキングDBを使用する業務処理開始アプ リケーションの多重度の総和 + メッセージトラッキング機能 を使用する業務処理実行アプリケーションの多重度の総 和) × 1.2 メッセージ格納DB用データソース (メッセージ格納DBを使用する業務処理開始アプリケー ションの多重度の総和 + メッセージ格納DBを使用する 業務処理実行アプリケーションの多重度の総和) × 1.2 ■ステートメントキャッシュ数 ステートメントキャッシュ数の設定値の目安を示します。 データソース 設定値の目安 フロー定義DB用データソース 64 メッセージトラッキングDB用データソース 64 メッセージ格納DB用データソース 7 + 8 × 同時送信数 + 業務処理キャッシュ数 (注1)(注 2) 注1) 同時送信数:1つのアプリケーションから同時に送信する送信先の最大数 注2) 業務処理キャッシュ数:業務処理でデータベースを操作する場合に、業務処理としてのステートメントキャッシュ数 ■CLI_MAX_SQL CLI_MAX_SQLの設定値の目安を示します。 データソース 設定値の目安 フロー定義DB用データソース 65 メッセージトラッキングDB用データソース 65 - 56 - データソース 設定値の目安 メッセージ格納DB用データソース 8 + 8 × 同時送信数 + 業務処理キャッシュ数 (注1)(注 2) 注1) 同時送信数:1つのアプリケーションから同時に送信する送信先の最大数 注2) 業務処理キャッシュ数:業務処理でデータベースを操作する場合に、業務処理としてのステートメントキャッシュ数 5.1.2 データベースの設定(Oracleを使う場合) アプリケーション連携実行基盤のデータベース環境をOracleを使用して作成する場合のチューニングパラメタについて説明します。 なお、チューニング項目については、Oracleの最新のマニュアルと照らし合わせ、差異がある場合は、Oracleのマニュアルを元に算出 してください。 5.1.2.1 システムパラメタの見積り式(Solarisの場合) システムパラメタの見積り式を以下に説明します。各パラメタの詳細については、“Oracle Databaseインストレーションガイド”を参照して ください。 ■noexec_user_stack パラメタ 内容 noexec_user_stack 1 (注1) 注1) このパラメタは、Solaris 9では使用されません。 ■共用メモリ パラメタ 種類 必要数 備考 shmsys:shminfo_shmmax 設定値 4294967295 共用メモリセグメントの最大サイ ズ shmsys:shminfo_shmmin 設定値 1 (注1) 共用メモリセグメントの最小サイ ズ shmsys:shminfo_shmmni 加算値 100 共用メモリIDの数 shmsys:shminfo_shmseg 加算値 10 (注1) プロセスごとの共用メモリセグメ ント数 注1) このパラメタは、Solaris 9では使用されません。 ■セマフォ資源 パラメタ 種類 必要数 備考 semsys:seminfo_semmni 加算値 100 セマフォIDの数 semsys:seminfo_semmns 加算値 全PROCESSES + インスタンス数 × 4 + 10 (注1) システム全体のセマフォ数 semsys:seminfo_semmsl 設定値 PROCESSES(最大値) + 10 (注 1) 見積もり結果が、1024より小さい 場合は、1024を指定します。 セマフォIDごとの最大セマフォ 数 見積もり結果が、256より小さい 場合は、256を指定します。 semsys:seminfo_semvmx 加算値 32767 注1) PROCESSESの値は、“5.1.2.2 初期化パラメタファイルの見積り式”を参照してください。 - 57 - セマフォの最大値 5.1.2.2 初期化パラメタファイルの見積り式 Oracleにおけるチューニングパラメタは多種多様な設定となるため、詳細については、Oracleマニュアルを参照してください。 分類 パラメタ 設定値 概要 基本 DB_NAME フロー定義DB、メッセージトラッキングDBを作成する場合 はAPFWDB (固定値) メッセージ格納DBを作成する場合は任意 データベース識別子 競合 DB_FILES CEIL((システム表容量 + UNDO表領域量 + A) ÷ 8192) + 20 インスタンスで作成可能なデー タファイルの最大数 A:作成する下記データベースの表容量、索引容量また は一時表容量の合計サイズです。 ・フロー定義DB ・メッセージトラッキングDB ・メッセージ格納DB(システム固有部) ・メッセージ格納DB(ユーザ指定部) 上記データベースの容量計算方法については、“5.1.2.7 テーブルスペース(フロー定義DB)の見積り式”、“5.1.2.8 テーブルスペース(メッセージトラッキングDB)の見積り 式”、“5.1.2.9 テーブルスペース(メッセージ格納DBシステ ム固有部)の見積り式”、“5.1.2.10 テーブルスペース(メッ セージ格納DBユーザ指定部)の見積り式”を参照してくだ さい。 また、apfwsetupdbコマンドを使用してデータベース環境 の作成を行い、表容量自動拡張を使用する場合は、上記 データベースの各容量に、apfwsetupdbコマンドの環境作 成定義ファイルで指定する“容量自動拡張時の上限サイ ズ”を加算してください。 CEIL:計算結果が整数になるように切り上げます。 PROCESSES (Σa((DB_Num + 1) × mt1) + Σb(DB_Num × mt2)) × 1.2 接続可能なユーザプロセス最大 数 [可変項目の説明] ・Σa: 業務処理開始アプリケーションの総和 ・mt1: 業務処理実行アプリケーションの多重度の最大値 (システム構築シートに設定したプロセスまたはスレッド最 大多重度の値の大きい方を選択) ・Σb: 業務処理実行アプリケーションの総和 ・DB_Num: メッセージトラッキングDBまたはメッセージ格納 DBを使用する場合、“1”、両方を使用する場合、“2” ・mt2: 業務処理実行アプリケーションの多重度(Interstage 管理コンソールの[Interstage Application Server] > [シス テム] > [ワークユニット] > “ワークユニット名”>“モジュー ル名” > “EJBアプリケーション名” > [アプリケーション環 境定義]タブ画面の[初期起動インスタンス数] 詳細は、Interstage管理コンソールのヘルプを参照してく ださい。) [不変項目の説明] ・1.2:安全率 SESSIONS 1.1 × PROCESSES + 5 接続可能なセッション最大数 TRANSACTIONS 1.1 × SESSIONS 実行可能なトランザクション最大 数 - 58 - 5.1.2.3 リスナーファイルの見積り式 分類 接続数 パラメタ QUEUESIZE 設定値 概要 サーバへの同時接続要求数 PROCESSESと同じ値 5.1.2.4 UNDO表領域の見積り式 Oracleが提示する以下の計算式を元に適切な値を決定してください。 要素 UNDO表領域量 必要数 UR × UPS + overhead [可変項目の説明] UR: 秒単位のUNDO_RETENTION UPS: 1秒間に使用するUNDO ブロックの 数 overhead: メタデータ(トランザクション表や ビットマップなど)使用時のオーバーヘッド 備考 アプリケーション連携実行基盤で使用する UNDOブロック数 5.1.2.5 制御ファイルの見積り式 要素 制御ファイル量 必要数 備考 20 × (フロー定義DB数 + メッセージトラッキ アプリケーション連携実行基盤で使用する制御 ングDB数 + メッセージ格納DB数)[Mバイト] ファイル容量 5.1.2.6 REDOログ・ファイルの見積り式 100MB ~数GBの範囲内にあるREDO ログ・ファイルがOracleの推奨値です。システムが生成するREDOの量にしたがって、オンライン REDO ログ・ファイルをサイズ設定してください。 5.1.2.7 テーブルスペース(フロー定義DB)の見積り式 フロー定義DBのテーブルスペースの見積り式を以下に説明します。 実際に必要なテーブルスペースの容量は、以下の一時表容量、表容量、および索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 要素 一時表容量 必要数 備考 <Oracle9iの場合> MAX{ 補正{ CEIL( CEIL( flow_def_max / 26 ) × 0.25 ) × 65536 }, 補正{ CEIL( CEIL( flow_def_max / 11 ) × 0.25 ) × 65536 }, 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) / 129 ) × 0.25 ) × 65536 }, 補正{ CEIL( CEIL( flow_def_max / 41 ) × 0.25 ) × 65536 }, 1048576 } × 2 [バイト] <Oracle10gの場合> MAX{ 補正{ CEIL( CEIL( flow_def_max / 53 ) × 0.5 ) × 65536 }, 補正{ CEIL( CEIL( flow_def_max / 22 ) × 0.5 ) × 65536 }, 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) / 260 ) × - 59 - フロー定義DBで使用する一時表容量 です。 見積もり結果が、1024MBより大きい場 合は、1024MBを見積もり結果としま す。 要素 必要数 備考 0.5 ) × 65536 }, 補正{ CEIL( CEIL( flow_def_max / 83 ) × 0.5 ) × 65536 }, 1048576 } × 2 [バイト] 表容量 フロー定義DBで使用する表容量 <Oracle9iの場合> CEIL( CEIL( { 補正{ CEIL( CEIL( flow_def_max / 26 ) × 0.25 ) × 65536 } + 補正{ CEIL( CEIL( flow_def_max / 11 ) × 0.25 ) × 65536 } + 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) / 129 ) × 0.25 ) × 65536 } + 補正{ CEIL( CEIL( flow_def_max / 41 ) × 0.25 ) × 65536 } + 1048576 + 補正{ CEIL( CEIL( 32768 × ( (3 × activity_max + 5 ) × flow_def_max ) × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( CEIL( ( ( CEIL( 1.88 × ( activity_max × 340 + 750 ) ) + 17257 ) × flow_def_max ) / 16384 ) × 16384 × flow_def_max × 1.2 ) × 1.05 ) } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] <Oracle10gの場合> CEIL( CEIL( { 補正{ CEIL( CEIL( flow_def_max / 53 ) × 0.5 ) × 65536 } + 補正{ CEIL( CEIL( flow_def_max / 22 ) × 0.5 ) × 65536 } + 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) / 260 ) × 0.5 ) × 65536 } + 補正{ CEIL( CEIL( flow_def_max / 83 ) × 0.5 ) × 65536 } + 1048576 + 補正{ CEIL( CEIL( 32768 × ( (3 × activity_max + 5 ) × flow_def_max ) × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( CEIL( ( ( CEIL( 1.88 × ( activity_max × 340 + 750 ) ) + 17257 ) × flow_def_max ) / 32768 ) × 32768 × flow_def_max × 1.2 ) × 1.05 ) } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 索引容量 フロー定義DBで使用する索引容量 <Oracle9iおよびOracle10gの場合> CEIL( CEIL( { CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 2 + 補正{ CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 275 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 2 + 補正{ CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 22 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 274 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 19 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 19 ) ) ) × db_block_size × 1.3 / - 60 - 要素 必要数 備考 65536 ) × 65536 } × 2 + 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 22 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 3 + CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 274 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + CEIL( CEIL( 3.15 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 45 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 要素 必要数 備考 一時表容量 MAX{ 補正{ CEIL( CEIL( flow_def_max / 53 ) × 0.5 ) × 65536 }, 補正{ CEIL( CEIL( flow_def_max / 22 ) × 0.5 ) × 65536 }, 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) / 260 ) × 0.5 ) × 65536 }, 補正{ CEIL( CEIL( flow_def_max / 83 ) × 0.5 ) × 65536 }, 1048576 } × 2 [バイト] フロー定義DBで使用する一時表容量 です。 見積もり結果が、1024MBより大きい場 合は、1024MBを見積もり結果としま す。 表容量 CEIL( CEIL( { 補正{ CEIL( CEIL( flow_def_max / 53 ) × 0.5 ) × 65536 } + 補正{ CEIL( CEIL( flow_def_max / 22 ) × 0.5 ) × 65536 } + 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) / 260 ) × 0.5 ) × 65536 } + 補正{ CEIL( CEIL( flow_def_max / 83 ) × 0.5 ) × 65536 } + 1048576 + 補正{ CEIL( CEIL( 32768 × ( (3 × activity_max + 5 ) × flow_def_max ) × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( CEIL( ( ( CEIL( 1.88 × ( activity_max × 340 + 750 ) ) + 17257 ) × flow_def_max ) / 32768 ) × 32768 × flow_def_max × 1.2 ) × 1.05 ) } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] フロー定義DBで使用する表容量 索引容量 CEIL( CEIL( { CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 2 + 補正{ CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 275 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 2 + 補正{ CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 22 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 274 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 19 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 19 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 2 フロー定義DBで使用する索引容量 - 61 - 要素 必要数 備考 + 補正{ CEIL( CEIL(( (3 × activity_max + 5) × flow_def_max ) × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 22 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 3 + CEIL( CEIL( flow_def_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 274 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + CEIL( CEIL( 3.15 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 45 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - activity_max:配置アクティビティの最大予測数 - flow_def_max:運用で登録されるフロー定義の最大予測数 ・ 数式の中の下記項目は、Oracleの初期化パラメタです。 ・ db_block_size:データベースのブロックサイズです。 Oracle9iの場合は16KB、Oracle10gの場合は32KBです。 ・ db_block_size:データベースのブロックサイズです。 Oracle10gの場合は32KBです。 ・ 補正: - 計算結果が8MB以下の場合、1024KBの整数倍となるように補正します。 - 計算結果が8MBより大きく64MB以下の場合、8192KBの整数倍となるように補正します。 - 計算結果が64MBより大きい場合、65536KBの整数倍となるように補正します。 ・ MAX:引数に含まれる最大値を選択します。 ・ CEIL:計算結果が整数になるように切り上げます。 ・ FLOOR:計算結果が整数になるように切り捨てます。 5.1.2.8 テーブルスペース(メッセージトラッキングDB)の見積り式 メッセージトラッキングDBのテーブルスペースの見積り式を以下に説明します。 実際に必要なテーブルスペースの容量は、以下の一時表容量、表容量、および索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 要素 一時表容量 必要数 備考 <Oracle9iの場合> MAX{ 補正{ CEIL( CEIL( track_cycle_max / 4 ) × 0.25 ) × 65536 }, - 62 - メッセージトラッキングDBで使用する一 時表容量です。 見積もり結果が、1024MBより大きい場 要素 必要数 備考 合は、1024MBを見積もり結果としま す。 1048576 } × 2 [バイト] <Oracle10gの場合> MAX{ 補正{ CEIL( CEIL( track_cycle_max / 9 ) × 0.5 ) × 65536 }, 1048576 } × 2 [バイト] 表容量 <Oracle9iの場合> CEIL( CEIL( { 補正{ CEIL( CEIL( track_cycle_max / 4 ) × 0.25 ) × 65536 } + 1048576 + 補正{ CEIL( CEIL( CEIL( ( activity_pass_total × 1024 ) / 16384 ) × 16384 × track_cycle_max × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( 16384 × track_cycle_max × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( CEIL( (message_len + 51200 ) / 16384 ) × 16384 × track_cycle_max × 1.2 ) × 1.05 ) } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] メッセージトラッキングDBで使用する表 容量 <Oracle10gの場合> CEIL( CEIL( { 補正{ CEIL( CEIL( track_cycle_max / 9 ) × 0.5 ) × 65536 } + 1048576 + 補正{ CEIL( CEIL( CEIL( ( activity_pass_total × 1024 ) / 32768 ) × 32768 × track_cycle_max × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( 32768 × track_cycle_max × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( CEIL( (message_len + 51200 ) / 32768 ) × 32768 × track_cycle_max × 1.2 ) × 1.05 ) } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 索引容量 <Oracle9iおよびOracle10g場合> CEIL( CEIL( { CEIL( CEIL( track_cycle_max × 1.05 / ( FLOOR( ( db_block_size 161 ) × 0.9 / 20 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( track_cycle_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 20 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + 補正{ CEIL( CEIL( track_cycle_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 1017 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( 3.15 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 45 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 要素 一時表容量 必要数 メッセージトラッキングDBで使用する索 引容量 備考 MAX{ 補正{ CEIL( CEIL( track_cycle_max / 9 ) × 0.5 ) × 65536 }, 1048576 } × 2 [バイト] - 63 - メッセージトラッキングDBで使用する一 時表容量です。 見積もり結果が、1024MBより大きい場 要素 必要数 備考 合は、1024MBを見積もり結果としま す。 表容量 CEIL( CEIL( { 補正{ CEIL( CEIL( track_cycle_max / 9 ) × 0.5 ) × 65536 } + 1048576 + 補正{ CEIL( CEIL( CEIL( ( activity_pass_total × 1024 ) / 32768 ) × 32768 × track_cycle_max × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( 32768 × track_cycle_max × 1.2 ) × 1.05 ) } + 補正{ CEIL( CEIL( CEIL( (message_len + 51200 ) / 32768 ) × 32768 × track_cycle_max × 1.2 ) × 1.05 ) } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] メッセージトラッキングDBで使用する表 容量 索引容量 CEIL( CEIL( { CEIL( CEIL( track_cycle_max × 1.05 / ( FLOOR( ( db_block_size 161 ) × 0.9 / 20 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( track_cycle_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 20 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + 補正{ CEIL( CEIL( track_cycle_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 1017 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( 3.15 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 45 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] メッセージトラッキングDBで使用する索 引容量 ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - activity_pass_total:総アクティビティ通過最大数 - message_len:メッセージ長 - track_cycle_max:メッセージトラッキング情報として保有される最大件数 ・ message_lenはバイトに変換しておく必要があります。 ・ 数式の中の下記項目は、Oracleの初期化パラメタです。 ・ db_block_size:データベースのブロックサイズです。 Oracle9iの場合は16KB、Oracle10gの場合は32KBです。 ・ db_block_size:データベースのブロックサイズです。 Oracle10gの場合は32KBです。 ・ 補正: - 計算結果が8MB以下の場合、1024KBの整数倍となるように補正します。 - 計算結果が8MBより大きく64MB以下の場合、8192KBの整数倍となるように補正します。 - 計算結果が64MBより大きい場合、65536KBの整数倍となるように補正します。 - 64 - ・ MAX:引数に含まれる最大値を選択します。 ・ CEIL:計算結果が整数になるように切り上げます。 ・ FLOOR:計算結果が整数になるように切り捨てます。 ・ メッセージ長については、“1.1.1.1 メッセージ長の見積り式”を参照してください。 5.1.2.9 テーブルスペース(メッセージ格納DBシステム固有部)の見積り式 メッセージ格納DBのシステム固有部のテーブルスペースの見積り式を以下に説明します。 実際に必要なテーブルスペースの容量は、以下の一時表容量、表容量、および索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 要素 一時表容量 必要数 備考 <Oracle9iの場合> MAX{ 1048576, 補正{ CEIL( CEIL( evtchl_total / 42 ) × 16384 / 65536 ) × 65536 } } × 2 [バイト] メッセージ格納DBのシステム固有部で 使用する一時表容量です。 見積もり結果が、1024MBより大きい場 合は、1024MBを見積もり結果としま す。 <Oracle10gの場合> MAX{ 1048576, 補正{ CEIL( CEIL( evtchl_total / 85 ) × 32768 / 65536 ) × 65536 } } × 2 [バイト] 表容量 <Oracle9iの場合> CEIL( CEIL( { 3145728 + 補正{ CEIL( CEIL( evtchl_total / 42 ) × 0.25 ) × 65536 } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] メッセージ格納DBのシステム固有部で 使用する表容量 <Oracle10gの場合> CEIL( CEIL( { 3145728 + 補正{ CEIL( CEIL( evtchl_total / 85 ) × 0.5 ) × 65536 } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 索引容量 <Oracle9iおよびOracle10gの場合> CEIL( CEIL( { CEIL( CEIL( 105 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( 105 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + 補正{ CEIL( CEIL( 105 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 144 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( evtchl_total × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( evtchl_total × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } - 65 - メッセージ格納DBのシステム固有部で 使用する索引容量 要素 必要数 備考 + 補正{ CEIL( CEIL( evtchl_total × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 155 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( 3.15 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 45 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 要素 必要数 備考 一時表容量 MAX{ 1048576, 補正{ CEIL( CEIL( evtchl_total / 85 ) × 32768 / 65536 ) × 65536 } } × 2 [バイト] メッセージ格納DBのシステム固有部で 使用する一時表容量です。 見積もり結果が、1024MBより大きい場 合は、1024MBを見積もり結果としま す。 表容量 CEIL( CEIL( { 3145728 + 補正{ CEIL( CEIL( evtchl_total / 85 ) × 0.5 ) × 65536 } } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] メッセージ格納DBのシステム固有部で 使用する表容量 索引容量 CEIL( CEIL( { CEIL( CEIL( 105 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( 105 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + 補正{ CEIL( CEIL( 105 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 144 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( evtchl_total × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 + 補正{ CEIL( CEIL( evtchl_total × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + 補正{ CEIL( CEIL( evtchl_total × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 155 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } + CEIL( CEIL( 3.15 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 45 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] メッセージ格納DBのシステム固有部で 使用する索引容量 ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - evtchl_total:総イベントチャネル数 ・ 数式の中の下記項目は、Oracleの初期化パラメタです。 ・ db_block_size:データベースのブロックサイズです。 Oracle9iの場合は16KB、Oracle10gの場合は32KBです。 - 66 - ・ db_block_size:データベースのブロックサイズです。 Oracle10gの場合は32KBです。 ・ 補正: - 計算結果が8MB以下の場合、1024KBの整数倍となるように補正します。 - 計算結果が8MBより大きく64MB以下の場合、8192KBの整数倍となるように補正します。 - 計算結果が64MBより大きい場合、65536KBの整数倍となるように補正します。 ・ MAX:引数に含まれる最大値を選択します。 ・ CEIL:計算結果が整数になるように切り上げます。 ・ FLOOR:計算結果が整数になるように切り捨てます。 5.1.2.10 テーブルスペース(メッセージ格納DBユーザ指定部)の見積り式 メッセージ格納DBのユーザ指定部のテーブルスペースの見積り式を以下に説明します。 実際に必要なテーブルスペースの容量は、以下の一時表容量、表容量、および索引容量を合わせた値になります。 見積もりは、apfwcrtdbenvコマンドまたはapfwsetupdbコマンドで算出することができます。 コマンドの詳細については、“Interstage Business Application Server リファレンス”を参照してください。 要素 一時表容量 必要数 備考 <Oracle9iの場合> MAX{ 補正{ CEIL( CEIL( ( message_max × 2 ) / 444 ) × 0.25 ) × 65536 }, 補正{ CEIL( message_max × 0.25 ) × 65536 } } × 2 [バイト] メッセージ格納DBのユーザ指定部 で使用する一時表容量です。 見積もり結果が、1024MBより大きい 場合は、1024MBを見積もり結果とし ます。 <Oracle10gの場合> MAX{ 補正{ CEIL( CEIL( ( message_max × 2 ) / 891 ) × 0.5 ) × 65536 }, 補正{ CEIL( CEIL( message_max / 3 ) × 0.5 ) × 65536 } } × 2 [バイト] 表容量 <Oracle9iの場合> CEIL( CEIL( { 補正{ CEIL( CEIL( ( message_max × 2 ) / 444 ) × 0.25 ) × 65536 } × evtchl_max + 補正{ CEIL( message_max × 0.25 ) × 65536 } × evtchl_max + 補正{ CEIL( CEIL( CEIL( ( 10240 + ( ( issuesroot_avg × 128 ) + ( apl_method_avg × 166 ) + 2048 ) × activity_max + message_len ) / 16384 ) × 16384 × message_max × 1.2 ) × 1.05 ) } × evtchl_max } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] <Oracle10gの場合> CEIL( CEIL( { 補正{ CEIL( CEIL( ( message_max × 2 ) / 891 ) × 0.5 ) × 65536 } × evtchl_max + 補正{ CEIL( CEIL( message_max / 3 ) × 0.5 ) × 65536 } × evtchl_max + 補正{ CEIL( CEIL( CEIL( ( 10240 + ( ( issuesroot_avg × 128 ) + ( apl_method_avg × 166 ) + 2048 ) × activity_max + message_len ) / - 67 - メッセージ格納DBのユーザ指定部 で使用する表容量 要素 必要数 備考 32768 ) × 32768 × message_max × 1.2 ) × 1.05 ) } × evtchl_max } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 索引容量 <Oracle9iおよびOracle10gの場合> CEIL( CEIL( { CEIL( CEIL( message_max × 2.1 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21) ) ) × db_block_size × 1.3 / 65536 ) × 65536 × evtchl_max + 補正{ CEIL( CEIL( message_max × 2.1 / ( FLOOR( ( db_block_size 161 ) × 0.9 / 21) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × evtchl_max + 補正{ CEIL( CEIL( message_max × 2.1 / ( FLOOR( ( db_block_size 161 ) × 0.9 / 22 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × evtchl_max + CEIL( CEIL( message_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 × evtchl_max + 補正{ CEIL( CEIL( message_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 4 × evtchl_max + 補正{ CEIL( CEIL( message_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 27 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × evtchl_max } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] 要素 必要数 メッセージ格納DBのユーザ指定部 で使用する索引容量 備考 一時表容量 MAX{ 補正{ CEIL( CEIL( ( message_max × 2 ) / 891 ) × 0.5 ) × 65536 }, 補正{ CEIL( CEIL( message_max / 3 ) × 0.5 ) × 65536 } } × 2 [バイト] メッセージ格納DBのユーザ指定部 で使用する一時表容量です。 見積もり結果が、1024MBより大きい 場合は、1024MBを見積もり結果とし ます。 表容量 CEIL( CEIL( { 補正{ CEIL( CEIL( ( message_max × 2 ) / 891 ) × 0.5 ) × 65536 } × evtchl_max + 補正{ CEIL( CEIL( message_max / 3 ) × 0.5 ) × 65536 } × evtchl_max + 補正{ CEIL( CEIL( CEIL( ( 10240 + ( ( issuesroot_avg × 128 ) + ( apl_method_avg × 166 ) + 2048 ) × activity_max + message_len ) / 32768 ) × 32768 × message_max × 1.2 ) × 1.05 ) } × evtchl_max } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] メッセージ格納DBのユーザ指定部 で使用する表容量 索引容量 CEIL( CEIL( { CEIL( CEIL( message_max × 2.1 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21) ) ) × db_block_size × 1.3 / 65536 ) × 65536 × evtchl_max + 補正{ CEIL( CEIL( message_max × 2.1 / ( FLOOR( ( db_block_size 161 ) × 0.9 / 21) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × evtchl_max + 補正{ CEIL( CEIL( message_max × 2.1 / ( FLOOR( ( db_block_size 161 ) × 0.9 / 22 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × evtchl_max + CEIL( CEIL( message_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 × evtchl_max メッセージ格納DBのユーザ指定部 で使用する索引容量 - 68 - 要素 必要数 備考 + 補正{ CEIL( CEIL( message_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 21 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × 4 × evtchl_max + 補正{ CEIL( CEIL( message_max × 1.05 / ( FLOOR( ( db_block_size - 161 ) × 0.9 / 27 ) ) ) × db_block_size × 1.3 / 65536 ) × 65536 } × evtchl_max } × 1.3 ) / 65536 ) × 65536 + 131072 [バイト] ・ 数式の中の下記項目は、環境作成定義ファイルの項目です。 - activity_max:配置アクティビティの最大予測数 - apl_method_avg:ユーザアプリケーション定義で、指定されたメソッドの平均数 - evtchl_max:イベントチャネル最大数 - issuesroot_avg:平均補償ルート情報数 - message_max:メッセージの最大予測数 - message_len:メッセージ長 ・ message_lenはバイトに変換しておく必要があります。 ・ 数式の中の下記項目は、Oracleの初期化パラメタです。 ・ db_block_size:データベースのブロックサイズです。 Oracle9iの場合は16KB、Oracle10gの場合は32KBです。 ・ db_block_size:データベースのブロックサイズです。 Oracle10gの場合は32KBです。 ・ 補正: - 計算結果が8MB以下の場合、1024KBの整数倍となるように補正します。 - 計算結果が8MBより大きく64MB以下の場合、8192KBの整数倍となるように補正します。 - 計算結果が64MBより大きい場合、65536KBの整数倍となるように補正します。 ・ MAX:引数に含まれる最大値を選択します。 ・ CEIL:計算結果が整数になるように切り上げます。 ・ FLOOR:計算結果が整数になるように切り捨てます。 ・ メッセージ長については、“1.1.1.1 メッセージ長の見積り式”を参照してください。 - 69 - 5.2 同時処理数のチューニング 5.2.1 アプリケーション(COBOL)の場合 5.2.1.1 非同期アプリケーション連携実行基盤-同時処理数の設定 非同期ワークユニットをチューニングするときに考慮するポイントを以下に示します。 ・ 同時処理数 ■同時処理数 同時処理数は、プロセス数と、1プロセスあたりのスレッド数で決まります。 同時処理数 = プロセス数 × 1プロセスあたりのスレッド数 非同期ワークユニットで同時に処理できるクライアントのリクエスト数は、同時処理数で決まります。たとえば同時処理数を16に設定す ると、16処理が同時に処理できます。クライアントからのリクエストが、処理できるリクエスト数を超えた場合は、キューイングされます。 同時処理数を決定するにあたって、プロセス数を増やすか、1プロセスあたりのスレッド数を増やすかは、業務アプリケーションの内容 や、利用可能なハードウェアリソースによって決めます。 以下にそれぞれの特徴を記載します。 実行多重度項目 特徴 スレッド数 メモリなどのリソース消費を少なくし、かつ、多重性能を向上させたい場合に設定します。ただし、 同一スレッド内の処理が異常終了した場合、同一プロセス内で動作中の要求に対する処理も異 常となります。 また、スレッド数を膨大な数に設定した場合は、プロセス内のヒープサイズが膨大になり、メモリ不 足になる可能性があります。このため、スレッド数の決定については、実機での測定(性能、メモ リなど)を実施し、決定します。 プロセス数 メモリなどのリソースはプロセスの量に応じて増加するため、プロセスが膨大な数になると、アプリ ケーションが異常終了しやすくなります。プロセスを分けることで、他のプロセス上で動作するア プリケーション異常終了した場合でも、影響を受けないようにすることができます。 プロセス数と、1プロセスあたりのスレッド数は、システム構築シートにより定義するか、直接、非同期ワークユニットの定義ファイルにより 定義します。 ・ 業務アプリケーションが、スレッドアンセーフなシステム関数や他製品を利用している場合には、スレッドを使用することができませ ん。この場合は、非同期ワークユニットのプロセスモードを利用してください。このとき、同時処理数はプロセス数と同じ数値になり ます。 ・ 非同期ワークユニットは、IJServerとは異なり同時処理数は固定です。 5.2.2 アプリケーション(Java)の場合 5.2.2.1 EJBコンテナ-同時処理数の設定 EJBコンテナをチューニングするときに考慮するポイントを以下に示します。 ・ 5.2.2.1.1 同時処理数 ・ 5.2.2.1.2 Session Bean ・ 5.2.2.1.3 Entity Bean - 70 - ・ 5.2.2.1.4 Message-driven Bean ・ 5.2.2.1.5 JNDI 5.2.2.1.1 同時処理数 同時処理数は、1プロセスあたりの実行多重度です。IJServerで同時に処理できるクライアントのリクエスト数は、同時処理数で決まりま す。例えば同時処理数を16に設定すると、16処理が同時に処理できます。クライアントからのリクエストが、処理できるリクエスト数を超 えた場合は、キューイングされます。 同時処理数には以下のように最小値と最大値の設定ができます。 通常は省略値で運用することを推奨しています。 定義項目 省略値 説明 最小値 16 IJServer起動直後から、EJBコンテナで同時処理可能なスレッド数です。クライアントのリ クエスト数が最小値を超えた場合は、自動的に拡張して動作します。 最大値 64 拡張可能な同時処理数の最大値です。クライアントのリクエスト数が最大値を超えた場 合は、リクエストはキューイングされます。 ・ 同時処理数を変更することで、1プロセスあたりの実行多重度を増やすことができますが、同時処理数が増えることによる使用資源 (CPU使用率、メモリ量など)の増加により、効果が見られない場合があります。 ・ 資源が不足している場合には、後から実行されたリクエストをキューイングすることにより、レスポンスの安定を図ります。 5.2.2.1.2 Session Bean リソースを効果的に利用するために、Session Beanにおいては以下の設定を行います。 ■STATEFULとSTATELESSの選択 STATELESS Session Beanを使用することで、メモリ資源やオブジェクトの生成回数が抑止されるため、処理性能が向上します。 STATEFULとSTATELESSには以下の違いがあるので、用途に合わせて使い分けてください。 STATEFUL STATELESS 対話状態 createからremoveまで同一のオブジェクトにアクセスす るため、クライアントとの対話状態を保持することがで きる。 クライアントと対話状態でないため、クライアントが情 報を保持する必要がある。 トランザクション Session Beanのsynchronization機能を使って、トラン ザクションとの同期が可能。 1メソッド内でトランザクションを完了させる必要がある。 性能 クライアントごとにEJB objectを生成するため、 STATELESSに比べてメモリ使用量が多い。 インスタンスやEJB objectを使い回すため、メモリ使用 量を抑止することができる。また、オブジェクトの生成 回数が抑止される。 ■STATEFUL Session Beanの無通信監視 createメソッドで作成したオブジェクトに対してremoveメソッドを実行せずに終了した場合、残存するオブジェクトを自動的に消去するた め、不要なメモリの増加を防ぐことができます。 省略値は、30(分)です。 ■STATEFUL Session Beanのcreateメソッド実行数の上限 createメソッド実行数を高負荷の実行環境に合わせて変更できます。 以下の計算式で算出された値が、省略値の1024を超過する場合には、Session Beanのcreateメソッド実行数の上限値を変更してくださ い。 (クライアントアプリケーションのプロセス数)×(1プロセス数あたりの実行スレッド数の平均) - 71 - なお、createメソッド実行数は、Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “IJServer 名” > “モジュール名” > “EJBアプリケーション名” > [アプリケーション環境定義] のInterstage拡張情報のStateful bean 同時接続数で 設定します。 createメソッドで作成したオブジェクトをremoveメソッドで削除しなかった場合、無通信監視機能でタイムアウトが発生するまでオブジェ クトが残存するため、メモリの使用量が多くなる可能性があります。create数の上限値は適切な値に設定してください。 【設定範囲】 種類 設定値 初期設定値 1024 最小値 1 最大値 2147483647 5.2.2.1.3 Entity Bean ■Entity Bean 呼出しの注意 Entity Beanは、レコードの情報を取得するためにメソッドを頻繁に実行します。このため、プロセス外からEntity Beanを呼び出すとIIOP 通信が頻繁に発生することにより、性能が劣化します。 Entity Beanは、同一IJServerのアプリケーションから呼び出すことを推奨します。 ■インスタンス数 インスタンスはトランザクション内でキャッシュされます。インスタンスプールにインスタンスが存在しない場合、同一トランザクション内で 使用したインスタンスのレコードデータをデータベースに反映し、そのインスタンスを別のレコードデータを格納するインスタンスとして 再利用します。インスタンスが頻繁に再利用されると、データベースにアクセスする回数が増加することによって性能に影響があるの で、性能を考慮してインスタンス数を設定してください。 インスタンス数はデータベースの検索レコード数とクライアントの同時接続数に関係します。効果的な値としては、通常検索されるレコー ド数の1.25倍の値を設定します。 以下に設定値の計算式を表します。 - 72 - Entityインスタンス数=axbx1.25(安全率) a:一度に検索されるレコード数 b:1プロセスで同時にアクセスするクライアント数 10クライアントが同時に100件を検索した場合 インスタンス数=10×100×1.25=1250 インスタンス数を増やすと、使用メモリが増えるので注意してください。 ■インスタンス管理モード Entity Beanのインスタンス管理モードによってデータベースの処理をチューニングすることができます。 以下の表に、それぞれのインスタンス管理モードと最適な処理について示します。 ReadWrite 検索を実行するとき、またオンラインのデータベースを更新するときに有効 ReadOnly 更新されない主要なデータを検索(参照)するときに有効 Sequential 大量のデータを一括処理するときに有効 5.2.2.1.4 Message-driven Bean Message-driven Beanのインスタンス数を設定することにより、同時にメッセージ処理を行うことができます。 目安としては、キューにメッセージが蓄積されない程度のインスタンス数を設定します。ただし、クライアント数とMessage-driven Bean処 理時間に依存するため、環境に合わせ試験運用を行い、調整後に設定してください。 5.2.2.1.5 JNDI ■オブジェクトの使い回し lookupメソッドで取得したオブジェクトは、EJBアプリケーション内で保持して使い回すことにより、lookupメソッドの実行回数を軽減でき ます。 ■deployment descriptor定義 deployment descriptorファイルにオブジェクトの情報を定義した場合、定義された情報をもとに、各ネーミングサービスからIJServer起動 時にオブジェクトを取得してメモリ上に保持するため、処理性能が向上します。 deployment descriptorファイルにオブジェクトの情報を定義しない場合、アプリケーションでlookupメソッドを実行したときにオブジェクト が各ネーミングサービスに存在しないかどうかを確認します。 deployment descriptorファイルにオブジェクトの情報を定義することを推奨します。すでに開発済みのEARファイルを使用する場合などで deployment descriptorファイルの編集ができない場合には、以下のオプションを使用することで、ネーミングサービスへのアクセス回数 を軽減できます。 このオプションを使用すると、lookupメソッド実行時に各ネーミングサービスから取得した情報をメモリ上に保持するため、同一のオブ ジェクトに対する2回目以降のlookupメソッドの処理性能が向上します。 なお、以下のオブジェクトを取得する場合には、本オプションを設定してIJServerを運用してください。 ・ 他のIJServerに配備されたEJBアプリケーションのHomeオブジェクト ・ データソース ・ JMSコネクションファクトリ - 73 - ・ JMS Destination 項目 設定内容 定義ファイル格納ディレクトリ [Interstageのインストールディレクトリ]\ejb\etc /opt/FJSVejb/etc 定義ファイル FJEJBconfig.properties 指定するキー名 “LookupCache”(固定) 指定する値 “1”:同一オブジェクトへの2回目以降のlookupメソッド実行時にはメモリに 保持した情報を返却します。 “1”以外:lookupメソッドを実行する度に、各ネーミングサービスにアクセス します(デフォルト)。 5.2.3 イベントチャネルの設定 業務処理実行アプリケーション、および業務処理開始アプリケーションの同時処理数(注)に合わせて、以下の設定を行う必要がありま す。 ・ 最大接続数の設定 ・ サプライヤ数およびコンシューマ数の最大値の設定 ・ CORBAサービスの動作環境ファイルの設定 注)同時処理数 = プロセス数 × 1プロセスあたりのスレッド数 業務処理実行アプリケーションの同時処理数については、“5.2.1 アプリケーション(COBOL)の場合”および、“5.2.2 アプリケーション (Java)の場合”を参照してください。 ■最大接続数の設定 最大接続数は、イベントチャネルの作成時に、esmkchnlコマンドの-mオプション、またはInterstage管理コンソールで設定します。 最大接続数には、イベントグループに含まれるイベントチャネルへの同時接続数の総和を設定してください。 イベントチャネルへの同時接続数は、以下を目安として見積もってください。 キュー イベントチャネルへの同時接続数 処理要求メッセージ格納キュー キューを受信キューとする業務処理実行アプリケーションの同時処理数と、キューにメッ セージを送信する業務処理実行アプリケーション、または業務処理開始アプリケーショ ンの同時処理数の合計 結果受信キュー キューから処理結果を格納したメッセージを受信するアプリケーションの同時処理数と、 キューにメッセージを送信する業務処理実行アプリケーションの同時処理数の合計 エラーメッセージ退避キュー キューからエラーとなったメッセージを受信するアプリケーションの同時処理数と、キュー にメッセージを送信する業務処理実行アプリケーションの同時処理数の合計 以下の図に記す環境を構築する場合を例にして、イベントチャネルの最大接続数の見積り方法について説明します。 - 74 - なお、イベントチャネルの最大接続数を見積もるための前提条件を以下に記します。 ・ 業務処理実行アプリケーションAの同時処理数は32とする。 ・ 業務処理実行アプリケーションBの同時処理数は16とする。 ・ 業務処理開始アプリケーションの同時処理数は64である。 ・ 業務処理実行アプリケーションAの処理要求メッセージ格納キューと業務処理実行アプリケーションBの処理要求メッセージ格納 キューは同じイベントグループに含まれるようにイベントチャネルを作成する。 この場合のイベントチャネルの最大接続数を以下に記します。 業務処理実行アプリケーションAの処理要求メッセージ格納キューの同時接続数 = 業務処理実行アプリケーションAの同時処理数 + 業務処理開始アプリケーションの同時処理数 = 96 業務処理実行アプリケーションBの処理要求メッセージ格納キューの同時接続数 = 業務処理実行アプリケーションBの同時処理数 + 業務処理実行アプリケーションAの同時処理数 = 48 イベントチャネルの最大接続数 = 業務処理実行アプリケーションAの処理要求メッセージ格納キューの同時接続数 + 業務処理実行ア プリケーションBの処理要求メッセージ格納キューの同時接続数 = 144 ・ esmkchnlコマンドの詳細については、“Interstage Application Server リファレンスマニュアル(コマンド編)”を参照してください。 ■サプライヤ数およびコンシューマ数の最大値の設定 サプライヤ数およびコンシューマ数の最大値は、essetcnfchnlコマンドを使用して設定します。 イベントチャネルグループごとにサプライヤ数およびコンシューマ数を算出して、以下の計算式の値が算出した値より大きくなるように 指定してください。 なお、サプライヤ数およびコンシューマ数の最大値のデフォルトは5050に設定されています。算出した値が5050以下の場合はデフォ ルトのままで問題ありません。 サプライヤ数の最大値 = (-supinitオプションの値)+(-supextオプションの値)×(-supenumオプションの値) コンシューマ数の最大値 = (-coninitオプションの値)+(-conextオプションの値)×(-conenumオプションの値) サプライヤ数、コンシューマ数の計算式を以下に示します。 サプライヤ数 = a×b-c+d+20 コンシューマ数 = c+e+20 a:業務処理実行アプリケーションごとの同時処理数の合計 b:チャネルグループに所属する処理要求メッセージ格納キュー、結果受信キュー、エラーメッセージ退避キューのイベントチャネ ルの合計数 c:チャネルグループに所属する処理要求メッセージ格納キューを受信キューとする業務処理実行アプリケーションごとの同時処理 数の合計 d:業務処理開始アプリケーションからのメッセージ送信の同時処理数 e:業務処理開始アプリケーションにおけるメッセージ受信の同時処理数 - 75 - 以下の図に記す環境を構築する場合を例にして、サプライヤ数およびコンシューマ数の見積り方法について説明します。 なお、サプライヤ数およびコンシューマ数を見積もるための前提条件を以下に記します。 ・ 業務処理実行アプリケーションAの同時処理数は32とする。 ・ 業務処理実行アプリケーションBの同時処理数は16とする。 ・ 業務処理開始アプリケーションの同時処理数は64とする。 ・ 業務処理実行アプリケーションAの処理要求メッセージ格納キューと業務処理実行アプリケーションBの処理要求メッセージ格納 キューは異なるイベントチャネルグループに含まれるようにイベントチャネルを作成する。 この場合のサプライヤ数およびコンシューマ数の最大値を以下に記します。 ・ 業務処理実行アプリケーションAの処理要求メッセージ格納キューが所属するイベントチャネルグループのサプライヤ数およびコ ンシューマ数 a = 業務処理実行アプリケーションAの同時処理数 + 業務処理実行アプリケーションBの同時処理数 = 48 b = イベントチャネルグループに所属するイベントチャネルの数 = 1 c = 業務処理実行アプリケーションAの同時処理数 = 32 d = 業務処理開始アプリケーションの同時処理数 = 64 e = 0 (注) サプライヤ数 = a×b-c+d+20 = 100 コンシューマ数 = c+e+20 = 52 ・ 業務処理実行アプリケーションBの処理要求メッセージ格納キューが所属するイベントチャネルグループのサプライヤ数およびコ ンシューマ数 a = 業務処理実行アプリケーションAの同時処理数 + 業務処理実行アプリケーションBの同時処理数 = 48 b = イベントチャネルグループに所属するイベントチャネルの数 = 1 c = 業務処理実行アプリケーションBの同時処理数 = 16 d = 業務処理開始アプリケーションの同時処理数 = 64 e = 0 (注) サプライヤ数 = a×b-c+d+20 = 116 コンシューマ数 = c+e+20 = 36 注)例では、結果受信キューを定義していないため、業務処理開始アプリケーションにおけるメッセージ受信の同時処理数は0 となります。 ・ essetcnfchnlコマンドの詳細については、“Interstage Application Server リファレンスマニュアル(コマンド編)”を参照してください。 ■CORBAサービスの動作環境ファイルの設定 業務処理実行アプリケーション、および業務処理開始アプリケーションの同時処理数によって以下の値を加算する必要があります。 CORBAサービスの動作環境ファイルは以下に格納されています。 - 76 - /etc/opt/FSUNod/config /etc/opt/FJSVod/config パラメタ名 max_exec_instance(注1) 加算値 すべてのイベントチャネルグループの以下の値の総和(注2) イベントチャネルグループの最大接続数(esmkchnlコマンドの-mオプションで指定)+16 max_IIOP_resp_con(注3) すべての業務処理実行アプリケーションと業務処理開始アプリケーションのプロセス数の合計 値 max_processes(注3) すべての業務処理実行アプリケーションと業務処理開始アプリケーションのプロセス数の合計 値 注1)すでにイベントチャネルグループの最大接続数を考慮した値が設定されている場合は、加算する必要はありません。 注2)イベントチャネルグループの最大接続数については、“■最大接続数の設定”を参照してください。 注3)本設定を変更した場合、システムパラメタの設定が必要です。システムパラメタの設定については、“Interstage Application Server チューニングガイド”の“システムのチューニング”の“CORBAサービスのシステム環境の設定”を参照してください。 5.3 Java VMのヒープ領域サイズのチューニング 5.3.1 Java VMのヒープ領域サイズの設定 Interstage管理コンソールを使用して、ワークユニット設定のJava VMオプションを指定することで、IJServerが動作するJava VMのパラ メタを変更して動作させることができます。 具体的には以下の項目で、Java VMヒープ領域サイズなどのパラメタを変更できます。 [Interstage Application Server] > [システム] > [ワークユニット] > “IJServer名” > [環境設定] > [ワークユニット設定] > [JavaVMオプショ ン] JDK 5.0の場合における最大ヒープ領域サイズの例を以下に示します。 最大ヒープ領域のサイズの省略値は、Java VMによって異なるので、JDKのドキュメントを参照してください。java.lang.OutOfMemoryError が多発する場合には、本定義項目で、Java VMの最大ヒープ領域を増加させてください。 Java VMの最大ヒープ領域を512メガバイトとする場合の設定 -Xmx512m なお、Interstageではヒープ領域の問題を警告メッセージで通知する、予兆監視機能を提供しています。 警告メッセージが出力された場合、そのまま業務を継続すると、メモリ不足やレスポンス低下などの問題が発生する可能性があります。 これらの問題を解決するために、警告メッセージに記載されている不足リソースの情報をもとに、チューニングを実施してください。 JavaVMで問題となる異常の原因は、ヒープ領域またはPerm領域の不足です。これを回避するために、現在の上限値を20%増加させ て運用を再開します。それでも警告が出力される場合は、上限値をさらに20%増加させて、警告が出力されなくなるまで繰り返しチュー ニングを実施してください。チューニングを繰り返し行い、警告メッセージが出力されない状態にすることで、安定稼働するシステムを 構築することができます。 予兆監視機能については、“Interstage Application Server 運用ガイド”を参照してください。 - 77 - 第6章 パフォーマンス・チューニング 本章では、システムの性能のチューニングについて説明します。 6.1 チューニング計画 システムの性能のチューニング計画について説明します。 6.1.1 問題の整理と課題の設定 システムの性能のチューニングを行うために、問題の整理と課題の設定を行います。 ■問題の整理 システムの性能のチューニングを行うためには、まず問題を整理する必要があります。 たとえば、問題の整理のポイントとして、以下のような点が挙げられます。 ・ 何が問題なのか ・ 問題となる時間や時期はいつか ・ 問題に対して影響を受ける人は誰か ・ 問題となるサーバやアプリケーションはどれか ・ 問題が発生した場合、業務に対する影響度はどれくらいか ■課題の設定 問題を整理した後に、課題の設定を行います。 課題の設定の際には、具体的にシステムのどの部分をどのようにするのか決定します。 たとえば、課題として以下のような点が挙げられます。 ・ サーバの資源(CPU/メモリ等)の増強 ・ システム構成の変更(サーバの分散化) ・ アプリケーション処理スレッドの多重化 6.1.2 目標値とスケジュールの設定 課題を設定した後に、目標値とスケジュールの設定を行います。 目標値は、アプリケーションの処理時間やサーバの資源の消費量を具体的に設定します。 スケジュールは、問題の業務に対する影響度を考慮しながら設定します。 6.1.3 チューニングの実施手順 チューニングは、以下の手順を繰り返し行うことで実施されます。 1. 問題の整理を行い、ボトルネックの特定および課題の設定を行います。 2. 性能測定を行います。 性能測定した結果を解析し、処置を検討します。 6.2 ボトルネックの特定 同時処理数のボトルネックを特定する方法について説明します。 - 78 - 6.2.1 アプリケーション同時処理数のボトルネック 6.2.1.1 非同期アプリケーション連携実行基盤-同時処理数のボトルネック(COBOL) 業務アプリケーションの同時処理数とイベントチャネルの最大接続数は、以下の関係を満たす必要があります。 同時処理数 × 2 ≦ イベントチャネルの最大接続数 上記関係を満たしていない場合、メッセージの送受信が想定した多重度で動作せず、ボトルネックの原因となることがあります。なお、 システム構築シートを使用してイベントチャネルを作成した場合は適切に設定されます。 なお、アプリケーション連携実行基盤の運用において以下の性能のボトルネックが検出された場合、同時処理数の値を変更すること により改善される可能性があります。 ■業務フロー全体のメッセージ処理時間の遅延 同時処理数のチューニングは、“5.2.1.1 非同期アプリケーション連携実行基盤-同時処理数の設定”を参照してください。 以下にメッセージ処理時間の測定方法を説明します。 アプリケーション連携実行基盤が提供する標準ログ機能の性能ログを用いることにより、メッセージの処理時間を計ります。 標準ログの利用方法については、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”を参照して ください。 以下の例を参考にし、出力されたログを抽出してください。 ・ 処理結果のメッセージを受信しない業務処理開始アプリケーションにおいて、業務フローの終点までの処理時間を測定する場合、 出力されたログから“IBS-AP-PERFORMANCE”および“StartOfBusiness-ToEndingPoint”という文字列をキーにし、ログを抽出す る。 ・ 処理結果のメッセージを受信する業務処理開始アプリケーションにおいて、処理結果のメッセージの受信が完了するまでの処理 時間を測定する場合、出力されたログから“IBS-AP-PERFORMANCE”および“StartOfBusiness-Return”という文字列をキーにし、 ログを抽出する。 メッセージを発行した数分のログが抽出されます。 それぞれ、経過時間が出力されていますので、その値を元にチューニングを行ってください。 6.2.1.2 EJBコンテナ-同時処理数のボトルネック アプリケーション連携実行基盤の運用において以下の性能のボトルネックが検出された場合、EJBコンテナ・同時処理数の値を変更 することにより改善される可能性があります。 ・ 業務フロー全体のメッセージ処理時間の遅延 EJBコンテナ・同時処理数のチューニングは、“6.3.1.2 EJBコンテナ-同時処理数の場合”を参照してください。 以下にメッセージ処理時間の測定方法を説明します。 アプリケーション連携実行基盤が提供する標準ログ機能の性能ログを用いることにより、メッセージの処理時間を計ります。 標準ログの利用方法については、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”を参照して ください。 以下の例を参考にし、出力されたログを抽出してください。 ・ sendMessageメソッドを用いた業務処理開始アプリケーションから、業務フローの終点までの処理時間を測定する場合、出力された ログから“IBS-AP-PERFORMANCE”および“StartOfBusiness-ToEndingPoint”という文字列をキーにし、ログを抽出する。 ・ sendMessageSyncメソッドを用いた業務処理開始アプリケーションを使用し、処理結果のメッセージの受信が完了するまでの処理 時間を測定する場合、出力されたログから“IBS-AP-PERFORMANCE”および“StartOfBusiness-Return”という文字列をキーにし、 ログを抽出する。 メッセージを発行した数分のログが抽出されます。 それぞれ、経過時間が出力されていますので、その値を元にチューニングを行ってください。 - 79 - 6.2.2 Java VMのヒープ領域サイズのボトルネック ワークユニットのコンテナログへIJServer21033またはEJB1033メッセージが出力され、Java VMのヒープ領域サイズの不足が検出され た場合、Java VMのヒープ領域サイズのチューニングを行ってください。 コンテナログは、[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ログ参照]から参照す ることができます。 Java VMのヒープ領域サイズのチューニングは、“6.3.2 Java VMのヒープ領域サイズの場合”を参照してください。 6.3 性能測定とチューニング 同時処理数の性能測定とチューニングについて説明します。 6.3.1 同時処理数のチューニング 6.3.1.1 非同期アプリケーション連携実行基盤-同時処理数の設定(COBOL) 同時処理数は、メッセージ処理の実行多重度です。非同期ワークユニットで同時に処理できるメッセージの処理数は同時処理数で決 まります。 同時処理数は、プロセス数と、1プロセスあたりのスレッド数で決まります。 同時処理数 = プロセス数 × 1プロセスあたりのスレッド数 システム構築シートを利用する場合には、「ワークユニット設定とアプリケーション情報の入力」シートで、プロセス数と、1プロセスあたり のスレッド数を指定します。 非同期ワークユニットの定義ファイルを直接編集する場合には、プロセス数は「Concurrency」ステートメント、スレッド数は「Thread Concurrency」ステートメントで指定します。 本設定により、同時処理数を増やすことができますが、使用資源(CPU使用率、メモリ量など)の増加により、効果が見られない場合が あります。環境に合わせ試験運用を行い、調整後に設定してください。 6.3.1.2 EJBコンテナ-同時処理数の場合 同時処理数は、1プロセスあたりのメッセージ処理の実行多重度です。IJServerで同時に処理できるメッセージの処理数は同時処理数 で決まります。 業務処理実行アプリケーション、およびMessage-driven Beanとして実装する業務処理開始アプリケーションは、Message-driven Beanと して動作するため、同時処理数はInterstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “ワーク ユニット名” > “モジュール名” > “EJBアプリケーション名” > [アプリケーション環境定義]タブ画面の[初期起動インスタンス数]の設定 値で指定します。 アプリケーション連携実行基盤を使用する場合、[初期起動インスタンス数]とイベントチャネルの最大接続数は以下の関係を満たすよ うにしてください。 初期起動インスタンス数 × 2 ≦ イベントチャネルの最大接続数 上記関係を満たしていない場合、メッセージの送受信が想定した同時処理数で動作せず、ボトルネックの原因となることがあります。な お、同時処理数はシステム構築シートを使用して算出することを推奨します。 ただし、業務処理実行アプリケーションとWebアプリケーションとして実装する業務処理開始アプリケーションを同一JavaVMで運用す る場合の同時処理数は、Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “ワークユニット 名” > [環境設定]タブ画面の[Servletコンテナ設定]の[同時処理数]で指定します。Servletコンテナ設定の同時処理数には、[システ ム] > [サービス] > [Webサーバ] > [環境設定]タブ > [詳細設定] > [クライアントの同時接続数]で指定した値以上の数値を設定する必 - 80 - 要があります。 また、Message-driven Bean以外のEJBとして業務処理開始アプリケーションを実装する場合の同時処理数は、Interstage管理コンソールの [Interstage Application Server] > [システム] > [ワークユニット] > “ワークユニット名” > [環境設定]タブ画面の[EJBコンテナ設定]の[同 時処理数]で指定します。 以下にメッセージ処理時間の測定方法を説明します。 アプリケーション連携実行基盤が提供する標準ログ機能の性能ログを用いることにより、メッセージの処理時間を計ります。 標準ログの利用方法については、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”を参照して ください。 以下の例を参考にし、出力されたログを抽出してください。 ・ sendMessageメソッドを用いた業務処理開始アプリケーションから、業務フローの終点までの処理時間を測定する場合、出力された ログから“IBS-AP-PERFORMANCE”および“StartOfBusiness-ToEndingPoint”という文字列をキーにし、ログを抽出する。 ・ sendMessageSyncメソッドを用いた業務処理開始アプリケーションを使用し、処理結果のメッセージの受信が完了するまでの処理 時間を測定する場合、出力されたログから“IBS-AP-PERFORMANCE”および“StartOfBusiness-Return”という文字列をキーにし、 ログを抽出する。 メッセージを発行した数分のログが抽出されます。 それぞれ、経過時間が出力されていますので、その値を元にチューニングを行ってください。 同時処理数を変更することで、1プロセスあたりの実行多重度を増やすことができますが、同時処理数が増えることによる使用資源(CPU 使用率、メモリ量など)の増加により、効果が見られない場合があります。 環境に合わせ試験運用を行い、調整後に設定してください。 ・ メッセージ順序性保証を行う運用の場合、EJBコンテナ設定の同時処理数の最小と最大をともに1に指定、または、Servletコンテナ 設定の同時処理数に1を指定してください。 6.3.2 Java VMのヒープ領域サイズの場合 アプリケーション連携実行基盤の業務処理実行アプリケーションを動作させるためのワークユニットが使用するJava実行環境のヒープ サイズは、Interstage管理コンソールの以下の項目で指定することができます。 [Interstage Application Server] > [システム] > [ワークユニット] > “IJServer名” > [環境設定] > [ワークユニット設定] > [JavaVMオプショ ン] 指定するJava実行環境のヒープサイズの算出式(単位はメガバイト)を以下に示します。 ・ JavaVMが使用するメモリ量の初期値(JavaVMオプションの-Xmsで指定する値) 指定するヒープサイズ=同時処理数(最大)×(フロー定義サイズ(注1)+メッセージ長の平均長(注2)+Message-driven Beanで 使用するヒープサイズ(注3)) - 注1)フロー定義サイズは、以下の算出式(単位はメガバイト)で見積もってください。 フロー定義サイズ=1フロー定義あたりの平均アクティビティ数×0.06×IJServerを通過するフロー定義数 - 注2)メッセージ長については、“1.1.1.1 メッセージ長の見積り式”を参照してください。その際、単位は“メガバイト”で計算して ください。 - 注3)Message-driven Beanで使用するヒープサイズは、以下の算出式(単位はメガバイト)で見積もってください。 Message-driven Beanで使用するヒープサイズ=17.4+(0.1×フロー定義数×1.2) - 81 - メモリ量(初期値)の省略値は、16メガバイト(JDK/JRE5.0)となります。 ・ JavaVMが使用するメモリ量の最大値(JavaVMオプションの-Xmxで指定する値) JavaVMが使用する最大メモリ量は以下の要因により異なります。 - 業務処理実行アプリケーションがnewするクラス型 - 業務処理実行アプリケーションがnewするインスタンスの個数 - GCの動作状況 - EJBアプリケーションの各種定義 - 最大メッセージ長 メッセージ長については、“1.1.1.1 メッセージ長の見積り式”を参照してください。 - 1フロー定義あたりに定義した最大アクティビティ数 以下に、見積もりの実測例を示します。 1. EJBアプリケーションを、本番運用のピーク時と同一条件で動作させます。 2. JavaVMが使用するメモリ量(最大値)が不足すると、IJServer21033またはEJB1033のメッセージが出力されるので、メモリ量 (最大値)が最適な値となるよう調整してください。 このようにして求めたメモリ量(最大値)を、そのまま本番運用時のメモリ量(最大値)として利用します。 メモリ量(最大値)の省略値は、512メガバイト(JDK/JRE5.0)となります。 - 82 - 第7章 タイムアウト値のチューニング アプリケーション連携実行基盤のシステムにおいて、設定可能なタイムアウトの値とその振る舞いについて、以下に説明します。 7.1 タイマ監視 非同期アプリケーション連携実行基盤を利用したシステムを構築する場合、以下のタイマ監視機能を利用して業務の処理時間や応答 時間を制御します。 ・ 非同期アプリケーション連携実行基盤のタイマ監視 ・ Interstage Application Serverおよびデータベース製品のタイマ監視 非同期アプリケーション連携実行基盤で利用するタイマ監視および各タイマの関係について説明します。 7.1.1 非同期アプリケーション連携実行基盤のタイマ監視 非同期アプリケーション連携実行基盤のタイマ監視および関連する処理時間には、以下の項目があります。設定可能なタイムアウトの 値とその振舞いについて説明します。 ・ フローのタイムアウト ・ 処理結果のメッセージの受信待ちタイムアウト ・ 結果受信キューに格納するメッセージの有効期間 ・ アクティビティの処理時間 ・ メッセージの滞留時間 ■フローのタイムアウト 非同期アプリケーション連携実行基盤では、フロー起動APIによって起動するフロー処理ごとに、フロー起動時間からのタイムアウト時 間を設定することができます。 フロー処理中に使用するキューが一時的に閉塞している場合や、フロー処理が一定時間を超えた場合、フローのタイムアウトの設定 によりにフローを中断させ、任意の後処理を行うことが可能です。 なお、フローのタイムアウトが発生した場合の後処理については、フロー定義の異常処理定義で指定します。 ◆設定項目 フローのタイムアウトの設定項目を以下に示します。 設定項目 フローのタイムアウト時間 説明 フローを起動した直後からフローの終点 のアクティビティでのメッセージ受信直後 までの処理のタイムアウト時間を秒で指定 します。 0を指定した場合、フローのタイムアウトを 行いません。 上段:省略値 下段:設定範囲 0(無制限) 0~2147483647(秒) 突き放し型フロー起動API(sendMessageメソッド)および待ち合わせ型フロー起動API(sendMessageSyncメソッド)でフローを起動する 際に、以下のメソッドでフローのタイムアウトの設定を行います。 ・ void setMessageTimeout(int timeout) メソッドを発行しなかった場合は、フローのタイムアウトは行われません。 な お 、 API の 詳 細 に つ い て は 、 “ Interstage Business Application Server リ フ ァ レ ン ス ” の “ ア プ リ ケ ー シ ョ ン イ ン タ フ ェ ー ス ” で“setMessageTimeoutメソッド”を参照してください。 - 83 - ◆タイムアウト判定箇所 非同期アプリケーション連携実行基盤ランタイムでは、以下のポイントでタイムアウト判定を行います。 1. メッセージ受信直後(非同期アプリケーション連携実行基盤ランタイム処理開始時点) 2. メッセージ送信直前(非同期アプリケーション連携実行基盤ランタイムがメッセージを送信する直前) 非同期アプリケーション連携実行基盤ランタイムでは、上記2箇所でタイムアウト判定を行います。フローの終点のアクティビティでは、 メッセージ送信直前のタイムアウト判定は行わないため、タイムアウト範囲は、以下のようになります。 ・ フロー起動APIによるフローの起動直後からフローの終点のアクティビティでのメッセージ受信直後まで また、フローのタイムアウト発生時は、システムログへフローのタイムアウトが発生したことを示すメッセージを出力します。 メッセージ送信直前(業務処理実行アプリケーション呼び出し後)にフローのタイムアウトが発生した場合、業務処理はロールバックさ れます。この場合、メッセージトラッキング機能で出力されるエラー詳細情報の処理状況(経路情報)において、エラーが発生した動作 アプリケーションの“受信キューからの受信日時”には、業務処理のロールバック後に行われる後処理の日時が出力されます。 メッセージトラッキング機能の“宛先キューへの送信日時”とエラーが発生した動作アプリケーションの“受信キューからの受信日時”の 間に大きな時間差がみられる場合は、フローのタイムアウトが発生した原因も含め、以下の問題も発生している可能性があります。 ・ エラーが発生した動作アプリケーションに関連付けられたキューにメッセージが滞留し、処理が遅延している可能性があります。 キューにメッセージが滞留していないか、イベントサービスの状態(esmonitorコマンド)を確認してください。 ・ 業務処理実行アプリケーションで処理が遅延している可能性があります。 非同期アプリケーション連携実行基盤が提供する標準ログ機能の性能ログの利用や、業務処理実行アプリケーションにトレース情 報を組み込むなどして、処理遅延の原因を特定してください。 標準ログの出力方法については、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”を参照 してください。 ■処理結果のメッセージの受信待ちタイムアウト 非同期アプリケーション連携実行基盤では、フロー起動APIによって起動するフロー処理ごとに、処理結果のメッセージの受信待ちの タイムアウト時間を設定することができます。 待ち合わせ型フロー起動API(sendMessageSyncメソッド)で処理結果のメッセージを取得するまでに、設定したタイムアウト値を超えた 場合に、APIはnullを返却します。 タイムアウトが発生しても、メッセージ処理には影響されず、メッセージ処理はそのまま続行されます。 ◆設定項目 処理結果のメッセージの受信待ちタイムアウトの設定項目を以下に示します。 - 84 - 設定項目 説明 上段:省略値 下段:設定範囲 処理結果のメッセージの受信 待ちのタイムアウト時間 待ち合わせ型のフロー起動時に、処理結果 のメッセージの受信待ちのタイムアウト時間 を秒で指定します。 60(秒) 1~3600(秒) 待ち合わせ型フロー起動API(sendMessageSyncメソッド)でメッセージを送信する際に、以下のメソッドでタイムアウトの設定を行います。 ・ void setTimeout(int timeout) なお、上記メソッドを発行しなかった場合は、タイムアウトは60秒となります。 タイムアウトが発生した場合は、別途、receiveMessageメソッドを用いて結果受信キューから処理結果のメッセージを取得する必要があ ります。 なお、APIの詳細については、“Interstage Business Application Server リファレンス”の“アプリケーションインタフェース”で、“setTimeout メソッド”を参照してください。 ・ setTimeoutメソッドで指定するタイムアウト時間は、イベントサービスのイベントチャネルの設定“イベントデータ待ち合わせ時間”に 依存します。“イベントデータ待ち合わせ時間”は、省略値が40秒であり、この場合、待ち合わせ型フロー起動API(sendMessageSync メソッド)の受信タイムアウト契機は、setTimeoutメソッドで指定したタイムアウト時間と“イベントデータ待ち合わせ時間”に設定した 値により、以下のように変化します。 - 「イベントデータ待ち合わせ時間 ≧ setTimeoutメソッドで指定するタイムアウト時間」の場合 待ち合わせ型フロー起動API(sendMessageSyncメソッド)の受信タイムアウトは、“イベントデータ待ち合わせ時間”に復帰しま す。 例)“イベントデータ待ち合わせ時間”が“40秒”、setTimeoutメソッドで指定するタイムアウト時間が“10秒”の場合は40秒で復帰 します。(実際には、メッセージ送信にかかった時間が加算されます) - 「イベントデータ待ち合わせ時間 < setTimeoutメソッドで指定するタイムアウト時間」の場合 待ち合わせ型フロー起動API(sendMessageSyncメソッド)の受信タイムアウトは、「イベントデータの待ち合わせ時間×チェック 回数」後に復帰します。 例)“イベントデータ待ち合わせ時間”が“40秒”、setTimeoutメソッドで指定するタイムアウト時間が“50秒”の場合は80秒(40秒 * 2回)で復帰します。(実際には、メッセージ送信にかかった時間が加算されます) ・ setTimeoutメソッドで指定するタイムアウト時間には、10秒以上の値を設定することを推奨します。 ・ 5秒より小さい値を設定する場合は、essetcnfコマンドによりイベントサービスの構成情報の異常検出の間隔の設定値にも同じ値を 設定してください。ただし、5秒(省略値)より小さい値を設定した場合、イベントチャネルのプロセスの負荷が上がり、性能が劣化す る可能性があります。 ・ CORBAサービス動作環境のクライアントタイムアウト時間より小さい値を指定してください(値の差が20秒以上になるように指定す ることを推奨します)。 ・ 待ち合わせ型フロー起動API(sendMessageSyncメソッド)で受信待ちタイムアウトによりnullが返却された場合に自動採番されたコ リレーションIDを取得する方法については、“Interstage Business Application Server リファレンス”の“アプリケーションインタフェー ス”で“sendMessageSyncメソッド”を参照してください。 - 85 - ◆タイムアウト監視範囲 処理結果のメッセージの受信待ちタイムアウト(setTimeoutメソッドの設定値)とフローのタイムアウト(setMessageTimeoutメソッドの設定 値)の両方を指定する場合は、以下の関係になるようにタイムアウト値を設定してください。 ・ setTimeoutメソッドの設定値 > setMessageTimeoutメソッドの設定値 処理結果のメッセージの受信待ちタイムアウト値がフローのタイムアウト値より小さい場合、フローのタイムアウトが発生する前に処理結 果のメッセージの受信待ちタイムアウトが発生することになり、待ち合わせ型フロー起動API(sendMessageSyncメソッド)でフローのタイ ムアウトにより業務が終了したことを示す処理結果のメッセージを獲得することができなくなります。 フローのタイムアウトの判定は、“■フローのタイムアウト”で示すように業務処理実行アプリケーションの呼び出し前と呼び出し後に行 われます。この契機以外ではフローのタイムアウトの判定を行わないため、設定したフローのタイムアウト値で正確にフローのタイムア ウトが発生しない場合があります。そのため、フローのタイムアウトの処理結果のメッセージを業務処理開始アプリケーションへ通知す るまでには若干のタイムラグがあることを考慮し、setTimeoutメソッドの設定値はフローのタイムアウトの設定値に業務処理実行アプリ ケーションの想定される最大処理時間および若干の余裕値を加えた時間を設定してください。 ■結果受信キューに格納するメッセージの有効期間 非同期アプリケーション連携実行基盤では、フロー定義単位に結果受信キューに格納するメッセージの有効期間を設定することがで きます。 結果受信キューにメッセージが滞留し、設定した有効期間を超えた場合、メッセージは自動的に削除されます。 ◆設定項目 結果受信キューに格納するメッセージの有効期間の設定項目を以下に示します。 設定項目 説明 結果受信キューに格納するメッ セージの有効期間 結果受信キューに格納するメッセージの有効期間を入 力します。 0を指定した場合、有効期間は無制限となります。 - 86 - 上段:省略値 下段:設定範囲 0(無制限) 0~2147483647(秒) 設定の詳細については、“Interstage Business Application Server アプリケーション開発ガイド”の“終了”を参照してください。 メッセージが結果受信キューに格納されてから、設定した結果受信キューに格納するメッセージの有効期間を超過した場合は、メッ セージは結果受信キューから削除されます。 ■アクティビティの処理時間 アクティビティの処理時間は、以下の時間の総和です。 ・ 非同期アプリケーション連携実行基盤がメッセージを受信してからアプリケーションを呼び出すまでの時間 ・ アプリケーションが業務処理を実行する時間 ・ アプリケーションの業務処理が終了してから非同期アプリケーション連携実行基盤が次のアクティビティにメッセージを送信完了す るまでの時間 ■メッセージの滞留時間 メッセージの滞留時間は、業務処理実行アプリケーションの処理の遅延または業務処理実行アプリケーションに対応するIJServerが停 止しているなどの理由により、業務処理実行アプリケーションの受信キューにメッセージが処理されず滞留している時間です。 7.1.2 Interstage Application Serverおよびデータベース製品のタイマ監視 Interstage Application Serverおよびデータベース製品のタイマ監視および関連する処理時間には以下の項目があります。設定可能な タイムアウトの値とその振舞いについて説明します。 ・ CORBAサービスのタイムアウト(period_receive_timeout) ・ トランザクションサービス(OTS、JTS)使用時のタイムアウト値 ・ イベントチャネル(キュー)のタイムアウト値 ・ メッセージのライフタイム値 ・ Symfoware使用時のタイムアウト値 Interstage Application Serverのタイマ監視の詳細は、本製品に同梱の“Interstage Application Server OLTPサーバ運用ガイド”を参照 してください。また、データベース製品のタイマ監視の詳細は、各データベース製品が提供するマニュアルを参照してください。 ■CORBAサービスのタイムアウト(period_receive_timeout) CORBAサービスのタイムアウトは、クライアントにおける、リクエスト送信(サーバメソッド発行)から返信までの待機時間です。 サーバメソッドからの返信がないままこの時間を経過すると、クライアントアプリケーションにタイムアウトが通知されます。 非同期アプリケーション連携実行基盤では、使用するイベントチャネルは、CORBAサービス上で動作しているために本タイムアウト (period_receive_timeout)が、Interstage Application Serverに関するタイムアウトの基底値となります。 ◆設定箇所 Interstage管理コンソールの[Interstage Application Server] > [システム] > [環境設定]タブを選択した後、[CORBAサービス詳細設定] の設定項目に設定します。 - 87 - ◆設定項目 以下に設定項目を示します。 設定項目 説明 上段:省略値 下段:設定範囲 設定方法 クライアントタイムアウ ト時間 (period_receive_time out) CORBAクライアントアプリ ケーションのリクエスト送信 から返信までの待機時間で す。この時間を超えてもサー バからの返信がない場合、 CORBAクライアントアプリ ケーションにタイムアウトが 通知されます。値は5秒単位 に設定され、端数は切り捨 てられます。 0を指定した場合、サーバか らの返信が来るまで復帰し ません。 360(秒) 0~100000000(秒) Interstage管理コンソール、またはCORBAサービスの 動作環境ファイルで指定します。 定義ファイルは、以下に格納されています。 /etc/opt/FSUNod/config /etc/opt/FJSVod/config [Interstageのインストールディレクトリ]\ODWIN\etc \config 定義例: period_receive_timeout = 72 ■イベントチャネル(キュー)のタイムアウト値 キューとして使用されるイベントチャネルのタイムアウトについては、メッセージの待ち合わせ時間とローカルトランザクションで使用可 能な実行時間について設定ができます。 ◆設定箇所 イベントチャネル共通の動作を設定する場合は、Interstage管理コンソールの以下のどちらかの箇所で設定します。 ・ [Interstage Application Server] > [システム] > [リソース] > [JMS] > [構成情報]タブを選択した後、[イベントチャネル共通動作環 境]の設定項目に設定 ・ [Interstage Application Server] > [システム] > [サービス] > [イベントサービス] > [構成情報]タブを選択した後、[イベントチャネル 共通動作環境]の設定項目に設定 イベントチャネルごとの動作を設定する場合は、Interstage管理コンソールの以下のどちらかの箇所で設定します。 ・ [Interstage Application Server] > [システム] > [リソース] > [JMS] > [イベントチャネル] > “グループ名::チャネル名” > [環境設定] タブを選択した後、[イベントチャネル環境情報]の設定項目に設定 ・ [Interstage Application Server] > [システム] > [サービス] > [イベントサービス] > [イベントチャネル] > “グループ名::チャネル名” > [環境設定]タブを選択した後、[イベントチャネル環境情報]の設定項目に設定 定義項目の詳細は、Interstage管理コンソールのヘルプを参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 イベントデータ待 ち合わせ時間 (Mixedモデル) イベントデータの待ち合わせ時間(秒)を 入力します。CORBAサービス動作環境 のクライアントタイムアウト時間より小さい 値を指定してください(値の差が20秒以 上になるように指定することを推奨しま す)。なお、“0”を指定した場合、CORBA サービス動作環境のクライアントタイムア ウト時間の値に依存します。 上段:省略値 下段:設定範囲 40(秒) 0~1000000(秒) - 88 - 設定方法 Interstage管理コンソール、または essetcnfchnlコマンド(イベントチャ ネルの動作環境の参照と設定) か、essetcnfコマンド(イベントサー ビスの構成情報の管理)の、wtime オプション(Mixedモデルの イベントデータの待ち合わせ時 間) 設定項目 説明 ローカルトランザ クションのタイム アウト時間 ローカルトランザクションのタイムアウト時 間(秒)を入力します。 上段:省略値 下段:設定範囲 300(秒) 1~1000000(秒) 設定方法 Interstage管理コンソール、または essetcnfchnlコマンド(イベントチャ ネルの動作環境の参照と設定) か、essetcnfコマンド(イベントサー ビスの構成情報の管理)の、ltrntimeオプション(ローカルトラン ザクションのタイムアウト時間) ■メッセージのライフタイム値 イベントサービスの環境情報のイベントデータ生存時間を設定することにより、キューに格納するメッセージのライフタイムを設定するこ とができます。 ◆設定箇所 イベントチャネル共通の動作を設定する場合は、Interstage管理コンソールの以下のどちらかの箇所で設定します。 ・ [Interstage Application Server] > [システム] > [リソース] > [JMS] > [構成情報]タブを選択した後、[イベントチャネル共通動作環 境]の設定項目に設定 ・ [Interstage Application Server] > [システム] > [サービス] > [イベントサービス] > [構成情報]タブを選択した後、[イベントチャネル 共通動作環境]の設定項目に設定 イベントチャネルごとの動作を設定する場合は、Interstage管理コンソールの以下のどちらかの箇所で設定します。 ・ [Interstage Application Server] > [システム] > [リソース] > [JMS] > [イベントチャネル] > “グループ名::チャネル名” > [環境設定] タブを選択した後、[イベントチャネル環境情報]の設定項目に設定 ・ [Interstage Application Server] > [システム] > [サービス] > [イベントサービス] > [イベントチャネル] > “グループ名::チャネル名” > [環境設定]タブを選択した後、[イベントチャネル環境情報]の設定項目に設定 定義項目の詳細は、Interstage管理コンソールのヘルプを参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 上段:省略値 下段:設定範囲 揮発運用時のイベン トデータ生存時間 揮発型のイベントチャネルに蓄積した イベントデータの生存時間を入力しま す。 0(無制限) 0~1000000(秒) 0を指定してください。 不揮発運用時のイベ ントデータ生存時間 不揮発型のイベントチャネルに蓄積 したイベントデータの生存時間を入力 します。 0(無制限) 0~2000000000(秒) 0を指定してください。 - 89 - 非同期アプリケーション連携実行 基盤で推奨する設定値 アクティビティに関連付けられたキュー内に滞留したメッセージの生存期間が、設定された「イベントデータ生存時間」値を超えた場 合、メッセージは削除されます。 メッセージが削除された場合、イベントサービスのログが出力されます。 ■Symfoware使用時のタイムアウト値(Javaの場合) Symfowareデータベースとの接続中のタイムアウトについては、トランザクションで使用可能な実行時間とサーバからのデータ受信待 ち時間を設定できます。 詳細は、“Symfoware Server アプリケーション開発ガイド(JDBCドライバ編)”および“Symfoware Server セットアップガイド”を参照してく ださい。 ◆設定箇所 設定は、SymfowareのJDBCデータソース登録ツールを使用します。[JDBCデータソース オプション設定]画面から[その他パラメタ]に 設定項目を設定します。 JDBCデータソース登録ツールの詳細は、“Symfoware Server アプリケーション開発ガイド(JDBCドライバ編)”を参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 最大トランザクション実行時 間 (CLI_TRAN_TIME_LIMIT) 1つのトランザクションで 使用可能な時間を指定 します。単位は秒です。 0を指定すると無制限に なります。指定時間を超 過した場合には、トラン ザクションをロールバッ クして、接続中のコネク ションを切断します。 省略値 設定範囲 0(無制限) 0~32767(秒) 設定方法 ctuneparam='CLI_TRAN_TIME_LIMIT = (最大トラ ンザクション実行時間)’ 定義例: ctuneparam='CLI_TRAN_TIME_LIMIT=(360)’ Symfowareのシステム用の動作環境ファイルで定義 することで、データベースシステム全体の共通として 設定できます。 Symfowareの利用者制限機能を利用している場合 には本項目で最大のトランザクション実行時間を設 定することができません。“■Symfoware使用時のタ イムアウト値(利用者制御機能を利用している場合)” を参照してタイムアウト値を設定してください。 - 90 - 設定項目 待ち時間 (CLI_WAIT_TIME) 説明 サーバからのデータ受 信の待ち時間を指定し ます。 単位は秒です。 このパラメタで指定され た時間内に、サーバか らのデータが受信できな かった場合、実行中の SQL文はエラーとなり、 コネクションは切断され ます。 0を指定した場合、デー タが受信できるまで待ち ます。 省略値 設定範囲 0(無制限) 0~32767(秒) 設定方法 ctuneparam='CLI_WAIT_TIME = (待ち時間)’ 定義例: ctuneparam='CLI_WAIT_TIME = (360)’ ■Symfoware使用時のタイムアウト値(COBOLの場合) Symfowareデータベースとの接続中のタイムアウトについては、トランザクションで使用可能な実行時間とサーバからのデータ受信待 ち時間を設定できます。 詳細は、“Symfoware Server アプリケーション開発ガイド(埋め込みSQL編)”および“Symfoware Server セットアップガイド”を参照して ください。 ◆設定箇所 クライアント用の動作環境ファイルに指定します。クライアント用の動作環境ファイルの作成方法については、“Interstage Business Application Server セットアップガイド”に記載している“非同期アプリケーション連携実行基盤編”の“クライアント用の動作環境ファイ ルの作成(Symfowareの場合)”を参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 最大トランザクション実行時 間 (TRAN_TIME_LIMIT) 1つのトランザクションで 使用可能な時間を指定 します。単位は秒です。 0を指定すると無制限に なります。指定時間を超 過した場合には、トラン ザクションをロールバッ クして、接続中のコネク ションを切断します。 省略値 設定範囲 0(無制限) 0~32767(秒) 設定方法 TRAN_TIME_LIMIT=(最大トランザクション実行時 間) 定義例: TRAN_TIME_LIMIT=(360) Symfowareのシステム用の動作環境ファイルで定義 することで、データベースシステム全体の共通として 設定できます。 Symfowareの利用者制限機能を利用している場合 には、本項目で最大のトランザクション実行時間を設 定することができません。“■Symfoware使用時のタ イムアウト値(利用者制御機能を利用している場合)” を参照してタイムアウト値を設定してください。 - 91 - 設定項目 待ち時間 (WAIT_TIME) 説明 サーバからのデータ受 信の待ち時間を指定し ます。 単位は秒です。 このパラメタで指定され た時間内に、サーバか らのデータが受信できな かった場合、実行中の SQL文はエラーとなり、 コネクションは切断され ます。 0を指定した場合、デー タが受信できるまで待ち ます。 省略値 設定範囲 0(無制限) 0~32767(秒) 設定方法 WAIT_TIME=(待ち時間) 定義例: WAIT_TIME=(360) ■Symfoware使用時のタイムアウト値(利用者制御機能を利用している場合) Symfowareデータベースとの接続中のタイムアウトについては、トランザクションで使用可能な実行時間と、Symfowareデータベースが サーバアプリケーションから次の処理依頼を待つ時間を設定できます。詳細は、“Symfoware Server セキュリティ運用ガイド”を参照し てください。 ◆設定箇所 SET SYSTEM PARAMETER文、CREATE USER文またはALTER USER文をrdbddlexコマンドに指定することにより設定することが可 能です。SQL文およびrdbddlexコマンドの詳細については、“Symfoware Server SQLリファレンス”および“Symfoware Server コマンドリ ファレンス”を参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 省略値 設定範囲 最大トランザクション実行時 間 (MAX_TRAN_TIME) 1つのトランザクションで 使用可能な時間を指定 します。単位は秒です。 0を指定すると無制限に なります。指定時間を超 過した場合には、トラン ザクションをロールバック して、接続中のコネクショ ンを切断します。 300 0~32767(秒) 無応答時間 (MAX_WAIT_TIME) ある特定の利用者がコ ネクションを占有すること によって、他の利用者の アプリケーションの実行 を阻害する可能性があ ります。 0(無制限) 0~32767(分) 設定方法 MAX_TRAN_TIME=最大トランザクション実行時間 定義例: SET SYSTEM PARAMETER MAX_TRAN_TIME=360; MAX_WAIT_TIME=無応答時間 定義例: SET SYSTEM PARAMETER MAX_WAIT_TIME=0; これに対して、次の処理 依頼を待つ最大時間を 制限できるようにします。 これにより、一定時間 待っても処理依頼がな 無応答時間に値を設定した場合、コネクションプーリ ング機能によりプーリングされているコネクションが設 定値に従い切断されます。コネクション再接続機能を 利用しない場合かつコネクションが切断されている場 - 92 - 設定項目 説明 省略値 設定範囲 ければ、強制的に切断 します。 設定方法 合には、サーバアプリケーションの呼び出し契機もしく はデータベースの操作時にエラーとなりますので、無 制限(0)を指定するか、時間を設定する場合にはコネ クションの再接続機能を利用します。 ■Oracle使用時のタイムアウト値 Oracleデータベースとの接続中のタイムアウトについては、コネクションの最大接続時間およびコネクションの無応答時間を設定できま す。詳細は、Oracleのマニュアルを参照してください。 ◆設定箇所 デフォルトのプロファイルを変更するか、データベースのユーザごとにプロファイルを作成することで設定することが可能です。プロファ イルの詳細や設定方法については、Oracleのマニュアルを参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 省略値 設定範囲 最大接続時間 (CONNECT_TIME) コネクションの最大接続 時間を指定します。最大 接続時間には1つのトラ ンザクションで使用する 時間よりも大きな値を指 定します。 ※ 無応答時間 (IDLE_TIME) 次の処理依頼を待つ最 大時間を制限できるよう にします。一定時間待っ ても処理依頼がなけれ ば、強制的に切断しま す。 ※ 設定方法 CONNECT_TIME 最大接続時間 定義例: ALTER PROFILE default LIMIT CONNECT_TIME UNLIMITED; IDLE_TIME 無応答時間 定義例: ALTER PROFILE default LIMIT IDLE_TIME UNLIMITED; ※省略値、設定範囲についてはOracleのマニュアルを参照してください。 最大接続時間または無応答時間に値を設定した場合、コネクションプーリング機能によりプーリングされているコネクションが設定値に 従い切断されます。コネクション再接続機能を利用しない場合かつコネクションが切断されている場合には、サーバアプリケーションの 呼び出し契機もしくはデータベースの操作時にエラーとなりますので、無制限(UNLIMITED)を指定するか、時間を設定する場合には コネクションの再接続機能を利用します。 7.2 タイムアウト値の関係 非同期アプリケーション連携実行基盤を利用する場合、各タイムアウト時間は以下に示す関係となるようにパラメタの設定を行ってくだ さい。 7.2.1 アプリケーション連携フローに関するタイムアウト フローのタイムアウト時間 > Σ(メッセージの滞留時間 + アクティビティの処理時間) + 余裕値 - 93 - 余裕値には、各アクティビティでの若干のタイムラグに配慮し、Σ(メッセージの滞留時間 + アクティビティの処理時間)×0.2程度の値 を設定してください。 7.2.2 業務処理開始アプリケーションに関するタイムアウト 業務処理開始アプリケーションでは、待ち合わせ型フロー起動API(sendMessageSyncメソッド)または結果受信API(receiveMessageメ ソッド)を実行する場合、各監視時間の関係を以下のとおりに設定してください。 ・ 待ち合わせ型フロー起動API(sendMessageSyncメソッド)によりフローの処理結果を同期待ち合わせする場合 処理結果のメッセージの受信待ちタイムアウト時間 > フローのタイムアウト時間 + 業務処理実行 アプリケーションの想定される最大処理時間 + 余裕値 フローのタイムアウトの判定は、“■フローのタイムアウト”で示すように業務処理実行アプリケーションの呼び出し前と呼び出し後に 行われます。この契機以外ではフローのタイムアウトの判定を行わないため、設定したフローのタイムアウト値で正確にフローのタ イムアウトが発生しない場合があります。そのため、フローのタイムアウトの処理結果のメッセージを業務処理開始アプリケーション へ通知するまでには若干のタイムラグがあることを考慮し、処理結果のメッセージの受信待ちタイムアウト時間の設定値は、フロー のタイムアウト時間の設定値に、業務処理実行アプリケーションの想定される最大処理時間および若干の余裕値を加えた時間を 設定してください。 ・ 結果受信API(receiveMessageメソッド)によりフローの処理結果を非同期に参照する場合 イベントデータ生存時間 > 結果受信キューに格納するメッセージの有効期間 イベントデータ生存時間には、結果受信キューに格納するメッセージの有効期間より大きな値を指定しない場合、フロー定義で指 定した結果受信キューに格納するメッセージの有効期間が経過する前にメッセージが削除されます。 7.2.3 業務処理実行アプリケーションに関するタイムアウト 業務処理実行アプリケーションでは、Interstage Application Serverおよびデータベースに関する各監視時間の関係を、以下のとおりに 設定してください。 なお、各設定項目については、“7.1.2 Interstage Application Serverおよびデータベース製品のタイマ監視”を参照してください。 - 94 - 7.2.4 各タイムアウト値の関係 フローのタイムアウト時間、処理結果のメッセージの受信待ちタイムアウト時間およびトランザクションのタイムアウト時間の関係は、以 下のようになります。 - 95 - 第3部 同期アプリケーション連携実行基盤編 第8章 システム・チューニング...........................................................................................................................97 第9章 パフォーマンス・チューニング..................................................................................................................98 第10章 タイムアウト値のチューニング.............................................................................................................100 - 96 - 第8章 システム・チューニング 本章では、システムのチューニングについて説明します。 8.1 CORBAワークユニットのチューニング CORBAワークユニットのチューニングについては、“Interstage Application Server OLTPサーバ運用ガイド”、“Interstage Application Server チューニングガイド”を参照してください。 8.1.1 同期アプリケーション連携実行基盤-同時処理数の設定 同期アプリケーション連携実行基盤をチューニングするときに考慮するポイントを以下に示します。 ・ 同時処理数 ■同時処理数 同時処理数は、プロセス数と、1プロセスあたりのスレッド数で決まります。 同時処理数 = プロセス数 × 1プロセスあたりのスレッド数 同期アプリケーション連携実行基盤で同時に処理できるクライアントのリクエスト数は、同時処理数で決まります。たとえば、同時処理数を 16に設定すると、16処理を同時に処理できます。クライアントからのリクエストが、処理できるリクエスト数を超えた場合は、キューイング されます。 同時処理数を決定するにあたって、プロセス数を増やすか、1プロセスあたりのスレッド数を増やすかは、業務アプリケーションの内容 や、利用可能なハードウェアリソースによって決めます。 以下にそれぞれの特徴を記載します。 実行多重度項目 特徴 スレッド数 メモリなどのリソース消費を少なくし、かつ、多重性能を向上させたい場合に設定します。ただし、同 一スレッド内の処理が異常終了した場合は、同一プロセス内で動作中の要求に対する処理も異常と なります。 また、スレッド数を膨大な数に設定した場合は、プロセス内のヒープサイズが膨大になり、メモリ不足 になる可能性があります。このため、スレッド数の決定については、実機での測定(性能、メモリなど) を実施し、決定します。 プロセス数 メモリなどのリソースはプロセスの量に応じて増加するため、プロセスが膨大な数になると、アプリケー ションが異常終了しやすくなります。プロセスを分けることで、他のプロセス上で動作するアプリケー ション異常終了した場合でも、影響を受けないようにすることができます。 プロセス数と、1プロセスあたりのスレッド数は、システム構築シートにより定義するか、直接、CORBAワークユニットの定義ファイルとCORBA アプリケーション情報定義ファイルにより定義します。 業務アプリケーションが、スレッドアンセーフなシステム関数や他製品を利用している場合には、スレッドを使用することができません。 この場合は、同期アプリケーション連携実行基盤のプロセスモードを利用してください。このとき、同時処理数はプロセス数と同じ数値 になります。 - 97 - 第9章 パフォーマンス・チューニング 本章では、システムの性能のチューニングについて説明します。 9.1 チューニング計画 システムの性能のチューニング計画について説明します。 9.1.1 問題の整理と課題の設定 システムの性能のチューニングを行うために、問題の整理と課題の設定を行います。 ■問題の整理 システムの性能のチューニングを行うためには、まず問題を整理する必要があります。 たとえば、問題の整理のポイントとして以下のような点が挙げられます。 ・ 何が問題なのか ・ 問題となる時間や時期はいつか ・ 問題に対して影響を受ける人は誰か ・ 問題となるサーバやアプリケーションはどれか ・ 問題が発生した場合、業務に対する影響度はどれくらいか ■課題の設定 問題を整理した後に、課題の設定を行います。 課題の設定の際には、具体的にシステムのどの部分をどのようにするのか決定します。 たとえば、課題として以下のような点が挙げられます。 ・ サーバの資源(CPU/メモリ等)の増強 ・ システム構成の変更(サーバの分散化) ・ アプリケーション処理スレッドの多重化 9.1.2 目標値とスケジュールの設定 課題を設定した後に、目標値とスケジュールの設定を行います。 目標値は、アプリケーションの処理時間やサーバの資源の消費量を具体的に設定します。 スケジュールは、問題の業務に対する影響度を考慮しながら設定します。 9.1.3 チューニングの実施手順 チューニングは、以下の手順を繰り返し行うことで実施されます。 1. 問題の整理を行い、ボトルネックの特定および課題の設定を行います。 2. 性能測定を行います。 性能測定した結果を解析し、処置を検討します。 9.2 ボトルネックの特定 同時処理数のボトルネックを特定する方法について説明します。 - 98 - 9.2.1 同期アプリケーション連携実行基盤-同時処理数のボトルネック(C言語または COBOL) サーバアプリケーションの同時処理数が、CORBAサービスの動作環境に定義された値を超えている場合、想定した多重度で動作せ ず、ボトルネックの原因となることがあります。 以下の関係になるように、CORBAサービスの動作環境ファイルを設定してください。 同時処理数 < max_exec_instance 同時処理数 < max_IIOP_resp_requests 個々のパラメタの詳細については、“Interstage Application Server チューニングガイド”の“config”を参照してください。 9.3 性能測定とチューニング 同時処理数の性能測定とチューニングについて説明します。 9.3.1 同時処理数のチューニング ■同期アプリケーション連携実行基盤-同時処理数の設定(C言語またはCOBOL) 同時処理数は、メッセージ処理の実行多重度です。同期アプリケーション連携実行基盤で同時に処理できるメッセージの処理数は同 時処理数で決まります。 同時処理数は、プロセス数と、1プロセスあたりのスレッド数で決まります。 同時処理数 = プロセス数 × 1プロセスあたりのスレッド数 システム構築シートを利用する場合には、[ワークユニット設定とアプリケーション情報の入力]シートで、プロセス数と、1プロセスあたり のスレッド数を指定します。 定義ファイルを直接編集する場合には、プロセス数はCORBAワークユニット定義ファイルの「Concurrency」ステートメント、スレッド数は CORBAアプリケーション情報定義ファイルのthr_conc_maximumで指定し、登録します。 本設定で同時処理数を増やすことができますが、使用資源(CPU使用率、メモリ量など)の増加により、効果が得られない場合がありま す。環境に合わせて試験運用を行い、調整後に設定してください。 - 99 - 第10章 タイムアウト値のチューニング アプリケーション連携実行基盤のシステムにおいて、設定可能なタイムアウトの値とその振る舞いについて、以下に説明します。 10.1 同期アプリケーション連携実行基盤のタイムアウト設定 同期アプリケーション連携実行基盤が動作する、CORBAサービスのタイムアウト設定について説明します。 10.1.1 タイムアウト時間の種類 同期アプリケーション連携実行基盤においては、CORBAワークユニットの最大処理時間とCORBAサービスのタイマ監視機能を利用 してタイムアウト時間を設定することができます。 ・ ■CORBAサービスのタイムアウト設定 ・ ■CORBAワークユニットのサーバアプリケーション最大処理時間 ■CORBAサービスのタイムアウト設定 CORBAサービスのタイムアウト時間は、CORBAサービスの動作環境ファイル(config)で設定します。 同期アプリケーション連携実行基盤においては、CORBAサービスの以下のパラメタを設定することで、クライアントのタイムアウト時間 を設定します。 period_receive_timeout クライアントにおける、リクエスト送信から返信までの待機時間。 サーバアプリケーションからの返信がないまま、この時間を経過すると、クライアントアプリケーションにタイムアウトが通知されます。 パラメタの初期値などの詳細については、“Interstage Application Server チューニングガイド”の“config”を参照してください。 ■CORBAワークユニットのサーバアプリケーション最大処理時間 アプリケーションの最大処理時間は、ワークユニット定義の“Maximum Processing Time”で設定します。 “Maximum Processing Time”の詳細については、“Interstage Application Server OLTPサーバ運用ガイド”を参照してください。 10.1.2 タイムアウト時間の設定の目安 ■サーバ側の設定 リクエストの処理時間がアプリケーションの最大処理時間を超えると、プロセスが停止されるため、アプリケーションの最大処理時間を 以下の式が成立するように設定する必要があります。 Maximum Processing Time > ( サーバアプリケーションの処理時間 + リトライ間隔(注) ) × ( リトライ最大回数(注) + 1 ) 注) リトライ最大回数、リトライ間隔はアプリケーション動作定義ファイルで指定します。 リトライ最大回数およびリトライ間隔の詳細については、“Interstage Business Application Server リファレンス”の“アプリケーション動作 定義ファイルリファレンス”を参照してください。 サーバアプリケーション上から、C言語用のクライアントAPIを使用して別のサーバアプリケーションを呼び出す場合は、以下の式が成 立するように設定する必要があります。 呼出し側のMaximum Processing Time > 呼出される側のMaximum Processing Time - 100 - ■クライアント側の設定 クライアントアプリケーション側で不当なタイムアウトを発生させないために、period_receive_timeout(リクエスト返信までの待機時間)を 以下の式が成立するように設定する必要があります。 period_receive_timeout > キューイング時間(実行待ち時間) + Maximum Processing Time (注) 注) “Maximum Processing Time”は、サーバ側で設定したアプリケーションの最大処理時間です。 10.2 データベース製品のタイムアウト設定 同期アプリケーション連携実行基盤でデータベースアクセス管理機能を利用する場合におけるデータベース製品のタイムアウト設定 について説明します。 10.2.1 タイムアウト時間の種類 データベース製品によって、設定できるタイムアウト時間の種類が異なります。 ・ Symfoware使用時のタイムアウト値 ・ Symfoware使用時のタイムアウト値(利用者制限機能を利用している場合) ・ Oracle使用時のタイムアウト値 ■Symfoware使用時のタイムアウト値 Symfowareデータベースとの接続中のタイムアウトについては、トランザクションで使用可能な実行時間とサーバからのデータ受信待 ち時間を設定できます。 詳細は、“Symfoware Server アプリケーション開発ガイド(埋め込みSQL編)”および“Symfoware Server セットアップガイド”を参照して ください。 ◆設定箇所 クライアント用の動作環境ファイルに指定します。クライアント用の動作環境ファイルの作成方法については、“Interstage Business Application Server セットアップガイド”に記載している“非同期アプリケーション連携実行基盤編”の“クライアント用の動作環境ファイ ルの作成(Symfowareの場合)”を参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 最大トランザクション実行時 間 (TRAN_TIME_LIMIT) 1つのトランザクションで 使用可能な時間を指定 します。単位は秒です。 0を指定すると無制限に なります。指定時間を超 過した場合には、トラン ザクションをロールバッ クして、接続中のコネク ションを切断します。 省略値 設定範囲 0(無制限) 0~32767(秒) 設定方法 TRAN_TIME_LIMIT=(最大トランザクション実行時 間) 定義例: TRAN_TIME_LIMIT=(360) Symfowareのシステム用の動作環境ファイルで定義 することで、データベースシステム全体の共通として 設定できます。 Symfowareの利用者制限機能を利用している場合 には、本項目で最大のトランザクション実行時間を設 定することができません。“Symfoware使用時のタイ - 101 - 設定項目 説明 省略値 設定範囲 設定方法 ムアウト値(利用者制御機能を利用している場合)”を 参照してタイムアウト値を設定してください。 待ち時間 (WAIT_TIME) サーバからのデータ受 信の待ち時間を指定し ます。 単位は秒です。 このパラメタで指定され た時間内に、サーバか らのデータが受信できな かった場合、実行中の SQL文はエラーとなり、 コネクションは切断され ます。 0を指定した場合、デー タが受信できるまで待ち ます。 0(無制限) 0~32767(秒) WAIT_TIME=(待ち時間) 定義例: WAIT_TIME=(360) ■Symfoware使用時のタイムアウト値(利用者制御機能を利用している場合) Symfowareデータベースとの接続中のタイムアウトについては、トランザクションで使用可能な実行時間と、Symfowareデータベースが サーバアプリケーションから次の処理依頼を待つ時間を設定できます。詳細は、“Symfoware Server セキュリティ運用ガイド”を参照し てください。 ◆設定箇所 SET SYSTEM PARAMETER文、CREATE USER文またはALTER USER文をrdbddlexコマンドに指定することにより設定することが可 能です。SQL文およびrdbddlexコマンドの詳細については、“Symfoware Server SQLリファレンス”および“Symfoware Server コマンドリ ファレンス”を参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 説明 省略値 設定範囲 最大トランザクション実行時 間 (MAX_TRAN_TIME) 1つのトランザクションで 使用可能な時間を指定 します。単位は秒です。 0を指定すると無制限に なります。指定時間を超 過した場合には、トラン ザクションをロールバック して、接続中のコネクショ ンを切断します。 300 0~32767(秒) 無応答時間 (MAX_WAIT_TIME) ある特定の利用者がコ ネクションを占有すること によって、他の利用者の アプリケーションの実行 を阻害する可能性があ ります。 0(無制限) 0~32767(分) 設定方法 MAX_TRAN_TIME=最大トランザクション実行時間 定義例: SET SYSTEM PARAMETER MAX_TRAN_TIME=360; MAX_WAIT_TIME=無応答時間 定義例: SET SYSTEM PARAMETER MAX_WAIT_TIME=0; これに対して、次の処理 依頼を待つ最大時間を 制限できるようにします。 これにより、一定時間 - 102 - 設定項目 説明 省略値 設定範囲 設定方法 待っても処理依頼がな ければ、強制的に切断 します。 ■Oracle使用時のタイムアウト値 Oracleデータベースとの接続中のタイムアウトについては、コネクションの最大接続時間およびコネクションの無応答時間を設定できま す。詳細は、Oracleのマニュアルを参照してください。 ◆設定箇所 デフォルトのプロファイルを変更するか、データベースのユーザごとにプロファイルを作成することで設定することが可能です。プロファ イルの詳細や設定方法については、Oracleのマニュアルを参照してください。 ◆設定項目 以下に設定項目の一覧を示します。 設定項目 最大接続時間 (CONNECT_TIME) 無応答時間 (IDLE_TIME) 説明 省略値 設定範囲 コネクションの最大接続 時間を指定します。最大 接続時間には最大トラン ザクション実行時間より も大きな値を指定しま す。 (注) 次の処理依頼を待つ最 大時間を制限できるよう にします。一定時間待っ ても処理依頼がなけれ ば、強制的に切断しま す。 (注) 設定方法 CONNECT_TIME 最大接続時間 定義例: ALTER PROFILE default LIMIT CONNECT_TIME UNLIMITED; IDLE_TIME 無応答時間 定義例: ALTER PROFILE default LIMIT IDLE_TIME UNLIMITED; 注)省略値、設定範囲についてはOracleのマニュアルを参照してください。 10.2.2 タイムアウト時間の設定の目安 タイムアウト時間の設定の目安について、説明します。 ■最大トランザクション実行時間 リクエストの処理時間が最大トランザクション実行時間を超えると、データベースとのコネクションが切断されるため、最大トランザクショ ン実行時間を以下の式が成立するように設定する必要があります。 最大トランザクション実行時間> ( サーバアプリケーションの処理時間 + リトライ間隔(注) ) × ( リトライ最大回数(注) + 1 ) 注) リトライ最大回数、リトライ間隔はアプリケーション動作定義ファイルで指定します。 リトライ最大回数およびリトライ間隔の詳細については、“Interstage Business Application Server リファレンス”の“アプリケーション動作 定義ファイルリファレンス”を参照してください。 - 103 - ■待ち時間 データベースからの応答が待ち時間を超えた場合、データベースとのコネクションが切断されます。データベースから受信するデータ 量や、トランザクションの排他待ち時間を考慮して値を設定します。 ■無応答時間 サーバアプリケーションが無応答時間を超えてデータベースの操作を行わなかった場合に、データベースとのコネクションが切断され ます。無制限にするか、サーバアプリケーションの処理時間+リトライ間隔以上の値を指定します。 ■最大接続時間 コネクションの接続時間が最大接続時間を超えた場合に、データベースとのコネクションが切断されます。無制限にするか、最大トラン ザクション実行時間以上の値を設定します。 最大接続時間または無応答時間に値を設定した場合、コネクションプーリング機能によりプーリングされているコネクションについても 設定値に従い切断されます。コネクション再接続機能を利用しない場合かつコネクションが切断されている場合には、サーバアプリケー ションの呼び出し契機もしくはデータベースの操作時にエラーとなりますので、無制限を指定するか、時間を設定する場合にはコネク ションの再接続機能を使用してください。 - 104 -