Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第2部 Apcoordinatorコアの機能> 第5章 アプリケーションログ> 5.6 高信頼性ログ

5.6.2 ビジネスクラスでの利用

■ログ出力の基本操作

高信頼性ログを出力するためには、ULogComposerオブジェクトを使用します。これはULogFactoryクラスを用いて参照します。
ポイント

《ログ定義ファイルの記述例》

<?xml version="1.0" encoding="UTF-8"?>
<logConfig>
  <config> <version>7.1</version> </config>
  <ulog name="ULog1" class="my.sample.MyULogComposer">
      <param name="schema" value="MYSCHEMA"/>   <!-- スキーマ名 -->
      <param name="table" value="ULOG01"/>      <!-- 表名 -->
  </ulog>
</logConfig>

《ビジネスクラスの記述例》

import java.sql.Connection;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.GenericHandler;
import com.fujitsu.uji.ulog.ULogComposer;
import com.fujitsu.uji.ulog.ULogFactory;

public class SampleHandler extends GenericHandler
{
    ....

    public void startup(DispatchContext context) {
        // 任意のコネクションで出力します。
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, 
                "com.fujitsu.symfoware.jdbc2.jndisp.SYMContextFactory");
        env.put(Context.PROVIDER_URL, "SYM:// ・・・ ");
        InitialContext ctx = null;
        DataSource ds = null;
        Connection connection = null; 
        try {
            // 高信頼性ログを出力するコネクションを取得します。
            ctx = new InitialContext(env);
            ds = (DataSource)ctx.lookup("jdbc/ ・・・ "); 
            connection = ds.getConnection();
            // 高信頼性ログ出力クラスを取得します。
            // getULogComposerの第2引数にはログの管理名を指定します。
            // 管理名はログ定義ファイルのulogタグのname属性で指定した名前です。
            ULogComposer myLogger = ULogFactory.getULogComposer(context, "ULog1", connection);
            if(myLogger != null){ 
                // 指定のコネクションを利用してデータベースへ出力します
               myLogger.println(null, null, "someMethod start");
            }
            else{
                // 高信頼性ログ出力クラスのオブジェクトがnullのため、
                // ログの出力ができません
                ・・・
            }
            // 高信頼性ログの出力を終了する場合に、クローズをします
            myLogger.close();
            // コネクションをクローズします。
            connection.close()
        } catch(Exception exp) {
            // 例外の処理を行います。
            ・・・
        }
    }
}
ポイント
コネクションは、業務処理で用いるデータベースのコネクションと同じものを用いることも可能です。

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2007