TSCSystemException(C++)

TSCSystemExceptionはシステム提供例外クラスです。

TSCSystemExceptionは,OTMでの例外用の基本クラスです。次にTSCSystemExceptionの特徴を示します。

エラーコード

エラーコードは,TSCSystemExceptionクラスの派生クラスに対応するコードです。TSCSystemExceptionクラスの型で例外をcatchした場合,エラーコードを参照することで例外の種類を知ることができます。

定数値の順に並べたエラーコードの一覧を次の表に示します。エラーコードに対応する各派生クラスについては,この章の「TSCSystemExceptionの派生クラス(C++)」を参照してください。

表3-5 エラーコードの一覧(C++)

エラーコード例外クラス
BAD_PARAMTSCBadParamException
NO_MEMORYTSCNoMemoryException
COMM_FAILURETSCCommFailureException
NO_PERMISSIONTSCNoPermissionException
INTERNALTSCInternalException
MARSHALTSCMarshalException
INITIALIZETSCInitializeException
NO_IMPLEMENTTSCNoImplementException
BAD_OPERATIONTSCBadOperationException
NO_RESOURCESTSCNoResourcesException
NO_RESPONSETSCNoResponseException
BAD_INV_ORDERTSCBadInvOrderException
TRANSIENTTSCTransientException
OBJECT_NOT_EXISTTSCObjectNotExistException
UNKNOWNTSCUnknownException
INV_OBJREFTSCInvObjrefException
IMP_LIMITTSCImpLimitException
BAD_TYPECODETSCBadTypecodeException
PERSIST_STORETSCPersistStoreException
FREE_MEMTSCFreeMemException
INV_IDENTTSCInvIdentException
INV_FLAGTSCInvFlagException
INTF_REPOSTSCIntfReposException
BAD_CONTEXTTSCBadContextException
OBJ_ADAPTERTSCObjAdapterException
DATA_CONVERSIONTSCDataConversionException

個々のエラーコードの詳細については,「付録A エラーコード一覧」を参照してください。

内容コード

内容コードは,障害の詳しい情報を示すコードです。エラーコード間で内容コードが重複することはないため,ユニークな定数を持ちます。したがって,TSCSystemExceptionクラスの型で例外をcatchする場合,内容コードを参照することで詳細な情報を知ることができます。ユーザがTSCSystemExceptionの派生クラスのインスタンスを生成してthrowする場合,ユーザ用に割り当てられている値を内容コードに設定してください。

内容コードの分類を次の表に示します。

表3-6 内容コードの分類(C++)

分類内容コードの範囲
ユーザアプリケーション用0~999
OTMシステム予約1000~30000

個々の内容コードの詳細については,「付録D 内容コード一覧」を参照してください。

場所コード

場所コードは障害が発生した場所を示します。ユーザがTSCSystemExceptionの派生クラスのインスタンスを生成してthrowする場合,PLACE_CODE_USER_APを設定してください。

場所コードの一覧を次の表に示します。

表3-7 場所コードの一覧(C++)

場所コード場所
PLACE_CODE_USER_APユーザアプリケーション
PLACE_CODE_SERVOTMのサーバ機能部分
PLACE_CODE_DAEMONTSCデーモン
PLACE_CODE_CLNTOTMのクライアント機能部分
PLACE_CODE_CLNT_REGTSCレギュレータ
PLACE_CODE_STUBTSCユーザプロキシ(スタブ)
PLACE_CODE_SKELTONTSCユーザスケルトン(スケルトン)
PLACE_CODE_ORBGWTSCORBコネクタ

完了状態

完了状態は,障害が発生したときにメソッド呼び出しが完了しているかどうかを示します。

完了状態の一覧を次の表に示します。

表3-8 完了状態の一覧(C++)

完了状態説明
COMPLETED_NOメソッド呼び出しが完了していません。
COMPLETED_MAYBEメソッド呼び出しの完了状態を決定できません。
COMPLETED_YESメソッド呼び出しが完了しています。

形式

class TSCSystemException : public CORBA::SystemException
{

public:
 //各種情報取得
 TSCInt getErrorCode();
 TSCInt getDetailCode();
 TSCInt getPlaceCode();
 TSCInt getCompletionStatus();
 TSCInt getMaintenanceCode1();
 TSCInt getMaintenanceCode2();
 TSCInt getMaintenanceCode3();
 TSCInt getMaintenanceCode4();

