Web Hosting Forum | Lunarpages


*
Welcome, Guest. Please login or register.
Did you miss your activation email?



Login with username, password and session length
February 09, 2012, 05:34:17 PM

Pages: [1]   Go Down
  Print  
Author Topic: iBATIS and connection pooling  (Read 8238 times)
:LJ:
Spaceship Navigator
*****
Offline Offline

Posts: 85


« on: September 04, 2004, 05:01:18 PM »

Does anyone out there use iBATIS with connection pooling on LP? I'm asking because I'm considering it (creating a sqlMap every time I instantiate an Action object in Struts is a little amateurish, dontcha think? Wink), but I'm not entirely sure which way to go about it. The way I see it, I have two choices :

1) Use a Resin connection pool...but then how do I get iBATIS to use it?

2) Pool the connections using my own listener class.

Obviously, option 1 would be the preferred path, but I'm a little unsure on how to go about it. If anyone can share some config/code, I'd much appreciate it.
Logged

"With an infinite wang, this and much more is possible." - Tycho, Penny Arcade (www.penny-arcade.com)
alexan
Newbie
*
Offline Offline

Posts: 4


« Reply #1 on: September 08, 2004, 08:10:34 AM »

Hi

I am using IBATIS with container managed connection pooling.

The following post helped me so much:
http://www.lunarforums.com/forum/viewtopic.php?t=9875

Add the following to  web.xml :
Code:

<resource-ref>
<res-ref-name>jdbc/mydatabase</res-ref-name>
<res-type>javax.sql.ConnectionPoolDataSource</res-type>
<init-param driver-name="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"/>
<init-param url="jdbc:mysql://localhost:3306/dbname"/>
<init-param user="username"/>
<init-param password="userpassword"/>
<init-param max-connections="20"/>
<init-param max-idle-time="10"/>
<init-param max-active-time="1"/>
<init-param max-pool-time="1"/>
<init-param connection-wait-time="1"/>
</resource-ref>



and in sqlmapconfig.xml
Code:

<datasource name="Jndi" default = "true"
              factory-class="com.ibatis.db.sqlmap.datasource.JndiDataSourceFactory">
             
   <property name="DBFullJndiContext" value="java:comp/env/jdbc/mydatabase"/>
   
</datasource>


I just uploaded my war file today and it works fine.
good luck
Logged

http://www.javaemployer.com
Alexan Kahkejian
Sun Certified Java Programmer
Sun Certified Web Component Developer
:LJ:
Spaceship Navigator
*****
Offline Offline

Posts: 85


« Reply #2 on: September 11, 2004, 05:29:51 AM »

OK cheers - that looks like it'll do the trick.
Logged

"With an infinite wang, this and much more is possible." - Tycho, Penny Arcade (www.penny-arcade.com)
david203
Newbie
*
Offline Offline

Posts: 4


« Reply #3 on: November 12, 2009, 08:15:22 AM »

Hi Alexan and LJ,

Hey, I also use IBatis and MySQL on the Lunarpage servers.

I was wondering if we could contact each other to share information.
I'm getting a lot of Broken Pipes/?Communication Failures.
I think it may have to do either with DB driver version/setting or the IBatis connection pool setting.

Would you mind sharing any optimal settings for the Lunarpage server you may be aware of?

My contact info is below and the errors and settings I have are below:

--- The error occurred while applying a parameter map. 
--- Check the ad.ibatorgenerated_selectByExample-InlineParameterMap. 
--- Check the statement (query failed). 
--- Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 12 ms ago.
com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred while applying a parameter map. 
--- Check the ad.ibatorgenerated_selectByExample-InlineParameterMap. 
--- Check the statement (query failed). 
--- Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 12 ms ago.
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 12 ms ago.
   at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201)
   at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120)
   at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:518)
   at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:493)
   at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
   at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82)
   at test.model.AdModelHelper.getAd(AdModelHelper.java:133)
   at org.dastica.actions.UpdateAdAction.execute(UpdateAdAction.java:45)
   at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
   at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
   at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
   at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
   at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
   at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
   at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:181)
   at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
   at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:435)
   at com.caucho.server.port.TcpConnection.run(TcpConnection.java:602)
   at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
   at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
   at java.lang.Thread.run(Thread.java:619)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 12 ms ago.
   at sun.reflect.GeneratedConstructorAccessor64.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
   at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
   at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
   at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3246)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1917)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
   at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:995)
   at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:185)
   at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
   at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
   ... 26 more
Caused by: java.net.SocketException: Broken pipe
   at java.net.SocketOutputStream.socketWrite0(Native Method)
   at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
   at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
   at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
   at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
   at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3227)
   ... 34 more

Caused by:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 12 ms ago.
   at sun.reflect.GeneratedConstructorAccessor64.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
   at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
   at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
   at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3246)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1917)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
   at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:995)
   at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:185)
   at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
   at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
   at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120)
   at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:518)
   at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:493)
   at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
   at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82)
   at test.model.AdModelHelper.getAd(AdModelHelper.java:133)
   at org.dastica.actions.UpdateAdAction.execute(UpdateAdAction.java:45)
   at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
   at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
   at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
   at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
   at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
   at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
   at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:181)
   at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
   at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:435)
   at com.caucho.server.port.TcpConnection.run(TcpConnection.java:602)
   at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
   at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
   at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Broken pipe
   at java.net.SocketOutputStream.socketWrite0(Native Method)
   at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
   at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
   at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
   at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
   at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3227)
   ... 34 more

<sqlMapConfig>

  <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="false" maxRequests="32"   maxSessions="10"    maxTransactions="5"    useStatementNamespaces="true" />
 
     <transactionManager type="JDBC">
       <dataSource type="SIMPLE" >
          <property name="JDBC.Driver" value="org.gjt.mm.mysql.Driver"/>
          <property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1:3306/(dbname)?autoReconnect=true&amp;noAccessToProcedureBodies=true"/>
          <property name="JDBC.Username" value="(removed for security)"/>
          <property name="JDBC.Password" value="(removed for security)"/>
          <property name="Pool.MaximumActiveConnections" value="10"/>
          <property name="Pool.MaximumIdleConnections" value="5"/>
          <property name="Pool.MaximumCheckoutTime" value="120000"/>
          <property name="Pool.TimeToWait" value="500"/>
          <property name="Pool.PingQuery" value="select * from test.testtable"/>
          <property name="Pool.PingEnabled" value="false"/>
          <property name="Pool.PingConnectionsOlderThan" value="1"/>
          <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
          <property name="Pool.QuietMode" value="false"/>
        </dataSource>
   </transactionManager>
 


Thanks,
David
631-375-5751
Email: davidgturner@gmail.com

Logged
Pages: [1]   Go Up
  Print  
 
Jump to: