10.4.7 エラー情報を取得する

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

エラー情報は,サービスリクエスタ側でCSCMsgServerExceptionクラスを取得することによって取得できます。CSCMsgServerExceptionクラスについては「10.4.7(2) CSCMsgServerExceptionクラス」を参照してください。エラーの伝わり方については,マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「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) フィールドの一覧
フィールド名データ型説明
errorMessagejava.lang.String次に示す例外の内容です。
  • HCSC-Messaging内で検知した例外
  • サービス部品またはビジネスプロセスからのフォルト
errorCodejava.lang.String次に示す例外の内容に対応するエラーコードです。
  • HCSC-Messaging内で検知した例外
  • サービス部品またはビジネスプロセスからのフォルト
processInstanceIDjava.lang.StringビジネスプロセスのインスタンスIDの情報です。
ビジネスプロセスでエラーが発生した場合に値が設定されます。
cscmsgFaultCodejava.lang.Stringサービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのFaultCode情報です。
cscmsgFaultStringjava.lang.Stringサービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのFaultString情報です。
cscmsgFaultActorjava.lang.Stringサービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのFaultActor情報です。
cscmsgFaultDetailbyte[]サービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのDetail情報です。
faultNamejava.lang.Stringサービス部品(WebサービスまたはSessionBean),またはビジネスプロセスからのフォルト名(例外名)情報です。
次の場合に値が設定されます。
  • サービス部品(WebサービスまたはSessionBean)からのユーザ定義例外のSOAP Faultの場合
  • ビジネスプロセスからのフォルトの場合
SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合,値は設定されません。SOAP Fault動作定義ファイルについては,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「SOAP Fault動作定義ファイル」を参照してください。
(c) メソッドの一覧
メソッド名データ型説明
getErrorMessagejava.lang.Stringエラーメッセージを取得します。
getErrorCodejava.lang.Stringエラーコードを取得します。
checkFaultMessagebooleanサービス部品,ビジネスプロセス,またはカスタムアダプタからのフォルト情報があるかどうかをチェックします。
getFaultCodejava.lang.StringFaultCode情報を取得します。
getFaultStringjava.lang.StringFaultString情報を取得します。
getFaultActorjava.lang.StringFaultActor情報を取得します。
getFaultDetailbyte[]Detail情報を取得します。
getProcessInstanceIDjava.lang.StringビジネスプロセスのインスタンスIDを取得します。
getFaultNamejava.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
非同期DBキューの標準受付からDBキューのサービス部品を呼んだ場合の例外
CSCMsgServerParameterException
入力パラメタエラー
CSCMsgServerInternalException
上記以外のエラー

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