[Seasar-user:22054] Re: S2JDBCのバッチ処理に関して

あきやまじろう [E-MAIL ADDRESS DELETED]
2015年 4月 15日 (水) 09:38:58 JST


小林様

あきやまです。

バッチサイズによるs2.log上での違いが見当たらず、
今回質問しましたが、単にバッチ更新の仕組みを理解していなかっただけでした。
ありがとうございます。

以上、よろしくお願いします。


2015年4月15日 4:07 Koichi Kobayashi <koichik @ improvement.jp>:

> 小林 (koichik) です。
>
> バッチ更新のJDBC APIは、addBatch()とexecuteBatch()の
> 二つで成り立っています。
> S2JDBCのbatchSize()は、addBatch()を何回呼び出す毎に
> executeBatch()を実行するかを指定します。
> すなわち、
>
> DataSource.getConnection();
> PreparedStatement.addBatch(); // 1
> PreparedStatement.addBatch(); // 2
> PreparedStatement.addBatch(); // 3
> ...
> PreparedStatement.addBatch(); // 1000 (batchSize()で指定した数)
> PreparedStatement.executeBatch();
> PreparedStatement.addBatch(); // 1
> PreparedStatement.addBatch(); // 2
> PreparedStatement.addBatch(); // 3
> ...
> PreparedStatement.addBatch(); // 1000 (batchSize()で指定した数)
> PreparedStatement.executeBatch();
> ...
> Connection.close()
>
> となります。
> batchSize()ごとにコネクションを取得するわけではありません。
>
>
> On Tue, 14 Apr 2015 17:32:41 +0900, あきやまじろう <mayama0130 @ gmail.com> wrote:
>
> > お世話になっております。あきやまと申します。
> >
> > S2JDBCのバッチ処理に関して教えてください。
> >
> > [動作環境]
> > ・S2Container 2.4.45
> >
> > S2Jdbcのバッチ挿入(下記コード)を利用して、10000件のリストを1000件づつ登録しようとしています。
> >
> > jdbcManager.insertBatch(insertList).batchSize(1000).execute();
> >
> > 実行後、s2.logを確認した所、以下の内容が出力され、1000件ずつ処理される事を期待していたのですが、
> >
> > > トランザクションを開始しました。
> > > 論理的なコネクションを取得しました。
> > > Insert文が1000行
> > > 論理的なコネクションを閉じました。
> > > 論理的なコネクションを取得しました。
> > > Insert文が1000行
> > > 論理的なコネクションを閉じました。
> > > ・・・
> > > 論理的なコネクションを取得しました。
> > > Insert文が1000行
> > > 論理的なコネクションを閉じました。
> > > トランザクションをコミットしました。
> >
> > 実際には、以下の内容で出力され、10000件のバッチ処理になっているように見えます。
> >
> > > トランザクションを開始しました。
> > > 論理的なコネクションを取得しました。
> > > Insert文が10000行
> > > 論理的なコネクションを閉じました。
> > > トランザクションをコミットしました。
> >
> > バッチ処理を基本的に理解してないだけなのかもしれませんが、
> > 解決方法をご教授頂けますでしょうか。
>
>
> --
> {
>   name: "Koichi Kobayashi",
>   mail: "koichik @ improvement.jp",
>   blog: "http://d.hatena.ne.jp/koichik/",
>   twitter: "@koichik"
> }
>
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20150415/c5e11b54/attachment.html>


Seasar-user メーリングリストの案内