すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:エラーログを返す

最終更新日:Jun 24, 2025

このトピックでは、MaxCompute SDK for Java を使用してエラーログを返す方法について説明します。

説明

MaxCompute SDK for Java は、抽象クラス RetryLogger を提供します。 詳細については、「SDK Java ドキュメント」をご参照ください。

public static abstract class RetryLogger {
/**
 * エラー発生後に RestClient が再試行できるようにするコールバック関数。
 * @param e
 *     エラー。
 * @param retryCount
 *     再試行回数。
 * @param retrySleepTime
 *     再試行間隔。
 */
public abstract void onRetryLog(Throwable e, long retryCount, long retrySleepTime);
}

RetryLogger サブクラスを作成し、odps.getRestClient().setRetryLogger(new UserRetryLogger()); を使用して、システムが MaxCompute オブジェクトを初期化するときにログを返すことができます。

// odps の初期化
odps.getRestClient().setRetryLogger(new UserRetryLogger());
// 再試行ロガー
public class UserRetryLogger extends RetryLogger {
 @Override
 public void onRetryLog(Throwable e, long retryCount, long sleepTime) {
   if (e != null && e instanceof OdpsException) {
     String requestId = ((OdpsException) e).getRequestId();
             if (requestId != null) {
                   System.err.println(String.format(
           "警告: ODPS リクエストが失敗しました。requestID:%s、retryCount:%d、%d 秒後に再試行します。", requestId, retryCount, sleepTime));
       return;
     }
   }
   System.err.println(String.format(
       "警告: ODPS リクエストが失敗しました。%s、retryCount:%d、%d 秒後に再試行します。", e.getMessage(), retryCount, sleepTime));
 }
}