I'm running in WebLogic and use it's pooled DataSource rather than an explicit TransactionManager configuration. I guess that amounts to the same thing as EXTERNAL?

Are you saying that calling start/end transaction is necessary for the ibatis batch statement to work but will have no effect on the transaction which is managed by the container?

Thanks

Gary


If you set the TransactionManager type to EXTERNAL, then the
start/commit/end will have no effect. Or if you set it to JTA, then it will
attempt to participate in the global transaction if possible.

Cheers,
Clinton

On 10/18/05, Gary Barlow <[EMAIL PROTECTED]> wrote:
>
> Thanks Clinton,
>
> Yep that has the desired effect, however, I'm running this in the EJB
> layer
> with container managed transactions. Do you know how startTransaction() /
> endTransaction() behave in this situation?
>
>
> Gary
>
> >
> >You need to wrap the batch in a transaction....
> >
> >try {
> >sqlMapClient.startTransaction();
> >sqlMapClient.startBatch();
> >...
> >sqlMapClient.executeBatch();
> >sqlMapClient.commitTransaction();
> >} finally {
> >sqlMapClient.endTransaction
> >}
> >
> >Clinton
> >
> >On 10/18/05, Gary Barlow <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi there, I'm using v2.1.5 with spring and attempting to use batched
> > > statements but it doesn't seem to batch! The code below functions fine
> >but
> > > when testing for duplicate inserts I noticed if failed on the insert
> > > rather
> > > than the executeBatch() statement. This suggests it's not batching!
> Also
> > > noticed that the count returned from execute batch is always zero.
> > >
> > > Have I coded this corrrectly? Are there any know issues?
> > >
> > > public class SqlMapParameterDao extends SqlMapClientDaoSupport
> >implements
> > > ParameterDao {
> > >
> > > ............................
> > >
> > > public void saveParameterValues(final Parameter parameter, final List
> > > vals)
> > > throws IntegrityViolationException {
> > > try {
> > >
> > > this.getSqlMapClient().startBatch();
> > > for (int i = 0; i < pvals.size(); i++) {
> > > ParameterValue parameterValue = (ParameterValue) pvals.get(i);
> > > this.getSqlMapClient().insert("insertParameterValue", new
> > > ParameterValueCriteria(parameterValue.getParameter().getId(),
> > > parameterValue));
> > > }
> > > int count = this.getSqlMapClient().executeBatch();
> > > } catch (SQLException e) {
> > > throw new IntegrityViolationException(e.getMessage());
> > > }
> > > }
> > >
> > >
> > >
>
>
>


Reply via email to