エラーメッセージだけでは情報が不足している場合、EventLogからアプリケーションの実行状況を確認し、対処してください。
EventLogでは、APIやアプリケーションの所要時間がどれくらいかかるか、API呼出しのシーケンスや、入出力パラメタが正しいかなど、レスポンス性能やエラーの原因を確認することができます。
EventLogの取得方法と、出力内容について説明します。
EventLogの取得には、以下の2種類の方法があります。
アプリケーションの構成ファイルに指定する(推奨)
ConnectionStringプロパティに指定する
上記の指定方法は、データベースの接続先情報の指定方法と同じです。各指定方法の詳細は、“2.1 コネクション”を参照してください。
EventLogは、アプリケーションの性能を改善したり、アプリケーションの異常時に原因を追求したりするために取得します。このため、性能情報やエラーの原因を確認したいときに取得し、問題が解決したあとはログの取得を中断できるように、ログの取得と中断をパラメタで切替えることができます。EventLogの取得と中断を簡単に切替えられるように、EventLogの取得には、アプリケーションの構成ファイルを使用することを推奨します。
また、問題が発生したらいつでもEventLogを取得できるように、EventLogの取得の有無に関わらず、アプリケーションの構成ファイルに、あらかじめ指定しておくことを推奨します。
EventLogの取得には、ConnectionStringプロパティのキーワードを使用します。EventLogのキーワードの詳細は、“付録B 接続文字列に指定可能なキーワード”を参照してください。
EventLogを取得すると、指定した出力先に、コネクション単位に以下のファイル名で、ログが出力されます。
symfosndp_プロセスID_コネクション番号.log
なお、tuneparamキーワードに未指定の実行パラメタは、nullを表示します。
以下に、出力レベル“Debug”の場合の出力例を示します。出力レベルごとの出力情報の詳細は、“B.1 eventlogキーワード”を参照してください。
Begin: 2009-04-10 16:59:00.921 // 開始時刻 Class: SymfowareConnection // クラス名 Method: Open // メソッド名 Input Variables: // 入力パラメタ名 void SymfowareConnection Environment: // 環境情報(SymfowareConnectionクラスのプロパティ情報) ConnectionState = Closed Connection String: ACCESS_PLAN = OFF ARC_FULL = null CAL_ERROR = REJECT CONNECT TIMEOUT = 15 CONNECTIONLIFETIME = 0 CHOOSE_TID_UNION = NO DATA SOURCE = 10.34.186.126 DEFAULT_ACCESS_MODE = READ_WRITE DEFAULT_DSI_TYPE = OBJECT DEFAULT_INDEX_SIZE = null DEFAULT_ISOLATION = DEFAULT DEFAULT_OBJECT_TABLE_SIZE = null DEFAULT_TABLE_SIZE = null DSI_EXPAND_POINT = ON EVENTLOG = (ON,DEBUG) GROUP_COL_COND_MOVE = YES IGNORE_INDEX = NO INACTIVE_INDEX_SCAN = YES INCLUSION_DSI = null INITIAL CATALOG = DB1 ISOLATION_WAIT = WAIT JOIN_ORDER = INSIDE JOIN_RULE = AUTO MAX POOL SIZE = 100 MAX_PARALLEL = null MAX_SCAN_RANGE = null MAX_SQL = 1024 MIN POOL SIZE = 0 MSG_LANG = JAPANESE OPL_BUFFER_SIZE = 8192 PARALLEL_SCAN = NO PASSWORD = ****** POOLING = TRUE PORT = 8003 R_LOCK = null RCV_MODE = RCV ROUTINE_SNAP = OFF SAME_COST_JOIN_ORDER = ORDER SCAN_KEY_ARITHMETIC_RANGE = YES SCAN_KEY_CAST = YES SCHEMA = fnst SERVER_ENV_FILE = null SORT_HASHAREA_SIZE = null SORT_MEM_SIZE = null SQL_LEVEL = SQL2007 SQL_TRACE = OFF SS_RATE = 0.2,0.25,0.5,0.4,0.0001 TEMPORARY_INDEX_SIZE = null TEMPORARY_TABLE_SIZE = null TID_SORT = YES TID_UNION = YES TRAN_SPEC = NONE TRAN_TIME_LIMIT = 0 USER ID = ****** USQL_LOCK = SH WAIT_TIME = 0 WORK_ALLOC_SPACESIZE = 10000,50000 WORK_MEM_SIZE = null WORK_PATH = null Return: void // 戻り値 End: 2009-04-10 16:59:01.593(00:00:00.6718750) // 終了時刻(経過時間) Begin: 2009-04-10 16:59:01.640 // 開始時刻 Class: SymfowareDataAdapter // クラス名 Method: Fill // メソッド名 Input Variables: // 入力パラメタ名 dataSet: System.Data.DataSet srcTable: TESTTBL SymfowareDataAdapter Environment: // 環境情報(SymfowareDataAdapterクラスのプロパティ情報) SelectCommandText = SELECT * FROM SAMPLE1.TESTTBL Row Content: KEY_C = 2 DEC_C = 9999999.999 DAT_C = 2007/04/05 0:00:00 CHA_C = TEST DATA Row Content: KEY_C = 133 DEC_C = 500.001 DAT_C = 2007/04/01 0:00:00 CHA_C = TEST DATA Row Content: KEY_C = 134 DEC_C = 500.001 DAT_C = 2007/04/01 0:00:00 CHA_C = TEST DATA Return: 3 // 戻り値 End: 2009-04-10 16:59:02.46(00:00:00.4062500) // 終了時刻(経過時間) Begin: 2009-04-10 16:59:02.359 // 開始時刻 Class: SymfowareConnection // クラス名 Method: Close // メソッド名 Input Variables: // 入力パラメタ名 void SymfowareConnection Environment: // 環境情報(SymfowareConnectionクラスのプロパティ情報) ConnectionState = Open Return: void // 戻り値 End: 2009-04-10 16:59:02.359(00:00:00) // 終了時刻(経過時間)