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

[目次][用語][索引][前へ][次へ]

8.4.7 エラー情報を取得する

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

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

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

<この項の構成>
(1) サービスリクエスタ側の実装例
(2) CSCMsgServerExceptionクラス

(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動作定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「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
上記以外のエラー

(凡例)
−:サブクラスはありません。