 //エラーコード
 static const TSCInt BAD_PARAM = 1;
 static const TSCInt NO_MEMORY = 2;
 static const TSCInt COMM_FAILURE = 3;
 static const TSCInt NO_PERMISSION = 4;
 static const TSCInt INTERNAL = 5;
 static const TSCInt MARSHAL = 6;
 static const TSCInt INITIALIZE = 7;
 static const TSCInt NO_IMPLEMENT = 8;
 static const TSCInt BAD_OPERATION = 9;
 static const TSCInt NO_RESOURCES = 10;
 static const TSCInt NO_RESPONSE = 11;
 static const TSCInt BAD_INV_ORDER = 12;
 static const TSCInt TRANSIENT = 13;
 static const TSCInt OBJECT_NOT_EXIST = 14;
 static const TSCInt UNKNOWN = 15;
 static const TSCInt INV_OBJREF = 16;
 static const TSCInt IMP_LIMIT = 17;
 static const TSCInt BAD_TYPECODE = 18;
 static const TSCInt PERSIST_STORE = 19;
 static const TSCInt FREE_MEM = 20;
 static const TSCInt INV_IDENT = 21;
 static const TSCInt INV_FLAG = 22;
 static const TSCInt INTF_REPOS = 23;
 static const TSCInt BAD_CONTEXT = 24;
 static const TSCInt OBJ_ADAPTER = 25;
 static const TSCInt DATA_CONVERSION = 26;


 //
 //詳細コード
 //
 //BAD_PARAM
 static const TSCInt INVALID_TIMEOUT = 1001;
 static const TSCInt INVALID_RT_ACPT_NAME = 1002;
 static const TSCInt INVALID_PARALLEL_COUNT = 1003;
 static const TSCInt INVALID_ACPT_NAME = 1004;
 static const TSCInt OBJ_FACT_IS_NULL = 1005;
 static const TSCInt ACPT_IS_NULL = 1006;
 static const TSCInt INVALID_ACPT_REGID = 1007;
 static const TSCInt INVALID_TSCID = 1008;
 static const TSCInt INVALID_DOMAIN_NAME = 1009;
 static const TSCInt INVALID_OP_PARAM = 1010;
 static const TSCInt SERV_IS_NULL = 1011;
 static const TSCInt CLNT_IS_NULL = 1012;
 static const TSCInt ORB_IS_NULL = 1013;
 static const TSCInt DOMAIN_IS_NULL = 1015;
 static const TSCInt INVALID_REQUEST_WAY = 1016;
 static const TSCInt INVALID_PRIORITY = 1017;
 static const TSCInt THREAD_FACT_IS_NULL = 1018;
 static const TSCInt PROXY_IS_NULL = 1020;
 static const TSCInt OBJECT_IS_NULL = 1021;
 static const TSCInt INVALID_FLAG = 1022;
 static const TSCInt INVALID_WATCH_TIME = 1027;
 static const TSCInt WATCH_TIME_IS_NULL = 1028;
 static const TSCInt INVALID_RETRY_REQUIREMENT = 1029;
 static const TSCInt INVALID_SESSION_INTERVAL = 1038;
 static const TSCInt INVALID_QUEUE_LENGTH = 1047;

 //NO_MEMORY
 static const TSCInt MEM_ALLOC_FAILURE = 2001;

 //COMM_FAILURE
 static const TSCInt SEND_CLNT_FAILURE = 3004;
 static const TSCInt SEND_THIN_CLNT_FAILURE = 3005;
 static const TSCInt SEND_SERV_FAILURE = 3006;
 static const TSCInt SEND_TSCD_FAILURE = 3007;
 static const TSCInt BASIC_CONN_FAILURE = 3009;
 static const TSCInt CONN_FAILURE = 3010
 static const TSCInt INCOMPATIBLE_PROTOCOL = 3011;
 static const TSCInt NOT_IGNORE_PROTOCOL = 3012;
 static const TSCInt DEACTIVATE_FAILURE = 3021;

