You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by eOk <eo...@vodafone.ie> on 2005/06/29 18:42:47 UTC

iBatis, Informix, JNDI and Sun One Web Server

Hey,

Firstly sorry about the long email.

I have been working happily with iBatis for some time until now :( I 
have been tasked with connecting to a database (Informix) that I have 
very little or limited visibility. The table and the selects I have to 
do are very straight forward however I can't even get as far as getting 
a connection?

I am using Sun WebServer 6.1 and I am getting the follwing error

        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:280)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:209)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
        at 
com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:161)
        at com.iplanet.ias.web.WebContainer.service(WebContainer.java:580)
----- Root Cause -----
java.lang.ClassCastException
        at 
com.sun.enterprise.resource.JdbcAllocator.<init>(JdbcAllocator.java:58)
        at 
com.sun.enterprise.resource.JdbcDataSource.getAllocator(JdbcDataSource.java:234)
        at 
com.sun.enterprise.resource.JdbcDataSource.internalGetConnection(JdbcDataSource.java:200)
        at 
com.sun.enterprise.resource.JdbcDataSource.getConnection(JdbcDataSource.java:132)
        at 
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48)
        at 
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89)
        at 
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:119)
        at 
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:610)
        at 
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:584)
        at com.ibatis.sqlmap.engine.impl.SqlMapSession

I have enclosed my configs, any help would be greatly appreciated :(

sqlmapconfig.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 
2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
    <settings cacheModelsEnabled="true" enhancementEnabled="true" 
maxSessions="64" maxTransactions="8" maxRequests="128"/>
    <transactionManager type="JDBC">
        <dataSource type="JNDI">
            <property name="DataSource" value="java:comp/env/jdbc/kinny"/>
        </dataSource>
    </transactionManager>
    <sqlMap resource="ie/gimme/persistence/sqlmapdao/sql/Jinny.xml"/>
</sqlMapConfig>

server.xml

<JDBCCONNECTIONPOOL
            name="jinnyjdbcpool"
            
datasourceclassname="com.informix.jdbcx.IfxConnectionPoolDataSource"
            steadypoolsize="8"
            maxpoolsize="200"
            poolresizequantity="2"
            idletimeout="300"
            maxwaittime="60000"
            connectionvalidationrequired="off"
            connectionvalidationmethod="auto-commit"
            validationtablename=""
            failallconnections="off"
            transactionisolationlevel="read-uncommitted"
            isolationlevelguaranteed="off">
            <PROPERTY name="serverName" value="somehost"/>
            <PROPERTY name="portNumber" value="1526"/>
            <PROPERTY name="User" value="informix"/>
            <PROPERTY name="Password" value="informix"/>
          </JDBCCONNECTIONPOOL>
          <JDBCRESOURCE jndiname="jdbc/kinny" poolname="kinnyjdbcpool" 
enabled="on"/>

Re: iBatis, Informix, JNDI and Sun One Web Server

Posted by eOk <eo...@vodafone.ie>.
Thanks, I tried it without using iBatis and I get the same thing :(

My mistake.

regards

Eoin

Clinton Begin wrote:

>
> Unfortunately you're going to have to look here for your problem:
>
> com.sun.enterprise.resource.JdbcAllocator.<init>(JdbcAllocator.java:58)
>
> It looks like the last thing iBATIS does is 
> DataSource.getConnection().  After that, it's all up to Sun's app 
> server.  They just open sourced it, so you might be able to get the 
> source. 
>
> My own guess is that the JNDI context is wrong, and it's retrieving an 
> object of some kind, but it's not a connection. (you could verify with 
> 3 lines of JNDI code).
>
> Cheers,
> Clinton
>
> On 6/29/05, *eOk* <eok@vodafone.ie <ma...@vodafone.ie>> wrote:
>
>     Hey,
>
>     Firstly sorry about the long email.
>
>     I have been working happily with iBatis for some time until now :( I
>     have been tasked with connecting to a database (Informix) that I have
>     very little or limited visibility. The table and the selects I
>     have to
>     do are very straight forward however I can't even get as far as
>     getting
>     a connection?
>
>     I am using Sun WebServer 6.1 and I am getting the follwing error
>
>             at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
>     (ApplicationFilterChain.java:213)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>             at
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java
>     :280)
>             at
>     org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
>             at
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
>             at
>     org.apache.catalina.core.StandardPipeline.invoke
>     (StandardPipeline.java:509)
>             at
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:209)
>             at
>     org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
>             at
>     com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:161)
>             at
>     com.iplanet.ias.web.WebContainer.service(WebContainer.java:580)
>     ----- Root Cause -----
>     java.lang.ClassCastException
>             at
>     com.sun.enterprise.resource.JdbcAllocator.<init>(JdbcAllocator.java:58)
>             at
>     com.sun.enterprise.resource.JdbcDataSource.getAllocator(JdbcDataSource.java:234)
>             at
>     com.sun.enterprise.resource.JdbcDataSource.internalGetConnection
>     (JdbcDataSource.java:200)
>             at
>     com.sun.enterprise.resource.JdbcDataSource.getConnection(JdbcDataSource.java:132)
>             at
>     com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java
>     :48)
>             at
>     com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89)
>             at
>     com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java
>     :119)
>             at
>     com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:610)
>             at
>     com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java
>     :584)
>             at com.ibatis.sqlmap.engine.impl.SqlMapSession
>
>     I have enclosed my configs, any help would be greatly appreciated :(
>
>     sqlmapconfig.xml
>
>     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
>     <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config
>     2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"
>     <http://www.ibatis.com/dtd/sql-map-config-2.dtd%22>>
>     <sqlMapConfig>
>         <settings cacheModelsEnabled="true" enhancementEnabled="true"
>     maxSessions="64" maxTransactions="8" maxRequests="128"/>
>         <transactionManager type="JDBC">
>             <dataSource type="JNDI">
>                 <property name="DataSource"
>     value="java:comp/env/jdbc/kinny"/>
>             </dataSource>
>         </transactionManager>
>         <sqlMap resource="ie/gimme/persistence/sqlmapdao/sql/Jinny.xml"/>
>     </sqlMapConfig>
>
>     server.xml
>
>     <JDBCCONNECTIONPOOL
>                 name="jinnyjdbcpool"
>
>     datasourceclassname=" com.informix.jdbcx.IfxConnectionPoolDataSource"
>                 steadypoolsize="8"
>                 maxpoolsize="200"
>                 poolresizequantity="2"
>                 idletimeout="300"
>                 maxwaittime="60000"
>                 connectionvalidationrequired="off"
>                 connectionvalidationmethod="auto-commit"
>                 validationtablename=""
>                 failallconnections="off"
>                 transactionisolationlevel="read-uncommitted"
>                 isolationlevelguaranteed="off">
>                 <PROPERTY name="serverName" value="somehost"/>
>                 <PROPERTY name="portNumber" value="1526"/>
>                 <PROPERTY name="User" value="informix"/>
>                 <PROPERTY name="Password" value="informix"/>
>               </JDBCCONNECTIONPOOL>
>               <JDBCRESOURCE jndiname="jdbc/kinny" poolname="kinnyjdbcpool"
>     enabled="on"/>
>
>

Re: iBatis, Informix, JNDI and Sun One Web Server

Posted by Clinton Begin <cl...@gmail.com>.
Unfortunately you're going to have to look here for your problem:

com.sun.enterprise.resource.JdbcAllocator.<init>(JdbcAllocator.java:58)

It looks like the last thing iBATIS does is DataSource.getConnection(). 
After that, it's all up to Sun's app server. They just open sourced it, so 
you might be able to get the source. 

My own guess is that the JNDI context is wrong, and it's retrieving an 
object of some kind, but it's not a connection. (you could verify with 3 
lines of JNDI code).

