Re: cacheModel - Database Down and external app flush

2006-04-20 Thread Sven Boden
) 



 at 
org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:204) 



 at 
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:243) 



 at data.SqlMapClientTestDao.getAll(SqlMapClientTestDao.java:25)

 at service.Main.run(Main.java:37)

 at service.Main.main(Main.java:55)





** END NESTED EXCEPTION **







Last packet sent to the server was 0 ms ago.

 at com.mysql.jdbc.Connection.createNewIO(Connection.java:2621)

 at com.mysql.jdbc.Connection.init(Connection.java:1485)

 at 
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) 



 at 
org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37) 



 at 
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290) 



 at 
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771) 



 at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) 



 at 
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) 



 at 
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) 



 at 
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) 



 at 
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:178) 



 at 
org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:204) 



 at 
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:243) 



 at data.SqlMapClientTestDao.getAll(SqlMapClientTestDao.java:25)

 at service.Main.run(Main.java:37)

 at service.Main.main(Main.java:55)



- Original Message - From: Sven Boden [EMAIL PROTECTED]
To: user-java@ibatis.apache.org
Sent: Wednesday, April 19, 2006 4:48 PM
Subject: Re: cacheModel - Database Down and external app flush




For 1):
do you have the full nested stacktrace? Did you deactivate the ping 
query? and are you sure the exception originates in iBATIS (we'll see 
from the full stacktrace). The intention of a cache is to speed 
things up, it's not the intention to have a complete in-core database.


For 2)
There's no way for iBATIS to be automatically aware of updates by 
other applications. This is a problem for every database application, 
not just iBATIS. If you would develop an application without iBATIS 
(with your own developed caching), how would you know in your 
application whether another application updated your database?


Regards,
Sven

James Johnson wrote:

I have a few questions regarding iBatis cacheModel. All help is 
greatly appreciated.


1) When the iBatis cacheModel is used, a connection to the database 
server appears to be still required. The data has been cached, so 
I'm not sure why the database server needs to be up after caching 
the data.
For exapmle, I have test code that basically returns the same row of 
data n times. As expected, the data is cached and remains unchanged 
desipte making updates using the database command line client (i.e. 
outside of my program). During the ith (1i=n) try, I shutdown the 
database server. I would expect iBatis to just use the cache results 
and not require the database server to be up. However, instead I get 
the following error when I bring the database server down:
Exception in thread main 
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not 
get JDBC Connection; nested exception is 
com.mysql.jdbc.CommunicationsException: Communications link failure 
due to underlying exception:

** BEGIN NESTED EXCEPTION **
java.net.SocketException

MESSAGE: java.net.ConnectException: Connection refused: connect


I would like to have mechanism that allows the application to use 
cached data in the event the database server is down as it does when 
the database server is up. Is the cachModel capable of providing 
this functionality? Why does the database server need to be up when 
iBatis is using cached results?


2) By specifying the flushOnExecute, iBatis will flush the cache 
when a certian statement(s) is executed. Is there a way for iBatis 
to flush the cache when anything (i.e. another application) makes an 
update, insert or delete?













cacheModel - Database Down and external app flush

2006-04-19 Thread James Johnson




I havea fewquestions regarding iBatis 
cacheModel. All help is greatly 
appreciated.

1) When the iBatis cacheModel is used,a 
connection to the database server appears tobe still required. The data 
has been cached, so I'm not sure why the database server needs to be up after 
caching the data. 

For exapmle, I have test code that basically 
returns the same row of data n times. As expected, the data is cached and 
remains unchanged desipte making updates using the database command line client 
(i.e. outside of my program). During the ith (1i=n) try,I 
shutdownthe database server. I would expect iBatis to just use the cache 
results and not require the database server to be up.However, instead I 
get the following error when I bring the database server down: 


Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is 
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 
java.net.SocketException
MESSAGE: java.net.ConnectException: 
Connection refused: connect

I would like to have mechanism that allows the 
application to use cached data in the event the database server is down as it 
does when the database server is up. Is the cachModel capable of providing this 
functionality? Why does the database server need to be up when iBatis is using 
cached results?

2) By specifying the flushOnExecute, iBatis will 
flush the cache when a certian statement(s)is executed. Is there a way for 
iBatis to flush the cache when anything (i.e. another application) makes an 
update, insertor delete?



Re: cacheModel - Database Down and external app flush

2006-04-19 Thread Sven Boden


For 1):
do you have the full nested stacktrace? Did you deactivate the ping 
query? and are you sure the exception originates in iBATIS (we'll see 
from the full stacktrace). The intention of a cache is to speed things 
up, it's not the intention to have a complete in-core database.


For 2)
There's no way for iBATIS to be automatically aware of updates by other 
applications. This is a problem for every database application, not just 
iBATIS. If you would develop an application without iBATIS (with your 
own developed caching), how would you know in your application whether 
another application updated your database?


Regards,
Sven

James Johnson wrote:


I have a few questions regarding iBatis cacheModel. All help is greatly 
appreciated.

1) When the iBatis cacheModel is used, a connection to the database server appears to be still required. The data has been cached, so I'm not sure why the database server needs to be up after caching the data. 

For exapmle, I have test code that basically returns the same row of data n times. As expected, the data is cached and remains unchanged desipte making updates using the database command line client (i.e. outside of my program). During the ith (1i=n) try, I shutdown the database server. I would expect iBatis to just use the cache results and not require the database server to be up. However, instead I get the following error when I bring the database server down: 

Exception in thread main org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 


java.net.SocketException

MESSAGE: java.net.ConnectException: Connection refused: connect


I would like to have mechanism that allows the application to use cached data 
in the event the database server is down as it does when the database server is 
up. Is the cachModel capable of providing this functionality? Why does the 
database server need to be up when iBatis is using cached results?

2) By specifying the flushOnExecute, iBatis will flush the cache when a certian 
statement(s) is executed. Is there a way for iBatis to flush the cache when 
anything (i.e. another application) makes an update, insert or delete?