 //NO_PERMISSION
 static const TSCInt CALL_IN_HOLD = 4001;
 static const TSCInt RT_ACPT_IS_ACTIVE = 4002;
 static const TSCInt SERV_CONN_IN_END = 4005;
 static const TSCInt ACTIVATE_IN_END = 4006;
 static const TSCInt CLNT_CONN_IN_END = 4007;
 static const TSCInt DIFF_THREAD_CALL = 4008;
 static const TSCInt CALL_IN_END = 4009;
 static const TSCInt ACPT_NOT_REGISTED = 4010;
 static const TSCInt SERV_CONN_IN_START = 4011;
 static const TSCInt CLNT_CONN_IN_START = 4012;
 static const TSCInt TSCD_IS_NOT_MY_HOST = 4013;
 static const TSCInt OVER_ACPT_REGI = 4014;
 static const TSCInt NOT_SUPPORTED = 4015;
 static const TSCInt ACTIVATE_IN_START = 4016;
 static const TSCInt DEACTIVATE_IN_END = 4018;
 static const TSCInt CLNT_DISCONN_IN_END = 4020;
 static const TSCInt ACTIVATE_WITH_DIFF_PROP = 4022;
 static const TSCInt CLNT_INIT_IN_END = 4023;
 static const TSCInt SERV_INIT_IN_END = 4024;
 static const TSCInt CLNT_INIT_IN_START = 4025;
 static const TSCInt SERV_INIT_IN_START = 4026;
 static const TSCInt NOT_ACCEPT_OBJECT = 4027;
 static const TSCInt CLNT_COMMAND_START = 4028;
 static const TSCInt WATCH_IS_STARTED = 4029;
 static const TSCInt WATCH_IS_STOPPED = 4030;
 static const TSCInt SAME_APID_EXIST = 4031;
 static const TSCInt FILE_ACCESS_FAILURE = 4032;
 static const TSCInt SESSION_IN_END = 4033;
 static const TSCInt SESSION_IN_CALL = 4034;

 //INTERNAL
 static const TSCInt PROPERTIES_FAILURE = 5001;
 static const TSCInt MSG_TYPE_FAILURE = 5002;
 static const TSCInt MUTEX_FAILURE = 5003;
 static const TSCInt SIG_COND_FAILURE = 5004;
 static const TSCInt EVENT_FAILURE = 5005;
 static const TSCInt SH_MEM_FAILURE = 5006;
 static const TSCInt THREAD_CREATE_FAILURE = 5007;
 static const TSCInt TSD_FAILURE = 5008;
 static const TSCInt CBL_ADAPTER_ERROR = 5009;
 static const TSCInt SYSTEM_TIME_FAILURE = 5010;
 static const TSCInt PROGRAM_ERROR = 5999;

 //MARSHAL
 static const TSCInt INVALID_STREAM_LEN = 6001;
 static const TSCInt INVALID_STREAM_VALUE = 6002;
 static const TSCInt MARSHAL_OTHERS = 6003;
 static const TSCInt REQ_MARSHAL_FAILURE = 6004;
 static const TSCInt REQ_UNMARSHAL_FAILURE = 6005;
 static const TSCInt REP_MARSHAL_FAILURE = 6006;
 static const TSCInt REP_UNMARSHAL_FAILURE = 6007;
 static const TSCInt UEXCEPT_MARSHAL_FAILURE = 6008;
 static const TSCInt UEXCEPT_UNMARSHAL_FAILURE = 6009;
 static const TSCInt MARSHAL_ERROR = 6010;