Cheers,
Clinton

On 6/29/05, eOk <eo...@vodafone.ie> wrote:
> 
> Hey,
> 
> Firstly sorry about the long email.
> 
> I have been working happily with iBatis for some time until now :( I
> have been tasked with connecting to a database (Informix) that I have
> very little or limited visibility. The table and the selects I have to
> do are very straight forward however I can't even get as far as getting
> a connection?
> 
> I am using Sun WebServer 6.1 and I am getting the follwing error
> 
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:213)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:280)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :509)
> at
> org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:212)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :509)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> :209)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :509)
> at
> com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(
> NSAPIProcessor.java:161)
> at com.iplanet.ias.web.WebContainer.service(WebContainer.java:580)
> ----- Root Cause -----
> java.lang.ClassCastException
> at
> com.sun.enterprise.resource.JdbcAllocator.<init>(JdbcAllocator.java:58)
> at
> com.sun.enterprise.resource.JdbcDataSource.getAllocator(
> JdbcDataSource.java:234)
> at
> com.sun.enterprise.resource.JdbcDataSource.internalGetConnection(
> JdbcDataSource.java:200)
> at
> com.sun.enterprise.resource.JdbcDataSource.getConnection(
> JdbcDataSource.java:132)
> at
> com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(
> JdbcTransaction.java:48)
> at
> com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(
> JdbcTransaction.java:89)
> at
> 
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList
> (GeneralStatement.java:119)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(
> SqlMapExecutorDelegate.java:610)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(
> SqlMapExecutorDelegate.java:584)
> at com.ibatis.sqlmap.engine.impl.SqlMapSession
> 
> I have enclosed my configs, any help would be greatly appreciated :(
> 
> sqlmapconfig.xml
> 
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config
> 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
> <settings cacheModelsEnabled="true" enhancementEnabled="true"
> maxSessions="64" maxTransactions="8" maxRequests="128"/>
> <transactionManager type="JDBC">
> <dataSource type="JNDI">
> <property name="DataSource" value="java:comp/env/jdbc/kinny"/>
> </dataSource>
> </transactionManager>
> <sqlMap resource="ie/gimme/persistence/sqlmapdao/sql/Jinny.xml"/>
> </sqlMapConfig>
> 
> server.xml
> 
> <JDBCCONNECTIONPOOL
> name="jinnyjdbcpool"
> 
> datasourceclassname="com.informix.jdbcx.IfxConnectionPoolDataSource"
> steadypoolsize="8"
> maxpoolsize="200"
> poolresizequantity="2"
> idletimeout="300"
> maxwaittime="60000"
> connectionvalidationrequired="off"
> connectionvalidationmethod="auto-commit"
> validationtablename=""
> failallconnections="off"
> transactionisolationlevel="read-uncommitted"
> isolationlevelguaranteed="off">
> <PROPERTY name="serverName" value="somehost"/>
> <PROPERTY name="portNumber" value="1526"/>
> <PROPERTY name="User" value="informix"/>
> <PROPERTY name="Password" value="informix"/>
> </JDBCCONNECTIONPOOL>
> <JDBCRESOURCE jndiname="jdbc/kinny" poolname="kinnyjdbcpool"
> enabled="on"/>
>