ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Hagström <ste...@iserv.se>
Subject Re: Problem with ibatis3 in jboss5.1 - Not closing connection.
Date Thu, 14 Jan 2010 06:06:36 GMT

Sweet!  Thanks!


BR
Stefan





14 jan 2010 kl. 06.46 skrev Clinton Begin:

> It wouldn't be hard to change that, but first, the best thing might  
> be to just write your own transaction manager that works... it's  
> pretty easy.
>
> You can pass any class name in place of "MANAGED" in your  
> configuration.
>
> For example, here's the Managed connection implementation...
>
> public class ManagedTransactionFactory implements TransactionFactory {
>   public void setProperties(Properties props) {
>   }
>   public Transaction newTransaction(Connection conn, boolean  
> autoCommit) {
>     return new ManagedTransaction(conn);
>   }
> }
>
> public class ManagedTransaction implements Transaction {
>   private Connection connection;
>   public ManagedTransaction(Connection connection) {
>     this.connection = connection;
>   }
>   public Connection getConnection() {
>     return connection;
>   }
>   public void commit() throws SQLException {
>     // Does nothing
>   }
>   public void rollback() throws SQLException {
>     // Does nothing
>   }
>   public void close() throws SQLException {
>     // Does nothing
>   }
> }
>
>
> On Wed, Jan 13, 2010 at 10:28 PM, Stefan Hagström  
> <stha721@gmail.com> wrote:
> Hi, thanks!
>
> Its a managed connection (CMT).
> When using plain JBDC in an SLSB the jdbc connection is opened and  
> closed in each method.
> When closing a method it is not really closed but rather returned to  
> the connection pool.
>
> The container is afaik responsible for commit/rollback of the  
> current transaction, not closing the "checked out"
> connection.
>
> Does this make sense? does anyone else got ibatis working with jboss  
> 5.1?
>
>
> BR
> Stefan
>
>
> 2010/1/14 Clinton Begin <clinton.begin@gmail.com>
>
> If it's a managed connection, it will not be closed, even if you  
> call session.close().  The underlying container / transaction  
> manager is responsible for closing it.  So the transaction scope for  
> your SLSB should be opening and closing the connection.  Otherwise,  
> change the transaction type to JDBC.
>
> Clinton
>
>
> On Wed, Jan 13, 2010 at 2:43 PM, Stefan Hagström <stefan@iserv.se>  
> wrote:
>
>
>
>
> Hi!
>
> I'm new to Ibatis, and have tried to create a simple slsb as a dao  
> with ibatis 3 with jboss 5.
>
> However it seems like connection are not closed/returned. Jboss is  
> complaining about connections not beeing closed:
>
> 21:32:15,146 INFO  [CachedConnectionManager] Closing a connection  
> for you.  Please close them yourself:  
> org.jboss.resource.adapter.jdbc.jdk5.WrappedConnectionJDK5@8cffca
> java.lang.Throwable: STACKTRACE
>
> I've attached the configuration and slsb, any ideas?
>
>
> <configuration>
> <settings>
> <setting name="cacheEnabled" value="false"/>
> <setting name="lazyLoadingEnabled" value="false"/>
> </settings>
>   <typeAliases>
>     <typeAlias type="dto.valuecode.ValueCode" alias="ValueCode"/>
>   </typeAliases>
>
>   <environments default="prod">
>
>        <environment id="prod">
>        <transactionManager type="MANAGED">
>        </transactionManager>
>        <dataSource type="JNDI">
>          <property name="data_source" value="java:/kalenderDB"/>
>        </dataSource>
>      </environment>
>   </environments>
>
>
>   <mappers>
>     <mapper resource="META-INF/ValueCode.xml"/>
>   </mappers>
> </configuration>
>
>
>
> @Stateless
> public class ValueCodeDao implements ValueCodeDaoInterface {
>
> SqlSessionFactory sqlSessionFactory=null;
>
> @PostConstruct
> public void setup(){
>
> System.out.println("Reading Ibatis configuration for ValueCodeDao");
>
> String resource = "META-INF/ibatis.xml";
> Reader reader;
> try {
> reader =  
> Resources 
> .getResourceAsReader(this.getClass().getClassLoader(),resource);
> sqlSessionFactory =  new SqlSessionFactoryBuilder().build(reader);
>
>
> } catch (IOException e) {
>
> e.printStackTrace();
> }
>
> }
>
>
> public int getNextValueCodeNumber(){
>
> SqlSession session = sqlSessionFactory.openSession();
> session.close();
>
> return 1;
>
> }
>
>
> }
>
>
>
>


Mime
View raw message