|
From: <jue...@we...> - 2004-07-31 22:11:14
|
There's nothing special to do in Spring here, so I assume it's an iBATIS =
problem. Maybe post this on the iBATIS forum?
=20
Juergen
=20
________________________________
Von: spr...@li... im Auftrag =
von Stefan D Sookraj
Gesendet: So 01.08.2004 00:01
An: spr...@li...
Cc: cli...@ib...
Betreff: Re: [Springframework-developer] How to do batch with Spring =
using Ibatis
I still canot get pass why the application hangs on this particular =
line:=20
=20
executor.executeBatch();
=20
I know that executor is an Ibatis API, but is there anything else in =
Spring that needs to be configured to use it appropriately? Thanks.
=20
=20
=20
=20
=20
Subject: Re: [Springframework-developer] How to do batch with Spring =
using Ibatis
Ok, my application is hung at the line :
=20
executor.executeBatch();
=20
=20
Why would this happen?
=20
=20
=20
=20
=20
=20
=20
=20
=20
I made a mistake, the transactions I mentioned was for something else. =
Here is what is really happening. I put a log statement just when =
entering and exiting the call to deleteFamily and here is where the =
application hangs (The browser is also hanging waiting for a response)
=20
=20
2004-07-31 14:43:50,841 DEBUG =
[com.ibm.method.web.manage.FamiliesAddUpdateDelController] - <Entering =
deleteFamily(fbo)...........>
2004-07-31 14:43:50,841 DEBUG [java.sql.Connection] - <{conn-100135} =
Connection>
=20
=20
=20
It appears it is not coming out of the deleteFamily method which now =
looks like this:
=20
=20
public void deleteFamily(final FamiliesBO fbo) throws =
DataAccessException {
=20
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws =
SQLException {
executor.startBatch();
executor.delete("AuthMaint.deleteCatExtendName", =
fbo.getMethodElement());
Iterator itr =3D fbo.getRepItem().iterator();
while (itr.hasNext()) {
Map m =3D (HashMap) itr.next();
executor.delete("AuthMaint.deleteDocMap", m);
executor.delete("AuthMaint.deleteRepItem", m);
}
executor.delete("AuthMaint.deleteContentEdition", =
fbo.getMethodElement());
executor.delete("AuthMaint.deleteMthElem", =
fbo.getMethodElement());
=20
executor.executeBatch();
=20
return null;
}
});
=20
}
=20
=20
=20
=20
=20
=20
=20
=20
=20
=20
=20
Thanks Dmitriy! Actually I had done that and it fixed the problem. Now,
what I am noticing is that before using the batch all my statements =
woere
done in one transaction, now using the executor, it appears that every
statement is now done in its own transaction. Why would this be the =
case?
=20
=20
=20
=20
=20
Stefan,
=20
declare FamiliesBO argument as final i.e.
=20
public void deleteFamily(final FamiliesBO fbo) throws
DataAccessException {...}
=20
Regards,
Dmitriy.
=20
=20
Stefan D Sookraj wrote:
=20
> OK,
> I put 'public' in front of the line and that got rid of the error. =
i.e.
>
> public Object doInSqlMapClient(SqlMapExecutor executor) throws
> SQLException
>
> now, the only issue I am having is that I am having an error on the
> passed in business object (fbo).
>
> The error is: 'Cannot refer to a non-final variable fbo inside an
> inner class defined in a different method'
>
>
> public void deleteFamily(FamiliesBO fbo) throws DataAccessException {
>
> getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
> public Object doInSqlMapClient(SqlMapExecutor executor)
> throws SQLException {
> executor.startBatch();
> executor.delete("AuthMaint.deleteCatExtendName",
> fbo.getMethodElement());
> Iterator itr =3D fbo.getRepItem().iterator();
> while (itr.hasNext()) {
> Map m =3D (HashMap) itr.next();
> executor.delete("AuthMaint.deleteDocMap", m);
> executor.delete("AuthMaint.deleteRepItem", m);
> }
> executor.delete("AuthMaint.deleteContentEdition",
> fbo.getMethodElement());
> executor.delete("AuthMaint.deleteMthElem",
> fbo.getMethodElement());
>
> executor.executeBatch();
> }
> });
>
> }
>
>
>
>
>
>
>
>
> Juergen,
> Thank you for the response. I am getting this error trying to
> implement the code snippit you provided.
>
> At this line I get the error:
> Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException
>
> Error:
> Cannot reduce the visibility of the inherited method from
> SqlMapClientCallback
>
>
> I am doing this in my DAO in my doUpdate method.
>
>
>
>
>
>
>
>
>
> Saturday, July 31, 2004 10:51 AM
> To: <spr...@li...>
> cc:
> From: j=FCrgen h=F6ller [werk3AT] <jue...@we...>
> Subject: Re: [Springframework-developer] How to do batch with Spring
> using Ibatis
>
>
>
> Implement a custom SqlMapClientCallback for this, a la:
>
> getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
> Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
> executor.startBatch();
> executor.update(...);
> executor.update(...);
>
> executor.executeBatch();
> }
> });
>
> Generally, a SqlMapClientCallback allows you to call any methods on
> the passed-in com.ibatis.sqlmap.client.SqlMapExecutor object. The
> template will automatically convert SQLExceptions to
> DataAccessExceptions, just like it does for the convenience operations
> defined on the template itself.
>
> Juergen
>
>
> ________________________________
>
> Von: spr...@li... im Auftrag
> von Stefan D Sookraj
> Gesendet: Sa 31.07.2004 16:08
> An: spr...@li...
> Cc: spr...@li...; =
cli...@ib...
> Betreff: [Springframework-developer] How to do batch with Spring using
> Ibatis
>
>
>
>
>
>
>
> How do you invoke the underlying Ibatis API batch methods from Spring?
> I am
> using org.springframework.orm.ibatis.SqlMapClientTemplate, but the =
iBatis
> batch API is not exposed. If I use Ibatis API directly, I have to =
handle
> the SQLExceptions. Is this the right way to be able to use the IBatis
> batch
> API from Spring? Thank you.
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by OSTG. Have you noticed the changes =
on
> Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
> one more big change to announce. We are now OSTG- Open Source =
Technology
> Group. Come see the changes on the new OSTG site. www.ostg.com
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by OSTG. Have you noticed the changes =
on
> Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
> one more big change to announce. We are now OSTG- Open Source =
Technology
> Group. Come see the changes on the new OSTG site. www.ostg.com
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
=20
=20
=20
=20
-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
=20
=20
=20
-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
2004-07-31 14:43:50,841 DEBUG =
[com.ibm.method.web.manage.FamiliesAddUpdateDelController] - <Entering =
deleteFamily(fbo)...........>
2004-07-31 14:43:50,841 DEBUG [java.sql.Connection] - <{conn-100135} =
Connection>
|