Symfoware Serverが異常や内部矛盾を検出すると、エラーメッセージが出力されます。メッセージの内容を元に、異常の内容、原因、対処方法を特定します。
エラーメッセージは、エラーの内容や使用するアプリケーションにより出力先が異なります。エラーの出力状況は、以下の4つに分類できます。
C/COBOL埋込みホストプログラムおよびRDBコマンドの場合
JDBC連携の場合
ODBC連携の場合
.NET Framework連携の場合
なお、エラーメッセージの対処方法については、“付録A エラーメッセージの対処”を参照してください。
C/COBOL埋込みホストプログラムおよびRDBコマンドの場合
C/COBOL埋込みホストプログラム、およびRDBコマンドの場合のエラーメッセージは、以下の箇所に出力されます。
メッセージ種別 | 内容 | 出力先 |
---|---|---|
SQLMSG | SQL文実行時の異常 | アプリケーションプログラムのホスト変数SQLMSGとして出力 |
コマンド標準異常出力 | RDBコマンド実行時の異常 | コマンド標準異常出力として出力 |
メッセージログファイル | Symfoware Serverで発生した異常をロギング |
|
システムログ | OSおよび各種ソフトウェアの異常をロギング |
|
JDBC連携を使用している場合、使用するアプリケーションの形態によりエラーメッセージの出力先が異なります。
形態ごとの出力先を以下に示します。
アプリケーションの形態 | 出力先 |
---|---|
Javaアプリケーション | 標準出力 |
EJB |
|
サーブレット | サーブレットのログファイル |
データベース関連のエラーメッセージを取得するには、アプリケーションでSQLException発生時に以下の記述が必要となります。
種類 | メソッド名 | 備考 |
---|---|---|
SQLSTATE値 | GetSQLState | Symfoware ServerまたはJDBCが設定 |
エラーメッセージ | GetMessage | |
エラーコード | GetErrorCode |
備考)アプリケーションで上記の記述がない場合は、実行トレースに情報が出力されるため、実行トレースを採取して確認します。
実行トレースについては、“3.2.3 アプリケーションの実行トレース”を参照してください。
ポイント
JavaVMが出力するエラーについては、アプリケーションでの記述は必要ありません。
JavaVMでは、以下のようなエラーが出力されます。
java.lang.NullPointerException
java.lang.NoClassDefFoundError
java.lang.OutOfMemoryError
ODBC 連携の場合
ODBC連携を使用している場合、使用するアプリケーションの形態によりエラーメッセージの出力先が異なります。
形態ごとの出力先を以下に示します。
アプリケーションの形態 | 出力先 | |
---|---|---|
Office | DAO | アプリケーションプログラムのDBEngine.Errorsオブジェクトとして出力 |
Visual Basic | RDO | アプリケーションプログラムのrdoEngine.rdoErrorsオブジェクトとして出力 |
ADO | アプリケーションプログラムのConnection.Errorsオブジェクトとして出力 | |
Visual Basic .NET | ADO | アプリケーションプログラムのConnection.Errorsオブジェクトとして出力 |
ADO.NET | アプリケーションプログラムのOdbcException.Errorsオブジェクトとして出力 | |
ASP | ADO | アプリケーションプログラムのConnection.Errorsオブジェクトとして出力 |
データベース関連のエラーメッセージを取得するには、アプリケーションでODBCエラー発生時に以下の記述が必要となります。
アプリケーション | 種類 | メソッド名 | 備考 |
---|---|---|---|
DAO | SQLSTATE値 | SQLState | SymfowareまたはODBCが設定 |
エラーメッセージ | Description | ||
エラーコード | SQLRetCode | ||
RDO | SQLSTATE値 | SQLState | |
エラーメッセージ | Description | ||
エラーコード | Number | ||
ADO | SQLSTATE値 | SQLState | |
エラーメッセージ | Description | ||
ADO.NET | SQLSTATE値 | SQLState | |
エラーメッセージ | Message |
備考)アプリケーションで上記の記述がない場合は、実行トレースに情報が出力されるため、実行トレースを採取して確認します。
実行トレースについては、“3.2.3 アプリケーションの実行トレース”を参照してください。
.NET Framework連携
.NET Framework連携で使用できる開発言語は下記のとおりです。
C#
Visual Basic .NET
COBOL
それぞれの言語により、エラーメッセージの出力先が異なります。
言語ごとの出力先を以下に示します。
言語 | 出力先 |
---|---|
C# |
|
Visual Basic .NET |
|
COBOL (注) | 標準出力 |
注) COBOLを利用する場合、Visual Studio 2005、Visual Studio 2008またはVisual Studio 2010に加えて、NetCOBOL for .NETが必要です。
それぞれの言語でエラーメッセージの取得方法は同じです。データベース関連のエラーメッセージを取得するときには、アプリケーションでSymfowareException発生時に以下の記述が必要となります。
種類 | プロパティ | 備考 |
---|---|---|
SQLSTATE値 | SQLState | SymfowareまたはSymfoware .NET Data Providerが設定 |
エラーメッセージ | Message | |
エラーコード | Number |
備考)アプリケーションで上記の記述がない場合は、実行トレースに情報が出力されるため、実行トレースを採取して確認します。
実行トレースについては、“3.2.3 アプリケーションの実行トレース”を参照してください。