I got past the original problem by using a non-transactional data source and
another problem (the J2EEStore class was pretending "java:comp/env" to the
beginning of the data source name) and yet another one that was a result of
the J2EEStore not creating the tables (the "how-to" for JDBC indicates that
it's done for you, the "how-to" for J2EE does not and it really didn't).  I
made the getDatabaseCreateStatements method of JDBCDescriptorStore public
and got the commands from there.  Then, those statements failed because the
varchar field sizes indicated in the Slide documentation (3200) is not what
is in the code (65536).  

Am I breaking new ground here (WebLogic/J2EE/Oracle)?  I find it hard to
believe that no one, if I trust the searches of the mailing list archives,
has run into these problems.  Has anyone included Slide in a commercially
viable product that isn't using only Apache sub-projects to support it?

Thanks
Joe

-----Original Message-----
From: Joseph Carew 
Sent: Tuesday, February 25, 2003 08:58
To: '[EMAIL PROTECTED]'
Subject: J2EE Store and transactions


I set up Slide and WebLogic 6.1 a couple of weeks ago with minimal
authentication issues.  I've got a newer build of Slide now and am getting
this error.  I'm using native Oracle 9i drivers and I've included my
connection pool and data source xml.  There doesn't seem to be any support
for the SupportsLocalTransaction attribute (you'll see I added it with no
effect) in the connection pool setup.
 
25 Feb 2003 08:42:39 - slidestore.j2ee.J2EEDescriptorsStore - ERROR -
java.sql.SQLException: SQL ope
rations are not allowed with no global transaction by default for XA
drivers. If the XA driver suppo
rts performing SQL operations with no global transaction, explicitly allow
it by setting "SupportsLo
calTransaction" JDBC connection pool property to true. In this case, also
remember to complete the l
ocal transaction before using the connection again for global transaction,
else a XAER_OUTSIDE XAExc
eption may result. To complete a local transaction, you can either set auto
commit to true or call C
onnection.commit() or Connection.rollback().
java.sql.SQLException: SQL operations are not allowed with no global
transaction by default for XA d
rivers. If the XA driver supports performing SQL operations with no global
transaction, explicitly a
llow it by setting "SupportsLocalTransaction" JDBC connection pool property
to true. In this case, a
lso remember to complete the local transaction before using the connection
again for global transact
ion, else a XAER_OUTSIDE XAException may result. To complete a local
transaction, you can either set
 auto commit to true or call Connection.commit() or Connection.rollback().
        at
weblogic.jdbc.jta.Statement.checkIfLocalTxSupported(Statement.java:106)
        at
weblogic.jdbc.jta.PreparedStatement.executeQuery(PreparedStatement.java:61)
        at
weblogic.jdbc.rmi.internal.PreparedStatementImpl.executeQuery(PreparedStatem
entImpl.java:
56)
        at
weblogic.jdbc.rmi.SerialPreparedStatement.executeQuery(SerialPreparedStateme
nt.java:42)
        at
slidestore.j2ee.J2EEDescriptorsStore.retrieveObject(J2EEDescriptorsStore.jav
a:198)
        at
org.apache.slide.store.StandardStore.retrieveObject(StandardStore.java:171)
        at
org.apache.slide.common.NamespaceConfig.getActionNode(NamespaceConfig.java:1
106)
        at
org.apache.slide.common.NamespaceConfig.initializeNamespaceConfig(NamespaceC
onfig.java:59
6)
        at
org.apache.slide.common.Namespace.loadConfiguration(Namespace.java:888)
        at org.apache.slide.common.Domain.initNamespace(Domain.java:864)
        at org.apache.slide.common.Domain.init(Domain.java:478)
        at org.apache.slide.common.Domain.init(Domain.java:412)
        at org.apache.slide.common.Domain.init(Domain.java:375)
        at
org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:286)
        at javax.servlet.GenericServlet.init(GenericServlet.java:258)
        at
org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:228)
        at
weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java
:731)
        at
weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.ja
va:658)
        at
weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.jav
a:603)
        at
weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletC
ontext.java:2
360)
        at
weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServlet
Context.java:
2301)
        at
weblogic.servlet.internal.HttpServer.preloadServlets(HttpServer.java:558)
        at
weblogic.servlet.internal.WebService.preloadServlets(WebService.java:450)
        at weblogic.t3.srvr.ServletInitRunner.run(ServletInitRunner.java:49)
        at java.lang.Thread.run(Thread.java:479)
 
The relevant elements from config.xml:
    <JDBCConnectionPool CapacityIncrement="5"
        DriverName="oracle.jdbc.pool.OracleConnectionPoolDataSource"
        InitialCapacity="5" MaxCapacity="500" Name="realm1"
        Properties="user=icare75;password=icare75;dll=ocijdbc9;protocol=oci"
        Targets="myserver"
        SupportsLocalTransaction="true"
        URL="jdbc:oracle:oci:@kanaebiz"/>
    <JDBCTxDataSource EnableTwoPhaseCommit="true"
        JNDIName="KANA/jdbc/realm1" Name="realm1" PoolName="realm1"
Targets="myserver"/>
 
And the Domain.xml:
<store name="j2ee">
                <nodestore classname="slidestore.j2ee.J2EEDescriptorsStore">
                    <parameter
name="datasource">KANA/jdbc/realm1</parameter>
                </nodestore>
            

 
 

 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to