 //INITIALIZE
 static const TSCInt INVALID_DEF_TIMEOUT = 7002;
 static const TSCInt INVALID_DEF_RT_ACPT = 7003;
 static const TSCInt INVALID_DEF_PARALLEL_COUNT = 7004;
 static const TSCInt LOAD_SHLIB_FAILURE = 7005;
 static const TSCInt INVALID_DEF_TSCID = 7006;
 static const TSCInt INVALID_DEF_DOMAIN_NAME = 7007;
 static const TSCInt INVALID_DEF_WITH_SYSTEM = 7008;
 static const TSCInt INVALID_ENV_TSCDIR = 7009;
 static const TSCInt MTRACE_FAILURE = 7010;
 static const TSCInt INVALID_DEF_NICE =7011;
 static const TSCInt INVALID_DEF_PRIORITY = 7012;
 static const TSCInt INVALID_DEF_ACPT = 7013;
 static const TSCInt INVALID_PRC_KIND = 7014;
 static const TSCInt INVALID_DEF_REQUEST_WAY = 7015;
 static const TSCInt
     INVALID_DEF_CLIENT_MESSAGE_BUFFER_COUNT = 7016;
 static const TSCInt INVALID_DEF_APID = 7017;
 static const TSCInt INVALID_DEF_WATCH_TIME = 7018;
 static const TSCInt INVALID_DEF_WATCH_METHOD = 7019;
 static const TSCInt INVALID_DEF_MY_HOST = 7020;
 static const TSCInt INVALID_DEF_REBIND_TIMES = 7021;
 static const TSCInt INVALID_DEF_REBIND_INTERVAL = 7022;
 static const TSCInt INVALID_DEF_RETRY_REFERENCE = 7024;
 static const TSCInt INVALID_FILE_FORMAT = 7025;
 static const TSCInt INVALID_DEF_RETRY_WAY = 7030;
 static const TSCInt ALREADY_SHUTDOWN = 7031;
 static const TSCInt INVALID_DEF_EXCEPT_CONVERT_FILE = 7034;
 static const TSCInt ENTRY_FAILURE = 7035;
 static const TSCInt INVALID_DEF_SESSION_INTERVAL = 7036;
 static const TSCInt INVALID_DEF_QUEUE_LENGTH = 7040;

 //NO_IMPLEMENT
 static const TSCInt NO_SUCH_INTERF = 8001;
 static const TSCInt NO_SUCH_ACPT = 8002;
 static const TSCInt NO_SUCH_OP_NAME = 9001;

 //NO_RESOURCES
 static const TSCInt OVER_MAX_CLNT = 10001;
 static const TSCInt OVER_MAX_SERV = 10002;
 static const TSCInt OVER_ADM_MAX_CLNT = 10005;
 static const TSCInt OVER_ADM_MAX_SERV = 10006;
 static const TSCInt OVER_MAX_RT_ACPT_REGI = 10007;
 static const TSCInt OVER_MAX_THIN_CLIENT = 10008;
 static const TSCInt OVER_MAX_DISPATCH_PARALLEL = 10009;
 static const TSCInt OVER_MAX_REQUEST_COUNT = 10010;
 static const TSCInt OVER_MAX_ORB_CLIENT = 10011;

 //NO_RESPONSE
 static const TSCInt TIMED_OUT = 11001;

 //BAD_INV_ORDER
 static const TSCInt ALREADY_ACTIVE = 12002;
 static const TSCInt ALREADY_DEACTIVE = 12003;
 static const TSCInt CLNT_NOT_INITIALIZED = 12004;
 static const TSCInt SERV_NOT_INITIALIZED = 12005;
 static const TSCInt ALREADY_INITCLNT = 12006;
 static const TSCInt ALREADY_INITSERV = 12007;
 static const TSCInt ALREADY_SERV_ML = 12008;
 static const TSCInt ALREADY_SESSION_START = 12013;
 static const TSCInt SESSION_NOT_START = 12014;

 //TRANSIENT
 static const TSCInt REBIND_FAILURE = 13001;
 static const TSCInt ALL_CONN_FAILURE = 13002;

 //OBJECT_NOT_EXIST
 static const TSCInt SERV_NO_SUCH_INTERF = 14001;
 static const TSCInt SERV_NO_SUCH_ACPT = 14002;

 //UNKNOWN
 static const TSCInt COMMON_EXCEPTION = 15001;
 static const TSCInt INVALID_USER_EXCEPTION = 15002;

 //INV_OBJREF
 static const TSCInt FACTORY_CREATE_FAILURE = 16001;
 static const TSCInt THREAD_FACTORY_CREATE_FAILURE = 16002;
 static const TSCInt FACTORY_DESTROY_FAILURE = 16003;
 static const TSCInt THREAD_FACTORY_DESTROY_FAILURE = 16004;
 static const TSCInt CREATED_OBJECT_IS_NULL = 16005;
 static const TSCInt CREATED_THREAD_OBJECT_IS_NULL = 16006;

