10 Oracle Key VaultクライアントSDKのエラー処理API
この項では、Oracle Key Vaultエラー管理のインタフェースについて説明します。
- okvErrGetDepth
okvErrGetDepth
は、エラー・スタックの深さを返すために使用します。該当しない場合は、0
が返されます。 - okvErrGetDepthForBatch
okvErrGetDepthForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの深さを返すために使用します。該当しない場合は、0が返されます。 - okvErrGetNum
okvErrGetNum
は、エラー・スタックの最上部にあるエラー番号を返します。 - okvErrGetNumAtDepth
okvErrGetNumAtDepth
は、エラー・スタックの指定した深さのエラー番号を返します。 - okvErrGetNumAtDepthForBatch
okvErrGetNumAtDepthForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの指定した深さのエラー番号を返します。 - okvErrGetNumForBatch
okvErrGetNumForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの最上部にあるエラー番号を返します。 - okvErrReset
okvErrReset
では、環境ハンドルのエラー・スタックをリセットします。 - okvGetTextForErrNum
okvGetTextForErrNum
は、エラー番号のテキストを返します。
10.1 okvErrGetDepth
okvErrGetDepth
は、エラー・スタックの深さを返すために使用します。該当しない場合は、0
が返されます。
カテゴリ
エラー処理API
用途
okvErrGetDepth
は、エラー・スタックの深さを返すために使用します。エラー・スタックにエラーが記録されていない場合は、0が返されます。
構文
ub1 okvErrGetDepth(OKVEnv *env);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
戻り値
戻り値 | 説明 |
---|---|
ub1 |
Oracle Key Vaultエラー・スタックの深さ。 成功: ゼロ以外の正の数値が返されます。これは、エラー・スタックの深さです。 失敗: エラーが記録されない場合は深さがゼロになるため、ゼロが返されます。 |
コメント
なし。
例
ub4 err_depth = okvErrGetDepth(env); if (err_depth == 0) { printf("No Error \n"); } else { printf("Error\n"); }
10.2 okvErrGetDepthForBatch
okvErrGetDepthForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの深さを返すために使用します。該当しない場合は、0が返されます。
カテゴリ
エラー処理API
用途
okvErrGetDepthForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの深さを返すために使用します。該当しない場合は、0が返されます。
構文
ub1 okvErrGetDepthForBatch(OKVEnv *env, ub4 batchjobnum);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
batchjobnum |
IN |
バッチ・ジョブ番号。 |
戻り値
戻り値 | 説明 |
---|---|
ub1 |
Oracle Key Vaultエラー・スタックの深さ。 成功: ゼロ以外の正の数値が返されます。これは、個別のバッチ・ジョブに対応するエラー・スタックの深さです。 失敗: 個別のバッチ・ジョブにエラーが記録されていない場合は深さがゼロになるため、ゼロが返されます。 |
コメント
このbatchjobnum
は、バッチ処理される操作の番号です。たとえば、ユーザーがキーを作成し、キーをアクティブ化し、キーを失効させてから破棄する場合、これらの操作はすべて同じ順序でバッチ処理されます。つまり、キーを作成するためのbatchjobnum
は1
、キーをアクティブ化するためのbatchjobnum
は2
、失効させるためのbatchjobnum
は3
、破棄するためのbatchjobnum
は4
になります。バッチ・ジョブの実行が終了すると、ユーザーはokvErrGetDepthForBatch
にバッチ・ジョブ番号を渡して、個別のバッチ・ジョブのエラー・スタックからエラーの深さを取得できます。
指定したバッチ・ジョブ番号が無効な場合、このAPIはゼロ(0)を返します。
例
ub4 err_depth = 0; okvBatchCreate(env); okvCreateKey(...); /* 1st Batch Job */ okvActivate(...); /* 2nd Batch Job */ okvRevoke(...); /* 3rd Batch Job */ okvDestroy(...); /* 4th Batch Job */ okvBatchExecute(env); /* Check error on top of the error stack for 1st batch job */ if (okvErrGetNumForBatch(env, 1)) { printf("Found error for 1st batch job"); err_depth = okvErrGetDepthForBatch(env, 1); printf("Depth of the error stack is %d", err_depth); }
10.3 okvErrGetNum
okvErrGetNum
は、エラー・スタックの最上部にあるエラー番号を返します。
カテゴリ
エラー処理API
用途
okvErrGetNum
は、エラー・スタックの最上部にあるエラー番号を返します。エラーが記録されていない場合は、OKV_SUCCESS
が返されます。
構文
OKVErrNo okvErrGetNum(OKVEnv *env);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
戻り値
戻り値 | 説明 |
---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: エラー・スタックの最上部にあるエラー番号が返されます。 失敗: エラーがない場合は |
コメント
なし。
例
printf("Setting up Oracle Key Vault session\n"); okvConnect(env); if (okvErrGetNum(env)) { printf("Could not setup the Oracle Key Vault session\n"}; return 1; } else { printf("Successfully setup Oracle Key Vault session\n\n"); }
10.4 okvErrGetNumAtDepth
okvErrGetNumAtDepth
は、エラー・スタックの指定した深さのエラー番号を返します。
カテゴリ
エラー処理API
用途
okvErrGetNumAtDepth
は、エラー・スタックの指定した深さのエラー番号を返します。該当しない場合は、OKV_SUCCESS
が返されます。
構文
OKVErrNo okvErrGetNumAtDepth(OKVEnv *env, ub1 depth);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
depth |
IN |
エラー番号を求める深さ。 |
戻り値
戻り値 | 説明 |
---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: エラー・スタックの指定した深さのエラー番号が返されます。 該当しない場合: エラーがない場合は |
コメント
指定した深さがokvErrGetDepth
から返される深さを超えている場合、okvErrGetNumAtDepth
はOKV_SUCCESS
を返します。
例
ub4 err_depth = okvErrGetDepth(env); while (err_depth > 0) { ub4 error = 0; /* Get error number to get error text */ error = okvErrGetNumAtDepth(env, err_depth--); printf("Error %d: %s \n", error, okvGetTextForErrNum(error)); }
10.5 okvErrGetNumAtDepthForBatch
okvErrGetNumAtDepthForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの指定した深さのエラー番号を返します。
カテゴリ
エラー処理API
用途
okvErrGetNumAtDepthForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの指定した深さのエラー番号を返します。該当しない場合は、OKV_SUCCESS
が返されます。
構文
OKVErrNo okvErrGetNumAtDepthForBatch(OKVEnv *env, ub4 batchjobnum, ub1 depth);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
batchjobnum |
IN |
バッチ・ジョブ番号。 |
depth |
IN |
エラー番号を求める深さ。 |
戻り値
戻り値 | 説明 |
---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 個別のバッチ・ジョブ番号に対応するエラー・スタックの指定した深さのエラー番号が返されます。 該当しない場合: エラーがない場合は |
コメント
batchjobnum
は、バッチ処理される操作の番号です。たとえば、ユーザーがキーを作成し、キーをアクティブ化して、キーを失効させてから破棄する場合、これらの操作はすべて同じ順序でバッチ処理されます。つまり、キーを作成するためのbatchjobnum
は1
、キーをアクティブ化するためのbatchjobnum
は2
、失効させるためのbatchjobnum
は3
、破棄するためのbatchjobnum
は4
になります。バッチの実行が終了すると、ユーザーはokvErrGetNumAtDepthForBatch
に要求するエラーのあるバッチ・ジョブ番号と深さを渡すことで、エラーの詳細を取得できます。
指定したバッチ・ジョブ番号が無効な場合、このAPIはOKV_SUCCESS
(0)を返します。指定した深さがokvErrGetDepthForBatch
から返される深さを超える場合、okvErrGetNumAtDepthForBatch
はOKV_SUCCESS
を返します。
例
ub4 err_depth = 0; okvBatchCreate(env); okvCreateKey(...); /* 1st Batch Job */ okvActivate(...); /* 2nd Batch Job */ okvRevoke(...); /* 3rd Batch Job */ okvDestroy(...); /* 4th Batch Job */ okvBatchExecute(env); /* Check error on top of the error stack for 1st batch job */ if (okvErrGetNumForBatch(env, 1)) { printf("Found error for 1st Batch Job"); err_depth = okvErrGetDepthForBatch(env, 1); printf("Depth of the error stack is %d", err_depth); while (err_depth > 0) { ub4 error = 0; /* Get error number to get error text */ error = okvErrGetNumAtDepthForBatch(env, 1, err_depth--); printf("Error %d: %s \n", error, okvGetTextForErrNum(error)); } }
10.6 okvErrGetNumForBatch
okvErrGetNumForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの最上部にあるエラー番号を返します。
カテゴリ
エラー処理API
用途
okvErrGetNumForBatch
は、指定したバッチ・ジョブ番号に対応するエラー・スタックの最上部にあるエラー番号を返します。エラーが記録されていない場合は、OKV_SUCCESS
が返されます。
構文
OKVErrNo okvErrGetNumForBatch(OKVEnv *env, ub4 batchjobnum);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
batchjobnum |
IN |
バッチ・ジョブ番号。 |
戻り値
戻り値 | 説明 |
---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 個別のバッチ・ジョブに対応するエラー・スタックの最上部にあるエラー番号が返されます。 失敗: エラーがない場合は |
コメント
batchjobnum
は、バッチ処理される操作の番号です。たとえば、ユーザーがキーを作成し、キーをアクティブ化し、キーを失効させて破棄する場合、これらの操作はすべて同じ順序でバッチ処理されます。つまり、キーを作成するためのbatchjobnum
は1
、キーをアクティブ化するためのbatchjobnum
は2
、失効させるためのbatchjobnum
は3
、破棄するためのbatchjobnum
は4
になります。バッチの実行が終了すると、ユーザーはokvErrGetNumForBatch
にバッチ・ジョブ番号を渡して、個別のバッチ・ジョブに対応するエラー・スタックの最上部にあるエラーを取得できます。
指定したバッチ・ジョブ番号が無効な場合、このAPIはOKV_SUCCESS
(0)を返します。
例
okvBatchCreate(env); okvCreateKey(...); /* 1st Batch Job */ okvActivate(...); /* 2nd Batch Job */ okvRevoke(...); /* 3rd Batch Job */ okvDestroy(...); /* 4th Batch Job */ okvBatchExecute(env); /* Check error on top of the error stack for 1st Batch Job */ if (okvErrGetNumForBatch(env, 1)) { printf("Found error for 1st Batch Job"); }
10.7 okvErrReset
okvErrReset
では、環境ハンドルのエラー・スタックをリセットします。
カテゴリ
エラー処理API
用途
okvErrReset
では、環境ハンドルのエラー・スタックをリセットします。
構文
void okvErrReset(OKVEnv *env);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
戻り値
値は返されません。
コメント
なし。
例
/* Do some KMIP operations like adding attribute to an object and get the same attributes, below is an illustration of using 'okvErrReset' when getting the individual attibutes */ ub4 umask = 0; ub4 state = 0; printf("Trying to get Crypto Usage Mask value from State Attribute\n"); okvAttrGetCryptoUsageMask(env, ttlv, &umask); if (okvErrGetNum(env)) /* Check for errors */ okvErrReset(env); /* this will come in handy when we don’t want to keep getting the same errors for the next set of API calls where we try to get the individual Attribute values */ printf("Trying to get State value from State Attribute\n"); okvAttrGetState(env, ttlv, &state); if (okvErrGetNum(env)) /* Check for errors */ okvErrReset(env);
10.8 okvGetTextForErrNum
okvGetTextForErrNum
は、エラー番号のテキストを返します。
カテゴリ
エラー処理API
用途
okvGetTextForErrNum
は、エラー番号のテキストを返します。エラー番号が無効な場合は、NULL
を指すポインタが返されます。
構文
oratext *okvGetTextForErrNum(OKVErrNo err_no);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
errno |
|
Oracle Key Vaultエラー番号 |
戻り値
戻り値 | 説明 |
---|---|
oratext * |
Oracle Key Vaultエラー・テキスト 成功: エラーのテキストへのポインタが返されます。 失敗: エラー番号が無効な場合は、 |
コメント
なし。
例
ub4 error = 0; printf("Error %d: %s \n", error, okvGetTextForErrNum(error));