Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


9.4.7 エラー情報を取得する

要求先のサービス部品,HCSCサーバ,およびEJBコンテナでエラーが発生した場合,エラー情報を取得し,その情報に従って対処します。

エラー情報は,サービスリクエスタ側でCSCMsgServerExceptionクラスを取得することによって取得できます。CSCMsgServerExceptionクラスについては「(2) CSCMsgServerExceptionクラス」を参照してください。エラーの伝わり方については,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「7.7.2 SessionBean実行時の障害対策」を参照してください。

エラーの詳細については,getErrorMessageメソッドおよびgetErrorCodeメソッドを使用して取得します。また,Webサービスからのエラー情報(SOAP Fault)を取得する場合は,checkSoapFaultメソッドを使用します。

〈この項の構成〉

(1) サービスリクエスタ側の実装例

CSCMsgServerExceptionクラスを取得する場合のサービスリクエスタ側の実装例を次に示します。

          :
} catch (CSCMsgServerException e) {
    System.err.println("Exception ErrorMessage = "
                + e.getErrorMessage() );
    System.err.println("Exception ErrorCode = "
                + e.getErrorCode() );
    if (e.checkFaultMessage() == true) {
        System.err.println("Exception ProcessInstanceID = "
                + e.getProcessInstanceID() );
        System.err.println("Exception FaultCode = "
                + e.getFaultCode() );
        System.err.println("Exception FaultString = "
                + e.getFaultString() );
        System.err.println("Exception FaultActor = "
                + e.getFaultActor() );
        System.err.println("Exception FaultDetails = "
                + new String(e.getFaultDetail(), "UTF-8"));
    System.err.println("Exception FaultName = "
                + e.getFaultName() );
    }
}
          :

(2) CSCMsgServerExceptionクラス

サービスリクエスタが取得する例外クラスです。

(a) クラス定義

パッケージ
jp.co.Hitachi.soft.csc.msg.message.reception
クラス
public class CSCMsgServerException
extends java.lang.Exception

(b) フィールドの一覧

フィールド名

データ型

説明

errorMessage

java.lang.String

次に示す例外の内容です。

  • HCSC-Messaging内で検知した例外

  • サービス部品またはビジネスプロセスからのフォルト

errorCode

java.lang.String

次に示す例外の内容に対応するエラーコードです。

  • HCSC-Messaging内で検知した例外

  • サービス部品またはビジネスプロセスからのフォルト

processInstanceID

java.lang.String

ビジネスプロセスのインスタンスIDの情報です。

ビジネスプロセスでエラーが発生した場合に値が設定されます。

cscmsgFaultCode

java.lang.String

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報です。

cscmsgFaultString

java.lang.String

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報です。

cscmsgFaultActor

java.lang.String

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報です。

cscmsgFaultDetail

byte[]

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報です。

faultName

java.lang.String

サービス部品(WebサービスまたはSessionBean),またはビジネスプロセスからのフォルト名(例外名)情報です。

次の場合に値が設定されます。

  • サービス部品(WebサービスまたはSessionBean)からのユーザ定義例外のSOAP Faultの場合

  • ビジネスプロセスからのフォルトの場合

SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合,値は設定されません。SOAP Fault動作定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.6.1 SOAP Fault動作定義ファイル」を参照してください。

(c) メソッドの一覧

メソッド名

データ型

説明

getErrorMessage

java.lang.String

エラーメッセージを取得します。

getErrorCode

java.lang.String

エラーコードを取得します。

checkFaultMessage

boolean

サービス部品,ビジネスプロセス,またはサービスアダプタからのフォルト情報があるかどうかをチェックします。

getFaultCode

java.lang.String

FaultCode情報を取得します。

getFaultString

java.lang.String

FaultString情報を取得します。

getFaultActor

java.lang.String

FaultActor情報を取得します。

getFaultDetail

byte[]

Detail情報を取得します。

getProcessInstanceID

java.lang.String

ビジネスプロセスのインスタンスIDを取得します。

getFaultName

java.lang.String

フォルト名(例外名)を取得します。

(d) メソッドの詳細

●getErrorMessage
説明

エラーメッセージを取得します。

次の例外の内容を取得する場合に使用します。

  • HCSC-Messaging内で検知した例外

  • サービス部品またはビジネスプロセスからのフォルト

形式

public java.lang.String getErrorMessage()

パラメタ

なし

戻り値

エラーメッセージ

例外

なし

●getErrorCode
説明

エラーコードを取得します。

次の例外の内容に対するエラーコードを取得する場合に使用します。

  • HCSC-Messaging内で検知した例外

  • サービス部品またはビジネスプロセスからのフォルト

形式

public java.lang.String getErrorCode()

パラメタ

なし

戻り値

エラーコード

例外

なし

●checkFaultMessage
説明

サービス部品,ビジネスプロセス,またはサービスアダプタからのフォルト情報があるかどうかをチェックします。

サービス部品またはビジネスプロセスがWebサービスの場合,SOAP Faultとして返されたエラーの内容が含まれているかどうかチェックします。

また,サービスアダプタからの個別のエラーが含まれているかどうかをチェックします。

形式

public boolean checkFaultMessage()

パラメタ

なし

戻り値

true:Faultメッセージ情報が存在します。

false:Faultメッセージ情報が存在しません。

例外

なし

●getFaultCode
説明

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報を取得します。

形式

public java.lang.String getFaultCode()

パラメタ

なし

戻り値

faultcode

例外

なし

●getFaultString
説明

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報を取得します。

形式

public java.lang.String getFaultString()

パラメタ

なし

戻り値

faultstring

例外

なし

●getFaultActor
説明

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報を取得します。

形式

public java.lang.String getFaultActor()

パラメタ

なし

戻り値

faultactor

例外

なし

●getFaultDetail
説明

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報を取得します。

サービス部品が設定したDetail情報をバイト配列でサービスリクエスタに引き渡します。したがって,取得したバイト配列を文字列に変換する必要があります。

形式

public byte[] getFaultDetail()

パラメタ

なし

戻り値

detail

例外

なし

●getProcessInstanceID
説明

ビジネスプロセスのインスタンスIDを取得します。

形式

public String getProcessInstanceID()

パラメタ

なし

戻り値

String

例外

なし

●getFaultName
説明

フォルト名(例外名)を取得します。

形式

public String getFaultName()

パラメタ

なし

戻り値

String

例外

なし

(e) サブクラスの一覧

クラス名

サブクラス名と説明

CSCMsgServerException

CSCMsgServiceException

サービス部品例外

CSCMsgServiceUserException

サービス部品からのフォルト情報またはException

CSCMsgBusinessProcessUserException

ビジネスプロセスからのフォルト情報またはException

CSCMsgServiceExecuteException

サービス部品(Webサービス)からユーザ定義例外以外の例外が返ってきた場合の例外

CSCMsgServiceDeliveryException

サービス部品要求振り分けエラー

CSCMsgLocationSearchException

ロケーション検索失敗

CSCMsgRoutingExecException

ルーティング失敗

CSCMsgDelivererExecException

メッセージ配送失敗

CSCMsgDBQServiceDeliveryException

標準の非同期受付(MDB(DBキュー))からDBキューのサービス部品を呼んだ場合の例外

CSCMsgServerParameterException

入力パラメタエラー

CSCMsgServerInternalException

上記以外のエラー

(凡例)

−:サブクラスはありません。