DBServer 実行&デバッグ

1. DBServerログ

DBServerにて異常が発生した場合は configファイルにて ログHandlerの設定に記述されたパスおよびファイルに情報が出力されます。

1-1. ログ情報

例:

	-------------------------------------------------------------------------------
[2002/05/15 17:37:12]
Log Type        : Error(ContorlRecord + Exception)
Client IP(Pri)   : 192.168.1.35
Client IP(Glo)   : 192.168.1.35
WEB IP           : 
User ID          : null
Server Sub       : test
Server Revision  : 11
Transaction      : tran
Base Server Sub : null
Base Server Tran : null
Message          : jp.ne.mki.wedge.run.db.control.XM_Statement : SQL = INSERT  INTO P_TypeNumberTable ( TypeNumber1,TypeName,PublicDate) VALUES (?,?,?) XM_Statement executeQuery RowCount = 1 ColCount = 3
PG Name(Phy)     : P_TypeTable_Add
PG Name(Log)     : 公開用型番マスタ追加
BR Class Name    : XM_Dlcp
DB Error CD      : 1
DB Status        : 23000
DB Message       : ORA-00001: 一意制約 (TESTAP.P_TYPENUMBERTABLE_PKEY) に反しています。

DB Update Rows   : 1
DB Access Rows   : 0
DB Error Row No  : 1
Exception       : java.sql.SQLException: ORA-00001: 一意制約 (TESTAP.P_TYPENUMBERTABLE_PKEY) に反しています。

StackTrace      : java.sql.SQLException: ORA-00001: 一意制約 (TESTAP.P_TYPENUMBERTABLE_PKEY) に反しています。

	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
	at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
	at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
	at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
	at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
	at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
	at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1900)
	at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
	at jp.ne.mki.wedge.run.db.control.XM_Statement.executeUpdate(XM_Statement.java:864)
	at jp.ne.mki.wedge.run.db.main.XM_DBServer.executeUpdateDBServer(XM_DBServer.java:557)
	at java.lang.reflect.Method.invoke(Native Method)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241)
	at sun.rmi.transport.Transport$1.run(Transport.java:152)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:148)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:465)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:706)
	at java.lang.Thread.run(Thread.java:484)

				

 

2. DBServer実行トレース

ApServerからの要求により、実行された処理をトレースし、関連するデータの内容を出力します。トレースの出力場所は、configファイルにて ログHandlerの設定に記述されたパスおよびファイルになります。 ディフォルトでは common.wdg の"LogPath"に記述された パス直下の「RunDBServer/trace_グローバルIPアドレス」ディレクトリに「呼び出し元サーバパッケージ_呼び出し元トランザクション」のファイル名で出力されます。

DBServerのトレースログは下記のように出力されます。

[2002/05/29 19:53:07]
[SQL]
SELECT Name1,Name2,PublicDate FROM  P_CommodityTable WHERE  TypeNumber1 = ? AND  TypeNumber2 = ? 
[Input Record]
DB Data Class : [Varchar][]
InputRow=3
InputSize=2
[AA][100]
[Output Record]
DB Data Class : [][][Date]
1 : ColumnSize=3
[笠木][6,100mm][2001/07/07]
InputSize=2
[AA][101]
[Output Record]
DB Data Class : [][][Date]
2 : ColumnSize=3
[笠木][6,100mm][2001/07/07]
InputSize=2
[AB][102]
[Output Record]
DB Data Class : [][][Date]
3 : ColumnSize=3
[パネル中骨][5,500mm][2001/07/07]

2-1. 発行SQLの内容

[SQL]
SELECT Name1,Name2,PublicDate FROM  P_CommodityTable WHERE  TypeNumber1 = ? AND  TypeNumber2 = ? 

データベースへ実際に発行されたSQLを表示しています。

2-2. 入力レコードの内容

[Input Record]
DB Data Class : [Varchar][]
InputRow=3

DB Data Classはデータ型に対しDB変換クラスが設定されていた場合、そのDB変換クラス名称を表示します。
InputRowとはApServerより渡された入力データセットのうち、もっともデータ数の多いデータの 個数を表示しています。DBServerはSQL実行時にこのRow値の数だけバインド変数にデータをバインドをします。

2-3. 出力レコードの内容

この項目はバインドがされた回数分表示されます。

InputSize=2
[AA][100]
[Output Record]
DB Data Class : [][][Date]
1 : ColumnSize=3
[笠木][6,100mm][2001/07/07]

まず頭に入出力データセットの数と、バインド変数に使用された入力値が表示されます。
DB Data Classは出力データセットのデータ型に定義されているDB変換クラスの名称が表示されます。
続いて次の行に、このSQLのバインド回数と、出力データセットの数が表示されます。 SQLのバインド回数はバインドが繰り返されるたびに加算されていきます。
最後の行に、SQLの発行結果返ってきた値を表示します。