 static const TSCInt TPBROKER_BAD_PARAM = 1998;
 static const TSCInt TPBROKER_NO_MEMORY = 2998;
 static const TSCInt TPBROKER_COMM_FAILURE = 3998;
 static const TSCInt TPBROKER_NO_PERMISSION = 4998;
 static const TSCInt TPBROKER_INTERNAL = 5998;
 static const TSCInt TPBROKER_MARSHAL = 6998;
 static const TSCInt TPBROKER_INITIALIZE = 7998;
 static const TSCInt TPBROKER_NO_IMPLEMENT = 8998;
 static const TSCInt TPBROKER_BAD_OPERATION = 9998;
 static const TSCInt TPBROKER_NO_RESOURCES = 10998;
 static const TSCInt TPBROKER_NO_RESPONSE = 11998;
 static const TSCInt TPBROKER_BAD_INV_ORDER = 12998;
 static const TSCInt TPBROKER_TRANSIENT = 13998;
 static const TSCInt TPBROKER_OBJECT_NOT_EXIST = 14998;
 static const TSCInt TPBROKER_UNKNOWN = 15998;
 static const TSCInt TPBROKER_INV_OBJREF = 16998;
 static const TSCInt TPBROKER_IMP_LIMIT = 17998;
 static const TSCInt TPBROKER_BAD_TYPECODE = 18998;
 static const TSCInt TPBROKER_PERSIST_STORE = 19998;
 static const TSCInt TPBROKER_FREE_MEM = 20998;
 static const TSCInt TPBROKER_INV_IDENT = 21998;
 static const TSCInt TPBROKER_INV_FLAG = 22998;
 static const TSCInt TPBROKER_INTF_REPOS = 23998;
 static const TSCInt TPBROKER_BAD_CONTEXT = 24998;
 static const TSCInt TPBROKER_OBJ_ADAPTER = 25998;
 static const TSCInt TPBROKER_DATA_CONVERSION = 26998;

 //場所コード
 static const TSCInt PLACE_CODE_USER_AP = 1;
 static const TSCInt PLACE_CODE_SERV = 2;
 static const TSCInt PLACE_CODE_DAEMON = 3;
 static const TSCInt PLACE_CODE_CLNT = 4;
 static const TSCInt PLACE_CODE_CLNT_REG = 5;
 static const TSCInt PLACE_CODE_STUB = 6;
 static const TSCInt PLACE_CODE_SKELTON = 7;
 static const TSCInt PLACE_CODE_ORBGW = 8;

 // 完了状態
 static const TSCInt COMPLETED_NO = -1;
 static const TSCInt COMPLETED_MAYBE = 0;
 static const TSCInt COMPLETED_YES = 1;
};

インクルードファイル

#include <tscexcept.h>

メソッド

●TSCInt getErrorCode()

項目型・意味
戻り値エラーコード

障害のエラーコードを返します。

●TSCInt getDetailCode()

項目型・意味
戻り値内容コード

障害の内容コードを返します。

●TSCInt getPlaceCode()

項目型・意味
戻り値場所コード

障害の場所コードを返します。

●TSCInt getCompletionStatus()

項目型・意味
戻り値完了状態

障害発生時のメソッド呼び出しの完了状態を返します。

●TSCInt getMaintenanceCode1()

項目型・意味
戻り値保守コード1

障害の保守コード1を返します。

●TSCInt getMaintenanceCode2()

項目型・意味
戻り値保守コード2

障害の保守コード2を返します。

●TSCInt getMaintenanceCode3()

項目型・意味
戻り値保守コード3

障害の保守コード3を返します。

●TSCInt getMaintenanceCode4()

項目型・意味
戻り値保守コード4

障害の保守コード4を返します。

マルチスレッド環境でのメソッド呼び出し規則

マルチスレッド環境で,TSCSystemExceptionクラスのインスタンスのメソッドを呼び出す規則を次に示します。

メソッド複数のスレッド上からの同時呼び出し
getErrorCodeできます。
getDetailCodeできます。
getPlaceCodeできます。
getCompletionStatusできます。
getMaintenanceCode1できます。
getMaintenanceCode2できます。
getMaintenanceCode3できます。
getMaintenanceCode4できます。